mbox series

[v1,00/16] Enable ARM Trusted Firmware for U-Boot

Message ID 20200817043431.28718-1-chee.hong.ang@intel.com
Headers show
Series Enable ARM Trusted Firmware for U-Boot | expand

Message

Ang, Chee Hong Aug. 17, 2020, 4:34 a.m. UTC
Repost of the following patchs:
https://lists.denx.de/pipermail/u-boot/2020-March/402705.html

New U-boot flow with ARM Trusted Firmware (ATF) support:
SPL (EL3) -> ATF-BL31 (EL3) -> U-Boot Proper (EL2) -> Linux (EL1)

SPL loads the u-boot.itb which consist of:
1) u-boot-nodtb.bin (U-Boot Proper image)
2) u-boot.dtb (U-Boot Proper DTB)
3) bl31.bin (ATF-BL31 image)

Supported Platform: Intel SoCFPGA 64bits (Stratix10 & Agilex)

Now, U-Boot Proper is running in non-secure mode (EL2), it invokes
SMC/PSCI calls provided by ATF to perform COLD reset, System Manager
register accesses and mailbox communications with Secure Device Manager
(SDM).

Steps to build the U-Boot with ATF support:
1) Build U-Boot
2) Build ATF BL31
3) Copy ATF BL31 binary image into U-Boot's root folder
4) "make u-boot.itb" to generate u-boot.itb

These patchsets have dependency on:
arm: socfpga: soc64: Add timeout waiting for NOC idle ACK
https://lists.denx.de/pipermail/u-boot/2020-August/423029.html

Rename Stratix10 FPGA driver and support Agilex
https://lists.denx.de/pipermail/u-boot/2020-August/422798.html

SoCFPGA mailbox driver fixes and enhancements
https://lists.denx.de/pipermail/u-boot/2020-August/423140.html

arm: socfpga: soc64: Initialize timer in SPL only
https://lists.denx.de/pipermail/u-boot/2020-July/419692.html

arm: socfpga: soc64: Remove PHY interface setup from misc arch init
https://lists.denx.de/pipermail/u-boot/2020-July/419690.html

Enable sysreset support for SoCFPGA SoC64 platforms
https://lists.denx.de/pipermail/u-boot/2020-August/422509.html

arm: socfpga: soc64: Disable CONFIG_PSCI_RESET
https://lists.denx.de/pipermail/u-boot/2020-August/423373.html

Chee Hong Ang (16):
  arm: socfpga: soc64: Remove CONFIG_OF_EMBED
  arm: socfpga: soc64: Add FIT generator script for pack itb with ATF
  arm: socfpga: Add function for checking description from FIT image
  arm: socfpga: soc64: Load FIT image with ATF support
  arm: socfpga: soc64: Override 'lowlevel_init' to support ATF
  arm: socfpga: Disable "spin-table" method for booting Linux
  arm: socfpga: soc64: Add SMC helper function for Intel SOCFPGA
    (64bits)
  arm: socfpga: soc64: Define SMC function identifiers for PSCI SiP
    services
  mmc: dwmmc: socfpga: Add ATF support for MMC driver
  net: designware: socfpga: Add ATF support for MAC driver
  arm: socfpga: soc64: Add ATF support for Reset Manager driver
  arm: socfpga: soc64: Add ATF support for FPGA reconfig driver
  arm: socfpga: mailbox: Add 'SYSTEM_RESET' PSCI support to
    mbox_reset_cold()
  arm: socfpga: soc64: SSBL shall not setup stack on OCRAM
  arm: socfpga: soc64: Skip handoff data access in SSBL
  configs: socfpga: Add defconfig for Agilex and Stratix 10 with ATF
    support

 arch/arm/mach-socfpga/Kconfig                 |   2 -
 arch/arm/mach-socfpga/Makefile                |   4 +
 arch/arm/mach-socfpga/board.c                 |  12 +-
 arch/arm/mach-socfpga/include/mach/smc_api.h  |  13 +
 arch/arm/mach-socfpga/lowlevel_init_soc64.S   |  76 +++
 arch/arm/mach-socfpga/mailbox_s10.c           |   5 +
 arch/arm/mach-socfpga/reset_manager_s10.c     |  10 +
 arch/arm/mach-socfpga/smc_api.c               |  56 ++
 arch/arm/mach-socfpga/wrap_pll_config_s10.c   |   3 +-
 board/altera/soc64/fit_spl_atf.sh             |  91 +++
 ...defconfig => socfpga_agilex_atf_defconfig} |  25 +-
 configs/socfpga_agilex_defconfig              |   1 -
 ...config => socfpga_stratix10_atf_defconfig} |  25 +-
 configs/socfpga_stratix10_defconfig           |   1 -
 drivers/fpga/intel_sdm_mb.c                   | 139 +++++
 drivers/mmc/socfpga_dw_mmc.c                  |  20 +
 drivers/net/dwmac_socfpga.c                   |  43 +-
 include/configs/socfpga_soc64_common.h        |   9 +
 include/linux/intel-smc.h                     | 573 ++++++++++++++++++
 19 files changed, 1078 insertions(+), 30 deletions(-)
 create mode 100644 arch/arm/mach-socfpga/include/mach/smc_api.h
 create mode 100644 arch/arm/mach-socfpga/lowlevel_init_soc64.S
 create mode 100644 arch/arm/mach-socfpga/smc_api.c
 create mode 100755 board/altera/soc64/fit_spl_atf.sh
 copy configs/{socfpga_agilex_defconfig => socfpga_agilex_atf_defconfig} (77%)
 copy configs/{socfpga_stratix10_defconfig => socfpga_stratix10_atf_defconfig} (80%)
 create mode 100644 include/linux/intel-smc.h

Comments

Simon Goldschmidt Aug. 17, 2020, 4:49 a.m. UTC | #1
Chee Hong Ang <chee.hong.ang@intel.com> schrieb am Mo., 17. Aug. 2020,
06:34:

> Repost of the following patchs:
> https://lists.denx.de/pipermail/u-boot/2020-March/402705.html


If this is a repost, please send as such instead of sending as a new series
v1.

Regards,
Simon


>
> New U-boot flow with ARM Trusted Firmware (ATF) support:
> SPL (EL3) -> ATF-BL31 (EL3) -> U-Boot Proper (EL2) -> Linux (EL1)
>
> SPL loads the u-boot.itb which consist of:
> 1) u-boot-nodtb.bin (U-Boot Proper image)
> 2) u-boot.dtb (U-Boot Proper DTB)
> 3) bl31.bin (ATF-BL31 image)
>
> Supported Platform: Intel SoCFPGA 64bits (Stratix10 & Agilex)
>
> Now, U-Boot Proper is running in non-secure mode (EL2), it invokes
> SMC/PSCI calls provided by ATF to perform COLD reset, System Manager
> register accesses and mailbox communications with Secure Device Manager
> (SDM).
>
> Steps to build the U-Boot with ATF support:
> 1) Build U-Boot
> 2) Build ATF BL31
> 3) Copy ATF BL31 binary image into U-Boot's root folder
> 4) "make u-boot.itb" to generate u-boot.itb
>
> These patchsets have dependency on:
> arm: socfpga: soc64: Add timeout waiting for NOC idle ACK
> https://lists.denx.de/pipermail/u-boot/2020-August/423029.html
>
> Rename Stratix10 FPGA driver and support Agilex
> https://lists.denx.de/pipermail/u-boot/2020-August/422798.html
>
> SoCFPGA mailbox driver fixes and enhancements
> https://lists.denx.de/pipermail/u-boot/2020-August/423140.html
>
> arm: socfpga: soc64: Initialize timer in SPL only
> https://lists.denx.de/pipermail/u-boot/2020-July/419692.html
>
> arm: socfpga: soc64: Remove PHY interface setup from misc arch init
> https://lists.denx.de/pipermail/u-boot/2020-July/419690.html
>
> Enable sysreset support for SoCFPGA SoC64 platforms
> https://lists.denx.de/pipermail/u-boot/2020-August/422509.html
>
> arm: socfpga: soc64: Disable CONFIG_PSCI_RESET
> https://lists.denx.de/pipermail/u-boot/2020-August/423373.html
>
> Chee Hong Ang (16):
>   arm: socfpga: soc64: Remove CONFIG_OF_EMBED
>   arm: socfpga: soc64: Add FIT generator script for pack itb with ATF
>   arm: socfpga: Add function for checking description from FIT image
>   arm: socfpga: soc64: Load FIT image with ATF support
>   arm: socfpga: soc64: Override 'lowlevel_init' to support ATF
>   arm: socfpga: Disable "spin-table" method for booting Linux
>   arm: socfpga: soc64: Add SMC helper function for Intel SOCFPGA
>     (64bits)
>   arm: socfpga: soc64: Define SMC function identifiers for PSCI SiP
>     services
>   mmc: dwmmc: socfpga: Add ATF support for MMC driver
>   net: designware: socfpga: Add ATF support for MAC driver
>   arm: socfpga: soc64: Add ATF support for Reset Manager driver
>   arm: socfpga: soc64: Add ATF support for FPGA reconfig driver
>   arm: socfpga: mailbox: Add 'SYSTEM_RESET' PSCI support to
>     mbox_reset_cold()
>   arm: socfpga: soc64: SSBL shall not setup stack on OCRAM
>   arm: socfpga: soc64: Skip handoff data access in SSBL
>   configs: socfpga: Add defconfig for Agilex and Stratix 10 with ATF
>     support
>
>  arch/arm/mach-socfpga/Kconfig                 |   2 -
>  arch/arm/mach-socfpga/Makefile                |   4 +
>  arch/arm/mach-socfpga/board.c                 |  12 +-
>  arch/arm/mach-socfpga/include/mach/smc_api.h  |  13 +
>  arch/arm/mach-socfpga/lowlevel_init_soc64.S   |  76 +++
>  arch/arm/mach-socfpga/mailbox_s10.c           |   5 +
>  arch/arm/mach-socfpga/reset_manager_s10.c     |  10 +
>  arch/arm/mach-socfpga/smc_api.c               |  56 ++
>  arch/arm/mach-socfpga/wrap_pll_config_s10.c   |   3 +-
>  board/altera/soc64/fit_spl_atf.sh             |  91 +++
>  ...defconfig => socfpga_agilex_atf_defconfig} |  25 +-
>  configs/socfpga_agilex_defconfig              |   1 -
>  ...config => socfpga_stratix10_atf_defconfig} |  25 +-
>  configs/socfpga_stratix10_defconfig           |   1 -
>  drivers/fpga/intel_sdm_mb.c                   | 139 +++++
>  drivers/mmc/socfpga_dw_mmc.c                  |  20 +
>  drivers/net/dwmac_socfpga.c                   |  43 +-
>  include/configs/socfpga_soc64_common.h        |   9 +
>  include/linux/intel-smc.h                     | 573 ++++++++++++++++++
>  19 files changed, 1078 insertions(+), 30 deletions(-)
>  create mode 100644 arch/arm/mach-socfpga/include/mach/smc_api.h
>  create mode 100644 arch/arm/mach-socfpga/lowlevel_init_soc64.S
>  create mode 100644 arch/arm/mach-socfpga/smc_api.c
>  create mode 100755 board/altera/soc64/fit_spl_atf.sh
>  copy configs/{socfpga_agilex_defconfig => socfpga_agilex_atf_defconfig}
> (77%)
>  copy configs/{socfpga_stratix10_defconfig =>
> socfpga_stratix10_atf_defconfig} (80%)
>  create mode 100644 include/linux/intel-smc.h
>
> --
> 2.19.0
>
>
Ang, Chee Hong Aug. 17, 2020, 5:46 a.m. UTC | #2
Chee Hong Ang <chee.hong.ang@intel.com<mailto:chee.hong.ang@intel.com>> schrieb am Mo., 17. Aug. 2020, 06:34:
Repost of the following patchs:
https://lists.denx.de/pipermail/u-boot/2020-March/402705.html

>  If this is a repost, please send as such instead of sending as a new series v1.

Sorry, please ignore the repost. This patch series has some new changes which I think should be new series itself.


> Regards,
> Simon



New U-boot flow with ARM Trusted Firmware (ATF) support:
SPL (EL3) -> ATF-BL31 (EL3) -> U-Boot Proper (EL2) -> Linux (EL1)

SPL loads the u-boot.itb which consist of:
1) u-boot-nodtb.bin (U-Boot Proper image)
2) u-boot.dtb (U-Boot Proper DTB)
3) bl31.bin (ATF-BL31 image)

Supported Platform: Intel SoCFPGA 64bits (Stratix10 & Agilex)

Now, U-Boot Proper is running in non-secure mode (EL2), it invokes
SMC/PSCI calls provided by ATF to perform COLD reset, System Manager
register accesses and mailbox communications with Secure Device Manager
(SDM).

Steps to build the U-Boot with ATF support:
1) Build U-Boot
2) Build ATF BL31
3) Copy ATF BL31 binary image into U-Boot's root folder
4) "make u-boot.itb" to generate u-boot.itb

These patchsets have dependency on:
arm: socfpga: soc64: Add timeout waiting for NOC idle ACK
https://lists.denx.de/pipermail/u-boot/2020-August/423029.html

Rename Stratix10 FPGA driver and support Agilex
https://lists.denx.de/pipermail/u-boot/2020-August/422798.html

SoCFPGA mailbox driver fixes and enhancements
https://lists.denx.de/pipermail/u-boot/2020-August/423140.html

arm: socfpga: soc64: Initialize timer in SPL only
https://lists.denx.de/pipermail/u-boot/2020-July/419692.html

arm: socfpga: soc64: Remove PHY interface setup from misc arch init
https://lists.denx.de/pipermail/u-boot/2020-July/419690.html

Enable sysreset support for SoCFPGA SoC64 platforms
https://lists.denx.de/pipermail/u-boot/2020-August/422509.html

arm: socfpga: soc64: Disable CONFIG_PSCI_RESET
https://lists.denx.de/pipermail/u-boot/2020-August/423373.html

Chee Hong Ang (16):
  arm: socfpga: soc64: Remove CONFIG_OF_EMBED
  arm: socfpga: soc64: Add FIT generator script for pack itb with ATF
  arm: socfpga: Add function for checking description from FIT image
  arm: socfpga: soc64: Load FIT image with ATF support
  arm: socfpga: soc64: Override 'lowlevel_init' to support ATF
  arm: socfpga: Disable "spin-table" method for booting Linux
  arm: socfpga: soc64: Add SMC helper function for Intel SOCFPGA
    (64bits)
  arm: socfpga: soc64: Define SMC function identifiers for PSCI SiP
    services
  mmc: dwmmc: socfpga: Add ATF support for MMC driver
  net: designware: socfpga: Add ATF support for MAC driver
  arm: socfpga: soc64: Add ATF support for Reset Manager driver
  arm: socfpga: soc64: Add ATF support for FPGA reconfig driver
  arm: socfpga: mailbox: Add 'SYSTEM_RESET' PSCI support to
    mbox_reset_cold()
  arm: socfpga: soc64: SSBL shall not setup stack on OCRAM
  arm: socfpga: soc64: Skip handoff data access in SSBL
  configs: socfpga: Add defconfig for Agilex and Stratix 10 with ATF
    support

 arch/arm/mach-socfpga/Kconfig                 |   2 -
 arch/arm/mach-socfpga/Makefile                |   4 +
 arch/arm/mach-socfpga/board.c                 |  12 +-
 arch/arm/mach-socfpga/include/mach/smc_api.h  |  13 +
 arch/arm/mach-socfpga/lowlevel_init_soc64.S   |  76 +++
 arch/arm/mach-socfpga/mailbox_s10.c           |   5 +
 arch/arm/mach-socfpga/reset_manager_s10.c     |  10 +
 arch/arm/mach-socfpga/smc_api.c               |  56 ++
 arch/arm/mach-socfpga/wrap_pll_config_s10.c   |   3 +-
 board/altera/soc64/fit_spl_atf.sh             |  91 +++
 ...defconfig => socfpga_agilex_atf_defconfig} |  25 +-
 configs/socfpga_agilex_defconfig              |   1 -
 ...config => socfpga_stratix10_atf_defconfig} |  25 +-
 configs/socfpga_stratix10_defconfig           |   1 -
 drivers/fpga/intel_sdm_mb.c                   | 139 +++++
 drivers/mmc/socfpga_dw_mmc.c                  |  20 +
 drivers/net/dwmac_socfpga.c                   |  43 +-
 include/configs/socfpga_soc64_common.h        |   9 +
 include/linux/intel-smc.h                     | 573 ++++++++++++++++++
 19 files changed, 1078 insertions(+), 30 deletions(-)
 create mode 100644 arch/arm/mach-socfpga/include/mach/smc_api.h
 create mode 100644 arch/arm/mach-socfpga/lowlevel_init_soc64.S
 create mode 100644 arch/arm/mach-socfpga/smc_api.c
 create mode 100755 board/altera/soc64/fit_spl_atf.sh
 copy configs/{socfpga_agilex_defconfig => socfpga_agilex_atf_defconfig} (77%)
 copy configs/{socfpga_stratix10_defconfig => socfpga_stratix10_atf_defconfig} (80%)
 create mode 100644 include/linux/intel-smc.h

--
2.19.0