| 33b9be6d | 26-May-2021 |
Chris Kay <chris.kay@arm.com> |
refactor(amu): factor out register accesses
This change introduces a small set of register getters and setters to avoid having to repeatedly mask and shift in complex code.
Change-Id: Ia372f60c5efb
refactor(amu): factor out register accesses
This change introduces a small set of register getters and setters to avoid having to repeatedly mask and shift in complex code.
Change-Id: Ia372f60c5efb924cd6eeceb75112e635ad13d942 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| b4b726ea | 24-May-2021 |
Chris Kay <chris.kay@arm.com> |
refactor(amu)!: privatize unused AMU APIs
This change reduces the exposed surface area of the AMU API in order to simplify the refactoring work in following patches. The functions and definitions pr
refactor(amu)!: privatize unused AMU APIs
This change reduces the exposed surface area of the AMU API in order to simplify the refactoring work in following patches. The functions and definitions privatized by this change are not used by other parts of the code-base today.
BREAKING CHANGE: The public AMU API has been reduced to enablement only to facilitate refactoring work. These APIs were not previously used.
Change-Id: Ibf6174fb5b3949de3c4ba6847cce47d82a6bd08c Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 6c8dda19 | 17-May-2021 |
Chris Kay <chris.kay@arm.com> |
refactor(amu)!: remove `PLAT_AMU_GROUP1_COUNTERS_MASK`
With the introduction of MPMM, the auxiliary AMU counter logic requires refactoring to move away from a single platform-defined group 1 counter
refactor(amu)!: remove `PLAT_AMU_GROUP1_COUNTERS_MASK`
With the introduction of MPMM, the auxiliary AMU counter logic requires refactoring to move away from a single platform-defined group 1 counter mask in order to support microarchitectural (per-core) group 1 counters.
BREAKING CHANGE: The `PLAT_AMU_GROUP1_COUNTERS_MASK` platform definition has been removed. Platforms should specify per-core AMU counter masks via FCONF or a platform-specific mechanism going forward.
Change-Id: I1e852797c7954f92409222b066a1ae57bc72bb05 Signed-off-by: Chris Kay <chris.kay@arm.com>
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 ...
|
| 4cb576a0 | 15-Oct-2021 |
johpow01 <john.powell@arm.com> |
fix(cpu): correct Demeter CPU name
This patch changes Cortex Demeter to Neoverse Demeter.
Signed-off-by: John Powell <john.powell@arm.com> Change-Id: I7306d09ca60e101d0a96c9ceff9845422d75c160 |
| ed6f89e9 | 21-Oct-2021 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
Merge "fix(pie): invalidate data cache in the entire image range if PIE is enabled" into integration |
| fb9e5f7b | 19-Aug-2021 |
johpow01 <john.powell@arm.com> |
feat(cpu): add support for Hunter CPU
This patch adds the basic CPU library code to support the Hunter CPU in TF-A. This CPU is based on the Makalu core so that library code was adapted as the basis
feat(cpu): add support for Hunter CPU
This patch adds the basic CPU library code to support the Hunter CPU in TF-A. This CPU is based on the Makalu core so that library code was adapted as the basis for this patch.
Signed-off-by: John Powell <john.powell@arm.com> Change-Id: I956b2dc0f43da7cec3e015252392e2694363e1b3
show more ...
|
| 596d20d9 | 15-Oct-2021 |
Zelalem Aweke <zelalem.aweke@arm.com> |
fix(pie): invalidate data cache in the entire image range if PIE is enabled
Currently on image entry, the data cache in the RW address range is invalidated before MMU is enabled to safeguard against
fix(pie): invalidate data cache in the entire image range if PIE is enabled
Currently on image entry, the data cache in the RW address range is invalidated before MMU is enabled to safeguard against potential stale data from previous firmware stage. If PIE is enabled however, RO sections including the GOT may be also modified during pie fixup. Therefore, to be on the safe side, invalidate the entire image region if PIE is enabled.
Signed-off-by: Zelalem Aweke <zelalem.aweke@arm.com> Change-Id: I7ee2a324fe4377b026e32f9ab842617ad4e09d89
show more ...
|
| b4deee59 | 19-Oct-2021 |
André Przywara <andre.przywara@arm.com> |
Merge "fix(scmi): relax requirement for exact protocol version" into integration |
| a06f2f43 | 18-Oct-2021 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "ufs_patches" into integration
* changes: fix(ufs): add reset before DME_LINKSTARTUP refactor(ufs): add retry logic to ufshc_reset refactor(ufs): reuse ufshc_send_uic_
Merge changes from topic "ufs_patches" into integration
* changes: fix(ufs): add reset before DME_LINKSTARTUP refactor(ufs): add retry logic to ufshc_reset refactor(ufs): reuse ufshc_send_uic_cmd
show more ...
|
| 381d6850 | 18-Oct-2021 |
Joanna Farley <joanna.farley@arm.com> |
Merge changes Id7d4f5df,If82542cc,I0ba80057,I75a443db,Ifa18b4fc, ... into integration
* changes: feat(nxp/common/ocram): add driver for OCRAM initialization feat(plat/nxp/common): add EESR regis
Merge changes Id7d4f5df,If82542cc,I0ba80057,I75a443db,Ifa18b4fc, ... into integration
* changes: feat(nxp/common/ocram): add driver for OCRAM initialization feat(plat/nxp/common): add EESR register definition fix(plat/nxp/ls1028a): fix compile error when enable fuse provision fix(drivers/nxp/sfp): fix compile warning fix(plat/nxp/ls1028a): define endianness of scfg and gpio fix(nxp/scfg): fix endianness checking
show more ...
|
| 905635d5 | 06-Oct-2021 |
Jorge Troncoso <jatron@google.com> |
fix(ufs): add reset before DME_LINKSTARTUP
This change aims to make the UFS code more robust by performing a controller reset if linkstartup fails. This idea was borrowed from Linux's ufshcd_link_st
fix(ufs): add reset before DME_LINKSTARTUP
This change aims to make the UFS code more robust by performing a controller reset if linkstartup fails. This idea was borrowed from Linux's ufshcd_link_startup function.
Signed-off-by: Jorge Troncoso <jatron@google.com> Change-Id: I6b52148d1bf155b11198dc82a39b1120057adaaf
show more ...
|
| 99ff1a35 | 30-Sep-2021 |
Jorge Troncoso <jatron@google.com> |
refactor(ufs): add retry logic to ufshc_reset
This change aims to make the UFS code more robust by adding retry logic and timeouts to ufshc_reset. We also define a new function ufshc_hce_enable for
refactor(ufs): add retry logic to ufshc_reset
This change aims to make the UFS code more robust by adding retry logic and timeouts to ufshc_reset. We also define a new function ufshc_hce_enable for Host Controller Enable (HCE). The inner and outer retry pattern is based on Linux's ufshcd_hba_execute_hce function.
Signed-off-by: Jorge Troncoso <jatron@google.com> Change-Id: I9403a5a25d3ca50af5f2f9a65b774f6a2d7a9626
show more ...
|
| d68d163d | 24-Sep-2021 |
Jorge Troncoso <jatron@google.com> |
refactor(ufs): reuse ufshc_send_uic_cmd
This change aims to make the UFS code more robust by removing asserts and adding retry logic. We also reduce repetition by reusing ufshc_send_uic_cmd for DME_
refactor(ufs): reuse ufshc_send_uic_cmd
This change aims to make the UFS code more robust by removing asserts and adding retry logic. We also reduce repetition by reusing ufshc_send_uic_cmd for DME_GET and DME_SET commands.
Signed-off-by: Jorge Troncoso <jatron@google.com> Change-Id: Id70aa1687d5ca78dc7d47234372255ac5a04a612
show more ...
|
| 7b97cf37 | 14-Oct-2021 |
Mark Dykes <mark.dykes@arm.com> |
Merge changes from topic "st_fixes" into integration
* changes: fix(stpmic1): fix power switches activation fix(stpmic1): update error cases return refactor(stpmic1): use BIT and GENMASK helpe
Merge changes from topic "st_fixes" into integration
* changes: fix(stpmic1): fix power switches activation fix(stpmic1): update error cases return refactor(stpmic1): use BIT and GENMASK helpers fix(stm32mp1_clk): keep RTC clock always on fix(stm32mp1_clk): set other clocks as always on
show more ...
|
| 125868c9 | 07-Jun-2021 |
Nicola Mazzucato <nicola.mazzucato@arm.com> |
fix(scmi): relax requirement for exact protocol version
Currently, for the supported SCMI protocols, the version returned by the SCMI platform agent must be exactly matching the driver's version (ma
fix(scmi): relax requirement for exact protocol version
Currently, for the supported SCMI protocols, the version returned by the SCMI platform agent must be exactly matching the driver's version (major version).
The recent change for the required version of Power Domain protocol means that the platform must return version 2.0. This can be however a limitation in some cases, where a SCMI-v1.0 platform can still be considered compatible with the driver supported in firmware.
Relax the protocol version requirement such that any version older than the one supported by the drivers can still be compatible.
Note: For now this has effect only on Power Domain protocol, as the other drivers still require the "base" version 1.0.
Signed-off-by: Nicola Mazzucato <nicola.mazzucato@arm.com> Change-Id: I310ae1869c2e952991a8d733f394029ab64087bf
show more ...
|
| 8a89e189 | 08-Sep-2021 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
refactor(measured boot): make measurement strings compliant with SBSG
Made measurement strings compliant to Server Base Security Guide (SBSG, Arm DEN 0086) hence updated measurement strings for BL32
refactor(measured boot): make measurement strings compliant with SBSG
Made measurement strings compliant to Server Base Security Guide (SBSG, Arm DEN 0086) hence updated measurement strings for BL32, BL31, and SCP_BL2 images. As the GPT image is not get measured by BL2 so removed its measurement string. Also, namespaced measurement string defines that were looking quite generic.
Change-Id: Iaa17c0cfeee3d06dc822eff2bd553da23bd99b76 Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
show more ...
|
| 0500f447 | 11-Aug-2021 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
feat(plat/fvp): pass Event Log addr and size from BL1 to BL2
Introduced functions to set and get Event log information (tpm_event_log address and its size).
In FVP platform case, measured boot with
feat(plat/fvp): pass Event Log addr and size from BL1 to BL2
Introduced functions to set and get Event log information (tpm_event_log address and its size).
In FVP platform case, measured boot with Event Log backend flow work as below 1. event_log_init function called by BL1 to initialize Event Log module 2. arm_set_tb_fw_info function called by BL1 to set the 'tpm_event_log_addr' and 'tpm_event_log_size' properties in tb_fw_config 3. arm_get_tb_fw_info function called by BL2 to get tpm Event Log parameters set by BL1. These parameters used by the BL2 to extend the tpm Event Log records, and use these parameters to initialize Event Log using event_log_init function 4. arm_set_nt_fw_info and arm_set_tos_fw_info function called by BL2 to set 'tpm_event_log' address and its size properties in nt_fw_config and tos_fw_config respectively
Alongside, this patch created a separate instances of plat_mboot_init and plat_mboot_finish APIs for BL1 and BL2.
This patch is tested using the existing measured boot test configuration in jenkins CI.
Change-Id: Ib9eca092afe580df014541c937868f921dff9c37 Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
show more ...
|
| 48ba0345 | 14-Sep-2021 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
feat(measured_boot): image hash measurement and recording in BL1
It looks safer and cleaner approach to record the measurement taken by BL1 straightaway in TCG Event Log instead of deferring these r
feat(measured_boot): image hash measurement and recording in BL1
It looks safer and cleaner approach to record the measurement taken by BL1 straightaway in TCG Event Log instead of deferring these recordings to BL2. Hence pull in the full-fledged measured boot driver into BL1 that replaces the former ad-hoc platform interfaces i.e. bl1_plat_set_bl2_hash, bl2_plat_get_hash.
As a result of this change the BL1 of Arm FVP platform now do the measurements and recordings of below images: 1. FW_CONFIG 2. TB_FW_CONFIG 3. BL2
Change-Id: I798c20336308b5e91b547da4f8ed57c24d490731 Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
show more ...
|
| efa65218 | 14-Sep-2021 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
refactor(measured boot): remove platform calls from Event Log driver
Currently, the Event Log driver does platform layer work by invoking a few platform functions in the 'event_log_finalise' call. D
refactor(measured boot): remove platform calls from Event Log driver
Currently, the Event Log driver does platform layer work by invoking a few platform functions in the 'event_log_finalise' call. Doing platform work does not seem to be the driver's responsibility, hence moved 'event_log_finalise' function's implementation to the platform layer.
Alongside, introduced few Event Log driver functions and done some cosmetic changes.
Change-Id: I486160e17e5b0677c734fd202af7ccd85476a551 Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
show more ...
|
| eab78e9b | 10-Aug-2021 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
refactor(measured_boot): remove passing of BL2 hash via device tree
Subsequent patches will provide a solution to do the BL2 hash measurement and recording in BL1 itself, hence in preparation to ado
refactor(measured_boot): remove passing of BL2 hash via device tree
Subsequent patches will provide a solution to do the BL2 hash measurement and recording in BL1 itself, hence in preparation to adopt that solution remove the logic of passing BL2 hash measurement to BL2 component via TB_FW config.
Change-Id: Iff9b3d4c6a236a33b942898fcdf799cbab89b724 Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
show more ...
|
| 8cd09cfc | 17-Jun-2021 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
refactor(measured boot): move BL2 measurement to platform layer
Right now, event_log_init() does 2 things: 1) It writes all the necessary TCG data structures in the event log buffer. 2) It writes th
refactor(measured boot): move BL2 measurement to platform layer
Right now, event_log_init() does 2 things: 1) It writes all the necessary TCG data structures in the event log buffer. 2) It writes the first measurement (BL2's).
Step 2) introduces in the TCG event log driver an assumption on what is getting measured and in what order. Ideally, the driver should only be concerned about generic operations, such as initializing the event log or recording a measurement in it. As much as possible, we should design the driver such that it could be reused in another project that has a different measure boot flow.
For these reasons, move step 2) up to the caller, plat_mboot_init() in this case. Make event_log_record() a public function for this purpose.
This refactoring will also help when we make BL1 record BL2's measurement into the event log (instead of BL2). Both BL1 and BL2 will need to call the driver's init function but only BL1 will need recording BL2's measurement. We can handle this through different implementations of plat_mboot_init() for BL1 and BL2, leaving the TCG event log driver unchanged.
Change-Id: I358e097c1eedb54f82b866548dfc6bcade83d519 Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
show more ...
|
| 140d9cb3 | 20-Sep-2021 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
refactor(measured boot): move image measurement to generic layer
Right now, the assumption is that the platform post-load hook takes care of measuring the image that just got loaded. This is how it'
refactor(measured boot): move image measurement to generic layer
Right now, the assumption is that the platform post-load hook takes care of measuring the image that just got loaded. This is how it's implemented on FVP.
This patch moves the measurement into the generic code instead. load_auth_image() now calls plat_mboot_measure_image(), which is a new platform interface introduced in this patch to measure an image. This is called just after authenticating the image.
Implement plat_mboot_measure_image() for the Arm FVP platform. The code is copied straight from the post-load hook.
As a result, the FVP specific implementation of arm_bl2_plat_handle_post_image_load() is no longer needed. We can go back to using the Arm generic implementation of it.
Change-Id: I7b4b8d28941a865e10af9d0eadaf2e4850942090 Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com> Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
show more ...
|
| d89bec83 | 07-Jul-2021 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
build(measured boot): rename measured boot makefile
With the removal of the generic functions measured_boot_init()/finish(), measured_boot.mk becomes specific to the TCG event log backend. Change it
build(measured boot): rename measured boot makefile
With the removal of the generic functions measured_boot_init()/finish(), measured_boot.mk becomes specific to the TCG event log backend. Change its file name to event_log.mk. Also, the Event Log driver is one of the backend of measured boot hence created a separate folder for it under the measured_boot directory.
Alongside done some cosmetic changes (adding a comment and fixing identation).
Change-Id: I4ce3300e6958728dc15ca5cced09eaa01510606c Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
show more ...
|
| 47bf3ac3 | 06-Aug-2021 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
feat(measured boot): move init and teardown functions to platform layer
Right now, the measured boot driver is strongly coupled with the TCG event log driver. It would not be possible to push the me
feat(measured boot): move init and teardown functions to platform layer
Right now, the measured boot driver is strongly coupled with the TCG event log driver. It would not be possible to push the measurements somewhere else, for instance to a physical TPM.
To enable this latter use case, turn the driver's init and teardown functions into platform hooks. Call them bl2_plat_mboot_init()/finish(). This allows each platform to implement them appropriately, depending on the type of measured boot backend they use. For example, on a platform with a physical TPM, the plat_mboot_init() hook would startup the TPM and setup it underlying bus (e.g. SPI).
Move the current implementation of the init and teardown function to the FVP platform layer.
Finally move the conditional compilation logic (#if MEASURED_BOOT) out of bl2_main() to improve its readability. Provide a dummy implementation in the case measured boot is not included in the build.
Change-Id: Ib6474cb5a9c1e3d4a30c7f228431b22d1a6e85e3 Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com> Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
show more ...
|