| ef63f5be | 14-Mar-2023 |
Sona Mathew <SonaRebecca.Mathew@arm.com> |
refactor(errata_abi): factor in non-arm interconnect
Workaround to help enable the kernel to query errata status using the errata abi feature for platforms with a non-arm interconnect.
Change-Id: I
refactor(errata_abi): factor in non-arm interconnect
Workaround to help enable the kernel to query errata status using the errata abi feature for platforms with a non-arm interconnect.
Change-Id: I47b03eaee5a0a763056ae71883fa30dfacb9b3f7 Signed-off-by: Sona Mathew <SonaRebecca.Mathew@arm.com>
show more ...
|
| ffea3844 | 19-Nov-2022 |
Sona Mathew <SonaRebecca.Mathew@arm.com> |
feat(errata_abi): errata management firmware interface
This patch adds the errata management firmware interface for lower ELs to discover details about CPU erratum. Based on the CPU erratum identifi
feat(errata_abi): errata management firmware interface
This patch adds the errata management firmware interface for lower ELs to discover details about CPU erratum. Based on the CPU erratum identifier the interface enables the OS to find the mitigation of an erratum in EL3.
The ABI can only be present in a system that is compliant with SMCCCv1.1 or higher. This implements v1.0 of the errata ABI spec.
For details on all possible return values, refer the design documentation below:
ABI design documentation: https://developer.arm.com/documentation/den0100/1-0?lang=en
Signed-off-by: Sona Mathew <SonaRebecca.Mathew@arm.com> Change-Id: I70f0e2569cf92e6e02ad82e3e77874546232b89a
show more ...
|
| 0c2583c6 | 11-Jan-2023 |
Demi Marie Obenour <demiobenour@gmail.com> |
fix(el3-spmc): correctly account for emad_offset
Use the address of emad 0 instead of the size of the MRD.
Change-Id: I31ec0001b4474e78caa9dfb468f63122a3708781 Signed-off-by: Demi Marie Obenour <de
fix(el3-spmc): correctly account for emad_offset
Use the address of emad 0 instead of the size of the MRD.
Change-Id: I31ec0001b4474e78caa9dfb468f63122a3708781 Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
show more ...
|
| 46d6b370 | 11-Jan-2023 |
Demi Marie Obenour <demiobenour@gmail.com> |
refactor(el3-spmc): avoid unnecessarily revalidating offset
The offset has been validated on the first loop iteration. Subsequent iterations can assume it is valid.
Change-Id: Ib06cd0240220b8aa42b
refactor(el3-spmc): avoid unnecessarily revalidating offset
The offset has been validated on the first loop iteration. Subsequent iterations can assume it is valid.
Change-Id: Ib06cd0240220b8aa42bcd34c3c40b69d2d86aa72 Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
show more ...
|
| d781959f | 11-Jan-2023 |
Demi Marie Obenour <demiobenour@gmail.com> |
fix(el3-spmc): only call spmc_shm_check_obj() on complete objects
When called on incomplete objects, it might fail or access uninitialized memory. This allows simplifying spmc_shm_check_obj().
Chan
fix(el3-spmc): only call spmc_shm_check_obj() on complete objects
When called on incomplete objects, it might fail or access uninitialized memory. This allows simplifying spmc_shm_check_obj().
Change-Id: I7c11f15d4c8ebe8cd15e7d8c37a0d0f3daa83675 Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
show more ...
|
| 77acde4c | 11-Jan-2023 |
Demi Marie Obenour <demiobenour@gmail.com> |
refactor(spmc): assert on out-of-bounds emad access
This always indicates a bug.
Change-Id: Ie0d5d4c84d9fb615ba6cdf0e6d46eab778fc7e94 Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com> |
| cbbb8a03 | 31-Dec-2022 |
Demi Marie Obenour <demiobenour@gmail.com> |
refactor(el3-spmc): spmc_shmem_obj_get_emad() will never fail
Earlier validation ensures spmc_shmem_obj_get_emad() will never fail, so trip an assertion instead of returning NULL.
Change-Id: I285f3
refactor(el3-spmc): spmc_shmem_obj_get_emad() will never fail
Earlier validation ensures spmc_shmem_obj_get_emad() will never fail, so trip an assertion instead of returning NULL.
Change-Id: I285f3b59150773b2404db5719753fdb240e9ed63 Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
show more ...
|
| 56c052d3 | 31-Dec-2022 |
Demi Marie Obenour <demiobenour@gmail.com> |
fix(el3-spmc): validate descriptor headers
This avoids out-of-bounds reads later.
Change-Id: Iee4245a393f1fde63d8ebada25ea2568cf984871 Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com> |
| 52d8d506 | 31-Dec-2022 |
Demi Marie Obenour <demiobenour@gmail.com> |
fix(el3-spmc): use version-dependent minimum descriptor length
A v1.1 descriptor has a minimum length exceeding that of a v1.0 descriptor.
Change-Id: I06265d58f53eccb0d39927fe9ff396b73735df97 Signe
fix(el3-spmc): use version-dependent minimum descriptor length
A v1.1 descriptor has a minimum length exceeding that of a v1.0 descriptor.
Change-Id: I06265d58f53eccb0d39927fe9ff396b73735df97 Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
show more ...
|
| f0b64e50 | 02-Mar-2023 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
feat(spmd): introduce platform handler for Group0 interrupt
This patch introduces a handler for FVP platform to triage Group0 secure interrupts. Currently, it is empty but serves as a placeholder fo
feat(spmd): introduce platform handler for Group0 interrupt
This patch introduces a handler for FVP platform to triage Group0 secure interrupts. Currently, it is empty but serves as a placeholder for future Group0 interrupt sources.
Moreover, this patch also provides a dummy implementation of the above mentioned platform hook for QEMU, corstone100, n1sdp and hikey960 ports.
Change-Id: I01d3451408f47ac313b0af74046cce89f89b85bb Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
show more ...
|
| 6671b3d8 | 02-Mar-2023 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
feat(spmd): add support for FFA_EL3_INTR_HANDLE_32 ABI
When Group0 Secure interrupts in secure world get trapped to S-EL2 SPMC, FFA_EL3_INTR_HANDLE ABI is invoked by SPMC to delegate interrupt handl
feat(spmd): add support for FFA_EL3_INTR_HANDLE_32 ABI
When Group0 Secure interrupts in secure world get trapped to S-EL2 SPMC, FFA_EL3_INTR_HANDLE ABI is invoked by SPMC to delegate interrupt handling to EL3 firmware (i.e., SPMD).
SPMD further delegates to platform handler which successfully handles the Group0 secure interrupt before returning control to SPMC.
Change-Id: I8cc0fec20803b96c81582910ad2668e38b167fb8 Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
show more ...
|
| a1e0e871 | 02-Mar-2023 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
feat(spmd): register handler for group0 interrupt from NWd
SPMD registers a generic handler with the interrupt management framework to handle Group0 secure interrupt from normal world. The handler f
feat(spmd): register handler for group0 interrupt from NWd
SPMD registers a generic handler with the interrupt management framework to handle Group0 secure interrupt from normal world. The handler further delegates to the platform for successful handling of the interrupt.
Change-Id: I9cdc721810b09e01190cdcab42c50830792a26e2 Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
show more ...
|
| 2ed0936d | 26-Jan-2023 |
Chris Kay <chris.kay@arm.com> |
build(trp): sort sections by alignment by default
This change forces LD to sort all input sections by alignment when allocating them within an output section. This is done in some places explicitly
build(trp): sort sections by alignment by default
This change forces LD to sort all input sections by alignment when allocating them within an output section. This is done in some places explicitly in the linker scripts today, but this makes sure we don't miss any easy targets.
Change-Id: Ife89a8bb9e592b55c761d9a3dfefc2aeeb07802f Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 2b0bc4e0 | 07-Mar-2023 |
Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> |
feat(cpufeat): enable FEAT_SVE for FEAT_STATE_CHECKED
Add support for runtime detection (ENABLE_SVE_FOR_NS=2), by splitting sve_supported() into an ID register reading function and a second function
feat(cpufeat): enable FEAT_SVE for FEAT_STATE_CHECKED
Add support for runtime detection (ENABLE_SVE_FOR_NS=2), by splitting sve_supported() into an ID register reading function and a second function to report the support status. That function considers both build time settings and runtime information (if needed), and is used before we do SVE specific setup.
Change the FVP platform default to the now supported dynamic option (=2), so the right decision can be made by the code at runtime.
Change-Id: I1caaba2216e8e2a651452254944a003607503216 Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
show more ...
|
| 45007acd | 06-Mar-2023 |
Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> |
feat(cpufeat): enable FEAT_SME for FEAT_STATE_CHECKED
Add support for runtime detection (ENABLE_SME_FOR_NS=2), by splitting feat_sme_supported() into an ID register reading function and a second fun
feat(cpufeat): enable FEAT_SME for FEAT_STATE_CHECKED
Add support for runtime detection (ENABLE_SME_FOR_NS=2), by splitting feat_sme_supported() into an ID register reading function and a second function to report the support status. That function considers both build time settings and runtime information (if needed), and is used before we do SME specific setup.
Change the FVP platform default to the now supported dynamic option (=2),so the right decision can be made by the code at runtime.
Change-Id: Ida9ccf737db5be20865b84f42b1f9587be0626ab Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
show more ...
|
| 623f6140 | 22-Feb-2023 |
Andre Przywara <andre.przywara@arm.com> |
refactor(cpufeat): align FEAT_SEL2 to new feature handling
In ARMv8.4, the EL2 exception level got added to the secure world. Adapt and rename the existing is_armv8_4_sel2_present() function, to ali
refactor(cpufeat): align FEAT_SEL2 to new feature handling
In ARMv8.4, the EL2 exception level got added to the secure world. Adapt and rename the existing is_armv8_4_sel2_present() function, to align its handling with the other CPU features.
Change-Id: If11e1942fdeb63c63f36ab9e89be810347d1a952 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| 4f5ef849 | 26-Jan-2023 |
Andre Przywara <andre.przywara@arm.com> |
refactor(cpufeat): enable FEAT_PAN for FEAT_STATE_CHECKED
At the moment we only support FEAT_PAN to be either unconditionally compiled in, or to be not supported at all.
Add support for runtime det
refactor(cpufeat): enable FEAT_PAN for FEAT_STATE_CHECKED
At the moment we only support FEAT_PAN to be either unconditionally compiled in, or to be not supported at all.
Add support for runtime detection (ENABLE_FEAT_PAN=2), by splitting is_armv8_1_pan_present() into an ID register reading function and a second function to report the support status. That function considers both build time settings and runtime information (if needed), and is used before we PAN specific setup.
Change the FVP platform default to the now supported dynamic option (=2), so the right decision can be made by the code at runtime.
Change-Id: I58e5fe8d3c9332820391c7d93a8fb9dba4cf754a Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| ea735bf5 | 17-Nov-2022 |
Andre Przywara <andre.przywara@arm.com> |
refactor(cpufeat): enable FEAT_VHE for FEAT_STATE_CHECKED
At the moment we only support FEAT_VHE to be either unconditionally compiled in, or to be not supported at all.
Add support for runtime det
refactor(cpufeat): enable FEAT_VHE for FEAT_STATE_CHECKED
At the moment we only support FEAT_VHE to be either unconditionally compiled in, or to be not supported at all.
Add support for runtime detection (ENABLE_FEAT_VHE=2), by splitting is_armv8_1_vhe_present() into an ID register reading function and a second function to report the support status. That function considers both build time settings and runtime information (if needed), and is used before we access VHE related registers. Also move the context saving code from assembly to C, and use the new is_feat_vhe_supported() function to guard its execution.
Enable VHE in its runtime detection version for all FVP builds.
Change-Id: Ib397cd0c83e8c709bd6fed603560e39901fa672b Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| 0d33649e | 16-Nov-2022 |
Olivier Deprez <olivier.deprez@arm.com> |
feat(spmd): fail safe if SPM fails to initialize
The spmd_setup function is made fail safe in that a failure in the SPMC manifest parsing, SPMD or SPMC initialization returns a success code to the s
feat(spmd): fail safe if SPM fails to initialize
The spmd_setup function is made fail safe in that a failure in the SPMC manifest parsing, SPMD or SPMC initialization returns a success code to the standard services initialization routine (std_svc_setup). This permits continuing the boot process and initialize services beyond the SPMD to succeed for the system to operate in the normal world. It operates in a degraded mode for the secure world.
Signed-off-by: Olivier Deprez <olivier.deprez@arm.com> Change-Id: Ida0ac91c17925279a79f112d190f9ad038f518e7
show more ...
|
| 338dbe2f | 22-Feb-2023 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes I51c13c52,I3358c51e into integration
* changes: build: always prefix section names with `.` build: communicate correct page size to linker |
| da04341e | 14-Feb-2023 |
Chris Kay <chris.kay@arm.com> |
build: always prefix section names with `.`
Some of our specialized sections are not prefixed with the conventional period. The compiler uses input section names to derive certain other section name
build: always prefix section names with `.`
Some of our specialized sections are not prefixed with the conventional period. The compiler uses input section names to derive certain other section names (e.g. `.rela.text`, `.relacpu_ops`), and these can be difficult to select in linker scripts when there is a lack of a delimiter.
This change introduces the period prefix to all specialized section names.
BREAKING-CHANGE: All input and output linker section names have been prefixed with the period character, e.g. `cpu_ops` -> `.cpu_ops`.
Change-Id: I51c13c5266d5975fbd944ef4961328e72f82fc1c Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| fda255c3 | 17-Feb-2023 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge "feat(spmd): introduce FFA_PARTITION_INFO_GET_REGS" into integration |
| eaaf517c | 25-Dec-2022 |
Raghu Krishnamurthy <raghu.ncstate@gmail.com> |
feat(spmd): introduce FFA_PARTITION_INFO_GET_REGS
Add code in SPMD to forward calls to FFA_PARTITION_INFO_GET_REGS. This is a new ABI that allows getting partition information without the need for r
feat(spmd): introduce FFA_PARTITION_INFO_GET_REGS
Add code in SPMD to forward calls to FFA_PARTITION_INFO_GET_REGS. This is a new ABI that allows getting partition information without the need for rx/tx buffer, that helps in situations where having an rx/tx buffer mapped and available is difficult (ex. uefi runtime services). Currently, the spmc at el3 does not support this new ABI. The new ABI uses registers x8-x17 to return partition information so changes are made to ensure those registers are passed through to the SPMC and restored on the return path.
Signed-off-by: Raghu Krishnamurthy <raghu.ncstate@gmail.com> Change-Id: I1fe5956763e054e4f8d62292fc1247e7120bb5a4
show more ...
|
| 82274936 | 16-Jan-2023 |
Chris Kay <chris.kay@arm.com> |
build: clarify linker script generation
The following build system variables have been renamed:
- `LINKERFILE` -> `DEFAULT_LINKER_SCRIPT` - `BL_LINKERFILE` -> `DEFAULT_LINKER_SCRIPT_SOURCE` - `<IMA
build: clarify linker script generation
The following build system variables have been renamed:
- `LINKERFILE` -> `DEFAULT_LINKER_SCRIPT` - `BL_LINKERFILE` -> `DEFAULT_LINKER_SCRIPT_SOURCE` - `<IMAGE>_LINKERFILE` -> `<IMAGE>_DEFAULT_LINKER_SCRIPT_SOURCE`
These new names better reflect how each variable is used:
1. the default linker script is passed via `-dT` instead of `-T` 2. linker script source files are first preprocessed
Additionally, linker scripts are now placed in the build directory relative to where they exist in the source directory. For example, the `bl32/sp_min/sp_min.ld.S` would now preprocess to `sp_min/sp_min.ld` instead of just `bl32.ld`
BREAKING-CHANGE: The `LINKERFILE`, `BL_LINKERFILE` and `<IMAGE_LINKERFILE>` build system variables have been renamed. See the commit message for more information.
Change-Id: If8cef65dcb8820e8993736702c8741e97a66e6cc Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 0cea2ae0 | 07-Feb-2023 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
feat(spmd): copy tos_fw_config in secure region
The tos_fw_config is currently loaded into memory by BL2 and consumed by SPMD (part of BL31) and BL32 firmwares. This does not work in RME-enabled sys
feat(spmd): copy tos_fw_config in secure region
The tos_fw_config is currently loaded into memory by BL2 and consumed by SPMD (part of BL31) and BL32 firmwares. This does not work in RME-enabled systems as BL31 uses the root PAS memory and does not trust secure PAS memory.
A first attempt was made to map the TOS_FW_CONFIG region as root PAS, and then to remap to secure PAS after SPMD consumption, but this was not suitable for RME systems where memory encryption is enabled.
This can be solved by copying the TOS FW config (SPMC manifest) from the Root PAS region to the Secure PAS region so that BL32 can consume it.
Change-Id: I8eef8345366199cb0e367db883c34a5b5136465d Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
show more ...
|