- 08 Apr, 2021 3 commits
-
-
Yann Gautier authored
Create a dedicated static struct mmc_device_info mmc_info mmc_info instead of having this in stack. A boot issue has been seen on some platform when applying patch [1]. [1] 13f3c516 ("mmc:prevent accessing to the released space in case of wrong usage") Signed-off-by: Yann Gautier <yann.gautier@foss.st.com> Change-Id: I73a079715253699d903721c865d6470d58f6bd30
-
Yann Gautier authored
Create a dedicated static struct mmc_device_info mmc_info mmc_info instead of having this in stack. A boot issue has been seen on some platform when applying patch [1]. [1] 13f3c516 ("mmc:prevent accessing to the released space in case of wrong usage") Signed-off-by: Yann Gautier <yann.gautier@foss.st.com> Change-Id: Id52c0be61a30f453a551385883eaf3cbe32b04b9
-
Yann Gautier authored
Create a dedicated static struct mmc_device_info mmc_info mmc_info instead of having this in stack. A boot issue has been seen on some platform when applying patch [1]. [1] 13f3c516 ("mmc:prevent accessing to the released space in case of wrong usage") Signed-off-by: Yann Gautier <yann.gautier@foss.st.com> Change-Id: If5db8857cccec2e677b16a38eb3eeb41628a264c
-
- 06 Apr, 2021 2 commits
-
-
Heyi Guo authored
Refine the function plat_add_sp_images_load_info() by saving the previous node and only setting its next link when the current node is valid. This can reduce the check for the next node and simply the total logic. Signed-off-by: Heyi Guo <guoheyi@linux.alibaba.com> Change-Id: I4061428bf49ef0c3816ac22aaeb2e50315531f88
-
Heyi Guo authored
The traverse flow in function plat_add_sp_images_load_info() will find the last node in the main load info list, with its next_load_info==NULL. However this node is still useful and should not be overridden with SP node info. The bug will cause below error on RDN2 for spmd enabled: ERROR: Invalid NT_FW_CONFIG DTB passed Fix the bug by only setting the next_load_info of the last node in the original main node list. Signed-off-by: Heyi Guo <guoheyi@linux.alibaba.com> Change-Id: Icaee5da1f2d53b29fdd6085a8cc507446186fd57
-
- 31 Mar, 2021 1 commit
-
-
Bipin Ravi authored
Add basic support for Cortex_A78C CPU. Signed-off-by: Bipin Ravi <bipin.ravi@arm.com> Change-Id: Id9e41cbe0580a68c6412d194a5ee67940e8dae56
-
- 29 Mar, 2021 9 commits
-
-
Omkar Anand Kulkarni authored
Add the secure partition mmap table and the secure partition boot information to support secure partitions on RD-N2 platform. In addition to this, add the required memory region mapping for accessing the SoC peripherals from the secure partition. Signed-off-by: Omkar Anand Kulkarni <omkar.kulkarni@arm.com> Change-Id: I2c75760d6c8c3da3ff4885599be420e924aeaf3c
-
Aditya Angadi authored
A TZC400 controller is placed inline on DRAM channels and regulates the secure and non-secure accesses to both secure and non-secure regions of the DRAM memory. Configure each of the TZC controllers across the Chips. For use by secure software, configure the first chip's trustzone controller to protect the upper 16MB of the memory of the first DRAM block for secure accesses only. The other regions are configured for non-secure read write access. For all the remote chips, all the DRAM regions are allowed for non-secure read and write access. Signed-off-by: Aditya Angadi <aditya.angadi@arm.com> Change-Id: I809f27eccadfc23ea0ef64e2fd87f95eb8f195c1
-
Aditya Angadi authored
On a multi-chip platform, the boot CPU on the first chip programs the TZC controllers on all the remote chips. Define a memory region map for the TZC controllers for all the remote chips and include it in the BL2 memory map table. In addition to this, for SPM_MM enabled multi-chip platforms, increase the number of mmap entries and xlat table counts for EL3 execution context as well because the shared RAM regions and GIC address space of remote chips are accessed. Signed-off-by: Aditya Angadi <aditya.angadi@arm.com> Change-Id: I6f0b5fd22f9f28046451e382eef7f1f9258d88f7
-
Aditya Angadi authored
For multi-chip platforms, add a macro to define the memory regions on chip numbers >1 and its associated access permissions. These memory regions are marked with non-secure access. Signed-off-by: Aditya Angadi <aditya.angadi@arm.com> Change-Id: If3d6180fd8ea61f45147c39d3140d694abf06617
-
Thomas Abraham authored
Allow the access of system registers and nor2 flash memory region from s-el0. This allows the secure parititions residing at s-el0 to access these memory regions. Signed-off-by: Thomas Abraham <thomas.abraham@arm.com> Change-Id: I3887a86770de806323fbde0d20fdc96eec6e0c3c
-
Thomas Abraham authored
Define a default DMC-620 TZC memory region configuration and use it to specify the TZC memory regions on sgi575, rdn1edge and rde1edge platforms. The default DMC-620 TZC memory regions are defined considering the support for secure paritition as well. Signed-off-by: Thomas Abraham <thomas.abraham@arm.com> Change-Id: Iedee3e57d0d3de5b65321444da51ec990d3702db
-
Thomas Abraham authored
Remove the 'ARM_' prefix from the macros defining the CPER buffer memory and replace it with 'CSS_SGI_' prefix. These macros are applicable only for platforms supported within plat/sgi. In addition to this, ensure that these macros are defined only if the RAS_EXTENSION build option is enabled. Signed-off-by: Thomas Abraham <thomas.abraham@arm.com> Change-Id: I44df42cded18d9d3a4cb13e5c990e9ab3194daee
-
Thomas Abraham authored
The macros defining the SMC function ids for DMC-620 error handling are listed in the sgi_base_platform_def.h header file. But these macros are not applicable for all platforms supported under plat/sgi. So move these macro definitions to sgi_ras.c file in which these are consumed. While at it, remove the AArch32 and error injection function ids as these are unused. Signed-off-by: Thomas Abraham <thomas.abraham@arm.com> Change-Id: I249b54bf4c1b1694188a1e3b297345b942f16bc9
-
Thomas Abraham authored
The macros specific to SDEI defined in the sgi_base_platform_def.h are not applicable for all the platforms supported by plat/sgi. So refactor the SDEI specific macros into a new header file and include this file on only on platforms it is applicable on. Signed-off-by: Thomas Abraham <thomas.abraham@arm.com> Change-Id: I0cb7125334f02a21cae1837cdfd765c16ab50bf5
-
- 26 Mar, 2021 2 commits
-
-
Bharat Gooty authored
Broadcom I2C controller driver. Follwoing API's are supported:- - i2c_init() Intialize ethe I2C controller - i2c_probe() - i2c_set_bus_speed() Set the I2C bus speed - i2c_get_bus_speed() Get the current bus speed - i2c_recv_byte() Receive one byte of data. - i2c_send_byte() Send one byteof data - i2c_read_byte() Read single byte of data - i2c_read() Read multiple bytes of data - i2c_write_byte Write single byte of data - i2c_write() Write multiple bytes of data This driver is verified by reading the DDR SPD data. Signed-off-by: Bharat Gooty <bharat.gooty@broadcom.com> Change-Id: I2d7fe53950e8b12fab19d0293020523ff8b74e13
-
Andre Przywara authored
When the BL31 for the Allwinner H616 runs in DRAM, we need to make sure we tell the non-secure world about the memory region it uses. Add a reserved-memory node to the DT, which covers the area that BL31 could occupy. The "no-map" property will prevent OSes from mapping the area, so there would be no speculative accesses. Change-Id: I808f3e1a8089da53bbe4fc6435a808e9159831e1 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
-
- 25 Mar, 2021 6 commits
-
-
Andre Przywara authored
The new Allwinner H616 SoC lacks the management controller and the secure SRAM A2, so we need to tweak the memory map quite substantially: We run BL31 in DRAM. Since the DRAM starts at 1GB, we cannot use our compressed virtual address space (max 256MB) anymore, so we revert to the full 32bit VA space and use a flat mapping throughout all of it. The missing controller also means we need to always use the native PSCI ops, using the CPUIDLE hardware, as SCPI and suspend depend on the ARISC. Change-Id: I77169b452cb7f5dc2ef734f3fc6e5d931749141d Signed-off-by: Andre Przywara <andre.przywara@arm.com>
-
Andre Przywara authored
Change-Id: I557fd05401e24204952135cf3ca26479a43ad1f1 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
-
Andre Przywara authored
In preparation for changing the memory map, express the locations of the various code and data pieces more dynamically, allowing SoCs to override the memmap later. Also prepare for the SCP region to become optional. No functional change. Change-Id: I7ac01e309be2f23bde2ac2050d8d5b5e3d6efea2 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
-
Andre Przywara authored
The code to power the current core off when SCPI is not available is now different for the two supported SoC families. To make adding new platforms easier, move sunxi_cpu_power_off_self() into the SoC directory, so we don't need to carry definitions for both methods for all SoCs. On the H6 we just need to trigger the CPUIDLE hardware, so can get rid of all the code to program the ARISC, which is now only needed for the A64 version. Change-Id: Id2a1ac7dcb375e2fd021b441575ce86b4d7edf2c Signed-off-by: Andre Przywara <andre.przywara@arm.com>
-
Andre Przywara authored
For the existing SoCs we support, we use SEPARATE_NOBITS_REGION, to move some parts of the data into separate memory regions (to save on the SRAM A2 we are loaded into). For the upcoming H616 platform this is of no concern (we run in DRAM), so make this flag a platform choice instead. Change-Id: Ic01d49578c6274660f8f112bd23680d3eca3be7a Signed-off-by: Andre Przywara <andre.przywara@arm.com>
-
Andre Przywara authored
The upcoming refactoring to support the new H616 SoCs will push the A64 build over the edge, by using more than the 48KB of SRAM available. To reduce the code size, set some libfdt options that aim to reduce sanity checks (for saving code space): - ASSUME_LATEST: only allow v17 DTBs (as created by dtc) - ASSUME_NO_ROLLBACK: don't prepare for failed DT additions - ASSUME_LIBFDT_ORDER: assume sane ordering, as done by dtc Change-Id: I12c93ec09e7587c5ae71e54947f817c32ce5fd6d Signed-off-by: Andre Przywara <andre.przywara@arm.com>
-
- 24 Mar, 2021 17 commits
-
-
johpow01 authored
Add basic support for Makalu ELP processor core. Signed-off-by: John Powell <john.powell@arm.com> Change-Id: I7b1ddbb8dd43326ecb8ff188f6f8fcf239826a93
-
Pankaj Gupta authored
New NXP platform lx2160a-qds: - Based SoC lx2160a - Board specific tuning for DDR init. - Board specific Flash details. Signed-off-by: Udit Agarwal <udit.agarwal@nxp.com> Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com> Change-Id: I500ddbe9e56c4af5f955da6ecbd4ddc5fbe89a12
-
Pankaj Gupta authored
New NXP platform lx2160a-rdb(Reference Design Board): - Based SoC lx2160a - Board specific tuning for DDR init. - Board specific Flash details. Signed-off-by: Udit Agarwal <udit.agarwal@nxp.com> Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com> Change-Id: I9c10dac9d5e67d44a2d94a7a27812220fdcc6ae3
-
Pankaj Gupta authored
New NXP platform lx2162aqds: - Based SoC lx2160a - Board specific tuning for DDR init. - Board specific Flash details. Signed-off-by: Udit Agarwal <udit.agarwal@nxp.com> Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com> Change-Id: I53bfff85398313082db77c77625cb2d40cd9b1b1
-
Pankaj Gupta authored
SoC erratas are handled as part of this commit. Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com> Change-Id: I06f7594d19cc7fc89fe036a8a255300458cb36dd
-
Pankaj Gupta authored
- NXP SoC lx2160a needs additional ddr_fip.bin. - There are three types of ddr image that can be created: -- ddr_fip.mk for creating fip_ddr.bin image for normal boot. -- ddr_fip_sb.mk for creating fip_ddr_sec.bin image for NXP CSF based CoT/secure boot. -- ddr_fip_tbbr.mk for creating fip_ddr_sec.bin image for MBEDTLS CoT/secure boot. Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com> Change-Id: I24bff8d489f72da99f64cb79b2114faa9423ce8c
-
Pankaj Gupta authored
* NXP SoC is 16 A-72 core SoC. * SoC specific defines are defined in: - soc.def - soc.h * Called for BL2 and BL31 setup, SoC specific setup are implemented in: - soc.c * platform specific helper functions implemented at: - aarch64/lx2160a_helpers.S * platform specific functions used by 'plat/nxp/commpon/psci', etc. are implemented at: - aarch64/lx2160a.S * platform specific implementation for handling PSCI_SYSTEM_RESET2: - aarch64/lx2160a_warm_rst.S Signed-off-by: rocket <rod.dorris@nxp.com> Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com> Change-Id: Ib40086f9d9079ed9b22967baff518c6df9f408b8
-
Pankaj Gupta authored
- Default header files for: -- plat/nxp/soc-lxxxx/include/soc.h uses: --- soc_default_base_addr.h --- soc_default_base_macros.h -- plat/nxp/soc-lxxxx/<$PLAT>/platform_def.h uses: --- plat_default_def.h: Every macro define can be overidden. -- include/common/tbbr/tbbr_img_def.h uses: --- plat_tbbr_img_def.h: platform specific new FIP image macros. Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com> Change-Id: Ic50003e27e87891be3cd18bdb4e14a1c7272d492
-
Pankaj Gupta authored
For NXP platforms: - Setup files for BL2 and BL31 - Other supporting files. Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com> Change-Id: I36a1183a0652701bdede9e02d41eb976accbb017
-
Pankaj Gupta authored
NXP: Added warm reset handler to handle SMC PSCI_SYSTEM_RESET2 raised from kernel (> 5.4). As part of first cold boot, DDR training data is stored in NV storage. As part of this SMC handling, following things are done: - DDR is put in self-refresh mode to retain the content of DDR. - Reset cause is saved. - Reset is triggered. On next boot to last warm-reset, DDR training is restored from the NV storage. Signed-off-by: Ashish Kumar <ashish.kumar@nxp.com> Signed-off-by: Kuldeep Singh <kuldeep.singh@nxp.com> Signed-off-by: Udit Agarwal <udit.agarwal@nxp.com> Signed-off-by: Priyanka Singh <priyanka.singh@nxp.com> Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com> Change-Id: I8e4fb0824887af49e959c93825e2ab0ba887fc9d
-
Pankaj Gupta authored
NV storage API(s) for NXP platforms, supported on: - flexspi-nor - SecMon - General Purpose Registers at Low-Power section, retains their content if backed by coined battery. Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com> Change-Id: Id65dee4f28e7d6d2024407030039de33ebe0fa05
-
Pankaj Gupta authored
NXP SoC supports two TBB mode: - MBED_TLS based -- ROTK key hash is placed as part of the BL2 binary at section: --- .rodata.nxp_rotpk_hash -- Supporting non-volatile counter via SFP. -- platform function used by TFA common authentication code. - NXP CSF based -- ROTK key deployment vary from MBEDTLS Signed-off-by: Ruchika Gupta <ruchika.gupta@nxp.com> Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com> Change-Id: Ib0f0bf024fd93de906c5d4f609383ae9e02b2fbc
-
Pankaj Gupta authored
All of the NXP SoC, needs fip_fuse image to be loaded additionally as part of preparation for Trusted board boot - fip_fuse.bin contains an image for auto fuse provisioning. - Auto fuse provisioning is based on the input file with values for: -- SRK Hash -- OTPMK -- misc. refer board manual for more details. Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com> Change-Id: I26d4024fefe352d967ca120191f784f1f47aa9d1
-
Pankaj Gupta authored
Few of the NXP SoC like LX2160A, needs ddr-phy images to be loaded additionally before DDR initialization - fip_ddr.bin is created containing upto 6 ddr images. - With TRUSTED_BOARD_BOOT = 1, fip_ddr.bin is authenticated first before loading and starting DDR initialization. - To successfully compile this image, platform-defined header files needs to be defined: -- include/common/tbbr/tbbr_img_def.h uses: --- plat_tbbr_img_def.h: platform specific new FIP image macros. -- include/tools/share/firmware_image_package.h uses: --- plat_def_fip_uuid.h: platform specific new UUID macros. ---- Added UUID for DDR images to create FIP-DDR. ---- Added UUID for FUSE provisioning images to create FIP-fuse. -- include/tools/share/tbbr_oid.h uses: --- platform_oid.h: platform specific new OID macros. Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com> Change-Id: Icbcf1673a8c398aae98680b5016f4276b4864b91
-
Pankaj Gupta authored
function load_img(), is dependent on: - Recursively calling load_image() defined in common/bl_common.c - for each image in the fip. Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com> Change-Id: I57ca4b666cd1b0b992b7c0fc2a4260b558c0e2a9
-
Pankaj Gupta authored
SMC call handling at EL3 due SIP and SVC calls. Signed-off-by: rocket <rod.dorris@nxp.com> Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com> Change-Id: If86ee43477fc3b6116623928a3299d4e9015df8c
-
Pankaj Gupta authored
Signed-off-by: rocket <rod.dorris@nxp.com> Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com> Change-Id: I9853263ed38fb2a9f04b9dc7d768942e32074719
-