| bb7b85a3 | 10-Nov-2022 |
Andre Przywara <andre.przywara@arm.com> |
refactor(context-mgmt): move FEAT_FGT save/restore code into C
At the moment we do the EL2 context save/restore sequence in assembly, where it is just guarded by #ifdef statement for the build time
refactor(context-mgmt): move FEAT_FGT save/restore code into C
At the moment we do the EL2 context save/restore sequence in assembly, where it is just guarded by #ifdef statement for the build time flags. This does not cover the FEAT_STATE_CHECK case, where we need to check for the runtime availability of a feature.
To simplify this extension, and to avoid writing too much code in assembly, move that sequence into C: it is called from C context anyways.
This protects the C code with the new version of the is_xxx_present() check, which combines both build time and runtime check, as necessary, and allows the compiler to optimise the calls aways, if we don't need them.
Signed-off-by: Andre Przywara <andre.przywara@arm.com> Change-Id: I7c91bec60efcc00a43429dc0381f7e1c203be780
show more ...
|
| f0deb4c8 | 10-Nov-2022 |
Andre Przywara <andre.przywara@arm.com> |
refactor(amu): convert FEAT_AMUv1 to new scheme
For the FGT context save/restore operation, we need to look at the AMUv1 feature, so migrate this one over to the new scheme. This uses the generic ch
refactor(amu): convert FEAT_AMUv1 to new scheme
For the FGT context save/restore operation, we need to look at the AMUv1 feature, so migrate this one over to the new scheme. This uses the generic check function in feat_detect.c, and splits the feature check into two functions, as was done before for FEAT_FGT.
Signed-off-by: Andre Przywara <andre.przywara@arm.com> Change-Id: I95ad797f15001b2c9d1800c9d4af33fba79e136f
show more ...
|
| ce485955 | 10-Nov-2022 |
Andre Przywara <andre.przywara@arm.com> |
refactor(cpufeat): decouple FGT feature detection and build flags
Split the feature check for FEAT_FGT into two parts: - A boolean function that just evaluates whether the feature is usable. This
refactor(cpufeat): decouple FGT feature detection and build flags
Split the feature check for FEAT_FGT into two parts: - A boolean function that just evaluates whether the feature is usable. This takes build time flags into account, and only evaluates the CPU feature ID registers when the flexible FEAT_STATE_CHECK method is used. - A "raw" function that returns the unfiltered CPU feature ID register.
Change the callers where needed, to give them the version they actually want.
Signed-off-by: Andre Przywara <andre.przywara@arm.com> Change-Id: I9a041132d280451f5d9f653a62904f603b2a916d
show more ...
|
| b45dd74e | 14-Nov-2022 |
Andre Przywara <andre.przywara@arm.com> |
refactor(cpufeat): check FEAT_FGT in a new way
To implement proper runtime checking of features, and to be able to extend feat_detect.c to catch other cases, rework the FEAT_FGT check to directly ca
refactor(cpufeat): check FEAT_FGT in a new way
To implement proper runtime checking of features, and to be able to extend feat_detect.c to catch other cases, rework the FEAT_FGT check to directly call a generic function instead of providing a trivial specific one. The #ifdef is moved into the function, and rewritten as a proper C if statement. We need to force the compiler to inline that function, otherwise the optimisation won't work, once we exceed a certain number of callers.
This starts with FEAT_FGT, but all the other features will be moved over eventually, in separate patches.
For all features checked this way, we delay the panic() until after every feature has been checked, to list them all during one run.
Signed-off-by: Andre Przywara <andre.przywara@arm.com> Change-Id: Ic576922ff2c4f8d3c1b87b5843b3626729fe4514
show more ...
|
| 69c17f52 | 14-Nov-2022 |
Andre Przywara <andre.przywara@arm.com> |
refactor(cpufeat): move helpers into .c file, rename FEAT_STATE_
The FEATURE_DETECTION functionality had some definitions in a header file, although they were only used internally in the .c file. Mo
refactor(cpufeat): move helpers into .c file, rename FEAT_STATE_
The FEATURE_DETECTION functionality had some definitions in a header file, although they were only used internally in the .c file. Move them over there, since there are of no interest to other users.
Also use the opportuntiy to rename the less telling FEAT_STATE_[12] names, and let the "0" case join the game. We use DISABLED, ALWAYS, and CHECK now, so that the casual reader has some idea what those numbers are supposed to mean.
feature_panic() becomes "static inline", since disabling all features makes it unused, so the compiler complains otherwise.
Finally add a new category "cpufeat" to cover CPU feature related changes.
Signed-off-by: Andre Przywara <andre.przywara@arm.com> Change-Id: If0c8ba91ad22440260ccff383c33bdd055eefbdc
show more ...
|
| c2fb8ef6 | 14-Nov-2022 |
Andre Przywara <andre.przywara@arm.com> |
feat(aarch64): make ID system register reads non-volatile
Our system register access function wrappers are using "volatile" inline assembly instructions. On the first glance this is a good idea, sin
feat(aarch64): make ID system register reads non-volatile
Our system register access function wrappers are using "volatile" inline assembly instructions. On the first glance this is a good idea, since many system registers have side effects, and we don't want the compiler to optimise or reorder them (what "volatile" prevents).
However this also naturally limits the compiler's freedom to optimise code better, and those volatile properties don't apply to every type of system register. One example are the CPU ID registers, which have constant values, are side-effect free and read-only.
Introduce a new wrapper type that drops the volatile keyword, and use that for the wrappers instantiating ID register accessors.
This allows the compiler to freely optimise those instructions away, if their result isn't actually used, which can trigger further optimisations.
Change-Id: I3c64716ae4f4bf603f0ea57b652bd50bcc67bb0e Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| 6ef63af6 | 14-Dec-2022 |
Raef Coles <raef.coles@arm.com> |
feat(rss): add TC platform UUIDs for RSS images
Add platform fiptool and UUIDs to the TC platform, to allow RSS images to be inserted into and used from FIPs
Change-Id: Ic8e11bd4a766bdc616af7dee60d
feat(rss): add TC platform UUIDs for RSS images
Add platform fiptool and UUIDs to the TC platform, to allow RSS images to be inserted into and used from FIPs
Change-Id: Ic8e11bd4a766bdc616af7dee60d44fc5d1f6e7b6 Signed-off-by: Raef Coles <raef.coles@arm.com>
show more ...
|
| fa27d116 | 11-Jan-2023 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
docs: change security advisories notification channel
Our documentation currently says that new security advisories will be announced on the project's issue tracker. However, this issue tracker is b
docs: change security advisories notification channel
Our documentation currently says that new security advisories will be announced on the project's issue tracker. However, this issue tracker is barely used by TF-A community and the software it is based on is getting deprecated. Thus from now on, security advisories will rather be announced on the project's mailing list.
Update TF-A documentation to reflect that.
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com> Change-Id: If2f635795e0af4c794015a025899bfcc7116ab38
show more ...
|
| 0fe002c9 | 11-Jan-2023 |
Akshay Belsare <akshay.belsare@amd.com> |
fix(versal): print proper atf handoff source
Versal uses PLM in the boot flow and printing FSBL in the log for handoff parameters is misleading. Print proper source of TF-A handoff parameters.
Chan
fix(versal): print proper atf handoff source
Versal uses PLM in the boot flow and printing FSBL in the log for handoff parameters is misleading. Print proper source of TF-A handoff parameters.
Change-Id: I331e2eac2f5d30beed8573940ae02094254a759b Signed-off-by: Akshay Belsare <akshay.belsare@amd.com>
show more ...
|
| 28dc8258 | 05-Jan-2023 |
Yann Gautier <yann.gautier@st.com> |
fix(libc): remove __putchar alias
This issue was triggered by sparse tool: lib/libc/putchar.c:9:5: warning: symbol '__putchar' was not declared. Should it be static? Instead of setting __putchar as
fix(libc): remove __putchar alias
This issue was triggered by sparse tool: lib/libc/putchar.c:9:5: warning: symbol '__putchar' was not declared. Should it be static? Instead of setting __putchar as static, just remove the function and directly use putchar() with a weak attribute.
Signed-off-by: Yann Gautier <yann.gautier@st.com> Change-Id: Ib35e4ba064f06010851bb860269b08462fe3d3bd
show more ...
|
| a321337b | 06-Jan-2023 |
Liju-Clr Chen <liju-clr.chen@mediatek.com> |
refactor(mediatek): add new LPM API for further extension
Add new LPM API `mt_lp_rm_find_constraint` and `mt_lp_rm_run_constraint` for further extension.
Signed-off-by: Liju-Clr Chen <liju-clr.chen
refactor(mediatek): add new LPM API for further extension
Add new LPM API `mt_lp_rm_find_constraint` and `mt_lp_rm_run_constraint` for further extension.
Signed-off-by: Liju-Clr Chen <liju-clr.chen@mediatek.com> Change-Id: I8298811e03227285a7d086166edf9e87471f74b4
show more ...
|
| b0208c73 | 06-Jan-2023 |
Liju-Clr Chen <liju-clr.chen@mediatek.com> |
refactor(mediatek): change the parameters of LPM API
Change the parameters of the LPM API for further extension.
Change-Id: Id8897c256c2118d00c6b9f3e7424ebc6100f02eb Signed-off-by: Liju-Clr Chen <l
refactor(mediatek): change the parameters of LPM API
Change the parameters of the LPM API for further extension.
Change-Id: Id8897c256c2118d00c6b9f3e7424ebc6100f02eb Signed-off-by: Liju-Clr Chen <liju-clr.chen@mediatek.com>
show more ...
|
| 1c5fc9a2 | 06-Jan-2023 |
Liju-Clr Chen <liju-clr.chen@mediatek.com> |
refactor(mediatek): change LPM header file path for further extension
Move `mt_lp_rm.h` to `plat/mediatek/include/lpm` for further extension.
Change-Id: If377ce6791ce80f82643b0f2466eb0f1aa5aa40b Si
refactor(mediatek): change LPM header file path for further extension
Move `mt_lp_rm.h` to `plat/mediatek/include/lpm` for further extension.
Change-Id: If377ce6791ce80f82643b0f2466eb0f1aa5aa40b Signed-off-by: Liju-Clr Chen <liju-clr.chen@mediatek.com>
show more ...
|
| e56a939c | 15-Dec-2022 |
Shaocheng Wang <shaocheng.wang@mediatek.corp-partner.google.com> |
feat(mt8188): keep infra and peri on when system suspend
In order to wake up system from USB devices, keep infra and peri on when system suspend.
Change-Id: I0a0eb2e72709b0cc1bf11b36241a50cb5d85d9b
feat(mt8188): keep infra and peri on when system suspend
In order to wake up system from USB devices, keep infra and peri on when system suspend.
Change-Id: I0a0eb2e72709b0cc1bf11b36241a50cb5d85d9b8 Signed-off-by: Shaocheng Wang <shaocheng.wang@mediatek.corp-partner.google.com>
show more ...
|
| 380f64b2 | 07-Sep-2022 |
James Liao <jamesjj.liao@mediatek.com> |
feat(mt8188): enable SPM and LPM
Enable SPM and LPM features for MT8188.
Signed-off-by: James Liao <jamesjj.liao@mediatek.com> Change-Id: Ib3e2b305e9e3cf5a67e6e787ff942831b5ff28cd |
| f299efbe | 16-Nov-2022 |
James Liao <jamesjj.liao@mediatek.com> |
feat(mt8188): add SPM feature support
Add SPM low power functions, such as system suspend.
Change-Id: I6d1ad847a81ba9c347ab6fb8a8cb8c69004b7add Signed-off-by: James Liao <jamesjj.liao@mediatek.com> |
| 45d50759 | 07-Sep-2022 |
James Liao <jamesjj.liao@mediatek.com> |
feat(mt8188): add MT8188 SPM support
Add SPM basic functions including SPM init.
Signed-off-by: James Liao <jamesjj.liao@mediatek.com> Change-Id: I5d4860685c15f3b8d555e697837862287f0c303e |
| c234ad17 | 15-Nov-2022 |
James Liao <jamesjj.liao@mediatek.com> |
feat(mediatek): add SPM's SSPM notifier
The notifier is used to notify SSPM to sleep when system suspend or notify SSPM to wakeup when system resume.
Change-Id: I027ca356a84ea1e58be54a8a5eb302b3b96
feat(mediatek): add SPM's SSPM notifier
The notifier is used to notify SSPM to sleep when system suspend or notify SSPM to wakeup when system resume.
Change-Id: I027ca356a84ea1e58be54a8a5eb302b3b96c2e22 Signed-off-by: James Liao <jamesjj.liao@mediatek.com>
show more ...
|
| 1a64689d | 07-Sep-2022 |
James Liao <jamesjj.liao@mediatek.com> |
feat(mt8188): add the register definitions accessed by SPM
SPM needs to access some modules' registers to decide its sleep behavior. This patch add these register definitions to platform_def.h.
Sig
feat(mt8188): add the register definitions accessed by SPM
SPM needs to access some modules' registers to decide its sleep behavior. This patch add these register definitions to platform_def.h.
Signed-off-by: James Liao <jamesjj.liao@mediatek.com> Change-Id: I3bebe74e367d5f6a7b59563036e18a83a3ef31e9
show more ...
|
| 917abdd9 | 07-Sep-2022 |
James Liao <jamesjj.liao@mediatek.com> |
feat(mediatek): add new features of LPM
Add new functions and intefaces of LPM to support more interactions between LPM providers and users.
Signed-off-by: James Liao <jamesjj.liao@mediatek.com> Ch
feat(mediatek): add new features of LPM
Add new functions and intefaces of LPM to support more interactions between LPM providers and users.
Signed-off-by: James Liao <jamesjj.liao@mediatek.com> Change-Id: I8ebbda0c0ef5be3a7a388a38c09424ebf785996f
show more ...
|
| 76a91d87 | 06-Jan-2023 |
Manish Pandey <manish.pandey2@arm.com> |
refactor(el3_runtime): remove unnecessary assembly macros
Following macros removed - handle_async_ea : It duplicates "check_and_unmask_ea" functionality - check_if_serror_from_EL3: This macro is
refactor(el3_runtime): remove unnecessary assembly macros
Following macros removed - handle_async_ea : It duplicates "check_and_unmask_ea" functionality - check_if_serror_from_EL3: This macro is small and called only once, replace this macro with instructions at the caller.
Signed-off-by: Manish Pandey <manish.pandey2@arm.com> Change-Id: Id7eec6263ec23cc8792139f491c563f616fd3618
show more ...
|
| 03bd4810 | 09-Dec-2022 |
Yann Gautier <yann.gautier@st.com> |
fix(console): correct scopes for console symbols
console_state is only used in multi_console.c, it is then declared as static. console_list is used by several files, declare it as extern. This corre
fix(console): correct scopes for console symbols
console_state is only used in multi_console.c, it is then declared as static. console_list is used by several files, declare it as extern. This corrects the 2 sparse warnings: drivers/console/multi_console.c:13:11: warning: symbol 'console_list' was not declared. Should it be static? drivers/console/multi_console.c:14:9: warning: symbol 'console_state' was not declared. Should it be static?
Signed-off-by: Yann Gautier <yann.gautier@st.com> Change-Id: Id1891595906c258e8cb8aa325226f0a43723ca0e
show more ...
|
| 654b65b3 | 06-Jan-2023 |
Yann Gautier <yann.gautier@st.com> |
fix(auth): use NULL instead of 0 for pointer check
This was triggered by sparse tool: drivers/auth/mbedtls/mbedtls_x509_parser.c:481:42: warning: Using plain integer as NULL pointer
Signed-off-by:
fix(auth): use NULL instead of 0 for pointer check
This was triggered by sparse tool: drivers/auth/mbedtls/mbedtls_x509_parser.c:481:42: warning: Using plain integer as NULL pointer
Signed-off-by: Yann Gautier <yann.gautier@st.com> Change-Id: I392316c2a81ef8da7597e35f136e038f152d19d1
show more ...
|
| 06d223cb | 09-Dec-2022 |
Yann Gautier <yann.gautier@st.com> |
fix(io): compare function pointers with NULL
The ops->read and ops->write existence was checked with 0, change it to NULL. This corrects sparse issues: drivers/io/io_block.c:272:9: warning: Using p
fix(io): compare function pointers with NULL
The ops->read and ops->write existence was checked with 0, change it to NULL. This corrects sparse issues: drivers/io/io_block.c:272:9: warning: Using plain integer as NULL pointer drivers/io/io_block.c:384:9: warning: Using plain integer as NULL pointer drivers/io/io_block.c:384:9: warning: Using plain integer as NULL pointer
Signed-off-by: Yann Gautier <yann.gautier@st.com> Change-Id: I039050a645107523d8263ddf820e539c260d956c
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 ...
|