diff options
author | Andrew Jeffery <andrew@aj.id.au> | 2018-10-09 00:32:36 -0700 |
---|---|---|
committer | Stewart Smith <stewart@linux.ibm.com> | 2018-10-11 01:26:20 -0500 |
commit | 9a830ee06c66058b1421c017b25a65a22921e9f6 (patch) | |
tree | fad2405598bb7f620b3915599b0de948b614b91a | |
parent | dd554bacd13c6dea481ea4e1ec9f3c32087295d9 (diff) | |
download | skiboot-9a830ee06c66058b1421c017b25a65a22921e9f6.zip skiboot-9a830ee06c66058b1421c017b25a65a22921e9f6.tar.gz skiboot-9a830ee06c66058b1421c017b25a65a22921e9f6.tar.bz2 |
platform: Restructure bmc_platform type
Segregate the BMC platform configuration into hardware and software
components. This allows population of platform default values for
hardware configuration that may no-longer be accessible by the host.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
[stewart: fixup pci-quirk unit test]
Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
-rw-r--r-- | core/pci-quirk.c | 21 | ||||
-rw-r--r-- | core/test/run-pci-quirk.c | 8 | ||||
-rw-r--r-- | hw/ast-bmc/ast-io.c | 2 | ||||
-rw-r--r-- | hw/ipmi/ipmi-sel.c | 8 | ||||
-rw-r--r-- | include/ast.h | 1 | ||||
-rw-r--r-- | include/platform.h | 16 | ||||
-rw-r--r-- | libflash/ipmi-hiomap.c | 31 | ||||
-rw-r--r-- | platforms/astbmc/astbmc.h | 9 | ||||
-rw-r--r-- | platforms/astbmc/common.c | 40 | ||||
-rw-r--r-- | platforms/astbmc/firestone.c | 2 | ||||
-rw-r--r-- | platforms/astbmc/garrison.c | 2 | ||||
-rw-r--r-- | platforms/astbmc/habanero.c | 2 | ||||
-rw-r--r-- | platforms/astbmc/p8dnu.c | 11 | ||||
-rw-r--r-- | platforms/astbmc/p8dtu.c | 12 | ||||
-rw-r--r-- | platforms/astbmc/p9dsu.c | 11 | ||||
-rw-r--r-- | platforms/astbmc/palmetto.c | 2 | ||||
-rw-r--r-- | platforms/astbmc/romulus.c | 2 | ||||
-rw-r--r-- | platforms/astbmc/vesnin.c | 2 | ||||
-rw-r--r-- | platforms/astbmc/witherspoon.c | 2 |
19 files changed, 135 insertions, 49 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); diff --git a/core/test/run-pci-quirk.c b/core/test/run-pci-quirk.c index b9db680..2f71302 100644 --- a/core/test/run-pci-quirk.c +++ b/core/test/run-pci-quirk.c @@ -7,6 +7,14 @@ struct dt_property; struct dt_node; +static struct bmc_platform fake_bmc; +const struct bmc_platform *bmc_platform = &fake_bmc; + +static int ast_sio_is_enabled(void) +{ + return 0; +} + static uint32_t ast_ahb_readl(uint32_t reg) { return reg; diff --git a/hw/ast-bmc/ast-io.c b/hw/ast-bmc/ast-io.c index e053484..38ca86c 100644 --- a/hw/ast-bmc/ast-io.c +++ b/hw/ast-bmc/ast-io.c @@ -321,7 +321,7 @@ static void ast_setup_sio_irq_polarity(void) bmc_sio_put(true); } -static bool ast_sio_is_enabled(void) +bool ast_sio_is_enabled(void) { int64_t rc; diff --git a/hw/ipmi/ipmi-sel.c b/hw/ipmi/ipmi-sel.c index cfcd1d4..0996275 100644 --- a/hw/ipmi/ipmi-sel.c +++ b/hw/ipmi/ipmi-sel.c @@ -334,7 +334,7 @@ static void ipmi_elog_poll(struct ipmi_msg *msg) struct errorlog *elog_buf = (struct errorlog *) msg->user_data; size_t req_size; - if (bmc_platform->ipmi_oem_partial_add_esel == 0) { + if (bmc_platform->sw->ipmi_oem_partial_add_esel == 0) { prlog(PR_WARNING, "Dropped eSEL: BMC code is buggy/missing\n"); return; } @@ -392,7 +392,7 @@ static void ipmi_elog_poll(struct ipmi_msg *msg) } ipmi_init_msg(msg, IPMI_DEFAULT_INTERFACE, - bmc_platform->ipmi_oem_partial_add_esel, + bmc_platform->sw->ipmi_oem_partial_add_esel, ipmi_elog_poll, elog_buf, req_size, 2); msg->data[0] = reservation_id & 0xff; @@ -464,7 +464,7 @@ static void sel_pnor(uint8_t access, void *context __unused) switch (access) { case REQUEST_PNOR: prlog(PR_NOTICE, "PNOR access requested\n"); - if (bmc_platform->ipmi_oem_pnor_access_status == 0) { + if (bmc_platform->sw->ipmi_oem_pnor_access_status == 0) { /** * @fwts-label PNORAccessYeahButNoBut * @fwts-advice OPAL doesn't know that the BMC supports @@ -479,7 +479,7 @@ static void sel_pnor(uint8_t access, void *context __unused) if (granted) occ_pnor_set_owner(PNOR_OWNER_EXTERNAL); /* Ack the request */ - msg = ipmi_mkmsg_simple(bmc_platform->ipmi_oem_pnor_access_status, &granted, 1); + msg = ipmi_mkmsg_simple(bmc_platform->sw->ipmi_oem_pnor_access_status, &granted, 1); ipmi_queue_msg(msg); break; case RELEASE_PNOR: diff --git a/include/ast.h b/include/ast.h index c3e1718..c6684fc 100644 --- a/include/ast.h +++ b/include/ast.h @@ -81,6 +81,7 @@ void ast_ahb_writel(uint32_t val, uint32_t reg); uint32_t ast_ahb_readl(uint32_t reg); +bool ast_sio_is_enabled(void); bool ast_sio_init(void); bool ast_io_init(void); bool ast_io_is_rw(void); diff --git a/include/platform.h b/include/platform.h index 294e06c..56f9f3d 100644 --- a/include/platform.h +++ b/include/platform.h @@ -34,9 +34,15 @@ enum resource_id { #define RESOURCE_SUBID_NONE 0 #define RESOURCE_SUBID_SUPPORTED 1 -struct bmc_platform { - const char *name; +struct bmc_hw_config { + uint32_t scu_revision_id; + uint32_t mcr_configuration; + uint32_t mcr_scu_mpll; + uint32_t mcr_scu_strap; +}; + +struct bmc_sw_config { /* * Map IPMI_OEM_X to vendor commands for this BMC * 0 = unimplimented @@ -46,6 +52,12 @@ struct bmc_platform { uint32_t ipmi_oem_hiomap_cmd; }; +struct bmc_platform { + const char *name; + const struct bmc_hw_config *hw; + const struct bmc_sw_config *sw; +}; + /* OpenCAPI platform-specific I2C information */ struct platform_ocapi { uint8_t i2c_engine; /* I2C engine number */ diff --git a/libflash/ipmi-hiomap.c b/libflash/ipmi-hiomap.c index 03f6bd8..d36c5f1 100644 --- a/libflash/ipmi-hiomap.c +++ b/libflash/ipmi-hiomap.c @@ -226,8 +226,8 @@ static bool hiomap_get_info(struct ipmi_hiomap *ctx) req[2] = HIOMAP_V2; msg = ipmi_mkmsg(IPMI_DEFAULT_INTERFACE, - bmc_platform->ipmi_oem_hiomap_cmd, ipmi_hiomap_cmd_cb, - &res, req, sizeof(req), 6); + bmc_platform->sw->ipmi_oem_hiomap_cmd, + ipmi_hiomap_cmd_cb, &res, req, sizeof(req), 6); ipmi_queue_msg_sync(msg); if (res.cc != IPMI_CC_NO_ERROR) { @@ -251,8 +251,8 @@ static bool hiomap_get_flash_info(struct ipmi_hiomap *ctx) req[0] = HIOMAP_C_GET_FLASH_INFO; req[1] = ++ctx->seq; msg = ipmi_mkmsg(IPMI_DEFAULT_INTERFACE, - bmc_platform->ipmi_oem_hiomap_cmd, ipmi_hiomap_cmd_cb, - &res, req, sizeof(req), 2 + 2 + 2); + bmc_platform->sw->ipmi_oem_hiomap_cmd, + ipmi_hiomap_cmd_cb, &res, req, sizeof(req), 2 + 2 + 2); ipmi_queue_msg_sync(msg); if (res.cc != IPMI_CC_NO_ERROR) { @@ -294,8 +294,9 @@ static bool hiomap_window_move(struct ipmi_hiomap *ctx, uint8_t command, unlock(&ctx->lock); msg = ipmi_mkmsg(IPMI_DEFAULT_INTERFACE, - bmc_platform->ipmi_oem_hiomap_cmd, ipmi_hiomap_cmd_cb, - &res, req, sizeof(req), 2 + 2 + 2 + 2); + bmc_platform->sw->ipmi_oem_hiomap_cmd, + ipmi_hiomap_cmd_cb, &res, req, sizeof(req), + 2 + 2 + 2 + 2); ipmi_queue_msg_sync(msg); if (res.cc != IPMI_CC_NO_ERROR) { @@ -348,8 +349,8 @@ static bool hiomap_mark_dirty(struct ipmi_hiomap *ctx, uint64_t offset, range->size = cpu_to_le16(bytes_to_blocks(ctx, size)); msg = ipmi_mkmsg(IPMI_DEFAULT_INTERFACE, - bmc_platform->ipmi_oem_hiomap_cmd, ipmi_hiomap_cmd_cb, - &res, req, sizeof(req), 2); + bmc_platform->sw->ipmi_oem_hiomap_cmd, + ipmi_hiomap_cmd_cb, &res, req, sizeof(req), 2); ipmi_queue_msg_sync(msg); if (res.cc != IPMI_CC_NO_ERROR) { @@ -381,8 +382,8 @@ static bool hiomap_flush(struct ipmi_hiomap *ctx) req[1] = ++ctx->seq; msg = ipmi_mkmsg(IPMI_DEFAULT_INTERFACE, - bmc_platform->ipmi_oem_hiomap_cmd, ipmi_hiomap_cmd_cb, - &res, req, sizeof(req), 2); + bmc_platform->sw->ipmi_oem_hiomap_cmd, + ipmi_hiomap_cmd_cb, &res, req, sizeof(req), 2); ipmi_queue_msg_sync(msg); if (res.cc != IPMI_CC_NO_ERROR) { @@ -406,8 +407,8 @@ static bool hiomap_ack(struct ipmi_hiomap *ctx, uint8_t ack) req[2] = ack; msg = ipmi_mkmsg(IPMI_DEFAULT_INTERFACE, - bmc_platform->ipmi_oem_hiomap_cmd, ipmi_hiomap_cmd_cb, - &res, req, sizeof(req), 2); + bmc_platform->sw->ipmi_oem_hiomap_cmd, + ipmi_hiomap_cmd_cb, &res, req, sizeof(req), 2); ipmi_queue_msg_sync(msg); if (res.cc != IPMI_CC_NO_ERROR) { @@ -446,8 +447,8 @@ static bool hiomap_erase(struct ipmi_hiomap *ctx, uint64_t offset, range->size = cpu_to_le16(bytes_to_blocks(ctx, size)); msg = ipmi_mkmsg(IPMI_DEFAULT_INTERFACE, - bmc_platform->ipmi_oem_hiomap_cmd, ipmi_hiomap_cmd_cb, - &res, req, sizeof(req), 2); + bmc_platform->sw->ipmi_oem_hiomap_cmd, + ipmi_hiomap_cmd_cb, &res, req, sizeof(req), 2); ipmi_queue_msg_sync(msg); if (res.cc != IPMI_CC_NO_ERROR) { @@ -787,7 +788,7 @@ int ipmi_hiomap_init(struct blocklevel_device **bl) struct ipmi_hiomap *ctx; int rc; - if (!bmc_platform->ipmi_oem_hiomap_cmd) + if (!bmc_platform->sw->ipmi_oem_hiomap_cmd) /* FIXME: Find a better error code */ return FLASH_ERR_DEVICE_GONE; diff --git a/platforms/astbmc/astbmc.h b/platforms/astbmc/astbmc.h index 16ffd7d..fe358b7 100644 --- a/platforms/astbmc/astbmc.h +++ b/platforms/astbmc/astbmc.h @@ -18,6 +18,8 @@ #ifndef __ASTBMC_H #define __ASTBMC_H +#include <platform.h> + #define ST_LOC_PHB(chip_id, phb_idx) ((chip_id) << 16 | (phb_idx)) #define ST_LOC_DEVFN(dev, fn) ((dev) << 3 | (fn)) /* @@ -87,8 +89,11 @@ static struct slot_table_entry st_name[] = \ ##__VA_ARGS__ \ } -extern const struct bmc_platform astbmc_ami; -extern const struct bmc_platform astbmc_openbmc; +extern const struct bmc_hw_config bmc_hw_ast2400; +extern const struct bmc_hw_config bmc_hw_ast2500; +extern const struct bmc_platform bmc_plat_ast2400_ami; +extern const struct bmc_platform bmc_plat_ast2500_ami; +extern const struct bmc_platform bmc_plat_ast2500_openbmc; extern void astbmc_early_init(void); extern int64_t astbmc_ipmi_reboot(void); diff --git a/platforms/astbmc/common.c b/platforms/astbmc/common.c index 0cf70e2..10aed3f 100644 --- a/platforms/astbmc/common.c +++ b/platforms/astbmc/common.c @@ -427,14 +427,46 @@ void astbmc_exit(void) ipmi_wdt_final_reset(); } -const struct bmc_platform astbmc_ami = { - .name = "AMI", +const struct bmc_sw_config bmc_sw_ami = { .ipmi_oem_partial_add_esel = IPMI_CODE(0x3a, 0xf0), .ipmi_oem_pnor_access_status = IPMI_CODE(0x3a, 0x07), }; -const struct bmc_platform astbmc_openbmc = { - .name = "OpenBMC", +const struct bmc_sw_config bmc_sw_openbmc = { .ipmi_oem_partial_add_esel = IPMI_CODE(0x3a, 0xf0), .ipmi_oem_hiomap_cmd = IPMI_CODE(0x3a, 0x5a), }; + +/* Extracted from a Palmetto */ +const struct bmc_hw_config bmc_hw_ast2400 = { + .scu_revision_id = 0x2010303, + .mcr_configuration = 0x00000577, + .mcr_scu_mpll = 0x000050c0, + .mcr_scu_strap = 0x00000000, +}; + +/* Extracted from a Witherspoon */ +const struct bmc_hw_config bmc_hw_ast2500 = { + .scu_revision_id = 0x04030303, + .mcr_configuration = 0x11200756, + .mcr_scu_mpll = 0x000071C1, + .mcr_scu_strap = 0x00000000, +}; + +const struct bmc_platform bmc_plat_ast2400_ami = { + .name = "ast2400:ami", + .hw = &bmc_hw_ast2400, + .sw = &bmc_sw_ami, +}; + +const struct bmc_platform bmc_plat_ast2500_ami = { + .name = "ast2500:ami", + .hw = &bmc_hw_ast2500, + .sw = &bmc_sw_ami, +}; + +const struct bmc_platform bmc_plat_ast2500_openbmc = { + .name = "ast2500:openbmc", + .hw = &bmc_hw_ast2500, + .sw = &bmc_sw_openbmc, +}; diff --git a/platforms/astbmc/firestone.c b/platforms/astbmc/firestone.c index fc6575b..28719e3 100644 --- a/platforms/astbmc/firestone.c +++ b/platforms/astbmc/firestone.c @@ -146,7 +146,7 @@ static bool firestone_probe(void) DECLARE_PLATFORM(firestone) = { .name = "Firestone", - .bmc = &astbmc_ami, + .bmc = &bmc_plat_ast2400_ami, .probe = firestone_probe, .init = astbmc_init, .pci_get_slot_info = slot_table_get_slot_info, diff --git a/platforms/astbmc/garrison.c b/platforms/astbmc/garrison.c index db886cb..6c914fd 100644 --- a/platforms/astbmc/garrison.c +++ b/platforms/astbmc/garrison.c @@ -293,7 +293,7 @@ static bool garrison_probe(void) DECLARE_PLATFORM(garrison) = { .name = "Garrison", - .bmc = &astbmc_ami, + .bmc = &bmc_plat_ast2400_ami, .probe = garrison_probe, .init = astbmc_init, .pci_get_slot_info = slot_table_get_slot_info, diff --git a/platforms/astbmc/habanero.c b/platforms/astbmc/habanero.c index 2856a97..8e11b81 100644 --- a/platforms/astbmc/habanero.c +++ b/platforms/astbmc/habanero.c @@ -136,7 +136,7 @@ static bool habanero_probe(void) DECLARE_PLATFORM(habanero) = { .name = "Habanero", - .bmc = &astbmc_ami, + .bmc = &bmc_plat_ast2400_ami, .probe = habanero_probe, .init = astbmc_init, .pci_get_slot_info = slot_table_get_slot_info, diff --git a/platforms/astbmc/p8dnu.c b/platforms/astbmc/p8dnu.c index e4aeed4..d808c69 100644 --- a/platforms/astbmc/p8dnu.c +++ b/platforms/astbmc/p8dnu.c @@ -337,16 +337,21 @@ static bool p8dnu_probe(void) return true; } -static const struct bmc_platform astbmc_smc = { - .name = "SMC", +static const struct bmc_sw_config bmc_sw_smc = { .ipmi_oem_partial_add_esel = IPMI_CODE(0x3a, 0xf0), .ipmi_oem_pnor_access_status = IPMI_CODE(0x3a, 0x07), }; +static const struct bmc_platform bmc_plat_ast2400_smc = { + .name = "SMC", + .hw = &bmc_hw_ast2400, + .sw = &bmc_sw_smc, +}; + DECLARE_PLATFORM(p8dnu) = { .name = "P8DNU", .probe = p8dnu_probe, - .bmc = &astbmc_smc, + .bmc = &bmc_plat_ast2400_smc, .init = astbmc_init, .pci_get_slot_info = slot_table_get_slot_info, .cec_power_down = astbmc_ipmi_power_down, diff --git a/platforms/astbmc/p8dtu.c b/platforms/astbmc/p8dtu.c index 63d36fb..b5627d2 100644 --- a/platforms/astbmc/p8dtu.c +++ b/platforms/astbmc/p8dtu.c @@ -227,17 +227,21 @@ static bool p8dtu2u_probe(void) return true; } -static const struct bmc_platform astbmc_smc = { - .name = "SMC", +static const struct bmc_sw_config bmc_sw_smc = { .ipmi_oem_partial_add_esel = IPMI_CODE(0x3a, 0xf0), .ipmi_oem_pnor_access_status = IPMI_CODE(0x3a, 0x07), }; +static const struct bmc_platform bmc_plat_ast2400_smc = { + .name = "SMC", + .hw = &bmc_hw_ast2400, + .sw = &bmc_sw_smc, +}; DECLARE_PLATFORM(p8dtu1u) = { .name = "p8dtu1u", .probe = p8dtu1u_probe, - .bmc = &astbmc_smc, + .bmc = &bmc_plat_ast2400_smc, .init = astbmc_init, .pci_get_slot_info = slot_table_get_slot_info, .pci_probe_complete = check_all_slot_table, @@ -254,7 +258,7 @@ DECLARE_PLATFORM(p8dtu1u) = { DECLARE_PLATFORM(p8dtu2u) = { .name = "p8dtu2u", .probe = p8dtu2u_probe, - .bmc = &astbmc_smc, + .bmc = &bmc_plat_ast2400_smc, .init = astbmc_init, .pci_get_slot_info = slot_table_get_slot_info, .pci_probe_complete = check_all_slot_table, diff --git a/platforms/astbmc/p9dsu.c b/platforms/astbmc/p9dsu.c index e14b071..234d25c 100644 --- a/platforms/astbmc/p9dsu.c +++ b/platforms/astbmc/p9dsu.c @@ -683,18 +683,23 @@ static void p9dsu_init(void) } } -static const struct bmc_platform astbmc_smc = { - .name = "SMC", +static const struct bmc_sw_config bmc_sw_smc = { .ipmi_oem_partial_add_esel = IPMI_CODE(0x3a, 0xf0), }; +static const struct bmc_platform bmc_plat_ast2500_smc = { + .name = "SMC", + .hw = &bmc_hw_ast2500, + .sw = &bmc_sw_smc, +}; + DECLARE_PLATFORM(p9dsu1u) = { .name = "p9dsu", .probe = p9dsu_probe, .init = p9dsu_init, .start_preload_resource = flash_start_preload_resource, .resource_loaded = flash_resource_loaded, - .bmc = &astbmc_smc, + .bmc = &bmc_plat_ast2500_smc, .pci_get_slot_info = slot_table_get_slot_info, .cec_power_down = astbmc_ipmi_power_down, .cec_reboot = astbmc_ipmi_reboot, diff --git a/platforms/astbmc/palmetto.c b/platforms/astbmc/palmetto.c index 69f111c..29739c0 100644 --- a/platforms/astbmc/palmetto.c +++ b/platforms/astbmc/palmetto.c @@ -121,7 +121,7 @@ static bool palmetto_probe(void) DECLARE_PLATFORM(palmetto) = { .name = "Palmetto", .probe = palmetto_probe, - .bmc = &astbmc_ami, + .bmc = &bmc_plat_ast2400_ami, .init = astbmc_init, .pci_get_slot_info = slot_table_get_slot_info, .pci_probe_complete = check_all_slot_table, diff --git a/platforms/astbmc/romulus.c b/platforms/astbmc/romulus.c index 67c5946..7bb07cc 100644 --- a/platforms/astbmc/romulus.c +++ b/platforms/astbmc/romulus.c @@ -74,7 +74,7 @@ DECLARE_PLATFORM(romulus) = { .init = astbmc_init, .start_preload_resource = flash_start_preload_resource, .resource_loaded = flash_resource_loaded, - .bmc = &astbmc_openbmc, + .bmc = &bmc_plat_ast2500_openbmc, .pci_get_slot_info = slot_table_get_slot_info, .pci_probe_complete = check_all_slot_table, .cec_power_down = astbmc_ipmi_power_down, diff --git a/platforms/astbmc/vesnin.c b/platforms/astbmc/vesnin.c index d7df191..62eb340 100644 --- a/platforms/astbmc/vesnin.c +++ b/platforms/astbmc/vesnin.c @@ -247,7 +247,7 @@ static bool vesnin_probe(void) DECLARE_PLATFORM(vesnin) = { .name = "vesnin", - .bmc = &astbmc_ami, + .bmc = &bmc_plat_ast2400_ami, .probe = vesnin_probe, .init = astbmc_init, .pci_get_slot_info = slot_table_get_slot_info, diff --git a/platforms/astbmc/witherspoon.c b/platforms/astbmc/witherspoon.c index 3c9dbc9..f45f739 100644 --- a/platforms/astbmc/witherspoon.c +++ b/platforms/astbmc/witherspoon.c @@ -364,7 +364,7 @@ DECLARE_PLATFORM(witherspoon) = { .pre_pci_fixup = witherspoon_shared_slot_fixup, .start_preload_resource = flash_start_preload_resource, .resource_loaded = flash_resource_loaded, - .bmc = &astbmc_openbmc, + .bmc = &bmc_plat_ast2500_openbmc, .cec_power_down = astbmc_ipmi_power_down, .cec_reboot = astbmc_ipmi_reboot, .elog_commit = ipmi_elog_commit, |