TA的每日心情 | 怒 2019-11-20 15:22 |
|---|
签到天数: 2 天 [LV.1]初来乍到
|
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; |
|