diff options
author | Gavin Shan <gwshan@linux.vnet.ibm.com> | 2017-01-10 16:58:15 +1100 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2017-02-23 16:04:27 +1100 |
commit | 271b00366a84cfb45e160ac90faee178035d67ac (patch) | |
tree | 6359c9d8dc1ad9952e89d557c198826a7d76347a /platforms | |
parent | c55f3f83789fdc865d7052beaab5ebedea55b042 (diff) | |
download | talos-skiboot-271b00366a84cfb45e160ac90faee178035d67ac.tar.gz talos-skiboot-271b00366a84cfb45e160ac90faee178035d67ac.zip |
platforms/astbmc: Support PCI slots for palmetto
This adds the PCI slots info for palmetto.
Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'platforms')
-rw-r--r-- | platforms/astbmc/palmetto.c | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/platforms/astbmc/palmetto.c b/platforms/astbmc/palmetto.c index 0c7feff8..aadb2fc6 100644 --- a/platforms/astbmc/palmetto.c +++ b/platforms/astbmc/palmetto.c @@ -23,6 +23,86 @@ #include "astbmc.h" +static const struct slot_table_entry palmetto_phb0_0_slot[] = { + { + .etype = st_pluggable_slot, + .location = ST_LOC_DEVFN(0,0), + .name = "Slot2", + }, + { .etype = st_end }, +}; + +static const struct slot_table_entry palmetto_plx_slots[] = { + { + .etype = st_builtin_dev, + .location = ST_LOC_DEVFN(1,0), + .name = "Backplane BMC", + }, + { + .etype = st_builtin_dev, + .location = ST_LOC_DEVFN(2,0), + .name = "Backplane USB", + }, + { + .etype = st_builtin_dev, + .location = ST_LOC_DEVFN(3,0), + .name = "Backplane Network", + }, + { + .etype = st_builtin_dev, + .location = ST_LOC_DEVFN(4,0), + .name = "Backplane SATA", + }, + { .etype = st_end }, +}; + +static const struct slot_table_entry palmetto_plx_up[] = { + { + .etype = st_builtin_dev, + .location = ST_LOC_DEVFN(0,0), + .children = palmetto_plx_slots, + }, + { .etype = st_end }, +}; + +static const struct slot_table_entry palmetto_phb0_1_slot[] = { + { + .etype = st_builtin_dev, + .location = ST_LOC_DEVFN(0,0), + .name = "Backplane PLX", + .children = palmetto_plx_up, + }, + { .etype = st_end }, +}; + +static const struct slot_table_entry palmetto_phb0_2_slot[] = { + { + .etype = st_pluggable_slot, + .location = ST_LOC_DEVFN(0,0), + .name = "Slot1", + }, + { .etype = st_end }, +}; + +static const struct slot_table_entry palmetto_phb_table[] = { + { + .etype = st_phb, + .location = ST_LOC_PHB(0,0), + .children = palmetto_phb0_0_slot, + }, + { + .etype = st_phb, + .location = ST_LOC_PHB(0,1), + .children = palmetto_phb0_1_slot, + }, + { + .etype = st_phb, + .location = ST_LOC_PHB(0,2), + .children = palmetto_phb0_2_slot, + }, + { .etype = st_end }, +}; + static bool palmetto_probe(void) { const char *model; @@ -39,6 +119,8 @@ static bool palmetto_probe(void) /* Lot of common early inits here */ astbmc_early_init(); + slot_table_init(palmetto_phb_table); + return true; } @@ -48,6 +130,8 @@ DECLARE_PLATFORM(palmetto) = { .probe = palmetto_probe, .bmc = &astbmc_ami, .init = astbmc_init, + .pci_get_slot_info = slot_table_get_slot_info, + .pci_probe_complete = check_all_slot_table, .external_irq = astbmc_ext_irq_serirq_cpld, .cec_power_down = astbmc_ipmi_power_down, .cec_reboot = astbmc_ipmi_reboot, |