Open Source & Linux Lab

It's better when it's simple

User Tools

Site Tools


etc:users:jcmvbkbc:linux-xtensa

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
etc:users:jcmvbkbc:linux-xtensa [2012/12/28 21:37] – status update jcmvbkbcetc:users:jcmvbkbc:linux-xtensa [2023/06/17 06:56] jcmvbkbc
Line 1: Line 1:
 ====== Linux port for Xtensa ====== ====== Linux port for Xtensa ======
  
-===== Phase 1 ===== +  * Linux git treehttps://github.com/jcmvbkbc/linux-xtensa 
-Goallinux mainline contains the latest linux-xtensa updates, builds and works. +  * Build/test tools git tree: https://github.com/jcmvbkbc/xtensa-linux-test 
-  * compilable with latest GCC +  * Toolchain build scripts/overlays git treehttps://github.com/jcmvbkbc/xtensa-toolchain-build 
-  * overlays to coverFSF, dc232b, more TBD +  * [[.:linux-xtensa:patch-review-checklist]] 
-  * tests to passbuilds, boots, LTP +  * [[.:linux-xtensa:patch-pull-checklist]] 
-  * boards to focus onISS, ML605 +  * [[.:linux-xtensa:rootfs]]
-  * configurationsUP, linux-next specific, more TBD+
  
-===== Plan ===== +===== TODO =====
-  * Prepare for linux-next participation +
-    * [2/3] Make mainline build for ARCH=xtensa in defconfig, allnoconfig, allmodconfig +
-      * [+] fix remaining issues with allmodconfig +
-      * why there's no simdisk in the mainline? +
-      * qemu needs proper handling for guest ioctls triggered via simcalls +
-    * [+] Make built images work (qemu, FSF) +
-  * [+] Build userspace +
-  * Automated build/test scripts +
-    * [+] build/test status/logs +
-    * expect script to run LTP +
-  * Analyse reference tree +
-    * proper bugfixes +
-    * new cores (dc233c, test_hifi_c3, s*) +
-    * new platforms (lx*, ml605, s*) +
-    * SMP and its fixes +
-    * XCC fixes +
-  * [[.:linux-xtensa:issues]]+
  
-===== Work items ===== +  dynamic ftrace 
-=== SMP support === +  * kgdb/kdb 
-=== Support for Tensilica FPGA boards === +  * kexec 
-  [+] serial +  * NX
-  * [+] ethernet +
-  * [+] FLASH +
-  * [-] audio +
-In the mainline: +
-<code> +
-0d456ba xtensa: add support for the XTFPGA boards +
-5584b4d xtensa: add XTFPGA DTS +
-</code> +
-=== Atomics (arch/xtensa/include/asm/atomic.h, bitops.h, spinlock.h) and check for S32C1I === +
-Merged in the eb0a9bf31fdbcee9463c0f42fbf4a292ef149a7d, pick up from individual files.+
  
-Done, in the mainline: +===== In Progress ===== 
-<code> + 
-2f6ea6a xtensa: display s32c1i feature flag in cpuinfo +  * kprobes 
-733536b xtensa: save and restore scompare1 SR on kernel entry +  * [[.:linux-xtensa:esp32]] 
-c622b29 xtensa: initialize atomctl SR +  * [[.:linux-xtensa:esp32s3]] 
-28570e8 xtensa: add trap_set_handler function + 
-0027312 xtensa: add s32c1i sanity check +===== Features by release ===== 
-219b1e4 xtensa: add s32c1i-based atomic ops implementations +==== Linux 6.4 ==== 
-e5a9f6a xtensa: add s32c1i-based bitops implementations + 
-71872b5 xtensaadd s32c1i-based spinlock implementations +  * support for FDPIC ELF executable format on noMMU 
-599bf77 xtensafix mb and wmb definitions + 
-</code> +==== Linux 6.1 ==== 
-=== TIE coprocessors === + 
-23ae3f723c8996d47ef205e98cb7732bbde4775f +  * support for static PIE ELF executable format on noMMU 
-=== Highmem === +  * partial support for FDPIC ELF executable format on noMMU (signal delivery is broken, fixed in 6.1.31) 
-=== Interrupt management === + 
-Done, in the mainline: +==== Linux 5.19 ==== 
-<code> + 
-2206d5d xtensa: add IRQ domains support +  * support coprocessors on SMP. 
-</code> +  * support protection faults on noMMU. 
-=== Medium level interrupts in less hacky way === +  * support full tickless operation. 
-489fb47c75772e3a41ef3e988eb0c0e512592085+  * 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 layoutswith 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 endianserial, 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.
  
-Draft on xtensa-fixes branch. 
-=== Device trees support === 
-Done, in the mainline: 
-<code> 
-da844a8 xtensa: add device trees support 
-</code> 
-=== MMU v3 === 
-Draft on xtensa-fixes branch. 
-=== ptrace (support latest GDB) === 
-617244763e19a4eebb4fabe41ba56eb1ccbdb049, 23ae3f723c8996d47ef205e98cb7732bbde4775f, ff1b10f85a1176d1eb8df433434b717f6f0841d4, a2b61af3328025d6069e8bf9ff36f5288e11dba9 
-=== Support for building with XCC === 
-=== simdisk === 
-1a955825662fa378d447b91485d9fe2438124b0a, 8bcbc3adb5c5bfdbd96078c1e68916be859c832d 
-=== Various fixes made for debuggability === 
-=== oprofile === 
-8c502ca703956e56bf191774e4169752f0f71c8e, 7dd1d39e70769f2dd7a6a508d58b187ed8d1cb95 
-=== Generic kernel_thread & friends === 
-Done, in the mainline: 
-<code> 
-3306a72 xtensa: switch to generic kernel_thread() 
-f0a1bf0 xtensa: switch to generic kernel_execve() 
-dc241f2 xtensa: switch to generic sys_execve() 
-</code> 
-=== Cache aliasing aware mmap === 
-Draft on xtensa-fixes branch. 
etc/users/jcmvbkbc/linux-xtensa.txt · Last modified: 2023/07/12 06:25 by jcmvbkbc