Just to clarify, a modification I made was calling the ethif_init function
ethernet.c file[1] and passing some parameters (base_addr,mac,
dma_ops,ethif_recv_callback). Currently, dma_ops and ethif_recv_callback
contain null values and I'm not too sure what I need to initialise them as.
Secondly, as I still was not getting a different message in the terminal to
suggest an error, I used the same method used for the pc99 boards for
initialising the ethernet device. I called the ethif_odroid_init_module
function which is the function that the preprocessor symbol is pointing to.
Doing so I was able at least try and see if I had done the modification of
the code correctly which leads me back to the first point as an assertion
error occurred for dma_ops and I presume would happen
to ethif_recv_callback as well. Also, please could you clarify how I am
meant to modify the callbacks so that it gets the correct registers and
IRQs from the DTS.
[1]
https://github.com/SEL4PROJ/AOS/blob/master/libethernet/src/ethernet.c#L63
Thanks,
Nkem
On Tue, 26 Jan 2021 at 10:23, Nkem Ogosi
I have seemingly done as you have suggested but the result remains the same. I do not even get any error messages to suggest I have modified anything incorrectly which again leads me to believe that maybe its an issue with how I have set up the folder but I don't see how as it follows the same conventions to the other plat from source files in libethdrivers. My second guess is simply that despite adding the parts for bootstrapping, it is making no attempt to do so. Again, apologies if my issues are trivial as this is my first time working with anything like this.
Best, Nkem
On Mon, 25 Jan 2021 at 03:27, Lee, Damon (Data61, Eveleigh) < Damon.Lee@data61.csiro.au> wrote:
Hi Nkem,
I have been trying to use the ethernet driver for the UNSW Asdvanced Operating Systems course but I still get these messages:
find_compatible_driver_module@io.c:434 No suitable driver was found for path /soc/ethernet@c9410000, ignoring server_init@ethdriver.c:382 Unable to find an ethernet device
I thought that I had to copy the driver to the utils lib folder and provide a preprocessor macro as someone else had suggested but I may be missing a few other things.
It seems that you're pretty close to getting everything complete. You're only missing one more step, and this is to add some bootstrapping code to get the driver to initialise and register itself with the interface registration service so that it can be found by the Ethdriver CAmkES component.
To do this, you can copy the example from the i.MX6 Ethernet driver and change it up a bit so that it works for the Odroid C2. More specifically, you'd copy this function [1], modify the contents of the function to use the correct initialisation function for the C2, and also modify the callbacks [2] and [3] so that it gets the correct registers and IRQs from the kernel's version of the Odroid C2's DTS. Finally, you also need copy this [4] and modify the following string array and the last argument in the preprocessor symbol to point to the function you copied earlier.
I hope this helps, Damon
[1]
https://github.com/seL4/util_libs/blob/master/libethdrivers/src/plat/imx6/im... [2]
https://github.com/seL4/util_libs/blob/master/libethdrivers/src/plat/imx6/im... [3]
https://github.com/seL4/util_libs/blob/master/libethdrivers/src/plat/imx6/im... [4]
https://github.com/seL4/util_libs/blob/master/libethdrivers/src/plat/imx6/im... _______________________________________________ Devel mailing list -- devel@sel4.systems To unsubscribe send an email to devel-leave@sel4.systems