From 32228df2c60e82d64b9c4c0c433045576fcdd845 Mon Sep 17 00:00:00 2001 From: Timple Raj M Date: Wed, 12 Jan 2022 18:36:32 +0530 Subject: [PATCH] ipq5018: Add MP05.1 RDP support The features are similar to MP03.1 RDP. The only difference is PINE in lane 2 is replaced by WKK. Change-Id: Ifa83c640307081e2511ab5d8728871a8344207c4 Signed-off-by: Timple Raj M --- arch/arm/include/asm/mach-types.h | 2 ++ board/qca/arm/ipq5018/ipq5018.c | 33 +++++++++++++++++++++++++++++++ configs/ipq5018_defconfig | 1 + configs/ipq5018_tiny_defconfig | 1 + 4 files changed, 37 insertions(+) diff --git a/arch/arm/include/asm/mach-types.h b/arch/arm/include/asm/mach-types.h index 7cf8f72d26..27ff1dd627 100644 --- a/arch/arm/include/asm/mach-types.h +++ b/arch/arm/include/asm/mach-types.h @@ -1146,6 +1146,8 @@ extern unsigned int __machine_arch_type; #define MACH_TYPE_IPQ6018_AP_CP01_C4 0x8030003 #define MACH_TYPE_IPQ6018_AP_CP01_C5 0x8030004 #define MACH_TYPE_IPQ5018_AP_MP02_1 0x8040000 +#define MACH_TYPE_IPQ5018_AP_MP03_1 0x8040001 +#define MACH_TYPE_IPQ5018_AP_MP05_1 0x8040006 #define MACH_TYPE_IPQ5018_DB_MP02_1 0X1040003 #define MACH_TYPE_IPQ807x_AP_HK01_C1 0x8010000 #define MACH_TYPE_IPQ807x_AP_HK01_C3 0x8010200 diff --git a/board/qca/arm/ipq5018/ipq5018.c b/board/qca/arm/ipq5018/ipq5018.c index 06501e7982..34912cda9a 100644 --- a/board/qca/arm/ipq5018/ipq5018.c +++ b/board/qca/arm/ipq5018/ipq5018.c @@ -2022,6 +2022,39 @@ int bring_sec_core_up(unsigned int cpuid, unsigned int entry, unsigned int arg) } #endif +unsigned int get_dts_machid(unsigned int machid) +{ + switch (machid) + { + case MACH_TYPE_IPQ5018_AP_MP05_1: + return MACH_TYPE_IPQ5018_AP_MP03_1; + default: + return machid; + } +} + +void ipq_uboot_fdt_fixup(void) +{ + int ret, len; + const char *config = "config@mp05.1"; + len = fdt_totalsize(gd->fdt_blob) + strlen(config) + 1; + if (gd->bd->bi_arch_number == MACH_TYPE_IPQ5018_AP_MP05_1) + { + /* + * Open in place with a new length. + */ + ret = fdt_open_into(gd->fdt_blob, (void *)gd->fdt_blob, len); + if (ret) + printf("uboot-fdt-fixup: Cannot expand FDT: %s\n", fdt_strerror(ret)); + + ret = fdt_setprop((void *)gd->fdt_blob, 0, "config_name", + config, (strlen(config)+1)); + if (ret) + printf("uboot-fdt-fixup: unable to set config_name(%d)\n", ret); + } + return; +} + int get_soc_hw_version(void) { return readl(TCSR_SOC_HW_VERSION_REG); diff --git a/configs/ipq5018_defconfig b/configs/ipq5018_defconfig index b10406f814..19fbabdbe4 100644 --- a/configs/ipq5018_defconfig +++ b/configs/ipq5018_defconfig @@ -134,6 +134,7 @@ CONFIG_SUPPORT_OF_CONTROL=y # Device Tree Control # CONFIG_OF_CONTROL=y +CONFIG_OF_BOARD_FIXUP=y CONFIG_OF_SEPARATE=y # CONFIG_OF_EMBED is not set CONFIG_NET=y diff --git a/configs/ipq5018_tiny_defconfig b/configs/ipq5018_tiny_defconfig index 40cf113167..67602d62d7 100644 --- a/configs/ipq5018_tiny_defconfig +++ b/configs/ipq5018_tiny_defconfig @@ -128,6 +128,7 @@ CONFIG_SUPPORT_OF_CONTROL=y # Device Tree Control # CONFIG_OF_CONTROL=y +CONFIG_OF_BOARD_FIXUP=y CONFIG_OF_SEPARATE=y # CONFIG_OF_EMBED is not set CONFIG_NET=y