From owner-svn-src-all@FreeBSD.ORG Tue Apr 21 17:04:01 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D0D2E106568A; Tue, 21 Apr 2009 17:04:01 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A51398FC1C; Tue, 21 Apr 2009 17:04:01 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n3LH41Wp016573; Tue, 21 Apr 2009 17:04:01 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3LH41DN016572; Tue, 21 Apr 2009 17:04:01 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <200904211704.n3LH41DN016572@svn.freebsd.org> From: Marcel Moolenaar Date: Tue, 21 Apr 2009 17:04:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191362 - head/sys/powerpc/booke X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Apr 2009 17:04:02 -0000 Author: marcel Date: Tue Apr 21 17:04:01 2009 New Revision: 191362 URL: http://svn.freebsd.org/changeset/base/191362 Log: o Properly set ksym_start & ksym_end when options DDB is set. Include opt_ddb.h for that. Now you can actually boot with -d and set breakpoints using function names. o Make sure to include opt_msgbuf.h. o Carve out the first 1MB of physical memory. The MPC85xx has DMA problems with addresses below 1MB. Ideally busdma knows how to avoid allocating below 1MB for MPC85xx, but that requires a bit more work. For now, ignore the 1MB of DRAM. Modified: head/sys/powerpc/booke/machdep.c Modified: head/sys/powerpc/booke/machdep.c ============================================================================== --- head/sys/powerpc/booke/machdep.c Tue Apr 21 16:58:46 2009 (r191361) +++ head/sys/powerpc/booke/machdep.c Tue Apr 21 17:04:01 2009 (r191362) @@ -82,7 +82,9 @@ __FBSDID("$FreeBSD$"); #include "opt_compat.h" +#include "opt_ddb.h" #include "opt_kstack_pages.h" +#include "opt_msgbuf.h" #include #include @@ -137,6 +139,10 @@ __FBSDID("$FreeBSD$"); #include #include +#ifdef DDB +extern vm_offset_t ksym_start, ksym_end; +#endif + #ifdef DEBUG #define debugf(fmt, args...) printf(fmt, ##args) #else @@ -355,6 +361,10 @@ e500_init(u_int32_t startkernel, u_int32 boothowto = MD_FETCH(kmdp, MODINFOMD_HOWTO, int); kern_envp = MD_FETCH(kmdp, MODINFOMD_ENVP, char *); end = MD_FETCH(kmdp, MODINFOMD_KERNEND, vm_offset_t); +#ifdef DDB + ksym_start = MD_FETCH(kmdp, MODINFOMD_SSYM, uintptr_t); + ksym_end = MD_FETCH(kmdp, MODINFOMD_ESYM, uintptr_t); +#endif } } else { /* @@ -376,8 +386,14 @@ e500_init(u_int32_t startkernel, u_int32 for (i = 0; i < bootinfo->bi_mem_reg_no; i++, mr++) { if (i == MEM_REGIONS) break; - availmem_regions[i].mr_start = mr->mem_base; - availmem_regions[i].mr_size = mr->mem_size; + if (mr->mem_base < 1048576) { + availmem_regions[i].mr_start = 1048576; + availmem_regions[i].mr_size = mr->mem_size - + (1048576 - mr->mem_base); + } else { + availmem_regions[i].mr_start = mr->mem_base; + availmem_regions[i].mr_size = mr->mem_size; + } } availmem_regions_sz = i;