summaryrefslogtreecommitdiffstats
path: root/arch/i386/cpu/start.S
diff options
context:
space:
mode:
authorGraeme Russ <graeme.russ@gmail.com>2011-02-12 15:11:33 +1100
committerGraeme Russ <graeme.russ@gmail.com>2011-02-12 15:11:33 +1100
commit4e33467d44620edf224aad03c2c7396fb4918696 (patch)
treefad8135cb615cabf1c909e13f8a3094b953bc317 /arch/i386/cpu/start.S
parent0c24c9cc71cb3e0976a4806d57450e79b349fb40 (diff)
downloadbootable_bootloader_goldelico_gta04-4e33467d44620edf224aad03c2c7396fb4918696.zip
bootable_bootloader_goldelico_gta04-4e33467d44620edf224aad03c2c7396fb4918696.tar.gz
bootable_bootloader_goldelico_gta04-4e33467d44620edf224aad03c2c7396fb4918696.tar.bz2
x86: Call early_board_init when warm booting
early_board_init has been skipped to avoid SDRAM corruption in the case that a fully relocatable image has been loaded into SDRAM and is being executed from SDRAM. x86 is being aligned with other architectures (ARM and PPC in particlar) and will be using Cache-As-RAM to run a C environment from Flash (or SRAM if you have some). early_board_init may be needed to assist in the setup of Cache-As-RAM and the early C environment
Diffstat (limited to 'arch/i386/cpu/start.S')
-rw-r--r--arch/i386/cpu/start.S10
1 files changed, 5 insertions, 5 deletions
diff --git a/arch/i386/cpu/start.S b/arch/i386/cpu/start.S
index 460c21b..97bac8f 100644
--- a/arch/i386/cpu/start.S
+++ b/arch/i386/cpu/start.S
@@ -67,16 +67,16 @@ _start:
/* Clear the interupt vectors */
lidt blank_idt_ptr
- /* Skip low-level initialization if not starting from cold-reset */
- movl %ebx, %ecx
- andl $GD_FLG_COLD_BOOT, %ecx
- jz skip_mem_init
-
/* Early platform init (setup gpio, etc ) */
jmp early_board_init
.globl early_board_init_ret
early_board_init_ret:
+ /* Skip memory initialization if not starting from cold-reset */
+ movl %ebx, %ecx
+ andl $GD_FLG_COLD_BOOT, %ecx
+ jz skip_mem_init
+
/* size memory */
jmp mem_init
.globl mem_init_ret