User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 183
UG585 (v1.11) September 27, 2016
Chapter 6: Boot and Configuration
Boot Time Optimizations
To improve NAND boot time, raise the clock rates, and optimize the I/O protocol by setting the
registers listed in Table 6-12. The example values might not be appropriate or optimal for all NAND
devices or board layouts. The settings assume a 33 MHz PS_CLK. If a faster clock is used, then a larger
divider must be considered.
BootROM Operations
The BootROM responds to three flash device situations.
Bad Blocks: Read and write data reliably.
ECC: Recover from bit disturbances.
NAND_IO[4:7] MIO 9 to 12 0x1610 I/O Enabled, pull-up ~
NAND_IO[3] MIO 13 0x1610 I/O Enabled, pull-up ~
NAND_BUSY MIO 14 0x0610 I 3-state ~
not NAND MIO 15 0x1601 I 3-state ~
not NAND MIO 24 to 53 0x1601 I 3-state ~
8-bit NAND Boot
non 8-bit NAND MIO 16 to 23 0x1601 I 3-state ~
16-NAND Boot
NAND_IO[8:15] MIO 16 to 23 0x1610 I/O Enabled, pull-up ~
Notes:
1. These register settings are for LVCMOS25/33. Change the 6 to a 2 for LVCMOS18 (bits 11:9 change from
011 to 001).
Table 6-12: NAND Boot Time Optimization Register Setting Example
Register Width Security
(1)
Value Description
slcr.ARM_CLK_CTRL Both Both
0x1F000200
CPU divisor = 2 (433 MHz)
slcr.SMC_CLK_CTRL Both Both
0x00000921
Baud rate divisor = 9 (96 MHz, 10.4 ns)
smc.set_cycles Both Non-secure
0x00225133
Timing Parameters:
t_rr=2, t_ar=1, t_clr=1, t_wp=2,
t_rea=1, t_wc=3, t_rc=3
smc.set_opmode
8-bit Non-secure
0x00000000
8-bit width
16-bit Non-secure
0x00000001
16-bit width
smc.direct_cmd Both Non-secure
0x02400000
Select ModeReg and UpdateRegs
1. In secure mode, the smc registers are not accessible for optimization using the Register Initialization writes
as shown in Table 6-7.
Table 6-11: NAND Boot MIO Register Settings (Contd)
NAND Flash
I/O Interface
Signal Name
(SMC controller)
MIO Pin
Number
MIO_PIN
Register
Setting
(1)
Pin State
I/O
I/O Buffer
Output, Pull-up
External
Connection