Hi seL4 Dev Team,

I'm currently working on (mostly learning at this point) how we could add TX1 platform support for a PCIE network card (Intel 82580), using TK1 and others as a reference.
I'm fairly new to working with PCI, but after looking around I think I have a general idea on what I need to do.
I would appreciate it very much if someone with more experience could tell me if I'm on the wrong path here:

* Using the TX1 TRM, I would populate the missing physical device region definitions in 'tx1/plat/machine/devices.h', and update the 'dev_p_regs[]' struct in 'tx1/plat/machine/hardware.h'
* Figure out if I need to build up SMMU support (also a newbie here), I'm having doubts on whether I can bang on physical addresses or not without it
* Construct a suitable implementation of 'ps_io_port_ops_t' for handling the I/O routines for libpci
* Put together a hello world main program to exercise some of libpci's functionality
* Once things are looking good there, move up to libethdrivers and port the needed bits for our Ethernet adapter using existing references (and eventually hooking up to lwip hopefully)

At this point, I've been avoiding camkes for the sake of learning how everything works and if anyone can recommend a good starting C project for doing I/O on an ARM platform, that would be very helpful.

Thanks in advance.

--
Jon Lamb
Software Engineer | PolySync
1020 SE 11th Ave, Portland, OR 97214