Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
ezynq
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Elphel
ezynq
Commits
ef0b31fc
Commit
ef0b31fc
authored
Sep 25, 2013
by
Andrey Filippov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added instructions to test the software w/o U-boot instalaltion
parent
49cc8887
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
18 additions
and
18 deletions
+18
-18
README
README
+18
-18
No files found.
README
View file @
ef0b31fc
...
@@ -11,9 +11,9 @@ Ezynq partially duplicates functionality of Xilinx proprietary tools - bootgen a
...
@@ -11,9 +11,9 @@ Ezynq partially duplicates functionality of Xilinx proprietary tools - bootgen a
stage boot loader). It does not support secure boot functionality (that we have no interest in)
stage boot loader). It does not support secure boot functionality (that we have no interest in)
and loading the FPGA (PL) part with the bitstream - we plan to do that under control of the
and loading the FPGA (PL) part with the bitstream - we plan to do that under control of the
operating system as we did in our earlier products, if needed this feature can be implemented
operating system as we did in our earlier products, if needed this feature can be implemented
using
u
-boot.
using
U
-boot.
This software consists of Python program that processes data from
u
-boot configuration files
This software consists of Python program that processes data from
U
-boot configuration files
(configuration parameters start with CONFIG_EZYNQ_ prefix) that are collected in
(configuration parameters start with CONFIG_EZYNQ_ prefix) that are collected in
include/autoconf.mk (it is generated by "make include/autoconf.mk") and generates several output
include/autoconf.mk (it is generated by "make include/autoconf.mk") and generates several output
files:
files:
...
@@ -24,12 +24,12 @@ file uses RBL register initialization feature to set registers (MIO, DDR) that c
...
@@ -24,12 +24,12 @@ file uses RBL register initialization feature to set registers (MIO, DDR) that c
before system clocks and DDR memory are initialized - that requires polling status information
before system clocks and DDR memory are initialized - that requires polling status information
and waiting for particular states are reached.
and waiting for particular states are reached.
2 - ezynq.c file to be compiled and linked with other
u
-boot files. All ezynq-specific code is
2 - ezynq.c file to be compiled and linked with other
U
-boot files. All ezynq-specific code is
called by a modified version of the arch_cpu_init() function - the only difference from the
called by a modified version of the arch_cpu_init() function - the only difference from the
u
-boot version for Xilinx Zynq designed to be used with the proprietary FSBL program. This code
U
-boot version for Xilinx Zynq designed to be used with the proprietary FSBL program. This code
finishes register initialization (contrary to RBL it can wait for certain states are reached)
finishes register initialization (contrary to RBL it can wait for certain states are reached)
and performs relocation of the code from the on-chip memory (OCM) to the main system memory,
and performs relocation of the code from the on-chip memory (OCM) to the main system memory,
u
-boot takes over from there. Optionally the debug code is generated that controls the LED state
U
-boot takes over from there. Optionally the debug code is generated that controls the LED state
at different stages of the boot process and outputs register states to the serial port.
at different stages of the boot process and outputs register states to the serial port.
3 - html output file (default name u-boot.html) that lists the configuration parameters used
3 - html output file (default name u-boot.html) that lists the configuration parameters used
...
@@ -42,18 +42,18 @@ uses the default values provided in UG585, so when only some bit fields of the w
...
@@ -42,18 +42,18 @@ uses the default values provided in UG585, so when only some bit fields of the w
need to be modified, software relies on the calculated previous value and does not perform read
need to be modified, software relies on the calculated previous value and does not perform read
operations on the actual registers before writing the modified data back.
operations on the actual registers before writing the modified data back.
The
u
-boot version designed to be used with FSBL relied on it to initialize registers, clocks
The
U
-boot version designed to be used with FSBL relied on it to initialize registers, clocks
and DRAM memory, load
u
-boot image to DRAM at address 0x4000000 and pass control there. FSBL
and DRAM memory, load
U
-boot image to DRAM at address 0x4000000 and pass control there. FSBL
itself was loaded by RBL into on-chip memory (OCM) at address 0, having 192K of the total 256K
itself was loaded by RBL into on-chip memory (OCM) at address 0, having 192K of the total 256K
mapped to 0x0..0x2ffff and the remaining 64K - to the upper 0xffff0000..0xffffffff, the same
mapped to 0x0..0x2ffff and the remaining 64K - to the upper 0xffff0000..0xffffffff, the same
mapping is passed to
u
-boot that uses the high OCM memory for stack initially and later remaps
mapping is passed to
U
-boot that uses the high OCM memory for stack initially and later remaps
all of the OCM to 0xfffc0000.0xffffffff. Starting from 0x4000000
u
-boot relocates itself to
all of the OCM to 0xfffc0000.0xffffffff. Starting from 0x4000000
U
-boot relocates itself to
address zero and runs there.
address zero and runs there.
When using Ezynq the size of the
u
-boot image is limited to 192K - it is all what Zynq RBL can
When using Ezynq the size of the
U
-boot image is limited to 192K - it is all what Zynq RBL can
load by itself. It is quite a lot (192K is just for code, data uses DRAM and is not limited by
load by itself. It is quite a lot (192K is just for code, data uses DRAM and is not limited by
the OCM) so
u
-boot can be loaded in a simple one-stage process without the need of the SPL when
the OCM) so
U
-boot can be loaded in a simple one-stage process without the need of the SPL when
first a mini-version of
u-boot is loaded, and that version later loads the full u
-boot to DRAM.
first a mini-version of
U-boot is loaded, and that version later loads the full U
-boot to DRAM.
Generated arch_cpu_init() starts running in OCM, initializes DRAM, copies itself (first 192K
Generated arch_cpu_init() starts running in OCM, initializes DRAM, copies itself (first 192K
OCM) to DRAM to 0x4000000.0x402ffff (using just C, not assembly code) and than adds 0x4000000 to
OCM) to DRAM to 0x4000000.0x402ffff (using just C, not assembly code) and than adds 0x4000000 to
...
@@ -64,7 +64,7 @@ the DRAM, not in the OCM. U-boot relocation functionality nicely skips actual re
...
@@ -64,7 +64,7 @@ the DRAM, not in the OCM. U-boot relocation functionality nicely skips actual re
the source and destination addresses are the same) and the data memory is initialized when 192K
the source and destination addresses are the same) and the data memory is initialized when 192K
OCM limit is not in effect anymore.
OCM limit is not in effect anymore.
INSTALLATION (see below for testing without
u
-boot installation)
INSTALLATION (see below for testing without
U
-boot installation)
When Ezynq repository is cloned, there is install_uboot.sh script in the top directory. Running
When Ezynq repository is cloned, there is install_uboot.sh script in the top directory. Running
this script clones u-boot-xlnx and then adds links to the files in Ezynq sub-directory
this script clones u-boot-xlnx and then adds links to the files in Ezynq sub-directory
...
@@ -80,8 +80,8 @@ These links created by install_uboot.sh add new configuration files and replace
...
@@ -80,8 +80,8 @@ These links created by install_uboot.sh add new configuration files and replace
arch/arm/cpu/armv7/zynq/ezynq.c
arch/arm/cpu/armv7/zynq/ezynq.c
New files include:
New files include:
* include/configs/zynq_microzed.h configuration parameters for
u
-boot features, described in
* include/configs/zynq_microzed.h configuration parameters for
U
-boot features, described in
u
-boot README file
U
-boot README file
* include/configs/ezynq/ezynq_MT41K256M16RE125.h - Ezynq configuration parameters containing
* include/configs/ezynq/ezynq_MT41K256M16RE125.h - Ezynq configuration parameters containing
Micron DDR3 memory datasheet for the memory used by MicroZed board
Micron DDR3 memory datasheet for the memory used by MicroZed board
* include/configs/ezynq/ezynq_XC7Z010_1CLG400.h - Ezynq configuration parameters containing
* include/configs/ezynq/ezynq_XC7Z010_1CLG400.h - Ezynq configuration parameters containing
...
@@ -90,10 +90,10 @@ New files include:
...
@@ -90,10 +90,10 @@ New files include:
Xilinx Zynq datasheet data for the SoC used by MicroZed board
Xilinx Zynq datasheet data for the SoC used by MicroZed board
* include/configs/ezynq/zed_ezynq.h - rest of the Ezynq configuration parameters (it has the
* include/configs/ezynq/zed_ezynq.h - rest of the Ezynq configuration parameters (it has the
include lines for the 2 datasheet files listed above)
include lines for the 2 datasheet files listed above)
* makeuboot - script that configures
u
-boot for the microzed board, creates include/autoconf.mk,
* makeuboot - script that configures
U
-boot for the microzed board, creates include/autoconf.mk,
runs ezynqcfg.py to create Ezynq code (RBL header and ezynq.c), builds and links
u
-boot
runs ezynqcfg.py to create Ezynq code (RBL header and ezynq.c), builds and links
U
-boot
generating u-boot.bin, reruns ezynqcfg.py to include the length of the u-boot.bin into
generating u-boot.bin, reruns ezynqcfg.py to include the length of the u-boot.bin into
boot_head.bin and then combines boot_head.bin and u-bootbin into boot.bin with a simple
boot_head.bin and then combines boot_head.bin and u-boot
.
bin into boot.bin with a simple
'cat' command.
'cat' command.
TESTING WITHOUT U-BOOT AND CROSS-COMPILER TOOLCHAIN
TESTING WITHOUT U-BOOT AND CROSS-COMPILER TOOLCHAIN
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment