From: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> The secondary side of a PCI/PCI-X to PCIe Bridge (a "reverse bridge") is a PCIe Downstream Port and could support a slot just like Root Ports and Switch Downstream Ports. Decode "Slot Implemented" for reverse bridges and, if true, the Slot Capabilities, Control, and Status registers. For a reverse bridge with no slot, the difference in the "lspci -vv" output looks like this: - Capabilities: [40] Express (v2) PCI/PCI-X to PCI-Express Bridge, MSI 00 + Capabilities: [40] Express (v2) PCI/PCI-X to PCI-Express Bridge (Slot-), MSI 00 Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> --- ls-caps.c | 4 + tests/cap-exp-rev-slot | 288 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 291 insertions(+), 1 deletion(-) create mode 100644 tests/cap-exp-rev-slot diff --git a/ls-caps.c b/ls-caps.c index 1230746..2d3b59d 100644 --- a/ls-caps.c +++ b/ls-caps.c @@ -1159,7 +1159,9 @@ cap_express(struct device *d, int where, int cap) printf("PCI-Express to PCI/PCI-X Bridge"); break; case PCI_EXP_TYPE_PCIE_BRIDGE: - printf("PCI/PCI-X to PCI-Express Bridge"); + slot = cap & PCI_EXP_FLAGS_SLOT; + printf("PCI/PCI-X to PCI-Express Bridge (Slot%c)", + FLAG(cap, PCI_EXP_FLAGS_SLOT)); break; case PCI_EXP_TYPE_ROOT_INT_EP: link = 0; diff --git a/tests/cap-exp-rev-slot b/tests/cap-exp-rev-slot new file mode 100644 index 0000000..737d963 --- /dev/null +++ b/tests/cap-exp-rev-slot @@ -0,0 +1,288 @@ +01:0a.0 PCI bridge: Broadcom Corporation Device 9039 (prog-if 00 [Normal decode]) + Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- + Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- + Latency: 0, Cache Line Size: 64 bytes + Region 0: Memory at 4001200000 (64-bit, prefetchable) + Bus: primary=01, secondary=02, subordinate=03, sec-latency=0 + I/O behind bridge: None + Memory behind bridge: None + Prefetchable memory behind bridge: None + Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR- + BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B- + PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- + Capabilities: [40] Express (v2) PCI/PCI-X to PCI-Express Bridge (Slot-), MSI 00 + DevCap: MaxPayload 128 bytes, PhantFunc 0 + ExtTag- RBE- + DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- + RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop- + MaxPayload 128 bytes, MaxReadReq 4096 bytes + DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend- + LnkCap: Port #0, Speed unknown, Width x0, ASPM not supported, Exit Latency L0s <64ns, L1 <1us + ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp- + LnkCtl: ASPM Disabled; Disabled- CommClk- + ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- + LnkSta: Speed unknown, Width x0, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt- + DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported + DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled + LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis- + Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- + Compliance De-emphasis: -6dB + LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1- + EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest- + Capabilities: [90] Vendor Specific Information: Len=70 <?> +00: e4 14 39 90 06 00 10 00 00 00 04 06 10 00 81 00 +10: 0c 00 20 01 40 00 00 00 01 02 03 00 f1 01 00 00 +20: f0 ff 00 00 f1 ff 01 00 00 00 00 00 00 00 00 00 +30: 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 +40: 10 90 82 00 00 00 00 00 00 50 00 00 00 00 00 00 +50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +60: 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 +70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +90: 09 00 70 00 00 00 00 00 00 00 00 00 00 00 00 00 +a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +1a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +1b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +1c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +1d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +1e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +1f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +210: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +220: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +230: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +250: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +2a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +2b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +2c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +2d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +2e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +2f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +300: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +310: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +320: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +330: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +340: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +350: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +3a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +3b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +3c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +3d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +3e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +3f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +410: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +430: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +440: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +450: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +470: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +4a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +4b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +4c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +4d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +4e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +4f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +510: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +520: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +530: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +540: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +550: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +560: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +570: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +590: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +5a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +5b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +5c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +5d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +5e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +5f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +600: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +610: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +620: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +630: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +640: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +650: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +6a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +6b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +6c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +6d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +6e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +6f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +700: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +710: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +720: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +730: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +740: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +750: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +7a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +7b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +7c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +7d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +7e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +7f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +800: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +810: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +820: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +830: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +840: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +850: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +860: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +870: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +890: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +8a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +8b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +8c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +8d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +8e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +8f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +900: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +910: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +920: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +930: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +940: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +950: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +970: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +990: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +9a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +9b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +9c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +9d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +9e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +9f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +a00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +a10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +a20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +a30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +a40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +a50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +a60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +a70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +a80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +a90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +aa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +ab0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +ac0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +ad0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +ae0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +af0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +b00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +b10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +b20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +b30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +b40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +b50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +b60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +b70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +b80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +b90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +ba0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +bb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +bc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +bd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +be0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +bf0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +c00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +c10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +c20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +c30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +c40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +c50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +c60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +c70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +c80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +c90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +ca0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +cb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +cc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +cd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +ce0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +cf0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +d00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +d10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +d20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +d30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +d40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +d50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +d60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +d70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +d80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +d90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +da0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +db0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +dc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +dd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +de0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +df0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +e00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +e10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +e20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +e30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +e40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +e50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +e60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +e70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +e80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +e90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +ea0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +eb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +ec0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +ed0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +ee0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +ef0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +f10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +f20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +f30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +f40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +f50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +f60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +f70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +f90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +fa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +fb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +fc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +fd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +fe0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +ff0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00