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

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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x

    $ ^  q0 p: M" L% h4 }! b; Hgd_t和bd_t是u-boot中两个重要的数据结构,在初始化操作很多都要靠这两个数据结构来保存或传递。分别定义在./include/asm-ARM/global_data.h和 ./include/asm-arm/u-boot.h9 G7 P+ d2 Y1 F' ]
    5 r4 L. l+ f9 a4 P
    1、gd_t : global data数据结构定义,位于文件 include/asm-arm/global_data.h。其成员主要是一些全局的系统初始化参数。当使用gd_t时需用宏定义进行声明:DECLARE_GLOBAL_DATA_PTR,指定占用寄存器R8。& d8 w* {$ D( w  X( A6 a  ~

    , V& A& F' ~4 l0 c4 N
    . I5 \, Z% T4 E$ j* R
    - t* X. }, h/ W& Z' b9 utypedef struct global_data {
    " {. K* r: n0 j: g+ A2 ybd_t *bd; // struct board_info指针,保存板子信息
    ' M1 L6 C0 G9 j9 funsigned long flags; // 指示标志,如设备已经初始化标志等) a& g% B" ~0 o; F  O& G( p/ q8 G
    unsigned long baudrate; // 串口波特率
    3 X: o; O$ e4 J+ P' j( ^2 Aunsigned long have_console; // 串口初始化标志0 l2 q9 L1 A1 \/ O: \
    unsigned long env_addr; // Address of Environment struct ,环境参数地址( r; T$ [* F  T
    unsigned long env_valid; // 环境参数CRC检验有效标志+ w* ], }, a- a  ~: f; ]+ _
    unsigned long fb_base; // frame buffer的基址
    ( A# S- x) j! N/ Y#ifdef CONFIG_VFD( ?2 e7 l8 x; M0 B
    unsigned char vfd_type;
    7 [$ d% c2 }; Z+ g0 E#endif* `6 Y4 O# U4 o1 B1 ]
    #if 0
    ( t7 T+ T4 Y$ n* }7 l& C0 ~unsigned long cpu_clk;
    . m9 t' d8 h, M! h% O4 Junsigned long bus_clk;
    7 o% l- C  b( bunsigned long ram_size;
    3 q' g0 U6 P1 _3 ?, r* \unsigned long reset_status; . D- t8 p% `+ F4 f
    #endif
    ( a( Y% l5 ^5 A& I7 v8 qvoid **jt; 4 i' T0 A( H6 b
    } gd_t;7 C9 Z9 H) y8 X- G; {: a! R- N

    6 v) \; G6 V" @7 x$ i+ N/ U/ ]& s+ X" x
    6 j1 B3 |, n1 [. F9 i/ T$ ^' j% j, J" |/ W) y3 f
    #define GD_FLG_RELOC 0x00001 $ G% u; H2 _% m4 V
    #define GD_FLG_DEVINIT 0x00002 3 B7 I7 L, R+ {; T
    #define GD_FLG_SILENT 0x00004   u, a8 x0 i9 a
    #define GD_FLG_POSTFAIL 0x00008
    " L( j& u9 ?- G  M4 s
    ; q) x& P4 K+ {6 F: u* w2 I  S$ W" ^#define GD_FLG_POSTSTOP 0x00010* {  P% p9 l4 d

    . `  B4 S7 g3 B8 d2 i: e#define GD_FLG_LOGINIT 0x00020; a: t" ~7 Y( L) ?. [0 }& u
    * D1 m2 f; T+ R2 o: k. ^5 K/ l
    #define GD_FLG_DISABLE_CONSOLE 0x00040 # `) [3 c" i1 K8 V# d, X# s: l
    #define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r8")* j9 q! s' w( g8 T  M

    1 u/ j4 W  K4 g% w6 r! e) w2.、bd_t :board info数据结构定义,位于文件 include/asm-arm/u-boot.h。保存板子参数。
    ! N. x8 j" u3 i$ P
    8 q0 Y' u9 K- {! x: u6 \typedef struct bd_info {
    8 [8 a$ k9 `1 r% iint bi_baudrate; // 串口波特率
    $ |! e! W' k! x! ~2 Dunsigned long bi_ip_addr; // IP地址: G" R' c) Z- o" y8 P* C
    struct environment_s *bi_env;
    7 m. [! m; d7 t0 l4 }" Iulong bi_arch_number; // 板子ID号
    9 }6 |2 }: x( n8 Sulong bi_boot_params; // 启动参数' z6 B! l: W2 a4 p" X8 _
    struct // DRAM BANKS配置,起始地址与长度
    ) H! D9 U" P$ _' y{
    # m  L* x. D! i  f3 j# Fulong start;2 a. b: X9 G5 E/ q/ c( b
    ulong size;% ~. b1 r/ u  p1 L' a/ `5 c
    }bi_dram[CONFIG_NR_DRAM_BANKS];5 {* c2 m( b8 z  [3 u7 c' S
    } 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 20:37 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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