Hi Jonas, Il giorno dom 20 set 2026 alle ore 17:49 Jonas Karlman <[email protected]> ha scritto: > > Hi Massimo, > > On 9/20/2026 4:15 PM, Massimo Pegorer wrote: > > Looking to provide a way to print reset cause on a board equipped with > > a PX30 SoC I ran into the following existing issues related to Rockchip > > SoCs: > > > > 1. It is not possible to select DISPLAY_CPUINFO configuration option > > with ARCH_ROCKCHIP, except for RK3399 RK3288 RK3568 RK3588 SoCs, due > > to incomplete definition of type 'struct rockchip_cru' caused by > > Rockchip common implementation of print_cpuinfo() function: see > > 0f9872c4db11 for the RK3588 SoC "workaround", which I feel not > > optimal. Note that DISPLAY_CPUINFO has default y if ARM; therefore, > > it is deselected in each Rockchip defconfig except for listed SoCs. > > > > 2. It is not possible to deselect DISPLAY_CPUINFO configuration option > > with TARGET_ROC_PC_RK3399 due to missing get_reset_cause() symbol > > caused by mach-rockchip/Makefile skipping cpu-info.c. I do not see > > how e230c579a3f6 commit separated the reset cause from displaying > > cpuinfo as proposed. > > Please see the series "rockchip: Add and use rockchip_sysreset_bind() > helper" [1] that already should resolve above issues. > > That series has some loose depends for a clean apply, but the idea is to > fully move the resets status handling into the sysreset driver and start > cleanup of 'struct rockchip_cru' use. > > Please try, review and possible build on top of that :-)
Thanks, I will. I missed it as I re-joined U-Boot mailing list just a month ago. What's the status of that series? Is it going to be applied to u-boot/next? Regards, Massimo > > [1] https://patch.msgid.link/[email protected]/ > > Regards, > Jonas > > > > > 3. For the most recent Rockchip SoCs (RK3588 RK3576 RK3568 RK3528 RK3506 > > RK3308 PX30) the checkboard() function is implemented at mach level > > to print SoC information: it overrides the weak empty implementation > > called by show_board_info() when DISPLAY_BOARDINFO(_LATE) option is > > selected. > > > > Most of the other machs do not provide a checkboard() implementation > > leaving symbol available for overriding at board level. I did not > > find any "regulatory" definition in the documentation, but SoC info > > sounds to me more related to CPUINFO than to BOARDINFO, and other > > machs approach in my opinion seems more consistent with the function > > and configuration option names (checkboard and DISPLAY_BOARDINFO). > > Moreover, this approach has the advantage of allowing each board to > > implement its own checkboard() if needed (other hooks exist for > > board specific printout, of course). > > > > 4. Implementation of get_reset_cause() cannot be common in Rockchip mach > > due to different CRU_GLB_RST_ST register definitions from SoC to SoC: > > RK3288 and RK3399 share the same one, but RK3568 and RK3588 ones have > > more bit flags defined (and not all of them seem mutually exclusive), > > and PX30 and RK3308 common one differs again having WDT and TSADC bit > > flags swapped. > > > > Here is my proposal, awaiting your comments and feedback: > > > > 1. Create a Rockchip common print_cpuinfo() suitable for any SoC/board, > > making possible DISPLAY_CPUINFO selection without build issues. > > > > 2. Avoid DISPLAY_CPUINFO deselection causes build issues for any board. > > > > 3. Make print_cpuinfo() to execute code that is currently in function > > named checkboard() at SoC level (if implemented), which prints more > > info than CONFIG_SYS_SOC. Of course, keep printing CONFIG_SYS_SOC if > > function is unavailable and on returning error. > > > > 4. Make print_cpuinfo() to execute code to get the SoC reset cause and > > to print its description if the reset cause is available. > > > > 5. Avoid DISPLAY_BOARDINFO(_LATE) printing the same SoC info now printed > > by DISPLAY_CPUINFO too: it seems redundant and quite misleading. This > > makes checkboard() implementation at Rockchip mach level unnecessary: > > remove it and leave the overriding option available for board level > > implementation if needed. > > > > 6. Select DISPLAY_CPUINFO in all Rockchip board configurations related > > to PX30 RK3308 and any RK35xx (all the SoCs that were providing a > > checkboard() implementation) that already have the DISPLAY_BOARDINFO > > and/or the DISPLAY_BOARDINFO_LATE option selected, to keep SoC info > > printout. BTW they are all of PX30 RK3308 and RK35xx board configs. > > > > The whole series has been built with buildman for all of the involved > > board configurations, i.e. those related to PX30 RK3288 RK3308 RK3399 > > RK35xx. > > > > --- > > Massimo Pegorer (11): > > arm: rockchip: include SoC-specific CRU header file > > rockchip: cru: move code from header to source file > > rockchip: cru: remove unnecessary common cru.h file > > rockchip: cru: improve and simplify reset cause handling > > arm: rockchip: support DISPLAY_CPUINFO on all Rockchip SoC > > arm: rockchip: unbind cpu-info.c from DISPLAY_CPUINFO > > arm: rockchip: print SoC detailed info with DISPLAY_CPUINFO > > arm: rockchip: print reset cause only when available > > arm: rockchip: do not print SoC info with DISPLAY_BOARDINFO > > configs: rockchip: resync Anbernic RG-DS with savedefconfig > > configs: rockchip: add DISPLAY_CPUINFO to keep SoC info print > > > > arch/arm/include/asm/arch-rockchip/clock.h | 11 +++++ > > arch/arm/include/asm/arch-rockchip/cru.h | 39 ---------------- > > arch/arm/include/asm/arch-rockchip/cru_rk3399.h | 1 + > > arch/arm/mach-rockchip/Makefile | 2 +- > > arch/arm/mach-rockchip/cpu-info.c | 61 > > ++++++++++++------------- > > arch/arm/mach-rockchip/px30/px30.c | 12 ++--- > > arch/arm/mach-rockchip/rk3288/clk_rk3288.c | 37 ++++++++++++++- > > arch/arm/mach-rockchip/rk3288/rk3288.c | 2 +- > > arch/arm/mach-rockchip/rk3308/rk3308.c | 2 +- > > arch/arm/mach-rockchip/rk3399/clk_rk3399.c | 37 ++++++++++++++- > > arch/arm/mach-rockchip/rk3399/rk3399.c | 2 +- > > arch/arm/mach-rockchip/rk3506/rk3506.c | 10 ++-- > > arch/arm/mach-rockchip/rk3528/rk3528.c | 10 ++-- > > arch/arm/mach-rockchip/rk3568/clk_rk3568.c | 35 ++++++++++++++ > > arch/arm/mach-rockchip/rk3568/rk3568.c | 12 ++--- > > arch/arm/mach-rockchip/rk3576/rk3576.c | 10 ++-- > > arch/arm/mach-rockchip/rk3588/clk_rk3588.c | 35 ++++++++++++++ > > arch/arm/mach-rockchip/rk3588/rk3588.c | 10 ++-- > > board/firefly/roc-pc-rk3399/roc-pc-rk3399.c | 4 +- > > configs/9tripod-x3568-v4-rk3568_defconfig | 1 - > > configs/anbernic-rg-ds-rk3568_defconfig | 6 --- > > configs/anbernic-rgxx3-rk3566_defconfig | 1 - > > configs/bpi-r2-pro-rk3568_defconfig | 1 - > > configs/cm3588-nas-rk3588_defconfig | 1 - > > configs/coolpi-4b-rk3588s_defconfig | 1 - > > configs/coolpi-cm5-evb-rk3588_defconfig | 1 - > > configs/coolpi-cm5-genbook-rk3588_defconfig | 1 - > > configs/easepi-r1-rk3568_defconfig | 1 - > > configs/evb-px30_defconfig | 1 - > > configs/evb-rk3308_defconfig | 1 - > > configs/evb-rk3568_defconfig | 1 - > > configs/evb-rk3588_defconfig | 1 - > > configs/fastrhino-r66s-rk3568_defconfig | 1 - > > configs/firefly-px30_defconfig | 1 - > > configs/gameforce-ace-rk3588s_defconfig | 1 - > > configs/generic-rk3528_defconfig | 1 - > > configs/generic-rk3568_defconfig | 1 - > > configs/generic-rk3576_defconfig | 1 - > > configs/generic-rk3588_defconfig | 1 - > > configs/jaguar-rk3588_defconfig | 1 - > > configs/khadas-edge2-rk3588s_defconfig | 1 - > > configs/lckfb-tspi-rk3566_defconfig | 1 - > > configs/lubancat-2-rk3568_defconfig | 1 - > > configs/mnt-reform2-rk3588_defconfig | 1 - > > configs/nanopc-t6-rk3588_defconfig | 1 - > > configs/nanopi-m5-rk3576_defconfig | 1 - > > configs/nanopi-r3s-rk3566_defconfig | 1 - > > configs/nanopi-r5c-rk3568_defconfig | 1 - > > configs/nanopi-r5s-rk3568_defconfig | 1 - > > configs/nanopi-r6c-rk3588s_defconfig | 1 - > > configs/nanopi-r6s-rk3588s_defconfig | 1 - > > configs/nanopi-r76s-rk3576_defconfig | 1 - > > configs/nanopi-zero2-rk3528_defconfig | 1 - > > configs/neu6a-io-rk3588_defconfig | 1 - > > configs/neu6b-io-rk3588_defconfig | 1 - > > configs/nova-rk3588s_defconfig | 1 - > > configs/odroid-go2_defconfig | 1 - > > configs/odroid-m1-rk3568_defconfig | 1 - > > configs/odroid-m1s-rk3566_defconfig | 1 - > > configs/odroid-m2-rk3588s_defconfig | 1 - > > configs/omni3576-rk3576_defconfig | 1 - > > configs/orangepi-3b-rk3566_defconfig | 1 - > > configs/orangepi-5-max-rk3588_defconfig | 1 - > > configs/orangepi-5-plus-rk3588_defconfig | 1 - > > configs/orangepi-5-rk3588s_defconfig | 1 - > > configs/orangepi-5-ultra-rk3588_defconfig | 1 - > > configs/pinetab2-rk3566_defconfig | 1 - > > configs/powkiddy-x55-rk3566_defconfig | 1 - > > configs/px30-core-ctouch2-of10-px30_defconfig | 1 - > > configs/px30-core-ctouch2-px30_defconfig | 1 - > > configs/px30-core-edimm2.2-px30_defconfig | 1 - > > configs/qnap-ts433-rk3568_defconfig | 1 - > > configs/quartz64-a-rk3566_defconfig | 1 - > > configs/quartz64-b-rk3566_defconfig | 1 - > > configs/quartzpro64-rk3588_defconfig | 1 - > > configs/radxa-cm3-io-rk3566_defconfig | 1 - > > configs/radxa-e20c-rk3528_defconfig | 1 - > > configs/radxa-e25-rk3568_defconfig | 1 - > > configs/radxa-zero-3-rk3566_defconfig | 1 - > > configs/ringneck-px30_defconfig | 1 - > > configs/roc-cc-rk3308_defconfig | 1 - > > configs/roc-pc-rk3576_defconfig | 1 - > > configs/roc-pc-rk3588s_defconfig | 1 - > > configs/rock-2-rk3528_defconfig | 1 - > > configs/rock-3a-rk3568_defconfig | 1 - > > configs/rock-3b-rk3568_defconfig | 1 - > > configs/rock-3c-rk3566_defconfig | 1 - > > configs/rock-4d-rk3576_defconfig | 1 - > > configs/rock-5-itx-rk3588_defconfig | 1 - > > configs/rock-5c-rk3588s_defconfig | 1 - > > configs/rock-pi-s-rk3308_defconfig | 1 - > > configs/rock-s0-rk3308_defconfig | 1 - > > configs/rock5a-rk3588s_defconfig | 1 - > > configs/rock5b-rk3588_defconfig | 1 - > > configs/sige1-rk3528_defconfig | 1 - > > configs/sige5-rk3576_defconfig | 1 - > > configs/sige7-rk3588_defconfig | 1 - > > configs/soquartz-blade-rk3566_defconfig | 1 - > > configs/soquartz-cm4-rk3566_defconfig | 1 - > > configs/soquartz-model-a-rk3566_defconfig | 1 - > > configs/tiger-rk3588_defconfig | 1 - > > configs/toybrick-rk3588_defconfig | 1 - > > configs/turing-rk1-rk3588_defconfig | 1 - > > drivers/clk/rockchip/clk_rk3288.c | 2 +- > > drivers/clk/rockchip/clk_rk3399.c | 2 +- > > drivers/ram/rockchip/sdram_rk3288.c | 2 +- > > drivers/ram/rockchip/sdram_rk3399.c | 2 +- > > drivers/video/rockchip/rk3288_mipi.c | 2 +- > > drivers/video/rockchip/rk3399_mipi.c | 2 +- > > drivers/video/rockchip/rk_mipi.c | 2 +- > > 110 files changed, 229 insertions(+), 206 deletions(-) > > --- > > base-commit: b8e0086b585791a771416ce51b58ce0097bc0b28 > > change-id: 20260908-reset-e69a40d3f5c6 > > > > Best regards, > > -- > > Massimo Pegorer <[email protected]> >
