/embeddedsw

Xilinx Embedded Software (embeddedsw) Development

Primary LanguageHTMLOtherNOASSERTION

embeddedsw.git - repo for standalone software

All software is version less and divided into three directories
	- lib
		contains bsp, zynq fsbl and software services like xilisf
	- license.txt
		contains information about the various licenses and copyrights
	- XilinxProcessorIPLib
		contains all drivers
	- ThirdParty
		software from third party like light weight IP stack
	- mcap
		software for using MCAP interface on Ultra Scale boards to
		program 2nd level bitstream

Every driver/lib/apps/services has these sub-directories

1. data		- contains tcl, mdd, testapp tcl or header files used in SDK
2. doc		- documentation of source code in form of pdf or html
3. examples	- illustrating different use cases of driver
4. src		- driver interface code implementing functionality of IP


<repo>
|-XilinxProcessorIPLib
|	|- drivers
|		|- uartps
|			|- data
|			|- src
|			|- doc
|			|- examples
|
|-lib
|	|- bsp
|		|- standalone
|			|- data
|			|- src
|                               |- arm
|                                     |- common
|				      |- cortexa9
|				      |- cortexa53
|				      |- cortexr5
|				|- microblaze
|				|- common
|				|- profile
|			|- doc
|		|- xilkernel
|			|- data
|			|- doc
|			|- src
|	|- sw_apps
|		|- zynq_fsbl [described below]
		|- zynqmp_fsbl [described below]
		|- zynqmp_pmufw [described below]
|	|- sw_services
|		|- xilffs
|		|- xilskey
|		|- xilmfs
|		|- xilrsa
|		|- xilflash
|		|- xilisf
|		|- xilsecure
|
|	Note - All these are libraries and utilize drivers
|
|-ThirdParty
|	|- sw_services
|        	|- lwip140
|
|-mcap
|	|-linux


Building FSBL from git:

FSBL(zynq_fsbl/zynqmp_fsbl) has 3 directories.
	1. data - It contains files for SDK
	2. src  - It contains the FSBL source files
	3. misc - It contains miscellaneous files required to
		  compile FSBL.
		  For zynq (zynq_fsbl), builds for zc702, zc706, zed and
		  microzed boards are supported.
		  For zynqmp (zynqmp_fsbl), builds for zcu102,zcu102-es2 board are
		  supported.
		  It also contains the ps7_init_gpl.[c/h] with gpl
		  header in respective board directories.


How to compile FSBL:
	Zynq
	1.Go to the Fsbl src directory "lib/sw_apps/zynq_fsbl/src/"
	2. make "BOARD=<>" "CC=<>"
		a. Values for BOARD  are zc702, zc706, zed, microzed
		b. Value for CC is arm-xilinx-eabi-gcc. Default value is also same.
	3.Give "make" to compile the fsbl with BSP. By default it is
	  built for zc702 board with arm-xilinx-eabi-gcc compiler
	4.Below are the examples for compiling for different options
		a. To generate Fsbl for zc706 board
			i.make "BOARD=zc706"
		b.To generate Fsbl for zc702 board with debug enable
		  and RSA support
			i.make "BOARD=zc702" "CFLAGS=-DFSBL_DEBUG_INFO -DRSA_SUPPORT"
		c.To generate Fsbl for zc706 board and compile with arm-xilinx-eabi-gcc
		  with MMC support
			i.make "BOARD=zc706" "CC=arm-xilinx-eabi-gcc" "CFLAGS=-DMMC_SUPPORT"

	ZynqMP
	1.Go to the Fsbl src directory "lib/sw_apps/zynqmp_fsbl/src/"
	2.If executables and other artifacts from previous FSBL build with other
	  configuration (different processor/state) are present, run
	  make clean to delete them.
	2.Give build command in the following manner.
		a. make "BOARD=<>" "PROC=<>" "A53_STATE=<>"
		a. Value for BOARD can be zcu102 or zcu102-es2. (Default is zcu102)
		b. Value for PROC can be a53 or r5. (Default is a53)
		c. Value for A53_STATE can be 64 or 32. (Default: 64)
			A53_STATE is only to be given when processor is a53.
	3.Give "make" to compile the fsbl with BSP. By default it is
	  built for zcu102 board.
	4.Below are the examples for compiling for different options
		a. To generate A53 64 bit Fsbl for zcu102 board
			i.make "BOARD=zcu102" "PROC=a53" "A53_STATE=64"
		b.To generate R5 Fsbl for zcu102 board with debug enable
			i.make "BOARD=zcu102" "PROC=r5" "CFLAGS+=-DFSBL_DEBUG_INFO"
		c.To generate A53 32 bit Fsbl for zcu102 board.
			i.make "BOARD=zcu102" "PROC=a53" "A53_STATE=32"
		d. To generate A53 64 bit Fsbl for zcu102-es2 board
			i.make "BOARD=zcu102-es2" "PROC=a53" "A53_STATE=64"
		e.To generate R5 Fsbl for zcu102-es2 board with debug enable
			i.make "BOARD=zcu102-es2" "PROC=r5" "CFLAGS+=-DFSBL_DEBUG_INFO"
		f.To generate A53 32 bit Fsbl for zcu102-es2 board.
			i.make "BOARD=zcu102-es2" "PROC=a53" "A53_STATE=32"

Building PMUFW from git:

PMUFW(zynqmp_pmufw) has 3 directories.
	1. data - It contains files for SDK
	2. src  - It contains the PMUFW source files
	3. misc - It contains miscellaneous files required to
		  compile PMUFW.


How to compile PMUFW:

	ZynqMP
	1.Go to the PMUFW src directory "lib/sw_apps/zynqmp_pmufw/src/"
	2.If executables and other artifacts from previous PMUFW build are present, run
	  make clean to delete them.
	3.Give "make" to compile the PMUFW with BSP.