aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2010-01-22 09:23:34 +0000
committerWarner Losh <imp@FreeBSD.org>2010-01-22 09:23:34 +0000
commit5f04b82bcc92c4b1363f62b15c0bc67ee4f7cd75 (patch)
tree9c451dc4fee84cfc004a322cd5041c458c6f84dc /sys
parent24e4f4a84d73d01a1bba62704fca5484c7d7aeb4 (diff)
downloadsrc-5f04b82bcc92c4b1363f62b15c0bc67ee4f7cd75.tar.gz
src-5f04b82bcc92c4b1363f62b15c0bc67ee4f7cd75.zip
Don't clear bss/sbss. The boot loader already does this. In addition,
the Cavium version of the boot loader puts data just after &end, so our rounding up to the next page in clearing memory overwrote their data, which meant we'd get a lot of wrong values for parameters to the system. While I'm here, remove argc/argv parsing. Those values aren't passed in via a0 and a1, so it was a guaranted panic on some boards.
Notes
Notes: svn path=/head/; revision=202786
Diffstat (limited to 'sys')
-rw-r--r--sys/mips/cavium/octeon_machdep.c24
1 files changed, 1 insertions, 23 deletions
diff --git a/sys/mips/cavium/octeon_machdep.c b/sys/mips/cavium/octeon_machdep.c
index a46c9b0c008e..0665eb6f23b0 100644
--- a/sys/mips/cavium/octeon_machdep.c
+++ b/sys/mips/cavium/octeon_machdep.c
@@ -643,14 +643,7 @@ platform_start(__register_t a0, __register_t a1, __register_t a2 __unused,
__register_t a3)
{
uint64_t platform_counter_freq;
- vm_offset_t kernend;
- int argc = a0;
- char **argv = (char **)a1;
- int i, mem;
-
- /* clear the BSS and SBSS segments */
- kernend = round_page((vm_offset_t)&end);
- memset(&edata, 0, kernend - (vm_offset_t)(&edata));
+ int i, mem = 0;
/* Initialize pcpu stuff */
mips_pcpu0_init();
@@ -660,17 +653,6 @@ platform_start(__register_t a0, __register_t a1, __register_t a2 __unused,
octeon_ciu_reset();
octeon_uart_write_string(0, "Platform Starting\n");
- /*
- * Looking for mem=XXM argument
- */
- mem = 0; /* Just something to start with */
- for (i=0; i < argc; i++) {
- if (strncmp(argv[i], "mem=", 4) == 0) {
- mem = strtol(argv[i] + 4, NULL, 0);
- break;
- }
- }
-
bootverbose = 1;
if (mem > 0)
realmem = btoc(mem << 20);
@@ -694,10 +676,6 @@ platform_start(__register_t a0, __register_t a1, __register_t a2 __unused,
platform_counter_freq = 330000000UL; /* XXX: from idt */
mips_timer_init_params(platform_counter_freq, 1);
cninit();
- printf("cmd line: ");
- for (i=0; i < argc; i++)
- printf("%s ", argv[i]);
- printf("\n");
init_param2(physmem);
mips_cpu_init();
mutex_init();