aboutsummaryrefslogtreecommitdiff
path: root/arch/x86/cpu/start.S
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2015-08-26 17:48:05 -0400
committerTom Rini <trini@konsulko.com>2015-08-26 17:48:05 -0400
commit79c884d7e449a63fa8f07b7495f8f9873355c48f (patch)
tree19adcc1b9d3520a68937a1f5f81b06775c790d8a /arch/x86/cpu/start.S
parentad608a21f89bf7467059ed59d60b080aace7ef99 (diff)
parentf4b5db7c5309dd7f3ecc6369f3c1f41e8bfe93ae (diff)
downloadu-boot-79c884d7e449a63fa8f07b7495f8f9873355c48f.zip
u-boot-79c884d7e449a63fa8f07b7495f8f9873355c48f.tar.gz
u-boot-79c884d7e449a63fa8f07b7495f8f9873355c48f.tar.bz2
Merge git://git.denx.de/u-boot-x86
Diffstat (limited to 'arch/x86/cpu/start.S')
-rw-r--r--arch/x86/cpu/start.S14
1 files changed, 12 insertions, 2 deletions
diff --git a/arch/x86/cpu/start.S b/arch/x86/cpu/start.S
index e94ddc4..d072825 100644
--- a/arch/x86/cpu/start.S
+++ b/arch/x86/cpu/start.S
@@ -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 */
@@ -141,6 +143,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 */