mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Alexander Shiyan <eagle.alexander923@gmail.com>
To: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Barebox List <barebox@lists.infradead.org>
Subject: Re: RK3588 optee question
Date: Wed, 12 Aug 2026 17:44:32 +0300	[thread overview]
Message-ID: <CAP1tNvRw3xWZCs3KUFMH7=9f7s8Op8-5hQUCFiFE8LY+mcp+VQ@mail.gmail.com> (raw)
In-Reply-To: <6a7c11f4.bd9e1b36.35e6eb.4491SMTPIN_ADDED_MISSING@mx.google.com>

Hello Sascha.

After enabling CONFIG_ARCH_ROCKCHIP_ATF_PASS_FDT=y the following build
errors occur:

CC [P]  arch/arm/mach-rockchip/rk3588.pbl.o
In file included from include/linux/array_size.h:6,
from include/linux/kernel.h:6,
from /home/ARM64/barebox/arch/arm/include/asm/barebox-arm.h:17,
from include/mach/rockchip/bootrom.h:9,
from arch/arm/mach-rockchip/bootrom.c:2:
include/linux/build_bug.h:100:41: error: static assertion failed:
"sizeof(structrockchip_scratch_space) <= CONFIG_SCRATCH_SIZE"
100 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
|                                         ^~~~~~~~~~~~~~
include/linux/build_bug.h:99:34: note: in expansion of macro ‘__static_assert’
99 | #define static_assert(expr, ...) __static_assert(expr,
##__VA_ARGS__, #expr)
|                                  ^~~~~~~~~~~~~~~
include/mach/rockchip/bootrom.h:25:1: note: in expansion of macro
‘static_assert’
25 | static_assert(sizeof(struct rockchip_scratch_space) <=
CONFIG_SCRATCH_SIZE);
| ^~~~~~~~~~~~~
In file included from include/linux/container_of.h:5,
from include/linux/list.h:5,
from include/param.h:7,
from include/console.h:10,
from include/stdio.h:6,
from include/common.h:10,
from arch/arm/mach-rockchip/rockchip.c:2:
include/linux/build_bug.h:100:41: error: static assertion failed:
"sizeof(structrockchip_scratch_space) <= CONFIG_SCRATCH_SIZE"
100 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
|                                         ^~~~~~~~~~~~~~
include/linux/build_bug.h:99:34: note: in expansion of macro ‘__static_assert’
99 | #define static_assert(expr, ...) __static_assert(expr,
##__VA_ARGS__, #expr)
|                                  ^~~~~~~~~~~~~~~
include/mach/rockchip/bootrom.h:25:1: note: in expansion of macro
‘static_assert’
25 | static_assert(sizeof(struct rockchip_scratch_space) <=
CONFIG_SCRATCH_SIZE);
| ^~~~~~~~~~~~~
In file included from include/linux/container_of.h:5,
from include/linux/list.h:5,
from include/param.h:7,
from include/console.h:10,
from include/stdio.h:6,
from include/common.h:10,
from arch/arm/mach-rockchip/rk3568.c:2:
include/linux/build_bug.h:100:41: error: static assertion failed:
"sizeof(structrockchip_scratch_space) <= CONFIG_SCRATCH_SIZE"
100 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
|                                         ^~~~~~~~~~~~~~
include/linux/build_bug.h:99:34: note: in expansion of macro ‘__static_assert’
99 | #define static_assert(expr, ...) __static_assert(expr,
##__VA_ARGS__, #expr)
|                                  ^~~~~~~~~~~~~~~
include/mach/rockchip/bootrom.h:25:1: note: in expansion of macro
‘static_assert’
25 | static_assert(sizeof(struct rockchip_scratch_space) <=
CONFIG_SCRATCH_SIZE);
| ^~~~~~~~~~~~~
make[1]: *** [/home/ARM64/barebox/scripts/Makefile.build:170:
arch/arm/mach-rockchip/rockchip.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [/home/ARM64/barebox/scripts/Makefile.build:170:
arch/arm/mach-rockchip/bootrom.o] Error 1
make[1]: *** [/home/ARM64/barebox/scripts/Makefile.build:170:
arch/arm/mach-rockchip/rk3568.o] Error 1
In file included from include/linux/container_of.h:5,
from include/linux/list.h:5,
from include/param.h:7,
from include/console.h:10,
from include/stdio.h:6,
from include/common.h:10,
from arch/arm/mach-rockchip/rk3588.c:2:
include/linux/build_bug.h:100:41: error: static assertion failed:
"sizeof(structrockchip_scratch_space) <= CONFIG_SCRATCH_SIZE"
100 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
|                                         ^~~~~~~~~~~~~~
include/linux/build_bug.h:99:34: note: in expansion of macro ‘__static_assert’
99 | #define static_assert(expr, ...) __static_assert(expr,
##__VA_ARGS__, #expr)
|                                  ^~~~~~~~~~~~~~~
include/mach/rockchip/bootrom.h:25:1: note: in expansion of macro
‘static_assert’
25 | static_assert(sizeof(struct rockchip_scratch_space) <=
CONFIG_SCRATCH_SIZE);
| ^~~~~~~~~~~~~
In file included from include/linux/container_of.h:5,
from include/linux/list.h:5,
from include/param.h:7,
from include/console.h:10,
from include/stdio.h:6,
from include/common.h:10,
from arch/arm/mach-rockchip/bbu.c:2:
include/linux/build_bug.h:100:41: error: static assertion failed:
"sizeof(structrockchip_scratch_space) <= CONFIG_SCRATCH_SIZE"
100 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
|                                         ^~~~~~~~~~~~~~
include/linux/build_bug.h:99:34: note: in expansion of macro ‘__static_assert’
99 | #define static_assert(expr, ...) __static_assert(expr,
##__VA_ARGS__, #expr)
|                                  ^~~~~~~~~~~~~~~
include/mach/rockchip/bootrom.h:25:1: note: in expansion of macro
‘static_assert’
25 | static_assert(sizeof(struct rockchip_scratch_space) <=
CONFIG_SCRATCH_SIZE);
| ^~~~~~~~~~~~~
make[1]: *** [/home/ARM64/barebox/scripts/Makefile.build:170:
arch/arm/mach-rockchip/rk3588.o] Error 1
make[1]: *** [/home/ARM64/barebox/scripts/Makefile.build:170:
arch/arm/mach-rockchip/bbu.o] Error 1
In file included from include/linux/container_of.h:5,
from include/linux/list.h:5,
from include/param.h:7,
from include/console.h:10,
from include/stdio.h:6,
from include/common.h:10,
from arch/arm/mach-rockchip/atf.c:2:
include/linux/build_bug.h:100:41: error: static assertion failed:
"sizeof(structrockchip_scratch_space) <= CONFIG_SCRATCH_SIZE"
100 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
|                                         ^~~~~~~~~~~~~~
include/linux/build_bug.h:99:34: note: in expansion of macro ‘__static_assert’
99 | #define static_assert(expr, ...) __static_assert(expr,
##__VA_ARGS__, #expr)
|                                  ^~~~~~~~~~~~~~~
include/mach/rockchip/bootrom.h:25:1: note: in expansion of macro
‘static_assert’
25 | static_assert(sizeof(struct rockchip_scratch_space) <=
CONFIG_SCRATCH_SIZE);
| ^~~~~~~~~~~~~
make[1]: *** [/home/ARM64/barebox/scripts/Makefile.build:167:
arch/arm/mach-rockchip/atf.pbl.o] Error 1
In file included from include/linux/container_of.h:5,
from include/linux/list.h:5,
from include/param.h:7,
from include/console.h:10,
from include/stdio.h:6,
from include/common.h:10,
from arch/arm/mach-rockchip/rk3568.c:2:
include/linux/build_bug.h:100:41: error: static assertion failed:
"sizeof(structrockchip_scratch_space) <= CONFIG_SCRATCH_SIZE"
100 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
|                                         ^~~~~~~~~~~~~~
include/linux/build_bug.h:99:34: note: in expansion of macro ‘__static_assert’
99 | #define static_assert(expr, ...) __static_assert(expr,
##__VA_ARGS__, #expr)
|                                  ^~~~~~~~~~~~~~~
include/mach/rockchip/bootrom.h:25:1: note: in expansion of macro
‘static_assert’
25 | static_assert(sizeof(struct rockchip_scratch_space) <=
CONFIG_SCRATCH_SIZE);
| ^~~~~~~~~~~~~
In file included from include/linux/container_of.h:5,
from include/linux/list.h:5,
from include/param.h:7,
from include/console.h:10,
from include/stdio.h:6,
from include/common.h:10,
from arch/arm/mach-rockchip/rk3588.c:2:
include/linux/build_bug.h:100:41: error: static assertion failed:
"sizeof(structrockchip_scratch_space) <= CONFIG_SCRATCH_SIZE"
100 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
|                                         ^~~~~~~~~~~~~~
include/linux/build_bug.h:99:34: note: in expansion of macro ‘__static_assert’
99 | #define static_assert(expr, ...) __static_assert(expr,
##__VA_ARGS__, #expr)
|                                  ^~~~~~~~~~~~~~~
include/mach/rockchip/bootrom.h:25:1: note: in expansion of macro
‘static_assert’
25 | static_assert(sizeof(struct rockchip_scratch_space) <=
CONFIG_SCRATCH_SIZE);
| ^~~~~~~~~~~~~
make[1]: *** [/home/ARM64/barebox/scripts/Makefile.build:167:
arch/arm/mach-rockchip/rk3568.pbl.o] Error 1
make[1]: *** [/home/ARM64/barebox/scripts/Makefile.build:167:
arch/arm/mach-rockchip/rk3588.pbl.o] Error 1
make: *** [Makefile:1142: arch/arm/mach-rockchip] Error 2
make: *** Waiting for unfinished jobs....
AR      drivers/of/built-in.a
AR      drivers/built-in.a

So, to avoid this, can we define default for CONFIG_SCRATCH_SIZE as
CONFIG_ARCH_ROCKCHIP_ATF_FDT_SIZE if this option is used?

Finally, at least for RK3568 (cannot test RK3588 right now), the init
errors are gone:
...
arm-scmi firmware:scmi.of: SCMI Protocol v2.0 'rockchip:' Firmware version 0x0
optee: smc_abi: probing for conduit method.
optee: smc_abi: revision 4.10 (5c827bf3bc358e9a)
psci psci.of: detected version 1.1
...

The rksecure now works like this:
barebox@Diasom DS-RK3568-SOM-EVB:/ rksecure -i
NOTICE: optee: optee: No supplicant or RPC handler for command 0x0
ERROR: rk-secure: TA 5cfa57f6-1a4c-407f-94a7-a56c8c47019d: error 0xffff0009
Failed to read secure boot info
rksecure: Invalid argument

ср, 12 авг. 2026 г. в 09:25, Sascha Hauer <s.hauer@pengutronix.de>:
>
> On 2026-08-11 14:51, Alexander Shiyan wrote:
> > Hello All.
> >
> > BL31 = rockchip bl31 from rkbin
> > BL32 = tee.bin builded from https://github.com/OP-TEE/optee_os.git
> >
> > DDR cb12b99cc23 hcy 25/10/17-18:57:13,fwver: v1.21
> > ...
> > NOTICE:  BL31: v2.3():v2.3-964-g8319968f5:derrick.huang, fwver: v1.54
> > NOTICE:  BL31: Built : 17:20:23, Dec 26 2025
> > ...
> > INFO:    BL31: Initialising Exception Handling Framework
> > INFO:    BL31: Initializing runtime services
> > INFO:    BL31: Initializing BL32
> > INFO:    BL31: Preparing for EL3 exit to normal world
> > INFO:    Entry point address = 0xb00000
> > INFO:    SPSR = 0x3c9
> >
> > barebox 2026.07.0-00839-g50ae8812b950-dirty #144 Tue Aug 11 14:39:36 MSK 2026
> >
> > Board: Diasom DS-RK3588-BTB-EVB
> > rockchip-dmc memory-controller.of: Detected memory size: 0x100000000
> > netconsole: registered as netconsole-1
> > fan53555-regulator rk86020: FAN53555 Option[10] Rev[1] Detected!
> > vdd2_ddr: Bringing 500000uV into 1100000-1100000uV
> > vddq_ddr: Bringing 500000uV into 600000-600000uV
> > rockchip_saradc fec10000.adc@fec10000.of: registered as aiodev0
> > BTB revision: 3
> > EVB revision: 2
> > EVB HAT Addon detected.
> > arm-scmi firmware:scmi.of: SCMI Protocol v2.0 'rockchip:' Firmware version 0x0
> > optee: smc_abi: probing for conduit method.
> > optee: smc_abi: revision 4.10 (71196403f6f9f642)
> > ERROR: optee: smc_abi: driver requires OP-TEE dynamic shared memory support
>
> In OP-TEE this goes down to:
>
> #if defined(CFG_CORE_DYN_SHM)
>           dyn_shm_en = core_mmu_nsec_ddr_is_defined();
>           if (dyn_shm_en)
>                   args->a1 |= OPTEE_SMC_SEC_CAP_DYNAMIC_SHM;
> #endif
>
> So either you have compiled OP-TEE without CFG_CORE_DYN_SHM enabled
> (unlikely, it's the default), or core_mmu_nsec_ddr_is_defined() fails
> which means OP-TEE doesn't know where your memory is. OP-TEE gets this
> information from the device tree. Do you pass a device tree to OP-TEE?
> barebox only does it when CONFIG_ARCH_ROCKCHIP_ATF_PASS_FDT is enabled
> which currently is not the default as there are some Rockchip TF-A
> binaries shipped by Rockchip which do not handle a fdt being passed.
>
> Looking at your TF-A version you might have one of these, so you likely
> have to update your TF-A to an upstream one.
>
> Side note: Look at bl31_entry(). if it gets a fdt_addr that will be
> passed to both TF-A and OP-TEE. You *could* try passing NULL as fdt to
> atf_entry() to pass the fdt only to OP-TEE and not to TF-A, but I
> wouldn't encourage that.
>
> Sascha
>
> --
> Pengutronix e.K.                           |                             |
> Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
> 31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
>



  parent reply	other threads:[~2026-08-12 14:46 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-11 11:51 Alexander Shiyan
2026-08-11 12:19 ` Ahmad Fatoum
2026-08-11 12:54   ` Alexander Shiyan
2026-08-11 14:07     ` Ahmad Fatoum
2026-08-11 14:13       ` Alexander Shiyan
2026-08-12  6:25 ` Sascha Hauer
     [not found] ` <6a7c11f4.bd9e1b36.35e6eb.4491SMTPIN_ADDED_MISSING@mx.google.com>
2026-08-12 14:44   ` Alexander Shiyan [this message]
2026-08-13  6:41     ` Sascha Hauer
     [not found]     ` <6a7d6747.1bdbcb37.263332.61abSMTPIN_ADDED_MISSING@mx.google.com>
2026-08-14  6:49       ` Alexander Shiyan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAP1tNvRw3xWZCs3KUFMH7=9f7s8Op8-5hQUCFiFE8LY+mcp+VQ@mail.gmail.com' \
    --to=eagle.alexander923@gmail.com \
    --cc=barebox@lists.infradead.org \
    --cc=s.hauer@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox