diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2015-09-10 14:34:47 +1000 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2015-09-11 17:30:39 +1000 |
commit | 1311068c72f82a0ccfd8cb539d7f7f062d077a23 (patch) | |
tree | 86856df63d060df0ce9aca4775137cc8abaef2bc /platforms/astbmc | |
parent | 30c07095b625536a08468d71380b160f7f3cae9f (diff) | |
download | skiboot-1311068c72f82a0ccfd8cb539d7f7f062d077a23.zip skiboot-1311068c72f82a0ccfd8cb539d7f7f062d077a23.tar.gz skiboot-1311068c72f82a0ccfd8cb539d7f7f062d077a23.tar.bz2 |
firestone: Add slot tables
Slot names courtesy of Sertac
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'platforms/astbmc')
-rw-r--r-- | platforms/astbmc/firestone.c | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/platforms/astbmc/firestone.c b/platforms/astbmc/firestone.c index 445a28b..4eed429 100644 --- a/platforms/astbmc/firestone.c +++ b/platforms/astbmc/firestone.c @@ -23,6 +23,114 @@ #include "astbmc.h" +static const struct slot_table_entry firestone_phb0_0_slot[] = { + { + .etype = st_pluggable_slot, + .location = ST_LOC_DEVFN(0,0), + .name = "Slot5", + }, + { .etype = st_end }, +}; + +static const struct slot_table_entry firestone_phb0_1_slot[] = { + { + .etype = st_pluggable_slot, + .location = ST_LOC_DEVFN(0,0), + .name = "Slot4", + }, + { .etype = st_end }, +}; + +static const struct slot_table_entry firestone_phb8_0_slot[] = { + { + .etype = st_pluggable_slot, + .location = ST_LOC_DEVFN(0,0), + .name = "Slot2", + }, + { .etype = st_end }, +}; + +static const struct slot_table_entry firestone_plx_slots[] = { + { + .etype = st_pluggable_slot, + .location = ST_LOC_DEVFN(1,0), + .name = "Slot 3", + }, + { + .etype = st_builtin_dev, + .location = ST_LOC_DEVFN(9,0), + .name = "Backplane USB", + }, + { + .etype = st_builtin_dev, + .location = ST_LOC_DEVFN(0xa,0), + .name = "Backplane SATA", + }, + { + .etype = st_builtin_dev, + .location = ST_LOC_DEVFN(0xb,0), + .name = "Backplane BMC", + }, + { .etype = st_end }, +}; + +static const struct slot_table_entry firestone_plx_up[] = { + { + .etype = st_builtin_dev, + .location = ST_LOC_DEVFN(0,0), + .children = firestone_plx_slots, + }, + { .etype = st_end }, +}; + +static const struct slot_table_entry firestone_phb8_1_slot[] = { + { + .etype = st_builtin_dev, + .location = ST_LOC_DEVFN(0,0), + .name = "Backplane PLX", + .children = firestone_plx_up, + }, + { .etype = st_end }, +}; + +static const struct slot_table_entry firestone_phb8_2_slot[] = { + { + .etype = st_pluggable_slot, + .location = ST_LOC_DEVFN(0,0), + .name = "Slot1", + }, + { .etype = st_end }, +}; + +static const struct slot_table_entry firestone_phb_table[] = { + { + .etype = st_phb, + .location = ST_LOC_PHB(0,0), + .children = firestone_phb0_0_slot, + }, + { + .etype = st_phb, + .location = ST_LOC_PHB(0,1), + .children = firestone_phb0_1_slot, + }, + { + .etype = st_phb, + .location = ST_LOC_PHB(8,0), + .children = firestone_phb8_0_slot, + }, + { + .etype = st_phb, + .location = ST_LOC_PHB(8,1), + .children = firestone_phb8_1_slot, + }, + { + .etype = st_phb, + .location = ST_LOC_PHB(8,2), + .children = firestone_phb8_2_slot, + }, + { .etype = st_end }, +}; + static bool firestone_probe(void) { if (!dt_node_is_compatible(dt_root, "ibm,firestone")) @@ -31,6 +139,7 @@ static bool firestone_probe(void) /* Lot of common early inits here */ astbmc_early_init(); prd_init(); + slot_table_init(firestone_phb_table); return true; } @@ -40,6 +149,7 @@ DECLARE_PLATFORM(firestone) = { .name = "Firestone", .probe = firestone_probe, .init = astbmc_init, + .pci_get_slot_info = slot_table_get_slot_info, .external_irq = astbmc_ext_irq_serirq_cpld, .cec_power_down = astbmc_ipmi_power_down, .cec_reboot = astbmc_ipmi_reboot, |