English
Language : 

EP80579 Datasheet, PDF (797/1916 Pages) Intel Corporation – Intel® EP80579 Integrated Processor Product Line
Intel® EP80579 Integrated Processor
21.4.3
21.4.3.1
Running SPI Cycles from the Host
Memory Reads
Memory Reads to the BIOS Range result in a READ command (03h) with the lower 3
bytes of the address delivered in the SPI cycle. By sending the entire 24 bits of address
out to the SPI interface unchanged, the EP80579 hardware can support various flash
memory sizes without having straps or automatic detection algorithms in hardware.
The flash memory device must ignore the upper address bits such that an address of
FFFFFFh simply aliases to the top of the flash memory. This is true for all supported
flash devices. When considering additional flash parts, this behavior should be checked.
For compatibility with the FWH interface, the SPI interface supports decoding the two
64 KB BIOS ranges at the E0000h and F0000h segments just below 1 MB. These
ranges must be re-directed (aliased) to the ranges just below 4 GB by the EP80579.
This is done by forcing the upper address bits (23:20) to 1s when performing the read
on the SPI interface.
When the SPI Prefetch Enable bit in Offset DCh: BC: BIOS Control Register is set, the
EP80579 checks if the starting address for a read is aligned to the start of a 64B block
(i.e., address bits 5:0 are 00h). If this is not the case, then the EP80579 only reads the
length specified by the current read. If the read is aligned to the start of the 64B block
with the SPI Prefetch Enable bit set, then the read burst continues on the SPI pins until
64 bytes have been received. Note that the EP80579 always performs the entire 64B
burst when the conditions are met to perform the prefetch when the memory read
request is received. This policy can result in a large penalty if the read addresses are
not sequential. Software is allowed and encouraged to dynamically turn on prefetching
only when the reads are sequential (for example, if shadowing the BIOS using
consecutive DWord reads).
When prefetching is enabled, the read buffer must be enabled for caching. If the
EP80579 detects a read to the range that is currently in (or being fetched for) the read
buffer, it will not perform another read cycle on the SPI pins. Instead, the data is
returned from the read buffer. Note that the entire read request must be contained in
the cache in order to avoid running the read on the SPI interface.
The following events invalidate the read buffer “cache”:
1. A Programmed Access begins. Note that if the cycle is blocked from running for
protection or other reasons, the cache is not flushed.
2. A Memory read to a BIOS range that does not hit the range in the read buffer.
3. System Reset.
4. Software setting the Cache Disable bit (and clearing the Prefetch Enable) in Offset
DCh: BC: BIOS Control Register. This can serve as a way to flush the cache in
software.
Even when prefetching is disabled, the read buffer can act as a cache for Direct
Memory Read Data. This is a potentially valuable boot-time optimization that leverages
the basic caching mechanism that is needed for prefetching anyway. The cache is
loaded with the data received on every Direct Memory Read that runs on the SPI pins.
That data remains valid within the cache until any one of the conditions listed above
occurs. For the cache to work properly, the Direct Memory Read must be fully contained
within a 64-byte aligned range. The following events result in a valid read buffer cache
when the caching is enabled:
1. A host read to the SPI BIOS with a length of 64 Bytes. This cycle must be aligned to
a 64B boundary.
2. A host read to the SPI BIOS of any length with a 64B-aligned address and
prefetching is enabled.
August 2009
Order Number: 320066-003US
Intel® EP80579 Integrated Processor Product Line Datasheet
797