Michal,
For the camkes-arm-vm, the Ethernet device is passed through to Linux. For the camkes-vm, they use a paravirtualized driver to give seL4 some more control. However,
that means that you need to create an entire Ethernet stack.
DornerWorks used a non-vm Ethernet stack on the zynq7000 and the i.mx6 and open-sourced our port. It should be in the mainline already, but here’s the link to
our github page.
https://github.com/dornerworks/util_libs/tree/7.0.x-dw/libethdrivers/src
If you wanted to do a paravirtualized Ethernet device on the CAmkES-ARM-VM, you’d need to map the Ethernet device as an emulated device (similar to the GIC),
that way whenever Linux attempts to read or write to the Ethernet driver, it would fault into the VMM, which could then perform the actual hardware manipulations. That would mean forking the TK1 Linux Ethernet drivers and porting them for seL4 use.
Let me know if you have any other questions. DornerWorks has done some work with seL4 as a hypervisor, so I might be able to help.
Chris
From: Devel [mailto:devel-bounces@sel4.systems]
On Behalf Of Michal Podhradsky
Sent: Monday, March 19, 2018 12:34 PM
To: devel@sel4.systems
Subject: [seL4] Ethernet driver for TK-1
Hello,
I would like to use a similar Ethernet driver component as for x86 platforms here:
https://github.com/seL4/camkes-vm/tree/master/components/Ethdriver
But in the camkes-vm-arm repository I don't see an equivalent component:
https://github.com/SEL4PROJ/camkes-arm-vm/tree/master/apps/vm/components
Is the ethernet currently just passed to Linux? And if so, what would entail making a new driver etc similar to x86 platforms?
Regards
Michal