Files

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