- 29 Sep, 2020 7 commits
-
-
Andre Przywara authored
For the Arm Ltd. FPGAs to run, we need to load several payloads into the FPGA's memory: - Some trampoline code at address 0x0, to jump to BL31's entry point. - The actual BL31 binary at the beginning of DRAM. - The (generic) DTB image to describe the hardware. - The actual non-secure payloads (kernel, ramdisks, ...) The latter is application specific, but the first three blobs are rather generic. Since the uploader tool supports ELF binaries, it seems helpful to combine these three images into one .axf file, as this also simplifies the command line. Add a post-build linker script, that combines those three bits into one ELF file, together with their specific load addresses. Include a call to "ld" with this linker script in the platform Makefile, so it will be build automatically. The result will be called "bl31.axf". Change-Id: I4a90da16fa1e0e83b51d19e5b1daf61f5a0bbfca Signed-off-by: Andre Przywara <andre.przywara@arm.com>
-
Andre Przywara authored
The application cores of the FPGAs used in Arm Ltd. start execution at address 0x0. This is the location of some (emulated) ROM area (which can be written to by the uploading tool). Since the arm_fpga port is configured to run from DRAM, we load BL31 to the beginning of DRAM (mapped at 2GB). This requires some small trampoline code in the "ROM" to jump to the BL31 entry point. To avoid some extra magic binary, add a tiny assembly file with that trivial jump instruction to the tree, so this binary can be created alongside BL31. Change-Id: I9e4439fc0f093fa24dd49a8377c9edb030fbb477 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
-
Andre Przywara authored
The FPGA images used in Arm Ltd. focus on CPU cores, so they share a common platform, with a minimal set of peripherals (interconnect, GIC, UART). This allows to support most platforms with a single devicetree file. The topology and number of CPU cores differ, but those will added at runtime, in BL31. Other adjustments (GICR size, SPE node, command line) are also done at this point. Add the common devicetree file to TF-A's build system, so it can be build together with BL31. At runtime, the resulting .dtb file should be uploaded to the address given with FPGA_PRELOADED_DTB_BASE at build time. Change-Id: I3206d6131059502ec96896e95329865452c9d83e Signed-off-by: Andre Przywara <andre.przywara@arm.com>
-
Andre Przywara authored
The Statistical Profiling Extension (SPE) is an architectural feature we can safely detect at runtime. However it still relies on one piece of platform-specific information: the interrupt line it is connected to. This requires SPE to be described in a devicetree node. Since SPE support varies with the CPU cores found on an FPGA image, we should detect the presence of SPE at runtime, and remove a potentially existing SPE PMU node from the DT. This allows to always have the SPE node in a generic devicetree file, without risking exposing it on a CPU without this feature. Change-Id: I73d83ea8509b03fe7bba20b9cce8d1335035fa31 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
-
Andre Przywara authored
The size of a GICv3 redistributor region depends on the number of cores in the system. For the ARM FPGA port, we detect the topology at runtime, and adjust the CPU DT nodes accordingly. Now the size of the GICR region must also be adjusted, or Linux will fail to initialise the GICv3. Use the newly introduced function to overwrite the GICR size entry in the GICv3 reg property. We count the number of existing cores by iterating over the GICR frames until we find the LAST bit set in TYPER. Change-Id: Ib69565600859de9b1b15ceb8495172cd26d16fce Signed-off-by: Andre Przywara <andre.przywara@arm.com>
-
Andre Przywara authored
We now have code to detect the CPU topology at runtime, and can also populate the CPU nodes in a devicetree accordingly. This is used by the ARM FPGA port, for instance. But also a GICv3 compatible interrupt controller provides MMIO frames per core, so the size of this region needs to be adjusted in the DT, to match the number of cores as well. Provide a generic function to find the GICv3 interrupt controller in the DT, then adjust the "reg" entry to match the number of detected cores. Since the size of the GICR frame per cores differs between GICv4 and GICv3, this size is supplied as a parameter to the function. The caller should determine the applicable value by either hardcoding it or by observing GICR_TYPER.VLPIS. Change-Id: Ic2a6445c2c5381a36bf24263f52fcbefad378c05 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
-
Andre Przywara authored
A GICv3 interrupt controller will be instantiated for a certain number of cores. This will result in the respective number of GICR frames. The last frame will have the "Last" bit set in its GICR_TYPER register. For platforms with a topology unknown at build time (the Arm FPGAs, for instance), we need to learn the number of used cores at runtime, to size the GICR region in the devicetree accordingly. Add a generic function that iterates over all GICR frames until it encounters one with the "Last" bit set. It returns the number of cores the GICv3 has been configured for. Change-Id: I79f033c50dfc1c275aba7122725868811abcc4f8 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
-
- 25 Sep, 2020 2 commits
-
-
Manish Pandey authored
* changes: clk: stm32mp1: fix rcc mckprot status drivers: st: add missing includes in ETZPC header mmc: st: clear some flags before sending a command mmc: st: correct retries management nand: raw_nand: fix timeout issue in nand_wait_ready mtd: spi_nor: change message level on macronix detection gpio: stm32_gpio: check GPIO node status after checking DT crypto: stm32_hash: fix issue when restarting computation
-
Olivier Deprez authored
* changes: plat: tc0: enable TZC fdts: tc0: update MHUv2 interrupt number
-
- 24 Sep, 2020 13 commits
-
-
Manish Pandey authored
-
Olivier Deprez authored
-
Sami Mujawar authored
The SGI platform defines the macro PLAT_ARM_MEM_PROT_ADDR which indicates that the platform has mitigation for cold reboot attacks. However, the flash memory used for the mem_protect region was not mapped. This results in a crash when an OS calls PSCI MEM_PROTECT. To fix this map the flash region used for mem_protect. Change-Id: Ia494f924ecfe2ce835c045689ba8f942bf0941f4 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
-
Alexei Fedorov authored
Merge "Select the Log Level for the Event Log Dump on Measured Boot at build time." into integration
-
Usama Arif authored
Change-Id: Ic2bb8482f0b602f6b7850d4fa553448bc4931edc Signed-off-by: Usama Arif <usama.arif@arm.com>
-
Etienne Carriere authored
MCKPROT hardening in RCC mandates that both bits RCC[TZEN] and RCC[MCKPROT] are enabled. This change fixes stm32mp1_rcc_is_mckprot() to check both bits, not RCC[MCKPROT] only. This change also updates stm32mp1_rcc_is_secure() for consistency. Change-Id: If1f07babdcb5677906ddbf974d9dc17255d4e174 Signed-off-by: Etienne Carriere <etienne.carriere@st.com> Signed-off-by: Yann Gautier <yann.gautier@st.com>
-
Yann Gautier authored
Depending on compiler, the issue about bool or uint*_t not defined can appear. Correct this by adding stdbool.h and stdint.h includes in etzpc.h. Change-Id: If1419dc511efbe682459fa4a776481fa52a38aa3 Signed-off-by: Yann Gautier <yann.gautier@st.com>
-
Yann Gautier authored
The ICR static flags are cleared before sending a command. The SDMMC_DCTRLR register is set to 0 if no data is expected on a given command or on the next command in case of CMD55. Change-Id: I5ae172a484218f53160e98b3684967c6960475a6 Signed-off-by: Yann Gautier <yann.gautier@st.com>
-
Yann Gautier authored
The retries number should be 3. A warning message is added in mmc_block_read(), and the code is refactored. Change-Id: I577c7dd91c451c7580b1660042cb5fe26ee3fa12 Signed-off-by: Yann Gautier <yann.gautier@st.com>
-
Lionel Debieve authored
nand_wait_ready is called with a millisecond delay but the timeout used a micro second. Fixing the conversion in the timeout call. The prototype of the function is also changed to use an unsigned int parameter. Change-Id: Ia3281be7980477dfbfdb842308d35ecd8b926fb8 Signed-off-by: Lionel Debieve <lionel.debieve@st.com> Signed-off-by: Yann Gautier <yann.gautier@st.com>
-
Lionel Debieve authored
Change the detection message from WARN to INFO when macronix NOR is detected. Change-Id: I488696f1fb75b823e85decfcd6cd32e7b36a6c2e Signed-off-by: Lionel Debieve <lionel.debieve@st.com> Signed-off-by: Yann Gautier <yann.gautier@st.com>
-
Yann Gautier authored
The call to fdt_get_status(node) has to be done after the DT is found to be valid. Fixes: 1fc2130c stm32mp1: update device tree and gpio functions Change-Id: I70f803aae3dde128a9e740f54c8837b64cb1a244 Signed-off-by: Yann Gautier <yann.gautier@st.com>
-
Lionel Debieve authored
While restarting a new hash computation, STR register is not cleared. It needs to be written before each computation. Change-Id: If65902dd21f9c139ec5da3ca87721232f73710db Signed-off-by: Lionel Debieve <lionel.debieve@st.com> Signed-off-by: Yann Gautier <yann.gautier@st.com>
-
- 23 Sep, 2020 1 commit
-
-
Lauren Wehrmeister authored
-
- 22 Sep, 2020 4 commits
-
-
Usama Arif authored
This is as part of the architecture change in TC0. Change-Id: I470241f67938e7998941d26f0e8bc05073234152 Signed-off-by: Usama Arif <usama.arif@arm.com>
-
Javier Almansa Sobrino authored
Builds in Debug mode with Measured Boot enabled might run out of trusted SRAM. This patch allows to change the Log Level at which the Measured Boot driver will dump the event log, so the latter can be accessed even on Release builds if necessary, saving space on RAM. Signed-off-by: Javier Almansa Sobrino <javier.almansasobrino@arm.com> Change-Id: I133689e313776cb3f231b774c26cbca4760fa120
-
Manish Pandey authored
-
Manish Pandey authored
-
- 21 Sep, 2020 3 commits
-
-
Manish Pandey authored
-
Olivier Deprez authored
-
Olivier Deprez authored
-
- 18 Sep, 2020 2 commits
-
-
Madhukar Pappireddy authored
From commit: 21571b1d140ae7bb44e94c0afba2ec61456b275b Made small changes to fit into TF-A project Change-Id: I991f653a7ace04f9c84bcda78ad8d7114ea18e93 Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
-
Manish Pandey authored
* changes: plat: tegra: Use generic ehf defines ehf: use common priority level enumuration
-
- 17 Sep, 2020 1 commit
-
-
Mark Dykes authored
-
- 16 Sep, 2020 2 commits
-
-
Madhukar Pappireddy authored
-
Sayanta Pattanayak authored
Remote chip ITS, SMMU, PCIe nodes are added for enabling remote chip PCIe hierarchy. Change-Id: I5b3ca733715defa38e413588ccd13d0688cba271 Signed-off-by: Sayanta Pattanayak <sayanta.pattanayak@arm.com> Signed-off-by: Khasim Syed Mohammed <khasim.mohammed@arm.com>
-
- 15 Sep, 2020 5 commits
-
-
Madhukar Pappireddy authored
-
Madhukar Pappireddy authored
* changes: plat/arm: fvp: Increase BL2 maximum size lib: fconf: Implement a parser to populate CoT
-
Mark Dykes authored
-
Olivier Deprez authored
According to [1] and in context of FF-A v1.0 a secure partition must have either one EC (migratable UP) or a number of ECs equal to the number of PEs (pinned MP). Adjust the SPMC manifest such that the number of ECs is equal to the number of PEs. [1] https://trustedfirmware-a.readthedocs.io/en/latest/components/ secure-partition-manager.html#platform-topology Signed-off-by: Olivier Deprez <olivier.deprez@arm.com> Change-Id: Ie8c7d96ae7107cb27f5b97882d8f476c18e026d4
-
Manish V Badarkhe authored
Increased BL2 maximum size when CoT descriptors are placed in device tree. Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com> Change-Id: I6466d2841e189e7f15eb4f1a8db070542893cb5b
-