[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