seabios/src/hw
Max Tottenham 82faf1d5c8 Add LBA 64bit support for reads beyond 2TB.
When booting from a >2TB drive/filesystem, it's possible what the
kernel/bootloader may be updated and written out at an LBA address
beyond what is normally accessible by the READ(10) SCSI commands.
If this happens to the kernel grub will fail to boot the kernel
as it will call into the BIOS with an LBA address >2TB, and the
BIOS will return an error. Per the SCSI spec, >2TB drives should
return 0XFFFFFFFF, and a READ CAPACITY(16) command should be issued
to determine the full size of the drive, READ(16) commands can then
be used in order to read data at LBA addresses beyond 2TB (64 bit
LBA addresses)

Signed-off-by: Max Tottenham <mtottenh@akamai.com>
Message-ID: <20240125150050.3775834-2-mtottenh@akamai.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2024-01-26 15:59:34 +01:00
..
ahci.c Add AHCI Power ON + ICC_ACTIVE into port setup code 2024-01-25 10:12:22 +01:00
ahci.h ahci: Convert to new PCI BAR helper functions 2016-02-02 23:16:40 -05:00
ata.c geometry: Apply LCHS values for boot devices 2019-11-18 14:58:37 +01:00
ata.h ahci: set transfer mode according to the capabilities of connected drive 2016-02-29 11:23:09 -05:00
blockcmd.c Add LBA 64bit support for reads beyond 2TB. 2024-01-26 15:59:34 +01:00
blockcmd.h Add LBA 64bit support for reads beyond 2TB. 2024-01-26 15:59:34 +01:00
dma.c Remove ioport.h; disperse its contents to other header files. 2013-09-28 22:10:31 -04:00
esp-scsi.c esp-scsi: terminate DMA transfer when ESP data transfer completes 2024-01-25 10:08:37 +01:00
esp-scsi.h esp-scsi: Handle ESP drives directly via 'struct disk_op_s' requests 2015-07-14 14:40:08 -04:00
floppy.c floppy: Send 4 sense interrupt commands during controller initialization 2018-02-15 00:18:14 -05:00
lsi-scsi.c geometry: Apply LCHS values for boot devices 2019-11-18 14:58:37 +01:00
lsi-scsi.h lsi-scsi: Handle LSI drives directly via 'struct disk_op_s' requests 2015-07-14 14:40:08 -04:00
megasas.c geometry: Apply LCHS values for boot devices 2019-11-18 14:58:37 +01:00
megasas.h megasas: Handle Megasas drives directly via 'struct disk_op_s' requests 2015-07-14 14:40:08 -04:00
mpt-scsi.c geometry: Apply LCHS values for boot devices 2019-11-18 14:58:37 +01:00
mpt-scsi.h Support for booting from LSI Logic LSI53C1030, SAS1068, SAS1068e 2016-03-29 09:16:48 -04:00
nvme-int.h nvme: fix LBA format data structure 2022-02-03 17:50:00 -05:00
nvme.c nvme: avoid use-after-free in nvme_controller_enable() 2022-01-27 11:32:47 -05:00
nvme.h block: add NVMe boot support 2017-02-20 10:47:53 -05:00
pci.c reset: force standard PCI configuration access 2022-04-04 17:13:00 -04:00
pci.h reset: force standard PCI configuration access 2022-04-04 17:13:00 -04:00
pci_ids.h pci: recognize RH PCI legacy bridge resource reservation capability 2018-09-05 08:37:18 +02:00
pci_regs.h Move code centered around specific hardware devices to src/hw/ 2013-09-02 20:48:46 -04:00
pcidevice.c pci: refactor pci_find_capapibilty to get bdf as the first argument instead of the whole pci_device 2017-09-14 15:49:13 -04:00
pcidevice.h pci: refactor pci_find_capapibilty to get bdf as the first argument instead of the whole pci_device 2017-09-14 15:49:13 -04:00
pic.c pic: The default hardware interrupt handlers should not take a parameter 2016-08-26 10:52:13 -04:00
pic.h Add minimal support for machines without hardware interrupts 2015-08-24 11:02:13 -04:00
ps2port.c Revert "ps2port: adjust init routine to fix PS/2 keyboard issues" 2020-05-21 13:38:27 -04:00
ps2port.h ps2: Don't wait 100ms to discard possible extra reset receive byte 2015-07-22 14:32:28 -04:00
pvscsi.c geometry: Apply LCHS values for boot devices 2019-11-18 14:58:37 +01:00
pvscsi.h pvscsi: Handle pvscsi drives directly via 'struct disk_op_s' requests 2015-07-14 14:40:08 -04:00
ramdisk.c block: Rename disk_op_s->drive_gf to drive_fl 2017-09-27 19:02:28 -04:00
rtc.c rtc: Disable NMI in rtc_mask() 2015-09-01 19:43:08 -04:00
rtc.h Remove ioport.h; disperse its contents to other header files. 2013-09-28 22:10:31 -04:00
sdcard.c sdcard: Increase SDHCI_POWER_ON_TIME to 5ms 2018-09-03 17:32:44 -04:00
serialio.c serialio: Preserve Xen DebugOutputPort 2020-06-24 11:44:06 -04:00
serialio.h qemu: avoid debug prints if debugcon is not enabled 2018-12-10 22:03:30 -05:00
timer.c timer: Handle decrements of PIT counter 2020-06-26 14:18:23 -04:00
tpm_drivers.c tpm: Require a response to have minimum size of a valid response header 2019-11-13 10:25:02 -05:00
tpm_drivers.h tpm: add TPM CRB device support 2018-02-27 11:29:11 -05:00
usb-ehci.c usb-ehci: Clear pipe token on pipe reallocate 2019-02-04 21:22:15 -05:00
usb-ehci.h ehci: Only delay UHCI/OHCI port scan until after EHCI setup completes 2016-02-02 22:36:41 -05:00
usb-hid.c usb: fix wrong init of keyboard/mouse's if first interface is not boot protocol 2022-11-23 11:31:15 -05:00
usb-hid.h Don't forward declare functions with "inline" in headers 2015-06-03 19:21:37 -04:00
usb-hub.c usb: Update USB hub code to support super speed hubs 2014-12-15 21:46:03 -05:00
usb-hub.h usb: Update USB hub code to support super speed hubs 2014-12-15 21:46:03 -05:00
usb-msc.c block: Rename disk_op_s->drive_gf to drive_fl 2017-09-27 19:02:28 -04:00
usb-msc.h usb-msc: Handle USB drives directly via 'struct disk_op_s' requests 2015-07-14 14:40:08 -04:00
usb-ohci.c pci: Split low-level pci code from higher-level 'struct pci_device' code 2016-02-03 10:38:42 -05:00
usb-ohci.h usb: Control transfers always have an 8 byte command size 2015-01-07 10:13:46 -05:00
usb-uas.c block: Rename disk_op_s->drive_gf to drive_fl 2017-09-27 19:02:28 -04:00
usb-uas.h usb-uas: Handle USB drives directly via 'struct disk_op_s' requests 2015-07-14 14:40:08 -04:00
usb-uhci.c pci: Split low-level pci code from higher-level 'struct pci_device' code 2016-02-03 10:38:42 -05:00
usb-uhci.h usb: Control transfers always have an 8 byte command size 2015-01-07 10:13:46 -05:00
usb-xhci.c usb/xhci: add support for mmio host adapters (via acpi). 2020-10-13 11:04:03 +02:00
usb-xhci.h usb: Control transfers always have an 8 byte command size 2015-01-07 10:13:46 -05:00
usb.c usb: fix wrong init of keyboard/mouse's if first interface is not boot protocol 2022-11-23 11:31:15 -05:00
usb.h usb: add boot prio support for mmio host adapters 2020-10-13 11:04:03 +02:00
virtio-blk.c virtio-blk: Fix integer overflow for large max IO sizes 2023-06-13 11:11:25 -04:00
virtio-blk.h virtio-blk: add feature VIRTIO_BLK_F_SIZE_MAX and VIRTIO_BLK_F_SEG_MAX 2021-12-18 11:52:22 -05:00
virtio-mmio.c acpi: find and register virtio-mmio devices 2020-05-15 13:55:29 +02:00
virtio-mmio.h acpi: find and register virtio-mmio devices 2020-05-15 13:55:29 +02:00
virtio-pci.c virtio-mmio: read/write the hi 32 features for mmio 2022-11-23 09:28:54 +01:00
virtio-pci.h virtio-mmio: device probing and initialization. 2020-05-15 13:34:29 +02:00
virtio-ring.c virtio: Allocate drive_s storage in low memory 2017-09-27 19:02:34 -04:00
virtio-ring.h virtio: extend virtio queue size to 256 2019-10-18 12:07:05 +02:00
virtio-scsi.c virtio: finalize features before using device 2022-11-23 09:28:54 +01:00
virtio-scsi.h virtio-mmio: add support for scsi devices. 2020-05-15 13:36:08 +02:00