Merge "board: qca: arm: ipq: config_name update"

This commit is contained in:
Linux Build Service Account 2024-01-02 10:09:56 -08:00 committed by Gerrit - the friendly Code Review server
commit a07ff15e2e
5 changed files with 103 additions and 27 deletions

View file

@ -54,6 +54,8 @@
#define TCSR_SOC_HW_VERSION_REG 0x194D000
#define CONFIG_NAME_MAX_LEN 128
ipq_gmac_board_cfg_t gmac_cfg[CONFIG_IPQ_NO_MACS];
DECLARE_GLOBAL_DATA_PTR;
@ -2142,20 +2144,42 @@ unsigned int get_dts_machid(unsigned int 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)
int ret, len = 0, config_nos = 0;
char config[CONFIG_NAME_MAX_LEN];
char *config_list[6] = { NULL };
switch (gd->bd->bi_arch_number)
{
case MACH_TYPE_IPQ5018_AP_MP05_1:
config_list[config_nos++] = "config@mp05.1";
config_list[config_nos++] = "config-mp05.1";
break;
}
if (config_nos)
{
while (config_nos--) {
strlcpy(&config[len], config_list[config_nos],
CONFIG_NAME_MAX_LEN - len);
len += strnlen(config_list[config_nos],
CONFIG_NAME_MAX_LEN) + 1;
if (len > CONFIG_NAME_MAX_LEN) {
printf("skipping uboot fdt fixup err: "
"config name len-overflow\n");
return;
}
}
/*
* Open in place with a new length.
*/
ret = fdt_open_into(gd->fdt_blob, (void *)gd->fdt_blob, len);
ret = fdt_open_into(gd->fdt_blob, (void *)gd->fdt_blob,
fdt_totalsize(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));
config, len);
if (ret)
printf("uboot-fdt-fixup: unable to set config_name(%d)\n", ret);
}

View file

@ -873,27 +873,32 @@ void ipq_uboot_fdt_fixup(void)
{
case MACH_TYPE_IPQ5332_AP_MI01_2_C2:
config_list[config_nos++] = "config@mi01.2-c2";
config_list[config_nos++] = "config-mi01.2-c2";
config_list[config_nos++] = "config@rdp484";
config_list[config_nos++] = "config-rdp484";
break;
case MACH_TYPE_IPQ5332_AP_MI01_3_C2:
config_list[config_nos++] = "config@mi01.3-c2";
config_list[config_nos++] = "config-mi01.3-c2";
config_list[config_nos++] = "config@rdp477";
config_list[config_nos++] = "config-rdp477";
break;
case MACH_TYPE_IPQ5332_AP_MI01_7:
config_list[config_nos++] = "config@mi01.7";
config_list[config_nos++] = "config-mi01.7";
config_list[config_nos++] = "config@rdp473";
config_list[config_nos++] = "config-rdp473";
break;
case MACH_TYPE_IPQ5332_AP_MI04_1_C2:
config_list[config_nos++] = "config@mi04.1-c2";
config_list[config_nos++] = "config-mi04.1-c2";
config_list[config_nos++] = "config@rdp478";
config_list[config_nos++] = "config-rdp478";
config_list[config_nos++] = "config@1";
break;
case MACH_TYPE_IPQ5332_AP_MI01_14:
config_list[config_nos++] = "config@mi01.14";
config_list[config_nos++] = "config-mi01.14";
config_list[config_nos++] = "config@rdp481";
config_list[config_nos++] = "config-rdp481";
break;

View file

@ -34,6 +34,8 @@
#define TCSR_SOC_HW_VERSION_REG 0x194D000
#define CONFIG_NAME_MAX_LEN 128
DECLARE_GLOBAL_DATA_PTR;
struct sdhci_host mmc_host;
extern int ipq6018_edma_init(void *cfg);
@ -1233,38 +1235,54 @@ unsigned int get_dts_machid(unsigned int machid)
void ipq_uboot_fdt_fixup(void)
{
int ret, len;
char *config = NULL;
int ret, len = 0, config_nos = 0;
char config[CONFIG_NAME_MAX_LEN];
char *config_list[6] = { NULL };
switch (gd->bd->bi_arch_number)
{
case MACH_TYPE_IPQ6018_AP_CP01_C2:
config = "config@cp01-c2";
config_list[config_nos++] = "config@cp01-c2";
config_list[config_nos++] = "config-cp01-c2";
break;
case MACH_TYPE_IPQ6018_AP_CP01_C3:
config = "config@cp01-c3";
config_list[config_nos++] = "config@cp01-c3";
config_list[config_nos++] = "config-cp01-c3";
break;
case MACH_TYPE_IPQ6018_AP_CP01_C4:
config = "config@cp01-c4";
config_list[config_nos++] = "config@cp01-c4";
config_list[config_nos++] = "config-cp01-c4";
break;
case MACH_TYPE_IPQ6018_AP_CP01_C5:
config = "config@cp01-c5";
config_list[config_nos++] = "config@cp01-c5";
config_list[config_nos++] = "config-cp01-c5";
break;
}
if (config != NULL)
if (config_nos)
{
len = fdt_totalsize(gd->fdt_blob) + strlen(config) + 1;
while (config_nos--) {
strlcpy(&config[len], config_list[config_nos],
CONFIG_NAME_MAX_LEN - len);
len += strnlen(config_list[config_nos],
CONFIG_NAME_MAX_LEN) + 1;
if (len > CONFIG_NAME_MAX_LEN) {
printf("skipping uboot fdt fixup err: "
"config name len-overflow\n");
return;
}
}
/*
* Open in place with a new length.
*/
ret = fdt_open_into(gd->fdt_blob, (void *)gd->fdt_blob, len);
ret = fdt_open_into(gd->fdt_blob, (void *)gd->fdt_blob,
fdt_totalsize(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));
config, len);
if (ret)
printf("uboot-fdt-fixup: unable to set config_name(%d)\n", ret);
}

View file

@ -62,6 +62,8 @@
#define TCSR_SOC_HW_VERSION_REG 0x194D000
#define CONFIG_NAME_MAX_LEN 128
DECLARE_GLOBAL_DATA_PTR;
#define GCNT_PSHOLD 0x004AB000
@ -1381,41 +1383,58 @@ unsigned int get_dts_machid(unsigned int machid)
void ipq_uboot_fdt_fixup(void)
{
int ret, len;
char *config = NULL;
int ret, len = 0, config_nos = 0;
char config[CONFIG_NAME_MAX_LEN];
char *config_list[6] = { NULL };
switch (gd->bd->bi_arch_number)
{
case MACH_TYPE_IPQ807x_AP_HK01_C3:
config = "config@hk01.c3";
config_list[config_nos++] = "config@hk01.c3";
config_list[config_nos++] = "config-hk01.c3";
break;
case MACH_TYPE_IPQ807x_AP_HK01_C6:
config = "config@hk01.c6";
config_list[config_nos++] = "config@hk01.c6";
config_list[config_nos++] = "config-hk01.c6";
break;
case MACH_TYPE_IPQ807x_AP_HK12_C1:
config = "config@hk12";
config_list[config_nos++] = "config@hk12";
config_list[config_nos++] = "config-hk12";
break;
case MACH_TYPE_IPQ807x_AP_AC02:
config = "config@ac02";
config_list[config_nos++] = "config@ac02";
config_list[config_nos++] = "config-ac02";
break;
case MACH_TYPE_IPQ807x_AP_OAK03:
config = "config@oak03";
config_list[config_nos++] = "config@oak03";
config_list[config_nos++] = "config-oak03";
break;
}
if (config != NULL)
if (config_nos)
{
len = fdt_totalsize(gd->fdt_blob) + strlen(config) + 1;
while (config_nos--) {
strlcpy(&config[len], config_list[config_nos],
CONFIG_NAME_MAX_LEN - len);
len += strnlen(config_list[config_nos],
CONFIG_NAME_MAX_LEN) + 1;
if (len > CONFIG_NAME_MAX_LEN) {
printf("skipping uboot fdt fixup err: "
"config name len-overflow\n");
return;
}
}
/*
* Open in place with a new length.
*/
ret = fdt_open_into(gd->fdt_blob, (void *)gd->fdt_blob, len);
ret = fdt_open_into(gd->fdt_blob, (void *)gd->fdt_blob,
fdt_totalsize(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));
config, len);
if (ret)
printf("uboot-fdt-fixup: unable to set config_name(%d)\n", ret);
}

View file

@ -1410,45 +1410,55 @@ void ipq_uboot_fdt_fixup(void)
{
case MACH_TYPE_IPQ9574_EMULATION:
config_list[config_nos++] = "config@emulation-fbc";
config_list[config_nos++] = "config-emulation-fbc";
break;
case MACH_TYPE_IPQ9574_AP_AL02_C5:
config_list[config_nos++] = "config@al02-c5";
config_list[config_nos++] = "config-al02-c5";
break;
case MACH_TYPE_IPQ9574_AP_AL02_C6:
config_list[config_nos++] = "config@al02-c6";
config_list[config_nos++] = "config-al02-c6";
config_list[config_nos++] = "config@rdp449";
config_list[config_nos++] = "config-rdp449";
break;
case MACH_TYPE_IPQ9574_AP_AL02_C11:
config_list[config_nos++] = "config@al02-c11";
config_list[config_nos++] = "config-al02-c11";
config_list[config_nos++] = "config@rdp455";
config_list[config_nos++] = "config-rdp455";
break;
case MACH_TYPE_IPQ9574_AP_AL02_C12:
config_list[config_nos++] = "config@al02-c12";
config_list[config_nos++] = "config-al02-c12";
config_list[config_nos++] = "config@rdp455";
config_list[config_nos++] = "config-rdp455";
break;
case MACH_TYPE_IPQ9574_AP_AL02_C14:
config_list[config_nos++] = "config-al02-c14";
config_list[config_nos++] = "config@al02-c14";
break;
case MACH_TYPE_IPQ9574_AP_AL02_C15:
config_list[config_nos++] = "config@al02-c15";
config_list[config_nos++] = "config-al02-c15";
config_list[config_nos++] = "config@rdp457";
config_list[config_nos++] = "config-rdp457";
break;
case MACH_TYPE_IPQ9574_AP_AL02_C16:
config_list[config_nos++] = "config@al02-c16";
config_list[config_nos++] = "config-al02-c16";
config_list[config_nos++] = "config@rdp456";
config_list[config_nos++] = "config-rdp456";
break;
case MACH_TYPE_IPQ9574_AP_AL02_C20:
config_list[config_nos++] = "config@al02-c20";
config_list[config_nos++] = "config-al02-c20";
config_list[config_nos++] = "config@rdp467";
config_list[config_nos++] = "config-rdp467";
break;
case MACH_TYPE_IPQ9574_AP_AL03_C2:
config_list[config_nos++] = "config@al03-c2";
config_list[config_nos++] = "config-al03-c2";
config_list[config_nos++] = "config@rdp458";
config_list[config_nos++] = "config-rdp458";
break;