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

This commit is contained in:
Linux Build Service Account 2024-01-03 00:12:28 -08:00 committed by Gerrit - the friendly Code Review server
commit c62f6c9bb5
5 changed files with 129 additions and 43 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;
@ -2133,20 +2135,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

@ -848,6 +848,7 @@ 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;

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);
@ -1250,38 +1252,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
@ -1376,41 +1378,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

@ -31,6 +31,8 @@
#define DLOAD_MAGIC_COOKIE 0x10
#define DLOAD_DISABLED 0x40
#define CONFIG_NAME_MAX_LEN 128
DECLARE_GLOBAL_DATA_PTR;
struct sdhci_host mmc_host;
@ -1375,56 +1377,78 @@ 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_IPQ9574_EMULATION:
config = "config@emulation-fbc";
config_list[config_nos++] = "config@emulation-fbc";
config_list[config_nos++] = "config-emulation-fbc";
break;
case MACH_TYPE_IPQ9574_AP_AL02_C5:
config = "config@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 = "config@al02-c6";
config_list[config_nos++] = "config@al02-c6";
config_list[config_nos++] = "config-al02-c6";
break;
case MACH_TYPE_IPQ9574_AP_AL02_C11:
config = "config@al02-c11";
config_list[config_nos++] = "config@al02-c11";
config_list[config_nos++] = "config-al02-c11";
break;
case MACH_TYPE_IPQ9574_AP_AL02_C12:
config = "config@al02-c12";
config_list[config_nos++] = "config@al02-c12";
config_list[config_nos++] = "config-al02-c12";
break;
case MACH_TYPE_IPQ9574_AP_AL02_C14:
config = "config@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 = "config@al02-c15";
config_list[config_nos++] = "config@al02-c15";
config_list[config_nos++] = "config-al02-c15";
break;
case MACH_TYPE_IPQ9574_AP_AL02_C16:
config = "config@al02-c16";
config_list[config_nos++] = "config@al02-c16";
config_list[config_nos++] = "config-al02-c16";
break;
case MACH_TYPE_IPQ9574_AP_AL03_C2:
config = "config@al03-c2";
config_list[config_nos++] = "config@al03-c2";
config_list[config_nos++] = "config-al03-c2";
break;
case MACH_TYPE_IPQ9574_AP_AL02_C20:
config = "config@al02-c20";
config_list[config_nos++] = "config@al02-c20";
config_list[config_nos++] = "config-al02-c20";
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);
}