| /rk3399_ARM-atf/plat/allwinner/sun50i_h6/ |
| H A D | sunxi_idle_states.c | e2b18771fc2a0528dda18dbdaac08dd8530df25a Sun Jan 23 05:37:12 UTC 2022 Samuel Holland <samuel@sholland.org> feat(allwinner): provide CPU idle states to the rich OS
When using SCPI as the PSCI backend, firmware can wake up the CPUs and cluster from sleep, so CPU idle states are available for the rich OS to use. In that case, advertise them to the rich OS via the DTB.
Change-Id: I718ef6ef41212fe5213b11b4799613adbbe6e0eb Signed-off-by: Samuel Holland <samuel@sholland.org>
|
| /rk3399_ARM-atf/plat/allwinner/sun50i_h616/ |
| H A D | sunxi_idle_states.c | e2b18771fc2a0528dda18dbdaac08dd8530df25a Sun Jan 23 05:37:12 UTC 2022 Samuel Holland <samuel@sholland.org> feat(allwinner): provide CPU idle states to the rich OS
When using SCPI as the PSCI backend, firmware can wake up the CPUs and cluster from sleep, so CPU idle states are available for the rich OS to use. In that case, advertise them to the rich OS via the DTB.
Change-Id: I718ef6ef41212fe5213b11b4799613adbbe6e0eb Signed-off-by: Samuel Holland <samuel@sholland.org>
|
| /rk3399_ARM-atf/plat/allwinner/sun50i_r329/ |
| H A D | sunxi_idle_states.c | e2b18771fc2a0528dda18dbdaac08dd8530df25a Sun Jan 23 05:37:12 UTC 2022 Samuel Holland <samuel@sholland.org> feat(allwinner): provide CPU idle states to the rich OS
When using SCPI as the PSCI backend, firmware can wake up the CPUs and cluster from sleep, so CPU idle states are available for the rich OS to use. In that case, advertise them to the rich OS via the DTB.
Change-Id: I718ef6ef41212fe5213b11b4799613adbbe6e0eb Signed-off-by: Samuel Holland <samuel@sholland.org>
|
| /rk3399_ARM-atf/plat/allwinner/sun50i_a64/ |
| H A D | sunxi_idle_states.c | e2b18771fc2a0528dda18dbdaac08dd8530df25a Sun Jan 23 05:37:12 UTC 2022 Samuel Holland <samuel@sholland.org> feat(allwinner): provide CPU idle states to the rich OS
When using SCPI as the PSCI backend, firmware can wake up the CPUs and cluster from sleep, so CPU idle states are available for the rich OS to use. In that case, advertise them to the rich OS via the DTB.
Change-Id: I718ef6ef41212fe5213b11b4799613adbbe6e0eb Signed-off-by: Samuel Holland <samuel@sholland.org>
|
| H A D | platform_defaults.mk | 188a9888e7b541299133a75b7632fdda2584833d Sun Aug 27 20:09:45 UTC 2023 Andrey Skvortsov <andrej.skvortzov@gmail.com> fix(allwinner): enable dtb modifications for CPU idle states to the rich OS
Commit e2b18771fc2a0528dda18dbdaac08dd8530df25a ("feat(allwinner): provide CPU idle states to the rich OS") added functionality to amend dtb, when SCPI as the PSCI backend is available. But this functionality is disabled by default even for platforms, that support it, like A64. As a result rich OS don't get information about available CPU idle states.
Due to size constraints of A64 platform DEBUG=1 can be built with dtb amend functionality only with LTO enabled. So ENABLE_LTO is enabled by default for this platform.
``` aarch64-linux-gnu-ld.bfd: address 0x500dd of build/sun50i_a64/debug/bl31/bl31.elf section `.data' is not within region `RAM' aarch64-linux-gnu-ld.bfd: BL31 image has exceeded its limit. aarch64-linux-gnu-ld.bfd: region `RAM' overflowed by 224 bytes ```
To build with ENABLE_LTO=0 and DEBUG=1 it's required SUNXI_AMEND_DTB=0 to explicitly disable dtb amend functionality.
sun50i_r329 SUNXI_AMEND_DTB=1 DEBUG=1 build fails with 'region `RAM' overflowed by 120 bytes'. To avoid unnecessary RAM consumption on other resource-constraints platforms (like sun50i_r329) SUNXI_AMEND_DTB is enabled only on sun50i_a64. Otherwise On other platforms sunxi_idle_states are empty.
Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com> Change-Id: I81fcf31b5bd2bd02a9f3361a6a519632f087445d
|
| H A D | platform.mk | 188a9888e7b541299133a75b7632fdda2584833d Sun Aug 27 20:09:45 UTC 2023 Andrey Skvortsov <andrej.skvortzov@gmail.com> fix(allwinner): enable dtb modifications for CPU idle states to the rich OS
Commit e2b18771fc2a0528dda18dbdaac08dd8530df25a ("feat(allwinner): provide CPU idle states to the rich OS") added functionality to amend dtb, when SCPI as the PSCI backend is available. But this functionality is disabled by default even for platforms, that support it, like A64. As a result rich OS don't get information about available CPU idle states.
Due to size constraints of A64 platform DEBUG=1 can be built with dtb amend functionality only with LTO enabled. So ENABLE_LTO is enabled by default for this platform.
``` aarch64-linux-gnu-ld.bfd: address 0x500dd of build/sun50i_a64/debug/bl31/bl31.elf section `.data' is not within region `RAM' aarch64-linux-gnu-ld.bfd: BL31 image has exceeded its limit. aarch64-linux-gnu-ld.bfd: region `RAM' overflowed by 224 bytes ```
To build with ENABLE_LTO=0 and DEBUG=1 it's required SUNXI_AMEND_DTB=0 to explicitly disable dtb amend functionality.
sun50i_r329 SUNXI_AMEND_DTB=1 DEBUG=1 build fails with 'region `RAM' overflowed by 120 bytes'. To avoid unnecessary RAM consumption on other resource-constraints platforms (like sun50i_r329) SUNXI_AMEND_DTB is enabled only on sun50i_a64. Otherwise On other platforms sunxi_idle_states are empty.
Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com> Change-Id: I81fcf31b5bd2bd02a9f3361a6a519632f087445d
|
| /rk3399_ARM-atf/plat/allwinner/common/ |
| H A D | sunxi_prepare_dtb.c | e2b18771fc2a0528dda18dbdaac08dd8530df25a Sun Jan 23 05:37:12 UTC 2022 Samuel Holland <samuel@sholland.org> feat(allwinner): provide CPU idle states to the rich OS
When using SCPI as the PSCI backend, firmware can wake up the CPUs and cluster from sleep, so CPU idle states are available for the rich OS to use. In that case, advertise them to the rich OS via the DTB.
Change-Id: I718ef6ef41212fe5213b11b4799613adbbe6e0eb Signed-off-by: Samuel Holland <samuel@sholland.org>
|
| H A D | sunxi_pm.c | e2b18771fc2a0528dda18dbdaac08dd8530df25a Sun Jan 23 05:37:12 UTC 2022 Samuel Holland <samuel@sholland.org> feat(allwinner): provide CPU idle states to the rich OS
When using SCPI as the PSCI backend, firmware can wake up the CPUs and cluster from sleep, so CPU idle states are available for the rich OS to use. In that case, advertise them to the rich OS via the DTB.
Change-Id: I718ef6ef41212fe5213b11b4799613adbbe6e0eb Signed-off-by: Samuel Holland <samuel@sholland.org>
|
| H A D | allwinner-common.mk | e2b18771fc2a0528dda18dbdaac08dd8530df25a Sun Jan 23 05:37:12 UTC 2022 Samuel Holland <samuel@sholland.org> feat(allwinner): provide CPU idle states to the rich OS
When using SCPI as the PSCI backend, firmware can wake up the CPUs and cluster from sleep, so CPU idle states are available for the rich OS to use. In that case, advertise them to the rich OS via the DTB.
Change-Id: I718ef6ef41212fe5213b11b4799613adbbe6e0eb Signed-off-by: Samuel Holland <samuel@sholland.org>
|
| /rk3399_ARM-atf/plat/allwinner/common/include/ |
| H A D | sunxi_private.h | e2b18771fc2a0528dda18dbdaac08dd8530df25a Sun Jan 23 05:37:12 UTC 2022 Samuel Holland <samuel@sholland.org> feat(allwinner): provide CPU idle states to the rich OS
When using SCPI as the PSCI backend, firmware can wake up the CPUs and cluster from sleep, so CPU idle states are available for the rich OS to use. In that case, advertise them to the rich OS via the DTB.
Change-Id: I718ef6ef41212fe5213b11b4799613adbbe6e0eb Signed-off-by: Samuel Holland <samuel@sholland.org>
|