From 27848fc85c1d2f4d5f48905dedccd18b5e31a333 Mon Sep 17 00:00:00 2001 From: mintsuki Date: Thu, 25 Feb 2021 01:24:54 +0100 Subject: [PATCH] misc: General code reorganisation --- .gitignore | 1 + Makefile | 62 ++++++++++------------ limine-install.c | 46 +++------------- {cdboot => stage1/cd}/bootsect.asm | 12 ++--- {cdboot => stage1/cd}/findFile.asm | 0 {cdboot => stage1/cd}/findPVD.asm | 0 {cdboot => stage1/cd}/iso9660.asm | 0 {cdboot => stage1/cd}/read_2k_sectors.asm | 0 {cdboot => stage1/cd}/strcmp.asm | 0 hddboot/gdt.inc => stage1/gdt.asm | 0 {hddboot => stage1/hdd}/bootsect.asm | 8 +-- hddboot/disk.inc => stage1/hdd/disk.asm | 0 {pxeboot => stage1/pxe}/bootsect.asm | 6 +-- {stages => stage23}/Makefile | 28 +++++----- {stages => stage23}/drivers/disk.c | 0 {stages => stage23}/drivers/disk.h | 0 {stages => stage23}/drivers/vbe.c | 0 {stages => stage23}/drivers/vbe.h | 0 {stages => stage23}/drivers/vga_textmode.c | 0 {stages => stage23}/drivers/vga_textmode.h | 0 {stages => stage23}/entry.asm | 0 {stages => stage23}/fs/echfs.c | 0 {stages => stage23}/fs/echfs.h | 0 {stages => stage23}/fs/ext2.c | 0 {stages => stage23}/fs/ext2.h | 0 {stages => stage23}/fs/fat32.c | 0 {stages => stage23}/fs/fat32.h | 0 {stages => stage23}/fs/file.c | 0 {stages => stage23}/fs/file.h | 0 {stages => stage23}/fs/iso9660.c | 0 {stages => stage23}/fs/iso9660.h | 0 stage23/gensyms.sh | 24 +++++++++ {stages => stage23}/lib/acpi.c | 0 {stages => stage23}/lib/acpi.h | 0 {stages => stage23}/lib/blib.c | 0 {stages => stage23}/lib/blib.h | 2 +- {stages => stage23}/lib/bmp.c | 0 {stages => stage23}/lib/bmp.h | 0 {stages => stage23}/lib/builtins.asm | 0 {stages => stage23}/lib/config.c | 7 ++- {stages => stage23}/lib/config.h | 0 {stages => stage23}/lib/elf.c | 0 {stages => stage23}/lib/elf.h | 0 {stages => stage23}/lib/guid.c | 0 {stages => stage23}/lib/guid.h | 0 {stages => stage23}/lib/image.c | 0 {stages => stage23}/lib/image.h | 0 {stages => stage23}/lib/libc.c | 0 {stages => stage23}/lib/libc.h | 0 {stages => stage23}/lib/part.c | 0 {stages => stage23}/lib/part.h | 0 {stages => stage23}/lib/print.c | 0 {stages => stage23}/lib/print.h | 0 {stages => stage23}/lib/pxe.asm | 0 {stages => stage23}/lib/rand.c | 0 {stages => stage23}/lib/rand.h | 0 {stages => stage23}/lib/readline.c | 0 {stages => stage23}/lib/readline.h | 0 {stages => stage23}/lib/real.asm | 0 {stages => stage23}/lib/real.h | 0 {stages => stage23}/lib/sleep.asm | 0 {stages => stage23}/lib/term.c | 0 {stages => stage23}/lib/term.h | 0 {stages => stage23}/lib/time.c | 0 {stages => stage23}/lib/time.h | 0 {stages => stage23}/lib/trace.c | 31 +++-------- {stages => stage23}/lib/trace.h | 1 - {stages => stage23}/lib/uri.c | 0 {stages => stage23}/lib/uri.h | 0 {stages => stage23}/linker.ld | 14 ++++- stage23/linker_nomap.ld | 48 +++++++++++++++++ {stages => stage23}/main.c | 2 - {stages => stage23}/menu.c | 0 {stages => stage23}/menu.h | 0 {stages => stage23}/mm/mtrr.c | 0 {stages => stage23}/mm/mtrr.h | 0 {stages => stage23}/mm/pmm.c | 0 {stages => stage23}/mm/pmm.h | 0 {stages => stage23}/mm/vmm.c | 0 {stages => stage23}/mm/vmm.h | 0 {stages => stage23}/protos/chainload.c | 0 {stages => stage23}/protos/chainload.h | 0 {stages => stage23}/protos/linux.c | 0 {stages => stage23}/protos/linux.h | 0 {stages => stage23}/protos/stivale.c | 0 {stages => stage23}/protos/stivale.h | 0 {stages => stage23}/protos/stivale2.c | 0 {stages => stage23}/protos/stivale2.h | 0 {stages => stage23}/pxe/pxe.c | 0 {stages => stage23}/pxe/pxe.h | 0 {stages => stage23}/pxe/tftp.c | 0 {stages => stage23}/pxe/tftp.h | 0 {stages => stage23}/sys/a20.c | 0 {stages => stage23}/sys/a20.h | 0 {stages => stage23}/sys/cpu.h | 0 {stages => stage23}/sys/e820.c | 0 {stages => stage23}/sys/e820.h | 0 {stages => stage23}/sys/gdt.asm | 0 {stages => stage23}/sys/lapic.c | 0 {stages => stage23}/sys/lapic.h | 0 {stages => stage23}/sys/pic.c | 0 {stages => stage23}/sys/pic.h | 0 {stages => stage23}/sys/smp.c | 0 {stages => stage23}/sys/smp.h | 0 {stages => stage23}/sys/smp_trampoline.asm | 0 {stages => stage23}/tinf | 0 stages/gensyms.sh | 17 ------ test/limine.cfg | 2 +- 108 files changed, 162 insertions(+), 149 deletions(-) rename {cdboot => stage1/cd}/bootsect.asm (90%) rename {cdboot => stage1/cd}/findFile.asm (100%) rename {cdboot => stage1/cd}/findPVD.asm (100%) rename {cdboot => stage1/cd}/iso9660.asm (100%) rename {cdboot => stage1/cd}/read_2k_sectors.asm (100%) rename {cdboot => stage1/cd}/strcmp.asm (100%) rename hddboot/gdt.inc => stage1/gdt.asm (100%) rename {hddboot => stage1/hdd}/bootsect.asm (95%) rename hddboot/disk.inc => stage1/hdd/disk.asm (100%) rename {pxeboot => stage1/pxe}/bootsect.asm (88%) rename {stages => stage23}/Makefile (61%) rename {stages => stage23}/drivers/disk.c (100%) rename {stages => stage23}/drivers/disk.h (100%) rename {stages => stage23}/drivers/vbe.c (100%) rename {stages => stage23}/drivers/vbe.h (100%) rename {stages => stage23}/drivers/vga_textmode.c (100%) rename {stages => stage23}/drivers/vga_textmode.h (100%) rename {stages => stage23}/entry.asm (100%) rename {stages => stage23}/fs/echfs.c (100%) rename {stages => stage23}/fs/echfs.h (100%) rename {stages => stage23}/fs/ext2.c (100%) rename {stages => stage23}/fs/ext2.h (100%) rename {stages => stage23}/fs/fat32.c (100%) rename {stages => stage23}/fs/fat32.h (100%) rename {stages => stage23}/fs/file.c (100%) rename {stages => stage23}/fs/file.h (100%) rename {stages => stage23}/fs/iso9660.c (100%) rename {stages => stage23}/fs/iso9660.h (100%) create mode 100755 stage23/gensyms.sh rename {stages => stage23}/lib/acpi.c (100%) rename {stages => stage23}/lib/acpi.h (100%) rename {stages => stage23}/lib/blib.c (100%) rename {stages => stage23}/lib/blib.h (97%) rename {stages => stage23}/lib/bmp.c (100%) rename {stages => stage23}/lib/bmp.h (100%) rename {stages => stage23}/lib/builtins.asm (100%) rename {stages => stage23}/lib/config.c (95%) rename {stages => stage23}/lib/config.h (100%) rename {stages => stage23}/lib/elf.c (100%) rename {stages => stage23}/lib/elf.h (100%) rename {stages => stage23}/lib/guid.c (100%) rename {stages => stage23}/lib/guid.h (100%) rename {stages => stage23}/lib/image.c (100%) rename {stages => stage23}/lib/image.h (100%) rename {stages => stage23}/lib/libc.c (100%) rename {stages => stage23}/lib/libc.h (100%) rename {stages => stage23}/lib/part.c (100%) rename {stages => stage23}/lib/part.h (100%) rename {stages => stage23}/lib/print.c (100%) rename {stages => stage23}/lib/print.h (100%) rename {stages => stage23}/lib/pxe.asm (100%) rename {stages => stage23}/lib/rand.c (100%) rename {stages => stage23}/lib/rand.h (100%) rename {stages => stage23}/lib/readline.c (100%) rename {stages => stage23}/lib/readline.h (100%) rename {stages => stage23}/lib/real.asm (100%) rename {stages => stage23}/lib/real.h (100%) rename {stages => stage23}/lib/sleep.asm (100%) rename {stages => stage23}/lib/term.c (100%) rename {stages => stage23}/lib/term.h (100%) rename {stages => stage23}/lib/time.c (100%) rename {stages => stage23}/lib/time.h (100%) rename {stages => stage23}/lib/trace.c (58%) rename {stages => stage23}/lib/trace.h (87%) rename {stages => stage23}/lib/uri.c (100%) rename {stages => stage23}/lib/uri.h (100%) rename {stages => stage23}/linker.ld (76%) create mode 100644 stage23/linker_nomap.ld rename {stages => stage23}/main.c (99%) rename {stages => stage23}/menu.c (100%) rename {stages => stage23}/menu.h (100%) rename {stages => stage23}/mm/mtrr.c (100%) rename {stages => stage23}/mm/mtrr.h (100%) rename {stages => stage23}/mm/pmm.c (100%) rename {stages => stage23}/mm/pmm.h (100%) rename {stages => stage23}/mm/vmm.c (100%) rename {stages => stage23}/mm/vmm.h (100%) rename {stages => stage23}/protos/chainload.c (100%) rename {stages => stage23}/protos/chainload.h (100%) rename {stages => stage23}/protos/linux.c (100%) rename {stages => stage23}/protos/linux.h (100%) rename {stages => stage23}/protos/stivale.c (100%) rename {stages => stage23}/protos/stivale.h (100%) rename {stages => stage23}/protos/stivale2.c (100%) rename {stages => stage23}/protos/stivale2.h (100%) rename {stages => stage23}/pxe/pxe.c (100%) rename {stages => stage23}/pxe/pxe.h (100%) rename {stages => stage23}/pxe/tftp.c (100%) rename {stages => stage23}/pxe/tftp.h (100%) rename {stages => stage23}/sys/a20.c (100%) rename {stages => stage23}/sys/a20.h (100%) rename {stages => stage23}/sys/cpu.h (100%) rename {stages => stage23}/sys/e820.c (100%) rename {stages => stage23}/sys/e820.h (100%) rename {stages => stage23}/sys/gdt.asm (100%) rename {stages => stage23}/sys/lapic.c (100%) rename {stages => stage23}/sys/lapic.h (100%) rename {stages => stage23}/sys/pic.c (100%) rename {stages => stage23}/sys/pic.h (100%) rename {stages => stage23}/sys/smp.c (100%) rename {stages => stage23}/sys/smp.h (100%) rename {stages => stage23}/sys/smp_trampoline.asm (100%) rename {stages => stage23}/tinf (100%) delete mode 100755 stages/gensyms.sh diff --git a/.gitignore b/.gitignore index 97c31e71..8b85629f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +bin /**/*.gen /**/*.map /**/*.o diff --git a/Makefile b/Makefile index 5bc11540..44614283 100644 --- a/Makefile +++ b/Makefile @@ -6,38 +6,34 @@ DESTDIR = PATH := $(shell pwd)/toolchain/bin:$(PATH) -.PHONY: all clean install tinf-clean bootloader bootloader-clean distclean stages stages-clean decompressor decompressor-clean toolchain test.hdd echfs-test ext2-test fat32-test +.PHONY: all clean install tinf-clean bootloader bootloader-clean distclean stage23 stage23-clean decompressor decompressor-clean toolchain test.hdd echfs-test ext2-test fat32-test iso9660-test -all: limine-install +all: bin/limine-install -limine-install: limine-install.c limine.o limine_sys.o - $(CC) $(CFLAGS) -std=c11 limine.o limine_sys.o limine-install.c -o limine-install +bin/limine-install: limine-install.c limine-hdd.o + $(CC) $(CFLAGS) -std=c11 limine-hdd.o limine-install.c -o $@ -limine.o: limine.bin - $(OBJCOPY) -B i8086 -I binary -O default limine.bin limine.o - -limine_sys.o: limine.bin - $(OBJCOPY) -B i8086 -I binary -O default limine.sys limine_sys.o +limine-hdd.o: bin/limine-hdd.bin + $(OBJCOPY) -B i8086 -I binary -O default bin/limine-hdd.bin $@ clean: - rm -f limine.o limine_sys.o limine-install + rm -f limine-hdd.o install: all install -d $(DESTDIR)$(PREFIX)/bin install -s limine-install $(DESTDIR)$(PREFIX)/bin/ -bootloader: | decompressor stages - cd hddboot && nasm bootsect.asm -fbin -o ../limine-hdd.bin - cd cdboot && nasm bootsect.asm -fbin -o ../limine-cd.bin - cd pxeboot && nasm bootsect.asm -fbin -o ../limine-pxe.bin - cp stages/stages.map ./ - cp stages/stage3.bin ./limine.sys +bootloader: | decompressor stage23 + mkdir -p bin + cd stage1/hdd && nasm bootsect.asm -fbin -o ../../bin/limine-hdd.bin + cd stage1/cd && nasm bootsect.asm -fbin -o ../../bin/limine-cd.bin + cd stage1/pxe && nasm bootsect.asm -fbin -o ../../bin/limine-pxe.bin + cp stage23/limine.sys ./bin/ -bootloader-clean: stages-clean decompressor-clean test-clean - rm -f test/stages.map test.hdd +bootloader-clean: stage23-clean decompressor-clean test-clean distclean: clean bootloader-clean - rm -rf stivale + rm -rf bin stivale tinf-clean: cd tinf && rm -rf *.o *.d @@ -46,11 +42,11 @@ stivale: git clone https://github.com/stivale/stivale.git cd stivale && git checkout d0a7ca5642d89654f8d688c2481c2771a8653c99 -stages: tinf-clean stivale - $(MAKE) -C stages all +stage23: tinf-clean stivale + $(MAKE) -C stage23 all -stages-clean: - $(MAKE) -C stages clean +stage23-clean: + $(MAKE) -C stage23 clean decompressor: tinf-clean $(MAKE) -C decompressor all @@ -60,6 +56,7 @@ decompressor-clean: test-clean: $(MAKE) -C test clean + rm -f test/limine.map test.hdd toolchain: cd toolchain && ./make_toolchain.sh -j`nproc` @@ -76,16 +73,15 @@ echfs-test: test.hdd bootloader | all sed "s/@GUID@/`cat part_guid`/g" < test/limine.cfg > limine.cfg.tmp echfs-utils -g -p0 test.hdd import limine.cfg.tmp limine.cfg rm -f limine.cfg.tmp part_guid - echfs-utils -g -p0 test.hdd import stages.map boot/stages.map echfs-utils -g -p0 test.hdd import test/test.elf boot/test.elf echfs-utils -g -p0 test.hdd import test/bg.bmp boot/bg.bmp - ./limine-install ./ test.hdd - echfs-utils -g -p0 test.hdd import ./limine.sys boot/limine.sys + echfs-utils -g -p0 test.hdd import bin/limine.sys boot/limine.sys + echfs-utils -g -p0 test.hdd import bin/limine.map boot/limine.map + bin/limine-install test.hdd qemu-system-x86_64 -net none -smp 4 -enable-kvm -cpu host -hda test.hdd -debugcon stdio ext2-test: test.hdd bootloader | all $(MAKE) -C test - cp stages.map test/ rm -rf test_image/ mkdir test_image sudo losetup -Pf --show test.hdd > loopback_dev @@ -93,17 +89,16 @@ ext2-test: test.hdd bootloader | all sudo mkfs.ext2 `cat loopback_dev`p1 sudo mount `cat loopback_dev`p1 test_image sudo mkdir test_image/boot - sudo cp -rv ./limine.sys test/* test_image/boot/ + sudo cp -rv bin/* test/* test_image/boot/ sync sudo umount test_image/ sudo losetup -d `cat loopback_dev` rm -rf test_image loopback_dev - ./limine-install ./ test.hdd + bin/limine-install test.hdd qemu-system-x86_64 -net none -smp 4 -enable-kvm -cpu host -hda test.hdd -debugcon stdio fat32-test: test.hdd bootloader | all $(MAKE) -C test - cp stages.map test/ rm -rf test_image/ mkdir test_image sudo losetup -Pf --show test.hdd > loopback_dev @@ -111,19 +106,18 @@ fat32-test: test.hdd bootloader | all sudo mkfs.fat -F 32 `cat loopback_dev`p1 sudo mount `cat loopback_dev`p1 test_image sudo mkdir test_image/boot - sudo cp -rv ./limine.sys test/* test_image/boot/ + sudo cp -rv bin/* test/* test_image/boot/ sync sudo umount test_image/ sudo losetup -d `cat loopback_dev` rm -rf test_image loopback_dev - ./limine-install ./ test.hdd + bin/limine-install test.hdd qemu-system-x86_64 -net none -smp 4 -enable-kvm -cpu host -hda test.hdd -debugcon stdio iso9660-test: bootloader $(MAKE) -C test - cp stages.map test/ rm -rf test_image/ mkdir -p test_image/boot - cp -rv limine-cd.bin limine.sys stages/stages.bin test/* test_image/boot/ + cp -rv bin/* test/* test_image/boot/ genisoimage -no-emul-boot -b boot/limine-cd.bin -o test.iso test_image/ qemu-system-x86_64 -net none -smp 4 -enable-kvm -cpu host -cdrom test.iso -debugcon stdio diff --git a/limine-install.c b/limine-install.c index 74cf034d..dfe053d2 100644 --- a/limine-install.c +++ b/limine-install.c @@ -259,54 +259,26 @@ static bool _device_write(const void *buffer, uint64_t loc, size_t count) { goto cleanup; \ } while (0) -extern uint8_t _binary_limine_bin_start[], _binary_limine_bin_end[]; -extern uint8_t _binary_limine_sys_start[], _binary_limine_sys_end[]; +extern uint8_t _binary_bin_limine_hdd_bin_start[], _binary_bin_limine_hdd_bin_end[]; int main(int argc, char *argv[]) { int ok = 1; - uint8_t *bootloader_img = _binary_limine_bin_start; + uint8_t *bootloader_img = _binary_bin_limine_hdd_bin_start; size_t bootloader_file_size = - (size_t)_binary_limine_bin_end - (size_t)_binary_limine_bin_start; - uint8_t *stage3_img = _binary_limine_sys_start; - size_t stage3_file_size = - (size_t)_binary_limine_sys_end - (size_t)_binary_limine_sys_start; + (size_t)_binary_bin_limine_hdd_bin_end - (size_t)_binary_bin_limine_hdd_bin_start; uint8_t orig_mbr[70], timestamp[6]; - char *limine_sys_path = NULL; - int limine_sys = -1; if (sizeof(off_t) != 8) { fprintf(stderr, "ERROR: off_t type is not 64-bit.\n"); goto cleanup; } - if (argc < 3) { - printf("Usage: %s [GPT partition index]\n", argv[0]); + if (argc < 2) { + printf("Usage: %s [GPT partition index]\n", argv[0]); goto cleanup; } - #define MAX_STAGE3_PATH 1024 - - limine_sys_path = malloc(MAX_STAGE3_PATH); - if (limine_sys_path == NULL) { - perror("ERROR"); - goto cleanup; - } - - snprintf(limine_sys_path, MAX_STAGE3_PATH, "%s/limine.sys", argv[1]); - - limine_sys = creat(limine_sys_path, 0644); - if (limine_sys == -1) { - perror("ERROR"); - goto cleanup; - } - - if (write(limine_sys, stage3_img, stage3_file_size) != - (ssize_t)stage3_file_size) { - perror("ERROR"); - goto cleanup; - } - - device = open(argv[2], O_RDWR); + device = open(argv[1], O_RDWR); if (device == -1) { perror("ERROR"); goto cleanup; @@ -358,7 +330,7 @@ int main(int argc, char *argv[]) { if (gpt) { if (argc > 3) { uint32_t partition_num; - sscanf(argv[3], "%" SCNu32, &partition_num); + sscanf(argv[2], "%" SCNu32, &partition_num); partition_num--; if (partition_num > gpt_header.number_of_partition_entries) { fprintf(stderr, "ERROR: Partition number is too large.\n"); @@ -502,10 +474,6 @@ cleanup: free(cache); if (device != -1) close(device); - if (limine_sys_path != NULL) - free(limine_sys_path); - if (limine_sys != -1) - close(limine_sys); return ok; } diff --git a/cdboot/bootsect.asm b/stage1/cd/bootsect.asm similarity index 90% rename from cdboot/bootsect.asm rename to stage1/cd/bootsect.asm index adc1db28..69d346fc 100644 --- a/cdboot/bootsect.asm +++ b/stage1/cd/bootsect.asm @@ -62,9 +62,9 @@ skip_bpb: call read_file jc err - ; Find and load '/BOOT/STAGES.BIN' - mov ebx, TXT_STAGES - mov cl, TXT_STAGES_SZ + ; Find and load '/BOOT/LIMINE.SYS' + mov ebx, TXT_LIMINE + mov cl, TXT_LIMINE_SZ call read_file ; esi is set from the last call jc err @@ -82,7 +82,7 @@ err: jmp err %include 'iso9660.asm' -%include '../hddboot/gdt.inc' +%include '../gdt.asm' BITS 32 pmode: @@ -102,8 +102,8 @@ pmode: TXT_BOOT: db "BOOT" TXT_BOOT_SZ equ $ - TXT_BOOT -TXT_STAGES: db "STAGES.BIN;1" -TXT_STAGES_SZ equ $ - TXT_STAGES +TXT_LIMINE: db "LIMINE.SYS;1" +TXT_LIMINE_SZ equ $ - TXT_LIMINE ; Just making sure the entry point (ISO9660_BUFFER) is not reached times (0x8000 - 0x7C00) - ($ - $$) db 0 diff --git a/cdboot/findFile.asm b/stage1/cd/findFile.asm similarity index 100% rename from cdboot/findFile.asm rename to stage1/cd/findFile.asm diff --git a/cdboot/findPVD.asm b/stage1/cd/findPVD.asm similarity index 100% rename from cdboot/findPVD.asm rename to stage1/cd/findPVD.asm diff --git a/cdboot/iso9660.asm b/stage1/cd/iso9660.asm similarity index 100% rename from cdboot/iso9660.asm rename to stage1/cd/iso9660.asm diff --git a/cdboot/read_2k_sectors.asm b/stage1/cd/read_2k_sectors.asm similarity index 100% rename from cdboot/read_2k_sectors.asm rename to stage1/cd/read_2k_sectors.asm diff --git a/cdboot/strcmp.asm b/stage1/cd/strcmp.asm similarity index 100% rename from cdboot/strcmp.asm rename to stage1/cd/strcmp.asm diff --git a/hddboot/gdt.inc b/stage1/gdt.asm similarity index 100% rename from hddboot/gdt.inc rename to stage1/gdt.asm diff --git a/hddboot/bootsect.asm b/stage1/hdd/bootsect.asm similarity index 95% rename from hddboot/bootsect.asm rename to stage1/hdd/bootsect.asm index c5722ba8..6277de4f 100644 --- a/hddboot/bootsect.asm +++ b/stage1/hdd/bootsect.asm @@ -89,8 +89,8 @@ times 6 db 0 ; Includes -%include 'disk.inc' -%include 'gdt.inc' +%include 'disk.asm' +%include '../gdt.asm' bits 32 vector: @@ -126,9 +126,9 @@ dw 0xaa55 ; ********************* Stage 2 ********************* decompressor: -incbin '../decompressor/decompressor.bin' +incbin '../../decompressor/decompressor.bin' align 16 stage2: -incbin '../stages/stage2.bin.gz' +incbin '../../stage23/stage2.bin.gz' .size: equ $ - stage2 diff --git a/hddboot/disk.inc b/stage1/hdd/disk.asm similarity index 100% rename from hddboot/disk.inc rename to stage1/hdd/disk.asm diff --git a/pxeboot/bootsect.asm b/stage1/pxe/bootsect.asm similarity index 88% rename from pxeboot/bootsect.asm rename to stage1/pxe/bootsect.asm index a003c506..e67aa637 100644 --- a/pxeboot/bootsect.asm +++ b/stage1/pxe/bootsect.asm @@ -50,15 +50,15 @@ err: ; Includes -%include '../hddboot/gdt.inc' +%include '../gdt.asm' ; ********************* Stage 2 ********************* decompressor: -incbin '../decompressor/decompressor.bin' +incbin '../../decompressor/decompressor.bin' align 16 stage2: -incbin '../stages/stage2.bin.gz' +incbin '../../stage23/stage2.bin.gz' .size: equ $ - stage2 .fullsize: equ $ - decompressor diff --git a/stages/Makefile b/stage23/Makefile similarity index 61% rename from stages/Makefile rename to stage23/Makefile index 1f2975d0..32609b65 100644 --- a/stages/Makefile +++ b/stage23/Makefile @@ -35,8 +35,7 @@ INTERNAL_LDFLAGS = \ -nostdlib \ -no-pie \ -z max-page-size=0x1000 \ - -static \ - -Tlinker.ld + -static .PHONY: all clean @@ -45,26 +44,25 @@ ASM_FILES := $(shell find -L ./ -type f -name '*.asm' | sort) OBJ := $(ASM_FILES:.asm=.o) $(C_FILES:.c=.o) HEADER_DEPS := $(C_FILES:.c=.d) -all: stages.map stages.bin stage2.bin stage2.bin.gz stage3.bin +all: limine.sys stage2.bin stage2.bin.gz stage2.bin.gz: stage2.bin gzip -n -9 < stage2.bin > stage2.bin.gz -stage2.bin: stages.bin - dd if=stages.bin bs=$$(( 0x$$($(READELF) -S stages.elf | grep .stage3 | sed 's/^.*] //' | awk '{print $$3}' | sed 's/^0*//') - 0x8000 )) count=1 of=$@ +stage2.bin: limine.sys + dd if=limine.sys bs=$$(( 0x$$($(READELF) -S limine.elf | grep .stage3.text | sed 's/^.*] //' | awk '{print $$3}' | sed 's/^0*//') - 0x8000 )) count=1 of=$@ -stage3.bin: stages.bin - dd if=stages.bin bs=$$(( 0x$$($(READELF) -S stages.elf | grep .stage3 | sed 's/^.*] //' | awk '{print $$3}' | sed 's/^0*//') - 0x8000 )) skip=1 of=$@ +limine.map.o: limine_nomap.elf + ./gensyms.sh $(OBJDUMP) limine_nomap.elf limine -stages.map: stages.elf - ./gensyms.sh $(OBJDUMP) - nasm symlist.gen -f bin -o $@ - -stages.bin: stages.elf +limine.sys: limine.elf $(OBJCOPY) -O binary $< $@ -stages.elf: $(OBJ) - $(LD) $(OBJ) $(LDFLAGS) $(INTERNAL_LDFLAGS) -o $@ +limine_nomap.elf: $(OBJ) + $(LD) $(OBJ) $(LDFLAGS) $(INTERNAL_LDFLAGS) -Tlinker_nomap.ld -o $@ + +limine.elf: $(OBJ) limine.map.o + $(LD) $(OBJ) limine.map.o $(LDFLAGS) $(INTERNAL_LDFLAGS) -Tlinker.ld -o $@ -include $(HEADER_DEPS) @@ -75,4 +73,4 @@ stages.elf: $(OBJ) nasm $< -f elf32 -o $@ clean: - rm -f symlist.gen stages.elf stages.map stages.bin stage2.bin stage2.bin.gz stage3.bin $(OBJ) $(HEADER_DEPS) + rm -f symlist.gen limine.elf limine.sys stage2.bin stage2.bin.gz $(OBJ) $(HEADER_DEPS) diff --git a/stages/drivers/disk.c b/stage23/drivers/disk.c similarity index 100% rename from stages/drivers/disk.c rename to stage23/drivers/disk.c diff --git a/stages/drivers/disk.h b/stage23/drivers/disk.h similarity index 100% rename from stages/drivers/disk.h rename to stage23/drivers/disk.h diff --git a/stages/drivers/vbe.c b/stage23/drivers/vbe.c similarity index 100% rename from stages/drivers/vbe.c rename to stage23/drivers/vbe.c diff --git a/stages/drivers/vbe.h b/stage23/drivers/vbe.h similarity index 100% rename from stages/drivers/vbe.h rename to stage23/drivers/vbe.h diff --git a/stages/drivers/vga_textmode.c b/stage23/drivers/vga_textmode.c similarity index 100% rename from stages/drivers/vga_textmode.c rename to stage23/drivers/vga_textmode.c diff --git a/stages/drivers/vga_textmode.h b/stage23/drivers/vga_textmode.h similarity index 100% rename from stages/drivers/vga_textmode.h rename to stage23/drivers/vga_textmode.h diff --git a/stages/entry.asm b/stage23/entry.asm similarity index 100% rename from stages/entry.asm rename to stage23/entry.asm diff --git a/stages/fs/echfs.c b/stage23/fs/echfs.c similarity index 100% rename from stages/fs/echfs.c rename to stage23/fs/echfs.c diff --git a/stages/fs/echfs.h b/stage23/fs/echfs.h similarity index 100% rename from stages/fs/echfs.h rename to stage23/fs/echfs.h diff --git a/stages/fs/ext2.c b/stage23/fs/ext2.c similarity index 100% rename from stages/fs/ext2.c rename to stage23/fs/ext2.c diff --git a/stages/fs/ext2.h b/stage23/fs/ext2.h similarity index 100% rename from stages/fs/ext2.h rename to stage23/fs/ext2.h diff --git a/stages/fs/fat32.c b/stage23/fs/fat32.c similarity index 100% rename from stages/fs/fat32.c rename to stage23/fs/fat32.c diff --git a/stages/fs/fat32.h b/stage23/fs/fat32.h similarity index 100% rename from stages/fs/fat32.h rename to stage23/fs/fat32.h diff --git a/stages/fs/file.c b/stage23/fs/file.c similarity index 100% rename from stages/fs/file.c rename to stage23/fs/file.c diff --git a/stages/fs/file.h b/stage23/fs/file.h similarity index 100% rename from stages/fs/file.h rename to stage23/fs/file.h diff --git a/stages/fs/iso9660.c b/stage23/fs/iso9660.c similarity index 100% rename from stages/fs/iso9660.c rename to stage23/fs/iso9660.c diff --git a/stages/fs/iso9660.h b/stage23/fs/iso9660.h similarity index 100% rename from stages/fs/iso9660.h rename to stage23/fs/iso9660.h diff --git a/stage23/gensyms.sh b/stage23/gensyms.sh new file mode 100755 index 00000000..8aacfaa2 --- /dev/null +++ b/stage23/gensyms.sh @@ -0,0 +1,24 @@ +#!/bin/sh + +set -e + +TMP1=$(mktemp) +TMP2=$(mktemp) +TMP3=$(mktemp) +TMP4=$(mktemp) + +$1 -t "$2" | sed '/\bd\b/d' | sort > "$TMP1" +grep "\.text" < "$TMP1" | cut -d' ' -f1 > "$TMP2" +grep "\.text" < "$TMP1" | awk 'NF{ print $NF }' > "$TMP3" + +echo "section .map" > "$TMP4" +echo "global $3_map" >> "$TMP4" +echo "$3_map:" >> "$TMP4" + +paste -d'$' "$TMP2" "$TMP3" | sed 's/^/dd 0x/g' | sed 's/$/", 0/g' | sed 's/\$/\ndb "/g' >> "$TMP4" + +echo "dd 0xffffffff" >> "$TMP4" + +nasm -f elf32 "$TMP4" -o $3.map.o + +rm "$TMP1" "$TMP2" "$TMP3" "$TMP4" diff --git a/stages/lib/acpi.c b/stage23/lib/acpi.c similarity index 100% rename from stages/lib/acpi.c rename to stage23/lib/acpi.c diff --git a/stages/lib/acpi.h b/stage23/lib/acpi.h similarity index 100% rename from stages/lib/acpi.h rename to stage23/lib/acpi.h diff --git a/stages/lib/blib.c b/stage23/lib/blib.c similarity index 100% rename from stages/lib/blib.c rename to stage23/lib/blib.c diff --git a/stages/lib/blib.h b/stage23/lib/blib.h similarity index 97% rename from stages/lib/blib.h rename to stage23/lib/blib.h index b6c9f152..794353c8 100644 --- a/stages/lib/blib.h +++ b/stage23/lib/blib.h @@ -43,7 +43,7 @@ uint64_t strtoui(const char *s, const char **end, int base); #define SIZEOF_ARRAY(array) (sizeof(array) / sizeof(array[0])) -typedef void *symbol[]; +typedef char symbol[]; #define stage3_text __attribute__((section(".stage3_text"))) #define stage3_data __attribute__((section(".stage3_data"))) diff --git a/stages/lib/bmp.c b/stage23/lib/bmp.c similarity index 100% rename from stages/lib/bmp.c rename to stage23/lib/bmp.c diff --git a/stages/lib/bmp.h b/stage23/lib/bmp.h similarity index 100% rename from stages/lib/bmp.h rename to stage23/lib/bmp.h diff --git a/stages/lib/builtins.asm b/stage23/lib/builtins.asm similarity index 100% rename from stages/lib/builtins.asm rename to stage23/lib/builtins.asm diff --git a/stages/lib/config.c b/stage23/lib/config.c similarity index 95% rename from stages/lib/config.c rename to stage23/lib/config.c index 77eefd45..d4c006d6 100644 --- a/stages/lib/config.c +++ b/stage23/lib/config.c @@ -27,7 +27,12 @@ int init_config_disk(struct volume *part) { panic("Could not open stage 3"); } - fread(&stage3, stage3_addr, 0, stage3.size); + print("%x %x %x\n", stage3_addr, (uintptr_t)stage3_addr - 0x8000, + stage3.size - (uintptr_t)stage3_addr - 0x8000); + + fread(&stage3, stage3_addr, + (uintptr_t)stage3_addr - 0x8000, + stage3.size - ((uintptr_t)stage3_addr - 0x8000)); stage3_loaded = true; } diff --git a/stages/lib/config.h b/stage23/lib/config.h similarity index 100% rename from stages/lib/config.h rename to stage23/lib/config.h diff --git a/stages/lib/elf.c b/stage23/lib/elf.c similarity index 100% rename from stages/lib/elf.c rename to stage23/lib/elf.c diff --git a/stages/lib/elf.h b/stage23/lib/elf.h similarity index 100% rename from stages/lib/elf.h rename to stage23/lib/elf.h diff --git a/stages/lib/guid.c b/stage23/lib/guid.c similarity index 100% rename from stages/lib/guid.c rename to stage23/lib/guid.c diff --git a/stages/lib/guid.h b/stage23/lib/guid.h similarity index 100% rename from stages/lib/guid.h rename to stage23/lib/guid.h diff --git a/stages/lib/image.c b/stage23/lib/image.c similarity index 100% rename from stages/lib/image.c rename to stage23/lib/image.c diff --git a/stages/lib/image.h b/stage23/lib/image.h similarity index 100% rename from stages/lib/image.h rename to stage23/lib/image.h diff --git a/stages/lib/libc.c b/stage23/lib/libc.c similarity index 100% rename from stages/lib/libc.c rename to stage23/lib/libc.c diff --git a/stages/lib/libc.h b/stage23/lib/libc.h similarity index 100% rename from stages/lib/libc.h rename to stage23/lib/libc.h diff --git a/stages/lib/part.c b/stage23/lib/part.c similarity index 100% rename from stages/lib/part.c rename to stage23/lib/part.c diff --git a/stages/lib/part.h b/stage23/lib/part.h similarity index 100% rename from stages/lib/part.h rename to stage23/lib/part.h diff --git a/stages/lib/print.c b/stage23/lib/print.c similarity index 100% rename from stages/lib/print.c rename to stage23/lib/print.c diff --git a/stages/lib/print.h b/stage23/lib/print.h similarity index 100% rename from stages/lib/print.h rename to stage23/lib/print.h diff --git a/stages/lib/pxe.asm b/stage23/lib/pxe.asm similarity index 100% rename from stages/lib/pxe.asm rename to stage23/lib/pxe.asm diff --git a/stages/lib/rand.c b/stage23/lib/rand.c similarity index 100% rename from stages/lib/rand.c rename to stage23/lib/rand.c diff --git a/stages/lib/rand.h b/stage23/lib/rand.h similarity index 100% rename from stages/lib/rand.h rename to stage23/lib/rand.h diff --git a/stages/lib/readline.c b/stage23/lib/readline.c similarity index 100% rename from stages/lib/readline.c rename to stage23/lib/readline.c diff --git a/stages/lib/readline.h b/stage23/lib/readline.h similarity index 100% rename from stages/lib/readline.h rename to stage23/lib/readline.h diff --git a/stages/lib/real.asm b/stage23/lib/real.asm similarity index 100% rename from stages/lib/real.asm rename to stage23/lib/real.asm diff --git a/stages/lib/real.h b/stage23/lib/real.h similarity index 100% rename from stages/lib/real.h rename to stage23/lib/real.h diff --git a/stages/lib/sleep.asm b/stage23/lib/sleep.asm similarity index 100% rename from stages/lib/sleep.asm rename to stage23/lib/sleep.asm diff --git a/stages/lib/term.c b/stage23/lib/term.c similarity index 100% rename from stages/lib/term.c rename to stage23/lib/term.c diff --git a/stages/lib/term.h b/stage23/lib/term.h similarity index 100% rename from stages/lib/term.h rename to stage23/lib/term.h diff --git a/stages/lib/time.c b/stage23/lib/time.c similarity index 100% rename from stages/lib/time.c rename to stage23/lib/time.c diff --git a/stages/lib/time.h b/stage23/lib/time.h similarity index 100% rename from stages/lib/time.h rename to stage23/lib/time.h diff --git a/stages/lib/trace.c b/stage23/lib/trace.c similarity index 58% rename from stages/lib/trace.c rename to stage23/lib/trace.c index 362379ed..2c502949 100644 --- a/stages/lib/trace.c +++ b/stage23/lib/trace.c @@ -8,45 +8,30 @@ #include #include -static char *stage2_map = NULL; - -void trace_init(void) { - char *map_filename = config_get_value(NULL, 0, "STAGE2_MAP"); - if (map_filename == NULL) - return; - - struct file_handle stage2_map_file; - if (!uri_open(&stage2_map_file, map_filename)) - panic("Could not open stage2 map file `%s`", map_filename); - - stage2_map = ext_mem_alloc(stage2_map_file.size); - fread(&stage2_map_file, stage2_map, 0, stage2_map_file.size); - - print("trace: Stage 2 map file `%s` loaded.\n", map_filename); -} +extern symbol limine_map; char *trace_address(size_t *off, size_t addr) { - if (!stage2_map) + if (!stage3_loaded) return NULL; uint32_t prev_addr = 0; char *prev_sym = NULL; for (size_t i = 0;;) { - if (*((uint32_t *)&stage2_map[i]) >= addr) { + if (*((uint32_t *)&limine_map[i]) >= addr) { *off = addr - prev_addr; return prev_sym; } - prev_addr = *((uint32_t *)&stage2_map[i]); + prev_addr = *((uint32_t *)&limine_map[i]); i += sizeof(uint32_t); - prev_sym = &stage2_map[i]; - while (stage2_map[i++] != 0); + prev_sym = &limine_map[i]; + while (limine_map[i++] != 0); } } void print_stacktrace(size_t *base_ptr) { - if (!stage2_map) { - print("trace: Stack trace omitted due to unavailable map file.\n"); + if (!stage3_loaded) { + print("trace: Stack trace omitted because stage 3 was not loaded yet.\n"); return; } diff --git a/stages/lib/trace.h b/stage23/lib/trace.h similarity index 87% rename from stages/lib/trace.h rename to stage23/lib/trace.h index 30c3cf47..d67aa13d 100644 --- a/stages/lib/trace.h +++ b/stage23/lib/trace.h @@ -3,7 +3,6 @@ #include -void trace_init(void); char *trace_address(size_t *off, size_t addr); void print_stacktrace(size_t *base_ptr); diff --git a/stages/lib/uri.c b/stage23/lib/uri.c similarity index 100% rename from stages/lib/uri.c rename to stage23/lib/uri.c diff --git a/stages/lib/uri.h b/stage23/lib/uri.h similarity index 100% rename from stages/lib/uri.h rename to stage23/lib/uri.h diff --git a/stages/linker.ld b/stage23/linker.ld similarity index 76% rename from stages/linker.ld rename to stage23/linker.ld index b4cf68e2..2c0f573b 100644 --- a/stages/linker.ld +++ b/stage23/linker.ld @@ -13,18 +13,28 @@ SECTIONS KEEP(*(.realmode*)) } - .stage2 : { + .stage2.text : { *(.text*) + } + + .stage2.data : { *(.data*) *(.rodata*) } - .stage3 : { + .stage3.text : { stage3_addr = .; *(.stage3_text*) + } + + .stage3.data : { *(.stage3_data*) } + .map : { + KEEP(*(.map*)) + } + .bss : { bss_begin = .; *(COMMON) diff --git a/stage23/linker_nomap.ld b/stage23/linker_nomap.ld new file mode 100644 index 00000000..80a70c16 --- /dev/null +++ b/stage23/linker_nomap.ld @@ -0,0 +1,48 @@ +OUTPUT_FORMAT(elf32-i386) +ENTRY(_start) + +SECTIONS +{ + . = 0x8000; + + .entry : { + KEEP(*(.entry*)) + } + + .realmode : { + KEEP(*(.realmode*)) + } + + .stage2.text : { + *(.text*) + } + + .stage2.data : { + *(.data*) + *(.rodata*) + } + + .stage3.text : { + stage3_addr = .; + *(.stage3_text*) + } + + .stage3.data : { + *(.stage3_data*) + } + + .map : { + limine_map = .; + } + + .bss : { + bss_begin = .; + *(COMMON) + *(.bss*) + bss_end = .; + } + + /DISCARD/ : { + *(*) + } +} diff --git a/stages/main.c b/stage23/main.c similarity index 99% rename from stages/main.c rename to stage23/main.c index 5a284dff..76e7cc84 100644 --- a/stages/main.c +++ b/stage23/main.c @@ -87,8 +87,6 @@ void entry(uint8_t _boot_drive, int boot_from) { break; } - trace_init(); - char *cmdline; char *config = menu(&cmdline); diff --git a/stages/menu.c b/stage23/menu.c similarity index 100% rename from stages/menu.c rename to stage23/menu.c diff --git a/stages/menu.h b/stage23/menu.h similarity index 100% rename from stages/menu.h rename to stage23/menu.h diff --git a/stages/mm/mtrr.c b/stage23/mm/mtrr.c similarity index 100% rename from stages/mm/mtrr.c rename to stage23/mm/mtrr.c diff --git a/stages/mm/mtrr.h b/stage23/mm/mtrr.h similarity index 100% rename from stages/mm/mtrr.h rename to stage23/mm/mtrr.h diff --git a/stages/mm/pmm.c b/stage23/mm/pmm.c similarity index 100% rename from stages/mm/pmm.c rename to stage23/mm/pmm.c diff --git a/stages/mm/pmm.h b/stage23/mm/pmm.h similarity index 100% rename from stages/mm/pmm.h rename to stage23/mm/pmm.h diff --git a/stages/mm/vmm.c b/stage23/mm/vmm.c similarity index 100% rename from stages/mm/vmm.c rename to stage23/mm/vmm.c diff --git a/stages/mm/vmm.h b/stage23/mm/vmm.h similarity index 100% rename from stages/mm/vmm.h rename to stage23/mm/vmm.h diff --git a/stages/protos/chainload.c b/stage23/protos/chainload.c similarity index 100% rename from stages/protos/chainload.c rename to stage23/protos/chainload.c diff --git a/stages/protos/chainload.h b/stage23/protos/chainload.h similarity index 100% rename from stages/protos/chainload.h rename to stage23/protos/chainload.h diff --git a/stages/protos/linux.c b/stage23/protos/linux.c similarity index 100% rename from stages/protos/linux.c rename to stage23/protos/linux.c diff --git a/stages/protos/linux.h b/stage23/protos/linux.h similarity index 100% rename from stages/protos/linux.h rename to stage23/protos/linux.h diff --git a/stages/protos/stivale.c b/stage23/protos/stivale.c similarity index 100% rename from stages/protos/stivale.c rename to stage23/protos/stivale.c diff --git a/stages/protos/stivale.h b/stage23/protos/stivale.h similarity index 100% rename from stages/protos/stivale.h rename to stage23/protos/stivale.h diff --git a/stages/protos/stivale2.c b/stage23/protos/stivale2.c similarity index 100% rename from stages/protos/stivale2.c rename to stage23/protos/stivale2.c diff --git a/stages/protos/stivale2.h b/stage23/protos/stivale2.h similarity index 100% rename from stages/protos/stivale2.h rename to stage23/protos/stivale2.h diff --git a/stages/pxe/pxe.c b/stage23/pxe/pxe.c similarity index 100% rename from stages/pxe/pxe.c rename to stage23/pxe/pxe.c diff --git a/stages/pxe/pxe.h b/stage23/pxe/pxe.h similarity index 100% rename from stages/pxe/pxe.h rename to stage23/pxe/pxe.h diff --git a/stages/pxe/tftp.c b/stage23/pxe/tftp.c similarity index 100% rename from stages/pxe/tftp.c rename to stage23/pxe/tftp.c diff --git a/stages/pxe/tftp.h b/stage23/pxe/tftp.h similarity index 100% rename from stages/pxe/tftp.h rename to stage23/pxe/tftp.h diff --git a/stages/sys/a20.c b/stage23/sys/a20.c similarity index 100% rename from stages/sys/a20.c rename to stage23/sys/a20.c diff --git a/stages/sys/a20.h b/stage23/sys/a20.h similarity index 100% rename from stages/sys/a20.h rename to stage23/sys/a20.h diff --git a/stages/sys/cpu.h b/stage23/sys/cpu.h similarity index 100% rename from stages/sys/cpu.h rename to stage23/sys/cpu.h diff --git a/stages/sys/e820.c b/stage23/sys/e820.c similarity index 100% rename from stages/sys/e820.c rename to stage23/sys/e820.c diff --git a/stages/sys/e820.h b/stage23/sys/e820.h similarity index 100% rename from stages/sys/e820.h rename to stage23/sys/e820.h diff --git a/stages/sys/gdt.asm b/stage23/sys/gdt.asm similarity index 100% rename from stages/sys/gdt.asm rename to stage23/sys/gdt.asm diff --git a/stages/sys/lapic.c b/stage23/sys/lapic.c similarity index 100% rename from stages/sys/lapic.c rename to stage23/sys/lapic.c diff --git a/stages/sys/lapic.h b/stage23/sys/lapic.h similarity index 100% rename from stages/sys/lapic.h rename to stage23/sys/lapic.h diff --git a/stages/sys/pic.c b/stage23/sys/pic.c similarity index 100% rename from stages/sys/pic.c rename to stage23/sys/pic.c diff --git a/stages/sys/pic.h b/stage23/sys/pic.h similarity index 100% rename from stages/sys/pic.h rename to stage23/sys/pic.h diff --git a/stages/sys/smp.c b/stage23/sys/smp.c similarity index 100% rename from stages/sys/smp.c rename to stage23/sys/smp.c diff --git a/stages/sys/smp.h b/stage23/sys/smp.h similarity index 100% rename from stages/sys/smp.h rename to stage23/sys/smp.h diff --git a/stages/sys/smp_trampoline.asm b/stage23/sys/smp_trampoline.asm similarity index 100% rename from stages/sys/smp_trampoline.asm rename to stage23/sys/smp_trampoline.asm diff --git a/stages/tinf b/stage23/tinf similarity index 100% rename from stages/tinf rename to stage23/tinf diff --git a/stages/gensyms.sh b/stages/gensyms.sh deleted file mode 100755 index 16145d55..00000000 --- a/stages/gensyms.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh - -set -e - -TMP1=$(mktemp) -TMP2=$(mktemp) -TMP3=$(mktemp) - -$1 -t stage2.elf | sed '/\bd\b/d' | sort > "$TMP1" -grep "\.text" < "$TMP1" | cut -d' ' -f1 > "$TMP2" -grep "\.text" < "$TMP1" | awk 'NF{ print $NF }' > "$TMP3" - -paste -d'$' "$TMP2" "$TMP3" | sed 's/^/dd 0x/g' | sed 's/$/", 0/g' | sed 's/\$/\ndb "/g' > symlist.gen - -echo "dd 0xffffffff" >> symlist.gen - -rm "$TMP1" "$TMP2" "$TMP3" diff --git a/test/limine.cfg b/test/limine.cfg index 4fefa794..263998ca 100644 --- a/test/limine.cfg +++ b/test/limine.cfg @@ -5,7 +5,7 @@ GRAPHICS=yes MENU_RESOLUTION=1024x768 MENU_FONT=boot:///boot/font.bin E9_OUTPUT=yes -STAGE2_MAP=boot:///boot/stages.map +STAGE2_MAP=boot:///boot/limine.map THEME_COLOURS=60000000;aa0000;00aaff;aa5500;0000aa;aa00aa;9076de;aaaaaa THEME_MARGIN=64