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

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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    8 }) M& n% X! J
    gd_t和bd_t是u-boot中两个重要的数据结构,在初始化操作很多都要靠这两个数据结构来保存或传递。分别定义在./include/asm-ARM/global_data.h和 ./include/asm-arm/u-boot.h
    5 G. i" t9 U5 {- c& h( g  ~6 b" ?% `2 ?9 N/ g! d, O: y
    1、gd_t : global data数据结构定义,位于文件 include/asm-arm/global_data.h。其成员主要是一些全局的系统初始化参数。当使用gd_t时需用宏定义进行声明:DECLARE_GLOBAL_DATA_PTR,指定占用寄存器R8。
    + M0 n7 n7 r' k0 y. m
    . a2 U5 H% j7 C5 v5 s# m  \" j( \: t0 |

    ; c" g" \* o, V  F! Ftypedef struct global_data {
    . X6 K+ c/ P* \; |  Kbd_t *bd; // struct board_info指针,保存板子信息# ]4 h' g: M1 v+ H
    unsigned long flags; // 指示标志,如设备已经初始化标志等
    , y4 \- M2 T% H9 s  O! H! x1 junsigned long baudrate; // 串口波特率
    7 e7 h1 i, h# u8 z: t" zunsigned long have_console; // 串口初始化标志3 T7 j+ C: K0 n0 ~
    unsigned long env_addr; // Address of Environment struct ,环境参数地址
    ( I1 @. @: G9 K5 @3 Yunsigned long env_valid; // 环境参数CRC检验有效标志
    9 b  ^( s/ q! d4 |' |& c6 s& \unsigned long fb_base; // frame buffer的基址
    . @- u2 ]$ S, X6 [#ifdef CONFIG_VFD
    5 l8 f' h! ]' ~) F0 U- Kunsigned char vfd_type; ) C/ U+ j) P% `9 Q( z
    #endif
    & W8 D" X$ `! P1 B8 @' h6 h0 l#if 0
    7 k% _8 y% U( V, j' Runsigned long cpu_clk; 8 h+ L! R/ r9 Z, H3 R
    unsigned long bus_clk;
    % B. `# J, E  u0 T3 C- Sunsigned long ram_size; ! p, X: i/ N( L( p
    unsigned long reset_status;
    4 T2 g) m7 `) P: ]5 N; v#endif
    8 |) @; K! M6 K% a6 e$ L& kvoid **jt; ( ]7 G  B; C$ B, h" y
    } gd_t;
    / O1 P4 f! B, A6 f& {% z1 A
    , I; K* t; n1 P- F( A9 C! `8 n7 E4 l% K  h  W( g: g1 ?

    & o* ]9 b' q& w8 r. ~) x! k3 B* B, _#define GD_FLG_RELOC 0x00001
      F) a0 Q' g% [( y3 V  m5 s#define GD_FLG_DEVINIT 0x00002
      B; t% M  |9 v7 V#define GD_FLG_SILENT 0x00004
    4 w% x6 W+ b9 K' O#define GD_FLG_POSTFAIL 0x00008
    8 g: H3 U$ w: K' C8 d' c
    4 q: s% S6 o) d#define GD_FLG_POSTSTOP 0x00010* H* Y  \& B  p" u$ ]
    0 w* U' B( `; N* K9 `" ^: Z
    #define GD_FLG_LOGINIT 0x000203 C8 w/ {5 D1 J) h% e6 R
    / j7 z2 K' s* m0 Z' [
    #define GD_FLG_DISABLE_CONSOLE 0x00040
    1 _, i2 u0 Q' M% U! v4 H2 j#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r8")' L! w, F5 ?" Z; _- F" ~3 M

    # o; o2 q' {  H: L$ x2.、bd_t :board info数据结构定义,位于文件 include/asm-arm/u-boot.h。保存板子参数。0 Y. R7 U- R. ^  j( n7 ]6 t
    * B: E) }% K: c: ~
    typedef struct bd_info {3 s2 v" @1 ]! Z+ D2 |* }
    int bi_baudrate; // 串口波特率% b( D: }( I6 B4 t$ j+ H/ }
    unsigned long bi_ip_addr; // IP地址
    & K) V7 L; k9 [( \) Pstruct environment_s *bi_env;
    7 M! D& v1 C! a* I$ t& Q0 oulong bi_arch_number; // 板子ID号. q  E- x7 X( A" q: r0 i
    ulong bi_boot_params; // 启动参数0 ~# q& V; u0 e; M: B! E! e) P
    struct // DRAM BANKS配置,起始地址与长度4 J% k- Y+ W0 D: R5 A; l+ A# I
    {/ i2 G: h2 x1 b
    ulong start;
    . G& [, [- y3 ]8 rulong size;( Q3 e1 y) }% c0 H" r& x
    }bi_dram[CONFIG_NR_DRAM_BANKS];, `7 {" f, G1 V' ^% o% m
    } 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:23 , Processed in 0.187500 second(s), 23 queries , Gzip On.

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

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

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