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

本文详细分析了u-boot1.1.16版本中针对OK6410板子的board.c文件,重点关注了全局数据结构gd_t和bd_t。gd_t结构包含配置信息、重定位偏移和环境变量地址等,而bd_t结构存储了板级配置参数,如串口波特率、IP地址、以太网MAC地址及DRAM配置等。
摘要由CSDN通过智能技术生成

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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值