Hi Robert
You are correct, the 10GbEv2 core is preferred for ROACH. It is faster
and has a smaller footprint.
Just yesterday I finished integrating Marc Welz's 10GbE driver and
updated tcpborphserver. This hides all the ARP/MAC address
configuration complexity, so you don't need to worry about the
populating the ARP tables, MAC addresses and IP configurations at the
correct memory offsets. No documentation exists yet. I will upload a
new root filesystem to CASPER SVN this afternoon which bundles all the
necessary code. In the meantime, you can look at http://casper.berkeley.edu/svn/trunk/roach/sw/tgtap/
for the userspace tap driver.
Basically, you start your .bof file on roach as you would on the bee2
(./my_borph_file.bof). This will create the usual /proc/PID/hw/ioreg
entries, one of which will be the 10GbE core with the name as
specified in your simulink design. Then you start the tgtap driver,
which will go off and populate the ARP tables, and continually update
them, so the tables will always be up-to-date, even if your network
changes (like the BEE2 did).
The driver has some simple help in case you forget the arguments:
roach0135:/proc/335/hw/ioreg# tgtap -h
usage: tgtap
-a ip local ip address
-g ip gateway ip address
-m mac MAC address
-p port fabric port
-t name tap device name
-b name borph file name
-T enable test mode (-b specifies normal file)
To run the driver manually (as opposed to configuring it using KATCP),
you can do something like: tgtap -a 10.0.0.129 -m 02:01:02:03:04:06 -p
8888 -b /proc/525/hw/ioreg/gbe0
This will start a new tap network interface device which you can use
as any other normal linux interface, albeit slowly initially (because
the PPC-FPGA interface doesn't run at 10gbs, and DMA is not yet
enabled):
roach0135:/proc/335/hw/ioreg# ifconfig
eth0 Link encap:Ethernet HWaddr 02:00:00:02:01:35
inet addr:192.168.1.35 Bcast:192.168.1.255 Mask:
255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:108722 errors:0 dropped:0 overruns:0 frame:0
TX packets:57983 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:22550891 (21.5 MiB) TX bytes:9045336 (8.6 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
tgtap0 Link encap:UNSPEC HWaddr
00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.0.0.129 P-t-P:10.0.0.129 Mask:255.255.255.0
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
roach0135:/proc/335/hw/ioreg# ping 10.0.0.1
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=0.590 ms
64 bytes from 10.0.0.1: icmp_seq=3 ttl=64 time=0.598 ms
Cool, huh?!
It is now also integrated into KATCP, so you can do all the stuff
remotely. See the tap-start and tap-stop commands.
Jason
On 07 Jul 2009, at 11:36, Navarro, Robert wrote:
Hi,
We’re also at JPL working on bringing the first ROACH board we have
received to life. We have already been able to capture some sample
data out of an iADC board connected to a ROACH and would now like to
gain some familiarity with the 10GE ports on the board.
In the BEE_XPS system library, there are two 10GE blocks, the
ten_GbE and the ten_Gbe_v2. For Roach board designs, which block is
preferred. I am guessing the ten_Gbe_v2 block is preferred, but I
wanted to confirm it. Also, I am wondering what documentation is
available for that block. So far, I have found the Wiki page,http://casper.berkeley.edu/wiki/Ten_GbE_v2
, but I was wondering if there is any additional documentation. The
Wiki page mentions some OPB registers: MAC, IP, UDP and ARP. I
generated a test design using the ten_Gbe_v2 (but have not tried
running it yet) and the “core_info.tab” file generated in the
XPS_ROACH_BASE folder did not have any reference to these registers.
Will they appear when I load the BOF file? Also, it mentions in the
Wiki documentation, that some configuration packets may be sent and
received by the microprocessor core. Where would I look to see how
that works?
Thanks,
Robert Navarro
From: [email protected] [mailto:[email protected]
] On Behalf Of Jason Zheng
Sent: Wednesday, July 01, 2009 3:04 PM
To: [email protected]
Subject: [casper] 10GE UDP core
Hi,
This is the first time I'm posting to this mailing list, so allow me
to introduce myself. My name is Jason Zheng, and I am an FPGA design
engineer at JPL. A couple of weeks ago I attended the CASPER
workshop at JPL, and have started to play with the CASPER libraries.
My main interest is to infuse CASPER cores into the instrument
design at JPL.
I've been playing with the 10GE UDP core for a while, and took a
look at the VHDL source code. Comparing the simulink model with the
VHDL source code, I noticed that the simulink model hid the physical
interface (XAUI_XXX) from CASPER users. The simulink model only
shows the internal datapath ports and the LED outputs. It doesn't
seem obvious to me how to run a simulink simulation with the UDP
core fully modeling a computer network. Am I missing some key
information? Or is the UDP core meant to be a black hole/hose only?
cheers,
Jason Zheng