TA的每日心情 | 怒 2019-11-20 15:22 |
|---|
签到天数: 2 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
9 j" R; W- r% }& D/ W* |2 y
gd_t和bd_t是u-boot中两个重要的数据结构,在初始化操作很多都要靠这两个数据结构来保存或传递。分别定义在./include/asm-ARM/global_data.h和 ./include/asm-arm/u-boot.h
+ ?9 ]+ k9 z. }+ N3 l& |
" a3 B8 _) F% ~: _, P7 }1、gd_t : global data数据结构定义,位于文件 include/asm-arm/global_data.h。其成员主要是一些全局的系统初始化参数。当使用gd_t时需用宏定义进行声明:DECLARE_GLOBAL_DATA_PTR,指定占用寄存器R8。
; X8 ?3 m- |. b; u
: ?, B- Z5 p. s5 z; M
( m" x# m: ]- e, j
2 o; r4 Q; X/ T+ K6 D3 ctypedef struct global_data {4 y7 n0 u% q/ }, `+ b+ U
bd_t *bd; // struct board_info指针,保存板子信息: I1 @ f" o) ~& H
unsigned long flags; // 指示标志,如设备已经初始化标志等% ^0 L: R* u6 d+ j x% ]' H1 \
unsigned long baudrate; // 串口波特率
% R( K5 w, _5 f# \1 E, P6 wunsigned long have_console; // 串口初始化标志( S9 J7 U: Z+ e5 w3 \* Y- ^
unsigned long env_addr; // Address of Environment struct ,环境参数地址5 R1 x8 u: h5 f1 d" y8 X
unsigned long env_valid; // 环境参数CRC检验有效标志
; f# E1 i7 E% e( V: ?4 q2 T3 Dunsigned long fb_base; // frame buffer的基址, g/ _ r) p! |9 }
#ifdef CONFIG_VFD
, [+ a1 X7 |6 ?( ^: ~) qunsigned char vfd_type; ) W( G; i5 r1 `) X! \
#endif+ C3 o. Q P9 F. ]+ o$ K
#if 0+ S: r! g& e' d5 Y
unsigned long cpu_clk;
B2 h8 b+ V- G* W1 Lunsigned long bus_clk;8 S8 b# \. g) i0 w2 o! q$ Y% _
unsigned long ram_size;
3 U0 P) {! `0 D% Q7 |unsigned long reset_status;
; ~% F' a0 W8 F. |' f& s; m#endif% _6 T2 g, ~' u% t8 e& @
void **jt; ( ~, E4 C' e/ V
} gd_t;
7 Q% _3 M6 e- `' r& \7 Z6 `) p' `1 W m! J
/ K" p: @6 l; w% S3 T0 V; s
* N4 T+ B; x+ B+ x$ a/ K#define GD_FLG_RELOC 0x00001
. J8 `- O9 G/ h#define GD_FLG_DEVINIT 0x00002
/ x; A0 D, l5 E; f' S7 {#define GD_FLG_SILENT 0x00004
1 N1 d" _; p" e$ U/ Y3 O8 f' P/ T#define GD_FLG_POSTFAIL 0x00008
6 O7 h/ E0 J$ _. H& u. E' I0 V% L( \$ X6 `
#define GD_FLG_POSTSTOP 0x000104 W! L1 I* F- }% M- ~" u1 j1 i
: K5 T' D* ^; t! ^. b) d. L$ |
#define GD_FLG_LOGINIT 0x00020 f4 ] R* L! O- {$ D! F/ t2 J! Z
8 b" N" s, i* i+ c* P1 P#define GD_FLG_DISABLE_CONSOLE 0x00040 ( n, O+ L7 |2 ]/ X% U( q/ b
#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r8")
2 ~6 ]2 W! y( ]& r1 n$ M% v0 \9 [6 v+ j. |
2.、bd_t :board info数据结构定义,位于文件 include/asm-arm/u-boot.h。保存板子参数。
8 u: J p9 N- \) @! v
3 M+ P. A1 R+ u8 Btypedef struct bd_info {
% O) @" Z( V, v& k0 qint bi_baudrate; // 串口波特率+ G7 u! T+ z% e, U9 R% G( D: A
unsigned long bi_ip_addr; // IP地址
, A+ [$ s$ A9 S @1 Qstruct environment_s *bi_env;" x; f2 ^5 s% j5 b# W) m) P
ulong bi_arch_number; // 板子ID号2 \1 O& j( x5 _7 D: G9 o3 c
ulong bi_boot_params; // 启动参数
, G1 |9 t9 o: e, H+ `5 Ustruct // DRAM BANKS配置,起始地址与长度! m/ r1 b- z* @" a; p, d
{
1 E2 n* |/ [7 x& f1 f3 culong start;% \9 t2 T8 d* ~9 ~2 _- w6 Q
ulong size;
- ~5 y D, p/ h. k2 b5 r}bi_dram[CONFIG_NR_DRAM_BANKS];
6 A& ~0 s" O ^0 \9 X} bd_t; |
|