Open main menu

DAVE Developer's Wiki β

Changes

no edit summary
<section begin=History/>{| style="border-collapse:collapse; "!colspan="4" style="width:100%; text-align:left"; border-bottom:solid 2px #ededed"|History|- !style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Issue Date!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Notes|-|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|2021/08/28|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|New documentation layout|-|}<section end=History/>__FORCETOC__<section begin=Body/> == System boot == The boot process begins at Power On Reset (POR) where the hardware reset logic forces the ARM core to begin execution starting from the on-chip boot ROM. The boot process is multi-stage and minimally includes the Boot ROM and the first-stage boot loader (FSBL). The Zynq-7000 AP SoC includes a factory-programmed Boot ROM that is not useraccessible. The boot ROM:* determines whether the boot is secure or non-secure* performs some initialization of the system and cleanups* reads the mode pins to determine the primary boot device* once it is satisfied, it executes the FSBL After a system reset, the system automatically sequences to initialize the system and process the first stage boot loader from the selected external boot device. The process enables the user to configure the AP SoC platform as needed, including the PS and the PL. Optionally, the JTAG interface can be enabled to give the design engineer access to the PS and the PL for test and debug purposes. === Boot options === The boot ROM supports configuration from four different slave interfaces:* Quad-SPI* NAND * NOR flash (not available on [[BORA Lite SOM | BORA Lite]])* SD card Boot mode is selectable via five mode pins (BOOT_MODE[4:0]), and two voltage mode signals, (VMODE[1:0]). The BOOT_MODE pins are MIO[6:2] and the VMODE pins are MIO[8:7]. The pins are used as follows: {|class="wikitable" style="text-align: center;"|-!Function!Boot signals!Available options|-| JTAG mode || BOOT_MODE[3]<br>MIO[2]|| 0: Cascaded JTAG<br>1: Independent JTAG|-| Boot mode || BOOT_MODE[0-2-1]<br>MIO[5:3] || 000: JTAG<br>010: NAND<br>100: Quad-SPI<br>110: SD card|-| PLLs enable || BOOT_MODE[4]<br>MIO[6] || 0: PLL used<br>1: PLL bypassed|-| MIO Bank 0 Voltage || VMODE[0]<br>MIO[7] || 0: 2.5 V, 3.3 V<br>1: 1.8 V|-|MIO Bank 0 Voltage || VMODE[1]<br>MIO[8] || 0: 2.5 V, 3.3 V<br>1: 1.8 V|-|} In order to fully understand how boot works on BORA Lite platform, please refer to chapter 6 ("Boot and configuration") of the Zynq7000 Technical Reference Manual. === Default boot configuration === Default configuration for BORA Lite module is:* Mode[0..3] = 1000: Quad-SPI mode* Mode[4] = 0: PLL not bypassed* VCFG[0] = 0: 2.5V, 3.3V operations for bank 0* VCFG[1] = 1: 1.8 operations for bank 1 Assuming that:* default configuration is not changed* there's a valid boot code programmed in SPI flash memory the actual boot sequence performed by ARM core will be:System_boot_and_recovery_via_microSD_card_# Bootrom is executed from internal ROM code memory# FSBL is copied from on-board NOR flash memory connected to SPI0 port to on-chip SRAM by bootrom# FSBL is executed from on-chip SRAM# U-Boot bootloader (2nd stage) is copied by FSBL from NOR flash memory connected to Quad-SPI port to SDRAM# U-boot (BELK2nd stage) is executed from SDRAM If no boot code is available in SPI NOR flash, the bootrom tries JTAG peripheral booting. === Boot sequence customization === BOOT_MODE[4:0] are routed to the J1 connector, enabling for the customization of the boot sequence through a simple resistor network that can be implemented on carrier board hosting BORA Lite module. {|class="wikitable" style="text-align: center;"|-!Mode signal !J1 pin !Pin name|-| BOOT_MODE[4] || J1.54 || SPI0_SCLK/MODE4/NAND_IO1|-| BOOT_MODE[3] || J1.46 || SPI0_DQ0/MODE3/NAND_ALE|-| BOOT_MODE[2] || J1.50 || SPI0_DQ2/MODE2/NAND_IO2|-| BOOT_MODE[1] || J1.48 || SPI0_DQ1/MODE1/NAND_WE|-| BOOT_MODE[0] || J1.52 || SPI0_DQ3/MODE0/BXELK)}NAND_IO0|---- [[Category:BORA Lite]]
8,226
edits