I'm trying to enable SATA hotplug (in OS) feature on my board. And one of my attempts is to run AHCI option rom from original BIOS.
I use coreboot/seabios bundle with seabios responsible for option ROM execution. And I stuck with a problem, that seabios doesn't want to run ROM on SATA controllers cause of pci->have_driver check:
optionroms.c
:
// Find and deploy PCI roms.
struct pci_device *pci;
foreachpci(pci) {
if (pci->class == PCI_CLASS_DISPLAY_VGA || pci->have_driver)
continue;
init_pcirom(pci, 0, sources);
}
:
ata.c:
:.
// Handle controllers on an ATA PCI device.
static void
init_pciata(struct pci_device *pci, u8 prog_if)
{
pci->have_driver = 1;
:.
So, what is a proper way to run roms like AHCI on SATA controllers?
(in my case SATA controller is embedded device in southbridge)
On Tue, Jun 13, 2017 at 03:35:43PM +0300, Аладышев Константин wrote:
So, what is a proper way to run roms like AHCI on SATA controllers?
(in my case SATA controller is embedded device in southbridge)
Currently, the only way to do that is to disable CONFIG_AHCI in SeaBIOS.
-Kevin