op-pwrctl: Hold PCI resets until BootProgress passes BASE_INITIALIZATION state
When powering on host, hold PCI resets until hostboot passes stage
"BASE_INITIALIZATION"(0x14).
This fix applies to Firestone and Garrison.
Partially resolves openbmc/openbmc#315
Change-Id: Ic71c81406ac188b34df89569e2264ea0b94406f3
Signed-off-by: Yi Li <adamliyi@msn.com>
diff --git a/configs/Barreleye.py b/configs/Barreleye.py
index 8e7af2c..e8e8d57 100644
--- a/configs/Barreleye.py
+++ b/configs/Barreleye.py
@@ -558,14 +558,17 @@
}
POWER_CONFIG = {
- 'power_good_in' : 'PGOOD',
- 'power_up_outs' : [
+ 'power_good_in': 'PGOOD',
+ 'power_up_outs': [
('POWER_PIN', False),
],
- 'reset_outs' : [
- ('PCIE_RESET', False),
+ 'reset_outs': [
('USB_RESET', False),
],
+ 'pci_reset_outs': [
+ # net name, polarity, reset hold
+ ('PCIE_RESET', False, False),
+ ],
}
# Miscellaneous non-poll sensor with system specific properties.
diff --git a/configs/Firestone.py b/configs/Firestone.py
index 0b7eb17..285c397 100644
--- a/configs/Firestone.py
+++ b/configs/Firestone.py
@@ -460,9 +460,13 @@
('CM1_OE_R_N', True),
('BMC_CP0_RESET_N', False),
('BMC_CFAM_RESET_N_R', False),
- ('PEX8718_DEVICES_RESET_N', False),
- ('CP0_DEVICES_RESET_N', False),
- ('CP1_DEVICES_RESET_N', False),
+ ],
+ 'pci_reset_outs' : [
+ # net name, polarity, reset hold
+ # if 'reset hold' set to 'True', BMC will hold pci reset until host CPU ready to drive PCI
+ ('PEX8718_DEVICES_RESET_N', False, True),
+ ('CP0_DEVICES_RESET_N', False, True),
+ ('CP1_DEVICES_RESET_N', False, True),
],
}
diff --git a/configs/Garrison.py b/configs/Garrison.py
index 8d29750..aef0720 100644
--- a/configs/Garrison.py
+++ b/configs/Garrison.py
@@ -461,9 +461,13 @@
('CM1_OE_R_N', True),
('BMC_CP0_RESET_N', False),
('BMC_CFAM_RESET_N_R', False),
- ('PEX8718_DEVICES_RESET_N', False),
- ('CP0_DEVICES_RESET_N', False),
- ('CP1_DEVICES_RESET_N', False),
+ ],
+ 'pci_reset_outs' : [
+ # net name, polarity, reset hold
+ # if 'reset hold' set to 'True', BMC will hold pci reset until host CPU ready to drive PCI
+ ('PEX8718_DEVICES_RESET_N', False, True),
+ ('CP0_DEVICES_RESET_N', False, True),
+ ('CP1_DEVICES_RESET_N', False, True),
],
}
diff --git a/configs/Palmetto.py b/configs/Palmetto.py
index 19037a1..7ed578c 100644
--- a/configs/Palmetto.py
+++ b/configs/Palmetto.py
@@ -131,14 +131,17 @@
}
POWER_CONFIG = {
- 'power_good_in' : 'PGOOD',
- 'power_up_outs' : [
+ 'power_good_in': 'PGOOD',
+ 'power_up_outs': [
('POWER_PIN', False),
],
- 'reset_outs' : [
- ('PCIE_RESET', False),
+ 'reset_outs': [
('USB_RESET', False),
],
+ 'pci_reset_outs': [
+ # net name, polarity, reset hold
+ ('PCIE_RESET', False, False),
+ ],
}
# Miscellaneous non-poll sensor with system specific properties.
diff --git a/configs/Witherspoon.py b/configs/Witherspoon.py
index 27fc88f..3250fb2 100644
--- a/configs/Witherspoon.py
+++ b/configs/Witherspoon.py
@@ -479,11 +479,11 @@
POWER_CONFIG = {
- 'power_good_in' : 'SYS_PWROK_BUFF',
- 'power_up_outs' : [
+ 'power_good_in': 'SYS_PWROK_BUFF',
+ 'power_up_outs': [
('BMC_POWER_UP', True),
],
- 'reset_outs' : [
+ 'reset_outs': [
],
}
diff --git a/configs/Zaius.py b/configs/Zaius.py
index bb70846..2160e69 100644
--- a/configs/Zaius.py
+++ b/configs/Zaius.py
@@ -393,13 +393,13 @@
}
POWER_CONFIG = {
- 'latch_out' : 'BMC_UCD_LATCH_LE',
- 'power_good_in' : 'SYS_PWROK_BUFF',
- 'power_up_outs' : [
+ 'latch_out': 'BMC_UCD_LATCH_LE',
+ 'power_good_in': 'SYS_PWROK_BUFF',
+ 'power_up_outs': [
('SOFTWARE_PGOOD', True),
('BMC_POWER_UP', True),
],
- 'reset_outs' : [
+ 'reset_outs': [
],
}