public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [PATCH 1/4] makefile: tools: socfpgaimage: update padding flow
@ 2022-11-13 13:55 Jit Loon Lim
  2022-11-13 13:55 ` [PATCH 2/4] doc: README.socfpga: Add guide for mkimage Jit Loon Lim
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Jit Loon Lim @ 2022-11-13 13:55 UTC (permalink / raw)
  To: u-boot
  Cc: Jagan Teki, Vignesh R, Marek, Simon, Tien Fong, Kok Kiang,
	Siew Chin, Sin Hui, Raaj, Dinesh, Boon Khai, Alif, Teik Heng,
	Hazim, Jit Loon Lim, Sieu Mun Tang, Ley Foon Tan

From: Ley Foon Tan <ley.foon.tan@intel.com>

HSD #1508690657-2: The existing socfpgaimage always pads the image to the maximum size of
OCRAM size. This will break in the encryption flow where it expects the
image to be un-padded. The encryption tool will do the encryption for
the whole image and append the signature key at end of the image.
The signature key will append to beyond the size of OCRAM if the image
is padded with the maximum size before encryption.

Move the padding step from socfpgaimage to Makefile and pads with objcopy
command.

socfpgaimage will pad the image with 16 bytes aligned (including CRC word),
this is a requirement in encryption flow.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Signed-off-by: Jit Loon Lim <jit.loon.lim@intel.com>
---
 Makefile | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index ff25f92974..04914a8bec 100644
--- a/Makefile
+++ b/Makefile
@@ -1606,8 +1606,14 @@ spl/u-boot-splx4.sfp: spl/u-boot-spl.sfp FORCE
 	$(call if_changed,gensplx4)
 
 quiet_cmd_socboot = SOCBOOT $@
-cmd_socboot = cat	spl/u-boot-splx4.sfp u-boot.img > $@ || { rm -f $@; false; }
-u-boot-with-spl.sfp: spl/u-boot-splx4.sfp u-boot.img FORCE
+cmd_socboot = $(OBJCOPY) -I binary -O binary --gap-fill=0x0		\
+			--pad-to=$(CONFIG_SPL_PAD_TO)			\
+			spl/u-boot-spl.sfp spl/u-boot-spl.sfp &&	\
+		cat	spl/u-boot-spl.sfp spl/u-boot-spl.sfp		\
+			spl/u-boot-spl.sfp 				\
+			spl/u-boot-spl.sfp > spl/u-boot-splx4.sfp ;	\
+	      cat	spl/u-boot-splx4.sfp u-boot.img > $@ || rm -f $@
+u-boot-with-spl.sfp: spl/u-boot-spl.sfp u-boot.img FORCE
 	$(call if_changed,socboot)
 
 quiet_cmd_gensplpadx4 = GENSPLPADX4 $@
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/4] doc: README.socfpga: Add guide for mkimage
  2022-11-13 13:55 [PATCH 1/4] makefile: tools: socfpgaimage: update padding flow Jit Loon Lim
@ 2022-11-13 13:55 ` Jit Loon Lim
  2022-11-13 13:55 ` [PATCH 3/4] doc: README.socfpga: Update for U-boot 2022.04 Jit Loon Lim
  2022-11-13 13:55 ` [PATCH 4/4] doc: README.socfpga: Add official boot flow support info Jit Loon Lim
  2 siblings, 0 replies; 4+ messages in thread
From: Jit Loon Lim @ 2022-11-13 13:55 UTC (permalink / raw)
  To: u-boot
  Cc: Jagan Teki, Vignesh R, Marek, Simon, Tien Fong, Kok Kiang,
	Siew Chin, Sin Hui, Raaj, Dinesh, Boon Khai, Alif, Teik Heng,
	Hazim, Jit Loon Lim, Sieu Mun Tang, Ley Foon Tan

From: Ley Foon Tan <ley.foon.tan@intel.com>

HSD #1508690657-3: Add guide for mkimage for Cyclone V, Arria V and Arria 10.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Signed-off-by: Jit Loon Lim <jit.loon.lim@intel.com>
---
 doc/README.socfpga | 317 +++++++++++++++++++++++++++------------------
 1 file changed, 193 insertions(+), 124 deletions(-)

diff --git a/doc/README.socfpga b/doc/README.socfpga
index 4d73398eb9..a469cc7e41 100644
--- a/doc/README.socfpga
+++ b/doc/README.socfpga
@@ -1,178 +1,247 @@
-----------------------------------------
+---------------------------------------------------------------------
 SOCFPGA Documentation for U-Boot and SPL
-----------------------------------------
+---------------------------------------------------------------------
+
+This README is about U-Boot and SPL support for Intel SOCFPGA.
+To know more about the hardware itself, please refer to
+https://www.intel.com/content/www/us/en/products/programmable/soc.html
+
+
+Table of Contents
+---------------------------------------------------------------------
+	1. Device Family Support vs Tested Intel Quartus
+	2. Feature Support
+	3. Major Changes and Known Issues
+	4. Cyclone V / Arria V generating the handoff header files for U-Boot SPL
+	5. Arria10 generating the handoff header files for U-Boot SPL
+	6. mkimage for Cyclone V, Arria V and Arria 10
 
-This README is about U-Boot and SPL support for Altera's ARM Cortex-A9MPCore
-based SOCFPGA. To know more about the hardware itself, please refer to
-www.altera.com.
 
+1. Device Family Support vs Tested Intel Quartus
+---------------------------------------------------------------------
 
-socfpga_dw_mmc
---------------
+	Processor			SOCFPGA Device Family		Intel Quartus Prime Pro Edition		Intel Quartus Prime Standard Edition	
+	--------------------------------------------------------------------------------------------------------------------------------------------
+	Dual-core ARM Cortex-A9		Cyclone V			N/A					20.1
+					Arria V				N/A					20.1
+					Arria 10			20.1, 20.3				20.1
 
-Here are macro and detailed configuration required to enable DesignWare SDMMC
-controller support within SOCFPGA
+	Quad-core ARM Cortex-A53	Stratix 10			20.1, 20.2, 20.3			N/A
+					Agilex				20.1, 20.2, 20.3			N/A
+					Diamond Mesa			Early access				N/A
 
-#define CONFIG_SYS_MMC_MAX_BLK_COUNT	256
--> Using smaller max blk cnt to avoid flooding the limited stack in OCRAM
 
+2. Feature Support
 ---------------------------------------------------------------------
-Cyclone 5 / Arria 5 generating the handoff header files for U-Boot SPL
+
+	Hardware Feature			Cyclone V	Arria 10	Stratix 10	Agilex		Diamond Mesa
+						Arria V
+	--------------------------------------------------------------------------------------------------------------------
+	SDRAM					Yes		Yes		Yes		Yes		Yes
+	HPS bridge (LWH2F, H2F, F2S)		Yes		Yes		Yes		Yes		Yes
+	HPS cold/warm reset			Yes		Yes		Yes		Yes		Yes
+	FPGA configuration			Yes		Yes		Yes		Yes		No
+	Partial reconfiguration			No		No		Yes		No		No
+	Ethernet (Synopsys EMAC controller)	Yes		Yes		Yes		Yes		Yes
+	Synopsys GPIO controller		Yes		Yes		Yes		Yes		Yes
+	Synopsys UART controller		Yes		Yes		Yes		Yes		Yes
+	Synopsys USB controller			Yes		Yes		Yes		Yes		Yes
+	Synopsys Watchdog timer			Yes		Yes		Yes		Yes		Yes
+	Synopsys I2C master controller		Yes		No		Yes		Yes		Yes
+	Synopsys SDMMC controller		Yes		Yes		Yes		Yes		Yes
+	Cadence QSPI controller			Yes		Yes		Yes		Yes		Yes
+	Denali NAND controller			No		Yes		Yes		Yes		Yes
+	---------------------------------------------------------------------------------------------------------------------
+
+	Software Feature			Cyclone V	Arria 10	Stratix 10	Agilex		Diamond Mesa
+						Arria V
+	---------------------------------------------------------------------------------------------------------------------
+	Remote System Update (RSU)		No		No		Yes		Yes		No
+	ARM Trusted Firmware (ATF)		No		No		Yes		Yes		Yes
+	Vendor Authorized Boot (VAB)		No		No		No		No		Yes
+	---------------------------------------------------------------------------------------------------------------------
+
+
+3. Major Changes and Known Issues
 ---------------------------------------------------------------------
 
-This text is assuming quartus 16.1, but newer versions will probably work just fine too;
-verified with DE1_SOC_Linux_FB demo project (https://github.com/VCTLabs/DE1_SOC_Linux_FB).
-Updated/working projects should build using either process below.
+	3.1 Support 'vab' command to perform vendor authentication.
+
+		Command format: vab addr len
+		Authorize 'len' bytes starting at 'addr' via vendor public key
 
-Note: it *should* work from Quartus 14.0.200 onwards, however, the current vendor demo
-projects must have the IP cores updated as shown below.
+	3.2 Support SDRAM secure region in U-boot-ATF flow
 
-Rebuilding your Quartus project
--------------------------------
+		First 1 MiB of SDRAM is configured as secure region, other
+		address spaces are non-secure regions. Only software executing
+		at secure state EL3 (eg: U-boot SPL) and secure masters are
+		allowed access to secure region.
 
-Choose one of the follwing methods, either command line or GUI.
 
-Using the command line
-~~~~~~~~~~~~~~~~~~~~~~
+4. Cyclone V / Arria V generating the handoff header files for U-Boot SPL
+---------------------------------------------------------------------
 
-First run the embedded command shell, using your path to the Quartus install:
+	Rebuilding your Quartus project
+	-------------------------------
 
-  $ /path/to/intelFPGA/16.1/embedded/embedded_command_shell.sh
+	Choose one of the follwing methods, either command line or GUI.
 
-Then (if necessary) update the IP cores in the project, generate HDL code, and
-build the project:
+	Using the command line
+	~~~~~~~~~~~~~~~~~~~~~~
 
-  $ cd path/to/project/dir
-  $ qsys-generate soc_system.qsys --upgrade-ip-cores
-  $ qsys-generate soc_system.qsys --synthesis=[VERILOG|VHDL]
-  $ quartus_sh --flow compile <project name>
+	First run the embedded command shell, using your path to the Quartus install:
 
-Convert the resulting .sof file (SRAM object file) to .rbf file (Raw bit file):
+	  $ /path/to/intelFPGA/16.1/embedded/embedded_command_shell.sh
 
-  $ quartus_cpf -c <project_name>.sof soc_system.rbf
+	Then (if necessary) update the IP cores in the project, generate HDL code, and
+	build the project:
 
+	  $ cd path/to/project/dir
+	  $ qsys-generate soc_system.qsys --upgrade-ip-cores
+	  $ qsys-generate soc_system.qsys --synthesis=[VERILOG|VHDL]
+	  $ quartus_sh --flow compile <project name>
 
-Generate BSP handoff files
-~~~~~~~~~~~~~~~~~~~~~~~~~~
+	Convert the resulting .sof file (SRAM object file) to .rbf file (Raw bit file):
 
-You can run the bsp editor GUI below, or run the following command from the
-project directory:
+	  $ quartus_cpf -c <project_name>.sof soc_system.rbf
 
-  $ /path/to/bsb/tools/bsp-create-settings --type spl --bsp-dir build \
-      --preloader-settings-dir hps_isw_handoff/soc_system_hps_0/ \
-      --settings build/settings.bsp
 
-You should use the bsp "build" directory above (ie, where the settings.bsp file is)
-in the following u-boot command to update the board headers.  Once these headers
-are updated for a given project build, u-boot should be configured for the
-project board (eg, de0-nano-sockit) and then build the normal spl build.
+	Generate BSP handoff files
+	~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-Now you can skip the GUI section.
+	You can run the bsp editor GUI below, or run the following command from the
+	project directory:
 
+	  $ /path/to/bsb/tools/bsp-create-settings --type spl --bsp-dir build \
+	      --preloader-settings-dir hps_isw_handoff/soc_system_hps_0/ \
+	      --settings build/settings.bsp
 
-Using the Qsys GUI
-~~~~~~~~~~~~~~~~~~
+	You should use the bsp "build" directory above (ie, where the settings.bsp file is)
+	in the following u-boot command to update the board headers.  Once these headers
+	are updated for a given project build, u-boot should be configured for the
+	project board (eg, de0-nano-sockit) and then build the normal spl build.
 
-1. Navigate to your project directory
-2. Run Quartus II
-3. Open Project (Ctrl+J), select <project_name>.qpf
-4. Run QSys [Tools->QSys]
-  4.1 In the Open dialog, select '<project_name>.qsys'
-  4.2 In the Open System dialog, wait until completion and press 'Close'
-  4.3 In the Qsys window, click on 'Generate HDL...' in bottom right corner
-     4.3.1 In the 'Generation' window, click 'Generate'
-     4.3.2 In the 'Generate' dialog, wait until completion and click 'Close'
-  4.4 In the QSys window, click 'Finish'
-     4.4.1 In the 'Quartus II' pop up window, click 'OK'
-5. Back in Quartus II main window, do the following
-  5.1 Use Processing -> Start -> Start Analysis & Synthesis (Ctrl+K)
-  5.2 Use Processing -> Start Compilation (Ctrl+L)
+	Now you can skip the GUI section.
 
-    ... this may take some time, have patience ...
 
-6. Start the embedded command shell as shown in the previous section
-  6.1 Change directory to 'software/spl_bsp'
-  6.2 Prepare BSP by launching the BSP editor from ECS
-       => bsp-editor
-  6.3 In BSP editor
-      6.3.1 Use File -> Open
-      6.3.2 Select 'settings.bsp' file
-      6.3.3 Click Generate
-      6.3.4 Click Exit
+	Using the Qsys GUI
+	~~~~~~~~~~~~~~~~~~
 
+	1. Navigate to your project directory
+	2. Run Quartus II
+	3. Open Project (Ctrl+J), select <project_name>.qpf
+	4. Run QSys [Tools->QSys]
+	  4.1 In the Open dialog, select '<project_name>.qsys'
+	  4.2 In the Open System dialog, wait until completion and press 'Close'
+	  4.3 In the Qsys window, click on 'Generate HDL...' in bottom right corner
+	     4.3.1 In the 'Generation' window, click 'Generate'
+	     4.3.2 In the 'Generate' dialog, wait until completion and click 'Close'
+	  4.4 In the QSys window, click 'Finish'
+	     4.4.1 In the 'Quartus II' pop up window, click 'OK'
+	5. Back in Quartus II main window, do the following
+	  5.1 Use Processing -> Start -> Start Analysis & Synthesis (Ctrl+K)
+	  5.2 Use Processing -> Start Compilation (Ctrl+L)
 
-Post handoff generation
-~~~~~~~~~~~~~~~~~~~~~~~
+	    ... this may take some time, have patience ...
 
-Now that the handoff files are generated, U-Boot can be used to process
-the handoff files generated by the bsp-editor. For this, please use the
-following script from the u-boot source tree:
+	6. Start the embedded command shell as shown in the previous section
 
-  $ ./arch/arm/mach-socfpga/qts-filter.sh \
-        <soc_type> \
-        <input_qts_dir> \
-        <input_bsp_dir> \
-        <output_dir>
+	  $ /path/to/bsb/tools/bsp-create-settings --type spl --bsp-dir build \
+	      --preloader-settings-dir hps_isw_handoff/soc_system_hps_0/ \
+	      --settings build/settings.bsp
 
-Process QTS-generated files into U-Boot compatible ones.
 
-    soc_type      - Type of SoC, either 'cyclone5' or 'arria5'.
-    input_qts_dir - Directory with compiled Quartus project
-                    and containing the Quartus project file (QPF).
-    input_bsp_dir - Directory with generated bsp containing
-                    the settings.bsp file.
-    output_dir    - Directory to store the U-Boot compatible
-                    headers.
+	Post handoff generation
+	~~~~~~~~~~~~~~~~~~~~~~~
 
-This will generate (or update) the following 4 files:
+	Now that the handoff files are generated, U-Boot can be used to process
+	the handoff files generated by the bsp-editor. For this, please use the
+	following script from the u-boot source tree:
 
-  iocsr_config.h
-  pinmux_config.h
-  pll_config.h
-  sdram_config.h
+	  $ ./arch/arm/mach-socfpga/qts-filter.sh \
+		<soc_type> \
+		<input_qts_dir> \
+		<input_bsp_dir> \
+		<output_dir>
 
-These files should be copied into "qts" directory in the board directory
-(see output argument of qts-filter.sh command above).
+	Process QTS-generated files into U-Boot compatible ones.
 
-Here is an example for the DE-0 Nano SoC after the above rebuild process:
+	    soc_type      - Type of SoC, either 'cyclone5' or 'arria5'.
+	    input_qts_dir - Directory with compiled Quartus project
+			    and containing the Quartus project file (QPF).
+	    input_bsp_dir - Directory with generated bsp containing
+			    the settings.bsp file.
+	    output_dir    - Directory to store the U-Boot compatible
+			    headers.
 
-  $ ll board/terasic/de0-nano-soc/qts/
-  total 36
-  -rw-r--r-- 1 sarnold sarnold 8826 Mar 21 18:11 iocsr_config.h
-  -rw-r--r-- 1 sarnold sarnold 4398 Mar 21 18:11 pinmux_config.h
-  -rw-r--r-- 1 sarnold sarnold 3190 Mar 21 18:11 pll_config.h
-  -rw-r--r-- 1 sarnold sarnold 9022 Mar 21 18:11 sdram_config.h
+	This will generate (or update) the following 4 files:
 
-Note: file sizes will differ slightly depending on the selected board.
+	  iocsr_config.h
+	  pinmux_config.h
+	  pll_config.h
+	  sdram_config.h
 
-Now your board is ready for full mainline support including U-Boot SPL.
-The Preloader will not be needed any more.
+	These files should be copied into "qts" directory in the board directory
+	(see output argument of qts-filter.sh command above).
 
+	Here is an example for the DE-0 Nano SoC after the above rebuild process:
+
+	  $ ll board/terasic/de0-nano-soc/qts/
+	  total 36
+	  -rw-r--r-- 1 sarnold sarnold 8826 Mar 21 18:11 iocsr_config.h
+	  -rw-r--r-- 1 sarnold sarnold 4398 Mar 21 18:11 pinmux_config.h
+	  -rw-r--r-- 1 sarnold sarnold 3190 Mar 21 18:11 pll_config.h
+	  -rw-r--r-- 1 sarnold sarnold 9022 Mar 21 18:11 sdram_config.h
+
+	Note: file sizes will differ slightly depending on the selected board.
+	      For SoC devkit please refer to https://rocketboards.org/foswiki/Documentation/BuildingBootloader#Cyclone_V_SoC_45_Boot_from_SD_Card
+
+	Now your board is ready for full mainline support including U-Boot SPL.
+	The Preloader will not be needed any more.
+
+
+5. Arria10 generating the handoff header files for U-Boot SPL
 ----------------------------------------------------------
-Arria 10 generating the handoff header files for U-Boot SPL
-----------------------------------------------------------
 
-A header file for inclusion in a devicetree for Arria10 can be generated
-by the qts-filter-a10.sh script directly from the hps_isw_handoff/hps.xml
-file generated during the FPGA project compilation.  The header contains
-all PLL, clock, pinmux, and bridge configurations required.
+	A header file for inclusion in a devicetree for Arria10 can be generated
+	by the qts-filter-a10.sh script directly from the hps_isw_handoff/hps.xml
+	file generated during the FPGA project compilation.  The header contains
+	all PLL, clock, pinmux, and bridge configurations required.
+
+	Please look at the socfpga_arria10_socdk_sdmmc-u-boot.dtsi for an example
+	that includes use of the generated handoff header.
+
+	Devicetree header generation
+	~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-Please look at the socfpga_arria10_socdk_sdmmc-u-boot.dtsi for an example
-that includes use of the generated handoff header.
+	The qts-filter-a10.sh script can process the compile time genetated hps.xml
+	to create the appropriate devicetree header.
 
-Devicetree header generation
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-The qts-filter-a10.sh script can process the compile time genetated hps.xml
-to create the appropriate devicetree header.
+	  $ ./arch/arm/mach-socfpga/qts-filter-a10.sh \
+		<hps_xml> \
+		<output_file>
+
+	    hps_xml      - hps_isw_handoff/hps.xml from Quartus project
+	    output_file  - Output filename and location for header file
+
+	The script generates a single header file names <output_file> that should
+	be placed in arch/arm/dts.
+
+6. mkimage for Cyclone V, Arria V and Arria 10
+----------------------------------------------------------
+
+	The mkimage tool creates an Intel BootROM compatible image of the
+	Cyclone V SoC, Arria V SoC or Arria 10 SoC bootloader. mkimage is invoked
+	automatically in default U-boot building proccess. To create BootROM
+	compatible image manually, user can run example below:
 
+	./tools/mkimage -T <type> -d <input file> <output file>
 
-  $ ./arch/arm/mach-socfpga/qts-filter-a10.sh \
-        <hps_xml> \
-        <output_file>
+	Cyclone V and Arria V:
+	./tools/mkimage -T socfpgaimage -d spl/u-boot-spl.bin spl/u-boot-spl.sfp
 
-    hps_xml      - hps_isw_handoff/hps.xml from Quartus project
-    output_file  - Output filename and location for header file
+	Arria 10:
+	./tools/mkimage -T socfpgaimage_v1 -d spl/u-boot-spl.bin spl/u-boot-spl.sfp
 
-The script generates a single header file names <output_file> that should
-be placed in arch/arm/dts.
+	For more inforation, run "./tools/mkimage --help".
\ No newline at end of file
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 3/4] doc: README.socfpga: Update for U-boot 2022.04
  2022-11-13 13:55 [PATCH 1/4] makefile: tools: socfpgaimage: update padding flow Jit Loon Lim
  2022-11-13 13:55 ` [PATCH 2/4] doc: README.socfpga: Add guide for mkimage Jit Loon Lim
@ 2022-11-13 13:55 ` Jit Loon Lim
  2022-11-13 13:55 ` [PATCH 4/4] doc: README.socfpga: Add official boot flow support info Jit Loon Lim
  2 siblings, 0 replies; 4+ messages in thread
From: Jit Loon Lim @ 2022-11-13 13:55 UTC (permalink / raw)
  To: u-boot
  Cc: Jagan Teki, Vignesh R, Marek, Simon, Tien Fong, Kok Kiang,
	Siew Chin, Sin Hui, Raaj, Dinesh, Boon Khai, Alif, Teik Heng,
	Hazim, Jit Loon Lim, Sieu Mun Tang, Lokanathan

From: "Lokanathan, Raaj" <raaj.lokanathan@intel.com>

Update the tested Intel Quartus Software versions and highlight the
major changes in this U-boot version.

Signed-off-by: Lokanathan, Raaj <raaj.lokanathan@intel.com>
Signed-off-by: Jit Loon Lim <jit.loon.lim@intel.com>
---
 doc/README.socfpga | 104 +++++++++++++++++++++++++++++++++++----------
 1 file changed, 82 insertions(+), 22 deletions(-)

diff --git a/doc/README.socfpga b/doc/README.socfpga
index a469cc7e41..362361e014 100644
--- a/doc/README.socfpga
+++ b/doc/README.socfpga
@@ -15,6 +15,8 @@ Table of Contents
 	4. Cyclone V / Arria V generating the handoff header files for U-Boot SPL
 	5. Arria10 generating the handoff header files for U-Boot SPL
 	6. mkimage for Cyclone V, Arria V and Arria 10
+	7. SDRAM secure region in U-boot ATF flow
+	8. binman for U-boot ATF flow
 
 
 1. Device Family Support vs Tested Intel Quartus
@@ -22,19 +24,18 @@ Table of Contents
 
 	Processor			SOCFPGA Device Family		Intel Quartus Prime Pro Edition		Intel Quartus Prime Standard Edition	
 	--------------------------------------------------------------------------------------------------------------------------------------------
-	Dual-core ARM Cortex-A9		Cyclone V			N/A					20.1
-					Arria V				N/A					20.1
-					Arria 10			20.1, 20.3				20.1
+	Dual-core ARM Cortex-A9		Cyclone V			N/A					21.1
+					Arria 10			22.1					N/A
 
-	Quad-core ARM Cortex-A53	Stratix 10			20.1, 20.2, 20.3			N/A
-					Agilex				20.1, 20.2, 20.3			N/A
-					Diamond Mesa			Early access				N/A
+	Quad-core ARM Cortex-A53	Stratix 10			22.1					N/A
+					Agilex				22.1					N/A
+					eASIC N5X			22.1					N/A
 
 
 2. Feature Support
 ---------------------------------------------------------------------
 
-	Hardware Feature			Cyclone V	Arria 10	Stratix 10	Agilex		Diamond Mesa
+	Hardware Feature			Cyclone V	Arria 10	Stratix 10	Agilex		eASIC N5X
 						Arria V
 	--------------------------------------------------------------------------------------------------------------------
 	SDRAM					Yes		Yes		Yes		Yes		Yes
@@ -53,29 +54,23 @@ Table of Contents
 	Denali NAND controller			No		Yes		Yes		Yes		Yes
 	---------------------------------------------------------------------------------------------------------------------
 
-	Software Feature			Cyclone V	Arria 10	Stratix 10	Agilex		Diamond Mesa
+	Software Feature			Cyclone V	Arria 10	Stratix 10	Agilex		eASIC N5X
 						Arria V
 	---------------------------------------------------------------------------------------------------------------------
-	Remote System Update (RSU)		No		No		Yes		Yes		No
-	ARM Trusted Firmware (ATF)		No		No		Yes		Yes		Yes
+	Remote System Update (RSU) [1]		No		No		Yes		Yes		No
+	ARM Trusted Firmware (ATF) [2]		No		No		Yes		Yes		Yes
 	Vendor Authorized Boot (VAB)		No		No		No		No		Yes
 	---------------------------------------------------------------------------------------------------------------------
 
+	Notes:
+	[1] RSU SPT/CPB recovery features are supported with Quartus version 20.4 onwards
+	[2] ATF boot flow is supported with altera-opensource/arm-trusted-firmware branch:socfpga_v2.3 onwards
+
 
 3. Major Changes and Known Issues
 ---------------------------------------------------------------------
 
-	3.1 Support 'vab' command to perform vendor authentication.
-
-		Command format: vab addr len
-		Authorize 'len' bytes starting at 'addr' via vendor public key
-
-	3.2 Support SDRAM secure region in U-boot-ATF flow
-
-		First 1 MiB of SDRAM is configured as secure region, other
-		address spaces are non-secure regions. Only software executing
-		at secure state EL3 (eg: U-boot SPL) and secure masters are
-		allowed access to secure region.
+	3.1 Upgraded U-boot to version v2022.04
 
 
 4. Cyclone V / Arria V generating the handoff header files for U-Boot SPL
@@ -244,4 +239,69 @@ Table of Contents
 	Arria 10:
 	./tools/mkimage -T socfpgaimage_v1 -d spl/u-boot-spl.bin spl/u-boot-spl.sfp
 
-	For more inforation, run "./tools/mkimage --help".
\ No newline at end of file
+	For more inforation, run "./tools/mkimage --help".
+
+7. SDRAM secure region in U-boot ATF flow
+----------------------------------------------------------
+
+	In boot flow that uses ATF (ARM trusted firmware), the first 1 MiB of SDRAM
+	is configured as secure region, other address spaces are non-secure regions.
+	Only software executing	at secure state EL3 (eg: U-boot SPL, ATF) and secure
+	masters	are allowed access to the secure region.
+
+8. binman for U-boot ATF flow
+----------------------------------------------------------
+
+	Overview
+	~~~~~~~~
+
+	Before v2021.04, we provide *.sh/*.its for user to generate FIT image using
+	'mkimage' tool. To align with U-Boot community strategy to eliminate the custom
+	*.sh/*its script, we have removed all *.sh/*.its files and switched to use
+	'binman' tool to generate FIT image for all SOC64 devices (Stratix 10, Agilex,
+	eASIC N5X) started in U-boot version v2021.04.
+
+	FIT image content is defined in binman node in U-boot device tree (u-boot.dtb).
+	U-Boot v2021.04 support u-boot.itb and kernel.itb.
+
+	With "CONFIG_BINMAN" enabled in deconfig, U-boot will always run 'binman' tool
+	before end of the code compilation. If the required input files exists in U-boot
+	folder, *.itb files defined in u-boot.dtb will be generated. Otherwise, 'binman'
+	will not generate the *.itb files. You can run 'binman' tool manually via command
+	line to generate the *.itb file.
+
+	Input Files
+	~~~~~~~~~~~
+
+	Input files for *_atf_defconfig FIT image generation:
+		To generate u-boot.itb:
+		    u-boot-nodtb.bin
+		    u-boot.dtb
+		    bl31.bin
+		To generate kernel.itb:
+		    Image
+		    linux.dtb
+
+	Input files for *_vab_defconfig FIT image generation:
+		To generate u-boot.itb:
+		    signed-u-boot-nodtb.bin
+		    signed-u-boot.dtb
+		    signed-bl31.bin
+
+		To generate kernel.itb:
+		    signed-Image
+		    signed-linux.dtb
+
+	Command Line
+	~~~~~~~~~~~~
+
+	Please use the following commands to generate the u-boot.itb and kernel.itb:
+
+		$ <U-boot path>/tools/binman/binman build -u -d u-boot.dtb -O .
+			This command generate all FIT images that defined in device tree.
+
+		$ <U-boot path>/tools/binman/binman build -u -d u-boot.dtb -O . -i u-boot
+			This command generate u-boot.itb only.
+
+		$ <U-boot path>/tools/binman/binman build -u -d u-boot.dtb -O . -i kernel
+			This command generate kernel.itb only.
\ No newline at end of file
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 4/4] doc: README.socfpga: Add official boot flow support info
  2022-11-13 13:55 [PATCH 1/4] makefile: tools: socfpgaimage: update padding flow Jit Loon Lim
  2022-11-13 13:55 ` [PATCH 2/4] doc: README.socfpga: Add guide for mkimage Jit Loon Lim
  2022-11-13 13:55 ` [PATCH 3/4] doc: README.socfpga: Update for U-boot 2022.04 Jit Loon Lim
@ 2022-11-13 13:55 ` Jit Loon Lim
  2 siblings, 0 replies; 4+ messages in thread
From: Jit Loon Lim @ 2022-11-13 13:55 UTC (permalink / raw)
  To: u-boot
  Cc: Jagan Teki, Vignesh R, Marek, Simon, Tien Fong, Kok Kiang,
	Siew Chin, Sin Hui, Raaj, Dinesh, Boon Khai, Alif, Teik Heng,
	Hazim, Jit Loon Lim, Sieu Mun Tang, Yau Wai Gan

From: Yau Wai Gan <yau.wai.gan@intel.com>

The official boot-up flow for SoC FPGA 64-bit is with
Arm Trusted Firmware, ATF BL31. The non-ATF flow is
legacy and is not supported officially moving forward.
Update the README to include the information.

Signed-off-by: Yau Wai Gan <yau.wai.gan@intel.com>
Signed-off-by: Jit Loon Lim <jit.loon.lim@intel.com>
---
 doc/README.socfpga | 30 +++++++++++++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

diff --git a/doc/README.socfpga b/doc/README.socfpga
index 362361e014..3f0ce8ce7b 100644
--- a/doc/README.socfpga
+++ b/doc/README.socfpga
@@ -17,6 +17,7 @@ Table of Contents
 	6. mkimage for Cyclone V, Arria V and Arria 10
 	7. SDRAM secure region in U-boot ATF flow
 	8. binman for U-boot ATF flow
+	9. Official Boot-up Flow Support
 
 
 1. Device Family Support vs Tested Intel Quartus
@@ -304,4 +305,31 @@ Table of Contents
 			This command generate u-boot.itb only.
 
 		$ <U-boot path>/tools/binman/binman build -u -d u-boot.dtb -O . -i kernel
-			This command generate kernel.itb only.
\ No newline at end of file
+			This command generate kernel.itb only.
+
+9. Official Boot-up Flow Support
+---------------------------------------------------------------------
+	U-boot with Arm Trusted Firmware (ATF, TF-A) boot-up is the official supported
+	boot flow for Intel SoC FPGA Arm 64-bit architecture devices including
+	Stratix 10, Agilex and N5X. ATF is the secure runtime firmware running at EL3
+	which handles secure accesses from U-boot proper and Linux running at EL2 and EL1.
+
+	Official boot flow:
+		U-boot -> ATF BL31 -> U-boot proper -> Linux
+
+	Legacy (aka non ATF) boot flow:
+		U-boot -> U-boot proper -> Linux
+
+	U-boot version socfpga_v2021.07 and onwards change the defconfig name to match
+	the official boot flow. The non ATF flow defconfigs are renamed with _legacy_
+	appended and is not officially supported moving forward. See details as follow.
+
+	Legacy boot flow:
+		socfpga_agilex_defconfig    -> socfpga_agilex_legacy_defconfig
+		socfpga_n5x_defconfig       -> socfpga_n5x_legacy_defconfig
+		socfpga_stratix10_defconfig -> socfpga_stratix10_legacy_defconfig
+
+	Official boot flow:
+		socfpga_agilex_atf_defconfig    -> socfpga_agilex_defconfig
+		socfpga_n5x_atf_defconfig       -> socfpga_n5x_defconfig
+		socfpga_stratix10_atf_defconfig -> socfpga_stratix10_defconfig
\ No newline at end of file
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-11-13 13:56 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-13 13:55 [PATCH 1/4] makefile: tools: socfpgaimage: update padding flow Jit Loon Lim
2022-11-13 13:55 ` [PATCH 2/4] doc: README.socfpga: Add guide for mkimage Jit Loon Lim
2022-11-13 13:55 ` [PATCH 3/4] doc: README.socfpga: Update for U-boot 2022.04 Jit Loon Lim
2022-11-13 13:55 ` [PATCH 4/4] doc: README.socfpga: Add official boot flow support info Jit Loon Lim

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox