[Barrelfish-users] Barrelfish Hello world on SCC
Stefan Kästle
stefan.kaestle at inf.ethz.ch
Tue Jan 31 17:13:37 CET 2012
Okay, two more things you could try:
1) sccBmc -i Tile533_Mesh800_DDR800
which should re-train the SCC board
2) Exchange in bootscc.sh:
sccMerge -m 8 -n 12 -noimage -lut_default -force barrelfish02.mt
<http://barrelfish02.mt> with
sccMerge -m 8 -n 12 -noimage -lut_default -force barrelfish48.mt
<http://barrelfish48.mt>
Which rev of Barrelfish are you using - the tip? We did a release some
days ago. I don't think anything SCC related changed. However, I you
should give the latest version a try anyway.
As I don't see any error message, I assume Barrelfish THINKS it is
properly initiating the core [1], but it never comes up.
Can you put a printf in rck_start_core(..) in kernel/arch/scc/rck.c to
make sure that code is executed? (which I assume it is .. )
[1] By setting the configuration registers in
<http://hg.barrelfish.org/file/f86bee507614/kernel/arch/scc/rck.c#l920>
On 01/31/2012 03:37 PM, Nil Karavadara wrote:
> HI,
>
> Thank for quick reply.
>
> I am using sccboot.sh to boot barrelfish on to cores
>
> *bootscc.sh*
> #!/bin/bash
> #
> # Starts Barrelfish on SCC
>
> # Reset CRBs and everything else
> sccReset -g
>
> # Create an SCC memory image & LUT mapping
> sccMerge -m 8 -n 12 -noimage -lut_default -force barrelfish02.mt
> <http://barrelfish02.mt>
> #sccMerge -m 8 -n 12 -noimage -lut_default -force barrelfish12.mt
> <http://barrelfish12.mt>
> #sccMerge -m 8 -n 12 -noimage -lut_default -force barrelfish48.mt
> <http://barrelfish48.mt>
> #sccMerge -m 8 -n 12 -noimage -lut_default -force barrelfish24.mt
> <http://barrelfish24.mt>
>
> # Preload memory with image
> sccBoot -g obj
>
> # Release reset of core #0
> sccReset -r 0
>
> # Watch the output of all cores as it goes...
> ./watchall.sh*
>
> watchall.sh*
> #!/bin/bash -i
> #
> # Shows output of all Barrelfish SCC cores simultaneously, as it arrives.
>
> trap "pkill -P $$" SIGINT
>
> for i in `seq 0 1`; do
> # XXX: We use grep here to enforce line-buffered output, so concurrent
> # input from UARTs isn't garbled.
> # cat /dev/crbif0rb0c${i}ttyS0 | grep . --line-buffered &
> cat /dev/crbif0rb0c${i}ttyS0 &> $HOME/core${i}.log
> done
>
> wait
>
>
> On Tue, Jan 31, 2012 at 1:12 PM, Stefan Kästle
> <stefan.kaestle at inf.ethz.ch <mailto:stefan.kaestle at inf.ethz.ch>> wrote:
>
> Hi,
>
> the output should be something like:
>
>
> 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, 1611 MB (of 1627 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
> chips: client waiting for ramfs
> ramfsd.0: pre-populating from boot image...
> chips: client waiting for ramfs
> ramfsd.0: /scc/sbin/examples/xmpl-hello already exists, skipping it
> ramfsd.0: ready
> chips: notifying client about ramfs
> chips: notifying client about ramfs
> kernel 0: Allocating RAM at 0x80000000 uninitialized
> kernel 0: Allocating RAM at 0x80010000 uninitialized
> spawnd.0: coreid 1 is arch id 1
> 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 0 chanid=0 frame=2147614720
> <tel:2147614720>
>
> Spawning memory server (scc/sbin/mem_serv)...
> Spawning monitor (scc/sbin/monitor)...
> starting monitor as 'scc/sbin/monitor 327680 0 chanid=0
> frame=2147614720 <tel:2147614720> '
> monitor: invoked as: scc/sbin/monitor 327680 0 chanid=0
> frame=2147614720 <tel:2147614720>
> RAM allocator initialised, 1611 MB (of 1627 MB) available
> frame base at 0x80020000 -- 0x80021000
>
> kernel 1: Allocating RAM at 0x80020000 uninitialized
> URPC physical frame at 0x80020000
> Spawning spawnd on core 1
>
> all 2 monitors up
> chips: client waiting for spawn.1.ready
> kernel 1: Allocating RAM at 0x81000000 uninitialized
> kernel 1: Allocating RAM at 0x81001000 uninitialized
> kernel 1: Allocating RAM at 0x81040000 uninitialized
>
> chips: notifying client about spawn.1.ready
> chips: client waiting for all_spawnds_up
> chips: notifying client about all_spawnds_up
> chips: notifying client about all_spawnds_up
> startd.0: starting app /scc/sbin/examples/xmpl-hello on core 0
> spawnd.0: spawning /scc/sbin/examples/xmpl-hello on core 0
> startd.0: starting app /scc/sbin/examples/xmpl-hello on core 1
> kernel 0: Allocating RAM at 0x80021000 uninitialized
> Hello World
> spawnd.1: spawning /scc/sbin/examples/xmpl-hello on core 1
> No bootscript
> kernel 1: Allocating RAM at 0x81002000 uninitialized
> Hello World
>
> It seems the second core (id=1) is not started. Did you configure
> the SCC properly?
> What arguments did you give to sccMerge? [1]
>
> Hope this helps
> Stefan
>
> [1] <http://www.barrelfish.org/TN-005-SCC.pdf>, chapter 2.4 Boot
> process: first (bootstrap) core)
>
>
>
> On 01/31/2012 12:01 PM, Nil Karavadara wrote:
>> HI,
>>
>> I have made changes (only menu.lst needed changes) but the out
>> put is still the same.
>>
>> *Output log:*
>>
>> 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, 1608 MB (of 1624 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
>> chips: client waiting for ramfs
>> ramfsd.0: pre-populating from boot image...
>> chips: client waiting for ramfs
>> ramfsd.0: /scc/sbin/examples/xmpl-hello already exists, skipping it
>> ramfsd.0: ready
>> chips: notifying client about ramfs
>> chips: notifying client about ramfs
>> kernel 0: Allocating RAM at 0x80000000 uninitialized
>> kernel 0: Allocating RAM at 0x80010000 uninitialized
>> spawnd.0: coreid 1 is arch id 1
>> chips: client waiting for all_spawnds_up
>> Monitor 0: booting scc core 1 as '/scc/sbin/cpu'
>> kernel 0: Allocating RAM at 0x80020000 uninitialized
>> all 2 monitors up
>> chips: client waiting for spawn.1.ready
>> chips: notifying client about spawn.1.ready
>> chips: client waiting for all_spawnds_up
>> chips: notifying client about all_spawnds_up
>> chips: notifying client about all_spawnds_up
>> startd.0: starting app /scc/sbin/examples/xmpl-hello on core 0
>> spawnd.0: spawning /scc/sbin/examples/xmpl-hello on core 0
>> startd.0: starting app /scc/sbin/examples/xmpl-hello on core 1
>> kernel 0: Allocating RAM at 0x80021000 uninitialized
>> Hello World
>> No bootscript
>>
>> *Menu.lst*
>> timeout 0
>>
>> # spawnd is used to control which cpus are booted
>> #
>> # "spawnd boot" will use the skb and pci to figure out and
>> # boot all cores in the machine
>> #
>> # "spawnd boot bootscc=1-6" will not use the skb and
>> # boot the list of cores passed as argument.
>> # The hardware id of the cores to boot should be specified.
>> # This list may not include the bsp core id.
>>
>> title Barrelfish
>> root (nd)
>> kernel /scc/sbin/cpu loglevel=4
>> module /scc/sbin/cpu
>> module /scc/sbin/init
>>
>> # Domains spawned by init
>> module /scc/sbin/mem_serv
>> module /scc/sbin/monitor
>>
>> module /scc/sbin/chips boot
>> module /scc/sbin/ramfsd boot
>> module /scc/sbin/spawnd boot bootscc=1
>> module /scc/sbin/startd boot
>> # modules needed to start the networking
>> # module /scc/sbin/eMAC core=0
>> # module /scc/sbin/netd core=0 cardname=eMAC2_0
>> # module /scc/sbin/eMAC core=1
>> # module /scc/sbin/netd core=1 cardname=eMAC2_1
>>
>> # RCK memory map
>> # Everything up til VGA is private RAM (maybe we want to throw it
>> away)
>> mmap map 0x0 0xa000 2
>> # Everything after VGA is private RAM (we also live in this area)
>> mmap map 0xe800 0x26ff1800 1
>> # Shared RAM (over all MCs) in the middle of address space
>> #mmap map 0x80000000 0x4000000 1
>> mmap map 0x80000000 0x40000000 1
>> # At the very end we have some platform memory (bootup EEPROM)
>> mmap map 0xfffc0000 0x40000 2
>>
>>
>> module /scc/sbin/examples/xmpl-hello core=0
>> module /scc/sbin/examples/xmpl-hello core=1
>>
>> Is there anything ma i missing?
>>
>> Thank you,
>>
>>
>> On Wed, Jan 25, 2012 at 2:28 PM, Stefan Kästle
>> <stefan.kaestle at inf.ethz.ch <mailto:stefan.kaestle at inf.ethz.ch>>
>> wrote:
>>
>> Hi Nil,
>>
>> I assume you modified your menu.lst to start the hello
>> program. The menu.lst [1] for the SCC provided in the tip
>> version of the Barrelfish tree should not start the hello
>> world program automatically.
>>
>> Adding the following entry to the menu.lst would start the
>> hello program on core 0 (assuming you compiled it).
>> module /scc/sbin/examples/xmpl-hello core=0
>>
>> If you wanted it to start on more cores, you could add
>> several lines, such as:
>> module /scc/sbin/examples/xmpl-hello core=0
>> module /scc/sbin/examples/xmpl-hello core=1
>> module /scc/sbin/examples/xmpl-hello core=2
>>
>> If you omit the paramter core=, the program is started on the
>> core 0.
>>
>> Hope this helps,
>> Stefan
>>
>> [1] see
>> http://hg.barrelfish.org/file/8c906f8f22fb/hake/menu.lst.scc
>>
>>
>>
>> On 01/24/2012 05:46 PM, Nil Karavadara wrote:
>>> Hi,
>>>
>>> I have manged to boot barrelfish on SCC. My question is i
>>> have booted barrelfish on two cores of SCC and i can see
>>> "Hello world" printed once is this correct? (i think that
>>> core0 and core1 both will output "Hello world" and i should
>>> see it twice on screen)
>>>
>>> Thank you.
>>>
>>> --
>>> Kind Regards,
>>> Nil Karavadara
>>>
>>> Centre for Computer Science and Informatics Research
>>> Science & Technology Research Institute
>>> University of Hertfordshire
>>>
>>>
>>>
>>> _______________________________________________
>>> Barrelfish-users mailing list
>>> Barrelfish-users at lists.inf.ethz.ch <mailto:Barrelfish-users at lists.inf.ethz.ch>
>>> https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users
>>
>> --
>> Stefan Kästle
>> ETH Zürich
>> CAB E 69
>> Universitätstrasse 6
>> CH-8092 Zürich
>> Switzerland
>> Email:stefan.kaestle at inf.ethz.ch <mailto:stefan.kaestle at inf.ethz.ch>
>> Phone:+41 44 632 8289 <tel:%2B41%2044%20632%208289>
>>
>>
>> _______________________________________________
>> Barrelfish-users mailing list
>> Barrelfish-users at lists.inf.ethz.ch
>> <mailto:Barrelfish-users at lists.inf.ethz.ch>
>> https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users
>>
>>
>>
>>
>> --
>> Kind Regards,
>> Nil Karavadara
>>
>> Centre for Computer Science and Informatics Research
>> Science & Technology Research Institute
>> University of Hertfordshire
>>
>
> --
> Stefan
>
>
>
>
> --
> Kind Regards,
> Nil Karavadara
>
> Centre for Computer Science and Informatics Research
> Science & Technology Research Institute
> University of Hertfordshire
>
--
Stefan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.inf.ethz.ch/pipermail/barrelfish-users/attachments/20120131/4f052e71/attachment-0001.html
More information about the Barrelfish-users
mailing list