From e522164ae15fab2e96309bc439ff431c6910f021 Mon Sep 17 00:00:00 2001 From: Rudolf Marek Date: Sun, 10 Oct 2010 19:55:32 +0000 Subject: Following patch fixes the boot_switch_sata_ide logic. It can swap primary / secondary IDE channel with SATA (in IDE mode). The bug was that setup was done in wrong device. Signed-off-by: Rudolf Marek Acked-by: Uwe Hermann git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5932 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- src/southbridge/amd/sb700/sb700_ide.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/southbridge') diff --git a/src/southbridge/amd/sb700/sb700_ide.c b/src/southbridge/amd/sb700/sb700_ide.c index 88d634bebb..4652ca2539 100644 --- a/src/southbridge/amd/sb700/sb700_ide.c +++ b/src/southbridge/amd/sb700/sb700_ide.c @@ -51,10 +51,13 @@ static void ide_init(struct device *dev) /* set ide as primary, if you want to boot from IDE, you'd better set it * in $vendor/$mainboard/devicetree.cb */ + + if (conf->boot_switch_sata_ide == 1) { - byte = pci_read_config8(dev, 0xAD); + struct device *sm_dev = dev_find_slot(0, PCI_DEVFN(0x14, 0)); + byte = pci_read_config8(sm_dev, 0xAD); byte |= 1 << 4; - pci_write_config8(dev, 0xAD, byte); + pci_write_config8(sm_dev, 0xAD, byte); } #if CONFIG_PCI_ROM_RUN == 1 -- cgit v1.2.3