[RFC PATCH 11/19] board: ti: Update pm-boardcfg for all k3 platforms

Prasanth Babu Mantena p-mantena at ti.com
Fri Mar 13 14:58:52 CET 2026


From: Abhash Kumar Jha <a-kumar2 at ti.com>

Update the pm-cfg and schema to a new version. The new pm-boardcfg has the
following substructures

- lpm_cfg : Low Power Mode configuration

- pll_cfg : PLL configuration

- dev_cfg : Device Power configuration

- rsvd_pmic_cfg : Reserved PMIC configuration

- rsvd_cfg : Reserved cofiguration containing the size for the flexible
    array appended at the end of pm-boardcfg

The ABI revision for pm-cfg is also changed from 0:1 to 1:1

Modify the pm-cfg for am62ax, am62dx, am62px, am62x, am64x, am65x,
j721s2, j722s to change the hierarchy from "pm-cfg -> rev" to
"pm-cfg -> pm-boardcfg -> rev".

This change only adds a new 'pm-boardcfg' property as a parent of the
'rev' property, this does not affect the generated pm-cfg binary.

Add u64 type in schema and update the boardcfg script to deal with u64 types.

Signed-off-by: Abhash Kumar Jha <a-kumar2 at ti.com>
Signed-off-by: Prasanth Babu Mantena <p-mantena at ti.com>
---
 arch/arm/mach-k3/schema.yaml            | 181 ++++++++++++++++++++----
 board/phytec/phycore_am62ax/pm-cfg.yaml |   7 +-
 board/ti/am62ax/pm-cfg.yaml             |   7 +-
 board/ti/am62px/pm-cfg.yaml             |   7 +-
 board/ti/am62x/pm-cfg.yaml              |   7 +-
 board/ti/am64x/pm-cfg.yaml              |   7 +-
 board/ti/am65x/pm-cfg.yaml              |   7 +-
 board/ti/j7200/pm-cfg.yaml              |  94 +++++++++++-
 board/ti/j721e/pm-cfg.yaml              |  94 +++++++++++-
 board/ti/j721s2/pm-cfg.yaml             |   7 +-
 board/ti/j722s/pm-cfg.yaml              |   7 +-
 board/ti/j784s4/pm-cfg.yaml             |  94 +++++++++++-
 tools/binman/etype/ti_board_config.py   |   4 +-
 13 files changed, 461 insertions(+), 62 deletions(-)

diff --git a/arch/arm/mach-k3/schema.yaml b/arch/arm/mach-k3/schema.yaml
index 8c4691f24ed..dbd11b6c864 100644
--- a/arch/arm/mach-k3/schema.yaml
+++ b/arch/arm/mach-k3/schema.yaml
@@ -19,21 +19,15 @@ definitions:
         type: integer
         minimum: 0
         maximum: 0xffffffff
+    u64:
+        type: integer
+        minimum: 0
+        maximum: 0xffffffffffffffff
 
 
 
 type: object
 properties:
-    pm-cfg:
-        type: object
-        properties:
-            rev:
-                type: object
-                properties:
-                    boardcfg_abi_maj:
-                        $ref: "#/definitions/u8"
-                    boardcfg_abi_min:
-                        $ref: "#/definitions/u8"
     board-cfg:
         type: object
         properties:
@@ -283,10 +277,10 @@ properties:
                         items:
                             $ref: "#/definitions/u8"
 
-    rm-cfg:
+    pm-cfg:
         type: object
         properties:
-            rm_boardcfg:
+            pm_boardcfg:
                 type: object
                 properties:
                     rev:
@@ -297,7 +291,7 @@ properties:
                             boardcfg_abi_min:
                                 $ref: "#/definitions/u8"
 
-                    host_cfg:
+                    lpm_cfg:
                         type: object
                         properties:
                             subhdr:
@@ -307,25 +301,156 @@ properties:
                                         $ref: "#/definitions/u16"
                                     size:
                                         $ref: "#/definitions/u16"
-                            host_cfg_entries:
-                                type: array
-                                minItems: 0
-                                maxItems: 32
-                                items:
+                            suspend_initiator:
+                                $ref: "#/definitions/u8"
+                            lpm_mode:
+                                $ref: "#/definitions/u8"
+                            lpm_rsvd1:
+                                $ref: "#/definitions/u16"
+                            lpm_rsvd2:
+                                $ref: "#/definitions/u32"
+
+                    pll_cfg:
+                        type: object
+                        properties:
+                            subhdr:
+                                type: object
+                                properties:
+                                    magic:
+                                        $ref: "#/definitions/u16"
+                                    size:
+                                        $ref: "#/definitions/u16"
+                            pll_cfg_entries:
+                                        type: array
+                                        minItems: 0
+                                        maxItems: 5
+                                        items:
+                                            type: object
+                                            properties:
+                                                dev_id:
+                                                    $ref: "#/definitions/u32"
+                                                clk_id:
+                                                    $ref: "#/definitions/u32"
+                                                pll_freq:
+                                                    $ref: "#/definitions/u64"
+                    dev_cfg:
+                        type: object
+                        properties:
+                            subhdr:
+                                type: object
+                                properties:
+                                    magic:
+                                        $ref: "#/definitions/u16"
+                                    size:
+                                        $ref: "#/definitions/u16"
+                            dev_cfg_entries:
+                                        type: array
+                                        minItems: 0
+                                        maxItems: 5
+                                        items:
+                                            type: object
+                                            properties:
+                                                dev_id:
+                                                    $ref: "#/definitions/u32"
+                                                state:
+                                                    $ref: "#/definitions/u32"
+                                                flag:
+                                                    $ref: "#/definitions/u32"
+                    rsvd_pmic_cfg:
+                        type: object
+                        properties:
+                            subhdr:
+                                type: object
+                                properties:
+                                    magic:
+                                        $ref: "#/definitions/u16"
+                                    size:
+                                        $ref: "#/definitions/u16"
+                            pmic_rsvd1:
+                                $ref: "#/definitions/u32"
+                            pmic_rsvd2:
+                                $ref: "#/definitions/u32"
+                            pmic_rsvd3:
+                                $ref: "#/definitions/u32"
+                    rsvd_cfg:
+                        type: object
+                        properties:
+                            subhdr:
+                                type: object
+                                properties:
+                                    magic:
+                                        $ref: "#/definitions/u16"
+                                    size:
+                                        $ref: "#/definitions/u16"
+                            rsvd1:
+                                $ref: "#/definitions/u32"
+                            rsvd2:
+                                $ref: "#/definitions/u32"
+                            rsvd3:
+                                $ref: "#/definitions/u32"
+                            reserved_entry_size:
+                                $ref: "#/definitions/u16"
+
+            reserved_entries:
+                type: array
+                minItems: 0
+                maxItems: 2
+                items:
+                    type: object
+                    properties:
+                        reserved1:
+                            $ref: "#/definitions/u16"
+                        reserved2:
+                            $ref: "#/definitions/u16"
+                        reserved3:
+                            $ref: "#/definitions/u16"
+                        reserved4:
+                            $ref: "#/definitions/u8"
+                        reserved5:
+                            $ref: "#/definitions/u8"
+
+    rm-cfg:
+        type: object
+        properties:
+            rm_boardcfg:
+                type: object
+                properties:
+                    rev:
+                        type: object
+                        properties:
+                            boardcfg_abi_maj:
+                                $ref: "#/definitions/u8"
+                            boardcfg_abi_min:
+                                $ref: "#/definitions/u8"
+                    host_cfg:
+                            type: object
+                            properties:
+                                subhdr:
                                     type: object
                                     properties:
-                                        host_id:
-                                            $ref: "#/definitions/u8"
-                                        allowed_atype:
-                                            $ref: "#/definitions/u8"
-                                        allowed_qos:
+                                        magic:
                                             $ref: "#/definitions/u16"
-                                        allowed_orderid:
-                                            $ref: "#/definitions/u32"
-                                        allowed_priority:
+                                        size:
                                             $ref: "#/definitions/u16"
-                                        allowed_sched_priority:
-                                            $ref: "#/definitions/u8"
+                                host_cfg_entries:
+                                    type: array
+                                    minItems: 0
+                                    maxItems: 32
+                                    items:
+                                        type: object
+                                        properties:
+                                            host_id:
+                                                $ref: "#/definitions/u8"
+                                            allowed_atype:
+                                                $ref: "#/definitions/u8"
+                                            allowed_qos:
+                                                $ref: "#/definitions/u16"
+                                            allowed_orderid:
+                                                $ref: "#/definitions/u32"
+                                            allowed_priority:
+                                                $ref: "#/definitions/u16"
+                                            allowed_sched_priority:
+                                                $ref: "#/definitions/u8"
                     resasg:
                         type: object
                         properties:
diff --git a/board/phytec/phycore_am62ax/pm-cfg.yaml b/board/phytec/phycore_am62ax/pm-cfg.yaml
index 4031af2f4d3..5a8ed081118 100644
--- a/board/phytec/phycore_am62ax/pm-cfg.yaml
+++ b/board/phytec/phycore_am62ax/pm-cfg.yaml
@@ -7,6 +7,7 @@
 ---
 
 pm-cfg:
-    rev:
-        boardcfg_abi_maj: 0x0
-        boardcfg_abi_min: 0x1
+        pm_boardcfg:
+                rev:
+                        boardcfg_abi_maj: 0x0
+                        boardcfg_abi_min: 0x1
diff --git a/board/ti/am62ax/pm-cfg.yaml b/board/ti/am62ax/pm-cfg.yaml
index 4031af2f4d3..5a8ed081118 100644
--- a/board/ti/am62ax/pm-cfg.yaml
+++ b/board/ti/am62ax/pm-cfg.yaml
@@ -7,6 +7,7 @@
 ---
 
 pm-cfg:
-    rev:
-        boardcfg_abi_maj: 0x0
-        boardcfg_abi_min: 0x1
+        pm_boardcfg:
+                rev:
+                        boardcfg_abi_maj: 0x0
+                        boardcfg_abi_min: 0x1
diff --git a/board/ti/am62px/pm-cfg.yaml b/board/ti/am62px/pm-cfg.yaml
index 3ff27ce702c..e24668f0c32 100644
--- a/board/ti/am62px/pm-cfg.yaml
+++ b/board/ti/am62px/pm-cfg.yaml
@@ -7,6 +7,7 @@
 #
 ---
 pm-cfg:
-    rev:
-        boardcfg_abi_maj: 0x0
-        boardcfg_abi_min: 0x1
+        pm_boardcfg:
+                rev:
+                        boardcfg_abi_maj: 0x0
+                        boardcfg_abi_min: 0x1
diff --git a/board/ti/am62x/pm-cfg.yaml b/board/ti/am62x/pm-cfg.yaml
index 9853a25eb85..6657504a5e5 100644
--- a/board/ti/am62x/pm-cfg.yaml
+++ b/board/ti/am62x/pm-cfg.yaml
@@ -7,6 +7,7 @@
 ---
 
 pm-cfg:
-    rev:
-        boardcfg_abi_maj: 0x0
-        boardcfg_abi_min: 0x1
+        pm_boardcfg:
+                rev:
+                        boardcfg_abi_maj: 0x0
+                        boardcfg_abi_min: 0x1
diff --git a/board/ti/am64x/pm-cfg.yaml b/board/ti/am64x/pm-cfg.yaml
index 7afb2962108..6ed7736154b 100644
--- a/board/ti/am64x/pm-cfg.yaml
+++ b/board/ti/am64x/pm-cfg.yaml
@@ -7,6 +7,7 @@
 ---
 
 pm-cfg:
-        rev:
-                boardcfg_abi_maj: 0x0
-                boardcfg_abi_min: 0x1
+        pm_boardcfg:
+                rev:
+                        boardcfg_abi_maj: 0x0
+                        boardcfg_abi_min: 0x1
diff --git a/board/ti/am65x/pm-cfg.yaml b/board/ti/am65x/pm-cfg.yaml
index ee0d1c67a71..561eaf014aa 100644
--- a/board/ti/am65x/pm-cfg.yaml
+++ b/board/ti/am65x/pm-cfg.yaml
@@ -7,6 +7,7 @@
 ---
 
 pm-cfg:
-    rev:
-        boardcfg_abi_maj: 0x0
-        boardcfg_abi_min: 0x1
+        pm_boardcfg:
+                rev:
+                        boardcfg_abi_maj: 0x0
+                        boardcfg_abi_min: 0x1
diff --git a/board/ti/j7200/pm-cfg.yaml b/board/ti/j7200/pm-cfg.yaml
index 85cd2c9dbca..920d2024f23 100644
--- a/board/ti/j7200/pm-cfg.yaml
+++ b/board/ti/j7200/pm-cfg.yaml
@@ -7,6 +7,94 @@
 ---
 
 pm-cfg:
-        rev:
-                boardcfg_abi_maj: 0x0
-                boardcfg_abi_min: 0x1
+        pm_boardcfg:
+                rev:
+                        boardcfg_abi_maj: 0x1
+                        boardcfg_abi_min: 0x1
+                lpm_cfg:
+                        subhdr:
+                                magic: 0x4C41
+                                size: 0x0C
+                        suspend_initiator: 0xA
+                        lpm_mode: 0x5
+                        lpm_rsvd1: 0x0
+                        lpm_rsvd2: 0x0
+                pll_cfg:
+                        subhdr:
+                                magic: 0xC31E
+                                size: 0x54
+                        pll_cfg_entries:
+                                -  # 1
+                                        dev_id: 0xA
+                                        clk_id: 0xA
+                                        pll_freq: 0xA
+                                -  # 2
+                                        dev_id: 0xA
+                                        clk_id: 0xA
+                                        pll_freq: 0xA
+                                -  # 3
+                                        dev_id: 0xA
+                                        clk_id: 0xA
+                                        pll_freq: 0xA
+                                -  # 4
+                                        dev_id: 0xA
+                                        clk_id: 0xA
+                                        pll_freq: 0xA
+                                -  # 5
+                                        dev_id: 0x6
+                                        clk_id: 0x7
+                                        pll_freq: 0x8
+                dev_cfg:
+                        subhdr:
+                                magic: 0x74B1
+                                size: 0x40
+                        dev_cfg_entries:
+                                -  # 1
+                                        dev_id: 0xB
+                                        state: 0xD
+                                        flag: 0xE
+                                -  # 2
+                                        dev_id: 0xCC
+                                        state: 0xA
+                                        flag: 0xA
+                                -  # 3
+                                        dev_id: 0xA
+                                        state: 0xA
+                                        flag: 0xA
+                                -  # 4
+                                        dev_id: 0xCC
+                                        state: 0xA
+                                        flag: 0xA
+                                -  # 5
+                                        dev_id: 0xA
+                                        state: 0xA
+                                        flag: 0xCC
+                rsvd_pmic_cfg:
+                        subhdr:
+                                magic: 0x8A1D
+                                size: 0x10
+                        pmic_rsvd1: 0xA
+                        pmic_rsvd2: 0xA
+                        pmic_rsvd3: 0xDD
+                rsvd_cfg:
+                        subhdr:
+                                magic: 0x3CFA
+                                size: 0x12
+                        rsvd1: 0x0
+                        rsvd2: 0x0
+                        rsvd3: 0x0
+                        reserved_entry_size: 0x10
+
+        reserved_entries:
+                -
+                        reserved1: 4
+                        reserved2: 93
+                        reserved3: 77
+                        reserved4: 26
+                        reserved5: 0
+                -
+                        reserved1: 4
+                        reserved2: 93
+                        reserved3: 77
+                        reserved4: 26
+                        reserved5: 0
diff --git a/board/ti/j721e/pm-cfg.yaml b/board/ti/j721e/pm-cfg.yaml
index 7ae52b3358e..87e2a22373e 100644
--- a/board/ti/j721e/pm-cfg.yaml
+++ b/board/ti/j721e/pm-cfg.yaml
@@ -7,6 +7,94 @@
 ---
 
 pm-cfg:
-        rev:
-                boardcfg_abi_maj: 0x0
-                boardcfg_abi_min: 0x1
+        pm_boardcfg:
+                rev:
+                        boardcfg_abi_maj: 0x1
+                        boardcfg_abi_min: 0x1
+                lpm_cfg:
+                        subhdr:
+                                magic: 0x4C41
+                                size: 0x0C
+                        suspend_initiator: 0xA
+                        lpm_mode: 0x5
+                        lpm_rsvd1: 0x0
+                        lpm_rsvd2: 0x0
+                pll_cfg:
+                        subhdr:
+                                magic: 0xC31E
+                                size: 0x54
+                        pll_cfg_entries:
+                                -  # 1
+                                        dev_id: 0xA
+                                        clk_id: 0xA
+                                        pll_freq: 0xA
+                                -  # 2
+                                        dev_id: 0xA
+                                        clk_id: 0xA
+                                        pll_freq: 0xA
+                                -  # 3
+                                        dev_id: 0xA
+                                        clk_id: 0xA
+                                        pll_freq: 0xA
+                                -  # 4
+                                        dev_id: 0xA
+                                        clk_id: 0xA
+                                        pll_freq: 0xA
+                                -  # 5
+                                        dev_id: 0xA
+                                        clk_id: 0xA
+                                        pll_freq: 0xA
+                dev_cfg:
+                        subhdr:
+                                magic: 0x74B1
+                                size: 0x40
+                        dev_cfg_entries:
+                                -  # 1
+                                        dev_id: 0xA
+                                        state: 0xA
+                                        flag: 0xA
+                                -  # 2
+                                        dev_id: 0xA
+                                        state: 0xA
+                                        flag: 0xA
+                                -  # 3
+                                        dev_id: 0xA
+                                        state: 0xA
+                                        flag: 0xA
+                                -  # 4
+                                        dev_id: 0xA
+                                        state: 0xA
+                                        flag: 0xA
+                                -  # 5
+                                        dev_id: 0xA
+                                        state: 0xA
+                                        flag: 0xA
+                rsvd_pmic_cfg:
+                        subhdr:
+                                magic: 0x8A1D
+                                size: 0x10
+                        pmic_rsvd1: 0xA
+                        pmic_rsvd2: 0xA
+                        pmic_rsvd3: 0xA
+                rsvd_cfg:
+                        subhdr:
+                                magic: 0x3CFA
+                                size: 0x12
+                        rsvd1: 0x0
+                        rsvd2: 0x0
+                        rsvd3: 0x0
+                        reserved_entry_size: 0x10
+
+        reserved_entries:
+                -
+                        reserved1: 4
+                        reserved2: 93
+                        reserved3: 7744
+                        reserved4: 26
+                        reserved5: 0
+                -
+                        reserved1: 4
+                        reserved2: 93
+                        reserved3: 7744
+                        reserved4: 26
+                        reserved5: 0
diff --git a/board/ti/j721s2/pm-cfg.yaml b/board/ti/j721s2/pm-cfg.yaml
index e6496512b6b..ba4aa643798 100644
--- a/board/ti/j721s2/pm-cfg.yaml
+++ b/board/ti/j721s2/pm-cfg.yaml
@@ -7,6 +7,7 @@
 ---
 
 pm-cfg:
-    rev:
-        boardcfg_abi_maj: 0x0
-        boardcfg_abi_min: 0x1
+        pm_boardcfg:
+                rev:
+                        boardcfg_abi_maj: 0x0
+                        boardcfg_abi_min: 0x1
diff --git a/board/ti/j722s/pm-cfg.yaml b/board/ti/j722s/pm-cfg.yaml
index 46b3ad20109..b62657160e7 100644
--- a/board/ti/j722s/pm-cfg.yaml
+++ b/board/ti/j722s/pm-cfg.yaml
@@ -7,6 +7,7 @@
 ---
 
 pm-cfg:
-    rev:
-        boardcfg_abi_maj: 0x0
-        boardcfg_abi_min: 0x1
+        pm_boardcfg:
+                rev:
+                        boardcfg_abi_maj: 0x0
+                        boardcfg_abi_min: 0x1
diff --git a/board/ti/j784s4/pm-cfg.yaml b/board/ti/j784s4/pm-cfg.yaml
index a36b8609899..ce72969717d 100644
--- a/board/ti/j784s4/pm-cfg.yaml
+++ b/board/ti/j784s4/pm-cfg.yaml
@@ -8,6 +8,94 @@
 ---
 
 pm-cfg:
-    rev:
-        boardcfg_abi_maj: 0x0
-        boardcfg_abi_min: 0x1
+        pm_boardcfg:
+                rev:
+                        boardcfg_abi_maj: 0x1
+                        boardcfg_abi_min: 0x1
+                lpm_cfg:
+                        subhdr:
+                                magic: 0x4C41
+                                size: 0x0C
+                        suspend_initiator: 0xA
+                        lpm_mode: 0x5
+                        lpm_rsvd1: 0x0
+                        lpm_rsvd2: 0x0
+                pll_cfg:
+                        subhdr:
+                                magic: 0xC31E
+                                size: 0x54
+                        pll_cfg_entries:
+                                -  # 1
+                                        dev_id: 0xA
+                                        clk_id: 0xA
+                                        pll_freq: 0xA
+                                -  # 2
+                                        dev_id: 0xA
+                                        clk_id: 0xA
+                                        pll_freq: 0xA
+                                -  # 3
+                                        dev_id: 0xA
+                                        clk_id: 0xA
+                                        pll_freq: 0xA
+                                -  # 4
+                                        dev_id: 0xA
+                                        clk_id: 0xA
+                                        pll_freq: 0xA
+                                -  # 5
+                                        dev_id: 0x6
+                                        clk_id: 0x7
+                                        pll_freq: 0x8
+                dev_cfg:
+                        subhdr:
+                                magic: 0x74B1
+                                size: 0x40
+                        dev_cfg_entries:
+                                -  # 1
+                                        dev_id: 0xB
+                                        state: 0xD
+                                        flag: 0xE
+                                -  # 2
+                                        dev_id: 0xCC
+                                        state: 0xA
+                                        flag: 0xA
+                                -  # 3
+                                        dev_id: 0xA
+                                        state: 0xA
+                                        flag: 0xA
+                                -  # 4
+                                        dev_id: 0xCC
+                                        state: 0xA
+                                        flag: 0xA
+                                -  # 5
+                                        dev_id: 0xA
+                                        state: 0xA
+                                        flag: 0xCC
+                rsvd_pmic_cfg:
+                        subhdr:
+                                magic: 0x8A1D
+                                size: 0x10
+                        pmic_rsvd1: 0xA
+                        pmic_rsvd2: 0xA
+                        pmic_rsvd3: 0xDD
+                rsvd_cfg:
+                        subhdr:
+                                magic: 0x3CFA
+                                size: 0x12
+                        rsvd1: 0x0
+                        rsvd2: 0x0
+                        rsvd3: 0x0
+                        reserved_entry_size: 0x10
+
+        reserved_entries:
+                -
+                        reserved1: 4
+                        reserved2: 93
+                        reserved3: 77
+                        reserved4: 26
+                        reserved5: 0
+                -
+                        reserved1: 4
+                        reserved2: 93
+                        reserved3: 77
+                        reserved4: 26
+                        reserved5: 0
diff --git a/tools/binman/etype/ti_board_config.py b/tools/binman/etype/ti_board_config.py
index 7c6773ac7bc..b0cd055bf53 100644
--- a/tools/binman/etype/ti_board_config.py
+++ b/tools/binman/etype/ti_board_config.py
@@ -124,8 +124,10 @@ class Entry_ti_board_config(Entry_section):
             size = 1
         elif (data_type == '#/definitions/u16'):
             size = 2
-        else:
+        elif (data_type == '#/definitions/u32'):
             size = 4
+        else:
+            size = 8
         br = None
         if type(val) == int:
             br = val.to_bytes(size, byteorder='little')
-- 
2.34.1



More information about the U-Boot mailing list