OK6410 uboot1.1.16的board.c相关函数分析(关键数据结构(gd_t和bd_t))

来源:互联网 发布:网络公共课 编辑:程序博客网 时间:2024/04/27 19:23

1)、gd_t该数据结构保存了u-boot需要的配置信息,定义uboot1.1.6/include/asm-arm/Global_data.h
typedef struct global_data {
 bd_t  *bd;
 unsigned long flags;
 unsigned long baudrate;
 unsigned long have_console; /* serial_init() was called */
 unsigned long reloc_off; /* Relocation Offset */重定位偏移
 unsigned long env_addr; /* Address  of Environment struct */
 unsigned long env_valid; /* Checksum of Environment valid? */
 unsigned long fb_base; /* base address of frame buffer */
#ifdef CONFIG_VFD
 unsigned char vfd_type; /* display type */
#endif
#if 0
 unsigned long cpu_clk; /* CPU clock in Hz!  */CPU时钟频率
 unsigned long bus_clk; 总线时钟频率
 unsigned long ram_size; /* RAM size */RAM大小
 unsigned long reset_status; /* reset status register at boot */
#endif
 void  **jt;  /* jump table */
} gd_t;

 

其中void  **jt保存着些函数的入口地址,在common/Exports.c中进行填充



2)、bd_t 保存与板子相关的配置参数,定义在uboot1.1.6/include/asm-arm/u-boot.h
typedef struct bd_info {
    int   bi_baudrate; /* serial console baudrate */
    unsigned long bi_ip_addr; /* IP Address */
    unsigned char bi_enetaddr[6]; /* Ethernet adress */
    struct environment_s        *bi_env;环境变量地址指针
    ulong         bi_arch_number; /* unique id for this board */
    ulong         bi_boot_params; /* where this board expects params */
    struct    /* RAM configuration */
    {
 ulong start;
 ulong size;
    }    bi_dram[CONFIG_NR_DRAM_BANKS];
#ifdef CONFIG_HAS_ETH1
    /* second onboard ethernet port */
    unsigned char   bi_enet1addr[6];
#endif
} bd_t;

原创粉丝点击