I compiled an image for DDB5074. I got a TLB fault immediately after
the control enters prom_init() function. A further probe shows that the
caller are passing differents arguments to prom_init than what the
callee expected. See code excerpt below.
Does this mean the code of DDB5074 is outdated? In any case, can
someone give me a hint on how to fix this? It does not look obvious at
the first sight...
=============
arch/mips/kernel/setup.c:
init_arch(...)
{
unsigned int s;
/* Determine which MIPS variant we are running on. */
cpu_probe();
prom_init(argc, argv, envp, prom_vec);
...
}
===========
arch/mips/ddb5074/prom.c:
void __init prom_init(const char *s)
{
int i = 0;
unsigned long mem_size, free_start, free_end, start_pfn,
bootmap_size;
// _serinit();
if (s != (void *)-1)
while (*s && i < sizeof(arcs_cmdline)-1)
arcs_cmdline[i++] = *s++;
arcs_cmdline[i] = '\0';
...
Jun
|