Uboot 2014 Startup Message

uboot 2014 source refer: NXP (Freescale) Public Git

Introuction

U-Boot, the Universal Boot Loader is an open source, boot loader used in embedded devices. It is available for many computer architectures (68k, ARM, AVR32, Blackfin, MicroBlaze, MIPS, Nios, SuperH, PPC and x86).

Boot Console Message

There are many ways to know the uboot architecture better. We will start from the debug message since it is easiler to trace from the source code.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
U-Boot 2014.04-00008-g2f63f77 (Jul 26 2015 - 17:08:56)
CPU: Freescale i.MX6DL rev1.2 at 792 MHz
CPU: Temperature 30 C, calibration data: 0x5a95205f
Reset cause: POR
Board: ebx-taurus
I2C: ready
DRAM: 1 GiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1
*** Warning - bad CRC, using default environment
No panel detected: default to Hannstar-XGA
Display: Hannstar-XGA (1024x768)
In: serial
Out: serial
Err: serial
Found PFUZE100 deviceid=10,revid=21
detect and set boot device..
JEDEC ID: 0xef:0x40:0x17
check_and_clean: reg 0, flag_set 0
Fastboot: Normal
flash target is MMC:0
Net: FEC [PRIME]
Normal Boot
Hit any key to stop autoboot: 0
EMBUX-TAURUS >

I. Message trace

1. “U-Boot 2014.04-00008-g2f63f77 (Jul 26 2015 - 17:08:56)”

1
2
3
4
5
6
7
File: ~/common/board_f.c
static init_fnc_t init_sequence_f[] = {
...
display_options,
...
}
1
2
3
4
5
6
7
8
File: ~/lib/display_options.c
Function: display_options()
File: ~/common/cmd_version.c
Function: char __weak version_string[] = U_BOOT_VERSION_STRING;
File: ~/include/version.h
Function: U_BOOT_VERSION_STRING U_BOOT_VERSION " (" U_BOOT_DATE " - " U_BOOT_TIME ")" CONFIG_IDENT_STRING

2. “CPU: Freescale …”

Freescale i.MX6DL rev1.2 at 792 MHz”
CPU: Temperature 30 C, calibration data: 0x5a95205f”
Reset cause: POR

1
2
3
4
5
6
7
File: ~/common/board_f.c
static init_fnc_t init_sequence_f[] = {
...
print_cpuinfo, /* display cpu info (and speed) */
...
}
1
2
3
4
5
File: ~/arch/arm/imx-common/cpu.c
Function: print_cpuinfo()
File: ~/arch/arm/cpu/armv7/mx6/soc.c
Function: check_cpu_temperature()

3. Board: ebx-taurus”

1
2
3
4
5
6
7
File: ~/common/board_f.c
static init_fnc_t init_sequence_f[] = {
...
checkboard,
...
}
1
2
File: ~/board/freescale/ebx_taurus/ebx_taurus.c
Function: checkboard()

4. “I2C: ready”

1
2
3
4
5
6
7
File: ~/common/board_f.c
static init_fnc_t init_sequence_f[] = {
...
init_func_i2c,
...
}
1
2
File: ~/common/board_f.c
Function: init_func_i2c()

5. “DRAM: 1 GiB”

1
2
3
4
5
6
7
8
File: ~/common/board_f.c
static init_fnc_t init_sequence_f[] = {
...
announce_dram_init,
init_func_ram,
...
}
1
2
3
File: ~/common/board_f.c
Function: announce_dram_init()
Function: init_func_ram() -> initdram()

6. “MMC: FSL_SDHC: 0, FSL_SDHC: 1”

1
2
3
4
5
6
7
File: ~/common/board_r.c
static init_fnc_t init_sequence_f[] = {
...
initr_mmc,
...
}
1
2
3
4
5
File: ~/common/board_r.c
Function: initr_mmc() -> mmc_initialize()
File: ~/board/freescale/ebx_taurus/ebx_taurus.c
Function: board_mmc_init()

7. “* Warning - bad CRC, using default environment”

1
2
3
4
5
6
7
File: ~/common/board_r.c
static init_fnc_t init_sequence_f[] = {
...
initr_env,
...
}
1
2
3
4
5
File: ~/common/board_r.c
Function: initr_env() -> set_default_env()
File: ~/common/env_common.c
Function: set_default_env()

8. “No panel detected: … “

No panel detected: default to Hannstar-XGA
Display: Hannstar-XGA (1024x768)

1
2
File: ~/board/freescale/ebx_taurus/ebx_taurus.c
Function: board_video_skip()

9. “In: serial …”

In: serial
Out: serial
Err: serial

1
2
File: ~/common/console.c
Function: stdio_print_current_devices()

10. “Found PFUZE100 deviceid=10,revid=21”

1
2
File: ~/board/freescale/ebx_taurus/ebx_taurus.c
Function: setup_pmic_voltages()

11. “JEDEC ID: 0xef:0x40:0x17”

1
2
File: ~/drivers/mtd/spi/imx_spi_nor_m25pxx.c
Function: spi_nor_flash_query()

12. “check_and_clean: reg 0, flag_set 0”

1
2
File: ~/arch/arm/cpu/armv7/mx6/soc.c
Function: recovery_check_and_clean_flag()

13. “Fastboot: Normal”

1
2
File: ~/board/freescale/common/recovery.c
Function: check_recovery_mode()

14. “flash target is MMC:0”

1
2
File: ~/drivers/fastboot/fastboot.c
Function: _fastboot_parts_load_from_ptable()

15. “Net: FEC [PRIME]”

1
2
3
4
5
6
7
File: ~/common/board_r.c
static init_fnc_t init_sequence_f[] = {
...
initr_net,
...
}
1
2
File: ~/common/board_r.c
Function: initr_net() -> eth_initialize()

16. “Normal Boot”

1
2
File: ~/common/main.c
Function: process_boot_delay()

17. “Hit any key to stop autoboot: 0”

1
2
File: ~/common/main.c
Function: abortboot_normal()

II. uboot init function list

~: uboot-root-folder

Two important file for uboot init.

1
2
3
4
5
File: ~/common/board_f.c
init_fnc_t_init_sequence_f[]
File: ~/common/board_r.c
init_fnc_t_init_sequence_r[]