diff options
author | Oliver O'Halloran <oohall@gmail.com> | 2017-01-12 14:54:04 +1100 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2017-01-15 12:42:09 +1100 |
commit | ac5e0d83622bca7efa13ee87ec868a3cceab0f3d (patch) | |
tree | 9f63805e31c857c35b5a0deb66c82f6f6fdfa821 /hdata/spira.h | |
parent | b7ac68771baaebff3fb47120a73b3901e8e6a839 (diff) | |
download | skiboot-ac5e0d83622bca7efa13ee87ec868a3cceab0f3d.zip skiboot-ac5e0d83622bca7efa13ee87ec868a3cceab0f3d.tar.gz skiboot-ac5e0d83622bca7efa13ee87ec868a3cceab0f3d.tar.bz2 |
hdat: Add support for PHB4
Adds support for parsing the PHB4 entries in the IOHUB array and
populating the devicetree appropriately.
Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
[stewart@linux.vnet.ibm.com: s/DOUMO/DUOMO/, assert(), spotted by Vasant]
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'hdata/spira.h')
-rw-r--r-- | hdata/spira.h | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/hdata/spira.h b/hdata/spira.h index b04a3df..6d55b78 100644 --- a/hdata/spira.h +++ b/hdata/spira.h @@ -575,6 +575,8 @@ struct cechub_io_hub { #define CECHUB_HUB_FAB_BR0_PDT_PHB1 0x40 #define CECHUB_HUB_FAB_BR0_PDT_PHB2 0x20 #define CECHUB_HUB_FAB_BR0_PDT_PHB3 0x10 +#define CECHUB_HUB_FAB_BR0_PDT_PHB4 0x08 +#define CECHUB_HUB_FAB_BR0_PDT_PHB5 0x04 uint8_t fab_br1_pdt; /* p5ioc2 & p7ioc PCI-E */ #define CECHUB_HUB_FAB_BR1_PDT_PHB0 0x80 #define CECHUB_HUB_FAB_BR1_PDT_PHB1 0x40 @@ -583,10 +585,14 @@ struct cechub_io_hub { #define CECHUB_HUB_FAB_BR1_PDT_PHB4 0x08 /* p7ioc only */ #define CECHUB_HUB_FAB_BR1_PDT_PHB5 0x04 /* p7ioc only */ __be16 iohub_id; /* the type of hub */ -#define CECHUB_HUB_P7IOC 0x60e7 /* from VPL3 */ -#define CECHUB_HUB_MURANO 0x20ef /* Murano from spec */ -#define CECHUB_HUB_MURANO_SEGU 0x0001 /* Murano+Seguso from spec */ -#define CECHUB_HUB_VENICE_WYATT 0x0010 /* Venice+Wyatt from spec */ +#define CECHUB_HUB_P7IOC 0x60e7 /* from VPL3 */ +#define CECHUB_HUB_MURANO 0x20ef /* Murano from spec */ +#define CECHUB_HUB_MURANO_SEGU 0x0001 /* Murano+Seguso from spec */ +#define CECHUB_HUB_VENICE_WYATT 0x0010 /* Venice+Wyatt from spec */ +#define CECHUB_HUB_NIMBUS_SFORAZ 0x0020 /* Nimbus+sforaz from spec */ +#define CECHUB_HUB_NIMBUS_MONZA 0x0021 /* Nimbus+monza from spec */ +#define CECHUB_HUB_NIMBUS_LAGRANGE 0x0022 /* Nimbus+lagrange from spec */ +#define CECHUB_HUB_CUMULUS_DUOMO 0x0031 /* cumulus+duomo from spec */ __be32 ec_level; __be32 aff_dom2; /* HDAT < v9.x only */ __be32 aff_dom3; /* HDAT < v9.x only */ @@ -623,10 +629,18 @@ struct cechub_io_hub { __be16 gx_bus_speed; /* Version 0x58 */ }; - /* HDAT >= v9.x, HDIF version 0x6A or later */ + /* HDAT >= v9.x, HDIF version 0x6A adds phb_lane_eq with four + * words per PHB (4 PHBs). + * + * HDAT >= 10.x, HDIF version 0x7A adds space for another two + * two PHBs (6 total) and the gen4 EQ values. + */ struct { - /* 4 values per PHB, 4 PHBs */ - __be64 phb_lane_eq[4][4]; + /* Gen 3 PHB eq values, 6 PHBs */ + __be64 phb_lane_eq[6][4]; + + /* Gen 4 PHB eq values */ + __be64 phb4_lane_eq[6][4]; }; }; } __packed; |