dm: x86: Support pre-reloc malloc()
authorSimon Glass <sjg@chromium.org>
Fri, 10 Oct 2014 13:49:16 +0000 (07:49 -0600)
committerSimon Glass <sjg@chromium.org>
Fri, 24 Oct 2014 01:45:28 +0000 (19:45 -0600)
Add support for this by reserving a block of memory below global_data.

Signed-off-by: Simon Glass <sjg@chromium.org>
arch/x86/cpu/start.S

index 71cab22e2a95008a4b72ad0b95dfbe79f13a066d..338bab19e471fdd3f4ab088aa999afeb2e10145e 100644 (file)
@@ -97,6 +97,13 @@ car_init_ret:
        /* Reserve space for global descriptor table */
        subl    $X86_GDT_SIZE, %esp
 
+#if defined(CONFIG_SYS_MALLOC_F_LEN)
+       subl    $CONFIG_SYS_MALLOC_F_LEN, %esp
+       movl    %eax, %edx
+       addl    $GD_MALLOC_BASE, %edx
+       movl    %esp, (%edx)
+#endif
+
        /* Align temporary global descriptor table to 16-byte boundary */
        andl    $0xfffffff0, %esp