| #
e1362231 |
| 12-Feb-2025 |
Soby Mathew <soby.mathew@arm.com> |
Merge changes from topic "memory_bank" into integration
* changes: fix(qemu): statically allocate bitlocks array feat(qemu): update for renamed struct memory_bank feat(fvp): increase GPT PPS t
Merge changes from topic "memory_bank" into integration
* changes: fix(qemu): statically allocate bitlocks array feat(qemu): update for renamed struct memory_bank feat(fvp): increase GPT PPS to 1TB feat(gpt): statically allocate bitlocks array chore(gpt): define PPS in platform header files feat(fvp): allocate L0 GPT at the top of SRAM feat(fvp): change size of PCIe memory region 2 feat(rmm): add PCIe IO info to Boot manifest feat(fvp): define single Root region
show more ...
|
| #
bef44f60 |
| 14-Oct-2024 |
AlexeiFedorov <Alexei.Fedorov@arm.com> |
feat(rmm): add PCIe IO info to Boot manifest
- Add PCIe and SMMUv3 related information to DTS for configurations with ENABLE_RME=1. - Add entries for PCIe IO memory regions to Boot manifest - Upda
feat(rmm): add PCIe IO info to Boot manifest
- Add PCIe and SMMUv3 related information to DTS for configurations with ENABLE_RME=1. - Add entries for PCIe IO memory regions to Boot manifest - Update RMMD_MANIFEST_VERSION_MINOR from 3 to 4. - Read PCIe related information from DTB and write it to Boot manifest. - Rename structures that used to describe DRAM layout and now describe both DRAM and PCIe IO memory regions: - ns_dram_bank -> memory_bank - ns_dram_info -> memory_info.
Change-Id: Ib75d1af86076f724f5c330074e231f1c2ba8e21d Signed-off-by: AlexeiFedorov <Alexei.Fedorov@arm.com>
show more ...
|
| #
cc3d73cc |
| 01-Oct-2024 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes I1df23bfa,Ibc85e30c into integration
* changes: fix(st): support device tree DDR sizes higher than 16Gbits for aarch64 feat(fdt-wrappers): add function to read uint64 with default
Merge changes I1df23bfa,Ibc85e30c into integration
* changes: fix(st): support device tree DDR sizes higher than 16Gbits for aarch64 feat(fdt-wrappers): add function to read uint64 with default value
show more ...
|
| #
bc8dfca6 |
| 17-May-2023 |
Nicolas Le Bayon <nicolas.le.bayon@st.com> |
feat(fdt-wrappers): add function to read uint64 with default value
Adds a new utility function fdt_read_uint64_default() to read a uint64 value with a default value, as it is already done for uint32
feat(fdt-wrappers): add function to read uint64 with default value
Adds a new utility function fdt_read_uint64_default() to read a uint64 value with a default value, as it is already done for uint32.
Signed-off-by: Nicolas Le Bayon <nicolas.le.bayon@st.com> Signed-off-by: Maxime Méré <maxime.mere@foss.st.com> Change-Id: Ibc85e30c3e4dd4b5171bdec106f4e32eb78c579f
show more ...
|
| #
acf455b4 |
| 20-Jan-2023 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge changes from topic "fix_sparse_warnings" into integration
* changes: fix(libc): remove __putchar alias fix(console): correct scopes for console symbols fix(auth): use NULL instead of 0 f
Merge changes from topic "fix_sparse_warnings" into integration
* changes: fix(libc): remove __putchar alias fix(console): correct scopes for console symbols fix(auth): use NULL instead of 0 for pointer check fix(io): compare function pointers with NULL fix(fdt-wrappers): use correct prototypes
show more ...
|
| #
e0c56fd7 |
| 09-Dec-2022 |
Yann Gautier <yann.gautier@st.com> |
fix(fdt-wrappers): use correct prototypes
These issues were triggered by sparse tool: common/fdt_wrappers.c:209:36: warning: incorrect type in assignment (different base types) expected unsigned
fix(fdt-wrappers): use correct prototypes
These issues were triggered by sparse tool: common/fdt_wrappers.c:209:36: warning: incorrect type in assignment (different base types) expected unsigned long long [usertype] got restricted fdt64_t common/fdt_wrappers.c:211:36: warning: incorrect type in assignment (different base types) expected unsigned int [usertype] got restricted fdt32_t common/fdt_wrappers.c:401:45: warning: incorrect type in argument 1 (different base types) expected restricted fdt32_t const [usertype] *prop got unsigned int const [usertype] *value common/fdt_wrappers.c:402:52: warning: incorrect type in argument 1 (different base types) expected restricted fdt32_t const [usertype] *prop got unsigned int const [usertype] * common/fdt_wrappers.c:404:66: warning: incorrect type in argument 1 (different base types) expected restricted fdt32_t const [usertype] *prop got unsigned int const [usertype] *
Signed-off-by: Yann Gautier <yann.gautier@st.com> Change-Id: I32067607cd4da1897f0ce5d8e1e2d51e044ab815
show more ...
|
| #
23bf1adb |
| 28-Apr-2022 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "qemu-measured-boot" into integration
* changes: fix(arm): fix fvp and juno build with USE_ROMLIB option feat(fdt-wrappers): add function to find or add a sudnode
|
| #
dea8ee0d |
| 08-Apr-2022 |
Ruchika Gupta <ruchika.gupta@linaro.org> |
feat(fdt-wrappers): add function to find or add a sudnode
This change adds a new utility function - `fdtw_find_or_add_subnode` to find a subnode. If the subnode is not present, the function adds it
feat(fdt-wrappers): add function to find or add a sudnode
This change adds a new utility function - `fdtw_find_or_add_subnode` to find a subnode. If the subnode is not present, the function adds it in the flattened device tree.
Signed-off-by: Ruchika Gupta <ruchika.gupta@linaro.org> Change-Id: Idf3ceddc57761ac015763d4a8b004877bcad766a
show more ...
|
| #
28623c10 |
| 08-Nov-2021 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "fix: libc: use long for 64-bit types on aarch64" into integration
|
| #
4ce3e99a |
| 25-Aug-2020 |
Scott Branden <scott.branden@broadcom.com> |
fix: libc: use long for 64-bit types on aarch64
Use long instead of long long on aarch64 for 64_t stdint types. Introduce inttypes.h to properly support printf format specifiers for fixed width type
fix: libc: use long for 64-bit types on aarch64
Use long instead of long long on aarch64 for 64_t stdint types. Introduce inttypes.h to properly support printf format specifiers for fixed width types for such change.
Change-Id: I0bca594687a996fde0a9702d7a383055b99f10a1 Signed-off-by: Scott Branden <scott.branden@broadcom.com>
show more ...
|
| #
683bb4d7 |
| 06-Nov-2021 |
André Przywara <andre.przywara@arm.com> |
Merge changes from topic "arm_fpga_auto" into integration
* changes: feat(arm_fpga): write UART baud base clock frequency into DTB feat(arm_fpga): query PL011 to learn system frequency refacto
Merge changes from topic "arm_fpga_auto" into integration
* changes: feat(arm_fpga): write UART baud base clock frequency into DTB feat(arm_fpga): query PL011 to learn system frequency refactor(arm_fpga): move command line code into separate function fix(fdt): avoid output on missing DT property feat(arm_fpga): add ITS autodetection feat(arm_fpga): determine GICR base by probing feat(gicv3): introduce GIC component identification feat(libfdt): also allow changing base address fix(arm_fpga): avoid re-linking from executable ELF file
show more ...
|
| #
49e789e3 |
| 02-Sep-2021 |
Andre Przywara <andre.przywara@arm.com> |
fix(fdt): avoid output on missing DT property
When we use our fdt_read_uint32* helper functions, we output a warning on not finding the requested property.
However non-existing properties are not t
fix(fdt): avoid output on missing DT property
When we use our fdt_read_uint32* helper functions, we output a warning on not finding the requested property.
However non-existing properties are not that uncommon, and *trying* to read such a property is actually a nice way of checking its existence.
Since we already return a specific error value in this case, the caller can easily check this and give a more specific error message, if needed. When the caller decides to properly handle the error (fallback, default value, etc), a message on the console is quite misleading.
Demote the message to a VERBOSE, so normal builds will not spam the console with pointless messages.
Change-Id: I7a279a4ee0147c5f4a0503d0a8745c6cfea58be5 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| #
e33ca7b4 |
| 29-Oct-2021 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "ck/mpmm" into integration
* changes: docs(maintainers): add Chris Kay to AMU and MPMM feat(tc): enable MPMM feat(mpmm): add support for MPMM feat(amu): enable per-c
Merge changes from topic "ck/mpmm" into integration
* changes: docs(maintainers): add Chris Kay to AMU and MPMM feat(tc): enable MPMM feat(mpmm): add support for MPMM feat(amu): enable per-core AMU auxiliary counters docs(amu): add AMU documentation refactor(amu): refactor enablement and context switching refactor(amu): detect auxiliary counters at runtime refactor(amu): detect architected counters at runtime refactor(amu): conditionally compile auxiliary counter support refactor(amu): factor out register accesses refactor(amu)!: privatize unused AMU APIs refactor(amu)!: remove `PLAT_AMU_GROUP1_COUNTERS_MASK` build(amu): introduce `amu.mk` build(fconf)!: clean up source collection feat(fdt-wrappers): add CPU enumeration utility function build(fdt-wrappers): introduce FDT wrappers makefile build(bl2): deduplicate sources build(bl1): deduplicate sources
show more ...
|
| #
2d9ea360 |
| 28-Sep-2021 |
Chris Kay <chris.kay@arm.com> |
feat(fdt-wrappers): add CPU enumeration utility function
This change adds a new utility function - `fdtw_for_each_cpu` - to invoke a callback for every CPU node listed in a flattened device tree (FD
feat(fdt-wrappers): add CPU enumeration utility function
This change adds a new utility function - `fdtw_for_each_cpu` - to invoke a callback for every CPU node listed in a flattened device tree (FDT) with the node identifier and the MPIDR of the core it describes.
Signed-off-by: Chris Kay <chris.kay@arm.com> Change-Id: Iabb5c0f0c9d11928a4a7a41cdc7d1e09aadeb2bc
show more ...
|
| #
b29dec5c |
| 28-Apr-2021 |
Mark Dykes <mark.dykes@arm.com> |
Merge "feat(fdt): introduce wrapper function to read DT UUIDs" into integration
|
| #
d13dbb6f |
| 01-Mar-2021 |
David Horstmann <david.horstmann@arm.com> |
feat(fdt): introduce wrapper function to read DT UUIDs
TF-A does not have the capability to read UUIDs in string form from the device tree. This capability is useful for readability, so add a wrappe
feat(fdt): introduce wrapper function to read DT UUIDs
TF-A does not have the capability to read UUIDs in string form from the device tree. This capability is useful for readability, so add a wrapper function, fdtw_read_uuid() to parse UUIDs from the DT. This function should parse a string of the form:
"aabbccdd-eeff-4099-8877-665544332211"
to the byte sequence in memory:
[aa bb cc dd ee ff 40 99 88 77 66 55 44 33 22 11]
Change-Id: I99a92fbeb40f4f4713f3458b36cb3863354d2bdf Signed-off-by: David Horstmann <david.horstmann@arm.com>
show more ...
|
| #
e0b3e6b3 |
| 21-May-2020 |
Mark Dykes <mardyk01@review.trustedfirmware.org> |
Merge "plat/fvp: Support for extracting UART serial node info from DT" into integration
|
| #
447870bf |
| 24-Mar-2020 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
plat/fvp: Support for extracting UART serial node info from DT
This patch introduces the populate function which leverages a new driver to extract base address and clk frequency properties of the ua
plat/fvp: Support for extracting UART serial node info from DT
This patch introduces the populate function which leverages a new driver to extract base address and clk frequency properties of the uart serial node from HW_CONFIG device tree.
This patch also introduces fdt helper API fdtw_translate_address() which helps in performing address translation.
Change-Id: I053628065ebddbde0c9cb3aa93d838619f502ee3 Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
show more ...
|
| #
85838f48 |
| 07-May-2020 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
Merge changes from topic "fdt_wrappers_rework" into integration
* changes: plat/stm32: Use generic fdt_get_stdout_node_offset() fdt/wrappers: Introduce code to find UART DT node plat/stm32: Us
Merge changes from topic "fdt_wrappers_rework" into integration
* changes: plat/stm32: Use generic fdt_get_stdout_node_offset() fdt/wrappers: Introduce code to find UART DT node plat/stm32: Use generic fdt_get_reg_props_by_name()
show more ...
|
| #
60e2e27d |
| 26-Mar-2020 |
Andre Przywara <andre.przywara@arm.com> |
fdt/wrappers: Introduce code to find UART DT node
The stdout-path property in the /chosen node of a DTB points to a device node, which is used for boot console output. On most (if not all) ARM based
fdt/wrappers: Introduce code to find UART DT node
The stdout-path property in the /chosen node of a DTB points to a device node, which is used for boot console output. On most (if not all) ARM based platforms this is the debug UART. The ST platform code contains a function to parse this property and chase down eventual aliases to learn the node offset of this UART node.
Introduce a slightly more generalised version of this ST platform function in the generic fdt_wrappers code. This will be useful for other platforms as well.
Change-Id: Ie6da47ace7833861b5e35fe8cba49835db3659a5 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| #
7ad6d362 |
| 26-Mar-2020 |
Andre Przywara <andre.przywara@arm.com> |
plat/stm32: Use generic fdt_get_reg_props_by_name()
The STM32 platform port parse DT nodes to find base address to peripherals. It does this by using its own implementation, even though this functio
plat/stm32: Use generic fdt_get_reg_props_by_name()
The STM32 platform port parse DT nodes to find base address to peripherals. It does this by using its own implementation, even though this functionality is generic and actually widely useful outside of the STM32 code.
Re-implement fdt_get_reg_props_by_name() on top of the newly introduced fdt_get_reg_props_by_index() function, and move it to fdt_wrapper.c. This is removes the assumption that #address-cells and #size-cells are always one.
Change-Id: I6d584930262c732b6e0356d98aea50b2654f789d Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| #
65808674 |
| 04-May-2020 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "fdt_wrappers_rework" into integration
* changes: arm: fconf: Fix GICv3 dynamic configuration plat/stm32: Implement fdt_read_uint32_default() as a wrapper fdt/wrappers
Merge changes from topic "fdt_wrappers_rework" into integration
* changes: arm: fconf: Fix GICv3 dynamic configuration plat/stm32: Implement fdt_read_uint32_default() as a wrapper fdt/wrappers: Replace fdtw_read_cells() implementation plat/stm32: Use generic fdt_read_uint32_array() implementation fdt/wrappers: Generalise fdtw_read_array()
show more ...
|
| #
364ad245 |
| 26-Mar-2020 |
Andre Przywara <andre.przywara@arm.com> |
arm: fconf: Fix GICv3 dynamic configuration
At the moment the fconf_populate_gicv3_config() implementation is somewhat incomplete: First it actually fails to store the retrieved information (the loc
arm: fconf: Fix GICv3 dynamic configuration
At the moment the fconf_populate_gicv3_config() implementation is somewhat incomplete: First it actually fails to store the retrieved information (the local addr[] array is going nowhere), but also it makes quite some assumptions about the device tree passed to it: it needs to use two address-cells and two size-cells, and also requires all five register regions to be specified, where actually only the first two are mandatory according to the binding (and needed by our code).
Fix this by introducing a proper generic function to retrieve "reg" property information from a DT node: We retrieve the #address-cells and #size-cells properties from the parent node, then use those to extract the right values from the "reg" property. The function takes an index to select one region of a reg property.
This is loosely based on the STM32 implementation using "reg-names", which we will subsume in a follow-up patch.
Change-Id: Ia59bfdf80aea4e36876c7b6ed4d153e303f482e8 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| #
be858cff |
| 26-Mar-2020 |
Andre Przywara <andre.przywara@arm.com> |
plat/stm32: Implement fdt_read_uint32_default() as a wrapper
The STM32 platform code uses its own set of FDT helper functions, although some of them are fairly generic.
Remove the implementation of
plat/stm32: Implement fdt_read_uint32_default() as a wrapper
The STM32 platform code uses its own set of FDT helper functions, although some of them are fairly generic.
Remove the implementation of fdt_read_uint32_default() and implement it on top of the newly introduced fdt_read_uint32() function, then convert all users over.
This also fixes two callers, which were slightly abusing the "default" semantic.
Change-Id: I570533362b4846e58dd797a92347de3e0e5abb75 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| #
ff4e6c35 |
| 26-Mar-2020 |
Andre Przywara <andre.przywara@arm.com> |
fdt/wrappers: Replace fdtw_read_cells() implementation
Our fdtw_read_cells() implementation goes to great lengths to sanity-check every parameter and result, but leaves a big hole open: The size of
fdt/wrappers: Replace fdtw_read_cells() implementation
Our fdtw_read_cells() implementation goes to great lengths to sanity-check every parameter and result, but leaves a big hole open: The size of the storage the value pointer points at needs to match the number of cells given. This can't be easily checked at compile time, since we lose the size information by using a void pointer. Regardless the current usage of this function is somewhat wrong anyways, since we use it on single-element, fixed-length properties only, for which the DT binding specifies the size. Typically we use those functions dealing with a number of cells in DT context to deal with *dynamically* sized properties, which depend on other properties (#size-cells, #clock-cells, ...), to specify the number of cells needed.
Another problem with the current implementation is the use of ambiguously sized types (uintptr_t, size_t) together with a certain expectation about their size. In general there is no relation between the length of a DT property and the bitness of the code that parses the DTB: AArch64 code could encounter 32-bit addresses (where the physical address space is limited to 4GB [1]), while AArch32 code could read 64-bit sized properties (/memory nodes on LPAE systems, [2]).
To make this more clear, fix the potential issues and also align more with other DT users (Linux and U-Boot), introduce functions to explicitly read uint32 and uint64 properties. As the other DT consumers, we do this based on the generic "read array" function. Convert all users to use either of those two new functions, and make sure we never use a pointer to anything other than uint32_t or uint64_t variables directly.
This reveals (and fixes) a bug in plat_spmd_manifest.c, where we write 4 bytes into a uint16_t variable (passed via a void pointer).
Also we change the implementation of the function to better align with other libfdt users, by using the right types (fdt32_t) and common variable names (*prop, prop_names).
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi#n874 [2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/ecx-2000.dts
Change-Id: I718de960515117ac7a3331a1b177d2ec224a3890 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|