Quantcast
Channel: Xilinx Wiki : Xilinx Wiki - all changes
Viewing all 11776 articles
Browse latest View live

Fetch Sources

$
0
0
...
This will create a new directory and download the sources into it.
In case you're behind a firewall please have a look at using Git.
Next StepBuild Steps
(You are here) Fetch Sources

Build FSBL
Build Device Tree Compiler (DTC)
Build PMU Firmware
Build Arm Trusted Firmware (ATF)

Build U-Boot
Build and Modify a Root File System
Build Device Tree Blob
Build Linux Kernel
Prepare Boot Image
Prepare Boot Medium
Setup a Serial Console
Additional Information: Build Qt and Qwt Libraries

Related Links
build kernel

Build FSBL

$
0
0
...
Generate and build the FSBL
hsi% generate_app -hw $hwdsgn -os standalone -proc ps7_cortexa9_0 -app zynq_fsbl -compile -sw fsbl -dir <dir_for_new_app>
Next StepBuild Steps
Fetch Sources
(You are here) Build FSBL
Build Device Tree Compiler (DTC)
Build PMU Firmware
Build Arm Trusted Firmware (ATF)

Build U-Boot
PrepareBuild and Modify a Root File System
Build Device Tree Blob
Build Linux Kernel
Prepare
Boot Image
Prepare Boot Medium
Setup a Serial Console
Additional Information: Build Qt and Qwt Libraries

Related Links
Zynq-7000 AP SoC Software Developers Guide

Build and Modify a Rootfs

$
0
0
...
file ramdisk.image.gz
ramdisk.image.gz: gzip compressed data, was "rootfs.cpio", from Unix, last modified: Fri May 30 01:52:08 2014
Next StepBuild Steps
Fetch Sources
Build FSBL
Build Device Tree Compiler (DTC)
Build PMU Firmware
Build Arm Trusted Firmware (ATF)
Build U-Boot
(You are here) Build and Modify a Root File System

Build Device Tree Blob
PrepareBuild Linux Kernel
Prepare
Boot Image
Prepare Boot Medium
Setup a Serial Console
Additional Information: Build Qt and Qwt Libraries

Related Links
Build U-Boot

Build Device Tree Blob

$
0
0
...
Release Notes
2016.4 DTG Release Notes
Next StepBuild Steps
Fetch Sources
Build FSBL
Build Device Tree Compiler (DTC)
Build PMU Firmware
Build Arm Trusted Firmware (ATF)
Build U-Boot
Build and Modify a Root File System
(You are here) Build Device Tree Blob

Build Linux Kernel
Prepare Boot Image
Prepare Boot Medium
Setup a Serial Console
Additional Information: Build Qt and Qwt Libraries

Related Links
Install Xilinx tools

Prepare boot image

$
0
0
...
The bootgen utility uses the description from the boot.bif file to create the final boot.bin
bootgen -image boot.bif -o i boot.bin
Next StepBuild Steps
Fetch Sources
Build FSBL
Build Device Tree Compiler (DTC)
Build PMU Firmware
Build Arm Trusted Firmware (ATF)
Build U-Boot
Build and Modify a Root File System
Build Device Tree Blob
Build Linux Kernel
(You are here) Prepare Boot Image

Prepare Boot Medium
Setup a Serial Console
Additional Information: Build Qt and Qwt Libraries

Related Links
build FSBL

Prepare Boot Medium

$
0
0
...
{zynq_boot_mode_qspi.jpg} Boot mode set for QSPI boot on a zc706
After power cycling the board, it will boot from the image in QSPI
Build Steps
Fetch Sources
Build FSBL
Build Device Tree Compiler (DTC)
Build PMU Firmware
Build Arm Trusted Firmware (ATF)
Build U-Boot
Build and Modify a Root File System
Build Device Tree Blob
Build Linux Kernel
Prepare Boot Image
(You are here) Prepare Boot Medium
Setup a Serial Console
Additional Information: Build Qt and Qwt Libraries

Related Links Related Links
Partitioning with fdisk

PetaLinux Yocto Tips

$
0
0
...
SRC_URI_append = " file://inittab.patch"
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
How to Patch PMU Firmware in v2017.1 PetaLinux Project
1. Create a pmu and files directory in meta-user layer as
$ mkdir -p <petalinux_porject>/porject-spec/meta-user/recipes-bsp/pmu
$ mkdir -p <petalinux_porject>/porject-spec/meta-user/recipes-bsp/pmu/files
2. Copy patch files to <petalinux_porject>/porject-spec/meta-user/recipes-bsp/pmu/files as
$ cp PMUFW.patch <petalinux_porject>/porject-spec/meta-user/recipes-bsp/pmu/files
2. Create a pmu-firmware_%.bbappend file and below content
$ vim <petalinux_porject>/porject-spec/meta-user/recipes-bsp/pmu/pmu-firmware_%.bbappend
#Patch for PMUFW
do_configure_prepend() {
if [-d "${S}/patches"]; then
rm -rf ${S}/patches
fi
if [-d "${S}/.pc"]; then
rm -rf ${S}/.pc
fi
}
SRC_URI_append = " \
file://0001-PMUFW.patch \
"
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
YAML_COMPILER_FLAGS_append = " -DENABLE_EM" // Enable appropriate PMUFW debug flags
EXTERNALXSCTSRC = ""
EXTERNALXSCTSRC_BUILD = ""

Related Links
Xilinx Yocto

PetaLinux Yocto Tips

$
0
0
...
SRC_URI_append = " file://inittab.patch"
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
How to Patchpatch FSBL in v2017.1 PetaLinux Project
Note: This method can't be used for v2016.4 PetaLinux Projects.
1. Create a fsbl and files directory in meta-user layer as
$ mkdir -p <petalinux_porject>/porject-spec/meta-user/recipes-bsp/fsbl
$ mkdir -p <petalinux_porject>/porject-spec/meta-user/recipes-bsp/fsbl/files
2. Copy patch files to <petalinux_porject>/porject-spec/meta-user/recipes-bsp/fsbl/files as
$ cp 0001-FSBL.patch <petalinux_porject>/porject-spec/meta-user/recipes-bsp/fsbl/files
3. Create a fsbl_%.bbappend file and add below content
$ vim <petalinux_porject>/porject-spec/meta-user/recipes-bsp/fsbl/fsbl_%.bbappend
#Patch for FSBL
do_configure_prepend() {
if [-d "${S}/patches"]; then
rm -rf ${S}/patches
fi
if [-d "${S}/.pc"]; then
rm -rf ${S}/.pc
fi
}
SRC_URI_append = " \
file://0001-FSBL.patch \
"
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
XSCT_BUILD_DEBUG = "1"
YAML_COMPILER_FLAGS_append = " -DXPS_BOARD_ZCU102" // Enable appropriate FSBL debug flags
EXTERNALXSCTSRC = ""
EXTERNALXSCTSRC_BUILD = ""
How to patch
PMU Firmware
...
PetaLinux Project
Note: This method can't be used for v2016.4 PetaLinux Projects.

1. Create
...
layer as
$ mkdir -p <petalinux_porject>/porject-spec/meta-user/recipes-bsp/pmu
$ mkdir -p <petalinux_porject>/porject-spec/meta-user/recipes-bsp/pmu/files
2. Copy patch files to <petalinux_porject>/porject-spec/meta-user/recipes-bsp/pmu/files as
$ cp PMUFW.patch0001-PMUFW.patch<petalinux_porject>/porject-spec/meta-user/recipes-bsp/pmu/files
2.

3.
Create a
...
file and add below content
$ vim <petalinux_porject>/porject-spec/meta-user/recipes-bsp/pmu/pmu-firmware_%.bbappend
#Patch for PMUFW

PetaLinux Yocto Tips

$
0
0
...
How to modify inittab or getty in v2016.4 PetaLinux Project
1. Create a sysvinit directory in meta-user layer as
...
mkdir -p <petalinux_porject>/porject-spec/meta-user/recipes-core/sysvinit/sysvinit-inittab<plnx-proj-root>/project-spec/meta-user/recipes-core/sysvinit/sysvinit-inittab
2. Create a sysvinit-inittab_%.bbappend file and your own inittab file or your inittab patch
$ vim <petalinux_porject>/porject-spec/meta-user/recipes-core/sysvinit/sysvinit-inittab_%.bbappend<plnx-proj-root>/project-spec/meta-user/recipes-core/sysvinit/sysvinit-inittab_%.bbappend
SRC_URI_append = " file://inittab"
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
...
Note: This method can't be used for v2016.4 PetaLinux Projects.
1. Create a fsbl and files directory in meta-user layer as
...
mkdir -p <petalinux_porject>/porject-spec/meta-user/recipes-bsp/fsbl<plnx-proj-root>/project-spec/meta-user/recipes-bsp/fsbl
$ mkdir -p <petalinux_porject>/porject-spec/meta-user/recipes-bsp/fsbl/files<plnx-proj-root>/project-spec/meta-user/recipes-bsp/fsbl/files
2. Copy
...
files to <petalinux_porject>/porject-spec/meta-user/recipes-bsp/fsbl/files<plnx-proj-root>/project-spec/meta-user/recipes-bsp/fsbl/files as
$ cp 0001-FSBL.patch <petalinux_porject>/porject-spec/meta-user/recipes-bsp/fsbl/files<plnx-proj-root>/project-spec/meta-user/recipes-bsp/fsbl/files
3. Create a fsbl_%.bbappend file and add below content
$ vim <petalinux_porject>/porject-spec/meta-user/recipes-bsp/fsbl/fsbl_%.bbappend<plnx-proj-root>/project-spec/meta-user/recipes-bsp/fsbl/fsbl_%.bbappend
#Patch for FSBL
do_configure_prepend() {
...
How to patch PMU Firmware in v2017.1 PetaLinux Project
Note: This method can't be used for v2016.4 PetaLinux Projects.
...
layer as
$

$
mkdir -p <petalinux_porject>/porject-spec/meta-user/recipes-bsp/pmu<plnx-proj-root>/project-spec/meta-user/recipes-bsp/pmu
$ mkdir -p <petalinux_porject>/porject-spec/meta-user/recipes-bsp/pmu/files<plnx-proj-root>/project-spec/meta-user/recipes-bsp/pmu/files
2. Copy
...
files to <petalinux_porject>/porject-spec/meta-user/recipes-bsp/pmu/files<plnx-proj-root>/project-spec/meta-user/recipes-bsp/pmu/files as
$ cp 0001-PMUFW.patch <petalinux_porject>/porject-spec/meta-user/recipes-bsp/pmu/files<plnx-proj-root>/project-spec/meta-user/recipes-bsp/pmu/files
3. Create a pmu-firmware_%.bbappend file and add below content
$ vim <petalinux_porject>/porject-spec/meta-user/recipes-bsp/pmu/pmu-firmware_%.bbappend<plnx-proj-root>/project-spec/meta-user/recipes-bsp/pmu/pmu-firmware_%.bbappend
#Patch for PMUFW
do_configure_prepend() {

Macb Driver

$
0
0
...
MACB MDIO bus support - http://xkb/Pages/68/68866.aspx
ZynqMP PS SGMII GT initialization and related - http://xkb/Pages/69/69132.aspx,
...
resume - <>http://xkb/Pages/69/69101.aspx
PL PCS PMA initialization in fsbl for Zynq and ZynqMP - refer to xapp1206 and xapp1036
For full list of ARs, search XKB

Macb Driver

$
0
0
...
PS SGMII GT initialization is not supported via zynqmp_phy.c - it needs to be explicitly initialized.
Important AR links
...
support - http://xkb/Pages/68/68866.aspxAR-68866
ZynqMP PS
...
related - http://xkb/Pages/69/69132.aspx,AR-69132
Ethernet does
...
resume - http://xkb/Pages/69/69101.aspxAR-69101
PL PCS PMA initialization in fsbl for Zynq and ZynqMP - refer to xapp1206 and xapp1036
For full list of ARs, search XKB

Macb Driver

$
0
0
...
PS SGMII GT initialization is not supported via zynqmp_phy.c - it needs to be explicitly initialized.
Important AR links
...
support - AR-68866AR-69132
ZynqMP PS
...
related - AR-69132AR-68866
Ethernet does not work after suspend resume - AR-69101
PL PCS PMA initialization in fsbl for Zynq and ZynqMP - refer to xapp1206 and xapp1036

Zynq UltraScale+ MPSoC - 64-bit DDR access with ECC

$
0
0

Document History
Document is under construction
Date
Version
...
1.0
Srikanth Erusalagandi
Initial Version (2016.4)
05/22/2107
2.0
Srikanth Erusalagandi
2017.1

1. Summary
This technical article describes the implementation of an Error Correction Control (ECC) module in the Zynq UltraScale+ MPSoC DDR Controller. The reference design provided here detects and corrects all single bit errors (in a codeword consisting of either 64-bit data and 8 parity bits) , and it detects double bit errors in the data. This design utilizes Hamming code, a simple yet powerful method for ECC operations. As a result, this design offers exceptional performance and resource utilization.
...
Boards/Tools
Xilinx Tools Version
Vivado 2016.42017.1
Board
ZCU102 Rev 1.0, Rev A, Rev B , Rev C and Rev D
Reference Design Download:
File Name: ecc_designfiles.zip
...
for ZCU102 for Production Silicon and Engineering Sample Silicon Version 2(ES2) on Rev 1.0 board and
Engineering Sample Silicon Version 1(ES1) on
Rev B,
4. Requirements:
Linux Host machine
...
Install the Petalinux software:
1. Open a terminal on your Linux machine and run the following commands.
$ ./petalinux-v2016.4-final-installer.run./petalinux-v2017.1-final-installer.run /opt/
$ source /opt/petalinux-v2016.4-final/settings.sh/opt/petalinux-v2017.1-final/settings.sh
2. Copy the ecc-designfiles.zip file on to your linux machine and run the following commands
$ unzip ecc-designfiles.zip
...
$ cd $MYWORKSPACE
$ pwd
...
are in ecc-designfilesecc-design files directory by
3. Type ls and you should see the following directories.
sdk_export
...
Creating the Petalinux project:
Create a Petalinux project and source the Zynq MPSoC ECC Hardware description file for the ZCU102 board present in the sdk_export directory.
...
1.0 board with Production Silicon run the
...
project -s xilinx-zcu102-zu9-es2-rev1.0-v2016.4-final1.bspxilinx-zcu102-v2017.1-final.bsp
$ petalinux-config
...
$MYWORKSPACE/sdk_export/rev1.0 –p xilinx-zcu102-zu9-es2-rev1.0-v2016.4-final1xilinx-zcu102-v2017.1-final
b.For Rev 1.0 board with Engineering Sample 2(ES2) Silicon run the following commands.
$ petalinux-create -t project -s xilinx-zcu102-zu9-es2-rev1.0-v2017.1-final1.bsp
$ petalinux-config --get-hw-description $MYWORKSPACE/sdk_export/rev1.0 –p xilinx-zcu102-zu9-es2-rev1.0-v2017.1-final1

b. For Rev AB/C/D board run the following commands
...
project -s xilinx-zcu102-v2016.4-final1.bspxilinx-zcu102-v2017.1-final1.bsp
$ petalinux-config
...
$MYWORKSPACE/sdk_export/rev_abcd –p xilinx-zcu102-v2016.4-final1xilinx-zcu102-v2017.1-final1
2. When the hardware description file is sourced it launches the system configuration of the Petalinux as shown below.
{petalinux_gethw.PNG} Figure: Petalinux System Configuration Menu

Debug-Uboot 7.JPG

Debug-Uboot 7.JPG


Debug-Uboot 9.JPG

Debug-Uboot 8.JPG

Debug-Uboot 10.JPG

Debug U-boot

$
0
0
...
Launch the debugger
Connect to the target using the XSCT Console and stop the running processor
By default the debugger is not able to identify the code by itself, so there is no symbols or source files associated to the execution
{Debug-Uboot 5.JPG}
Add the symbol file with the relocation offset
Once the symbol file is associated with the execution, the debugger will identify the current execution point and also will open the source file where the core is stop. In case of cannot find the source file it will point a error message and option to specify the lookup path
{Debug-Uboot 7.JPG}
Edit the source lookup Path to find the source files from where U-Boot was compiled
This step may be skipped if you are using the same host machine for buildling U-Boot and debugging the application
{Debug-Uboot 9.JPG} {Debug-Uboot 8.JPG}
Debug the application
{Debug-Uboot 10.JPG}

Petalinux Notes
$ petalinux-create -t project -s <Path-to-BSP-File> -n petalinux

Debug U-boot

$
0
0
...
{
[destination_cpu = a53-0, bootloader]<BSP-pre-build-images-path>/zynqmp_fsbl.elf
[pmufw_image]<BSP-pre-build-images-path>/pmufw.elf
[destination_cpu = a53-0, exception_level = el-3, trustzone]<BSP-pre-build-images-path>/bl31.elf

[destination_cpu = a53-0, exception_level = el-2]<U-boot-build-path>/u-boot.elf
}
...
Debug U-Boot
Debug before relocation
The symbols present on the ELF file match with the with the runtime state before the self-relocation is performed, so it is not required to remap it anywhere. Nevertheless the main issue for thi use case is to stop the processor before the relocation is done so there is a small time windows to connect the debugger. The best way to do that is to set the proper breakpoint after U-Boot is relocated and the drive a system reset to stop the execution in the previous state.
Boot the board with the BOOT binary using a SD card
Generate a new Debug configuration for a running target

Debug after relocation
XSCT includes a memory modification command memmap, which can be used to relocate the code as explained in the Xilinx SDK Help content.
Boot the bordboard with the
Check the relocation offset using bdinfo command in the U-boot console
{Debug-Uboot 6.JPG}
Viewing all 11776 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>