From 1bf5e324005ce7122a195af106cec656960648dc Mon Sep 17 00:00:00 2001 From: dzwdz Date: Sat, 10 Jul 2021 17:41:32 +0200 Subject: a sensible source structure The idea is that src/kernel/ is only allowed to interface with the hardware using whatever's defined in src/arch/generic.h. I'll probably write a small script for checking this later on. This is a giant commit so I've probably fucked something up. It boots fine on Bochs and QEMU, so at least there's that. --- src/arch/i386/boot.s | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/arch/i386/boot.s (limited to 'src/arch/i386/boot.s') diff --git a/src/arch/i386/boot.s b/src/arch/i386/boot.s new file mode 100644 index 0000000..74ec312 --- /dev/null +++ b/src/arch/i386/boot.s @@ -0,0 +1,25 @@ +/* a lil stack TODO move to linker.ld */ +.section .bss +.global stack_top +.type stack_top, @object +.align 16 +stack_bottom: +.skip 16384 +stack_top: + + +.section .text +.global _start +.type _start, @function +_start: + mov $stack_top, %esp + call kmain_early + +.global halt_cpu +.type halt_cpu, @function +halt_cpu: + cli +1: hlt + jmp 1b + +.size _start, . - _start -- cgit v1.2.3