
On 26/02/2024 10:07, Varadarajan Narayanan wrote:
Add few SMEM related defines that will be used for IPQ9574 based boards.
The tiny To/Cc list above is probably because this file isn't mentioned in MAINTAINERS, please add myself, Neil, and Sumit (see the ARM SNAPDRAGON section in MAINTAINERS) on the next revision, thanks.
Signed-off-by: Varadarajan Narayanan quic_varada@quicinc.com
include/smem.h | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+)
diff --git a/include/smem.h b/include/smem.h index b19c534ebc..f305354996 100644 --- a/include/smem.h +++ b/include/smem.h @@ -16,6 +16,84 @@ #ifndef _smemh_ #define _smemh_
+enum {
- SMEM_SPINLOCK_ARRAY = 7,
- SMEM_AARM_PARTITION_TABLE = 9,
- SMEM_HW_SW_BUILD_ID = 137,
As I understand it, smem is a bit of a dumping ground of various different data, some of which is standard across all boards and some is not... A lot of the values you're adding here seem specific to this modern set of IPQ-based dev boards. Could you document what each of these values actually does.
- SMEM_USABLE_RAM_PARTITION_TABLE = 402,
- SMEM_POWER_ON_STATUS_INFO = 403,
- SMEM_MACHID_INFO_LOCATION = 425,
- SMEM_IMAGE_VERSION_TABLE = 469,
- SMEM_BOOT_FLASH_TYPE = 498,
- SMEM_BOOT_FLASH_INDEX = 499,
- SMEM_BOOT_FLASH_CHIP_SELECT = 500,
- SMEM_BOOT_FLASH_BLOCK_SIZE = 501,
- SMEM_BOOT_FLASH_DENSITY = 502,
- SMEM_BOOT_DUALPARTINFO = 503,
- SMEM_PARTITION_TABLE_OFFSET = 504,
- SMEM_SPI_FLASH_ADDR_LEN = 505,
- SMEM_FIRST_VALID_TYPE = SMEM_SPINLOCK_ARRAY,
- SMEM_LAST_VALID_TYPE = SMEM_SPI_FLASH_ADDR_LEN,
- SMEM_MAX_SIZE = SMEM_SPI_FLASH_ADDR_LEN + 1,
+};
+enum {
- SMEM_BOOT_NO_FLASH = 0,
Likewise what what smem property do these correspond to?
- SMEM_BOOT_NOR_FLASH = 1,
- SMEM_BOOT_NAND_FLASH = 2,
- SMEM_BOOT_ONENAND_FLASH = 3,
- SMEM_BOOT_SDC_FLASH = 4,
- SMEM_BOOT_MMC_FLASH = 5,
- SMEM_BOOT_SPI_FLASH = 6,
- SMEM_BOOT_NORPLUSNAND = 7,
- SMEM_BOOT_NORPLUSEMMC = 8,
- SMEM_BOOT_QSPI_NAND_FLASH = 11,
+};
+#define BUILD_ID_LEN 32 +#define SOCINFO_VERSION_MAJOR(ver) (((ver) & 0xffff0000) >> 16) +#define SOCINFO_VERSION_MINOR(ver) ((ver) & 0x0000ffff)
+struct smem_pmic_type {
Please document these structs, and which SMEM property they represent.
- unsigned int pmic_model;
- unsigned int pmic_die_revision;
+};
+struct ipq_platform_v1 {
- unsigned int format;
- unsigned int id;
- unsigned int version;
- char build_id[BUILD_ID_LEN];
- unsigned int raw_id;
- unsigned int raw_version;
- unsigned int hw_platform;
- unsigned int platform_version;
- unsigned int accessory_chip;
- unsigned int hw_platform_subtype;
+};
+struct ipq_platform_v2 {
- struct ipq_platform_v1 v1;
- struct smem_pmic_type pmic_info[3];
- unsigned int foundry_id;
+};
+struct ipq_platform_v3 {
- struct ipq_platform_v2 v2;
- unsigned int chip_serial;
+};
+union ipq_platform {
- struct ipq_platform_v1 v1;
- struct ipq_platform_v2 v2;
- struct ipq_platform_v3 v3;
+};
+struct smem_machid_info {
- unsigned int format;
- unsigned int machid;
+};
/* struct smem_ops: Operations for the SMEM uclass */ struct smem_ops { /**