[Barrelfish-users] Problems when booting Barrelfish on SCC
Shi Jinghao (史经浩)
jhshi at cs.hku.hk
Sun Apr 22 11:12:57 CEST 2012
Hi,
I'm trying to boot barrelfish on SCC. I've managed to compile the source,
get barrelfish0.obj and barrelfish48.mt.
Then I use the bootscc.sh to boot it. For test, I just want to boot core 0
and core 1, but a weird problem
happens: core 1 is trying to boot core 0. Here is the output after system
start.
----------------------OUTPUT START ------------------------------------
Kernel starting at address 0x80100000
hku at ubuntu:~/fish/hg.barrelfish.org/build$ My APIC ID: 0
Barrelfish CPU driver starting on scc core 0
init: invoked as: init 2097152
Spawning memory server (scc/sbin/mem_serv)...
Spawning monitor (scc/sbin/monitor)...
starting monitor as 'scc/sbin/monitor 327680 '
monitor: invoked as: scc/sbin/monitor 327680
RAM allocator initialised, 1612 MB (of 1628 MB) available
Spawning chips on core 0
Spawning /scc/sbin/ramfsd on core 0
Spawning /scc/sbin/spawnd on core 0
Spawning /scc/sbin/startd on core 0
0 chips: client waiting for ramfs
ramfsd.0: pre-populating from boot image...
0 chips: client waiting for ramfs
ramfsd.0: ready
0 chips: notifying client about ramfs
0 chips: notifying client about ramfs
kernel 0: Allocating RAM at 0x80000000 uninitialized
kernel 0: Allocating RAM at 0x80010000 uninitialized
spawnd.0: coreid 0 is arch id 0
spawnd.0: coreid 1 is arch id 1
0 chips: client waiting for all_spawnds_up
Monitor 0: booting scc core 1 as '/scc/sbin/cpu'
kernel 0: Allocating RAM at 0x80020000 uninitialized
Kernel starting at address 0x80100000
My APIC ID: 1
Barrelfish CPU driver starting on scc core 1
init: invoked as: init 2097152
Spawning memory server (scc/sbin/mem_serv)...
Spawning monitor (scc/sbin/monitor)...
starting monitor as 'scc/sbin/monitor 327680 '
monitor: invoked as: scc/sbin/monitor 327680
RAM allocator initialised, 1612 MB (of 1628 MB) available
Spawning chips on core 1
Spawning /scc/sbin/ramfsd on core 1
Spawning /scc/sbin/spawnd on core 1
Spawning /scc/sbin/startd on core 1
0 chips: client waiting for ramfs
ramfsd.1: pre-populating from boot image...
0 chips: client waiting for ramfs
ramfsd.1: ready
0 chips: notifying client about ramfs
0 chips: notifying client about ramfs
kernel 1: Allocating RAM at 0x84000000 uninitialized
kernel 1: Allocating RAM at 0x84010000 uninitialized
spawnd.1: coreid 0 is arch id 0
spawnd.1: coreid 1 is arch id 1
0 chips: client waiting for all_spawnds_up
Monitor 1: booting scc core 0 as '/scc/sbin/cpu'
********* Why would core 1 want to boot core 0 ? **************
kernel 1: Allocating RAM at 0x84020000 uninitialized
kernel 1 PANIC! kernel assertion "rck_get_coreid() == 0" failed at
../kernel/arch/scc/rck.c:876
kernel 1: exception 3 (error code 0x0): breakpoint
On behalf of: monitor
Faulting instruction pointer (or following instruction): 0x8010a7bf (0x
10a7bf in binary)
EAX 0x80118000 EBX 0x80116e88 ECX 0x0 EDX 0x805202c0 ESP 0x80920a08
Top o' stack:
0x8010a7bf 0x2 0x8 0x10 0x3 0x0 0x8010a7bf 0x8 0x2 0x80520180 0x80116e88
0x80920a44 0x8010c612 0x80116e88 0x210d6000 0x80920a64 0x8010c64b
0x801164a0 0x80114c10 0x80114b55
No GDB backend
--------------- OUTPUT END ------------------------------
As I see it, core 1 seems thought that it's the bsp core (while it's not)
so it's responsible to boot other cores. But I fail to see why core 1 would
think like that.
Any ideas on this? Thanks in advance.
Regards,
Jinghao
FYI, this is my menu.lst.scc
1 timeout 0
2
3 # spawnd is used to control which cpus are booted
4 #
5 # "spawnd boot" will use the skb and pci to figure out and
6 # boot all cores in the machine
7 #
8 # "spawnd boot bootscc=1-6" will not use the skb and
9 # boot the list of cores passed as argument.
10 # The hardware id of the cores to boot should be specified.
11 # This list may not include the bsp core id.
12
13 title Barrelfish
14 root (nd)
15 kernel /scc/sbin/cpu loglevel=4
16 module /scc/sbin/cpu
17 module /scc/sbin/init
18
19 # Domains spawned by init
20 module /scc/sbin/mem_serv
21 module /scc/sbin/monitor
22
23 module /scc/sbin/chips boot
24 module /scc/sbin/ramfsd boot
25 module /scc/sbin/spawnd boot bootscc=0-1
26 module /scc/sbin/startd boot
27
28 #module /scc/sbin/examples/xmpl-hello
29
30 # modules needed to start the networking
31 # module /scc/sbin/eMAC core=0 device=2
32 # module /scc/sbin/netd core=0 cardname=eMAC2_0
33 # module /scc/sbin/eMAC core=1
34 # module /scc/sbin/netd core=1 cardname=eMAC2_1
35
36 # Test for network throughput
37 # module /scc/sbin/netthroughput core=1 /nfs
nfs://10.110.4.41/shared/nfs/pravin/testfile.txt
38
39 # For webserver
40 # module /scc/sbin/webserver core=1 eMAC2_1 10.110.4.41
/shared/pravin/sw
41
42 # RCK memory map
43 # Everything up til VGA is private RAM (maybe we want to throw it away)
44 mmap map 0x0 0xa000 2
45 # Everything after VGA is private RAM (we also live in this area)
46 mmap map 0xe800 0x26ff1800 1
47 # Shared RAM (over all MCs) in the middle of address space
48 #mmap map 0x80000000 0x4000000 1
49 mmap map 0x80000000 0x40000000 1
50 # At the very end we have some platform memory (bootup EEPROM)
51 mmap map 0xfffc0000 0x40000 2
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.inf.ethz.ch/pipermail/barrelfish-users/attachments/20120422/e2ff7982/attachment.html
More information about the Barrelfish-users
mailing list