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

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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    : A2 ~* V, P0 N
    gd_t和bd_t是u-boot中两个重要的数据结构,在初始化操作很多都要靠这两个数据结构来保存或传递。分别定义在./include/asm-ARM/global_data.h和 ./include/asm-arm/u-boot.h
    + K! g" Q5 i7 B. B6 d5 D/ J9 n& w3 u; u0 C' F  ~7 [
    1、gd_t : global data数据结构定义,位于文件 include/asm-arm/global_data.h。其成员主要是一些全局的系统初始化参数。当使用gd_t时需用宏定义进行声明:DECLARE_GLOBAL_DATA_PTR,指定占用寄存器R8。& f6 G" b4 P( s0 j, X. k

    * z! t8 T' N- C! Q& G
    9 K  w* G3 X# {  f: ?4 K5 l% L1 _/ I8 t
    typedef struct global_data {! X$ c+ y- M& X7 C+ K4 `9 K- [8 v+ M
    bd_t *bd; // struct board_info指针,保存板子信息
      Q5 n6 O" {2 I7 ?unsigned long flags; // 指示标志,如设备已经初始化标志等5 |& G  {0 x2 y- f
    unsigned long baudrate; // 串口波特率4 y& R, x$ I% o! O6 y; U2 x; l1 T
    unsigned long have_console; // 串口初始化标志/ u) |6 E# {9 u7 R5 I
    unsigned long env_addr; // Address of Environment struct ,环境参数地址+ h$ q! T8 i8 M7 r: b5 L% c8 |8 B
    unsigned long env_valid; // 环境参数CRC检验有效标志3 q  O7 H# W1 L8 @" s5 n& Q# Q
    unsigned long fb_base; // frame buffer的基址
      `1 a6 i: Q& `1 z$ t1 ]#ifdef CONFIG_VFD) {8 K2 `) t  s6 ^
    unsigned char vfd_type; ) E* b" H/ Y/ W# b9 M; d, Q4 Q
    #endif
    8 t3 Q) k+ v; a7 c- Z#if 0! b+ `7 [% \; A0 \! V. O
    unsigned long cpu_clk; 7 t- Q$ f: K( C8 s4 I! ?+ r
    unsigned long bus_clk;
    - Y3 x: F0 b9 X. p, W; ~6 t8 X- nunsigned long ram_size; / v9 d; z3 Y7 C$ h% [, [. p0 @
    unsigned long reset_status; % K- B9 r; M, c0 Y
    #endif1 M% y5 [* o; `' n! t# K
    void **jt; ) C9 v% C. c7 k# h
    } gd_t;; D$ p- l% ^$ i& p0 [* f5 R

    8 K4 |# `# @( L/ O
    ! \9 i' ]# H. e3 B% M8 d3 F
    4 U" Q! K! V& U. r; U% i#define GD_FLG_RELOC 0x00001
    / r% U+ d) ~, \( t1 M* i#define GD_FLG_DEVINIT 0x00002 0 O* t6 o  {! M
    #define GD_FLG_SILENT 0x00004
    9 p1 j( g& ^4 X# P1 z; o& g#define GD_FLG_POSTFAIL 0x00008
    7 G: |0 i* j! M' w* S" O0 O, @- p5 a5 Y/ v1 e
    #define GD_FLG_POSTSTOP 0x00010; w. l$ _9 `' ~! F& _' `: }! k
    : V- L: i" r+ I: q
    #define GD_FLG_LOGINIT 0x00020
    - S2 d- k; z" ^1 @5 ^  m: h: L0 I9 F
    #define GD_FLG_DISABLE_CONSOLE 0x00040 " X1 n: h3 F' a: }$ u
    #define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r8")
    $ @0 A8 V. }) |$ r) x& _
    " Q/ _" Z8 s, R, a! w- ?9 S5 }2.、bd_t :board info数据结构定义,位于文件 include/asm-arm/u-boot.h。保存板子参数。
    . v! n6 u! G- K7 J7 F
    " T7 p) X4 R! N6 |& Z+ _typedef struct bd_info {
    & _; M. u/ N! [int bi_baudrate; // 串口波特率& ?9 A2 r5 m4 K: r3 Q- @  U
    unsigned long bi_ip_addr; // IP地址% Q' |3 [- O$ M. W
    struct environment_s *bi_env;+ Q& N7 v- x( D- {7 y/ l# w
    ulong bi_arch_number; // 板子ID号
    1 W+ a& S3 F7 E, }9 P% Kulong bi_boot_params; // 启动参数$ p" ^; M) U" G
    struct // DRAM BANKS配置,起始地址与长度7 m) x3 @4 Z: z% l
    {& k0 m2 K/ x3 n
    ulong start;
    4 F: I8 \9 u! {) p0 ]) l% X% ^8 Bulong size;( a  l  z/ x  S
    }bi_dram[CONFIG_NR_DRAM_BANKS];# E' g' D! o& L/ \. G5 B# @
    } 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 21:05 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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