History log of /seL4-test-master/projects/util_libs/libethdrivers/src/plat/tx2/uboot/dwc_eth_qos.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


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

ethdrivers,tx2: Disable MMC event counters

These envent counters create interrupt storms if they are about to
overflow. Disabling them from counting prevents this.


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

ethdrivers,tx2: Only interrupt every 32 tx packets

This limits irqs for tx in order to more lazily clean up after
successful transmits.


# 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.


# 59ed7e98 20-May-2020 Damon Lee <Damon.Lee@data61.csiro.au>

trivial: Update comment to reflect changes


# 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.


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

libethdrivers,tx2: Tweak Ethernet register options

This tweaks the Ethernet device options so that it matches those used in
Linux 4 Tegra (NVIDIA's fork of Linux).


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

libethdrivers,tx2: Calibrate after setting clock

Calibration should occur after the TX clock is set properly.


# 667d4a86 19-May-2020 Damon Lee <Damon.Lee@data61.csiro.au>

libethdrivers,tx2: Fix up clock starting logic

Clocks were been mistaken for clock gates in a few places. This commit
corrects this error and also adds diagnostic messages on error.


# 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.


# 2d6a3ff1 22-Mar-2020 Damon Lee <Damon.Lee@data61.csiro.au>

libethdrivers,tx2: Use interface reg. service

Instead of just initialising the hardware interfaces necessary for TX2's
Ethernet driver straightaway, this commit changes the driver to search
for the hardware interfaces in libplatsupport's interface registration
service.


# 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.


# 6200729f 14-Apr-2020 Damon Lee <Damon.Lee@data61.csiro.au>

libethdrivers,tx2: Change TX path to be IRQ based

This commit changes the TX path to be IRQ based instead of the previous
polling approach, that is, to get the driver to fire an interrupt upon
the transmission of all the packets instead of polling until all packets
have been sent.


# 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.