TA的每日心情 | 怒 2019-11-20 15:22 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
5 z2 m+ k7 j4 t
gd_t和bd_t是u-boot中两个重要的数据结构,在初始化操作很多都要靠这两个数据结构来保存或传递。分别定义在./include/asm-ARM/global_data.h和 ./include/asm-arm/u-boot.h
8 N1 G5 X7 C0 q; d$ V) E
e7 E& g3 q5 X8 o, I- ]( s1、gd_t : global data数据结构定义,位于文件 include/asm-arm/global_data.h。其成员主要是一些全局的系统初始化参数。当使用gd_t时需用宏定义进行声明:DECLARE_GLOBAL_DATA_PTR,指定占用寄存器R8。; m6 r }: c" V2 ?% g* B
" D. L$ C. S! D! D7 H
2 o) b4 f X4 I
5 c! }+ X, p7 }+ Ktypedef struct global_data {0 N9 }2 l& }; P; ~
bd_t *bd; // struct board_info指针,保存板子信息* O7 | {% Y( ~
unsigned long flags; // 指示标志,如设备已经初始化标志等
q. G9 V5 S- L, g) @unsigned long baudrate; // 串口波特率& \0 u% s+ X9 O- e- g
unsigned long have_console; // 串口初始化标志8 c: s! P% t/ e; x, u( l
unsigned long env_addr; // Address of Environment struct ,环境参数地址
% F% J; ^0 d- y8 X" f' I8 e0 `unsigned long env_valid; // 环境参数CRC检验有效标志
8 ]: S3 G r; C4 M% x; Kunsigned long fb_base; // frame buffer的基址3 `, d6 ?1 @4 ~7 R {( ^1 A
#ifdef CONFIG_VFD* i5 x. n; t# Q! Y0 O4 M
unsigned char vfd_type; 2 U9 l0 ^. ~4 U$ D
#endif N! q6 _3 T* [# Y0 @. o! O
#if 0
5 B+ h* s9 ?. w, i6 j/ E k% L. O/ Eunsigned long cpu_clk; / M- ~% P3 Y5 L- x
unsigned long bus_clk;
) ~' Y( t; h- \' e8 V! U( l1 gunsigned long ram_size; ; z& X- b: E2 H4 [4 [' l' I& j
unsigned long reset_status; 0 S2 ?% e" G; A$ S
#endif' W$ H- v1 [3 t8 L: Z. b
void **jt; - t6 U* w2 S' w$ B0 k% D& Z1 T; ~& d
} gd_t;
& d- H( p6 f2 {3 H5 T. s7 Z
) y, Z$ \, A# F' r! _
% I, I8 x' Y$ E7 |
7 w( Z$ d* J T1 [0 E2 B# y#define GD_FLG_RELOC 0x00001 & D2 v, o( d: L- y% ]
#define GD_FLG_DEVINIT 0x00002 $ t' u( \' B: x" ^
#define GD_FLG_SILENT 0x00004
$ Y" d; _9 W& ?* ~#define GD_FLG_POSTFAIL 0x00008, V$ { z. q% ]" u1 L
' I& d4 @1 h) N2 u$ g5 n#define GD_FLG_POSTSTOP 0x00010
/ W4 r9 \* a. M$ S: w, \4 z6 Y' I+ T4 q0 i
#define GD_FLG_LOGINIT 0x00020
8 }! j# U4 X+ f. N/ M7 t* v3 _
l& N: Y" e5 b, s/ i7 P; l#define GD_FLG_DISABLE_CONSOLE 0x00040 ; b0 @. L; K! P8 }7 s% T
#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r8")7 K& `4 `* f) {5 R8 ~4 F4 L% \
+ n- h8 R; H% j+ V2.、bd_t :board info数据结构定义,位于文件 include/asm-arm/u-boot.h。保存板子参数。2 x# F4 t7 b8 n2 Z T. D, a; W3 J$ n
8 H) T+ A+ ?; X
typedef struct bd_info {
9 J% X- S& W+ j- I3 ?int bi_baudrate; // 串口波特率
% M3 n8 E2 ?1 e9 f8 @& |unsigned long bi_ip_addr; // IP地址7 \! Q* Y: a% k. O! o/ O
struct environment_s *bi_env;9 S) B" z) L& W% ~0 F# Z* b6 s& G
ulong bi_arch_number; // 板子ID号- x% {% d0 o) Q- r' j' I% n7 }
ulong bi_boot_params; // 启动参数; ~; C7 d7 e; W. t/ X( n
struct // DRAM BANKS配置,起始地址与长度& I- O5 P* D/ B4 v( _& R
{
2 l( z6 P+ x; x2 [0 Xulong start;. C' q7 {1 T0 _
ulong size;/ R7 }6 u# t2 l" j, ?
}bi_dram[CONFIG_NR_DRAM_BANKS];7 H0 ~7 `& D9 ~% q# t" `9 K& o3 W
} bd_t; |
|