Module Name: src Committed By: cliff Date: Fri Jan 8 08:01:23 UTC 2010
Modified Files: src/sys/arch/evbmips/rmixl [matt-nb5-mips64]: machdep.c Log Message: - if the firmware version is unknown, we use MEMSIZE instead of maps prpovided by firmware; if MEMSIZE if nt configure, print error message are halt; if would defer until consinit then we could panic. - fix seg count when MEMSIZE is used to constrain memory obtained from firmware maps - cast physmem to to uint64_t before applying ctob() when passing bytes count to format_bytes() To generate a diff of this commit: cvs rdiff -u -r1.1.2.12 -r1.1.2.13 src/sys/arch/evbmips/rmixl/machdep.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/evbmips/rmixl/machdep.c diff -u src/sys/arch/evbmips/rmixl/machdep.c:1.1.2.12 src/sys/arch/evbmips/rmixl/machdep.c:1.1.2.13 --- src/sys/arch/evbmips/rmixl/machdep.c:1.1.2.12 Sun Jan 3 08:37:14 2010 +++ src/sys/arch/evbmips/rmixl/machdep.c Fri Jan 8 08:01:22 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.1.2.12 2010/01/03 08:37:14 cliff Exp $ */ +/* $NetBSD: machdep.c,v 1.1.2.13 2010/01/08 08:01:22 cliff Exp $ */ /* * Copyright 2001, 2002 Wasabi Systems, Inc. @@ -112,7 +112,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.1.2.12 2010/01/03 08:37:14 cliff Exp $"); +__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.1.2.13 2010/01/08 08:01:22 cliff Exp $"); #include "opt_ddb.h" #include "opt_com.h" @@ -604,11 +604,17 @@ rmixl_puts("\r\n"); #endif +#ifdef MEMSIZE /* XXX trust and use MEMSIZE */ mem_clusters[0].start = 0; mem_clusters[0].size = MEMSIZE; mem_cluster_cnt = 1; return MEMSIZE; +#else + rmixl_puts("\r\nERROR: configure MEMSIZE\r\n"); + cpu_reboot(RB_HALT, NULL); + /* NOTREACHED */ +#endif found: rcp->rc_io_pbase = MIPS_KSEG1_TO_PHYS(rmixlfw_info.io_base); @@ -662,7 +668,6 @@ { rmixlfw_mmap_t *map = NULL; const char *mapname; - uint64_t tmp; uint64_t sz; uint64_t sum; u_int cnt; @@ -756,10 +761,13 @@ if (sum == memsize) break; if (sum > memsize) { + uint64_t tmp; + tmp = sum - memsize; sz -= tmp; sum -= tmp; mem_clusters[cnt].size = sz; + cnt++; break; } #endif @@ -792,7 +800,7 @@ * Good {morning,afternoon,evening,night}. */ printf("%s%s", copyright, version); - format_bytes(pbuf, sizeof(pbuf), ctob(physmem)); + format_bytes(pbuf, sizeof(pbuf), ctob((uint64_t)physmem)); printf("total memory = %s\n", pbuf); /*