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

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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    9 j" R; W- r% }& D/ W* |2 y
    gd_t和bd_t是u-boot中两个重要的数据结构,在初始化操作很多都要靠这两个数据结构来保存或传递。分别定义在./include/asm-ARM/global_data.h和 ./include/asm-arm/u-boot.h
    + ?9 ]+ k9 z. }+ N3 l& |
    " a3 B8 _) F% ~: _, P7 }1、gd_t : global data数据结构定义,位于文件 include/asm-arm/global_data.h。其成员主要是一些全局的系统初始化参数。当使用gd_t时需用宏定义进行声明:DECLARE_GLOBAL_DATA_PTR,指定占用寄存器R8。
    ; X8 ?3 m- |. b; u
    : ?, B- Z5 p. s5 z; M
    ( m" x# m: ]- e, j
    2 o; r4 Q; X/ T+ K6 D3 ctypedef struct global_data {4 y7 n0 u% q/ }, `+ b+ U
    bd_t *bd; // struct board_info指针,保存板子信息: I1 @  f" o) ~& H
    unsigned long flags; // 指示标志,如设备已经初始化标志等% ^0 L: R* u6 d+ j  x% ]' H1 \
    unsigned long baudrate; // 串口波特率
    % R( K5 w, _5 f# \1 E, P6 wunsigned long have_console; // 串口初始化标志( S9 J7 U: Z+ e5 w3 \* Y- ^
    unsigned long env_addr; // Address of Environment struct ,环境参数地址5 R1 x8 u: h5 f1 d" y8 X
    unsigned long env_valid; // 环境参数CRC检验有效标志
    ; f# E1 i7 E% e( V: ?4 q2 T3 Dunsigned long fb_base; // frame buffer的基址, g/ _  r) p! |9 }
    #ifdef CONFIG_VFD
    , [+ a1 X7 |6 ?( ^: ~) qunsigned char vfd_type; ) W( G; i5 r1 `) X! \
    #endif+ C3 o. Q  P9 F. ]+ o$ K
    #if 0+ S: r! g& e' d5 Y
    unsigned long cpu_clk;
      B2 h8 b+ V- G* W1 Lunsigned long bus_clk;8 S8 b# \. g) i0 w2 o! q$ Y% _
    unsigned long ram_size;
    3 U0 P) {! `0 D% Q7 |unsigned long reset_status;
    ; ~% F' a0 W8 F. |' f& s; m#endif% _6 T2 g, ~' u% t8 e& @
    void **jt; ( ~, E4 C' e/ V
    } gd_t;
    7 Q% _3 M6 e- `' r& \7 Z6 `) p' `1 W  m! J
    / K" p: @6 l; w% S3 T0 V; s

    * N4 T+ B; x+ B+ x$ a/ K#define GD_FLG_RELOC 0x00001
    . J8 `- O9 G/ h#define GD_FLG_DEVINIT 0x00002
    / x; A0 D, l5 E; f' S7 {#define GD_FLG_SILENT 0x00004
    1 N1 d" _; p" e$ U/ Y3 O8 f' P/ T#define GD_FLG_POSTFAIL 0x00008
    6 O7 h/ E0 J$ _. H& u. E' I0 V% L( \$ X6 `
    #define GD_FLG_POSTSTOP 0x000104 W! L1 I* F- }% M- ~" u1 j1 i
    : K5 T' D* ^; t! ^. b) d. L$ |
    #define GD_FLG_LOGINIT 0x00020  f4 ]  R* L! O- {$ D! F/ t2 J! Z

    8 b" N" s, i* i+ c* P1 P#define GD_FLG_DISABLE_CONSOLE 0x00040 ( n, O+ L7 |2 ]/ X% U( q/ b
    #define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r8")
    2 ~6 ]2 W! y( ]& r1 n$ M% v0 \9 [6 v+ j. |
    2.、bd_t :board info数据结构定义,位于文件 include/asm-arm/u-boot.h。保存板子参数。
    8 u: J  p9 N- \) @! v
    3 M+ P. A1 R+ u8 Btypedef struct bd_info {
    % O) @" Z( V, v& k0 qint bi_baudrate; // 串口波特率+ G7 u! T+ z% e, U9 R% G( D: A
    unsigned long bi_ip_addr; // IP地址
    , A+ [$ s$ A9 S  @1 Qstruct environment_s *bi_env;" x; f2 ^5 s% j5 b# W) m) P
    ulong bi_arch_number; // 板子ID号2 \1 O& j( x5 _7 D: G9 o3 c
    ulong bi_boot_params; // 启动参数
    , G1 |9 t9 o: e, H+ `5 Ustruct // DRAM BANKS配置,起始地址与长度! m/ r1 b- z* @" a; p, d
    {
    1 E2 n* |/ [7 x& f1 f3 culong start;% \9 t2 T8 d* ~9 ~2 _- w6 Q
    ulong size;
    - ~5 y  D, p/ h. k2 b5 r}bi_dram[CONFIG_NR_DRAM_BANKS];
    6 A& ~0 s" O  ^0 \9 X} bd_t;

    该用户从未签到

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-24 23:51 , Processed in 0.187500 second(s), 23 queries , Gzip On.

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

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

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