refactor(platforms): remove usage of psci_power_down_wfiThe callers in PSCI will now call wfi() after calling thepwr_domain_pwr_down() platform hook (previously they were mutuallyexclusive). As s
refactor(platforms): remove usage of psci_power_down_wfiThe callers in PSCI will now call wfi() after calling thepwr_domain_pwr_down() platform hook (previously they were mutuallyexclusive). As such, there is no need for platforms to do thisthemselves. In fact, it is strongly advisable for platforms not to dothis themselves so that the PSCI can apply any relevant erratamitigations.Change-Id: Ic9702edef7503996be24d984e29dfcc13bc3fcbaSigned-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
Merge "feat(rk3576): support rk3576" into integration
feat(rk3576): support rk3576rk3576 is an Octa-core soc with Cortex-a53/a72 inside.This patch supports the following functions:1. basic platform setup2. power up/off cpus3. suspend/resume cpus4
feat(rk3576): support rk3576rk3576 is an Octa-core soc with Cortex-a53/a72 inside.This patch supports the following functions:1. basic platform setup2. power up/off cpus3. suspend/resume cpus4. suspend/resume system5. reset system6. power off systemChange-Id: I67a019822bd4af13e4a3cdd09cf06202f4922cc4Signed-off-by: XiaoDong Huang <derrick.huang@rock-chips.com>
feat(rockchip): increase FDT Buffer for Rockchip DevicesModify the FDT buffer for Rockchip devices to 384KiB. This is done toallow us to pass mainline devicetrees with symbols through Arm Trusted
feat(rockchip): increase FDT Buffer for Rockchip DevicesModify the FDT buffer for Rockchip devices to 384KiB. This is done toallow us to pass mainline devicetrees with symbols through Arm TrustedFirmware. 384KiB was chosen as 512KiB is very near the maximumsupported with the current reserved memory. As of kernel version 6.13,the largest devicetree with symbols enabled is 215KiB, and the largestRockchip devicetree with symbols enabled is 176KiB(rk3588-evb1-v10.dtb).Change-Id: Iea9343d7a30ee26cad3ee5cc848980a93873ae34Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
chore(docs): drop the "wfi" from `pwr_domain_pwr_down_wfi`To allow for generic handling of a wakeup, this hook is no longerexpected to call wfi itself. Update the name everywhere to reflect thise
chore(docs): drop the "wfi" from `pwr_domain_pwr_down_wfi`To allow for generic handling of a wakeup, this hook is no longerexpected to call wfi itself. Update the name everywhere to reflect thisexpectation so that future platform implementers don't get misled.Change-Id: Ic33f0b6da74592ad6778fd802c2f0b85223af614Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
refactor: panic after calling psci_power_down_wfi()This function doesn't return and its callers that don't return eitherrely on this. Drop the dead attribute and add a panic() after it to makethi
refactor: panic after calling psci_power_down_wfi()This function doesn't return and its callers that don't return eitherrely on this. Drop the dead attribute and add a panic() after it to makethis expectation explicit. Calling `wfi` in the powerdown sequence isterminal so even if the function was made to return, there would be nofunctional change.This is useful for a following patch that makes psci_power_down_wfi()return.Change-Id: I62ca1ee058b1eaeb046966c795081e01bf45a2ebSigned-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
fix(rockchip): pmu: Do not mark already defined functions as weakThese functions are already defined as static functions in same headerFixes| plat/rockchip/common/drivers/pmu/pmu_com.h:35:14: er
fix(rockchip): pmu: Do not mark already defined functions as weakThese functions are already defined as static functions in same headerFixes| plat/rockchip/common/drivers/pmu/pmu_com.h:35:14: error: weak identifier 'pmu_power_domain_ctr' never declared [-Werror]| #pragma weak pmu_power_domain_ctr| ^| plat/rockchip/common/drivers/pmu/pmu_com.h:36:14: error: weak identifier 'check_cpu_wfie' never declared [-Werror]| #pragma weak check_cpu_wfie| ^Signed-off-by: Khem Raj <raj.khem@gmail.com>[fixed alignment in commit log][added fix(rockchip): prefix in commit title]Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>Change-Id: I96d4acbe743ba4b8996f0be0fa713b341bd4903c
fix(rockchip): fix "unexpected token" error with clangChange-Id: I5be872c882801d170af4511b2289b77a13395162Signed-off-by: mojyack <mojyack@gmail.com>
feat(rk3588): enable crypto functionThe CPU crypto is not default on when power up, need to enable it bysoftware.Signed-off-by: XiaoDong Huang <derrick.huang@rock-chips.com>Change-Id: Ifee2eab5
feat(rk3588): enable crypto functionThe CPU crypto is not default on when power up, need to enable it bysoftware.Signed-off-by: XiaoDong Huang <derrick.huang@rock-chips.com>Change-Id: Ifee2eab55d9c13cef5f15926fb80016845e2a66d
feat(rk3588): support SCMI for clock/reset domainrockchip scmi clock controls clocks which only available in secure mode.Signed-off-by: XiaoDong Huang <derrick.huang@rock-chips.com>Change-Id: I5
feat(rk3588): support SCMI for clock/reset domainrockchip scmi clock controls clocks which only available in secure mode.Signed-off-by: XiaoDong Huang <derrick.huang@rock-chips.com>Change-Id: I5b983877a5b4e8acababbf7e0a3e2725e6479e08
feat(rk3588): support rk3588rk3588 is an Octa-core soc with Cortex-a55/a76 inside.This patch supports the following functions:1. basic platform setup2. power up/off cpus3. suspend/resume cpus4
feat(rk3588): support rk3588rk3588 is an Octa-core soc with Cortex-a55/a76 inside.This patch supports the following functions:1. basic platform setup2. power up/off cpus3. suspend/resume cpus4. suspend/resume system5. reset system6. power off systemSigned-off-by: XiaoDong Huang <derrick.huang@rock-chips.com>Change-Id: I598109f15a2efd5b33aedd176cf708c08cb1dcf4
fix(rockchip): add parenthesis for BITS_SHIFT macroSigned-off-by: XiaoDong Huang <derrick.huang@rock-chips.com>Change-Id: Ideac271469f0753c5b7aaed7bb07a792b64ae01e
fix(rockchip): xlat: fix compatibility between v1 and v2Signed-off-by: XiaoDong Huang <derrick.huang@rock-chips.com>Change-Id: I1194ef232947ba90fa374466773373762a5acdb5
feat(rockchip): add RK3566/RK3568 Socs supportRK3566/RK3568 is a Quad-core soc and Cortex-a55 inside.This patch supports the following functions:1. basic platform setup2. power up/off cpus3. su
feat(rockchip): add RK3566/RK3568 Socs supportRK3566/RK3568 is a Quad-core soc and Cortex-a55 inside.This patch supports the following functions:1. basic platform setup2. power up/off cpus3. suspend/resume cpus4. suspend/resume system5. reset systemSigned-off-by: shengfei Xu <xsf@rock-chips.com>Change-Id: I8b98a4d07664de26bd6078f63664cbc3d9c1c68c
fix(tree): correct some typosfound using codespell (https://github.com/codespell-project/codespell).Signed-off-by: Elyes Haouas <ehaouas@noos.fr>Change-Id: I1bfa797e3460adddeefa916bb68e22beddaf6
fix(tree): correct some typosfound using codespell (https://github.com/codespell-project/codespell).Signed-off-by: Elyes Haouas <ehaouas@noos.fr>Change-Id: I1bfa797e3460adddeefa916bb68e22beddaf6373
build: always prefix section names with `.`Some of our specialized sections are not prefixed with the conventionalperiod. The compiler uses input section names to derive certain othersection name
build: always prefix section names with `.`Some of our specialized sections are not prefixed with the conventionalperiod. The compiler uses input section names to derive certain othersection names (e.g. `.rela.text`, `.relacpu_ops`), and these can bedifficult to select in linker scripts when there is a lack of adelimiter.This change introduces the period prefix to all specialized sectionnames.BREAKING-CHANGE: All input and output linker section names have been prefixed with the period character, e.g. `cpu_ops` -> `.cpu_ops`.Change-Id: I51c13c5266d5975fbd944ef4961328e72f82fc1cSigned-off-by: Chris Kay <chris.kay@arm.com>
fix(rockchip): align fdt buffer on 8 bytesSince commit 94b2f94bd632 ("feat(libfdt): upgrade libfdt source files"),8-byte alignment of the FDT address is enforced to follow the DTstandard.Rockch
fix(rockchip): align fdt buffer on 8 bytesSince commit 94b2f94bd632 ("feat(libfdt): upgrade libfdt source files"),8-byte alignment of the FDT address is enforced to follow the DTstandard.Rockchip implementation of params_early_setup loads the FDT address aspassed by the bootloader into a buffer. This buffer is currently made ofuint8_t which means it is not 8-byte aligned and might result infdt_open_into failing.Instead, let's make this buffer uint64_t to make it 8-byte aligned.Cc: Quentin Schulz <foss+tf-a@0leil.net>Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>Change-Id: Ifcf0e0cf4000e3661d76d3c3a2fe3921f7fe44b9
fix(rk3399): explicitly define the sys_sleep_flag_sram typeRecent GCC versions now do array-bounds checking which fails forsys_sleep_flag_sram because the struct is larger than the 8-bytessize th
fix(rk3399): explicitly define the sys_sleep_flag_sram typeRecent GCC versions now do array-bounds checking which fails forsys_sleep_flag_sram because the struct is larger than the 8-bytessize that (void *) isThis variable is only used in one place as the struct,so it can be defined with the struct type.Resolves:plat/rockchip/px30/drivers/pmu/pmu.c: In function 'rockchip_soc_sys_pwr_dm_suspend':plat/rockchip/px30/drivers/pmu/pmu.c:977:23: error: array subscript 'struct psram_data_t[0]' is partly outside array bounds of 'void[8]' [-Werror=array-bounds] 977 | psram_boot_cfg->pm_flag &= ~PM_WARM_BOOT_BIT;Change-Id: Ifbe42d11d0c7875f6cb23dc0b7ffb3f3f90c55a8Signed-off-by: Scott Parlane <scott@parlanenz.com>
rockchip: Add support for the stack protectorIt uses the system timer as "entropy" source in the sameway as QEMU, layerscape and others.Change-Id: Icda17b78e85255bea96109ca2ee0e091187d62acSigne
rockchip: Add support for the stack protectorIt uses the system timer as "entropy" source in the sameway as QEMU, layerscape and others.Change-Id: Icda17b78e85255bea96109ca2ee0e091187d62acSigned-off-by: Christoph Müllner <christophm30@gmail.com>
rockchip: don't crash if we get an FDT we can't parseWhen we parse the param from BL2, we try to parse it as a FDT and then,if that fails, as aux params. However, we don't sufficiently distinguish
rockchip: don't crash if we get an FDT we can't parseWhen we parse the param from BL2, we try to parse it as a FDT and then,if that fails, as aux params. However, we don't sufficiently distinguishbetween failure modes in the first step: specifically, if we are givenan FDT with good magic that we can't parse for some other reason (e.g.not enough space in our buffer), we still attempt to parse it as auxparams even though that's guaranteed to fatal. Instead, we should eitherfail with a more descriptive message or continue to boot without parsingthe FDT.This patch takes the latter approach, since all we currently get fromthe FDT is non-critical UART params.Signed-off-by: Thomas Hebb <tommyhebb@gmail.com>Change-Id: I1e98f1fcda4f78e6b45e86956288bafe58b113e4
rockchip: increase FDT buffer sizeThe size of buffer currently used to store the FDT passed from U-Boot asa platform parameter is not large enough to store some RK3399 devicetrees. The largest RK
rockchip: increase FDT buffer sizeThe size of buffer currently used to store the FDT passed from U-Boot asa platform parameter is not large enough to store some RK3399 devicetrees. The largest RK3399 device tree currently in U-Boot (for thePinebook Pro) is about 70KB in size when passed to TF-A, so increase thebuffer size to 128K which gives some headroom for possibly larger FDTsin future.Signed-off-by: Hugh Cole-Baker <sigmaris@gmail.com>Change-Id: I414caf20683cd47c02ee470dfa988544f3809919
16550: Use generic console_t data structureSince now the generic console_t structure holds the UART base address aswell, let's use that generic location and drop the UART driver specificdata stru
16550: Use generic console_t data structureSince now the generic console_t structure holds the UART base address aswell, let's use that generic location and drop the UART driver specificdata structure at all.Change-Id: I5c2fe3b6a667acf80c808cfec4a64059a2c9c25fSigned-off-by: Andre Przywara <andre.przywara@arm.com>
rockchip: fix definition of struct param_ddr_usageIn extreme cases, the number of secure regions is one more thannon-secure regions. So array "s_base" and "s_top"s sizein struct param_ddr_usage n
rockchip: fix definition of struct param_ddr_usageIn extreme cases, the number of secure regions is one more thannon-secure regions. So array "s_base" and "s_top"s sizein struct param_ddr_usage need to be adjust to "DDR_REGION_NR_MAX + 1".Signed-off-by: XiaoDong Huang <derrick.huang@rock-chips.com>Change-Id: Ifc09da2c8f8afa1aebcc78f8fbc21ac95abdece2
Use correct type when reading SCR registerThe Secure Configuration Register is 64-bits in AArch64 and 32-bits inAArch32. Use u_register_t instead of unsigned int to reflect this.Change-Id: I51b6
Use correct type when reading SCR registerThe Secure Configuration Register is 64-bits in AArch64 and 32-bits inAArch32. Use u_register_t instead of unsigned int to reflect this.Change-Id: I51b69467baba36bf0cfaec2595dc8837b1566934Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>
plat/rockchip: initialize reset and poweroff GPIOs with known invalid valueAnd return NULL if we didn't get them in bl aux params otherwise reset and poweroffwill be broken on platforms that do no
plat/rockchip: initialize reset and poweroff GPIOs with known invalid valueAnd return NULL if we didn't get them in bl aux params otherwise reset and poweroffwill be broken on platforms that do not have reset and poweroff GPIOs.Fixes: c1185ffde17c ("plat/rockchip: Switch to use new common BL aux parameter library")Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>Change-Id: Ic6cf6383d8f05d745e2c5d5e1b1df38514ea8429
12345