]> git.sur5r.net Git - u-boot/blobdiff - arch/x86/cpu/start.S
x86: Remove legacy pci codes
[u-boot] / arch / x86 / cpu / start.S
index e94ddc45ddb78475eefa3e306b9f352d1f378755..5b4ee79d88473f4a99c29b4e384280a24a1a37ae 100644 (file)
@@ -115,8 +115,10 @@ car_init_ret:
 #endif
 #else
        /*
-        * When we get here after car_init(), esp points to a temporary stack
-        * and esi holds the HOB list address returned by the FSP.
+        * U-Boot enters here twice. For the first time it comes from
+        * car_init_done() with esp points to a temporary stack and esi
+        * set to zero. For the second time it comes from fsp_init_done()
+        * with esi holding the HOB list address returned by the FSP.
         */
 #endif
        /* Set up global data */
@@ -124,14 +126,9 @@ car_init_ret:
        call    board_init_f_mem
        mov     %eax, %esp
 
-       /*
-        * Debug UART is available here although it may not be plumbed out
-        * to pins depending on the board. To use it:
-        *
-        * call  debug_uart_init
-        * mov   $'a', %eax
-        * call  printch
-        */
+#ifdef CONFIG_DEBUG_UART
+       call    debug_uart_init
+#endif
 
        /* Get address of global_data */
        mov     %fs:0, %edx
@@ -141,6 +138,14 @@ car_init_ret:
        jz      skip_hob
        movl    %esi, GD_HOB_LIST(%edx)
 
+       /*
+        * After fsp_init() returns, the stack has already been switched to a
+        * place within system memory as defined by CONFIG_FSP_TEMP_RAM_ADDR.
+        * Enlarge the size of malloc() pool before relocation since we have
+        * plenty of memory now.
+        */
+       subl    $CONFIG_FSP_SYS_MALLOC_F_LEN, %esp
+       movl    %esp, GD_MALLOC_BASE(%edx)
 skip_hob:
 #else
        /* Store table pointer */