This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PROCESSOR-SDK-J784S4: U-Boot Build Fails when rm-cfg.yaml is Updated

Part Number: PROCESSOR-SDK-J784S4
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

Information: 

Platform: J784S4XG01EVM

SDK: ti-processor-sdk-linux-adas-j784s4-evm-11_00_00_08

SYSCONFIG Version: 1.24.1.4189

Host: Ubuntu 22.04.5 LTS

Problem:

In order to add GPIO resource to c7x cores, we updated "Main GPIO Interrupt router Count" value as 4 (default value is 0) with SYSCONFIG. We tried to build U-Boot with the updated rm-cfg.yaml file using top level Makefile inside ti-processor-sdk-linux-adas-j784s4-evm-11_00_00_08 installation directory. Build fails with below error. 

binman: Node '/binman/combined-dm-cfg/ti-board-config/rm-cfg': Schema validation error:

...

Failed validating 'maxItems' in schema['properties']['rm-cfg']['properties']['resasg_entries']:
    {'type': 'array',
     'minItems': 0,
     'maxItems': 468,

Since we added a new configuration item to rm-cfg and increased maxItems value as 469 with our change, ti-processor-sdk-linux-adas-j784s4-evm-11_00_00_08/board-support/ti-u-boot-2025.01+git/arch/arm/mach-k3/schema.yaml file breaks the build since it expects maxItems as 468. How to fix this error? Increasing (patching) the maxItems value as 469 might be a bad idea if this number is hardcoded somewhere else inside binman prebuilt binaries.

Steps to Reproduce:

- Follow FAQ ticket to open k3-respart-tool.

- Select C7X_0_1 from left menu. Update "Main GPIO Interrupt router Count" inside "Interrupt routers" section as 4.

- Save updated rm-cfg.yaml file.

- Copy and replace the original rm-cfg.yaml file inside ti-processor-sdk-linux-adas-j784s4-evm-11_00_00_08/board-support/ti-u-boot-2025.01+git/board/ti/j784s4/ with the updated one.

- Build U-Boot with top level Makefile inside ti-processor-sdk-linux-adas-j784s4-evm-11_00_00_08 directory with "make u-boot"

  • Hi Gokhan,

    The max items was set for the J721E. The J784S4 has a larger maxItems, so the schema.yaml needs to be patched.

    Below is a patch that will remove the compile error:

    From 1ffc990e9b3688ab7bae72e6a6cc5fa263f34fcf Mon Sep 17 00:00:00 2001
    From: Jared McArthur <j-mcarthur@ti.com>
    Date: Wed, 30 Jul 2025 14:01:42 -0500
    Subject: [PATCH 1/1] mach-k3: schema: yaml: Increase maxItems for
     resasg_entries to 472
    
    Signed-off-by: Jared McArthur <j-mcarthur@ti.com>
    ---
     arch/arm/mach-k3/schema.yaml | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/arch/arm/mach-k3/schema.yaml b/arch/arm/mach-k3/schema.yaml
    index c8dd2e79..32679cb0 100644
    --- a/arch/arm/mach-k3/schema.yaml
    +++ b/arch/arm/mach-k3/schema.yaml
    @@ -344,7 +344,7 @@ properties:
                 resasg_entries:
                     type: array
                     minItems: 0
    -                maxItems: 468
    +                maxItems: 472
                     items:
                         type: object
                         properties:
    @@ -420,7 +420,7 @@ properties:
                 resasg_entries:
                     type: array
                     minItems: 0
    -                maxItems: 468
    +                maxItems: 472
                     items:
                         type: object
                         properties:
    -- 
    2.34.1
    

    Best,
    Jared

  • Hi Jared,

    - Should we also disable that specific GPIO pin (that we will to use with c7x) inside device tree file in order claim/access it from c7x core?

    - Do we have to update any other binaries inside filesystem for our c7x gpio interrupt application to work successfully? I mean, building u-boot with updated "rm-cfg.yaml & schema.yaml" is enough (since it generates all the necessary boot binaries inside boot partition) or do we have to manually rebuild another ti firmware software (which we are currently not aware of) and update that binary inside the filesystem?

  • Hi Gokhan,

    - Should we also disable that specific GPIO pin (that we will to use with c7x) inside device tree file in order claim/access it from c7x core?

    Yes.

    - Do we have to update any other binaries inside filesystem for our c7x gpio interrupt application to work successfully? I mean, building u-boot with updated "rm-cfg.yaml & schema.yaml" is enough (since it generates all the necessary boot binaries inside boot partition) or do we have to manually rebuild another ti firmware software (which we are currently not aware of) and update that binary inside the filesystem?

    You shouldn't have to.

    Best,
    Jared