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