Madalin Bucur
fbc835b0b4
dt-bindings: net: FMan erratum A050385
...
[ Upstream commit 26d5bb9e4c4b541c475751e015072eb2cbf70d15 ]
FMAN DMA read or writes under heavy traffic load may cause FMAN
internal resource leak; thus stopping further packet processing.
The FMAN internal queue can overflow when FMAN splits single
read or write transactions into multiple smaller transactions
such that more than 17 AXI transactions are in flight from FMAN
to interconnect. When the FMAN internal queue overflows, it can
stall further packet processing. The issue can occur with any one
of the following three conditions:
1. FMAN AXI transaction crosses 4K address boundary (Errata
A010022)
2. FMAN DMA address for an AXI transaction is not 16 byte
aligned, i.e. the last 4 bits of an address are non-zero
3. Scatter Gather (SG) frames have more than one SG buffer in
the SG list and any one of the buffers, except the last
buffer in the SG list has data size that is not a multiple
of 16 bytes, i.e., other than 16, 32, 48, 64, etc.
With any one of the above three conditions present, there is
likelihood of stalled FMAN packet processing, especially under
stress with multiple ports injecting line-rate traffic.
To avoid situations that stall FMAN packet processing, all of the
above three conditions must be avoided; therefore, configure the
system with the following rules:
1. Frame buffers must not span a 4KB address boundary, unless
the frame start address is 256 byte aligned
2. All FMAN DMA start addresses (for example, BMAN buffer
address, FD[address] + FD[offset]) are 16B aligned
3. SG table and buffer addresses are 16B aligned and the size
of SG buffers are multiple of 16 bytes, except for the last
SG buffer that can be of any size.
Additional workaround notes:
- Address alignment of 64 bytes is recommended for maximally
efficient system bus transactions (although 16 byte alignment is
sufficient to avoid the stall condition)
- To support frame sizes that are larger than 4K bytes, there are
two options:
1. Large single buffer frames that span a 4KB page boundary can
be converted into SG frames to avoid transaction splits at
the 4KB boundary,
2. Align the large single buffer to 256B address boundaries,
ensure that the frame address plus offset is 256B aligned.
- If software generated SG frames have buffers that are unaligned
and with random non-multiple of 16 byte lengths, before
transmitting such frames via FMAN, frames will need to be copied
into a new single buffer or multiple buffer SG frame that is
compliant with the three rules listed above.
Signed-off-by: Madalin Bucur <madalin.bucur@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-04-02 15:28:14 +02:00
..
ABI
PM / devfreq: Add new name attribute for sysfs
2020-02-05 14:43:34 +00:00
accelerators
ocxl: Document new OCXL IOCTLs
2018-06-03 20:40:33 +10:00
accounting
acpi
ACPI: property: graph: Update graph documentation to use generic references
2018-07-23 12:44:52 +02:00
admin-guide
ACPI: watchdog: Allow disabling WDAT at boot
2020-03-20 11:55:52 +01:00
aoe
arm
ARM: 8833/1: Ensure that NEON code always compiles with Clang
2019-04-05 22:33:08 +02:00
arm64
arm64: docs: Document SSBS HWCAP
2019-10-11 18:21:31 +02:00
auxdisplay
Doc: misc-devices: move lcd-panel-cgram.txt to auxdisplay/
2018-04-12 16:08:02 +02:00
backlight
block
block: Track DISCARD statistics and output them in stat and diskstat
2018-07-18 08:44:22 -06:00
blockdev
zram: introduce zram memory tracking
2018-06-07 17:34:34 -07:00
bpf
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next
2018-08-07 11:02:05 -07:00
bus-devices
cdrom
Documentation/cdrom: fix German sharp s in LaTex
2018-03-08 19:35:29 -07:00
cgroup-v1
page cache: use xa_lock
2018-04-11 10:28:39 -07:00
cma
connector
console
Documentation: corrections to console/console.txt
2018-08-10 16:09:40 -06:00
core-api
idr: Change documentation license
2018-10-15 16:31:29 -04:00
cpu-freq
cpufreq: Drop cpufreq_table_validate_and_show()
2018-04-10 08:40:45 +02:00
cpuidle
cpuidle: Add definition of residency to sysfs documentation
2018-04-09 13:44:37 +02:00
crypto
crypto: remove redundant type flags from tfm allocation
2018-07-09 00:30:29 +08:00
dev-tools
doc: dev-tools: kselftest.rst: update contributing new tests
2018-06-29 09:01:50 -06:00
device-mapper
dm raid: bump target version, update comments and documentation
2018-09-06 17:07:58 -04:00
devicetree
dt-bindings: net: FMan erratum A050385
2020-04-02 15:28:14 +02:00
doc-guide
Documentation/sphinx: allow "functions" with no parameters
2018-06-30 07:52:42 -06:00
driver-api
driver core: Remove device link creation limitation
2020-03-20 11:55:58 +01:00
driver-model
dmaengine: add a new helper dmaenginem_async_device_register
2018-07-30 10:50:22 +05:30
early-userspace
initramfs: move gen_initramfs_list.sh from scripts/ to usr/
2018-08-22 23:21:44 +09:00
EDID
extcon
fault-injection
Documentation: nvme: Documentation for nvme fault injection
2018-03-26 08:53:43 -06:00
fb
uvesafb: Fix URLs in the documentation
2018-09-26 18:11:23 +02:00
features
ARM: 8777/1: Hook up SYNC_CORE functionality for sys_membarrier()
2018-07-11 11:02:08 +01:00
filesystems
cifs_atomic_open(): fix double-put on late allocation failure
2020-03-18 07:14:21 +01:00
firmware_class
fmc
fpga
docs: fpga: add a document for FPGA Device Feature List (DFL) Framework Overview
2018-07-15 13:55:44 +02:00
gpio
Documentation: gpio: Move drivers-on-gpio.txt to driver-api
2018-03-23 04:22:29 +01:00
gpu
drm/msm/gpu: Add the buffer objects from the submit to the crash dump
2018-07-30 08:50:10 -04:00
hid
HID: doc: fix wrong data structure reference for UHID_OUTPUT
2019-12-05 09:20:36 +01:00
hwmon
hwmon: (ina2xx) fix sysfs shunt resistor read access
2018-08-26 17:45:25 -07:00
i2c
i2c: i801: Add support for Intel Comet Lake
2019-05-04 09:20:15 +02:00
ia64
ia64: doc: tweak whitespace for 'console=' parameter
2018-03-05 14:41:38 -08:00
ide
iio
iio: adc: New driver for Cirrus Logic EP93xx ADC
2017-07-25 19:56:23 +01:00
infiniband
Documentation/ABI: update infiniband sysfs interfaces
2018-02-23 08:18:33 -07:00
input
input: add MT_TOOL_DIAL
2018-07-17 15:33:47 +02:00
ioctl
Char/Misc driver patches for 4.19-rc1
2018-08-18 11:04:51 -07:00
isdn
Documentation/isdn: check and fix dead links ...
2018-03-26 12:31:13 -04:00
kbuild
kbuild: Fix LOADLIBES rename in Documentation/kbuild/makefiles.txt
2018-08-22 23:21:42 +09:00
kdump
kernel-hacking
doc:it_IT: translation for kernel-hacking
2018-07-26 16:21:09 -06:00
laptops
platform/x86: thinkpad_acpi: silence HKEY 0x6032, 0x60f0, 0x6030
2018-05-07 15:10:31 +03:00
leds
Documentation: leds: Update 00-INDEX file
2017-10-23 20:17:03 +02:00
lightnvm
livepatch
livepatch: Remove not longer valid limitations from the documentation
2018-05-24 15:37:57 +02:00
locking
locking: Implement an algorithm choice for Wound-Wait mutexes
2018-07-03 09:44:36 +02:00
m68k
maintainer
docs: Fix more broken references
2018-06-15 18:11:26 -03:00
md
raid5-ppl: PPL support for disks with write-back cache enabled
2018-01-15 14:29:42 -08:00
media
media: replace ADOBERGB by OPRGB
2018-11-13 11:08:54 -08:00
memory-devices
mic
mips
Documentation: mips: Update AU1xxx_IDE Kconfig dependencies
2018-02-01 12:45:35 -07:00
misc-devices
pci_endpoint_test: Add 2 ioctl commands
2018-07-19 11:46:57 +01:00
mmc
mtd
mtd: spi-nor: add an API to restore the status of SPI flash chip
2017-12-13 00:36:00 +01:00
namespaces
netlabel
networking
netfilter: nf_flowtable: fix documentation
2020-03-05 16:42:23 +01:00
nfc
nios2
nvdimm
nvmem
NVMEM documentation fix: A minor typo
2017-08-24 13:31:58 -06:00
openrisc
Documentation: openrisc: Updates to README
2017-10-30 21:37:53 +09:00
parisc
PCI
Merge branch 'remotes/lorenzo/pci/dwc'
2018-08-15 14:59:11 -05:00
pcmcia
pcmcia: remove long deprecated pcmcia_request_exclusive_irq() function
2018-08-18 12:30:42 -07:00
perf
drivers/bus: Move Arm CCN PMU driver
2018-03-06 17:26:15 +01:00
phy
platform
power
PM / reboot: Eliminate race between reboot and suspend
2018-08-06 12:35:20 +02:00
powerpc
powerpc: Document issues with TM on POWER9
2018-07-02 23:54:29 +10:00
pps
drivers/pps: aesthetic tweaks to PPS-related content
2017-09-08 18:26:51 -07:00
process
stable-kernel-rules.rst: add link to networking patch queue
2019-03-23 20:10:10 +01:00
pti
ptp
ptp: Fix documentation to match code.
2018-03-26 12:13:21 -04:00
rapidio
Documentation: rapidio: move sysfs interface to ABI
2018-02-23 08:25:45 -07:00
RCU
rculist: Improve documentation for list_for_each_entry_from_rcu()
2018-07-12 15:39:25 -07:00
riscv
perf: riscv: Add Document for Future Porting Guide
2018-06-04 14:02:11 -07:00
s390
vfio-ccw: update documentation
2018-03-01 17:32:14 +01:00
scheduler
sched/fair: Fix low cpu usage with high throttling by removing expiration of cpu-local slices
2019-11-12 19:20:50 +01:00
scsi
scsi: documentation: add scsi_mod.use_blk_mq to scsi-parameters
2018-08-27 12:26:10 -04:00
security
Kbuild: rename CC_STACKPROTECTOR[_STRONG] config variables
2018-06-14 12:21:18 +09:00
serial
sh
sound
ASoC: Updates for v4.19
2018-08-13 12:12:31 +02:00
sparc
sparc64: Add support for ADI (Application Data Integrity)
2018-03-18 07:38:48 -07:00
sphinx
doc: Cope with Sphinx logging deprecations
2019-06-09 09:17:21 +02:00
sphinx-static
docs RTD theme: code-block with line nos - lines and line numbers don't line up.
2017-07-17 13:48:45 -06:00
spi
sysctl
bpf: add bpf_jit_limit knob to restrict unpriv allocations
2019-05-31 06:46:03 -07:00
target
thermal
thermal: Add cooling device's statistics in sysfs
2018-04-02 21:49:01 +08:00
timers
timekeeping.txt: Correct maxCount of n-bit binary counter
2018-07-23 09:33:06 -06:00
trace
This was a moderately busy cycle for docs, with the usual collection of
2018-08-14 14:29:31 -07:00
translations
This was a moderately busy cycle for docs, with the usual collection of
2018-08-14 14:29:31 -07:00
usb
USB: rio500: Remove Rio 500 kernel driver
2019-10-17 13:44:47 -07:00
userspace-api
Documentation: Add section about CPU vulnerabilities for Spectre
2019-07-14 08:11:17 +02:00
virtual
kvm: Convert kvm_lock to a mutex
2019-11-12 19:21:40 +01:00
vm
docs/vm: move ksm and transhuge from "user" to "internals" section.
2018-05-29 06:45:55 -06:00
w1
w1: fix w1_ds2438 documentation
2018-07-07 17:27:13 +02:00
watchdog
watchdog: remove bfin_wdt driver
2018-03-26 15:57:04 +02:00
wimax
x86
x86/speculation/taa: Add documentation for TSX Async Abort
2019-11-12 19:21:34 +01:00
xtensa
xtensa: add support for KASAN
2017-12-16 22:37:12 -08:00
.gitignore
00-INDEX
docs: admin-guide: add cgroup-v2 documentation
2018-05-10 15:42:41 -06:00
atomic_bitops.txt
locking/atomic/bitops: Document and clarify ordering semantics for failed test_and_{}_bit()
2018-02-13 14:55:53 +01:00
atomic_t.txt
x86/atomic: Fix smp_mb__{before,after}_atomic()
2019-07-26 09:14:08 +02:00
bt8xxgpio.txt
btmrvl.txt
bus-virt-phys-mapping.txt
Changes
clearing-warn-once.txt
kernel debug: support resetting WARN*_ONCE
2017-11-17 16:10:00 -08:00
CodingStyle
conf.py
docs: Fix conf.py for Sphinx 2.0
2019-06-09 09:17:20 +02:00
cpu-load.txt
cputopology.txt
crc32.txt
dcdbas.txt
debugging-modules.txt
debugging-via-ohci1394.txt
dell_rbu.txt
Documentation: remove stale firmware API reference
2018-05-14 16:44:41 +02:00
digsig.txt
DMA-API-HOWTO.txt
DMA-API.txt
dma-coherent: remove the DMA_MEMORY_MAP and DMA_MEMORY_IO flags
2017-09-01 11:59:17 +02:00
DMA-attributes.txt
DMA-ISA-LPC.txt
docutils.conf
dontdiff
Remove gperf usage from toolchain
2017-08-19 11:02:53 -07:00
efi-stub.txt
eisa.txt
flexible-arrays.txt
futex-requeue-pi.txt
gcc-plugins.txt
highuid.txt
hw_random.txt
hwspinlock.txt
index.rst
x86/speculation/mds: Add mds_clear_cpu_buffers()
2019-05-14 19:17:54 +02:00
Intel-IOMMU.txt
intel_txt.txt
io-mapping.txt
io_ordering.txt
iostats.txt
block: Track DISCARD statistics and output them in stat and diskstat
2018-07-18 08:44:22 -06:00
IPMI.txt
ipmi: Make IPMI panic strings always available
2017-09-27 16:03:45 -05:00
IRQ-affinity.txt
IRQ-domain.txt
irqdomain: Kill CONFIG_IRQ_DOMAIN_DEBUG
2018-01-24 12:32:58 +01:00
IRQ.txt
IRQ.txt: add a markup for its title
2017-07-14 13:51:42 -06:00
irqflags-tracing.txt
irqflags-tracing.txt: standardize document format
2017-07-14 13:51:42 -06:00
isa.txt
isa.txt: standardize document format
2017-07-14 13:51:43 -06:00
isapnp.txt
isapnp.txt: promote title level
2017-07-14 13:51:43 -06:00
kernel-per-CPU-kthreads.txt
kernel-per-CPU-kthreads.txt: standardize document format
2017-07-14 13:51:43 -06:00
kobject.txt
kobject.txt: standardize document format
2017-07-14 13:51:44 -06:00
kprobes.txt
kprobes/Documentation: Fix various typos
2018-06-22 11:10:55 +02:00
kref.txt
kref.txt: standardize document format
2017-07-14 13:51:45 -06:00
ldm.txt
ldm.txt: standardize document format
2017-07-14 13:51:45 -06:00
lockup-watchdogs.txt
lockup-watchdogs.txt: standardize document format
2017-07-14 13:51:46 -06:00
logo.gif
logo.txt
lsm.txt
lzo.txt
lzo.txt: standardize document format
2017-07-14 13:51:46 -06:00
mailbox.txt
mailbox.txt: standardize document format
2017-07-14 13:51:47 -06:00
Makefile
Documentation: add script and build target to check for broken file references
2017-10-12 11:07:42 -06:00
memory-barriers.txt
sched/Documentation: Update wake_up() & co. memory-barrier guarantees
2018-07-17 09:30:34 +02:00
memory-hotplug.txt
memory-hotplug.txt: standardize document format
2017-07-14 13:57:53 -06:00
men-chameleon-bus.txt
men-chameleon-bus.txt: standardize document format
2017-07-14 13:57:54 -06:00
nommu-mmap.txt
Documentation: nommu-map: Fix duplicate word typo
2018-06-26 09:01:27 -06:00
ntb.txt
This series converts a number of top-level documents to the RST format
2017-07-15 12:58:58 -07:00
numastat.txt
numastat.txt: standardize document format
2017-07-14 13:57:56 -06:00
padata.txt
padata.txt: standardize document format
2017-07-14 13:57:56 -06:00
parport-lowlevel.txt
parport-lowlevel.txt: standardize document format
2017-07-14 13:57:57 -06:00
percpu-rw-semaphore.txt
percpu-rw-semaphore.txt: standardize document format
2017-07-14 13:57:58 -06:00
phy.txt
phy.txt: standardize document format
2017-07-14 13:57:58 -06:00
pi-futex.txt
Documentation: fix locking rt-mutex doc refs
2017-10-19 12:56:44 -06:00
pnp.txt
pnp.txt: standardize document format
2017-07-14 13:57:59 -06:00
preempt-locking.txt
preempt-locking.txt: standardize document format
2017-07-14 13:58:00 -06:00
pwm.txt
rbtree.txt
rbtree: cache leftmost node internally
2017-09-08 18:26:48 -07:00
remoteproc.txt
remoteproc.txt: standardize document format
2017-07-14 13:58:02 -06:00
rfkill.txt
rfkill: Fix several typos in documentation
2018-06-15 13:36:08 +02:00
robust-futex-ABI.txt
robust-futex-ABI.txt: standardize document format
2017-07-14 13:58:03 -06:00
robust-futexes.txt
futex: Update comments and docs about return values of arch futex code
2019-07-03 13:14:49 +02:00
rpmsg.txt
rpmsg.txt: standardize document format
2017-07-14 13:58:04 -06:00
rtc.txt
Documentation: rtc: move iotcl interface documentation to ABI
2018-01-12 00:20:41 +01:00
SAK.txt
SAK.txt: standardize document format
2017-07-14 13:58:04 -06:00
sgi-ioc4.txt
sgi-ioc4.txt: standardize document format
2017-07-14 13:58:05 -06:00
siphash.txt
siphash.txt: standardize document format
2017-07-14 13:58:06 -06:00
SM501.txt
SM501.txt: standardize document format
2017-07-14 13:58:06 -06:00
smsc_ece1099.txt
smsc_ece1099.txt: standardize document format
2017-07-14 13:58:07 -06:00
speculation.txt
Documentation: Document array_index_nospec
2018-01-30 21:54:28 +01:00
static-keys.txt
jump_label: Provide hotplug context variants
2017-08-10 12:28:59 +02:00
SubmittingPatches
svga.txt
documentation/svga.txt: update outdated file
2017-11-20 10:45:50 -07:00
switchtec.txt
NTB: switchtec_ntb: Update switchtec documentation with notes for NTB
2017-11-18 20:37:13 -05:00
sync_file.txt
tee.txt
tee.txt: standardize document format
2017-07-14 13:58:14 -06:00
this_cpu_ops.txt
this_cpu_ops.txt: standardize document format
2017-07-14 13:58:08 -06:00
unaligned-memory-access.txt
unaligned-memory-access.txt: standardize document format
2017-07-14 13:58:09 -06:00
vfio-mediated-device.txt
vfio/mdev: Check globally for duplicate devices
2018-06-08 10:24:27 -06:00
vfio.txt
vfio: fix documentation
2018-05-08 09:16:41 -06:00
video-output.txt
xillybus.txt
xillybus.txt: standardize document format
2017-07-14 13:58:11 -06:00
xz.txt
xz.txt: standardize document format
2017-07-14 13:58:11 -06:00
zorro.txt
zorro.txt: standardize document format
2017-07-14 13:58:12 -06:00