1#ifndef __OMAP44XX_BOOT
2#define __OMAP44XX_BOOT
3
4#define OMAP44xx_bootmsg_periphboot 0xF0030002
5#define OMAP44xx_bootmsg_getid      0xF0030003
6#define OMAP44xx_subblock_id        0x01
7#define OMAP44xx_subblock_checksum  0x15
8#define OMAP44xx_ch_enabled         0x07
9#define OMAP44xx_ch_disabled        0x17
10#define OMAP44xx_vid                0x0451
11#define OMAP44xx_pid                0xd010
12#define OMAP44xx_bulk_out           0x01
13#define OMAP44xx_bulk_in            0x81
14
15struct omap44xx_subblock_header {
16    uint8_t subblock_id;
17    uint8_t subblock_size;
18    uint8_t fixed;
19} __attribute__((packed));
20
21struct omap44xx_subblock_id {
22    uint8_t subblock_id;
23    uint8_t subblock_size;
24    uint8_t fixed;
25    uint8_t device[2];
26    uint8_t ch;
27    uint8_t rom_revision;
28} __attribute__((packed));
29
30struct omap44xx_subblock_checksum {
31    uint8_t subblock_id;
32    uint8_t subblock_size;
33    uint8_t fixed;
34    uint8_t rom_crc[4];
35    uint8_t unused[4];
36} __attribute__((packed));
37
38struct omap44xx_id {
39    uint8_t items;
40
41    struct omap44xx_subblock_id id;
42
43    uint8_t reserved1[4];
44    uint8_t reserved2[23];
45    uint8_t reserved3[35];
46
47    struct omap44xx_subblock_checksum checksum;
48} __attribute__((packed));
49
50#endif /* __OMAP44XX_BOOT */
51