123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- #ifndef __SOC_BOOT_H
- #define __SOC_BOOT_H
- #define SOC_BOOT_PSRAM_MAPPING_ADDRESS (0x18000000)
- extern uint32_t z_rom_data_size;
- #define SOC_BOOT_FIRMWARE_VERSION_OFFSET (0x2e8)
- typedef struct {
- uint32_t mbrec_phy_addr;
- uint32_t param_phy_addr;
- uint32_t system_phy_addr;
- uint32_t reboot_reason;
- uint32_t nand_id_offs;
- uint32_t nand_id_len;
- uint32_t watchdog_reboot : 1;
- uint32_t is_mirror : 1;
- uint32_t bit_res : 30;
- uint32_t reserved[3];
- uint32_t nor_offset;
- uint32_t code_len;
- uint32_t reserved0[1];
- uint32_t dvfs;
- uint32_t reserved1[2];
- } boot_info_t;
- #define IMAGE_TLV_KEYHASH 0x01
- #define IMAGE_TLV_PUBKEY 0x02
- #define IMAGE_TLV_SHA256 0x04
- #define IMAGE_TLV_RSA2048_PSS 0x08
- #define IMAGE_MAGIC0 0x48544341
- #define IMAGE_MAGIC1 0x41435448
- typedef struct image_head {
- uint32_t ih_magic0;
- uint32_t ih_magic1;
- uint32_t ih_load_addr;
- uint8_t ih_name[8];
- uint32_t ih_entry;
- uint32_t ih_img_size;
- uint32_t ih_img_chksum;
- uint32_t ih_hdr_chksum;
- uint16_t ih_hdr_size;
- uint16_t ih_ptlv_size;
- uint16_t ih_tlv_size;
- uint16_t ih_version;
- uint32_t ih_flags;
- uint8_t ih_ext_ictype[7];
- uint8_t ih_storage_type;
- }image_head_t;
- uint32_t soc_boot_get_part_tbl_addr(void);
- uint32_t soc_boot_get_fw_ver_addr(void);
- const boot_info_t *soc_boot_get_info(void);
- u32_t soc_boot_get_reboot_reason(void);
- bool soc_boot_get_watchdog_is_reboot(void);
- uint32_t soc_boot_get_nandid_tbl_addr(void);
- #define BOOT_FLASH_ID_NOR 0
- #define BOOT_FLASH_ID_EXTNOR 1
- #define BOOT_FLASH_ID_NAND 2
- int boot_to_app(int mirror_id, int flashid);
- int boot_ext_nor(uint32_t offset, int enable_crc, uint32_t head_len);
- int boot_nor(uint32_t offset, int enable_crc, uint32_t head_len);
- int boot_nand(uint32_t offset, uint32_t head_len);
-
- int image_security_data_check(image_head_t *ih_app);
- #endif
|