hwconfig: Fix dummy initialization of {board, cpu}_hwconfig

Since board_hwconfig & cpu_hwconfig are defined as weak and dont have a
default value they will get put into the BSS if they aren't defined
elsewhere.  This is problematic as we try to utilize hwconfig before
we've relocated and thus BSS isn't setup.

Instead of giving dummy values in the board files that utilize this
feature, we can just initialize the variables to an empty string and
thus move them out of the BSS if they aren't defined elsewhere.

Also made board_hwconfig & cpu_hwconfig arrays to reduce size associated
with string pointers vs arrays.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
master
Kumar Gala 14 years ago committed by Wolfgang Denk
parent a55bb8340b
commit b194577b29
  1. 3
      board/freescale/mpc8641hpcn/mpc8641hpcn.c
  2. 3
      board/freescale/p2020ds/p2020ds.c
  3. 14
      common/hwconfig.c

@ -60,9 +60,6 @@ int checkboard(void)
return 0;
}
const char *board_hwconfig = "foo:bar=baz";
const char *cpu_hwconfig = "foo:bar=baz";
phys_size_t
initdram(int board_type)
{

@ -69,9 +69,6 @@ int checkboard(void)
return 0;
}
const char *board_hwconfig = "foo:bar=baz";
const char *cpu_hwconfig = "foo:bar=baz";
phys_size_t initdram(int board_type)
{
phys_size_t dram_size = 0;

@ -68,8 +68,8 @@ next:
return NULL;
}
const char *cpu_hwconfig __attribute__((weak));
const char *board_hwconfig __attribute__((weak));
const char cpu_hwconfig[] __attribute__((weak)) = "";
const char board_hwconfig[] __attribute__((weak)) = "";
#define HWCONFIG_PRE_RELOC_BUF_SIZE 128
@ -96,13 +96,11 @@ static const char *__hwconfig(const char *opt, size_t *arglen)
return hwconfig_parse(env_hwconfig, strlen(env_hwconfig),
opt, ";", ':', arglen);
if (board_hwconfig)
return hwconfig_parse(board_hwconfig, strlen(board_hwconfig),
opt, ";", ':', arglen);
return hwconfig_parse(board_hwconfig, strlen(board_hwconfig),
opt, ";", ':', arglen);
if (cpu_hwconfig)
return hwconfig_parse(cpu_hwconfig, strlen(cpu_hwconfig),
opt, ";", ':', arglen);
return hwconfig_parse(cpu_hwconfig, strlen(cpu_hwconfig),
opt, ";", ':', arglen);
return NULL;
}

Loading…
Cancel
Save