Commit Graph

20 Commits

Author SHA1 Message Date
Bananymous 15c55b8c7d BuildSystem: Don't hardcode partition UUID
That was dumb :D I can just read the UUID parted assigned...
2024-11-21 20:37:42 +02:00
Bananymous 8054f6c618 Kernel: Wait 10 seconds to find root device
If root device is initialized asynchronously it may not be ready when
main initialization thread is finished. This patch adds searching for
root device every 500 ms for 10 seconds.
2024-11-21 17:56:58 +02:00
Bananymous fb35f06cf5 Kernel: Add better support for bootloaders loading the kernel
Before I assumed that bootloaders loaded the kernel at physical address
0, but this patch kinda allows loading to different addresses. This
still doesn't fully work as kernel bootstrap paging relies on kernel
being loaded at 0
2024-08-22 14:48:21 +03:00
Bananymous 9ac3f48fcb Bootloader: Implement better memset and memcpy for 32 bit addresses 2024-04-20 18:14:05 +03:00
Bananymous 6ac3681604 Bootloader: Implement loading for 32 bit ELF files. 2024-04-02 15:30:35 +03:00
Bananymous ca23360d07 Bootloader: Fix GDRT pointer size to 32 bits 2024-03-26 03:04:57 +02:00
Bananymous dfe5a2d665 All: Cleanup all files
Add newline to end of files and remove whitespace from end of lines
2024-01-24 15:53:38 +02:00
Bananymous 7e36a0be75 Bootloader: Add .data section 2024-01-12 19:27:36 +02:00
Bananymous ff2486f58c Bootloader: Try to enable A20 line if it is disabled
VirtualBox seems to have A20 disabled by default
2024-01-12 02:55:06 +02:00
Bananymous 2fec718590 Bootloader: cleanup code 2024-01-08 10:50:55 +02:00
Bananymous ccaa159a73 Bootloader: Add support for ext2 blocks up to 4 KiB
This should work with blocks bigger than that, but my linux system
only supports up to 4 KiB, so I cannot test this.

This allows getting rid of forced block size in mkfs and let the
program select appropriately sized blocks.
2024-01-03 18:26:03 +02:00
Bananymous 7356a83a44 Bootloader: Optimize some unnecessary branches on carry add/sub 2024-01-03 17:05:33 +02:00
Bananymous 2a68df81e2 Bootloader: Fix bootloader on bochs
Bochs int 0x10 seems to scrap full ebp and top bits in some
registers. I now save all 32-bit registers on call frame. Also
ebp is across all int 0x10 calls.
2024-01-03 13:09:55 +02:00
Bananymous 50ca2ac09e Bootloader: Interpret 0x7F (DEL) as backspace
This allows backspace to work over qemu's serial connection
2024-01-03 11:58:50 +02:00
Bananymous 3f3e81fcf2 Bootloader: Align boot information passed to kernel
UBSAN found this bug
2023-12-14 10:52:51 +02:00
Bananymous abc69fa3d5 Bootloader: Search framebuffer information from kernel memory
Framebuffer information is no longer hard coded into bootloader.
Kernel can define framebuffer info structure in its memory which is
used for finding proper video mode.
2023-12-09 17:32:10 +02:00
Bananymous 8b01e2d4a2 Bootloader: Generalize framebuffer video mode search
Framebuffer size is now taken as arguments to vesa_find_video_mode
2023-12-09 16:48:04 +02:00
Bananymous 25485069e6 Bootloader: Add cache to ext2 inode data block indices
This reduces the number of read calls with current kernel size from
~1700 to ~700 (60% performance boots). Loading the kernel is now alot
faster.
2023-11-22 13:54:53 +02:00
Bananymous f80bd040c8 Bootloader: add missing size directive 2023-11-21 19:11:48 +02:00
Bananymous cd646a1ab7 Bootloader do some directory restructuring 2023-11-18 13:59:45 +02:00