From 34687780df94a1d862416565a76b71fd67417d24 Mon Sep 17 00:00:00 2001 From: rami Date: Tue, 25 Jun 2024 21:43:07 -0400 Subject: [PATCH] changed to x86 --- Makefile | 8 ++++---- boot/grub/grub.cfg | 2 +- kernel/init.asm | 12 ++++-------- kernel/kernel.ld | 2 +- 4 files changed, 10 insertions(+), 14 deletions(-) diff --git a/Makefile b/Makefile index 5e463d0..edaad50 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,8 @@ -CC = x86_64-elf-gcc +CC = i686-elf-gcc AS = nasm BUILDDIR := build -CFLAGS := -ffreestanding -Wall -Wextra -Werror -mno-red-zone +CFLAGS := -ffreestanding -Wall -Wextra -Werror LDFLAGS := -ffreestanding -nostdlib -lgcc -T kernel/kernel.ld KSRC := $(wildcard kernel/*.asm kernel/*.c) @@ -14,7 +14,7 @@ KIMG := kernel.bin $(BUILDDIR)/$(KIMG): $(KOBJ) $(CC) $^ -o $@ $(LDFLAGS) $(BUILDDIR)/%.o: */%.asm - $(AS) -felf64 $^ -o $@ + $(AS) -felf32 $^ -o $@ $(BUILDDIR)/%.o: */%.c $(CC) $(CFLAGS) -c $^ -o $@ @@ -26,7 +26,7 @@ $(BUILDDIR)/Hazel.iso: kernel iso: $(BUILDDIR)/Hazel.iso qemu: iso - qemu-system-x86_64 -cdrom $(BUILDDIR)/Hazel.iso + qemu-system-i386 -cdrom $(BUILDDIR)/Hazel.iso clean: rm build/* boot/*.bin diff --git a/boot/grub/grub.cfg b/boot/grub/grub.cfg index 5d10324..0942425 100644 --- a/boot/grub/grub.cfg +++ b/boot/grub/grub.cfg @@ -1,5 +1,5 @@ default=0 timeout=0 menuentry "Hazel" { - multiboot2 /boot/kernel.bin + multiboot /boot/kernel.bin } diff --git a/kernel/init.asm b/kernel/init.asm index fbaea37..44730ca 100644 --- a/kernel/init.asm +++ b/kernel/init.asm @@ -1,14 +1,10 @@ -%define MAGIC 0xE85250D6 -%define ARCH 0x0 -%define LEN (multiboot_end - multiboot_start) +%define MAGIC 0x1BADB002 +%define FLAGS 0x0 section .multiboot -multiboot_start: dd MAGIC -dd ARCH -dd LEN -dd -(MAGIC + ARCH + LEN) -multiboot_end: +dd FLAGS +dd -(MAGIC + FLAGS) section .text global _start diff --git a/kernel/kernel.ld b/kernel/kernel.ld index f00fa2d..525e0d3 100644 --- a/kernel/kernel.ld +++ b/kernel/kernel.ld @@ -17,7 +17,7 @@ SECTIONS memory which is verified to be available by the firmware, in order to work around this issue. This does not use that feature, so 2M was chosen as a safer option than the traditional 1M. */ - . = 2M; + . = 1M; /* First put the multiboot header, as it is required to be put very early in the image or the bootloader won't recognize the file format.