Permalink
Commits on Mar 21, 2016
  1. [x86] Allow machines with >1GB of RAM to boot. Initially first 1GB of…

    … RAM is mapped into kernel memory and used to bring up the kernel and map all physical memory into kernel space. During this initialization, the kernel will pull physical pages off its page stack and if they are outside the low 1GB area, it will fault because only the first 1GB is accessible. This fix allows the early kernel to use the first 1GB as a priority over other pages by splitting physical memory into two stacks - one for 0-1GB and the other for >1GB. the rest of the kernel should treat the stacks as one stack (previously SYSTEMSTACK). Now there are LOWSTACK and HIGHSTACK but pgstack.rs provides veener functions to access either one in an abstract manner. Thanks to Nick Rathke for reporting this bug.
    committed Mar 21, 2016
Commits on Mar 18, 2016
  1. [x86] Fixed broken CPUID check for x64 support: missing CPUID instruc…

    …tion! Thanks to Nick Rathke for the bug report.
    committed Mar 18, 2016
Commits on Dec 19, 2015
  1. Stablized the dynamic memory allocator further, add list sorting and …

    …merging, plus integrity checkpoints (which can be made compile-time optional later if needed). allocating and freeing memory is now pretty quick.
    committed Dec 19, 2015
Commits on Dec 17, 2015
  1. Stabilize dynamic memory manager, iron out bugs triggered when free()…

    …ing memory, perform short soak test
    committed Dec 17, 2015
Commits on Dec 15, 2015
  1. Tighten up dynamic allocator's accounting, also clarify comments and …

    …variable names to distinguish between a block (a unit of memory) and an allocation (a group of one or more blocks that fulfill an allocation request)
    committed Dec 15, 2015
  2. [x86] add stack overflow detection in tidy_boot_pg_tables. the boot p…

    …age tables are below the boot kernel stack. while tidying up the page tables, if corruption is detected, alert the user and halt during boot
    committed Dec 15, 2015
  3. [x86] fix typo in tidy_boot_pg_tables that corrupted the page tables …

    …for the kernel's lower virtual space. oops. also increase the boot stack space because it was crashed into the page tables - do we need a canary to detect that in future? probably. also make sure all text areas are included between __kernel_ro_start/end
    committed Dec 15, 2015
Commits on Dec 14, 2015
  1. [x86] fix bug in calculations in map_phys_region(). due to rounding, …

    …not enough of the physical memory map was mapped into the kernel's upper virtual space, but the physical memory was made available from the page stack. so the kernel would end up trying to use physical memory that wasn't mapped in. fixed by mapping in whole 2M pages at a time. plus other tidy ups
    committed Dec 14, 2015
  2. [x86] tidy up memory accesses and add helper funcs for getting kernel…

    … virtual addresses out of the physical page allocation/deallocation code
    committed Dec 14, 2015
  3. [x86] after mapping in physical memory to the kernel's upper virtual …

    …memory space, clean out the boot tables so just the kernel's components (code, data, rodata, bss) are left between the 1-4MB mark in kernel virtual space
    committed Dec 14, 2015
  4. [x86] allow PageStack and PageTable code to access physical memory sa…

    …fely through the kernel's upper virtual space
    committed Dec 14, 2015
  5. Tidy up code

    committed Dec 14, 2015
  6. [x86] split physmem.rs into two parts: physical RAM init and physical…

    … page stack management
    committed Dec 14, 2015
Commits on Dec 11, 2015
  1. [x86] align kernel sections to 4K boundaries, add physical memory to …

    …physical page stack while avoiding reusing pages in use holding the kernel's text, rodata, and bss, and the page stack itself
    committed Dec 11, 2015
Commits on Dec 10, 2015
Commits on Dec 9, 2015
Commits on Dec 8, 2015
Commits on Dec 7, 2015
  1. [x86] Check we're not corrupting registers during interrupts - should…

    … print 'Good' on screen if working OK
    committed Dec 7, 2015
  2. tidied formatting

    committed Dec 7, 2015