[PATCH 16/20] arm: mach-k3: Update pm-boardcfg for all k3 platforms
Kumar, Udit
u-kumar1 at ti.com
Mon May 11 12:54:06 CEST 2026
On 4/30/2026 2:14 PM, Richard Genoud (TI) wrote:
> 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>
> ---
> arch/arm/mach-k3/schema.yaml | 195 +++++++++++++++++++-----
> 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 | 5 +-
> board/ti/am65x/pm-cfg.yaml | 7 +-
> board/ti/j7200/pm-cfg.yaml | 92 ++++++++++-
> board/ti/j721e/pm-cfg.yaml | 92 ++++++++++-
> board/ti/j721s2/pm-cfg.yaml | 94 +++++++++++-
> 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, 552 insertions(+), 66 deletions(-)
Please include all K3 platform, otherwise build will fail like beagleboard
>
> diff --git a/arch/arm/mach-k3/schema.yaml b/arch/arm/mach-k3/schema.yaml
> index 8c4691f24ed6..dbd11b6c864d 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,6 +277,138 @@ properties:
> items:
> $ref: "#/definitions/u8"
>
> + pm-cfg:
> + type: object
> + properties:
> + pm_boardcfg:
> + type: object
> + properties:
> + rev:
> + type: object
> + properties:
> + boardcfg_abi_maj:
> + $ref: "#/definitions/u8"
> + boardcfg_abi_min:
> + $ref: "#/definitions/u8"
> +
> + lpm_cfg:
> + type: object
> + properties:
> + subhdr:
> + type: object
> + properties:
> + magic:
> + $ref: "#/definitions/u16"
> + size:
> + $ref: "#/definitions/u16"
> + 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:
> @@ -296,36 +422,35 @@ properties:
> $ref: "#/definitions/u8"
> boardcfg_abi_min:
> $ref: "#/definitions/u8"
> -
> host_cfg:
> - type: object
> - properties:
> - subhdr:
> - type: object
> - properties:
> - magic:
> - $ref: "#/definitions/u16"
> - size:
> - $ref: "#/definitions/u16"
> - host_cfg_entries:
> - type: array
> - minItems: 0
> - maxItems: 32
> - items:
> + 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 4031af2f4d3a..2eebba0d986f 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 4031af2f4d3a..2eebba0d986f 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 3ff27ce702c2..15a0cc6e8588 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 9853a25eb85c..75cdeb8098fc 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 7afb29621088..e9866d0ea24d 100644
> --- a/board/ti/am64x/pm-cfg.yaml
> +++ b/board/ti/am64x/pm-cfg.yaml
> @@ -7,6 +7,7 @@
> ---
>
> pm-cfg:
> + pm_boardcfg:
> rev:
> - boardcfg_abi_maj: 0x0
> - boardcfg_abi_min: 0x1
> + 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 ee0d1c67a718..50df1310a38d 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 85cd2c9dbcaf..b38958bea888 100644
> --- a/board/ti/j7200/pm-cfg.yaml
> +++ b/board/ti/j7200/pm-cfg.yaml
> @@ -7,6 +7,94 @@
> ---
>
> pm-cfg:
> + pm_boardcfg:
> rev:
> - boardcfg_abi_maj: 0x0
> - boardcfg_abi_min: 0x1
> + 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 7ae52b3358e2..0d6b14de817a 100644
> --- a/board/ti/j721e/pm-cfg.yaml
> +++ b/board/ti/j721e/pm-cfg.yaml
> @@ -7,6 +7,94 @@
> ---
>
> pm-cfg:
> + pm_boardcfg:
> rev:
> - boardcfg_abi_maj: 0x0
> - boardcfg_abi_min: 0x1
> + 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 e6496512b6b7..ce0435165c9e 100644
> --- a/board/ti/j721s2/pm-cfg.yaml
> +++ b/board/ti/j721s2/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/j722s/pm-cfg.yaml b/board/ti/j722s/pm-cfg.yaml
> index 46b3ad201091..ab1c8e06f10e 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 a36b86098998..cbe166808df9 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 7c6773ac7bcd..b0cd055bf53e 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')
More information about the U-Boot
mailing list