]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - arch/x86/lib/init_helpers.c
x86: Put global data on the stack
[karo-tx-uboot.git] / arch / x86 / lib / init_helpers.c
index 2f718d7c4ac1a7efafe822962493c885896fd973..87c7263fcb5094824e141cf737a5deac507744d5 100644 (file)
@@ -83,18 +83,8 @@ int calculate_relocation_address(void)
         *       requirements
         */
 
-       /* Global Data is at top of available memory */
+       /* Stack is at top of available memory */
        dest_addr = gd->ram_size;
-       dest_addr -= GENERATED_GBL_DATA_SIZE;
-       dest_addr &= ~15;
-       gd->new_gd_addr = dest_addr;
-
-       /* GDT is below Global Data */
-       dest_addr -= X86_GDT_SIZE;
-       dest_addr &= ~15;
-       gd->gdt_addr = dest_addr;
-
-       /* Stack is below GDT */
        gd->start_addr_sp = dest_addr;
 
        /* U-Boot is below the stack */
@@ -107,31 +97,6 @@ int calculate_relocation_address(void)
        return 0;
 }
 
-int copy_gd_to_ram_f_r(void)
-{
-       gd_t *ram_gd;
-
-       /*
-        * Global data is still in temporary memory (the CPU cache).
-        * calculate_relocation_address() has set gd->new_gd_addr to
-        * where the global data lives in RAM but getting it there
-        * safely is a bit tricky due to the 'F-Segment Hack' that
-        * we need to use for x86
-        */
-       ram_gd = (gd_t *)gd->new_gd_addr;
-       memcpy((void *)ram_gd, gd, sizeof(gd_t));
-
-       /*
-        * Reload the Global Descriptor Table so FS points to the
-        * in-RAM copy of Global Data (calculate_relocation_address()
-        * has already calculated the in-RAM location of the GDT)
-        */
-       ram_gd->gd_addr = ram_gd;
-       init_gd(ram_gd, (u64 *)gd->gdt_addr);
-
-       return 0;
-}
-
 int init_cache_f_r(void)
 {
        /* Initialise the CPU cache(s) */