aboutsummaryrefslogtreecommitdiff
path: root/core/pci-quirk.c
diff options
context:
space:
mode:
Diffstat (limited to 'core/pci-quirk.c')
-rw-r--r--core/pci-quirk.c21
1 files changed, 17 insertions, 4 deletions
diff --git a/core/pci-quirk.c b/core/pci-quirk.c
index 7ed6b79..3a85836 100644
--- a/core/pci-quirk.c
+++ b/core/pci-quirk.c
@@ -14,9 +14,12 @@
* limitations under the License.
*/
+#define pr_fmt(fmt) "PCI-QUIRK: " fmt
+
#include <skiboot.h>
#include <pci.h>
#include <pci-quirk.h>
+#include <platform.h>
#include <ast.h>
static void quirk_astbmc_vga(struct phb *phb __unused,
@@ -25,10 +28,20 @@ static void quirk_astbmc_vga(struct phb *phb __unused,
struct dt_node *np = pd->dn;
uint32_t revision, mcr_configuration, mcr_scu_mpll, mcr_scu_strap;
- revision = ast_ahb_readl(SCU_REVISION_ID);
- mcr_configuration = ast_ahb_readl(MCR_CONFIGURATION);
- mcr_scu_mpll = ast_ahb_readl(MCR_SCU_MPLL);
- mcr_scu_strap = ast_ahb_readl(MCR_SCU_STRAP);
+ if (ast_sio_is_enabled()) {
+ revision = ast_ahb_readl(SCU_REVISION_ID);
+ mcr_configuration = ast_ahb_readl(MCR_CONFIGURATION);
+ mcr_scu_mpll = ast_ahb_readl(MCR_SCU_MPLL);
+ mcr_scu_strap = ast_ahb_readl(MCR_SCU_STRAP);
+ } else {
+ prlog(PR_WARNING, "Assumed platform default parameters for %s\n",
+ __func__);
+ revision = bmc_platform->hw->scu_revision_id;
+ mcr_configuration = bmc_platform->hw->mcr_configuration;
+ mcr_scu_mpll = bmc_platform->hw->mcr_scu_mpll;
+ mcr_scu_strap = bmc_platform->hw->mcr_scu_strap;
+ }
+
dt_add_property_cells(np, "aspeed,scu-revision-id", revision);
dt_add_property_cells(np, "aspeed,mcr-configuration", mcr_configuration);
dt_add_property_cells(np, "aspeed,mcr-scu-mpll", mcr_scu_mpll);