tech-userlevel archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
stuck in bringing the userland shell on a latest ARM core
Hi All,
I am trying to bring up NetBSD-5 on a latest ARM Core (which is not yet
natively supported by NetBSD/arm port) as part of learning NetBSD.
I do not have any previous practical exposure on NetBSD or for that matter on
any other Unix-like OSes.
I am able to bring up the kernel in a couple of weeks (although not in a clean
way), but I am stuck in brining up the userland.
First I ran into nbmakefs toolset problem in building the ramdisk under cygwin
development environment. Then I bumped into version mismatch between the
userland and kernel.
With the right ramdisk matching kernel version(got from Mr.Ken Hornstein), My
serial console output is as below:
-------------------------------Console Output Begin--------------
NetBSD/evbarm (xxxxxemul) booting ...
initarm: Configuring system ...
physmemory: 16384 pages at 0x00000000 -> 0x03ffffff
Allocating page tables
freestart = 0x00000000, free_pages = 512 (0x00000200)
IRQ stack: p0x001f1000 v0x801f1000
ABT stack: p0x001f0000 v0x801f0000
UND stack: p0x001ef000 v0x801ef000
SVC stack: p0x001ed000 v0x801ed000
Creating L1 page table at p0x001fc000 v0x801fc000
Mapping kernel
initarm: etext 8039946b, _end 808fe44c
initarm: textsize 0x1a0000, totalsize 0x700000
pmap_map_chunk: pa=0x200000 va=0x80200000 size=0x1a0000 resid=0x1a0000 prot=0x3
cache=1
SLLLLLLLLLL
pmap_map_chunk: pa=0x3a0000 va=0x803a0000 size=0x560000 resid=0x560000 prot=0x3
cache=1
LLLLLLSSSSS
Constructing L2 page tables
pmap_map_chunk: pa=0x1f1000 va=0x801f1000 size=0x1000 resid=0x1000 prot=0x3
cache=1
P
pmap_map_chunk: pa=0x1f0000 va=0x801f0000 size=0x1000 resid=0x1000 prot=0x3
cache=1
P
pmap_map_chunk: pa=0x1ef000 va=0x801ef000 size=0x1000 resid=0x1000 prot=0x3
cache=1
P
pmap_map_chunk: pa=0x1ed000 va=0x801ed000 size=0x2000 resid=0x2000 prot=0x3
cache=1
PP
pmap_map_chunk: pa=0x1fc000 va=0x801fc000 size=0x4000 resid=0x4000 prot=0x3
cache=2
PPPP
pmap_map_chunk: pa=0x1fb000 va=0x801fb000 size=0x1000 resid=0x1000 prot=0x3
cache=2
P
pmap_map_chunk: pa=0x1fa000 va=0x801fa000 size=0x1000 resid=0x1000 prot=0x3
cache=2
P
pmap_map_chunk: pa=0x1f9000 va=0x801f9000 size=0x1000 resid=0x1000 prot=0x3
cache=2
P
pmap_map_chunk: pa=0x1f8000 va=0x801f8000 size=0x1000 resid=0x1000 prot=0x3
cache=2
P
pmap_map_chunk: pa=0x1f7000 va=0x801f7000 size=0x1000 resid=0x1000 prot=0x3
cache=2
P
pmap_map_chunk: pa=0x1f6000 va=0x801f6000 size=0x1000 resid=0x1000 prot=0x3
cache=2
P
pmap_map_chunk: pa=0x1f5000 va=0x801f5000 size=0x1000 resid=0x1000 prot=0x3
cache=2
P
pmap_map_chunk: pa=0x1f4000 va=0x801f4000 size=0x1000 resid=0x1000 prot=0x3
cache=2
P
pmap_map_chunk: pa=0x1f3000 va=0x801f3000 size=0x1000 resid=0x1000 prot=0x3
cache=2
P
pmap_map_entry called with args- l1pt=001fc000 va=ffff0000 prot=00000003
cache=00000001
devmap: a0300000 -> a04fffff @ fd000000
pmap_map_chunk: pa=0xa0300000 va=0xfd000000 size=0x200000 resid=0x200000
prot=0x3 cache=0
SS
devmap: 80000000 -> 801fffff @ fd200000
pmap_map_chunk: pa=0x80000000 va=0xfd200000 size=0x200000 resid=0x200000
prot=0x3 cache=0
SS
freestart = 0x008ff000, free_pages = 14081 (0x3701)
switching to new L1 page table @0x1fc000...bootstrap done.
init subsystems: stacks vectors undefined page pmap done.
initarm done.
pmap_postinit: Allocated 35 static L1 descriptor tables
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
2006, 2007, 2008
The NetBSD Foundation, Inc. All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
NetBSD 5.0_RC2 (xxxxxemul) #150: Wed Mar 25 19:30:24 RST 2009
newbie@xxxx:/cygdrive/c/NetBSD-5_RC/src/sys/arch/evbarm/compile/obj/xxxxxemul
total memory = 65536 KB
avail memory = 54572 KB
mainbus0 (root)
cpu0 at mainbus0: Cortex-A9 r0p1p0 (ARM11J core)
cpu0: DC enabled IC enabled WB disabled EABT branch prediction enabled
cpu0: 0KB/0B 0-way Instruction cache
cpu0: 127KB/64B 4-way write-back-locking-C Data cache
lbus0 at mainbus0: xxxxx Cortex-A9 lbus interface
gic0 at lbus0 addr 0xa0411000: interrupts 0..256
percoretmr0 at lbus0 addr 0xa0410600-0xa04115ff intr 29
Cortex-A9 per core Timer sysbus0 at mainbus0 vx.y bus interface
xxxxxuart0 at sysbus0 addr 0x80120000-0x80120fff intr 43 xxxxxuart0: major =
111: console
clock: hz=100 stathz=0
boot device: <unknown>
root on md0a dumps on md0b
mountroot: trying ffs...
root file system type: ffs
WARNING: no TOD clock present
WARNING: using filesystem time
WARNING: CHECK AND RESET THE DATE!
init: copying out flags `-s' 3
init: copying out path `/sbin/init' 11
-sh: media_constructor: File exists
------------- Console Outpupt End -----------------------------------------
When I intercept the system calls on the kernel side, the shell (/bin/sh) is
exiting (sys_exit: 2.1 exiting with signal 0, exit code 1).
Also there is a sys_execve call with exec path as "/bin/sh" and a single
argument "-sh". After this, the shell is printing output "-sh:
media_constructor: File exists" and exiting with exit code 1.
Why is the shell (/bin/sh) exiting with exit code 1?
While refering to the /sbin/init source code, ideally I should see the printf
"Enter pathname of shell or RETURN for %s: " before the shell (/bin/sh) is
execved.
Why am I not able to see this message on the console before the shell is
started?
Whart are the mandatory kernel options (compile and run time) to enable a
serial port terminal for the userland?
I wish I could debug the userland, but I do not have any spare debugging
transport (ethernet/serial port) on the target as of now.
All that I have is a single serial port, which I am already using as a serial
console.
Regards
Home |
Main Index |
Thread Index |
Old Index