Home | History | Annotate | Download | only in ti
History log of /src/sys/arch/arm/ti/if_cpsw.c
RevisionDateAuthorComments
 1.17  27-Feb-2023  sekiya Uncomment and protect sanity checks that would drop into the debugger with a
CPSW_DEBUG_DMA define.

This handles a condition where checking for DMA_RXEOQ in the received packet
results in the console being spammed with "rxeoq" messages, which soon results
in a kernel panic. The corresponding Debugger() call for this check was
commented out.

The TI documentation ("AM335x and AMIC110 Sitaraâ„¢ Processors Technical
Reference Manual") documents the EOQ bit thus:

(14.3.2.4.1.2.4) This bit is set by the EMAC when the EMAC identifies
that a descriptor is the last for a given packet received (also sets
the EOP flag), and there are no more descriptors in the receive list
(next descriptor pointer is NULL). The software application can use
this bit to detect when the EMAC receiver for the corresponding channel
has halted. This is useful when the application appends additional free
buffer descriptors to an active receive queue. Note that this flag is
valid on EOP descriptors only.

Moving this check (and the offending printf() ) into a debug #ifdef results in
the BeagleBone Green surviving the nightly checks; it would always drop into
the debugger before this change.
 1.16  18-Sep-2022  thorpej branches: 1.16.4;
Eliminate use of IFF_OACTIVE.
 1.15  07-Nov-2021  jmcneill ti: cpsw: adapt to dts-5.15 bindings
 1.14  27-Jan-2021  thorpej Rename of_match_compat_data() to of_compatible_match(). Similarly,
rename of_search_compatible() to of_compatible_lookup().

Standardize on of_compatible_match() for driver matching, and adapt
all call sites.
 1.13  15-Jan-2021  jmcneill use fdtbus_intr_establish_xname
 1.12  04-Feb-2020  thorpej branches: 1.12.6;
Use ifmedia_fini().
 1.11  29-Jan-2020  thorpej Adopt <net/if_stats.h>.
 1.10  06-Jan-2020  msaitoh branches: 1.10.2;
Add ETHER_LOCK() and ETHER_UNLOCK() to protect ec_multiaddrs.

XXX These drivers don't check whether enm_addrlo and enm_addrhi are the same
or not, so it won't work correctly if an multicast address entry has a range.
 1.9  24-Nov-2019  skrll Fix KERNHIST build (and simplify)
 1.8  03-Nov-2019  jmcneill Cleanup and remove dependency on arch/arm/omap
 1.7  27-Oct-2019  jmcneill Get mac address from DT
 1.6  29-May-2019  msaitoh branches: 1.6.2;
No functional change:
- Simplify MII structure initialization and reference.
- KNF
 1.5  29-May-2019  msaitoh KNF. No functional change.
 1.4  05-Mar-2019  msaitoh Centralize ETHER_ALIGN into net/if_ether.h. Note that this commit also changes
if_upgt.c's ETHER_ALIGN from 0 to 2.
 1.3  22-Jan-2019  msaitoh Change MII PHY read/write API from:

int (*mii_readreg_t)(device_t, int, int);
void (*mii_writereg_t)(device_t, int, int, int);
to:

int (*mii_readreg_t)(device_t, int, int, uint16_t *);
int (*mii_writereg_t)(device_t, int, int, uint16_t);

Now we can test if a read/write operation failed or not by the return value.

In 802.3 spec says that the PHY shall not respond to read/write transaction
to the unimplemented register(22.2.4.3). Detecting timeout can be used to
check whether a register is implemented or not (if the register conforms to
the spec). ukphy(4) can be used this for MII_MMDACR and MII_MMDAADR.

Note that I noticed that the following code do infinite loop in the
read/wirte function. If it accesses unimplemented PHY register, it will hang.
It should be fixed:

arm/at91/at91emac.c
arm/ep93xx/epe.c
arm/omap/omapl1x_emac.c
mips/ralink/ralink_eth.c
arch/powerpc/booke/dev/pq3etsec.c(read)
dev/cadence/if_cemac.c <- hkenken
dev/ic/lan9118.c


Tested with the following device:

axe+ukphy
axe+rgephy
axen+rgephy (tested by Andrius V)
wm+atphy
wm+ukphy
wm+igphy
wm+ihphy
wm+makphy
sk+makphy
sk+brgphy
sk+gentbi
msk+makphy
sip+icsphy
sip+ukphy
re+rgephy
bge+brgphy
bnx+brgphy
gsip+gphyter
rtk+rlphy
fxp+inphy (tested by Andrius V)
tlp+acphy
ex+exphy
epic+qsphy
vge+ciphy (tested by Andrius V)
vr+ukphy (tested by Andrius V)
vte+ukphy (tested by Andrius V)

Not tested (MAC):
arm:at91emac
arm:cemac
arm:epe
arm:geminigmac
arm:enet
arm:cpsw
arm:emac(omac)
arm:emac(sunxi)
arm:npe
evbppc:temac
macppc:bm
macppc:gm
mips:aumac
mips:ae
mips:cnmac
mips:reth
mips:sbmac
playstation2:smap
powerpc:tsec
powerpc:emac(ibm4xx)
sgimips:mec
sparc:be
sf
ne(ax88190, dl10019)
awge
ep
gem
hme
smsh
mtd
sm
age
alc
ale
bce
cas
et
jme
lii
nfe
pcn
ste
stge
tl
xi
aue
mue
smsc
udav
url

Not tested (PHY):
amhphy
bmtphy
dmphy
etphy
glxtphy
ikphy
iophy
lxtphy
nsphyter
pnaphy
rdcphy
sqphy
tlphy
tqphy
urlphy
 1.2  26-Jun-2018  msaitoh branches: 1.2.2;
Implement the BPF direction filter (BIOC[GS]DIRECTION). It provides backward
compatibility with BIOC[GS]SEESENT ioctl. The userland interface is the same
as FreeBSD.

This change also fixes a bug that the direction is misunderstand on some
environment by passing the direction to bpf_mtap*() instead of checking
m->m_pkthdr.rcvif.
 1.1  26-Oct-2017  jakllsch branches: 1.1.2; 1.1.4;
Initial FDT support for TI's ARM SoCs.

Currently supports only limited functionality on AM335x.
 1.1.4.2  26-Jan-2019  pgoyette Sync with HEAD
 1.1.4.1  28-Jul-2018  pgoyette Sync with HEAD
 1.1.2.2  03-Dec-2017  jdolecek update from HEAD
 1.1.2.1  26-Oct-2017  jdolecek file if_cpsw.c was added on branch tls-maxphys on 2017-12-03 11:35:56 +0000
 1.2.2.3  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.2.2.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.2.2.1  10-Jun-2019  christos Sync with HEAD
 1.6.2.4  03-Mar-2023  martin Pull up following revision(s) (requested by sekiya in ticket #1609):

sys/arch/arm/ti/if_cpsw.c: revision 1.17

Uncomment and protect sanity checks that would drop into the debugger with a
CPSW_DEBUG_DMA define.

This handles a condition where checking for DMA_RXEOQ in the received packet
results in the console being spammed with "rxeoq" messages, which soon results
in a kernel panic. The corresponding Debugger() call for this check was
commented out.

The TI documentation ("AM335x and AMIC110 Sitara(TM) Processors Technical
Reference Manual") documents the EOQ bit thus:

(14.3.2.4.1.2.4) This bit is set by the EMAC when the EMAC identifies
that a descriptor is the last for a given packet received (also sets
the EOP flag), and there are no more descriptors in the receive list
(next descriptor pointer is NULL). The software application can use
this bit to detect when the EMAC receiver for the corresponding channel
has halted. This is useful when the application appends additional free
buffer descriptors to an active receive queue. Note that this flag is
valid on EOP descriptors only.

Moving this check (and the offending printf() ) into a debug #ifdef results in
the BeagleBone Green surviving the nightly checks; it would always drop into
the debugger before this change.
 1.6.2.3  20-Feb-2020  martin Pull up following revision(s) (requested by skrll in ticket #711):

sys/arch/arm/ti/if_cpsw.c: revision 1.9

Fix KERNHIST build (and simplify)
 1.6.2.2  28-Jan-2020  martin Pull up following revision(s) (requested by msaitoh in ticket #662):

sys/dev/pcmcia/if_xi.c: revision 1.93
sys/arch/x86/pci/if_vmx.c: revision 1.54
sys/dev/pci/if_de.c: revision 1.165
sys/arch/arm/ti/if_cpsw.c: revision 1.10
sys/arch/arm/omap/if_cpsw.c: revision 1.26
sys/dev/isa/if_iy.c: revision 1.112
sys/dev/pcmcia/if_ray.c: revision 1.96

Add ETHER_LOCK() and ETHER_UNLOCK() to protect ec_multiaddrs.

XXX These drivers don't check whether enm_addrlo and enm_addrhi are the same
or not, so it won't work correctly if an multicast address entry has a range.

Protect ec_multicnt.
 1.6.2.1  27-Nov-2019  martin Pull up following revision(s) (requested by jmcneill in ticket #491):

sys/arch/evbarm/conf/BEAGLEBOARD_INSTALL: file removal
sys/arch/arm/ti/ti_dpll_clock.c: revision 1.2
sys/arch/arm/ti/ti_sysc.c: revision 1.1
sys/arch/arm/ti/ti_rng.c: revision 1.1
sys/arch/arm/ti/ti_rng.c: revision 1.2
sys/dev/i2c/tps65950.c: file removal
sys/arch/evbarm/conf/std.ti: file removal
sys/dev/i2c/files.i2c: revision 1.101
sys/dev/i2c/files.i2c: revision 1.102
sys/dev/i2c/at24cxx.c: revision 1.32
sys/dev/i2c/files.i2c: revision 1.103
sys/dev/i2c/twl4030.c: revision 1.1
sys/dev/i2c/files.i2c: revision 1.104
sys/dev/i2c/twl4030.c: revision 1.2
sys/dev/i2c/twl4030.c: revision 1.3
sys/arch/arm/ti/ti_com.c: revision 1.6
sys/arch/arm/ti/ti_com.c: revision 1.7
sys/arch/arm/ti/ti_com.c: revision 1.8
sys/dev/fdt/cpufreq_dt.c: revision 1.11
sys/arch/arm/ti/ti_iic.c: revision 1.1
sys/dev/fdt/cpufreq_dt.c: revision 1.12
sys/arch/arm/ti/ti_usb.c: revision 1.1
sys/arch/arm/ti/ti_iic.c: revision 1.2
sys/dev/fdt/cpufreq_dt.c: revision 1.13
sys/arch/arm/ti/ti_iic.c: revision 1.3
sys/arch/arm/ti/ti_iic.c: revision 1.4
sys/arch/evbarm/conf/files.ti: file removal
sys/arch/evbarm/conf/BEAGLEBOARDXM: file removal
sys/arch/arm/dts/omap3-n900.dts: revision 1.1
sys/arch/arm/ti/ti_edma.h: revision 1.1
sys/arch/evbarm/conf/OVERO_INSTALL: file removal
sys/arch/arm/ti/ti_usbtll.c: revision 1.1
sys/arch/arm/ti/files.ti: revision 1.5
etc/etc.evbarm/Makefile.inc: revision 1.108
sys/arch/arm/ti/files.ti: revision 1.6
sys/dev/i2c/tps65217pmic.c: revision 1.13
etc/etc.evbarm/Makefile.inc: revision 1.109
sys/arch/arm/ti/files.ti: revision 1.7
sys/dev/i2c/tps65217pmic.c: revision 1.14
sys/arch/arm/ti/files.ti: revision 1.8
sys/arch/arm/ti/files.ti: revision 1.9
sys/dev/fdt/usbnopphy.c: revision 1.1
sys/arch/evbarm/conf/GENERIC: revision 1.55
sys/arch/evbarm/conf/GENERIC: revision 1.56
sys/arch/evbarm/conf/GENERIC: revision 1.57
sys/arch/evbarm/conf/GENERIC: revision 1.58
sys/arch/evbarm/conf/GENERIC: revision 1.59
sys/arch/evbarm/conf/BEAGLEBONE: file removal
sys/arch/arm/ti/omap2_gpmcreg.h: revision 1.1
sys/arch/arm/ti/ti_otgreg.h: revision 1.1
sys/arch/arm/ti/ti_tptc.c: revision 1.1
sys/arch/evbarm/conf/IGEPV2: file removal
sys/arch/arm/ti/am3_prcm.c: revision 1.10
sys/dev/i2c/tda19988.c: revision 1.1
sys/arch/evbarm/conf/OVERO: file removal
sys/dev/i2c/tda19988.c: revision 1.2
sys/dev/i2c/tda19988.c: revision 1.3
sys/arch/arm/ti/omap3_dss.c: revision 1.1
sys/arch/evbarm/conf/BEAGLEBONE_INSTALL: file removal
sys/arch/arm/ti/ti_omapintc.c: revision 1.2
etc/etc.evbarm/Makefile.inc: revision 1.112
etc/etc.evbarm/Makefile.inc: revision 1.113
sys/arch/arm/ti/ti_div_clock.c: revision 1.1
etc/etc.evbarm/Makefile.inc: revision 1.114
sys/arch/evbarm/conf/N900: revision 1.32
sys/arch/evbarm/conf/N900: revision 1.33
distrib/utils/embedded/conf/armv7.conf: revision 1.36
sys/arch/evbarm/conf/GENERIC: revision 1.60
distrib/utils/embedded/conf/armv7.conf: revision 1.37
sys/arch/arm/ti/omap2_nand.c: revision 1.1
sys/arch/evbarm/conf/GENERIC: revision 1.61
sys/arch/arm/ti/omap2_nand.c: revision 1.2
sys/arch/evbarm/conf/GENERIC: revision 1.62
distrib/utils/embedded/conf/armv7.conf: revision 1.39
sys/arch/evbarm/conf/GENERIC: revision 1.63
sys/arch/arm/ti/ti_fb.c: revision 1.1
sys/arch/evbarm/conf/GENERIC: revision 1.64
sys/arch/evbarm/conf/GENERIC: revision 1.65
sys/arch/evbarm/conf/GENERIC: revision 1.66
sys/arch/evbarm/conf/GENERIC: revision 1.67
sys/arch/arm/ti/ti_platform.c: revision 1.7
sys/arch/arm/ti/ti_platform.c: revision 1.8
sys/arch/arm/ti/am3_prcm.c: revision 1.2
sys/arch/arm/ti/ti_platform.c: revision 1.9
sys/arch/arm/ti/am3_prcm.c: revision 1.3
sys/arch/arm/ti/am3_prcm.c: revision 1.4
sys/arch/arm/ti/am3_prcm.c: revision 1.5
sys/arch/arm/ti/am3_prcm.c: revision 1.6
sys/arch/arm/ti/am3_prcm.c: revision 1.7
sys/arch/evbarm/conf/DEVKIT8000: file removal
sys/arch/arm/ti/am3_prcm.c: revision 1.8
sys/arch/arm/ti/am3_prcm.c: revision 1.9
sys/dev/fdt/syscon.c: revision 1.4
sys/arch/arm/ti/files.ti: revision 1.10
sys/arch/arm/ti/ti_mux_clock.c: revision 1.1
sys/arch/arm/ti/ti_sdhc.c: revision 1.1
sys/arch/arm/ti/files.ti: revision 1.11
sys/arch/arm/ti/if_cpswreg.h: revision 1.1
sys/arch/arm/ti/ti_sdhc.c: revision 1.2
sys/arch/arm/ti/files.ti: revision 1.12
sys/arch/arm/ti/ti_sdhc.c: revision 1.3
sys/arch/arm/ti/files.ti: revision 1.13
sys/arch/arm/ti/files.ti: revision 1.14
sys/arch/arm/ti/files.ti: revision 1.15
sys/arch/arm/ti/files.ti: revision 1.16
sys/arch/arm/ti/omap3_cm.c: revision 1.1
sys/arch/arm/ti/files.ti: revision 1.17
sys/arch/arm/ti/omap3_cm.c: revision 1.2
sys/arch/arm/ti/files.ti: revision 1.18
sys/arch/arm/ti/omap3_cm.c: revision 1.3
sys/arch/arm/ti/files.ti: revision 1.19
sys/arch/arm/ti/omap3_cm.c: revision 1.4
sys/arch/arm/ti/ti_motg.c: revision 1.1
sys/arch/arm/ti/ti_rngreg.h: revision 1.1
sys/arch/arm/ti/ti_sdhcreg.h: revision 1.1
sys/arch/arm/dts/omap3-beagle-xm.dts: revision 1.1
sys/arch/arm/ti/am3_platform.c: revision 1.1
sys/arch/arm/ti/ti_sdhcreg.h: revision 1.2
sys/arch/arm/ti/ti_lcdc.h: revision 1.1
sys/arch/evbarm/conf/BEAGLEBOARDXM_INSTALL: file removal
sys/arch/evbarm/conf/README.evbarm: revision 1.22
sys/arch/evbarm/conf/README.evbarm: revision 1.23
sys/arch/arm/ti/ti_platform.c: file removal
sys/arch/evbarm/conf/README.evbarm: revision 1.24
sys/arch/arm/ti/ti_omaptimer.c: revision 1.2
sys/arch/arm/ti/ti_prcm.c: revision 1.2
sys/arch/evbarm/conf/README.evbarm: revision 1.25
sys/arch/arm/ti/ti_omaptimer.c: revision 1.3
sys/arch/arm/ti/ti_prcm.c: revision 1.3
sys/arch/evbarm/conf/README.evbarm: revision 1.26
sys/arch/arm/ti/ti_omaptimer.c: revision 1.4
sys/arch/evbarm/conf/README.evbarm: revision 1.27
sys/arch/arm/ti/ti_ehci.c: revision 1.1
sys/arch/arm/ti/files.ti: revision 1.20
sys/arch/arm/ti/ti_cpufreq.c: revision 1.1
sys/arch/arm/ti/ti_cpufreq.c: revision 1.2
sys/arch/arm/fdt/smsh_fdt.c: revision 1.2
sys/arch/arm/ti/omap3_dssreg.h: revision 1.1
sys/arch/evbarm/conf/OVERO: revision 1.56
sys/arch/evbarm/conf/TI: file removal
sys/arch/arm/dts/omap3-beagle.dts: revision 1.1
sys/dev/fdt/fdtvar.h: revision 1.55
sys/dev/fdt/fdtvar.h: revision 1.56
distrib/utils/embedded/files/armv7_boot_nonefi.cmd: revision 1.2
sys/dev/fdt/fdt_phy.c: revision 1.6
sys/arch/arm/ti/ti_iicreg.h: revision 1.1
sys/arch/arm/ti/ti_lcdc.c: revision 1.1
sys/arch/arm/ti/ti_gpio.c: revision 1.1
sys/arch/arm/ti/ti_iicreg.h: revision 1.2
sys/arch/arm/ti/ti_lcdc.c: revision 1.2
sys/dev/fdt/files.fdt: revision 1.46
sys/arch/arm/ti/ti_gpio.c: revision 1.2
sys/arch/arm/ti/ti_iicreg.h: revision 1.3
sys/arch/arm/ti/ti_lcdc.c: revision 1.3
sys/dev/fdt/files.fdt: revision 1.47
sys/arch/arm/ti/ti_gpio.c: revision 1.3
sys/dev/fdt/pinctrl_single.c: revision 1.1
sys/arch/evbarm/conf/files.generic: revision 1.9
sys/arch/arm/ti/ti_gpmc.c: revision 1.1
sys/arch/arm/ti/ti_lcdcreg.h: revision 1.1
sys/arch/evbarm/conf/BEAGLEBOARD: file removal
sys/arch/arm/ti/omap3_prm.c: revision 1.1
sys/arch/arm/ti/ti_platform.h: file removal
sys/arch/arm/ti/omap3_platform.c: revision 1.1
sys/arch/arm/ti/ti_prcm.h: revision 1.2
sys/arch/arm/ti/omap3_platform.c: revision 1.2
sys/arch/arm/ti/ti_prcm.h: revision 1.3
sys/arch/arm/ti/ti_prcm.h: revision 1.4
sys/dev/fdt/fdt_clock.c: revision 1.9
sys/arch/arm/ti/ti_edma.c: revision 1.1
sys/arch/arm/ti/ti_otg.c: revision 1.1
distrib/utils/embedded/files/armv7_boot.cmd: revision 1.15
sys/arch/arm/ti/if_cpsw.c: revision 1.7
sys/arch/evbarm/conf/std.igepv2: file removal
sys/arch/arm/ti/if_cpsw.c: revision 1.8
sys/arch/arm/ti/ti_dpll_clock.c: revision 1.1

Adapt ti fdt glue to support GENERIC kernel.

Do not search 64-bit directories for dts files

Fix am33xx_platform_early_putchar for pre-MMU output

Add bus driver for TI sysc interconncet.

Make com work again

Add EDMA TPCC and TPTC drivers.

Add driver for one-register-per-pin type pinctrl devices.

Add MMCHS support.

Add USB support.

Disable autoidle

Place devmap above KERNEL_IO_VBASE

Use Timer2 for timecounter, and enable hw module.

Add support for TI AM335x

Add atmel,24c256 compat data

Add I2C support.

Add tiiic, tps65217pmic

Add FDT support

Fix early putchar, add reset func

No support for tegra210 in armv7 kernel

Switch to GENERIC kernels only.

Get mac address from DT

Skip nodes with an "opp-suspend" property and fix tables that have disabled
nodes in the middle.

enumerate devices under child "clocks" node

Add support for platform specific opp table filters.

Add fdtbus_clock_count to count the number of clock references on a given node

enumerate devices under child "clocks" node

Add AM335x DVFS support.

Enable TI AM335x DVFS support

Add support for GPIO controller.

Add tigpio

Unhook BEAGLEBONE kernel from the build
Remove BEAGLEBONE kernel config (AM335x SoC is supported by GENERIC now).

Add support for hardware RNG.

Add tirng

Add explicit FDT_OPP for operating-points-v2 so the link set won't be empty

Rename SOC_TI_AM335X to SOC_AM33XX and rename ti_platform.c to
am3_platform.c

Set stdout-path on TI OMAP3 BeagleBoard

Add support for TI OMAP3.

Add OMAP3 support.

Move a lot of *.dtb files to a dtb/ subdirectory on the FAT partition.
Mkimage (eroneously) creates a FAT16 partition (despite the configuration
asking for FAT32), and that has a root directory size limit.
Idea from Jared.

Skip xref if it is 0

Add generic USB PHY driver

Add driver for TI TWL4030 Power Management IC

Use the hwmod clk to get the timer rate and explicitly enable the
timecounter timer.

Add OMAP3 USB support.

Add twl, usbnopphy, tiusb, tiusbtll

Move omap3 dtb files to /boot/dtb

Remove BEAGLEBOARD kernel from list of kernels to build
Remove BEAGLEBOARD kernel (supported by GENERIC now)

Fix PRM_RSTCTRL_RST_DPLL3 definition, now reset works.

Remove DEVKIT8000 kernel (GENERIC should work now)
Remove DPLL5 init ported from old omap code, it is not required

Set the stdout-path on xM like Ti OMAP3 BeagleBoard

Remove BEAGLEBOARDXM from the build
Remove BEAGLEBOARDXM kernel (supported by GENERIC now)

Handle different register layout on OMAP3

Add omapfb to FDT-ized TI port.

Use dss as console on Nokia N900.

Enable IRQ status bits for omap3 type and set speed properly

Add RTC support

Remove tps65950pm (hardware now supported by twl4030.c)

Add NAND flash support.

Add tigpmc, omapnand

Attach tiusb before the default pass since it adds a bus to reduce kernel output
Replace tps65950pm with twl (the former has been removed)

Fix non-FDT build

Cleanup and remove dependency on arch/arm/omap

Add support for GPIO interrupts and fix reading the state of output pins.
Match smsc,lan9115 and honour local-mac-address/mac-address properties

Only one instance of twl(4) is needed
Remove OVERO from build, and commented out N900 kernel config
OMAP3 SoC and all peripherals in the OVERO kernel are now supported by
GENERIC.

Remove commented out IGEPV2 entry

OMAP3 SoC and all peripherals in the IGEPV2 kernel are now supported by
GENERIC.

No longer used.

Also match ti,omap2-onenand

Defer power monitor polling to the sysmon taskq thread to avoid i2c transactions in intr context

Add driver for NXP TDA19988 HDMI encoder

Add support for AM335x display controller (LCDC).

Add tdahdmi, tilcdc, tifb

Test DRM_MODE_* flags, not VID_*

Comment out mode fixup (not needed it seems)

Use 297MHz for display clock

Select closest rate to desired pixel clock

Speed up mode setting a bit and turn off the display while changing modes
 1.10.2.1  29-Feb-2020  ad Sync with head.
 1.12.6.1  03-Apr-2021  thorpej Sync with HEAD.
 1.16.4.1  03-Mar-2023  martin Pull up following revision(s) (requested by sekiya in ticket #109):

sys/arch/arm/ti/if_cpsw.c: revision 1.17

Uncomment and protect sanity checks that would drop into the debugger with a
CPSW_DEBUG_DMA define.

This handles a condition where checking for DMA_RXEOQ in the received packet
results in the console being spammed with "rxeoq" messages, which soon results
in a kernel panic. The corresponding Debugger() call for this check was
commented out.

The TI documentation ("AM335x and AMIC110 Sitara(TM) Processors Technical
Reference Manual") documents the EOQ bit thus:

(14.3.2.4.1.2.4) This bit is set by the EMAC when the EMAC identifies
that a descriptor is the last for a given packet received (also sets
the EOP flag), and there are no more descriptors in the receive list
(next descriptor pointer is NULL). The software application can use
this bit to detect when the EMAC receiver for the corresponding channel
has halted. This is useful when the application appends additional free
buffer descriptors to an active receive queue. Note that this flag is
valid on EOP descriptors only.

Moving this check (and the offending printf() ) into a debug #ifdef results in
the BeagleBone Green surviving the nightly checks; it would always drop into
the debugger before this change.

RSS XML Feed