| #
bded41d9 |
| 14-Oct-2025 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes I769ac07f,Ia52ad5ed,I5d22ff86,Iea14d49c into integration
* changes: fix(build): prevent races on the build directory refactor(build): make it standard to request a custom linker sc
Merge changes I769ac07f,Ia52ad5ed,I5d22ff86,Iea14d49c into integration
* changes: fix(build): prevent races on the build directory refactor(build): make it standard to request a custom linker script perf(bl32): don't call cm_get_context() unnecessarily refactor(bl1): simplify context getting and setting
show more ...
|
| #
5be66449 |
| 08-Oct-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
refactor(build): make it standard to request a custom linker script
Hoist the add_define to a global location so that platforms only have to declare its usage. Fix up #ifdef to #if since we will now
refactor(build): make it standard to request a custom linker script
Hoist the add_define to a global location so that platforms only have to declare its usage. Fix up #ifdef to #if since we will now always pass a definition.
Change-Id: Ia52ad5ed4dcbd157d139c8ca2fb3d35b32343b93 Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| #
f2804063 |
| 03-Sep-2024 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge "fix(fdt): reserved memory: detect existing region" into integration
|
| #
42488064 |
| 21-Mar-2024 |
Andre Przywara <andre.przywara@arm.com> |
fix(fdt): reserved memory: detect existing region
When fdt_add_reserved_memory() is called to add a memory region, we unconditionally add a node for that region. However there might be an existing r
fix(fdt): reserved memory: detect existing region
When fdt_add_reserved_memory() is called to add a memory region, we unconditionally add a node for that region. However there might be an existing region node in the DT already, or there might be an overlapping region. The Linux kernel will complain in those cases.
Cover the simple case of the region already existing in the DT, as this is what we actually see on the Allwinner H616: The mainline DT contains a node reserving the memory for TF-A, in case the DT changed by TF-A itself is not given to the kernel. Our code always adds a region, making the kernel complain - albeit without further consequences.
Covering all cases of overlapping regions would blow up the generic DT code too much, so just add a simple check for an existing region completely containing the to-be-added region, simply bailing out in this case.
This prevents the kernel warning for the Allwinner H616.
This code requires a function from fdt_wrappers.c, so we have to include that file for platforms that use the fdt_add_reserved_memory() function (rpi4 and versal2).
Change-Id: I98404889163316addbb42130d7177f1a21c8be06 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| #
4d884235 |
| 09-Jul-2024 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge "feat(rpi5): add PCI SMCCC support" into integration
|
| #
5318255f |
| 22-Mar-2024 |
André Przywara <andre.przywara@arm.com> |
Merge changes Id72a0370,I2bafba38,I2bd48441,I164c579c,Iddf8aea0, ... into integration
* changes: feat(rpi): add Raspberry Pi 5 support fix(rpi): consider MT when calculating core index from MPID
Merge changes Id72a0370,I2bafba38,I2bd48441,I164c579c,Iddf8aea0, ... into integration
* changes: feat(rpi): add Raspberry Pi 5 support fix(rpi): consider MT when calculating core index from MPIDR refactor(rpi): move register definitions out of rpi_hw.h refactor(rpi): add platform macro for the crash UART base address refactor(rpi): split out console registration logic refactor(rpi): move more platform-specific code into common
show more ...
|
| #
682607fb |
| 06-Mar-2024 |
Mario Bălănică <mariobalanica02@gmail.com> |
feat(rpi5): add PCI SMCCC support
BCM2712 changes: - support all 3 PCIe RCs / segments. - don't check for link up: the RC can now be configured to fabricate all-ones AXI OKAY responses, so no mo
feat(rpi5): add PCI SMCCC support
BCM2712 changes: - support all 3 PCIe RCs / segments. - don't check for link up: the RC can now be configured to fabricate all-ones AXI OKAY responses, so no more Arm SErrors when the link is down (or other conditions).
Also, limit bus 0 to devfn 0 as accesses beyond that may result in lock-ups.
Change-Id: Ic64785cd68b22571c6638fc3f771703113bc76f6 Signed-off-by: Mario Bălănică <mariobalanica02@gmail.com>
show more ...
|
| #
b5029782 |
| 01-Dec-2023 |
Mario Bălănică <mariobalanica02@gmail.com> |
refactor(rpi): split out console registration logic
Detection of the UART in use and GPIO code only apply to RPi 3 and 4.
RPi 5 has a dedicated PL011 debug port.
Change-Id: Iddf8aea01278e2b79b4e7c
refactor(rpi): split out console registration logic
Detection of the UART in use and GPIO code only apply to RPi 3 and 4.
RPi 5 has a dedicated PL011 debug port.
Change-Id: Iddf8aea01278e2b79b4e7c476740f1add8c419f0 Signed-off-by: Mario Bălănică <mariobalanica02@gmail.com>
show more ...
|
| #
97ef5305 |
| 01-Dec-2023 |
Mario Bălănică <mariobalanica02@gmail.com> |
refactor(rpi): move more platform-specific code into common
In preparation for RPi 5 support, which will reuse most of the RPi 4 logic except for DTB patching.
Change-Id: I6f6ef96933711a1798757a338
refactor(rpi): move more platform-specific code into common
In preparation for RPi 5 support, which will reuse most of the RPi 4 logic except for DTB patching.
Change-Id: I6f6ef96933711a1798757a3389adae1b8ee3de6c Signed-off-by: Mario Bălănică <mariobalanica02@gmail.com>
show more ...
|
| #
ef685219 |
| 20-Feb-2024 |
Mark Dykes <mark.dykes@arm.com> |
Merge "build: use toolchain identifiers in conditions" into integration
|
| #
60dd8069 |
| 20-Feb-2024 |
Mark Dykes <mark.dykes@arm.com> |
Merge "build: use new toolchain variables for tools" into integration
|
| #
8620bd0b |
| 04-Dec-2023 |
Chris Kay <chris.kay@arm.com> |
build: use toolchain identifiers in conditions
The toolchain refactor change introduces the `${toolchain}-${tool}-id` variables, which provide identifiers for all of the toolchain tools used by the
build: use toolchain identifiers in conditions
The toolchain refactor change introduces the `${toolchain}-${tool}-id` variables, which provide identifiers for all of the toolchain tools used by the build system. This change replaces the various conditions that are in use to identify these tools based on the path with a standard set of comparisons against these new identifier variables.
Change-Id: Ib60e592359fa6e415c19a012e68d660f87436ca7 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| #
ffb77421 |
| 04-Dec-2023 |
Chris Kay <chris.kay@arm.com> |
build: use new toolchain variables for tools
This change migrates the values of `CC`, `CPP`, `AS` and other toolchain variables to the new `$(toolchain)-$(tool)` variables, which were introduced by
build: use new toolchain variables for tools
This change migrates the values of `CC`, `CPP`, `AS` and other toolchain variables to the new `$(toolchain)-$(tool)` variables, which were introduced by the toolchain refactor patch. These variables should be equivalent to the values that they're replacing.
Change-Id: I644fe4ce82ef1894bed129ddb4b6ab94fb04985d Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| #
fe1021f1 |
| 28-Jul-2021 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "rpi4: enable RPi4 PCI SMC conduit" into integration
|
| #
6e63cdc5 |
| 18-Nov-2020 |
Jeremy Linton <jeremy.linton@arm.com> |
rpi4: enable RPi4 PCI SMC conduit
Now that we have adjusted the address map, added the SMC conduit code, and the RPi4 PCI callbacks, lets add the flags to enable everything in the build.
By default
rpi4: enable RPi4 PCI SMC conduit
Now that we have adjusted the address map, added the SMC conduit code, and the RPi4 PCI callbacks, lets add the flags to enable everything in the build.
By default this service is disabled because the expectation is that its only useful in a UEFI+ACPI environment.
Signed-off-by: Jeremy Linton <jeremy.linton@arm.com> Change-Id: I2a3cac6d63ba8119d3b711db121185816b89f8a2
show more ...
|
| #
b59444ea |
| 24-Mar-2021 |
André Przywara <andre.przywara@arm.com> |
Merge "rpi4: Switch to gicv2.mk and GICV2_SOURCES" into integration
|
| #
830c7657 |
| 22-Mar-2021 |
Jan Kiszka <jan.kiszka@siemens.com> |
rpi4: Switch to gicv2.mk and GICV2_SOURCES
Addresses the deprecation warning produced by drivers/arm/gic/common/gic_common.c.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Change-Id: I1a3ff483
rpi4: Switch to gicv2.mk and GICV2_SOURCES
Addresses the deprecation warning produced by drivers/arm/gic/common/gic_common.c.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Change-Id: I1a3ff4835d0f94c74b405db10622e99875ded82b
show more ...
|
| #
7c49d398 |
| 01-Apr-2020 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "rpi_cpu_off" into integration
* changes: rpi: Implement PSCI CPU_OFF rpi: rpi3_pwr_domain_on(): Use MMIO accessor rpi: move plat_helpers.S to common
|
| #
07aa0c7e |
| 12-Mar-2020 |
Andre Przywara <andre.przywara@arm.com> |
rpi: move plat_helpers.S to common
The plat_helpers.S file was almost identical between its RPi3 and RPi4 versions. Unify the two files, moving it into the common/ directory.
This adds a plat_rpi_g
rpi: move plat_helpers.S to common
The plat_helpers.S file was almost identical between its RPi3 and RPi4 versions. Unify the two files, moving it into the common/ directory.
This adds a plat_rpi_get_model() function, which can be used to trigger RPi4 specific action, detected at runtime. We use that to do the RPi4 specific L2 cache initialisation.
Change-Id: I2295704fd6dde7c76fe83b6d98c7bf998d4bf074 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| #
c9796852 |
| 18-Mar-2020 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
Merge changes from topic "rpix-multi-console" into integration
* changes: rpi: docs: Update maintainers file to new RPi directory scheme rpi: console: Autodetect Mini-UART vs. PL011 configuratio
Merge changes from topic "rpix-multi-console" into integration
* changes: rpi: docs: Update maintainers file to new RPi directory scheme rpi: console: Autodetect Mini-UART vs. PL011 configuration rpi3: build: Include GPIO driver in all BL stages rpi: Allow using PL011 UART for RPi3/RPi4 rpi3: console: Use same "clock-less" setup scheme as RPi4 rpi3: gpio: Simplify GPIO setup
show more ...
|
| #
9cc3fa1b |
| 11-Mar-2020 |
Andre Przywara <andre.przywara@arm.com> |
rpi: console: Autodetect Mini-UART vs. PL011 configuration
The Raspberry Pi has two different UART devices pin-muxed to GPIO 14&15: One ARM PL011 one and the 8250 compatible "Mini-UART". A dtoverlay
rpi: console: Autodetect Mini-UART vs. PL011 configuration
The Raspberry Pi has two different UART devices pin-muxed to GPIO 14&15: One ARM PL011 one and the 8250 compatible "Mini-UART". A dtoverlay parameter in config.txt will tell the firmware to switch between the two: it will setup the right clocks and will configure the pinmuxes accordingly.
To autodetect the user's choice, we read the pinmux register and check its setting: ALT5 (0x2) means the Mini-UART is used, ALT0 (0x4) points to the PL011. Based on that we select the UART driver to initialise.
This will allow console output in any case.
Change-Id: I620d3ce68de6c6576599f2a405636020e1fd1376 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| #
5e6d821c |
| 10-Mar-2020 |
Andre Przywara <andre.przywara@arm.com> |
rpi: Allow using PL011 UART for RPi3/RPi4
The Broadcom 283x SoCs feature multiple UARTs: the mostly used "Mini-UART", which is an 8250 compatible IP, and at least one PL011. While the 8250 is usuall
rpi: Allow using PL011 UART for RPi3/RPi4
The Broadcom 283x SoCs feature multiple UARTs: the mostly used "Mini-UART", which is an 8250 compatible IP, and at least one PL011. While the 8250 is usually used for serial console purposes, it suffers from a design flaw, where its clock depends on the VPU clock, which can change at runtime. This will reliably mess up the baud rate. To avoid this problem, people might choose to use the PL011 UART for the serial console, which is pin-mux'ed to the very same GPIO pins. This can be done by adding "miniuart-bt" to the "dtoverlay=" line in config.txt.
To prepare for this situation, use the newly gained freedom of sharing one console_t pointer across different UART drivers, to introduce the option of choosing the PL011 for the console.
This is for now hard-coded to choose the Mini-UART by default. A follow-up patch will introduce automatic detection.
Signed-off-by: Andre Przywara <andre.przywara@arm.com> Change-Id: I8cf2522151e09ff4ff94a6d396aec6fc4b091a05
show more ...
|
| #
17b0bb6c |
| 27-Sep-2019 |
Soby Mathew <soby.mathew@arm.com> |
Merge changes from topic "raspberry-pi-4-support" into integration
* changes: rpi4: Add initial documentation file rpi4: Add stdout-path to device tree rpi4: Add GIC maintenance interrupt to G
Merge changes from topic "raspberry-pi-4-support" into integration
* changes: rpi4: Add initial documentation file rpi4: Add stdout-path to device tree rpi4: Add GIC maintenance interrupt to GIC DT node rpi4: Cleanup memory regions, move pens to first page rpi4: Reserve resident BL31 region from non-secure world rpi4: Amend DTB to advertise PSCI rpi4: Determine BL33 entry point at runtime rpi4: Accommodate "armstub8.bin" header at the beginning of BL31 image Add basic support for Raspberry Pi 4 rpi3: Allow runtime determination of UART base clock rate FDT helper functions: Respect architecture in PSCI function IDs FDT helper functions: Add function documentation
show more ...
|
| #
f67fa69c |
| 11-Jul-2019 |
Andre Przywara <andre.przywara@arm.com> |
rpi4: Amend DTB to advertise PSCI
The device tree provided by the official Raspberry Pi firmware uses spin tables for SMP bringup.
One of the benefit of having TF-A is that it provides PSCI service
rpi4: Amend DTB to advertise PSCI
The device tree provided by the official Raspberry Pi firmware uses spin tables for SMP bringup.
One of the benefit of having TF-A is that it provides PSCI services, so let's rewrite the DTB to advertise PSCI instead of spin tables. This uses the (newly exported) routine from the QEMU platform port.
Change-Id: Ifddcb14041ca253a333f8c2d5e97a42db152470c Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| #
448fb352 |
| 11-Jul-2019 |
Andre Przywara <andre.przywara@arm.com> |
rpi4: Determine BL33 entry point at runtime
Now that we have the armstub magic value in place, the GPU firmware will write the kernel load address (and DTB address) into our special page, so we can
rpi4: Determine BL33 entry point at runtime
Now that we have the armstub magic value in place, the GPU firmware will write the kernel load address (and DTB address) into our special page, so we can always easily access the actual location without hardcoding any addresses into the BL31 image.
Make the compile-time defined PRELOADED_BL33_BASE macro optional, and read the BL33 entry point from the magic location, if the macro was not defined. We do the same for the DTB address.
This also splits the currently "common" definition of plat_get_ns_image_entrypoint() to be separate between RPi3 and RPi4.
Change-Id: I6f26c0adc6fce2df47786b271c490928b4529abb Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|