
SiI3512 PCI to Serial ATA Controller
Data Sheet
Silicon Image, Inc.
118
2007-2010 Silicon Image, Inc. All rights reserved.
DS-0102-D01
CONFIDENTIAL
Flash and EEPROM Programming Sequences
Flash Memory Access
The SiI3512 supports an external flash memory device of up to 4-Mbit capacity. Access to the flash memory is available
through two means: PCI Direct Access and Register Access.
PCI Direct Access
Access to the Expansion ROM is enabled by setting bit 0 in the Expansion ROM Base Address register at offset 0x30 of
the PCI Configuration Space. When this bit is set, bits [31:19] of the same register are programmable by the
system to set the base address for all flash memory accesses. Read and write operations with the flash
memory are initiated by Memory Read and Memory Write commands on the PCI bus. Accesses may be as bytes, words,
or dwords.
Register Access
This type of flash memory access is carried out through a sequence of internal register read and write operations. The
proper programming sequences are detailed below.
Flash Write Operation
Verify that bit 25 is cleared in the register at Offset 0x50 of Base Address 5. The bit reads one when a memory
access is currently in progress.
It reads zero when the memory access is complete and ready for another operation.
Program the write address for the flash memory access. The address field is defined by bits [18:00] in the Flash
Memory Address – Command + Status register.
Program the write data for the flash memory access. The data field is defined by bits [07:00] in the Flash
Memory Data register at Offset 54 of Base Address 5.
Program the memory access type. The memory access type is defined by bit 24 in the Flash Memory Address –
Command + Status register. The bit must be cleared for a memory write access.
Initiate the flash memory access by setting bit 25 in the Flash Memory Address – Command + Status register.
Flash Read Operation
Verify that bit 25 is cleared in the Flash Memory Address – Command + Status register at Offset 0x50 of Base
Address 5. The bit reads one when a memory access is currently in progress. It reads zero when the memory
access is complete and ready for another operation.
Program the read address for the flash memory access. The address field is defined by bits [18:00] in the Flash
Memory Address – Command + Status register.
Program the memory access type. The memory access type is defined by bit 24 in the Flash Memory Address –
Command + Status register. The bit must be set for a memory read access.
Initiate the flash memory access by setting bit 25 in the Flash Memory Address – Command + Status register.
Verify that bit 25 is cleared in the Flash Memory Address – Command + Status register. The bit reads one when
a memory access is currently in progress. It reads zero when the memory access is complete.
Read the data from the flash memory access. The data field is defined by bits [07:00] in the Flash Memory Data
register at Offset 0x54 of Base Address 5.