Specifications
2012 Advanced Micro Devices, Inc.
SATA: dev-17, func-0
AMD SP5100 Register Programming Requirements
Page 58
7.7 SATA Identification Programming Sequence for IDE Mode
7.7.1 SATA Drive Detection
The following sequence should be included in the SBIOS drive identification loop for SATA drives
detection.
ASIC Rev Register Settings Function/Comment
All Revs SP5100
1. If any of the SATA port status register
SATA_BAR5 + 0x128 [3:0] = 0x3
SATA_BAR5 + 0x1A8 [3:0] = 0x3
SATA_BAR5 + 0x228 [3:0] = 0x3
SATA_BAR5 + 0x2A8 [3:0] = 0x3
SATA_BAR5 + 0x328 [3:0] = 0x3
SATA_BAR5 + 0x3A8 [3:0] = 0x3
Then set
SATA_BAR0 + 0x6 = 0xA0 or
SATA_BAR0 + 0x6 = 0xB0 or
SATA_BAR2 + 0x6 = 0xA0 or
SATA_BAR2 + 0x6 = 0xB0 or
PATA_BAR0/2 + 0x6 = 0xA0 or
PATA_BAR0/2 + 0x6 = 0xB0 or
Go to step (2).
Else
No drive is attached, exit the detection loop.
SATA_BAR5 + 0x128h : port 0 status register
SATA_BAR5 + 0x1A8h : port 1 status register
SATA_BAR5 + 0x228h : port 2 status register
SATA_BAR5 + 0x2A8h : port 3 status register
SATA_BAR5 + 0x328h : port 4 status register
SATA_BAR5 + 0x3A8h : port 5 status register
SATA host and device serial interface communication
is done and ready if the SATA port status register =
0x3.
for SATA controller primary master emulation
for SATA controller primary slave emulation
for SATA controller secondary master emulation
for SATA controller secondary slave emulation
for PATA controller primary/secondary master
emulation
for PATA controller primary/secondary slave
emulation
Otherwise,
No SATA drive attached or SATA drive is not ready.
2. If
SATA_BAR0 + 0x6 = 0xA0 and
SATA_BAR0 + 0x7 [7] & [3] = 0
Or
SATA_BAR0 + 0x6 = 0xB0 and
SATA_BAR0 + 0x7[7] & [3] = 0
Or
SATA_BAR2 + 0x6 = 0xA0 and
SATA_BAR2 + 0x7[7] & [3] = 0
Or
SATA_BAR2 + 0x6 = 0xB0 and
SATA_BAR2 + 0x7[7] & [3] = 0
Or
PATA_BAR0/2 + 0x6 = 0xA0 and
PATA_BAR0/2 + 0x7[7] & [3] = 0
Or
PATA_BAR0/2 + 0x6 = 0xB0 and
PATA_BAR0/2 + 0x7[7] & [3] = 0
then the drive detection is completed
Else
loop until 30s time out, drive detection fail
SATA_BAR0 + 0x7[7] & [3] = 0 means primary master
device ready
SATA_BAR0 + 0x7[7] & [3] = 0 means primary slave
device ready
SATA_BAR2 + 0x7[7] & [3] = 0 means secondary
master device ready
SATA_BAR2 + 0x7[7] & [3] = 0 means secondary slave
device ready
PATA_BAR0/2 + 0x7[7] & [3] = 0 means primary
/secondary master device ready
PATA_BAR0/2 + 0x7[7] & [3] = 0 means primary
/secondary slave device ready
There is no SATA device attached on the port if time
out occurs (see Note).
Note: Most drives do not need 10s timeout. The 10s timeout is only needed for some particularly large capacity SATA
drives, which require a longer spin-up time during a cold boot.










