Using N3000 Intel FPGA as smart NIC - intel-fpga

Is it possible to use N3000 Intel FPGA Network accelerator card as Smart NIC ?
if yes can somebody share the details ?
We would want to use it as Smart NIC using dpdk based poll mode driver

Please check Programming FPGA with DPDK. Hence the right way is to check with Intel network builder for sample code for RTL images for N3000 having ACL, Tunnel termination and others.

Related

Socketcan Driver implementation

I am new to creating a driver implementing.
My Application is using socketcan interface and apparently socketcan is not supported by the SOC.
I am planning to write my own driver. The issue I know how simple module for kernel I am not pretty sure where to start for socketcan driver .
If someone can please tell me where can I take reference for building the CAN driver or some git repo where can I use it and any specifics while writing the driver
SocketCan is the name of a Linux subsystem. It can be enabled in the kernel config via CONFIG_CAN. In turn, this subsystem will make use of platform-specific drivers to control the SOC's CAN adapters (if any).
If Linux's CAN subsystem is not enabled, make sure to enable CONFIG_CAN. If it is enabled, and no "can" device show up, the best would likely be to contact the SOC vendor for further guidance / drivers / devicetree / ... In any case, writing a custom driver is probably not necessary here.

How to port DPDK based application to Netmap?

I have a DPDK based network application for linux based systems. I want to port it to netmap to overcome my restriction of using Intel based NICs. In my DPDK based application I'm using some libraries (like rte_ring, rte_mempool, rte_hash, etc.) provided by DPDK. Is there any way I can still use them or do I have to replace them with non DPDK libraries. What will be quickest and best way to port the application to Netmap?
The easiest way is to leave your application as is, but instead use a DPDK's paravirtualized driver (i.e. virtio-net or vmxnet3) or one of DPDK's pure software PMDs (i.e. af_packet, tap or pcap).
Here is the link to the DPDK NIC Driver documentation for more information:
http://dpdk.org/doc/guides/nics/index.html
There are 2 parts to your question
netmap to overcome my restriction of using Intel-based NIC
DPDK based application I'm using some libraries (like rte_ring, rte_mempool, rte_hash, etc.) provided by DPDK
[Answer-1] List of NIC supported in most of the kernel under netmap are i40e, e1000, igb, ixgbe, ixgbevf, e1000e, veth, virtio_net, vmxnet3, forcedeth, r816. link to github netmap. Hence officially non intel NIC is mxl5.
[Answer-2] with regards to port, I highly recommend check sample netmap in DPDK 16.05. This will give clues how to replace RX-TX burst with netmap while using DPDK libraries. If DPDK libraries are to be fully removed, please try to use uapi supported linked list, hash tables etc.

Linux - How to upload code to a dedicated freescale chip NIC on my motherboard?

I have bought a Gigabyte g1.guerilla motherboard and the NIC is a dedicated freescale chip on the motherboard. It is connected to the PCI bus.
I am running Linux and unfortunately there is no driver for it. I am working to write one, however I am hitting a basic problem: How to communicate and upload code to its dedicated CPU-RAM?
Much help appreciated.
I am running on ubuntu and the chip is a mpc8308vmagd PowerQuicc II pro
I don't know anything about your specific motherboard or the processor, but are you totally sure you need to upload any code to the processor?
Usually, if a peripheral needs any code (firmware), it's already present on a ROM or a flash chip and you only need to touch it if you specifically want to write your own firmware for it. AFAIK the way it usually works is that the peripheral exposes a set of registers on the PCI bus and you interact with it by poking the registers (usually with MMIO). That is, you don't write code for the peripheral, but you write a kernel driver that pokes the registers (ie. the API for the peripheral) when it wants the device to do something.
Now, in general the register descriptions aren't often freely available, which can make writing drivers really hard.
If you really want/need to write your own firmware for the thing, it probably depends on where the code is stored. If it sits in ROM or in an inaccessible flash, you'll probably need to do some soldering. If the firmware is updatable, I'd probably try to reverse-engineer the software they provide for updating the firmware, if one is available. (Unless it allows uploading arbitrary files already, of course)

Is there a suitable Two wire interface / I2C reading writing library in Contiki OS for Atmega128 platform?

I wish to read the EUI64 address from an AT24MAC602 memory chip interfaced to an Atmega128rfa1 MCU over the Two wire interface. I tried to modify the I2C master drivers which are available for other platforms to suit my need. However, I wasn't able to carry out these modifications successfully as the program stopped responding as soon as the slave address was written to the twi bus with Write flag set. I failed to uncover the underlying reasons for the same.
As Contiki OS is quite popular, i thought someone might have already come up with contiki specific libraries for reading writing over TWI interface for Atmega128rfa1 MCU. If so, please provide pointers to the twi drivers or documentation for the same, or suggest factors that should be considered for developing such drivers. Thank you.
If you don't have any luck finding/creating a driver for the TWI peripheral, you might consider emulating it by configuring the SDA/SCL pins as general I/O and then implementing the TWI protocol yourself. If you're just doing a one-time read of a chip ID then speed probably isn't a big concern, so this could work if you get desperate. Google should throw up a few examples of emulated TWI.

How to do this: embedded USB-Host communication with plugged USB-Device

I am currently practising with USB programming on an AT91SAM9G20-Evaluation Kit. I learned much about USB devices and USB device port drivers while "playing" with the ATMEL provided USB device port projects (CDC-driver, ..).
But now I'd like to write a small driver to controll a wireless stick
which I plugged into one of the boards USB-A Host Ports.
I read a lot on Stack Overflow, the OpenHCI specification and even found some libraries on the net, but I am not sure if it's a good way to implement my own stack without any "good" knowledge in USB Host Port programming.
Is there a small and easy way to control the wireless-stick at the boards USB Host port? (like using the USART-Interfaces?).
I am also keen to hear hints on how to implement RTUSB or libUSB in to the AT91.
You can download AT91LIB version 1.9 from atmel from this page
The usb host libraries are under at91lib/usb/host. They're not the complete package you need though since they're just the OHCI driver -- you still need a USB driver and class drivers to implement what you want.
You could try an RTOS with USB Host support like rt-usb32

Resources