0% found this document useful (0 votes)
63 views2 pages

Part Table

The document defines structures and constants used for firmware partitions and device properties on an embedded device. It defines constants for 12 firmware partitions and a maximum of 32 partitions. It also defines structures for partition headers, networking device settings, and a device structure containing fields like serial number, boot options, and network/firmware update settings.

Uploaded by

Péter Kováts
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
63 views2 pages

Part Table

The document defines structures and constants used for firmware partitions and device properties on an embedded device. It defines constants for 12 firmware partitions and a maximum of 32 partitions. It also defines structures for partition headers, networking device settings, and a device structure containing fields like serial number, boot options, and network/firmware update settings.

Uploaded by

Péter Kováts
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

#define FLDEV_CMD_LINE_SIZE 1024

/* Below are firmware partitions. (with pre-built image) */


#define PART_BST 0
#define PART_PTB 1
#define PART_BLD 2
#define PART_HAL 3
#define PART_PBA 4
#define PART_PRI 5
#define PART_SEC 6
#define PART_BAK 7
#define PART_RMD 8
#define PART_ROM 9
#define PART_DSP 10
#define PART_LNX 11

#define PART_MAX_WITH_RSV 32
/**
* Header used in the device firmware payload.
*/
typedef struct flpart_s
{
u32 crc32; /**< CRC32 checksum of image */
u32 ver_num; /**< Version number */
u32 ver_date; /**< Version date */
u32 img_len; /**< Lengh of image in the partition */
u32 mem_addr; /**< Starting address to copy to RAM */
u32 flag; /**< Special properties of this partition */
u32 magic; /**< Magic number */
} flpart_t;

typedef struct netdev_s


{
/* This section contains networking related settings */
u8 mac[6]; /**< MAC address*/
u32 ip; /**< Boot loader's LAN IP */
u32 mask; /**< Boot loader's LAN mask */
u32 gw; /**< Boot loader's LAN gateway */
} netdev_t;

typedef struct fldev_s


{
char sn[32]; /**< Serial number */
u8 usbdl_mode; /**< USB download mode */
u8 auto_boot; /**< Automatic boot */
char cmdline[FLDEV_CMD_LINE_SIZE]; /**< Boot command line options */
u8 rsv[2];
u32 splash_id;

/* This section contains networking related settings */


netdev_t eth[2];
netdev_t wifi[2];
netdev_t usb_eth[2];

/* This section contains update by network related settings */


u8 auto_dl; /**< Automatic download? */
u32 tftpd; /**< Boot loader's TFTP server */
u32 pri_addr; /**< RTOS download address */
char pri_file[32]; /**< RTOS file name */
u8 pri_comp; /**< RTOS compressed? */
u32 rmd_addr; /**< Ramdisk download address */
char rmd_file[32]; /**< Ramdisk file name */
u8 rmd_comp; /**< Ramdisk compressed? */
u32 dsp_addr; /**< DSP download address */
char dsp_file[32]; /**< DSP file name */
u8 dsp_comp; /**< DSP compressed? */
u8 rsv2[2];

u32 magic; /**< Magic number */


} fldev_t;

typedef struct flpart_table_s


{
flpart_t part[PART_MAX_WITH_RSV];
/* ------------------------------------------ */
fldev_t dev; /**< Device properties */
} flpart_table_t;

You might also like