113 lines
3.6 KiB
C
113 lines
3.6 KiB
C
/*
|
|
* (C) Copyright 2018
|
|
* wangwei <wangwei@allwinnertech.com>
|
|
*/
|
|
|
|
#ifndef __boot0_v2_h
|
|
#define __boot0_v2_h
|
|
|
|
#include <linux/types.h>
|
|
#include <spare_head.h>
|
|
|
|
#define BOOT0_MAGIC "eGON.BT0"
|
|
#define DRAM_EXT_MAGIC "DRAM.ext"
|
|
#define SYS_PARA_LOG 0x4d415244
|
|
|
|
/******************************************************************************/
|
|
/* file head of Boot */
|
|
/******************************************************************************/
|
|
typedef struct _Boot_file_head
|
|
{
|
|
__u32 jump_instruction; /* one intruction jumping to real code */
|
|
__u8 magic[MAGIC_SIZE]; /* ="eGON.BT0" */
|
|
__u32 check_sum; /* generated by PC */
|
|
__u32 length; /* generated by PC */
|
|
__u32 pub_head_size; /* the size of boot_file_head_t */
|
|
__u8 pub_head_vsn[4]; /* the version of boot_file_head_t */
|
|
__u32 ret_addr; /* the return value */
|
|
__u32 run_addr; /* run addr */
|
|
__u32 boot_cpu; /* eGON version */
|
|
__u8 platform[8]; /* platform information */
|
|
}boot_file_head_t;
|
|
|
|
|
|
/******************************************************************************/
|
|
/* file head of Boot0 */
|
|
/******************************************************************************/
|
|
typedef struct _boot0_private_head_t
|
|
{
|
|
__u32 prvt_head_size;
|
|
/*debug_mode = 0 : do not print any message,debug_mode = 1 ,print debug message*/
|
|
__u8 debug_mode;
|
|
/*0:axp, 1: no axp */
|
|
__u8 power_mode;
|
|
__u8 reserve[2];
|
|
/*DRAM patameters for initialising dram. Original values is arbitrary*/
|
|
unsigned int dram_para[32];
|
|
/*uart: num & uart pin*/
|
|
__s32 uart_port;
|
|
normal_gpio_cfg uart_ctrl[2];
|
|
/* jtag: 1 : enable, 0 : disable */
|
|
__s32 enable_jtag;
|
|
normal_gpio_cfg jtag_gpio[5];
|
|
/* nand/mmc pin*/
|
|
normal_gpio_cfg storage_gpio[32];
|
|
/*reserve data*/
|
|
char storage_data[512 - sizeof(normal_gpio_cfg) * 32];
|
|
}boot0_private_head_t;
|
|
|
|
typedef struct __fes_aide_info {
|
|
__u32 dram_init_flag; /* flag for Dram init */
|
|
__u32 dram_update_flag; /* flag for dram para */
|
|
__u32 dram_paras[SUNXI_DRAM_PARA_MAX];
|
|
} fes_aide_info_t;
|
|
|
|
|
|
typedef struct _flash_map_config {
|
|
__u32 boot_param;
|
|
__u32 uboot_start_sector;
|
|
__u32 uboot_bak_start_sector;
|
|
__u8 reserved[4];
|
|
} flash_map_config;
|
|
|
|
typedef struct _boot0_file_head_t
|
|
{
|
|
boot_file_head_t boot_head;
|
|
boot0_private_head_t prvt_head;
|
|
char hash[16];
|
|
normal_gpio_cfg i2c_gpio[2];
|
|
/*write back to spl to limit dram size*/
|
|
__u32 dram_size;
|
|
flash_map_config flash_map;
|
|
unsigned int secure_dram_mbytes;
|
|
unsigned int drm_start_mbytes;
|
|
unsigned int drm_size_mbytes;
|
|
__u8 reserved[8];
|
|
union {
|
|
#ifdef CFG_SUNXI_SELECT_DRAM_PARA
|
|
boot_extend_head_t extd_head;
|
|
#endif
|
|
fes_aide_info_t fes1_res_addr;
|
|
|
|
} fes_union_addr;
|
|
}boot0_file_head_t;
|
|
|
|
typedef struct _sboot_file_head_t
|
|
{
|
|
boot_file_head_t boot_head;
|
|
char hash[16];
|
|
normal_gpio_cfg i2c_gpio[2];
|
|
char data[8];
|
|
flash_map_config flash_map;
|
|
char res[8];
|
|
#ifdef CFG_SUNXI_SELECT_DRAM_PARA
|
|
boot_extend_head_t extd_head;
|
|
#endif
|
|
}sboot_file_head_t;
|
|
|
|
extern const sboot_file_head_t sboot_head ;
|
|
extern const boot0_file_head_t BT0_head;
|
|
extern const boot0_file_head_t fes1_head;
|
|
|
|
#endif
|