The SB600 also has the BootFailTimer. We should disable it,
otherwise it will keeps reboot. The comment was also added in
detail to make less confusing when we debug SB600/SB700.
Signed-off-by: Zheng Bao <zheng.bao(a)amd.com>
Index: src/southbridge/amd/sb600/sb600_early_setup.c
===================================================================
--- src/southbridge/amd/sb600/sb600_early_setup.c (revision 5234)
+++ src/southbridge/amd/sb600/sb600_early_setup.c (working copy)
@@ -71,8 +71,16 @@
u32 reg32;
device_t dev;
+ dev = pci_locate_device(PCI_ID(0x1002, 0x4385), 0); /* SMBUS
controller */
+ /* NOTE: Set BootTimerDisable, otherwise it would keep
rebooting!!
+ * This bit has no meaning if debug strap is not enabled. So if
the
+ * board keeps rebooting and the code fails to reach here, we
could
+ * disable the debug strap first. */
+ reg32 = pci_read_config32(dev, 0x4C);
+ reg32 |= 1 << 31;
+ pci_write_config32(dev, 0x4C, reg32);
+
/* Enable lpc controller */
- dev = pci_locate_device(PCI_ID(0x1002, 0x4385), 0); /* SMBUS
controller */
reg32 = pci_read_config32(dev, 0x64);
reg32 |= 1 << 20;
pci_write_config32(dev, 0x64, reg32);
Index: src/southbridge/amd/sb700/sb700_early_setup.c
===================================================================
--- src/southbridge/amd/sb700/sb700_early_setup.c (revision 5234)
+++ src/southbridge/amd/sb700/sb700_early_setup.c (working copy)
@@ -102,8 +102,11 @@
u32 reg32;
device_t dev;
- /* NOTE: Set BootTimerDisable, otherwise it would keep
rebooting!! */
dev = pci_locate_device(PCI_ID(0x1002, 0x4385), 0); /* SMBUS
controller */
+ /* NOTE: Set BootTimerDisable, otherwise it would keep
rebooting!!
+ * This bit has no meaning if debug strap is not enabled. So if
the
+ * board keeps rebooting and the code fails to reach here, we
could
+ * disable the debug strap first. */
reg32 = pci_read_config32(dev, 0x4C);
reg32 |= 1 << 31;
pci_write_config32(dev, 0x4C, reg32);