FreeBSD on PXA255 board
Mark Tinguely
tinguely at casselton.net
Fri Apr 25 16:51:01 UTC 2008
> I`m trying to run FreeBSD 7.0 on PXA255 chip (board Palm Tungsten C).
> Machine depended code partially write by me, and kernel started, but I
> have big problem. Can`t resolve problem without experience in
> internals of kernel.
> So I put to kernel code many printf`s, and can see this picture:
>
> KDB: debugger backends: ddb
> KDB: current backend: ddb
> Copyright (c) 1992-2008 The FreeBSD Project.
> Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
> The Regents of the University of California. All rights
> reserved. FreeBSD is a registered trademark of The FreeBSD Foundation.
> FreeBSD 7.0-STABLE #130: Fri Apr 25 16:58:58 EEST 2008
> ray at terran.mk.farlep.net:/usr/home/ray/Projects/ARM/Palm_TC/NanoBSD/Nano-BSD-obj/arm/usr/home/ray/Projects/ARM/Palm_TC/FreeBSD/src/sys/PALMTC
> WARNING: DIAGNOSTIC option enabled, expect reduced performance.
> subsystem 900000
> 0xc02670f8(0)... done.
> subsystem 1000000
> 0xc03806fc(0)... vm_mem_init: vm_set_page_size
> vm_page_startup: new_end=a3fcf000 end=a3fff000 boot_pages=30 UMA_SLAB_SIZE=1000 /usr/home/ray/Projects/ARM/Palm_TC/FreeBSD/src/sys/vm/vm_page.c:277
> vm_page_startup: new_end = trunc_page(new_end) = a3fcf000 /usr/home/ray/Projects/ARM/Palm_TC/FreeBSD/src/sys/vm/vm_page.c:279
> IN SOURCE CODE THERE: mapped = pmap_map(&vaddr, new_end, end, VM_PROT_READ | VM_PROT_WRITE);
> vm_page_startup: pmap_map(&vaddr=C00FBE7C, new_end=A3FCF000,end=A3FFF000, VM_PROT_READ | VM_PROT_WRITE) = bfecf000 (vaddr=C0544000) /usr/home/ray/Projects/ARM/Palm_TC/FreeBSD/src/sys/vm/vm_page.c:284
> IN SOURCE CODE THERE: bzero((void *)mapped, end - new_end);
> vm_page_startup: call uma_startup(bfecf000, 00000030) /usr/home/ray/Projects/ARM/Palm_TC/FreeBSD/src/sys/vm/vm_page.c:287
> IN SOURCE CODE THERE: uma_startup((void *)mapped, boot_pages);
>
> __END__
Did you specify enough kernel page tables to map the kernel, the
device mappings and the vm_page structures? The vm_page structure
is being built in this routine at the top of physical memory. The
more RAM that is on the board the more vm_page entries are in this
structure and the larger number of kernel page tables are needed to
be defined.
I don't understand that mapped == 0xbfecf000. KVA usually starts at
0xc000X000, though I remeber some Xscale use ARM_USE_SMALL_ALLOC and
map some things just below the KVA.
--Mark Tinguely
More information about the freebsd-arm
mailing list