+ movl $(CONFIG_SYS_CAR_ADDR + CONFIG_SYS_CAR_SIZE - 4), %esp
+#ifdef CONFIG_DCACHE_RAM_MRC_VAR_SIZE
+ subl $CONFIG_DCACHE_RAM_MRC_VAR_SIZE, %esp
+#endif
+#else
+ /*
+ * 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
+ mov %eax, %esp
+
+#ifdef CONFIG_DEBUG_UART
+ call debug_uart_init
+#endif
+
+ /* Get address of global_data */
+ mov %fs:0, %edx
+#ifdef CONFIG_HAVE_FSP
+ /* Store the HOB list if we have one */
+ test %esi, %esi
+ jz skip_hob
+ movl %esi, GD_HOB_LIST(%edx)