|
@@ -97,26 +97,18 @@ void __init plat_mem_setup(void)
|
|
|
|
|
|
void __init prom_init(void)
|
|
|
{
|
|
|
- int narg, indx, posn, nchr;
|
|
|
unsigned long memsz;
|
|
|
+ int argc, i;
|
|
|
char **argv;
|
|
|
|
|
|
memsz = fw_arg0 & 0x7fff0000;
|
|
|
- narg = fw_arg0 & 0x0000ffff;
|
|
|
-
|
|
|
- if (narg) {
|
|
|
- arcs_cmdline[0] = '\0';
|
|
|
- argv = (char **) fw_arg1;
|
|
|
- posn = 0;
|
|
|
- for (indx = 1; indx < narg; ++indx) {
|
|
|
- nchr = strlen(argv[indx]);
|
|
|
- if (posn + 1 + nchr + 1 > sizeof(arcs_cmdline))
|
|
|
- break;
|
|
|
- if (posn)
|
|
|
- arcs_cmdline[posn++] = ' ';
|
|
|
- strcpy(arcs_cmdline + posn, argv[indx]);
|
|
|
- posn += nchr;
|
|
|
- }
|
|
|
+ argc = fw_arg0 & 0x0000ffff;
|
|
|
+ argv = (char **)fw_arg1;
|
|
|
+
|
|
|
+ for (i = 1; i < argc; i++) {
|
|
|
+ strlcat(arcs_cmdline, argv[i], COMMAND_LINE_SIZE);
|
|
|
+ if (i < (argc - 1))
|
|
|
+ strlcat(arcs_cmdline, " ", COMMAND_LINE_SIZE);
|
|
|
}
|
|
|
|
|
|
add_memory_region(0x0, memsz, BOOT_MEM_RAM);
|