Commit Graph

65 Commits

Author SHA1 Message Date
Mintsuki
3b7c85ff71 drivers/disk: Add disk_create_index() workaround for optical drive on VMware/BIOS 2026-04-04 14:37:09 +02:00
Mintsuki
8c95baeea9 drivers/disk: Fix unique sector pool being clobbered by find_unique_sectors() 2026-04-02 22:21:54 +02:00
Mintsuki
e0a93f5c39 drivers/disk: Remove sector size whitelist 2026-02-16 13:08:01 +01:00
Mintsuki
0b0794972c drivers/disk: Move BlockSize and LastBlock validation before volume allocation 2026-02-09 13:02:39 +01:00
Mintsuki
8fc3cdfa47 drivers/disk: Skip UEFI block devices with BlockSize == 0 2026-02-09 13:02:39 +01:00
Mintsuki
e3b8f58571 drivers/disk: Free volume on detect_sector_size failure 2026-02-09 13:02:39 +01:00
Mintsuki
129fc506ce drivers/disk: Guard against LastBlock == UINT64_MAX overflow 2026-02-09 13:02:38 +01:00
Mintsuki
e84c1a5ccc drivers/disk: Re-add mistakenly removed responsiveness check for EFI volumes 2026-02-05 09:50:41 +01:00
Mintsuki
c270a97302 drivers/disk: Lazily find unique sectors if needed 2026-02-04 08:20:57 +01:00
Mintsuki
40bdb21b28 drivers/disk: Add extra layer of verification for unique sector fallback matches 2026-02-04 08:20:57 +01:00
Mintsuki
89c92a887d drivers/disk: Use volume_by_device_path() as primary detection method 2026-02-04 08:20:57 +01:00
Mintsuki
352fb9a6cf drivers/disk: Normalise sect_count to always be in 512-byte blocks 2026-02-04 07:42:27 +01:00
Mintsuki
44600beb01 drivers/disk: Fix issue with unique sectors discovery
Sometimes (in cases with 3+ instances of collisions) non-unique cases could be classified as unique.
2026-02-04 01:36:39 +01:00
Mintsuki
dab44f4501 drivers/disk: Work around PicoEFI structure definition issue in volume_by_device_path() 2026-02-04 01:36:39 +01:00
Mintsuki
6dc52f3a09 drivers/disk: Optical volume detection without writes on BIOS 2026-02-02 02:56:27 +01:00
Mintsuki
0408d81989 drivers/disk: Get rid of more unreliable volume detection methods and misc fixes 2026-02-02 02:15:38 +01:00
Mintsuki
e291532d7a drivers/disk: Re-add unique sector volume detection method 2026-02-01 14:28:33 +01:00
Mintsuki
0491f550c1 drivers/disk: Refactor disk_volume_from_efi_handle() and disk_create_index() to not ever attempt disk writes 2026-01-31 14:47:23 +01:00
Mintsuki
1209935a7b disk: Free volume struct on partition enumeration failure 2026-01-11 23:45:22 +01:00
Mintsuki
8a0f7684a7 drivers/disk: Validate sector size and device path traversal 2025-12-26 13:27:34 +01:00
Mintsuki
42e5fb9ded drivers/disk: Skip EFI handles with VenHw(7CCE9C94-983F-4D0A-8143-B6C05545B223)
See https://github.com/limine-bootloader/limine/issues/521#issuecomment-3160168795
2025-10-29 00:01:44 +01:00
Mintsuki
a0b5faddf9 drivers/disk: Partial revert of f39f51d0; ensure EFI handles are HDD type before attempting write-back method 2025-09-13 22:11:22 +02:00
Mintsuki
e9592014da drivers/disk: Only validate EFI handle before running the fallback detection method 2025-09-05 22:52:35 +02:00
Mintsuki
d36726b4ba drivers/disk: EFI: Do not disable write caching unnecessarily
See #525
2025-08-06 18:45:42 +02:00
Mintsuki
b1422f5692 drivers/disk: EFI: Attempt to restore original data to volume even after a write failure
See #525
2025-08-06 18:23:55 +02:00
Mintsuki
47667c34f4 drivers/disk: EFI: More coarse validation of handles based on PCI HW subtype 2025-08-06 16:11:57 +02:00
Mintsuki
a68dd11cff driver/disk: EFI: Attempt to validate EFI volume handles before use 2025-08-06 06:44:14 +02:00
Mintsuki
dc42296949 drivers/disk: Reinstate limit for scanned drives to 0xf0 for BIOS 2025-05-27 19:59:58 +02:00
Mintsuki
73d03e7149 disk: Avoid mistakingly allocating more memory than necessary
What should've been a sizeof(void *) had been a sizeof(struct volume) for the longest time
2025-03-25 23:18:20 +01:00
Mintsuki
3ef6bb6764 disk: Handle dynamically allocating volume index. Fixes #481 2025-03-25 21:54:08 +01:00
mintsuki
32a96b4666 drivers/disk: Allocate unique_sector_pool at runtime 2024-07-15 01:03:14 +02:00
mintsuki
a8f6d49c19 drivers/disk: Simplify overly convoluted code to invalidate collision unique sector 2024-07-15 00:16:57 +02:00
mintsuki
5090334a09 drivers/disk: Optimise disk_volume_from_efi_handle() 2024-07-14 21:22:45 +02:00
mintsuki
a15a75d210 drivers/disk: Get rid of logically broken unique sector detection and replace with working one 2024-07-14 08:30:32 +02:00
mintsuki
b258face1c drivers/disk: Ensure disk_volume_from_efi_handle() does not return erroneous results 2024-07-14 04:32:40 +02:00
mintsuki
705dfa92f6 disk: UEFI: Add additional sector_size == 2048 condition for is_optical 2024-05-08 21:42:29 +02:00
mintsuki
40a772033a disk: BIOS: Yucky workaround to a workaround to an HP Pavillion something 2024-05-08 20:55:27 +02:00
mintsuki
9109b40756 disk: BIOS: Fix wrong logical operator from 9476b3dfaa 2024-05-07 21:03:15 +02:00
mintsuki
71cfe73d67 disk: BIOS: Work around bogus GCC warning 2024-05-07 20:11:28 +02:00
mintsuki
10e0ca6aaa disk: BIOS: Remove useless disk_read_sectors() call 2024-05-07 20:05:04 +02:00
mintsuki
9476b3dfaa disk: BIOS: Use DPTE to determine removable media and BDA disk count to skip broken entries 2024-05-07 19:53:03 +02:00
mintsuki
51fc81b117 disk: Set MAX_VOLUMES to 256 for UEFI ports 2024-04-29 23:14:48 +02:00
mintsuki
4abedffb43 disk: BIOS: Skip drive if sector size is 0. Fixes #294 2023-08-19 08:20:45 -05:00
mintsuki
27a32e416c disk: Add additional volume_index_i overflow guards 2023-08-18 13:37:16 -05:00
Bryce Lanham
fe083d3701 Fix netboot in configs where BLOCK_IO does not exist
For example, netbooting qemu-system-aarch64 with no drive specified will
result in OVMF not loading the BLOCK_IO_PROTOCOL, causing a panic in
disk.s2.c.
2023-06-01 03:33:13 -05:00
mintsuki
f26b651e5f disk/efi: Do not use DISK_IO protocol and fix buffer reuse bug 2023-05-30 21:36:09 +02:00
Qwinci
3dd0a6fb41 limine: Add UEFI PXE support
based on @qookei's original patch with small changes.
2023-01-17 18:47:36 +02:00
mintsuki
f9399fd5a3 disk: Fix issue where _p struct was not zeroed out in create_disk_index() 2022-11-19 06:35:41 +01:00
beakeyz
28187433f9 Fixed little memory leak in the UEFI build that would make the bootloader crash on systems with larger disks 2022-11-18 22:28:28 +00:00
mintsuki
3c541576f3 disk: Fix wrong parameter passed to ReadBlocks() 2022-10-14 06:59:35 +02:00