Binman for RK35xx

Игорь Зафиевский i.zafievsky at gmail.com
Mon Apr 3 11:27:36 CEST 2023


Hi!

   Trying to build mainline U-Boot for Rockchip RK3568-based board (Forlinx
RK3568), but I think it;s can be reproduced on all RK35 chips. The main
problem is that BL32 (AKA OP-TEE) is provided by Roch-Chips as a
pre-compiled blob and binman fails to implement that scenario. Used .dtsi
file and binman verbose output provided in attachments. Do am I done
something  wrong or it can be considered as bug? Can someone assist?

Thanks in advance
Igor
-------------- next part --------------
/home/gosha/u-boot/tools/binman/binman -D  --toolpath ./tools -v5 build -u -d u-boot.dtb -O . -m  -I . -I /home/gosha/u-boot -I /home/gosha/u-boot/board/forlinx/ok3568-c -I arch/arm/dts -a of-list="rk3568-ok3568-c"  -a atf-bl31-path=/home/gosha/ff3588/rk3588/rkbin/bin/rk35/rk3568_bl31_v1.36.elf -a tee-os-path= -a opensbi-path= -a default-dt="rk3568-ok3568-c" -a scp-path= -a rockchip-tpl-path=/home/gosha/ff3588/rk3588/rkbin/bin/rk35/rk3568_ddr_1560MHz_v1.15.bin -a spl-bss-pad= -a tpl-bss-pad=1 -a spl-dtb=y -a tpl-dtb= -a pre-load-key-path=
Using input directories ['.', '/home/gosha/u-boot', '/home/gosha/u-boot/board/forlinx/ok3568-c', 'arch/arm/dts']
Using output directory '.'
Processing entry args:
                of-list = rk3568-ok3568-c
          atf-bl31-path = /home/gosha/ff3588/rk3588/rkbin/bin/rk35/rk3568_bl31_v1.36.elf
            tee-os-path =
           opensbi-path =
             default-dt = rk3568-ok3568-c
               scp-path =
      rockchip-tpl-path = /home/gosha/ff3588/rk3588/rkbin/bin/rk35/rk3568_ddr_1560MHz_v1.15.bin
            spl-bss-pad =
            tpl-bss-pad = 1
                spl-dtb = y
                tpl-dtb =
      pre-load-key-path =
Processing entry args done
bintool: mkimage -d /home/gosha/ff3588/rk3588/rkbin/bin/rk35/rk3568_ddr_1560MHz_v1.15.bin:./spl/u-boot-spl.bin -n rk3568 -T rksd ./idbloader.img
Image Type:   Rockchip RK35 boot image
Init Data Size: 59392 bytes
Boot Data Size: 104448 bytes

Node '/binman/simple-bin/mkimage': Packing: offset=None, size=None, content_size=28800
Node '/binman/simple-bin/mkimage':    - packed: offset=0x0, size=0x28800, content_size=0x28800, next_offset=28800
Node '/binman/simple-bin/fit/images/u-boot/u-boot-nodtb': Packing: offset=None, size=None, content_size=a1e00
Node '/binman/simple-bin/fit/images/u-boot/u-boot-nodtb':    - packed: offset=0x0, size=0xa1e00, content_size=0xa1e00, next_offset=a1e00
Node '/binman/simple-bin/fit/images/u-boot/u-boot-nodtb': GetData: size 0xa1e00
Node '/binman/simple-bin/fit/images/u-boot': GetPaddedDataForEntry: size None
Node '/binman/simple-bin/fit/images/u-boot': GetData: 1 entries, total size 0xa1e00
 Node '/binman/simple-bin/fit': GetPaddedDataForEntry: size None
Node '/binman/simple-bin/fit/images/u-boot': Packing: offset=None, size=0xa1e00, content_size=a1e00
Node '/binman/simple-bin/fit/images/u-boot':    - packed: offset=0x0, size=0xa1e00, content_size=0xa1e00, next_offset=a1e00
Node '/binman/simple-bin/fit/images/@atf-SEQ/atf-bl31': Packing: offset=None, size=None, content_size=623c8
Node '/binman/simple-bin/fit/images/@atf-SEQ/atf-bl31':    - packed: offset=0x0, size=0x623c8, content_size=0x623c8, next_offset=623c8
Node '/binman/simple-bin/fit/images/@atf-SEQ/atf-bl31': GetData: size 0x623c8
Node '/binman/simple-bin/fit/images/@atf-SEQ': GetPaddedDataForEntry: size None
Node '/binman/simple-bin/fit/images/@atf-SEQ': GetData: 1 entries, total size 0x623c8
 Node '/binman/simple-bin/fit': GetPaddedDataForEntry: size None
Node '/binman/simple-bin/fit/images/@atf-SEQ': Packing: offset=None, size=0x623c8, content_size=623c8
Node '/binman/simple-bin/fit/images/@atf-SEQ':    - packed: offset=0xa1e00, size=0x623c8, content_size=0x623c8, next_offset=1041c8
Node '/binman/simple-bin/fit/images/optee/blob-ext': Packing: offset=None, size=None, content_size=6f998
Node '/binman/simple-bin/fit/images/optee/blob-ext':    - packed: offset=0x0, size=0x6f998, content_size=0x6f998, next_offset=6f998
Node '/binman/simple-bin/fit/images/optee/blob-ext': GetData: size 0x6f998
Node '/binman/simple-bin/fit/images/optee': GetPaddedDataForEntry: size None
Node '/binman/simple-bin/fit/images/optee': GetData: 1 entries, total size 0x6f998
 Node '/binman/simple-bin/fit': GetPaddedDataForEntry: size None
Node '/binman/simple-bin/fit/images/optee': Packing: offset=None, size=0x6f998, content_size=6f998
Node '/binman/simple-bin/fit/images/optee':    - packed: offset=0x1041c8, size=0x6f998, content_size=0x6f998, next_offset=173b60
Node '/binman/simple-bin/fit/images/@fdt-SEQ': GetData: 0 entries, total size 0x0
 Node '/binman/simple-bin/fit': GetPaddedDataForEntry: size None
Node '/binman/simple-bin/fit/images/@fdt-SEQ': Packing: offset=None, size=0x0, content_size=0
Node '/binman/simple-bin/fit/images/@fdt-SEQ':    - packed: offset=0x173b60, size=0x0, content_size=0x0, next_offset=173b60
Node '/binman/simple-bin/fit/images/u-boot/u-boot-nodtb': GetData: size 0xa1e00
Node '/binman/simple-bin/fit/images/u-boot': GetPaddedDataForEntry: size 0xa1e00
Node '/binman/simple-bin/fit/images/u-boot': GetData: 1 entries, total size 0xa1e00
Node '/binman/simple-bin/fit/images/@atf-SEQ/atf-bl31': Packing: offset=0x0, size=0x623c8, content_size=623c8
Node '/binman/simple-bin/fit/images/@atf-SEQ/atf-bl31':    - packed: offset=0x0, size=0x623c8, content_size=0x623c8, next_offset=623c8
Node '/binman/simple-bin/fit/images/@atf-SEQ/atf-bl31': GetData: size 0x623c8
Node '/binman/simple-bin/fit/images/@atf-SEQ': GetPaddedDataForEntry: size 0x623c8
Node '/binman/simple-bin/fit/images/@atf-SEQ': GetData: 1 entries, total size 0x623c8
Node '/binman/simple-bin/fit/images/@atf-SEQ': Packing: offset=0xa1e00, size=0x623c8, content_size=623c8
Node '/binman/simple-bin/fit/images/@atf-SEQ':    - packed: offset=0xa1e00, size=0x623c8, content_size=0x623c8, next_offset=1041c8
Node '/binman/simple-bin/fit/images/@atf-SEQ/atf-bl31': GetData: size 0x623c8
Node '/binman/simple-bin/fit/images/@atf-SEQ': GetPaddedDataForEntry: size 0x623c8
Node '/binman/simple-bin/fit/images/@atf-SEQ': GetData: 1 entries, total size 0x623c8
Node '/binman/simple-bin/fit/images/optee/blob-ext': GetData: size 0x6f998
Node '/binman/simple-bin/fit/images/optee': GetPaddedDataForEntry: size 0x6f998
Node '/binman/simple-bin/fit/images/optee': GetData: 1 entries, total size 0x6f998
bintool: mkimage -E -B 200 -t -F ./simple-bin.fit.fit
FIT description: FIT image for U-Boot with bl31 (TF-A)
Created:         Sun Apr  2 23:36:40 2023
 Image 0 (u-boot)
  Description:  U-Boot (64-bit)
  Created:      Sun Apr  2 23:36:40 2023
  Type:         Standalone Program
  Compression:  uncompressed
  Data Size:    663040 Bytes = 647.50 KiB = 0.63 MiB
  Architecture: AArch64
  Load Address: 0x00a00000
  Entry Point:  0x00a00000
  Hash algo:    sha256
  Hash value:   3715e6c11d12ce23f0b4cf1b45ae84c45e7b7f22555a817c3dbe59236a8c9a1e
 Image 1 (atf-1)
  Description:  ARM Trusted Firmware
  Created:      Sun Apr  2 23:36:40 2023
  Type:         Firmware
  Compression:  uncompressed
  Data Size:    163840 Bytes = 160.00 KiB = 0.16 MiB
  Architecture: AArch64
  OS:           ARM Trusted Firmware
  Load Address: 0x00040000
  Hash algo:    sha256
  Hash value:   df3dd620f7412cc7233d775405bead9f3323bb12a1c902dafd71752357211505
 Image 2 (atf-2)
  Description:  ARM Trusted Firmware
  Created:      Sun Apr  2 23:36:40 2023
  Type:         Firmware
  Compression:  uncompressed
  Data Size:    7732 Bytes = 7.55 KiB = 0.01 MiB
  Architecture: AArch64
  OS:           ARM Trusted Firmware
  Load Address: 0x00068000
  Hash algo:    sha256
  Hash value:   6e9d32ba2391ea86ec585080eebb4c76fae7b5363dca1a69e6035ba3e4491bc8
 Image 3 (atf-3)
  Description:  ARM Trusted Firmware
  Created:      Sun Apr  2 23:36:40 2023
  Type:         Firmware
  Compression:  uncompressed
  Data Size:    20259 Bytes = 19.78 KiB = 0.02 MiB
  Architecture: AArch64
  OS:           ARM Trusted Firmware
  Load Address: 0x0006a000
  Hash algo:    sha256
  Hash value:   919db4e965c19bf879da8a058ac6008a892a17904e6437cdd72f8f485aa61e0c
 Image 4 (atf-4)
  Description:  ARM Trusted Firmware
  Created:      Sun Apr  2 23:36:40 2023
  Type:         Firmware
  Compression:  uncompressed
  Data Size:    40960 Bytes = 40.00 KiB = 0.04 MiB
  Architecture: AArch64
  OS:           ARM Trusted Firmware
  Load Address: 0xfdcc1000
  Hash algo:    sha256
  Hash value:   455304ad25a671f34193e732b2c3c679f4ef43d6254f642c29d1643c937cf2d9
 Image 5 (atf-5)
  Description:  ARM Trusted Firmware
  Created:      Sun Apr  2 23:36:40 2023
  Type:         Firmware
  Compression:  uncompressed
  Data Size:    8192 Bytes = 8.00 KiB = 0.01 MiB
  Architecture: AArch64
  OS:           ARM Trusted Firmware
  Load Address: 0xfdcce000
  Hash algo:    sha256
  Hash value:   cb025e3a5b768cdea2ba62e092042d5194098016e43c323db954278ad7d75a84
 Image 6 (atf-6)
  Description:  ARM Trusted Firmware
  Created:      Sun Apr  2 23:36:40 2023
  Type:         Firmware
  Compression:  uncompressed
  Data Size:    8192 Bytes = 8.00 KiB = 0.01 MiB
  Architecture: AArch64
  OS:           ARM Trusted Firmware
  Load Address: 0xfdcd0000
  Hash algo:    sha256
  Hash value:   d4e8257343b8be878acde6ba7274e2e60640e5c20bffe754984761a31276b3de
 Image 7 (optee)
  Description:  TEE
  Created:      Sun Apr  2 23:36:40 2023
  Type:         Trusted Execution Environment Image
  Compression:  uncompressed
  Data Size:    457112 Bytes = 446.40 KiB = 0.44 MiB
  Hash algo:    sha256
  Hash value:   af414b9c9f1a05b058de55de4ad0fa6ec1f40e6b42769454196ee63279570cc7
 Image 8 (fdt-1)
  Description:  fdt-rk3568-ok3568-c
  Created:      Sun Apr  2 23:36:40 2023
  Type:         Flat Device Tree
  Compression:  uncompressed
  Data Size:    61456 Bytes = 60.02 KiB = 0.06 MiB
  Architecture: Unknown Architecture
  Hash algo:    sha256
  Hash value:   c927dc18648e052f172da457a9df7aea903184180135e62448835e28e2d694fc
 Default Configuration: 'config-1'
 Configuration 0 (config-1)
  Description:  NAME.dtb
  Kernel:       unavailable
  FDT:          fdt-SEQ

     Node '/binman/simple-bin': GetPaddedDataForEntry: size None
 Node '/binman/simple-bin/fit': Packing: offset=0x7f8000, size=0x15e800, content_size=15e800
 Node '/binman/simple-bin/fit':    - packed: offset=0x7f8000, size=0x15e800, content_size=0x15e800, next_offset=956800
Wrote map file './simple-bin.map' to show errors
binman: Node '/binman/simple-bin/fit/images/optee': Offset 0x1041c8 (1065416) size 0x6f998 (457112) is outside the section '/binman/simple-bin/fit' starting at 0x0 (0) of size 0x15e800 (1435648)

Traceback (most recent call last):
  File "/home/gosha/u-boot/tools/binman/binman", line 133, in RunBinman
    ret_code = control.Binman(args)
  File "/home/gosha/u-boot/tools/binman/control.py", line 744, in Binman
    invalid |= ProcessImage(image, args.update_fdt, args.map,
  File "/home/gosha/u-boot/tools/binman/control.py", line 572, in ProcessImage
    image.PackEntries()
  File "/home/gosha/u-boot/tools/binman/image.py", line 154, in PackEntries
    super().Pack(0)
  File "/home/gosha/u-boot/tools/binman/etype/section.py", line 425, in Pack
    self._PackEntries()
  File "/home/gosha/u-boot/tools/binman/etype/section.py", line 443, in _PackEntries
    offset = entry.Pack(offset)
  File "/home/gosha/u-boot/tools/binman/etype/section.py", line 436, in Pack
    self.CheckEntries()
  File "/home/gosha/u-boot/tools/binman/etype/section.py", line 476, in CheckEntries
    entry.Raise('Offset %#x (%d) size %#x (%d) is outside the '
  File "/home/gosha/u-boot/tools/binman/entry.py", line 546, in Raise
    raise ValueError("Node '%s': %s" % (self._node.path, msg))
ValueError: Node '/binman/simple-bin/fit/images/optee': Offset 0x1041c8 (1065416) size 0x6f998 (457112) is outside the section '/binman/simple-bin/fit' starting at 0x0 (0) of size 0x15e800 (1435648)
make[1]: *** [/home/gosha/u-boot/Makefile:1108: .binman_stamp] Error 1
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rk3568-ok3568-c-u-boot.dtsi
Type: application/octet-stream
Size: 3733 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20230403/e94c5e49/attachment.obj>


More information about the U-Boot mailing list