]> git.sur5r.net Git - u-boot/blobdiff - arch/x86/cpu/start.S
x86: broadwell: Add a SATA driver
[u-boot] / arch / x86 / cpu / start.S
index e94ddc45ddb78475eefa3e306b9f352d1f378755..485868ff5769ecca47fa01e0028eca14ac4ccdeb 100644 (file)
@@ -115,23 +115,21 @@ 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 */
        mov     %esp, %eax
-       call    board_init_f_mem
+       call    board_init_f_alloc_reserve
        mov     %eax, %esp
+       call    board_init_f_init_reserve
 
-       /*
-        * 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 +139,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 */