History log of /seL4-test-master/projects/util_libs/libethdrivers/src/plat/tx2/tx2.c
Revision Date Author Comments
# 837a7ec1 20-Jul-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

trivial: Fix compiler warnings in tx2 driver

- Remove unused variables
- Return error instead of abort during init


# c63b06e8 16-Jul-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

ethdrivers,tx2: Tweak looping logic for tx and rx

dev->tx_remain can be updated within the loop, so test it again in the
loop condition.


# c60b5ff0 16-Jul-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

ethdrivers,tx2: Batch rx interrupts using timer

Use a timer to delay delivery of RX interrupts in order to limit amount
of RX interrupts received under heavy load.


# 652704a8 16-Jul-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

ethdrivers,tx2: Refactor hardware defs into header

Move hardware definitions into header so that they can be accessed by
other driver files.


# fe8f21fb 21-May-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

trivial: Fix incorrect ring setup in ethdrivers

Both intel and tx2 drivers incorrectly configured the amount of
descriptors in the rings slightly.


# 9210fa7e 20-May-2020 Damon Lee <Damon.Lee@data61.csiro.au>

libethdrivers,tx2: Fit TX,RX tail descriptors

The tail descriptors indicate the last descriptor that is available to
the DMA controller for the Ethernet module. While it is possible if we
set the tail descriptor to be the last descriptor in the allocated ring,
this could cause slowdowns when the DMA controller looks at a descriptor
in the ring that is not ready to be transmitted/received into.

This commit changes it so that the tail descriptors are set when we have
buffers ready and so also that it matches the last descriptor that is
available to be acted on.


# 43c8e19f 11-May-2020 Damon Lee <Damon.Lee@data61.csiro.au>

libethdrivers,tx2: Stop spurious IRQs in TX

Disabling interrupts in the TX path prevents extra interrupts from
firing while handing the interrupts.


# e163560f 11-May-2020 Damon Lee <Damon.Lee@data61.csiro.au>

libethdrivers,tx2: Refactor RX IRQ handling code

This commits refactors the RX path IRQ handling code so the process of
disabling RX interrupts is outside of the IRQ status checking code. It
makes more sense to disable interrupts in the IRQ handling function and
not in the IRQ status checking code. Also rename one of fields in the
DMA registers struct so that it matches the actual functionality.


# df8d3dac 11-May-2020 Damon Lee <Damon.Lee@data61.csiro.au>

libethdrivers,tx2: Fix up descriptors and buffers

The address of the last descriptor was off by one and some descriptors
also had invalid buffers when refilling buffers for the RX ring. This
wasn't a problem for applications working under lower throughputs but on
higher throughputs, the Ethernet device would sometimes hang possibly
due to bus errors on the DMA controller. This commit fixes those issues.


# c5a8ab5f 03-May-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

libethdrivers: Update tx2 and intel drivers

Add a new initialization mechanism for drivers to allocate their own
resources that use the driver framework interfaces.


# 21605856 23-Apr-2020 Damon Lee <Damon.Lee@data61.csiro.au>

libethdrivers,tx2: Ignore false Ethernet interrupt

Sometimes when the Ethernet devices starts up, it fires an interrupt to
the common interrupt line which is not a TX nor a RX-related interrupt.
This commits changes the logic so that it ignores any false interrupts.


# 8552d375 14-Apr-2020 Damon Lee <Damon.Lee@data61.csiro.au>

libethdrivers,tx2: Return bits in eqos_handle_irq

Now that the TX interrupt is also working, there may be a situation
where both RX and TX interrupts to fire at the same causing the common
interrupt line to mask either one of the two. This commit updates the
interrupt handler so that it returns a bitfield of interrupts seen so
that it avoids this situation.

Also replace the magic numbers in the driver with constants and make a
minor aesthetics change to make it more readable.


# 90c284c4 09-Feb-2020 Oliver Scott <Oliver.Scott@data61.csiro.au>

tx2-ethernet: port Synopsis driver

Port/reverse engineer driver from linux/l4t/u-boot sources.