Ignore:
Timestamp:
2016-09-01T22:14:30Z (8 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
2c2d54a
Parents:
8b6aa39
Message:

amd64: resurrect optional support for the 'large' memory model ('kernel' memory model stays the default)

File:
1 edited

Legend:

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

    r8b6aa39 r4bf0926e  
    430430        movl multiboot_eax, %edi
    431431        movl multiboot_ebx, %esi
     432       
     433#ifdef MEMORY_MODEL_large
     434        movabsq $amd64_pre_main, %rax
     435        callq *%rax
     436#else
    432437        callq amd64_pre_main
    433 
     438#endif
     439       
    434440        long_status $status_main
    435441       
    436442        /* Call main_bsp() */
    437         callq main_bsp
     443#ifdef MEMORY_MODEL_large
     444        movabsq $main_bsp, %rax
     445        callq *%rax
     446#else
     447        callq main_bsp
     448#endif
    438449       
    439450        /* Not reached */
     
    622633        ptl2gen 512 7
    623634
     635#ifdef MEMORY_MODEL_kernel
    624636.align 4096
    625637ptl_1:
     
    638650        .quad ptl_2_1g + (PTL_WRITABLE | PTL_PRESENT)
    639651
    640 
    641652.align 4096
    642653SYMBOL(ptl_0)
     
    644655        .fill 510, 8, 0
    645656        .quad ptl_1 + (PTL_WRITABLE | PTL_PRESENT)
     657#endif
     658
     659#ifdef MEMORY_MODEL_large
     660.align 4096
     661ptl_1:
     662        /* Identity mapping for [0; 8G) */
     663        .quad ptl_2_0g + (PTL_WRITABLE | PTL_PRESENT)
     664        .quad ptl_2_1g + (PTL_WRITABLE | PTL_PRESENT)
     665        .quad ptl_2_2g + (PTL_WRITABLE | PTL_PRESENT)
     666        .quad ptl_2_3g + (PTL_WRITABLE | PTL_PRESENT)
     667        .quad ptl_2_4g + (PTL_WRITABLE | PTL_PRESENT)
     668        .quad ptl_2_5g + (PTL_WRITABLE | PTL_PRESENT)
     669        .quad ptl_2_6g + (PTL_WRITABLE | PTL_PRESENT)
     670        .quad ptl_2_7g + (PTL_WRITABLE | PTL_PRESENT)
     671        .fill 504, 8, 0
     672
     673.align 4096
     674SYMBOL(ptl_0)
     675        .quad ptl_1 + (PTL_WRITABLE | PTL_PRESENT)
     676        .fill 255, 8, 0
     677        .quad ptl_1 + (PTL_WRITABLE | PTL_PRESENT)
     678        .fill 255, 8, 0
     679#endif
    646680
    647681.section K_DATA_START, "aw", @progbits
Note: See TracChangeset for help on using the changeset viewer.