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 [2022/05/24 10:46] – status update jcmvbkbcetc:users:jcmvbkbc:linux-xtensa [2023/06/17 06:56] jcmvbkbc
Line 6: Line 6:
   * [[.:linux-xtensa:patch-review-checklist]]   * [[.:linux-xtensa:patch-review-checklist]]
   * [[.:linux-xtensa:patch-pull-checklist]]   * [[.:linux-xtensa:patch-pull-checklist]]
 +  * [[.:linux-xtensa:rootfs]]
  
 ===== TODO ===== ===== TODO =====
Line 17: Line 18:
  
   * kprobes   * kprobes
 +  * [[.:linux-xtensa:esp32]]
 +  * [[.:linux-xtensa:esp32s3]]
  
-===== Done =====+===== Features by release ===== 
 +==== Linux 6.4 ====
  
-=== Hibernation === +  * support for FDPIC ELF executable format on noMMU
-Done, in the mainline: +
-  [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=733f5c28e59ef23fef9e0b64d79df24c2a4eed2b|xtensa: add hibernation support]]+
  
-=== Coprocessors support in SMP === +==== Linux 6.1 ====
-Done, in the mainline: +
-  * [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=11e969bc964a0e50ae64cdba092048e3937d2389|xtensa: support coprocessors on SMP]]+
  
-=== GDBIO semihosting interface === +  * support for static PIE ELF executable format on noMMU 
-Done, in the mainline: +  * partial support for FDPIC ELF executable format on noMMU (signal delivery is brokenfixed in 6.1.31)
-  * [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6a8eb99e130f3f7658de2776934374fe1c41279e|xtensa: ISS: add GDBIO implementation to semihosting interface]]+
  
-=== Seccomp and audit === +==== Linux 5.19 ====
-Done, in the mainline: +
-<code> +
-da94a40f7285 xtensa: add seccomp support +
-ef1a935c08ea xtensa: add audit support +
-</code>+
  
-=== eXecute In Place === +  * support coprocessors on SMP. 
-[[.:linux-xtensa:xip|XIP]] done, in the mainline: +  * support protection faults on noMMU
-<code> +  support full tickless operation. 
- 7af710d98877 xtensa: add XIP kernel support +  * KCSAN. 
-</code>+  * hibernation.
  
-=== QEMU virt machine === +==== Linux 5.18 ====
-Done, in the mainline: +
-<code> +
-775f1f7eaced xtensa: virt: add defconfig and DTS +
-</code>+
  
-=== support for cores with MPU === +  * support compiler plugins (with gcc-12 and newer). 
-Done, in the mainline: +  * support for kernel ABI selection. 
-<code> +  * removed dependency on compiler's libgcc.
-a5944195d00a xtensa: implement initialize_cacheattr for MPU cores +
-</code>+
  
-=== exclusive access support (l32ex/s32ex) === +==== Linux 5.16 ====
-Done, in the mainline: +
-<code> +
-f7c34874f04a xtensa: add exclusive atomics support +
-</code>+
  
-=== ticket spinlocks === +  * support for cores without windowed registers. 
-Done, in the mainline: +  * call0 ABI kernel.
-<code> +
-af3d890b4303 xtensa: provide xchg for sizes 1 and 2 +
-579afe866f52 xtensa: use generic spinlock/rwlock implementation +
-</code>+
  
-=== support xtfpga audio hardware in ALSA === +==== Linux 5.13 ====
-Done, in the mainline: +
-<code> +
-57b7068de5d0 ASoC: add xtensa xtfpga I2S interface and platform +
-0c7665c35602 clk: TI CDCE706 clock synthesizer driver +
-3a33a85401ec i2c: ocores: fix clock-frequency binding usage +
-e961a094afe0 i2c: ocores: add common clock support +
-c2c62e61fb85 xtensa: xtfpga: add audio card to xtfpga DTS +
-04ddc5b5ad4e xtensa: xtfpga: provide defconfig with audio subsystem +
-</code>+
  
 +  * GDBIO semihosting.
  
-=== fixes for debuggability (continuous stack trace over exceptions at least) === +==== Linux 5.9 ====
-Done, in the mainline: +
-<code> +
-b6569439f1ce xtensa: keep exception/interrupt stack continuous +
-</code>+
  
-=== NoMMU fixes === +  * syscall audit
-Done, in the xtensa-fixes branch: +  * seccomp filter.
-<code> +
-f04f3cb xtensa: nommu: move init_mmu stub to nommu_context.h +
-67dbc24 xtensa: nommu: provide __invalidate_dcache_page_alias stub +
-ae73a13 xtensa: nommu: provide _PAGE_CHG_MASK definition +
-1103273 xtensa: nommu: provide MAP_UNINITIALIZED definition +
-de03359 xtensa: nommu: don't provide arch_get_unmapped_area +
-4ee9b59 xtensa: nommu: don't build most of the cache flushing code +
-8cd28c7 xtensa: nommu: add MMU dependency to DEBUG_TLB_SANITY +
-93c3d27 xtensa: nommu: fix Image.elf reset code and ld script +
-1b929c7 xtensa: nommu: fix load address definitions +
-7c5b218 xtensa: nommu: fix uImage load address +
-e40e0ee xtensa: move vecbase SR initialization to _startup +
-f698bc8 xtensa: nommu: set up cache and atomctl in initialize_mmu +
-48243b5 xtensa: nommu: reserve memory below PLATFORM_DEFAULT_MEM_START +
-ceef25a xtensa: nommu: clean up memory map dump +
-8fd689e xtensa: make PLATFORM_DEFAULT_MEM parameters configurable +
-</code> +
-=== Deliver signals raised in double exceptions === +
-Not really needed. Replaced with alignment double exception fixup, special handler for user stack alignment and deprecation of fast atomic and spill syscalls. In the mainline (v3.17-rc3): +
-<code> +
-c3ef1f4 xtensa: add double exception fixup handler for fast_unaligned +
-e9500dd xtensa: make fast_unaligned store restartable +
-3cfc096 xtensa: don't allow overflow/underflow on unaligned stack +
-9184289 xtensa: deprecate fast_xtensa and fast_spill_registers syscalls +
-</code> +
-=== Highmem on cores with aliasing cache === +
-Done, in the mainline (v3.17-rc3): +
-<code> +
-22def76 xtensa: make fixmap region addressing grow with index +
-dec7305 xtensa: allow fixmap and kmap span more than one page table +
-7128039 xtensa: fix TLBTEMP_BASE_2 region handling in fast_second_level_miss +
-a91902d xtensa: implement clear_user_highpage and copy_user_highpage +
-32544d9 xtensa: support aliasing cache in k[un]map_atomic +
-8504b50 xtensa: support aliasing cache in kmap +
-270eec7 xtensa: support highmem in aliasing cache flushing code +
-</code> +
-=== Highmem support === +
-Done, in the mainline: +
-<code> +
-6555910 xtensa: add HIGHMEM support +
-</code> +
-=== Limit PHY connected to OpenCores MAC to 10/100 MBits/s speeds === +
-Done, in the mainline: +
-<code> +
-445a48c net: ethoc: don't advertise gigabit speed on attached PHY +
-a13aff0 net: ethoc: set up MII management bus clock +
-</code> +
-=== SMP support === +
-Done, in the mainline: +
-<code> +
-99d5040 xtensa: keep a3 and excsave1 on entry to exception handlers +
-5515daa xtensa: fix arch spinlock function names +
-6235153 xtensa: update clockevent setup for SMP +
-cbd1de2 xtensa: move built-in PIC to drivers/irqchip +
-26a8e96 xtensa: add MX irqchip +
-f615136 xtensa: add SMP support +
-49b424f xtensa: implement CPU hotplug +
-</code> +
-=== Clean up and fix ISS networking === +
-Done, in the mainline: +
-<code> +
-3f3cd60b xtensa: ISS: clean up iss-network driver +
-8c8ad85 xtensa: ISS: fix command line parameter name +
-358b181 xtensa: ISS: init network interface name before the probe +
-8991fd8 xtensa: ISS: drop IP setup, clean up MAC setup +
-f6ac5a1 xtensa: ISS: enable iss_net_set_mac +
-35e14b4 xtensa: ISS: always use fixed tuntap config +
-a6e16b9 xtensa: ISS: clean up diagnostic, increase verbosity +
-</code> +
-=== oprofile === +
-<del>8c502ca703956e56bf191774e4169752f0f71c8e, 7dd1d39e70769f2dd7a6a508d58b187ed8d1cb95</del>+
  
-Done, in the mainline: +==== Linux 5.6 ====
-<code> +
-e6ffe17 xtensa: add support for oprofile +
-74f5bf0 xtensa: fix oprofile building as module +
-</code> +
-=== simdisk === +
-<del>1a955825662fa378d447b91485d9fe2438124b0a, 8bcbc3adb5c5bfdbd96078c1e68916be859c832d</del>+
  
-Done, in the mainline: +  * exception vectors can be attached to the rest of the kernel or placed at specific address.
-<code> +
-b6c7e87 xtensa: ISS: add host file-based simulated disk +
-</code> +
-=== Medium level interrupts in less hacky way === +
-<del>489fb47c75772e3a41ef3e988eb0c0e512592085</del>+
  
-Done, in the mainline: +==== Linux 5.5 ====
-<code> +
-2d1c645 xtensa: dispatch medium-priority interrupts +
-895666a xtensa: disable IRQs while IRQ handler is running +
-</code> +
-=== Interrupt management === +
-Done, in the mainline: +
-<code> +
-2206d5d xtensa: add IRQ domains support +
-</code> +
-=== Cache aliasing aware mmap === +
-Done, in the mainline: +
-<code> +
-de73b6b xtensa: avoid mmap cache aliasing +
-</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: +  * eXecute In Place (XIP) kernel. 
-<code> + 
-2f6ea6a xtensa: display s32c1i feature flag in cpuinfo +==== Linux 5.4 ==== 
-733536b xtensa: save and restore scompare1 SR on kernel entry + 
-c622b29 xtensa: initialize atomctl SR +  * support for call0 ABI userspace. 
-28570e8 xtensa: add trap_set_handler function + 
-0027312 xtensa: add s32c1i sanity check +==== Linux 5.3 ==== 
-219b1e4 xtensa: add s32c1i-based atomic ops implementations + 
-e5a9f6a xtensa: add s32c1i-based bitops implementations +  * 'virt' board (sim with PCIcorresponding board model available in QEMU since v4.2). 
-71872b5 xtensa: add s32c1i-based spinlock implementations + 
-599bf77 xtensa: fix mb and wmb definitions +==== Linux 5.2 ==== 
-</code> + 
-=== Generic kernel_thread & friends === +  * support for cores with exclusive access option. 
-Done, in the mainline+  * basic support for cores with MPU. 
-<code> + 
-3306a72 xtensa: switch to generic kernel_thread() +==== Linux 5.1 ==== 
-f0a1bf0 xtensa: switch to generic kernel_execve() + 
-dc241f2 xtensaswitch to generic sys_execve() +  * generic spinlock/rwlock. 
-</code> + 
-=== Support for Tensilica FPGA boards (xtfpga) === +==== Linux 5.0 ==== 
-  * [+] serial + 
-  * [+] ethernet +  * memtest. 
-  * [+] FLASH +  * Jump labels. 
-  * [-] audio +  * tracehook. 
-In the mainline: +  * syscall tracepoints. 
-<code> +  * multiple coprocessor fixes. 
-0d456ba xtensa: add support for the XTFPGA boards +  * SMP fixes. 
-5584b4d xtensa: add XTFPGA DTS + 
-</code> +==== Linux 4.16 ==== 
-=== Device trees support === + 
-Done, in the mainline: +  * KASAN. 
-<code> +  * SSP. 
-da844a8 xtensa: add device trees support +  * allocation of DMA buffers from high memory. 
-</code> +  * support DMA_ATTR_NO_KERNEL_MAPPING. 
-=== MMU v3 === +  * kernel is built with -mtext-section-literals and -mno-serialize-volatile. 
-Done, in the mainline: + 
-<code> +==== Linux 4.9 ==== 
-e85e335 xtensa: add MMU v3 support + 
-93e294a xtensa: document MMUv3 setup sequence +  * New kernel memory layoutswith 256MBytes and 512MBytes of low memory. 
-</code>+  * 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 (simplermethod 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.
  
etc/users/jcmvbkbc/linux-xtensa.txt · Last modified: 2023/07/12 06:25 by jcmvbkbc