summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRudolf Marek <r.marek@assembler.cz>2010-10-10 19:55:32 +0000
committerRudolf Marek <r.marek@assembler.cz>2010-10-10 19:55:32 +0000
commite522164ae15fab2e96309bc439ff431c6910f021 (patch)
treec88b58f82c350c46ae58fae440699116c0598e84
parent14cc9271780b8348f5007b6247290c15367fb45c (diff)
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 <r.marek@assembler.cz> Acked-by: Uwe Hermann <uwe@hermann-uwe.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5932 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
-rw-r--r--src/southbridge/amd/sb700/sb700_ide.c7
1 files changed, 5 insertions, 2 deletions
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