Difference between revisions of "System boot and recovery via microSD card (BELK/BXELK)"

From DAVE Developer's Wiki
Jump to: navigation, search
(How to configure the system for microSD boot)
(24 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{InfoBoxTop}}
+
TBD
{{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
 
|-
 
|}
 
 
 
<section begin=BELK/>
 
==System boot and recovery via microSD card==
 
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. [[BORA_SOM/BELK-L/Deployment/Restoring_U-Boot_on_NOR_flash|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 [[BORA_SOM/BELK-L/Development/Creating_and_building_a_Vivado_example|here]]
 
*U-boot built in elf format, as described in [[BORA_SOM/BELK-L/Development/Building_U-Boot|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 [[BORA_SOM/BELK-L/Development/Building_U-Boot|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 / BORA Evaluation kit systems please refer to [[BORA_SOM/BORA_Evaluation_Kit/Getting_started/Boot_Configurations|this link]].
 
 
 
For BORA Xpress/ BORA xpress Evaluation kit systems please refer to [[BORA_Xpress_SOM/BORA_Xpress_Evaluation_Kit/Getting_started/Boot_Configurations|this link]].
 
 
 
For BORA Lite Evaluation kit systems please refer to [[BORA_Lite_SOM/BORA_Lite_Evaluation_Kit/Getting_started/Boot_Configurations|this link]].
 
 
 
{{ImportantMessage|text=In case the microSD card provided along with the kit is used, the Programmable Logic is automatically programmed with the [[BORA_SOM/BELK-L/Development/Creating_and_building_a_Vivado_example|example design]] during the boot process.
 
}}
 
<section end=BELK/>
 

Revision as of 10:21, 28 October 2015

TBD