[BIOS]Read/Write IOBP for SATA or USB

路
2 min readMar 26, 2020

--

1. Locate (Bus 0, Device 1F (31), Function 0), and turn to 32-bits, find the RCBA,

Root Complex Base Address Register =0xFED1C000

2. Determine the indexed registers (Index, Data & Status)

IOBPIRI (IOBP Indexed Register Index) = RCBA(base) + 2330h = 0xFED1E330

3 .Modify IOBP Index (Port 0 = E5004100h )

and change the IOBP data from A4 to 94

and change the IOBP Stauts 8–14 bit to 701 to save the data

and change the IOBP Stauts 8–14 bit to 601 to vertify the data is correct

U2ECR — USB 2.0 Electrical Control Register

Index (IOBP Address Offset)

Data

PORT 0: E5004100h

0005A401

PORT 1: E5004200h

0005A401

PORT 2: E5004300h

0005A401

PORT 3: E5004400h

00059301

PORT 4: E5004500h

00059401

PORT 5: E5004600h

0005A401

PORT 6: E5004700h

0005A401

PORT 7: E5004800h

0005A401

PORT 8: E5004900h

00059C01

PORT 9: E5004A00h

00059C01

PORT 10: E5004B00h

00059301

PORT 11: E5004C00h

00059301

PORT 12: E5004D00h

0005A401

PORT 13: E5004E00h

0005A401

SECRT88 — SATA Electrical Control Register T88

Index (IOBP Address Offset)

Data

PORT 0: EA002488h

5580983A

PORT 1: EA002688h

5580983A

PORT 2: EA000888h

5580983A

PORT 3: EA000A88h

5580983A

PORT 4: EA002088h

5580983A

PORT 5: EA002288h

5580983A

--

--