Changeset 8a1afd2 in mainline for kernel/arch/ia32/src


Ignore:
Timestamp:
2018-10-17T22:51:33Z (7 years ago)
Author:
Jiří Zárevúcky <zarevucky.jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
1d18bbc0, d723a80
Parents:
7900e5d
Message:

Remove hardcoded data variables from kernel linker scripts

Location:
kernel/arch/ia32/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia32/src/boot/multiboot.S

    r7900e5d r8a1afd2  
    285285/** Calculate unmapped address of the end of the kernel. */
    286286calc_kernel_end:
    287         movl $KA2PA(hardcoded_load_address), %edi
    288         movl (%edi), %esi
    289         leal KA2PA(0)(%esi), %esi
    290 
    291         movl $KA2PA(hardcoded_ktext_size), %edi
    292         addl (%edi), %esi
    293         leal KA2PA(0)(%esi), %esi
    294 
    295         movl $KA2PA(hardcoded_kdata_size), %edi
    296         addl (%edi), %esi
    297         leal KA2PA(0)(%esi), %esi
    298         movl %esi, kernel_end
    299 
     287        movl $KA2PA(kdata_end), %edi
     288        movl %edi, kernel_end
    300289        ret
    301290
  • kernel/arch/ia32/src/ia32.c

    r7900e5d r8a1afd2  
    9494
    9595#ifdef CONFIG_SMP
     96        size_t unmapped_size = (uintptr_t) unmapped_kdata_end - BOOT_OFFSET;
    9697        /* Copy AP bootstrap routines below 1 MB. */
    97         memcpy((void *) AP_BOOT_OFFSET, (void *) BOOT_OFFSET,
    98             (size_t) &_hardcoded_unmapped_size);
     98        memcpy((void *) AP_BOOT_OFFSET, (void *) BOOT_OFFSET, unmapped_size);
    9999#endif
    100100}
  • kernel/arch/ia32/src/mm/frame.c

    r7900e5d r8a1afd2  
    4747
    4848#define PHYSMEM_LIMIT32  UINT64_C(0x100000000)
    49 
    50 size_t hardcoded_unmapped_ktext_size = 0;
    51 size_t hardcoded_unmapped_kdata_size = 0;
    5249
    5350static void init_e820_memory(pfn_t minconf, bool low)
     
    155152
    156153#ifdef CONFIG_SMP
     154                size_t unmapped_size =
     155                    (uintptr_t) unmapped_kdata_end - BOOT_OFFSET;
     156
    157157                minconf = max(minconf,
    158                     ADDR2PFN(AP_BOOT_OFFSET + hardcoded_unmapped_ktext_size +
    159                     hardcoded_unmapped_kdata_size));
     158                    ADDR2PFN(AP_BOOT_OFFSET + unmapped_size));
    160159#endif
    161160
     
    168167                /* Reserve AP real mode bootstrap memory */
    169168                frame_mark_unavailable(AP_BOOT_OFFSET >> FRAME_WIDTH,
    170                     (hardcoded_unmapped_ktext_size +
    171                     hardcoded_unmapped_kdata_size) >> FRAME_WIDTH);
     169                    unmapped_size >> FRAME_WIDTH);
    172170#endif
    173171        }
Note: See TracChangeset for help on using the changeset viewer.