[u-boot: 2013.04]
[Author: Bo Shen <[email protected]>]
1. 使用
bdinfo: print board info structure.
其源代碼:<common/cmd_bdinfo.c>
對於ARM架構,bdinfo打印信息包括:
-- bd_t (前文件介紹: http://www.linuxidc.com/Linux/2013-05/83993.htm )的內容:
-- bi_baudrate, bi_arch_number, bi_boot_params, bi_dram[i].start, bi_dram[i].size
-- bi_arm_freq, bi_dsp_freq, bi_ddr_freq (這些是davinci SoC相關).
-- 如果沒有定義CONFIG_SYS_ICACHE_OFF和CONFIG_SYS_DCACHE_OFF, 則打印: tlb_addr.
-- gd_t 中的部份內容:
-- relocaddr, reloc_off, irq_sp, start_addr_sp, fb_base.
2. 這些值是什麼時候得到的呢?
2.1 bi_baudrate
對於ARM來說,首先在board_init_f --> init_sequence[] --> init_baudrate(),從環境變量中讀取baudrate的值(如果沒有,則使用CONFIG_BAUDRATE), 賦給gd->baudrate,最後在board_init_f中通過gd->bd->bi_baudrate=gd->baudrate得到。
2.2 bi_arch_number
這個值是board相關,通常是在board相關代碼中進行賦值的。
對Atmel at91sam9m10g45ek board, 則是在<board/atmel/at91sam9m10g45ek/at91sam9m10g45ek.c>中進行賦值的。
gd->bd->bi_arch_number = MACH_TYPE_AT91SAM9M10G45EK;
2.3 bi_boot_params
這個值是board相關,通常在board相關代碼中進行賦值的。
對Atmel at91sam9m10g45ek board, 則是在<board/atmel/at91sam9m10g45ek/at91sam9m10g45ek.c>中進行賦值的。
gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;