Date: Wed, 26 Jan 2011 06:34:21 -0800 From: Devesh Rai <deveshkr@marvell.com> To: Mark Tinguely <marktinguely@gmail.com>, "freebsd-arm@freebsd.org" <freebsd-arm@freebsd.org> Subject: RE: Changing virtual adress space layout Message-ID: <0DB595A2CB707F458400BE9663B6A7225E42E359C8@SC-VEXCH2.marvell.com> In-Reply-To: <4D2F289C.9080908@gmail.com>
index | next in thread | previous in thread | raw e-mail
Hi Mark, Actually I want to map large portion of RAM in kernel virtual address space. To achieve this in Linux, I did following 1) boot kernel with 256M by setting CONFIG_CMDLINE="mem=256M". This freed up more than 1GB of RAM for my module usages 2) increase KVA to 3GB by setting CONFIG_VMSPLIT_1G=y ( 1G for user and 3GB for kernel) 3) ioremap unused RAM ( 2GB - 256MB ) into Kernel virtual address space. Changing KERNBASE and KERNVIRTADDR "makeoption" from 0xc0000000 to 0x80000000 did not worked for me. Kernel hang while loading. Thanks & Regards Devesh -----Original Message----- From: Mark Tinguely [mailto:marktinguely@gmail.com] Sent: Thursday, January 13, 2011 10:00 PM To: freebsd-arm@freebsd.org Cc: Devesh Rai Subject: Re: Changing virtual adress space layout On 1/13/2011 1:30 AM, Devesh Rai wrote: > Hi, > > I am new to FreeBSD. Can some tell how to change virtual address space layout in FreeBSD for arm? > For x86, KVA_PAGES=N option is there in FreeBSD. In Linux, I used CONFIG_VMSPLIT option. > I am looking corresponding option for arm. > > Regards > Devesh I assume you have run out of space for the device virtual addresses. KERNBASE is hard coded in sys/arm/include/vm_param.h to be 0xc0000000. There is a related variable for each device configuration: the KERNVIRTADDR "option" and "makeoption" values. This is usually in one of the "std" file file for the device. KERNVIRTADDR sets the starting location of the executable and is sometimes different than KERNBASE. The arm code does not map the from KERNBASE to 0xffff_ffff into the KVA. Instead, there is a variable that determines the maximum size of the kernel executable and kernel virtual address area. Above this defined area lies the no-cache remap memory region, device map area, high vector, etc. On a tangent note: There will be a great advantage in ARMv6/ARMv7 to go to a 2GB UVA / 2GB KVA. --Mark.home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?0DB595A2CB707F458400BE9663B6A7225E42E359C8>
