找回密码
 注册
关于网站域名变更的通知
查看: 302|回复: 1
打印 上一主题 下一主题

U-boot的gd_t和bd_t数据结构简介

[复制链接]
  • TA的每日心情

    2019-11-20 15:22
  • 签到天数: 2 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2020-10-28 16:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    5 z2 m+ k7 j4 t
    gd_t和bd_t是u-boot中两个重要的数据结构,在初始化操作很多都要靠这两个数据结构来保存或传递。分别定义在./include/asm-ARM/global_data.h和 ./include/asm-arm/u-boot.h
    8 N1 G5 X7 C0 q; d$ V) E
      e7 E& g3 q5 X8 o, I- ]( s1、gd_t : global data数据结构定义,位于文件 include/asm-arm/global_data.h。其成员主要是一些全局的系统初始化参数。当使用gd_t时需用宏定义进行声明:DECLARE_GLOBAL_DATA_PTR,指定占用寄存器R8。; m6 r  }: c" V2 ?% g* B
    " D. L$ C. S! D! D7 H
    2 o) b4 f  X4 I

    5 c! }+ X, p7 }+ Ktypedef struct global_data {0 N9 }2 l& }; P; ~
    bd_t *bd; // struct board_info指针,保存板子信息* O7 |  {% Y( ~
    unsigned long flags; // 指示标志,如设备已经初始化标志等
      q. G9 V5 S- L, g) @unsigned long baudrate; // 串口波特率& \0 u% s+ X9 O- e- g
    unsigned long have_console; // 串口初始化标志8 c: s! P% t/ e; x, u( l
    unsigned long env_addr; // Address of Environment struct ,环境参数地址
    % F% J; ^0 d- y8 X" f' I8 e0 `unsigned long env_valid; // 环境参数CRC检验有效标志
    8 ]: S3 G  r; C4 M% x; Kunsigned long fb_base; // frame buffer的基址3 `, d6 ?1 @4 ~7 R  {( ^1 A
    #ifdef CONFIG_VFD* i5 x. n; t# Q! Y0 O4 M
    unsigned char vfd_type; 2 U9 l0 ^. ~4 U$ D
    #endif  N! q6 _3 T* [# Y0 @. o! O
    #if 0
    5 B+ h* s9 ?. w, i6 j/ E  k% L. O/ Eunsigned long cpu_clk; / M- ~% P3 Y5 L- x
    unsigned long bus_clk;
    ) ~' Y( t; h- \' e8 V! U( l1 gunsigned long ram_size; ; z& X- b: E2 H4 [4 [' l' I& j
    unsigned long reset_status; 0 S2 ?% e" G; A$ S
    #endif' W$ H- v1 [3 t8 L: Z. b
    void **jt; - t6 U* w2 S' w$ B0 k% D& Z1 T; ~& d
    } gd_t;
    & d- H( p6 f2 {3 H5 T. s7 Z
    ) y, Z$ \, A# F' r! _
    % I, I8 x' Y$ E7 |
    7 w( Z$ d* J  T1 [0 E2 B# y#define GD_FLG_RELOC 0x00001 & D2 v, o( d: L- y% ]
    #define GD_FLG_DEVINIT 0x00002 $ t' u( \' B: x" ^
    #define GD_FLG_SILENT 0x00004
    $ Y" d; _9 W& ?* ~#define GD_FLG_POSTFAIL 0x00008, V$ {  z. q% ]" u1 L

    ' I& d4 @1 h) N2 u$ g5 n#define GD_FLG_POSTSTOP 0x00010
    / W4 r9 \* a. M$ S: w, \4 z6 Y' I+ T4 q0 i
    #define GD_FLG_LOGINIT 0x00020
    8 }! j# U4 X+ f. N/ M7 t* v3 _
      l& N: Y" e5 b, s/ i7 P; l#define GD_FLG_DISABLE_CONSOLE 0x00040 ; b0 @. L; K! P8 }7 s% T
    #define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r8")7 K& `4 `* f) {5 R8 ~4 F4 L% \

    + n- h8 R; H% j+ V2.、bd_t :board info数据结构定义,位于文件 include/asm-arm/u-boot.h。保存板子参数。2 x# F4 t7 b8 n2 Z  T. D, a; W3 J$ n
    8 H) T+ A+ ?; X
    typedef struct bd_info {
    9 J% X- S& W+ j- I3 ?int bi_baudrate; // 串口波特率
    % M3 n8 E2 ?1 e9 f8 @& |unsigned long bi_ip_addr; // IP地址7 \! Q* Y: a% k. O! o/ O
    struct environment_s *bi_env;9 S) B" z) L& W% ~0 F# Z* b6 s& G
    ulong bi_arch_number; // 板子ID号- x% {% d0 o) Q- r' j' I% n7 }
    ulong bi_boot_params; // 启动参数; ~; C7 d7 e; W. t/ X( n
    struct // DRAM BANKS配置,起始地址与长度& I- O5 P* D/ B4 v( _& R
    {
    2 l( z6 P+ x; x2 [0 Xulong start;. C' q7 {1 T0 _
    ulong size;/ R7 }6 u# t2 l" j, ?
    }bi_dram[CONFIG_NR_DRAM_BANKS];7 H0 ~7 `& D9 ~% q# t" `9 K& o3 W
    } bd_t;

    该用户从未签到

    2#
    发表于 2020-10-28 16:54 | 只看该作者
    U-boot的gd_t和bd_t数据结构简介
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-27 11:00 , Processed in 0.062500 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表