History log of /rk3399_ARM-atf/common/fdt_wrappers.c (Results 1 – 25 of 36)
Revision Date Author Comments
# 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 ...


12