New pmap-v6.c features and improvements

Daan Vreeken Daan at vitsch.nl
Tue May 21 14:59:51 UTC 2013


Hi Zbyszek,

On Tuesday 21 May 2013 15:36:11 Zbyszek Bodek wrote:
> On 21.05.2013 15:15, Daan Vreeken wrote:
> > Hi Zbyszek,
> >
> > On Tuesday 21 May 2013 14:39:56 Zbyszek Bodek wrote:
> >> Hello Everyone,
> >>
> >> I would like to introduce another pack of patches for pmap-v6.c and
> >> related, that we created as a part of Semihalf work on Superpages
> >> support.
> >>
> >> The patches include some major changes like:
> > ..
> >> And some minor clean-ups:
> >> - Get rid of the VERBOSE_INIT_ARM option
> > ..
> > Just a small request: Could you leave the VERBOSE_INIT_ARM printf()'s
> > intact? VERBOSE_INIT_ARM is typically one of the first things I enable
> > when I'm hunting down problems during board bring-up.
>
> To which files are you referring?
>
> VERBOSE_INIT_ARM is useless in pmap as pmap functions that are using
> VERBOSE_INIT_ARM are called before the console is initialized so no
> benefit from printfs...
>
> What is your opinion.


This is the console output of a test kernel that I've created a while back for 
an Atmel at91sam9261 processor board (with VERBOSE_INIT_ARM enabled) :

## Starting application at 0x200000E0 ...
DAAN: soc: at91sam9261
DAAN: pre devmap bootstrap
devmap: fff00000 -> ffffffff @ dff00000
pmap_map_chunk: pa=0xfff00000 va=0xdff00000 size=0x100000 resid=0x100000 
prot=0x3 cache=0
S
devmap: 00500000 -> 005fffff @ dfc00000
pmap_map_chunk: pa=0x500000 va=0xdfc00000 size=0x100000 resid=0x100000 
prot=0x3 cache=0
S
devmap: 10000000 -> 1fffffff @ e0000000
pmap_map_chunk: pa=0x10000000 va=0xe0000000 size=0x10000000 resid=0x10000000 
prot=0x3 cache=0
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
devmap: 30000000 -> 300fffff @ dfb00000
pmap_map_chunk: pa=0x30000000 va=0xdfb00000 size=0x100000 resid=0x100000 
prot=0x3 cache=0
S
devmap: 00600000 -> 006fffff @ dfa00000
pmap_map_chunk: pa=0x600000 va=0xdfa00000 size=0x100000 resid=0x100000 
prot=0x3 cache=0
S
DAAN: post devmap bootstrap
DAAN: memsize=67108864
GDB: debug ports: uart
GDB: current port: uart
KDB: debugger backends: ddb gdb
KDB: current backend: ddb
Copyright (c) 1992-2012 The FreeBSD Project.
...



To be able to create one kernel for multiple boards, we've changed 
at91_machdep.c to enable a minimalistic pagetable early on in initarm() so 
the SoC type can be identified. (As a side effect of this, the console works 
a bit earlier than normal..)
Depending on the type of SoC detected, a different pagetable will be passed to 
pmap_devmap_bootstrap(). At this time, we have a working console. While 
working on this code I've made good use of the VERBOSE_INIT_ARM option.


Regards,
-- 
Ing. Daan Vreeken
Vitsch Electronics
http://Vitsch.nl/
http://VitschVPN.nl/
tel: +31-(0)40-7113051
KvK nr: 17174380
--
Machines en netwerken op afstand beheren? Vitsch VPN oplossing!
Kijk voor meer informatie op: http://www.VitschVPN.nl/


More information about the freebsd-arm mailing list