- 论坛徽章:
- 5
|
这是mpc7xxx的boot sequence. 红色字体就是相关部分.
(cpu/mpc7xxx/start.S)
start: b boot_cold
start_warm: b boot_warm
boot_cold: boot_warm: clear bats
init l2 (if enabled)
init altivec (if enabled)
invalidate l2 (if enabled)
setup bats (from defines in config_EVB)
enable_addr_trans: (if MMU enabled) enable MSR_IR and MSR_DR jump to in_flash
in_flash: enable l1 dcache
gal_low_init: (board/evb64260/sdram_init.S) config SDRAM (CFG, TIMING, DECODE)
init scratch regs (810 + 814)
detect DIMM0 (bank 0 only)
config SDRAM_PARA0 to 256/512Mbit
bl sdram_op_mode
detect bank0 width write scratch reg 810 config SDRAM_PARA0 with results
config SDRAM_PARA1 with results
detect DIMM1 (bank 2 only)
config SDRAM_PARA2 to 256/512Mbit
detect bank2 width write scratch reg 814 config SDRAM_PARA2 with results
config SDRAM_PARA3 with results
setup device bus timings/width
setup boot device timings/width
setup CPU_CONF (0x0)
setup cpu master control register 0x160
setup PCI0 TIMEOUT
setup PCI1 TIMEOUT
setup PCI0 BAR
setup PCI1 BAR
setup MPP control 0-3
setup GPP level control
setup Serial ports multiplex
setup stack pointer (r1)
setup GOT
call cpu_init_f debug leds board_init_f: (common/board.c) board_early_init_f: remap gt regs?
map PCI mem/io
map device space
clear out interupts init_timebase
env_init
serial_init
console_init_f
display_options
initdram: (board/evb64260/evb64260.c) detect memory
for each bank: dram_size()
setup PCI slave memory mappings
setup SCS setup monitor alloc board info struct
init bd struct
relocate_code: (cpu/mpc7xxx/start.S) copy,got,clearbss
board_init_r(bd, dest_addr) (common/board.c) setup bd function pointers
trap_init
flash_init: (board/evb64260/flash.c)
setup bd flash info
cpu_init_r: (cpu/mpc7xxx/cpu_init.c) nothing mem_malloc_init
malloc_bin_reloc
spi_init (r or f)??? (CFG_ENV_IS_IN_EEPROM)
env_relocated
misc_init_r(bd): (board/evb64260/evb64260.c) mpsc_init2 |
|