[Barrelfish-users] 答复: 答复: barrelfish on scc, how to ping the cores

Zhuwangbin zhuwangbin at huawei.com
Wed Mar 7 10:45:46 CET 2012


Hi Pravin,

Thank you for your advice, I have tried your solution, but it doesn’t work.
Because my scc board doesn't have a useable PHY 2 ethernet ports (Usable GB ETH 1101), I replace "eMAC_eMAC2_" with "eMAC_eMAC3_" to use the emac d ( PHY 3).

Do I have to use the echoserver if I want to ping the cores? But the echoserver seems doesn't work (after printing chips: client waiting for eMAC3_0_CTRL, it seems stall).
When I ping rck00~rck47, /dev/crbif0rb0c0ttyS0 outputs something like 
EMAC: ######## interrupt came!
EMAC: #### interrupt handling!

But I get "From rckhost.ex.rck.net (192.168.10.254) icmp_seq=5 Destination Host Unreachable".

Menu.lst.scc
......
# modules needed to start the networking
module  /scc/sbin/eMAC core=0 device=3
module  /scc/sbin/netd core=0 cardname=eMAC3_0
module  /scc/sbin/eMAC core=1 device=3
module  /scc/sbin/netd core=1 cardname=eMAC3_1
module /scc/sbin/echoserver core=0 cardname=eMAC3_0
......

The crbif output is as follows:

root at scctest-desktop:~# cat /dev/crbif0rb0c0ttyS0
Kernel starting at address 0x80100000
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/eMAC already exists, skipping it
ramfsd.0: /scc/sbin/netd 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/eMAC on core 0
spawnd.0: spawning /scc/sbin/eMAC on core 0
startd.0: starting app /scc/sbin/netd on core 0
EMAC: Starting EMAC standalone driver.....
EMAC: arg 0 = eMAC
EMAC: arg 1 = device=3
EMAC: device = 3
EMAC: service name = [eMAC3_0]
Starting EMAC for hardware
EMAC: starting hardware init
EMAC: eMAC driver was called for eMAC3 on core 0(0x0)
EMAC: calling system call to get cap for device registers
EMAC: with values f9000000, 10
EMAC: device register base = f9000000, size = 16
EMAC: frame alloc done
EMAC: vspace done
EMAC: Setting up internal memory for receive
EMAC: setup_internal_mem (RX) (size 0x200000), lpa[0x13000000] = lva[0x2066c000]
EMAC: setup_internal_mem (TX) (size 0x200000), lpa[0x13200000] = lva[0x2086c000]
EMAC: internal memory set
EMAC: reading the registers
EMAC: ### details[]
EMAC: ### details[Register eMAC_host_IP_addr_reg (eMAC_host_IP_addr_reg):
 ip =   0xc0a80afe (IP Address of Host computer where /shared is mounted)
]
EMAC: ### details[Register eMAC_host_GW_addr_reg (eMAC_host_GW_addr_reg):
 ip =   0xc0a80afe (Gateway of Host computer)
]
EMAC: ### MAC upper[Register eMAC_MAC_base_addr_upper_reg (eMAC_MAC_base_addr_upper_reg):
 mac_upper =    0x45 (Upper 16 bits of base MAC address)
]
EMAC: ### MAC lower[Register eMAC_MAC_base_addr_lower_reg (eMAC_MAC_base_addr_lower_reg):
 mac_lower =    0x4d414431 (Lower 32 bits of base MAC address)
]
EMAC: ### eMAC driver initiated
EMAC: rck:calling system call to get cap for rck registers
EMAC: rck:with values f8000000, d
EMAC: rck:device register base = f8000000, size = 13
EMAC: rck:frame alloc done
EMAC: rck:vspace done
EMAC: Location:
EMAC:   X: 0 Y: 0, Z: 0 => Position: 0
EMAC: #####read success 1800, address bits[0]
EMAC: Using offset: 0, route[0], subdest[6], mode[600]
EMAC: RX buffer mem: lva [0x2066c000] == lpa [0x13000000]
#### base 13000000, 2097152
#### myroute = 0, 6 13
EMAC: RX route details: route [0], subdest [6], addr[13]
#### phywsical addr 13000000
EMAC: #### big addr 26000000, in reg [1300000]
EMAC: ##### adder_offset [13000000]
EMAC: ##### in reg [980000]
EMAC: RX start addr = Register eMAC3_RX_Buffer_start_addr[0] (eMAC3_RX_Buffer_start_addr):
 ADDR = 0x980000 (Upper 29 bit of physical start address [33:5] of memory buffer. Lower 5 bits are always 0 because access granularity to buffer will be always 32 bytes - one cache-line.)

EMAC: RX write index = Register eMAC3_RX_Buffer_last_index[0] (eMAC3_RX_Buffer_last_index):
 lid =  0xffff (Last valid index in buffer. .Buffer size = last index * 32 bytes)

EMAC: RX write index = Register eMAC3_RX_Buffer_write_index[0] (eMAC3_RX_Buffer_write_index):
 wid =  0x450 (Write index of RX buffer Points to 32 byte entry in the buffer.)

EMAC: RX rid (1104) == wid(1104)
EMAC: RX write index = Register eMAC3_RX_Buffer_read_index[0] (eMAC3_RX_Buffer_read_index):
 rid =  0x450 (Read index of RX buffer Points to 32 byte entry in the buffer.)

EMAC: RX routing = Register eMAC3_RX_routing[0] (eMAC3_RX_routing):
 broute =       0x0 (Route to the tile where the MC for this buffer is located)
 bdest =        0x6 (Defines the port at which the MC is connected)
 iroute =       0x0 (Route to the tile where the core for this buffer is located)
 idest =        0x0 (Selects core 0 or core 1 in the tile)

EMAC: Raw value = [600] and prepared[600]
Base mac address:[31:44:41:4d:45:00]
Core MAC address:[31:4c:41:4d:45:00]
EMAC: RX mac high = [Register eMAC3_RX_net_port_MAC_high[0] (eMAC3_RX_net_port_MAC_high):
 mac_hi =       0x45 (Higher 16 bits of MAC addresses)
]
EMAC: RX mac low = [Register eMAC3_RX_net_port_MAC_low[0] (eMAC3_RX_net_port_MAC_low):
 mac_lo =       0x4d414c31 (Lower 32 bits of MAC addresses)
]
EMAC: RX port enable = Register eMAC3_RX_net_port_enable[0] (eMAC3_RX_net_port_enable):
 enable =       0x1 (1 - Enabled, 0 - Disabled)

EMAC: eMAC driver: initialized RX
EMAC: TX buffer mem: lva [0x2086c000] == lpa [0x13200000]
#### base 13200000, 2097152
#### myroute = 0, 6 13
EMAC: TX route details: route [0], subdest [6], addr[13]
EMAC: #### TX big addr 26200000, in reg [1310000]
EMAC: ##### TX adder_offset [13200000]
EMAC: ##### TX in reg [990000]
EMAC: TX start addr = Register eMAC3_TX_Buffer_start_addr[0] (eMAC3_TX_Buffer_start_addr):
 ADDR = 0x990000 (Upper 29 bit of physical start address [33:5] of memory buffer. Lower 5 bits are always 0 because access granularity to buffer will be always 32 bytes - one cache-line.)

EMAC: TX write index = Register eMAC3_TX_Buffer_last_index[0] (eMAC3_TX_Buffer_last_index):
 lid =  0xffff (Last valid index in buffer. .Buffer size = last index * 32 bytes)

EMAC: TX read index = Register eMAC3_TX_Buffer_read_index[0] (eMAC3_TX_Buffer_read_index):
 rid =  0x7dc (Read index of TX buffer Points to 32 byte entry in the buffer.)

EMAC: TX rid (2012) == wid(2012)
EMAC: TX write index = Register eMAC3_TX_Buffer_write_index[0] (eMAC3_TX_Buffer_write_index):
 wid =  0x7dc (Write index of TX buffer Points to 32 byte entry in the buffer.)

EMAC: TX routing = Register eMAC3_TX_routing[0] (eMAC3_TX_routing):
 broute =       0x0 (Route to the tile where the MC for this buffer is located)
 bdest =        0x6 (Defines the port at which the MC is connected)

EMAC: TX port enable = Register eMAC3_TX_net_port_enable[0] (eMAC3_TX_net_port_enable):
 enable =       0x1 (1 - Enabled, 0 - Disabled)

EMAC: eMAC driver: initialized TX
EMAC: irq status [Register PIC_irq_status[0] (PIC_irq_status):  0x0
]
EMAC: Interrupt set
EMAC: irq status [Register PIC_irq_status[0] (PIC_irq_status):  0x0
]
EMAC: irq mask [Register PIC_irq_mask[0] (PIC_irq_mask):        0xfffffffffffffff7
]
EMAC: Done with hardware init
EMAC: registered the driver.....
EMAC: starting to poll
spawnd.0: spawning /scc/sbin/netd on core 0
startd.0: starting app /scc/sbin/eMAC on core 1
kernel 0: Allocating RAM at 0x80021000 uninitialized
lwip_barrelfish: idc_client_init: start client
lwip_barrelfish: start_client: called
lwip_barrelfish: start_client: resolving driver eMAC3_0
lwip_barrelfish: start_client: connecting
lwip_barrelfish: start_client: terminated
lwip_barrelfish: idc_client_init: wait connection 0
lwip_barrelfish: connection_service_logic: started
lwip_barrelfish: connection_service_logic: terminated
lwip_barrelfish: start_client: called
lwip_barrelfish: start_client: resolving driver eMAC3_0
lwip_barrelfish: start_client: connecting
lwip_barrelfish: start_client: terminated
lwip_barrelfish: idc_client_init: wait connection 1
lwip_barrelfish: connection_service_logic: started
lwip_barrelfish: connection_service_logic: terminated
lwip_barrelfish: idc_client_init: successfully connected with card [eMAC3_0]
#### [0] [BIG] [1] MEM_SIZE[62914560], MEMP_NUM_PBUF[256],  PBUF_POOL_SIZE[256], NR_PREALLOCATED_PBUFS[47], PBUF_POOL_BUFSIZE[8192] ####
memp_init: allocating 20e3fb memory for index 0
lwip_barrelfish: @@@@@@ mem alloc 20e3fb for index 0
lwip_barrelfish: allocating 20e3fb bytes of memory for index 0.
lwip_barrelfish: memp pbuf 100, pool size 100
lwip_barrelfish: allocating 20e3fb bytes of memory.
lwip_barrelfish: bulk_create success!!!
lwip_barrelfish: idc_register_buffer for binding 0 called
lwip_barrelfish: idc_register_buffer: terminated
lwip_barrelfish: [0] new_buffer_id: buffer_id = 1
lwip_barrelfish: new_buffer_id: EEEEEEE buffer_id = 1
@@@@@@ mem alloc 3c0001c, 3c0001c for index 1
lwip_barrelfish: @@@@@@ mem alloc 3c0001c for index 1
lwip_barrelfish: allocating 3c0001c bytes of memory for index 1.
lwip_barrelfish: memp pbuf 100, pool size 100
lwip_barrelfish: allocating 3c0001c bytes of memory.
startd.0: starting app /scc/sbin/netd on core 1
startd.0: starting app /scc/sbin/echoserver on core 0
lwip_barrelfish: bulk_create success!!!
lwip_barrelfish: idc_register_buffer for binding 1 called
lwip_barrelfish: idc_register_buffer: terminated
spawnd.0: spawning /scc/sbin/echoserver on core 0
No bootscript
echoserver running on core 0
card name = eMAC3_0
echoserver: trying to connect to the NIC driver...
lwip_barrelfish: idc_connect_to_netd: wait for netd connection
lwip_barrelfish: init_netd_connection: called
lwip_barrelfish: init_netd_connection: connecting to [eMAC3_0_CTRL]
lwip_barrelfish: init_netd_connection: resolving driver eMAC3_0_CTRL
chips: client waiting for eMAC3_0_CTRL
lwip_barrelfish: [0] new_buffer_id: buffer_id = 2
lwip_barrelfish: new_buffer_id: EEEEEEE buffer_id = 2
Allocating 47 pbufs
lwip_barrelfish: pbuf is from buff 1 -------
lwip_barrelfish: Registered 47 no. of pbufs for receiving -------
pbuf is from buff 1 -------
Registered 47 no. of pbufs for receiving -------
lwip_barrelfish: idc_get_mac_address: called #######
lwip_barrelfish: get_mac_address_response: called
lwip_barrelfish: get_mac_address_response: terminated
lwip_barrelfish: idc_get_mac_address: terminated ##########
##################################################
MAC address: 00:45:4d:41:4c:31
lwip_barrelfish: idc_get_mac_address: called #######
lwip_barrelfish: idc_get_mac_address: terminated ##########
lwip_barrelfish: idc_register_receive_callback: called
lwip_barrelfish: idc_register_receive_callback: terminated
lwip_barrelfish: idc_register_freeing_callback: called
lwip_barrelfish: idc_register_freeing_callback: terminated
lwip_barrelfish: idc_bind_port: called by owner
lwip_barrelfish: get_mac_address_response: called
lwip_barrelfish: get_mac_address_response: terminated
EMAC: send pkt function called
EMAC: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
EMAC: PKT_no:1, packet len: 350, no. pbufs 1, clines 11
EMAC: TX rid: 0x7dc,  wid 0x7dd
EMAC: TX_rid: 0x7dc, _wid 0x7dc
EMAC: TX rid: 0x7dc, wid 0x7dd
EMAC: ######## TX:  Simple case, just copy whole pkt ########
EMAC: ##### Update tx write offset: 2023 (read offset 2012)
EMAC: packet len: 350, clines 11
EMAC: TX read index [Register eMAC3_TX_Buffer_read_index[0] (eMAC3_TX_Buffer_read_index):
 rid =  0x7e7 (Read index of TX buffer Points to 32 byte entry in the buffer.)
]
EMAC: TX write index [Register eMAC3_TX_Buffer_write_index[0] (eMAC3_TX_Buffer_write_index):
 wid =  0x7e7 (Write index of TX buffer Points to 32 byte entry in the buffer.)
]
lwip_barrelfish: tx_done: 20a6c088
EMAC: send pkt function called
EMAC: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
EMAC: PKT_no:2, packet len: 350, no. pbufs 1, clines 11
EMAC: TX rid: 0x7e7,  wid 0x7e8
EMAC: TX_rid: 0x7e7, _wid 0x0
EMAC: TX rid: 0x7e7, wid 0x7e8
EMAC: ######## TX:  Simple case, just copy whole pkt ########
EMAC: ##### Update tx write offset: 2034 (read offset 2023)
EMAC: packet len: 350, clines 11
EMAC: TX read index [Register eMAC3_TX_Buffer_read_index[0] (eMAC3_TX_Buffer_read_index):
 rid =  0x7f2 (Read index of TX buffer Points to 32 byte entry in the buffer.)
]
EMAC: TX write index [Register eMAC3_TX_Buffer_write_index[0] (eMAC3_TX_Buffer_write_index):
 wid =  0x7f2 (Write index of TX buffer Points to 32 byte entry in the buffer.)
]
lwip_barrelfish: tx_done: 20a6c088
EMAC: send pkt function called
EMAC: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
EMAC: PKT_no:3, packet len: 350, no. pbufs 1, clines 11
EMAC: TX rid: 0x7f2,  wid 0x7f3
EMAC: TX_rid: 0x7f2, _wid 0x0
EMAC: TX rid: 0x7f2, wid 0x7f3
EMAC: ######## TX:  Simple case, just copy whole pkt ########
EMAC: ##### Update tx write offset: 2045 (read offset 2034)
EMAC: packet len: 350, clines 11
EMAC: TX read index [Register eMAC3_TX_Buffer_read_index[0] (eMAC3_TX_Buffer_read_index):
 rid =  0x7fd (Read index of TX buffer Points to 32 byte entry in the buffer.)
]
EMAC: TX write index [Register eMAC3_TX_Buffer_write_index[0] (eMAC3_TX_Buffer_write_index):
 wid =  0x7fd (Write index of TX buffer Points to 32 byte entry in the buffer.)
]
lwip_barrelfish: tx_done: 20a6c088
EMAC: send pkt function called
EMAC: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
EMAC: PKT_no:4, packet len: 350, no. pbufs 1, clines 11
EMAC: TX rid: 0x7fd,  wid 0x7fe
EMAC: TX_rid: 0x7fd, _wid 0x0
EMAC: TX rid: 0x7fd, wid 0x7fe
EMAC: ######## TX:  Simple case, just copy whole pkt ########
EMAC: ##### Update tx write offset: 2056 (read offset 2045)
EMAC: packet len: 350, clines 11
EMAC: TX read index [Register eMAC3_TX_Buffer_read_index[0] (eMAC3_TX_Buffer_read_index):
 rid =  0x808 (Read index of TX buffer Points to 32 byte entry in the buffer.)
]
EMAC: TX write index [Register eMAC3_TX_Buffer_write_index[0] (eMAC3_TX_Buffer_write_index):
 wid =  0x808 (Write index of TX buffer Points to 32 byte entry in the buffer.)
]
lwip_barrelfish: tx_done: 20a6c088
EMAC: send pkt function called
EMAC: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
EMAC: PKT_no:5, packet len: 350, no. pbufs 1, clines 11
EMAC: TX rid: 0x808,  wid 0x809
EMAC: TX_rid: 0x808, _wid 0x0
EMAC: TX rid: 0x808, wid 0x809
EMAC: ######## TX:  Simple case, just copy whole pkt ########
EMAC: ##### Update tx write offset: 2067 (read offset 2056)
EMAC: packet len: 350, clines 11
EMAC: TX read index [Register eMAC3_TX_Buffer_read_index[0] (eMAC3_TX_Buffer_read_index):
 rid =  0x813 (Read index of TX buffer Points to 32 byte entry in the buffer.)
]
EMAC: TX write index [Register eMAC3_TX_Buffer_write_index[0] (eMAC3_TX_Buffer_write_index):
 wid =  0x813 (Write index of TX buffer Points to 32 byte entry in the buffer.)
]
lwip_barrelfish: tx_done: 20a6c088
EMAC: ######## interrupt came!
EMAC: #### interrupt handling!
EMAC: ######## we have a packet! rid [450] wid[452]
EMAC: old values 450, 452, 0
EMAC: MOVEMENT: 1 [rid (450) != wid (452)]
EMAC: buf location (0x2066c000) + index (8a20) = pkt location (0x20674a20)
EMAC: [RX pkt len (60)]
EMAC: [clines (2)]
EMAC: [directly passed the pkt of len (60), new [rid (452) != wid (452)]]
EMAC: Following pkt received
EMAC: pkt no 1 processed.
lwip_barrelfish: packet_received: called
EMAC: ######## interrupt came!
EMAC: #### interrupt handling!
EMAC: ######## we have a packet! rid [452] wid[454]
EMAC: old values 452, 454, 0
EMAC: MOVEMENT: 2 [rid (452) != wid (454)]
EMAC: buf location (0x2066c000) + index (8a60) = pkt location (0x20674a60)
EMAC: [RX pkt len (60)]
EMAC: [clines (2)]
EMAC: [directly passed the pkt of len (60), new [rid (454) != wid (454)]]
EMAC: Following pkt received
EMAC: pkt no 2 processed.
lwip_barrelfish: packet_received: called

Best regards,
Wangbin Zhu

-----邮件原件-----
发件人: shindepravin at gmail.com [mailto:shindepravin at gmail.com] 代表 Pravin
发送时间: 2012年3月6日 19:39
收件人: Zhuwangbin
抄送: Simon Peter; barrelfish-users at lists.inf.ethz.ch
主题: Re: [Barrelfish-users] 答复: barrelfish on scc, how to ping the cores

Hi Zhuwangbin,

By looking at your menu.lst.scc and output, my understanding is that you are using PHY connection 0 out of 4 PHY ethernet ports provided by SCC.  Unfortunately, the eMAC driver was programmed to work with PHY 2.  This is mostly due to some hard-coded function calls in file usr/drivers/eMAC/eMAC_hwinit.c.  You can find these function calls by searching for a string "eMAC_eMAC2_".  In all these function calls,
eMAC2 specifies that PHY2 is to be used.  Ideally this should have been decided by device-id provided as command line argument, but this driver was written in little hurry and hence ended up having hard-coded PHY.

So, my suggestion will be to re-connect the ethernet cable to PHY2 on SCC and modify the menu.lst.scc accordingly, and hopefully this should work.  Other option is to keep the ethernet cable on PHY0 and edit eMAC_hwinit.c to replace "eMAC_eMAC2_" with "eMAC_eMAC0_".  I have attached a patch with this email for this.  As per my understanding, this patch should work, but I haven't tested it!  So, I can't assure that it will work.  I would recommend connecting the cable to PHY2, as we know that our code works with PHY2.

I hope this helps.
Pravin

2012/3/6 Zhuwangbin <zhuwangbin at huawei.com>:
> Hi Simon,
>
> Thank you for your reply, my /opt/sccKit/systemSettings.ini is as follows:
>
> [General]
> CRBServer=192.168.2.127:5010
> memorySize=8
> platform=RockyLake
> maxTransId=64
> sccGateway=192.168.10.254
> sccFirstMac=00:45:4D:41:44:31
> sccHostIp=192.168.10.254
> sccFirstIp=192.168.10.1
> sccMacEnable=a
>
> and emac a is functional when I boot the sccLinux.
>
> Wangbin Zhu
>
> -----邮件原件-----
> 发件人: Simon Peter [mailto:speter at inf.ethz.ch]
> 发送时间: 2012年3月6日 18:31
> 收件人: Zhuwangbin
> 抄送: barrelfish-users at lists.inf.ethz.ch
> 主题: Re: [Barrelfish-users] barrelfish on scc, how to ping the cores
>
> Hi Zhuwangbin,
>
> The performance meter widget isn't supported by Barrelfish. It seems 
> the system came up just fine. You might want to make sure the driver 
> is actually speaking to eMAC a. Is the printed MAC address the one you 
> would expect?
>
> Simon
>
> On 06.03.2012 07:56, Zhuwangbin wrote:
>> Hi all,
>>
>> I’m trying to run barrelfish(release2012-01-30) on scc(sccKit 1.4.2 
>> with emac enabled, the port is emac a), but I can’t ping the cores, 
>> and in the SCC performance meter widget, I can’t see any alive cores.
>>
>> The menu.lst.scc is as follows:
>>
>> 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 device=0
>>
>> module /scc/sbin/netd core=0 cardname=eMAC0_0
>>
>> module /scc/sbin/eMAC core=1 device=0
>>
>> module /scc/sbin/netd core=1 cardname=eMAC0_1
>>
>> module /scc/sbin/echoserver core=1 cardname=eMAC0_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
>>
>> and the output is as follows(cat /dev/crbif0rb0c0ttyS0):
>>
>> Kernel starting at address 0x80100000
>>
>> 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/eMAC already exists, skipping it
>>
>> ramfsd.0: /scc/sbin/netd 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/eMAC on core 0
>>
>> spawnd.0: spawning /scc/sbin/eMAC on core 0
>>
>> startd.0: starting app /scc/sbin/netd on core 0
>>
>> Starting EMAC for hardware
>>
>> #### base 13000000, 2097152
>>
>> #### myroute = 0, 6 13
>>
>> #### phywsical addr 13000000
>>
>> Base mac address:[31:44:41:4d:45:00]
>>
>> Core MAC address:[31:45:41:4d:45:00]
>>
>> #### base 13200000, 2097152
>>
>> #### myroute = 0, 6 13
>>
>> spawnd.0: spawning /scc/sbin/netd on core 0
>>
>> startd.0: starting app /scc/sbin/eMAC on core 1
>>
>> kernel 0: Allocating RAM at 0x80021000 uninitialized
>>
>> #### [0] [BIG] [1] MEM_SIZE[31457280], MEMP_NUM_PBUF[256], 
>> PBUF_POOL_SIZE[256], NR_PREALLOCATED_PBUFS[31], 
>> PBUF_POOL_BUFSIZE[256] ####
>>
>> memp_init: allocating 1e3fb memory for index 0
>>
>> @@@@@@ mem alloc 1e0001c, 1e0001c for index 1
>>
>> startd.0: starting app /scc/sbin/netd on core 1
>>
>> Allocating 31 pbufs
>>
>> pbuf is from buff 1 -------
>>
>> Registered 31 no. of pbufs for receiving -------
>>
>> ##################################################
>>
>> MAC address: 00:45:4d:41:45:31
>>
>> startd.0: starting app /scc/sbin/echoserver on core 1
>>
>> No bootscript
>>
>> chips: client waiting for eMAC0_1_CTRL
>>
>> Whether the barrelfish is successfully booted? I can’t ping the 
>> cores(core0, core1). How can I access the cores?
>>
>> Many thanks for your help,
>>
>> Best regards,
>>
>> Wangbin Zhu
>>
>>
>>
>> _______________________________________________
>> Barrelfish-users mailing list
>> Barrelfish-users at lists.inf.ethz.ch
>> https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users
>
> _______________________________________________
> Barrelfish-users mailing list
> Barrelfish-users at lists.inf.ethz.ch
> https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users


More information about the Barrelfish-users mailing list