diff options
author | Tom Rini <trini@konsulko.com> | 2015-07-15 14:41:20 (GMT) |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2015-07-15 14:41:20 (GMT) |
commit | 605e15db2b54302364a2528d3c6604fbc57be846 (patch) | |
tree | 1a1e344964bff1719939183124d66a71e7ca7731 /arch/x86/lib/fsp/fsp_car.S | |
parent | 4905dfc65d9a17083727865302d2cf633c15c911 (diff) | |
parent | f110da9984c0aa0aba9e1c4178b67b7abecf7e8d (diff) | |
download | u-boot-605e15db2b54302364a2528d3c6604fbc57be846.tar.xz |
Merge git://git.denx.de/u-boot-x86
Diffstat (limited to 'arch/x86/lib/fsp/fsp_car.S')
-rw-r--r-- | arch/x86/lib/fsp/fsp_car.S | 26 |
1 files changed, 5 insertions, 21 deletions
diff --git a/arch/x86/lib/fsp/fsp_car.S b/arch/x86/lib/fsp/fsp_car.S index 5e09568..afbf3f9 100644 --- a/arch/x86/lib/fsp/fsp_car.S +++ b/arch/x86/lib/fsp/fsp_car.S @@ -56,28 +56,10 @@ temp_ram_init_ret: /* stack grows down from top of CAR */ movl %edx, %esp + subl $4, %esp - /* - * TODO: - * - * According to FSP architecture spec, the fsp_init() will not return - * to its caller, instead it requires the bootloader to provide a - * so-called continuation function to pass into the FSP as a parameter - * of fsp_init, and fsp_init() will call that continuation function - * directly. - * - * The call to fsp_init() may need to be moved out of the car_init() - * to cpu_init_f() with the help of some inline assembly codes. - * Note there is another issue that fsp_init() will setup another stack - * using the fsp_init parameter stack_top after DRAM is initialized, - * which means any data on the previous stack (on the CAR) gets lost - * (ie: U-Boot global_data). FSP is supposed to support such scenario, - * however it does not work. This should be revisited in the future. - */ - movl $CONFIG_FSP_TEMP_RAM_ADDR, %eax - xorl %edx, %edx - xorl %ecx, %ecx - call fsp_init + xor %esi, %esi + jmp car_init_done .global fsp_init_done fsp_init_done: @@ -86,6 +68,8 @@ fsp_init_done: * Save eax to esi temporarily. */ movl %eax, %esi + +car_init_done: /* * Re-initialize the ebp (BIST) to zero, as we already reach here * which means we passed BIST testing before. |