• Jeffrey Lee's avatar
    Allow RW/ZI sections to be used · 2b665896
    Jeffrey Lee authored
    * Instruct the linker to place any RW/ZI data sections in the last ~16MB
    of the memory map, starting from &ff000000 (with the current toolchain,
    giving it a fixed base address is much easier than giving it a variable
    base address)
    * The RW/ZI section is mapped as completely inaccessible to user mode
    * The initial content of the RW section is copied over shortly after MMU
    startup (in Continue_after_HALInit)
    * Since link's -bin option produces a file containing a copy of the
    (zero-initialised) ZI section, the kernel binary is now produced from a
    "binary with AIF header" AIF with the help of the new 'kstrip' tool.
    kstrip extracts just the RO and RW sections, ensuring the ROM doesn't
    contain a redundant block of zeros for the ZI section.
    
    This should make it easier to use C code & arbitrary libraries within
    the kernel, providing they're compiled with suitable settings (e.g.
    non-module, no FP, no stack checking, like HALs typically use)
    2b665896
Makefile 5.76 KB