Table of Contents
Linux port for Xtensa
TODO
In Progress
Features by release
Linux 6.4
Linux 6.1
Linux 5.19
Linux 5.18
Linux 5.16
Linux 5.13
Linux 5.9
Linux 5.6
Linux 5.5
Linux 5.4
Linux 5.3
Linux 5.2
Linux 5.1
Linux 5.0
Linux 4.16
Linux 4.9
Linux 4.6
Linux 4.4
Linux 4.3
Linux 4.1
Linux 3.19
Linux 3.17
Linux 3.16
Linux 3.15
Linux 3.14
Linux 3.12
Linux 3.11
Linux 3.10
Linux 3.9
Linux 3.8
Linux 3.7
Linux port for Xtensa
Linux git tree:
https://github.com/jcmvbkbc/linux-xtensa
Build/test tools git tree:
https://github.com/jcmvbkbc/xtensa-linux-test
Toolchain build scripts/overlays git tree:
https://github.com/jcmvbkbc/xtensa-toolchain-build
Patch review check list
Patch/pull request check list
Rootfs notes
TODO
dynamic ftrace
kgdb/kdb
kexec
NX
In Progress
kprobes
Booting linux on ESP32
Booting linux on ESP32s3
Booting wifi-enabled linux on ESP32s3
Features by release
Linux 6.4
support for FDPIC ELF executable format on noMMU
Linux 6.1
support for static PIE ELF executable format on noMMU
partial support for FDPIC ELF executable format on noMMU (signal delivery is broken, fixed in 6.1.31)
Linux 5.19
support coprocessors on SMP.
support protection faults on noMMU.
support full tickless operation.
KCSAN.
hibernation.
Linux 5.18
support compiler plugins (with gcc-12 and newer).
support for kernel ABI selection.
removed dependency on compiler's libgcc.
Linux 5.16
support for cores without windowed registers.
call0 ABI kernel.
Linux 5.13
GDBIO semihosting.
Linux 5.9
syscall audit.
seccomp filter.
Linux 5.6
exception vectors can be attached to the rest of the kernel or placed at specific address.
Linux 5.5
eXecute In Place (XIP) kernel.
Linux 5.4
support for call0 ABI userspace.
Linux 5.3
'virt' board (sim with PCI, corresponding board model available in QEMU since v4.2).
Linux 5.2
support for cores with exclusive access option.
basic support for cores with MPU.
Linux 5.1
generic spinlock/rwlock.
Linux 5.0
memtest.
Jump labels.
tracehook.
syscall tracepoints.
multiple coprocessor fixes.
SMP fixes.
Linux 4.16
KASAN.
SSP.
allocation of DMA buffers from high memory.
support DMA_ATTR_NO_KERNEL_MAPPING.
kernel is built with -mtext-section-literals and -mno-serialize-volatile.
Linux 4.9
New kernel memory layouts: with 256MBytes and 512MBytes of low memory.
Configurable KSEG physical memory address and kernel load address.
Custom sysmem boot time memory allocator is replaced with memblock.
KMEMLEAK.
reserved-memory DT node.
Cadence Configurable System Platform (CSP).
Linux 4.6
Hardware breakpoints/watchpoints.
ioremap for memory outside KIO region.
Big endian: serial, network, i2c work.
Linux 4.4
DMA to high memory.
Linux 4.3
Hardware perf counters and perf support.
Linux 4.1
ALSA playback driver for XTFPGA.
Linux 3.19
noMMU.
Linux 3.17
Highmem on cores with aliasing cache.
New (simpler) method of configuring for specific core variant.
Linux 3.16
Stability: xtensa linux may be rebuilt natively.
Linux 3.15
Highmem.
KC705 board.
Linux 3.14
SMP.
Futex.
register spilling overhaul.
OpenCores ethernet works when connected to gigabit network.
c67x00 USB host is usable on XTFPGA.
TAP network works in ISS.
Linux 3.12
Kernel preemption.
Linux 3.11
Multihit exceptions fixed.
Static function tracer.
Linux 3.10
MMUv3 cores.
Lockdep/stack tracing.
Linux 3.9
TLS (THREADPTR register).
Oprofile.
ISS simdisk.
Linux 3.8
Device trees.
uImage generation.
IRQ subsystem overhaul (IRQ domains, medium-priority interrupts).
XTFPGA boards.
s32c1i-based atomic/bit operations and spinlocks.
Linux 3.7
Overall architecture port overhaul, mainline is alive again, builds and runs.
There were dragons prior to that release.