| 07354cfb | 24-Jul-2024 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge "fix(xlat): correct attribute retrieval in a RME enabled system" into integration |
| e7c060d5 | 24-Jul-2024 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "feat(fgt2): add support for FEAT_FGT2" into integration |
| 0aa3284a | 17-Jul-2024 |
Jagdish Gediya <jagdish.gediya@arm.com> |
fix(context-mgmt): keep actlr_el2 value in the init context
The system register actlr_el2 can be set during CPU or platform reset handler. E.g. on Arm Total Compute platform, the CLUSTERPMUEN bit of
fix(context-mgmt): keep actlr_el2 value in the init context
The system register actlr_el2 can be set during CPU or platform reset handler. E.g. on Arm Total Compute platform, the CLUSTERPMUEN bit of actlr_el2 is set in the platform reset handler to enable the write access to DSU PMU registers from EL1. However, as EL2 context gets restored without saving it beforehand during jump to SPM and next NS image, therefore, the initialized value of actlr_el2 is not retained.
To fix this issue, keep track of actlr_el2 value during the EL2 context initialization. This applies for both secure and non-secure security state.
Change-Id: I1bd7b984216c042c056ad20c6724bedce5a6a3e2 Signed-off-by: Jagdish Gediya <jagdish.gediya@arm.com> Signed-off-by: Leo Yan <leo.yan@arm.com>
show more ...
|
| c5b8de86 | 22-Jul-2024 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "feat(debugv8p9): add support for FEAT_Debugv8p9" into integration |
| 7475815f | 13-May-2024 |
levi.yun <yeoreum.yun@arm.com> |
feat(handoff): fix register convention r1/x1 value on transfer list
According to recently firmware handsoff spec [1]'s "Register usage at handoff boundary", Transfer List's signature value was chang
feat(handoff): fix register convention r1/x1 value on transfer list
According to recently firmware handsoff spec [1]'s "Register usage at handoff boundary", Transfer List's signature value was changed from 0x40_b10b (3 bytes) to 4a0f_b10b (4 bytes).
As updating of TL's signature, register value of x1/r1 should be:
In aarch32's r1 value should be R1[23:0]: set to the TL signature (4a0f_b10b -> masked range value: 0f_b10b) R1[31:24]: version of the register convention == 1 and In aarch64's x1 value should be X1[31:0]: set to the TL signature (4a0f_b10b) X1[39:32]: version of the register convention == 1 X1[63:40]: MBZ (See the [2] and [3]).
Therefore, it requires to separate mask and shift value for register convention version field when sets each r1/x1.
This patch fix two problems: 1. breaking X1 value with updated specification in aarch64 - change of length of signature field.
2. previous error value set in R1 in arm32. - length of signature should be 24, but it uses 32bit signature.
This change is breaking change. It requires some patch for other softwares (u-boot[4], optee[5]).
Link: https://github.com/FirmwareHandoff/firmware_handoff [1] Link: https://github.com/FirmwareHandoff/firmware_handoff/issues/32 [2] Link: https://github.com/FirmwareHandoff/firmware_handoff/commit/5aa7aa1d3a1db75213e458d392b751f0707de027 [3] Link: https://lists.denx.de/pipermail/u-boot/2024-July/558628.html [4] Link: https://github.com/OP-TEE/optee_os/pull/6933 [5] Signed-off-by: Levi Yun <yeoreum.yun@arm.com> Change-Id: Ie417e054a7a4c192024a2679419e99efeded1705
show more ...
|
| e3c0869f | 24-Jun-2024 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
fix(xlat): correct attribute retrieval in a RME enabled system
In a system enabled with RME, the function 'xlat_get_mem_attributes_internal' fails to accurately provide 'output PA space' for Realm a
fix(xlat): correct attribute retrieval in a RME enabled system
In a system enabled with RME, the function 'xlat_get_mem_attributes_internal' fails to accurately provide 'output PA space' for Realm and Root memory because it does not consider the 'nse' bit in page table descriptor. This patch resolves the issue by extracting the 'nse' bit value. As a result, it ensures correct retrieval of attributes in RME-enabled systems while maintaining unaffected attribute retrieval for non-RME systems.
Change-Id: If2d01545b921c9074f48c52a98027ff331e14237 Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
show more ...
|
| f4dd18c2 | 04-Jun-2024 |
Chris Kay <chris.kay@arm.com> |
build: consolidate directory creation rules
This commit streamlines directory creation by introducing a single pattern rule to automatically make directories for which there is a dependency.
We cur
build: consolidate directory creation rules
This commit streamlines directory creation by introducing a single pattern rule to automatically make directories for which there is a dependency.
We currently use several macros to generate rules to create directories upon dependence, which is a significant amount of code and a lot of redundancy. The rule introduced by this change represents a catch-all: any rule dependency on a path ending in a forward slash is automatically created.
Now, rules can rely on an unordered dependency (`|`) on `$$(@D)/` which, when secondary expansion is enabled, expands to the directory of the target being built, e.g.:
build/main.o: main.c | $$(@D)/ # automatically creates `build/`
Change-Id: I7e554efa2ac850e779bb302fd9c7fbb239886c9f Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| becc97ef | 19-Jul-2024 |
Sona Mathew <sonarebecca.mathew@arm.com> |
refactor(cpus): modify log for "ERRATA_NOT_APPLIES"
modify the print logs when an erratum workaround does not need to be applied to a certain revision/variant of the CPU.
Change-Id: I8f60636320f617
refactor(cpus): modify log for "ERRATA_NOT_APPLIES"
modify the print logs when an erratum workaround does not need to be applied to a certain revision/variant of the CPU.
Change-Id: I8f60636320f617ecd4ed88ee1fbf7a3e3e4517ee Signed-off-by: Sona Mathew <sonarebecca.mathew@arm.com>
show more ...
|
| 33e6aaac | 06-Jun-2024 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
feat(fgt2): add support for FEAT_FGT2
This patch disables trapping to EL3 when the FEAT_FGT2 specific trap registers are accessed by setting the SCR_EL3.FGTEn2 bit
Signed-off-by: Arvind Ram Prakash
feat(fgt2): add support for FEAT_FGT2
This patch disables trapping to EL3 when the FEAT_FGT2 specific trap registers are accessed by setting the SCR_EL3.FGTEn2 bit
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: I6d2b614affb9067b2bc3d7bf0ae7d169d031592a
show more ...
|
| 83271d5a | 22-May-2024 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
feat(debugv8p9): add support for FEAT_Debugv8p9
This patch enables FEAT_Debugv8p9 and prevents EL1/0 from trapping to EL3 when accessing MDSELR_EL1 register by setting the MDCR_EL3.EBWE bit.
Signed
feat(debugv8p9): add support for FEAT_Debugv8p9
This patch enables FEAT_Debugv8p9 and prevents EL1/0 from trapping to EL3 when accessing MDSELR_EL1 register by setting the MDCR_EL3.EBWE bit.
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: I3613af1dd8cb8c0d3c33dc959f170846c0b9695a
show more ...
|
| a822a228 | 16-Jul-2024 |
Manish Pandey <manish.pandey2@arm.com> |
chore(cm): fix some typos in comments
Signed-off-by: Manish Pandey <manish.pandey2@arm.com> Change-Id: I592439f1686c333c855de98a8e7d377ba1e6c498 |
| 2e0efb3f | 27-Jun-2024 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "feat(cm): context switch MDCR_EL3 register" into integration |
| eb408432 | 27-Jun-2024 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge "refactor(cm): update SCTLR_EL2 initialisation" into integration |
| 123002f9 | 18-Jun-2024 |
Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> |
feat(cm): context switch MDCR_EL3 register
Currently MDCR_EL3 register value is same for all the worlds(Non-secure, Secure, Realm and Root).
With this approach, features enable/disable settings rem
feat(cm): context switch MDCR_EL3 register
Currently MDCR_EL3 register value is same for all the worlds(Non-secure, Secure, Realm and Root).
With this approach, features enable/disable settings remain same across all the worlds. This is not ideal as there must be flexibility in controlling feature as per the requirements for individual world.
The patch addresses this by providing MDCR_EL3 a per world value. Features with identical values for all the worlds are grouped under ``manage_extensions_common`` API.
Change-Id: Ibc068d985fe165d8cb6d0ffb84119bffd743b3d1 Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
show more ...
|
| d024cce3 | 20-Jun-2024 |
AlexeiFedorov <Alexei.Fedorov@arm.com> |
fix(gpt): fix GPT library fill_l1_tbl() function
GPT library function fill_l1_tbl() gets 'first' and 'last' parameters which are the start addresses of the 1st and the last granules in the range to
fix(gpt): fix GPT library fill_l1_tbl() function
GPT library function fill_l1_tbl() gets 'first' and 'last' parameters which are the start addresses of the 1st and the last granules in the range to fill L1 GPT table. When RME_GPT_MAX_BLOCK build option is not 0, condition for 'while' loop should be changed from 'first < last' to 'first <= last' in the case of 'first' = 'last' when a single granule is passed.
Change-Id: I9b49a78b5a2f7a01f51dbce43bd3f3cfbb458fa2 Signed-off-by: AlexeiFedorov <Alexei.Fedorov@arm.com>
show more ...
|
| da1a4591 | 06-Mar-2024 |
Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> |
refactor(cm): update SCTLR_EL2 initialisation
Currently, during the initial bootup phase SCTLR_EL2 register has been initialised with the endianness bit based on header attribute evaluation at EL3.
refactor(cm): update SCTLR_EL2 initialisation
Currently, during the initial bootup phase SCTLR_EL2 register has been initialised with the endianness bit based on header attribute evaluation at EL3.
This is not mandatorily required as TF-A by default, expects the software at EL2 to execute in little endian format ( EE = 0).
Henceforth, this patch removes the endianness bit evaluation for SCTLR_EL2 register and initialises with a predefined RESET value, setting SCTLR_EL2.EE=0.
Change-Id: I53fdd5bf907cbe35c551fc03cc893821229ff807 Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
show more ...
|
| 7c4e1eea | 02-May-2024 |
Chris Kay <chris.kay@arm.com> |
build: unify verbosity handling
This change introduces a few helper variables for dealing with verbose and silent build modes: `silent`, `verbose`, `q` and `s`.
The `silent` and `verbose` variables
build: unify verbosity handling
This change introduces a few helper variables for dealing with verbose and silent build modes: `silent`, `verbose`, `q` and `s`.
The `silent` and `verbose` variables are boolean values determining whether the build system has been configured to run silently or verbosely respectively (i.e. with `--silent` or `V=1`).
These two modes cannot be used together - if `silent` is truthy then `verbose` is always falsy. As such:
make --silent V=1
... results in a silent build.
In addition to these boolean variables, we also introduce two new variables - `s` and `q` - for use in rule recipes to conditionally suppress the output of commands.
When building silently, `s` expands to a value which disables the command that follows, and `q` expands to a value which supppresses echoing of the command:
$(s)echo 'This command is neither echoed nor executed' $(q)echo 'This command is executed but not echoed'
When building verbosely, `s` expands to a value which disables the command that follows, and `q` expands to nothing:
$(s)echo 'This command is neither echoed nor executed' $(q)echo 'This command is executed and echoed'
In all other cases, both `s` and `q` expand to a value which suppresses echoing of the command that follows:
$(s)echo 'This command is executed but not echoed' $(q)echo 'This command is executed but not echoed'
The `s` variable is predominantly useful for `echo` commands, where you always want to suppress echoing of the command itself, whilst `q` is more useful for all other commands.
Change-Id: I8d8ff6ed714d3cb401946c52955887ed7dca602b Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 378025e2 | 14-Jun-2024 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes from topic "nrd3_support" into integration
* changes: feat(rdfremont): add support for measured boot at BL1 and BL2 feat(arm): mock support for CCA NV ctr feat(rdfremont): fetch
Merge changes from topic "nrd3_support" into integration
* changes: feat(rdfremont): add support for measured boot at BL1 and BL2 feat(arm): mock support for CCA NV ctr feat(rdfremont): fetch attestation key and token from RSE feat(psa): introduce generic library for CCA attestation feat(rdfremont): initialize the rse comms driver feat(rdfremont): helper to initialize rse-comms with AP-RSE MHUv3 fix(rse): include lib-psa to resolve build feat(neoverse-rd): add MHUv3 channels on third gen multichip platforms feat(neoverse-rd): add MHUv3 doorbell channels on third gen platforms feat(rdfremont): initialize GPT on GPC SMMU block feat(rdfremont): update Root registers page offset for SMMUv3 feat(rdfremont): enable MTE2 if present on the platform feat(rdfremont): enable SVE for SWD and NS feat(rdfremont): enable AMU if present on the platform feat(rdfremont): enable MPAM if present on the platform feat(rdfremont): add DRAM pas entries in pas table for multichip feat(rdfremont): add implementation for GPT setup feat(rdfremont): integrate DTS files for RD-Fremont variants feat(rdfremont): add support for RD-Fremont-Cfg2 feat(rdfremont): add support for RD-Fremont-Cfg1 feat(rdfremont): add support for RD-Fremont feat(neoverse-rd): add scope for RD-Fremont variants feat(neoverse-rd): add multichip pas entries feat(neoverse-rd): add pas definitions for third gen platforms feat(neoverse-rd): add DRAM layout for third gen platforms feat(neoverse-rd): add SRAM layout for third gen platforms feat(neoverse-rd): add firmware definitions for third gen platforms feat(neoverse-rd): add RoS definitions for third gen platforms feat(neoverse-rd): add CSS definitions for third gen platforms
show more ...
|
| 98d36e5b | 28-Mar-2023 |
Vivek Gautam <vivek.gautam@arm.com> |
feat(psa): introduce generic library for CCA attestation
Add a generic Arm CCA attestation library driver to interface with the PSA delegated attestation partition APIs that use RSE to fetch the pla
feat(psa): introduce generic library for CCA attestation
Add a generic Arm CCA attestation library driver to interface with the PSA delegated attestation partition APIs that use RSE to fetch the platform attestation token and Realm attestation key.
Signed-off-by: Rohit Mathew <rohit.mathew@arm.com> Signed-off-by: Vivek Gautam <vivek.gautam@arm.com> Change-Id: I882273e97567cc068f90d2ef089410f3a93c6b00
show more ...
|
| 9fd9f1d0 | 30-Sep-2022 |
shengfei Xu <xsf@rock-chips.com> |
feat(rockchip): add RK3566/RK3568 Socs support
RK3566/RK3568 is a Quad-core soc and Cortex-a55 inside. This patch supports the following functions: 1. basic platform setup 2. power up/off cpus 3. su
feat(rockchip): add RK3566/RK3568 Socs support
RK3566/RK3568 is a Quad-core soc and Cortex-a55 inside. This patch supports the following functions: 1. basic platform setup 2. power up/off cpus 3. suspend/resume cpus 4. suspend/resume system 5. reset system
Signed-off-by: shengfei Xu <xsf@rock-chips.com> Change-Id: I8b98a4d07664de26bd6078f63664cbc3d9c1c68c
show more ...
|
| 85b9401b | 07-Jun-2024 |
Soby Mathew <soby.mathew@arm.com> |
Merge "fix(gpt): fix RME GPT library bug" into integration |
| 6350aea2 | 06-Jun-2024 |
AlexeiFedorov <Alexei.Fedorov@arm.com> |
fix(gpt): fix RME GPT library bug
This patch fixes fill_l1_tbl() function bug for RME_GPT_MAX_BLOCK build option set to 0 disabling filling L1 tables with Contiguous descriptors.
Change-Id: I3eedd6
fix(gpt): fix RME GPT library bug
This patch fixes fill_l1_tbl() function bug for RME_GPT_MAX_BLOCK build option set to 0 disabling filling L1 tables with Contiguous descriptors.
Change-Id: I3eedd6c1bb55b7c207bb3630d1ab2fda8f72eb17 Signed-off-by: AlexeiFedorov <Alexei.Fedorov@arm.com>
show more ...
|
| ae479526 | 23-May-2024 |
Chris Kay <chris.kay@arm.com> |
build(romlib): don't timestamp generated wrappers
The Makefile rule for the libwrappers object files places a dependency on a timestamp file. This timestamp file is created by the recipe that genera
build(romlib): don't timestamp generated wrappers
The Makefile rule for the libwrappers object files places a dependency on a timestamp file. This timestamp file is created by the recipe that generates the libwrappers sources, and was presumably introduced to indicate to Make that all of the source files are generated simultaneously by that rule.
Instead, we can use a grouped target rule, which uses `&:` instead of `:`. This communicates to Make that all of the targets listed are generated at once.
To demonstrate, the following two Makefile rules differ in their behaviour:
a.x b.x c.x: # targets may be updated independently ... # generate a.x, b.x and c.x
a.x b.x c.x &: # all targets are updated at once ... # generate a.x, b.x and c.x
While both recipes do generate all three files, only the second rule communicates this fact to Make. As such, Make can reason that if one of the files is up to date then all of them are, and avoid re-running the rule for any generated file that it has not already run it for.
Change-Id: I10b49eb72b5276c7f9bd933900833b03a61cff2f Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| d9db8467 | 29-May-2024 |
Chris Kay <chris.kay@arm.com> |
build(romlib): de-duplicate ROMLib wrapper sources
The `romlib_generator.py` script may generate duplicate wrapper sources, which is undesirable when using them to generate Makefile rules as Make wi
build(romlib): de-duplicate ROMLib wrapper sources
The `romlib_generator.py` script may generate duplicate wrapper sources, which is undesirable when using them to generate Makefile rules as Make will warn about duplicated targets.
This change sorts the wrapper sources returned from this script, which has the effect of also de-duplicating them.
Change-Id: I109607ef94f77113a48cc0d6e07877efd1971dbc Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 55c7efc4 | 30-May-2024 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "refactor(cm): move mpam registers into el2 context" into integration |