git.cappig.dev / apheleiaOS.git master

f885212d8981a2847e625020f98c364bf7eee522 master
cappig <[email protected]> ยท 4 months ago
Add ATAPI CD-ROM and ISO boot support

* Refactor ATA into per-channel/device model with master/slave
  and ATAPI packet command support
* BIOS bootloader: detect CD-ROM sector size, scan full directory
  extent. MBR: split reads at 64K DMA boundary.
* Unify partition parsing (GPT then MBR), make devfs and ext2
  work on read-only media
* Add ISO and hybrid disk image build scripts, add QEMU UEFI
  boot support
* Kernel: iterate disks to find rootfs, init devfs before
  publishing disk devices
16 files changed, 802 insertions, 182 deletions
kernel/arch/x86/ata.c +326 -106
kernel/arch/x86/boot/bios/disk.c +44 -15
kernel/arch/x86/boot/bios/elf.c +7 -3
kernel/arch/x86/boot/bios/entry.asm +8 -2
kernel/arch/x86/boot/bios/vesa.c +1 -1
kernel/arch/x86/boot/mbr/mbr.asm +37 -2
kernel/arch/x86/build/build.mk +22 -18
kernel/disk_image.sh created
kernel/fs/ext2fs.c +2 -4
kernel/iso_image.sh created
kernel/main.c +12 -3
kernel/sys/devfs.c +15 -2
kernel/sys/disk.c +12 -8
makefile +3 -7
user/build.mk +2 -1
utils/qemu.mk +5 -10