Questions about Low Level Ethernet Demo Application

Sub forums for various specialist XMOS applications. e.g. USB audio, motor control and robotics.
User avatar
gerrykurz
XCore Addict
Posts: 204
Joined: Sun Jun 01, 2014 10:25 pm

Questions about Low Level Ethernet Demo Application

Post by gerrykurz »

The makefile for this project specifies a target = SLICEKIT-L2

I would like to modify the XN file to add a second SLICEKIT-L2 board as a slave.

However, I cannot find the SLICEKIT-L2.XN file anywhere in the project.

Where is this file?

Also, in the module_slicekit_support module is a file called slicekit_init.s

This is an assembly language source file. Can someone explain what it does and where it is called from?


User avatar
TSC
Experienced Member
Posts: 111
Joined: Sun Mar 06, 2011 11:39 pm

Post by TSC »

The SLICEKIT-L2.xn and other xn files can be found in:
C:\Program Files (x86)\XMOS\xTIMEcomposer\<version>\targets\SLICEKIT-L2

Note that L2 is now known as L16 after the hardware-threads to logical-cores rebranding.

You may experience this issue when using two chained SliceKit Core boards.

I believe the slicekit_init.s assembly code runs after boot and sets a multiplexer on the Core board to allow certain XS1 I/O lines to be used as general purpose I/O on the slots. The other setting is to connect those XS1 I/O lines to the SPI flash.

Edit: Read this for more details.
User avatar
gerrykurz
XCore Addict
Posts: 204
Joined: Sun Jun 01, 2014 10:25 pm

Post by gerrykurz »

Well power sequencing a master/slave chained two device scenario seems like a bit of a show stopper particularly when migrating from the slice kits to a custom hardware design. Is there not a better solution to this issue? Is this really a new issue? Surely someone has chained two slice kit boards together many times in the past?

So does slicekit_init.s need to run on the slave board as well?

Another question for any ethernet code expert. Can someone show me exactly where in the code that the ethernet rx routine does the mac address compare as I would like to modify that bit of code to compare to a range mac addresses rather than just one.

The source code documentation is rather sparse and obtuse (at least for me)

Thanks for your help so far.

Gerry
User avatar
TSC
Experienced Member
Posts: 111
Joined: Sun Mar 06, 2011 11:39 pm

Post by TSC »

Well power sequencing a master/slave chained two device scenario seems like a bit of a show stopper particularly when migrating from the slice kits to a custom hardware design. Is there not a better solution to this issue? Is this really a new issue? Surely someone has chained two slice kit boards together many times in the past?
Yes, you'd think that chaining two SliceKit boards would be quite common, but I haven't heard about anyone else having the power sequencing issues I had. Maybe it was because I was combining a 1V1 and 1V2 board.
So does slicekit_init.s need to run on the slave board as well?
Yes, it will need to be run on all SliceKit Core boards in the chain, but as long as you have module_slicekit_support in your makefile's USED_MODULES list, it should run automatically wherever it needs to.
User avatar
gerrykurz
XCore Addict
Posts: 204
Joined: Sun Jun 01, 2014 10:25 pm

Post by gerrykurz »

Thanks for the info.

And about the ethernet stuff, never mind, I think I found it.
User avatar
gerrykurz
XCore Addict
Posts: 204
Joined: Sun Jun 01, 2014 10:25 pm

Post by gerrykurz »

Could you post your XN file for the daisy chain configuration. I will make my own but it would be nice to have a reference to look at.
User avatar
TSC
Experienced Member
Posts: 111
Joined: Sun Mar 06, 2011 11:39 pm

Post by TSC »

I used this file from GitHub.

You'll want to change the keywords Core -> Tile and stdcore -> tile, just to make everything match the newer naming conventions.