26 lines
1.0 KiB
C
Executable File
Vendored
26 lines
1.0 KiB
C
Executable File
Vendored
#ifndef _IPL_RTK_H
|
|
#define _IPL_RTK_H
|
|
|
|
typedef struct rtk_image_header {
|
|
U32 ivt[8]; // Interrupt Vector Table, 32byte
|
|
U32 marker; // RTK header, 0x5F4B5452 (“RTK_”)
|
|
U32 size; // Image size (include header)
|
|
U32 checksum; // Checksum (exclude header)
|
|
U32 reserved; // Reserved
|
|
} __attribute__((packed)) rtk_image_header_t;
|
|
|
|
#define RTK_MAKER 0x5F4B5452
|
|
#define RTK_IMAGE_HEADER_OFFSET 0
|
|
#define RTK_IMAGE_HEADER_IVT 0
|
|
#define RTK_IMAGE_HEADER_MAKER 32
|
|
#define RTK_IMAGE_HEADER_SIZE 36
|
|
#define RTK_IMAGE_HEADER_CHECKSUM 40
|
|
|
|
#define image_get_rtk_header_size() (sizeof(rtk_image_header_t))
|
|
#define image_get_rtk_header(a) ((rtk_image_header_t) (a + RTK_IMAGE_HEADER_OFFSET))
|
|
#define image_get_rtk_maker(a) (*((volatile U32*) (a + RTK_IMAGE_HEADER_OFFSET + RTK_IMAGE_HEADER_MAKER)))
|
|
#define image_get_rtk_size(a) (*((volatile U32*) (a + RTK_IMAGE_HEADER_OFFSET + RTK_IMAGE_HEADER_SIZE)))
|
|
|
|
#endif
|
|
|