Changes

Jump to: navigation, search

System boot and recovery via microSD card (BELK/BXELK)

4,840 bytes added, 13:48, 16 October 2019
no edit summary
TBD{{InfoBoxTop}}{{Applies To Bora}}{{Applies To BoraX}}{{Applies To BoraLite}}{{InfoBoxBottom}} == History =={| class="wikitable" border="1"!Version!Date!BELK version!Notes|-|1.0.0|November 2015|[[Bora_Embedded_Linux_Kit_(BELK)#BELK_software_components|3.0.0]]|First release|-|2.0.0|December 2016|BELK 3.0.1 / BXELK 1.0.0|Added information about new kits|-|3.0.0|July 2017|BELK 4.0.0 / BXELK 2.0.0|Added information about new kits|-|} ==Introduction==BELK provides a bootable microSD that can be used not only to quickly start the system, but also as a recovery method in case the primary boot device (eg. QSPI NOR flash) gets erased or corrupted. The following sections describe how to create a bootable SD card and how to configure the system for booting from SD. [[Restoring_U-Boot_on_SPI_NOR_flash_(BELK/BXELK)|This article]], for example, shows how to make use of such a card to restore the U-Boot image onto the NOR flash. {{ImportantMessage|text=It is worth remembering that the bootable microSD card described in this article is not configured to perform a full boot sequence, including the operating system bootstrap. The bootable microSD card delivered along with the kit is set up to do a full bootstrap sequence, instead. For more details, please refer to [[Working_with_the_Yocto_build_system#bootscript|this section]].}} ==How to create a bootable microSD card=====BELK <= 3.0.2 / BXELK <= 1.0.1===This section describes how to create a new bootable microSD card from scratch for '''BELK <= 3.0.2''' and '''BXELK <= 1.0.1'''.The following components must be available:*FSBL built with Vivado 2014.4 as described [[Creating_and_building_example_Vivado_project_(BELK)|here]]*U-boot built in elf format, as described in [[Building_U-Boot_(BELK)|here]]*FPGA bitstream (optional).The procedure is the following:*from the Vivado 2014.4 SDK, apply the required patches to the <code>main.c</code> project file.This step can be done in two ways:**manually, directly modifying the <code>main.c</code> file adding the following code snippets:<pre>----CUT---- /* * Unlock SLCR for SLCR register write */ SlcrUnlock(); + *((u32 *)0xF8000830) = 0x003F003F;+ *((u32 *)0xF8000834) = 0x003F003F;  /* If Performance measurement is required * then read the Global Timer value , Please note that the----CUT---- ----CUT---- /* * Read bootmode register */ BootModeRegister = Xil_In32(BOOT_MODE_REG); BootModeRegister &= BOOT_MODES_MASK; + // always init QSPI+ InitQspi(); /* * QSPI BOOT MODE */#ifdef XPAR_PS7_QSPI_LINEAR_0_S_AXI_BASEADDR----CUT----</pre>**automatically, using the ''Apply Patch'' function and selecting the <code>belk-sd-boot.patch</code> file provided with the BELK (please refer to the following images):[[File:Patch sd 1.png|thumb|center|600px|Automatic patch applying (1/3)]][[File:Patch sd 2.png|thumb|center|600px|Automatic patch applying (2/3)]][[File:Patch sd 3.png|thumb|center|600px|Automatic patch applying (3/3)]]*once the patch is applied, rebuild the FSBL project*from the Xilinx Tools menu, select ''Create Zynq Boot Image''*select Create New BIF file and insert path and name of the .bif file*in the ''Boot image partitions'' section, click on ''Add'' to browse and add the following files:**FSBL in .elf format, with ''bootloader'' as partition type **(optional) FPGA bitstream in .bit format, with partition type ''datafile''**U-boot binary with .elf extension, with partition type ''datafile''*in the ''Output path'' section, browse and select the path where saving the <code>boot.bin</code> file*on a PC, format the microSD card creating a FAT32 partition*copy the <code>boot.bin</code> file to the microSD card FAT32 partition. ===BELK-4.0.0 / BXELK-2.0.0===This section describes how to create a new bootable microSD card from scratch for '''BELK-4.0.0''' and '''BXELK-2.0.0'''.The following components must be available:*U-boot SPL and U-boot second stage built as described in [[Building_U-Boot_(BELK)|here]]*FPGA bitstream (optional).The procedure is the following:*on a PC, format the microSD card creating a FAT32 partition*copy the following files to the microSD card FAT32 partition:** U-boot SPL: <code>boot.bin</code>** U-boot second stage: <code>u-boot.img</code>** Fpga bitstream .bit (optional): <code>fpga.bit</code> ==How to configure the system for microSD boot==For Bora/BoraEVB systems please refer to [[BoraEVB#Boot_mode_selection_-_S5|this link]]. For BoraX/BoraXEVB systems please refer to [[BoraXEVB#Boot_mode_selection_-_S5|this link]]. {{ImportantMessage|text=In case the microSD card provided along with the kit is used, the Programmable Logic is automatically programmed with the [[Creating_and_building_example_Vivado_project_(BELK/BXELK)|example design]] during the boot process.}}
8,154
edits

Navigation menu