| Commit message (Collapse) | Author | Age | |
|---|---|---|---|
| * | fix kernel mapping start address | Tianhao Wang | 2024-06-11 |
| | | | | | | should be 0xffff_8020_0000_0000, but I used the id mapping by mistake (0xffff_8000_0000_0000) | ||
| * | chore: cleanup | Tianhao Wang | 2024-06-11 |
| | | | | | Signed-off-by: Tianhao Wang <shrik3@mailbox.org> | ||
| * | chore: remove unused deps | Tianhao Wang | 2024-06-11 |
| | | |||
| * | debug: add basic setup for qemu/gdb | Tianhao Wang | 2024-06-11 |
| | | |||
| * | mm: fully map the kernel to high memory | Tianhao Wang | 2024-06-11 |
| | | |||
| * | mm: provide high memory kernel mapping in asm code. | Tianhao Wang | 2024-06-11 |
| | | | | | | | | | | | | | | | | | | we use the first pml4 entry (+one pdp table) to map phy 0~512G to virt 0~512G for init code. This doesn't change. For the kernel to work in higher half memory, we also need to create mapping for it. We take the 256th entry of pml4 entry (hence one additional pdp table). Entry 0~63 are mapped to to the physical memory (with offset 0xffff_8000_0000_0000) Entry 64~127 are not used Entry 128~191 are mapped to the kernel image (text and code) (with offset 0xffff_8020_0000_0000) details in docs/mem_layout.txt | ||
| * | docs: memory layout | Tianhao Wang | 2024-06-11 |
| | | |||
| * | chore: cleanup startup code | Tianhao Wang | 2024-06-11 |
| | | |||
| * | mm: add basic paging infra from x86_64 crate | Tianhao Wang | 2024-06-11 |
| | | | | | | | | | | | the x86_64 crate is pretty solid and has a permissive license (Apache/MIT), but I want to make this myself in the future to "experience" the unsafe rust further....Also it has too many abstractions, which is justified as a library, but not ideal for a from sctrach toy OS as it hides the lower end. Signed-off-by: Tianhao Wang <shrik3@mailbox.org> | ||
| * | mm: fix Range type and addr rounding | Tianhao Wang | 2024-06-11 |
| | | | | | Signed-off-by: Tianhao Wang <shrik3@mailbox.org> | ||
| * | mm: explicitly clear unused entries in init table | Tianhao Wang | 2024-06-11 |
| | | |||
| * | mm: add stack based PMA | Tianhao Wang | 2024-06-11 |
| | | | | | | | | use 8MiB reserved array to manage up to 4GiB of physical memory (4K Pages only) Signed-off-by: Tianhao Wang <shrik3@mailbox.org> | ||
| * | makefile: default to cargo debug build | Tianhao Wang | 2024-06-11 |
| | | | | | | | | we should define debug and release targets, but hardcoding in makefile for now. Signed-off-by: Tianhao Wang <shrik3@mailbox.org> | ||
| * | multiboot: docs and cleanup | Tianhao Wang | 2024-06-11 |
| | | | | | Signed-off-by: Tianhao Wang <shrik3@mailbox.org> | ||
| * | multiboot: parse mmap blocks | Tianhao Wang | 2024-06-11 |
| | | | | | Signed-off-by: Tianhao Wang <shrik3@mailbox.org> | ||
| * | multiboot: get memory info from MB info | Tianhao Wang | 2024-06-11 |
| | | | | | Signed-off-by: Tianhao Wang <shrik3@mailbox.org> | ||
| * | multiboot: basic support for multiboot info | Tianhao Wang | 2024-06-11 |
| | | | | | | | | | well, it's not trivial to use bios function because thanks to grub + multiboot, we are already in protected mode when the startup code takes control. Also the MB info is easier to play with than BIOS (or ACPI) Signed-off-by: Tianhao Wang <shrik3@mailbox.org> | ||
| * | keyboard: pad key translation table | Tianhao Wang | 2024-06-11 |
| | | | | | | | | | some keys such as the Win key has larger scancode, causing out-of-bound read in the translation table. As a temp fix pad the tables with 0 up to 100 chars. Signed-off-by: Tianhao Wang <shrik3@mailbox.org> | ||
| * | update attributions | Tianhao Wang | 2024-06-11 |
| | | |||
| * | fix io blocking bug in kbdctl | Tianhao Wang | 2024-06-11 |
| | | |||
| * | chore | Tianhao Wang | 2024-06-11 |
| | | |||
| * | doc: notes on x86 gdt and segmentation | Tianhao Wang | 2024-06-11 |
| | | |||
| * | cgascr: refactoring | Tianhao Wang | 2024-06-11 |
| | | |||
| * | readme: bulk update | Tianhao Wang | 2024-06-11 |
| | | | | | | | | - update regarding contributing - fix typo - update roadmap - fix toc link | ||
| * | refine ATTRIBUTIONS and LICENSE text | Tianhao Wang | 2024-06-11 |
| | | |||
| * | add contributing guidelines | Tianhao Wang | 2024-06-11 |
| | | |||
| * | readme: update regarding license | Tianhao Wang | 2024-06-11 |
| | | |||
| * | fix readme | Tianhao Wang | 2024-06-11 |
| | | |||
| * | update readme for troubleshooting | Tianhao Wang | 2024-06-11 |
| | | |||
| * | move io.rs into submodule | Tianhao Wang | 2024-06-11 |
| | | |||
| * | update readme | Tianhao Wang | 2024-06-11 |
| | | |||
| * | license: update readme | Tianhao Wang | 2024-06-11 |
| | | |||
| * | license: use EUPL | Tianhao Wang | 2024-06-11 |
| | | |||
| * | makefile: mute ld RWX warning | Tianhao Wang | 2024-06-11 |
| | | |||
| * | chore | Tianhao Wang | 2024-06-11 |
| | | |||
| * | rename wraper -> vector | Tianhao Wang | 2024-06-11 |
| | | |||
| * | startup: define multiboot headers in linker script | Tianhao Wang | 2024-06-11 |
| | | |||
| * | nasm: ignore zeroing warning | Tianhao Wang | 2024-06-11 |
| | | | | | | | When using `resb` outside of a BSS section, nasm will yell at you. But we know what we are doing! We never expect zero-init for such reserved spaces! | ||
| * | startup: flatten control flow | Tianhao Wang | 2024-06-11 |
| | | |||
| * | chore | Tianhao Wang | 2024-06-11 |
| | | |||
| * | linker: "optimize" section arrangements | Tianhao Wang | 2024-06-11 |
| | | | | | | | | 1. throw vectors in a custom ".reserved" section 2. throw idt in a NOLOAD ".reserved_0" section: save some binary size (like .bss) since we don't care for its initial value. 3. squash all ".data.*" sections from rust into ".data" | ||
| * | interrupt: add rust binding for idt | Tianhao Wang | 2024-06-11 |
| | | |||
| * | check formatting in make script | Tianhao Wang | 2024-06-11 |
| | | |||
| * | formatting code | Tianhao Wang | 2024-06-11 |
| | | |||
| * | misc: add full rustfmt config | Tianhao Wang | 2024-06-11 |
| | | |||
| * | split idt and vectors from startup code | Tianhao Wang | 2024-06-11 |
| | | |||
| * | chore | Tianhao Wang | 2024-06-11 |
| | | |||
| * | linker: explicitly provide ___BSS* symbols | Tianhao Wang | 2024-06-11 |
| | | |||
| * | interrupt: rename `guardian` to `interrupt_gate` | Tianhao Wang | 2024-06-11 |
| | | |||
| * | mask keyboard interrupt while polling key | Tianhao Wang | 2024-06-11 |
| | | |||
