etc:users:jcmvbkbc:linux-xtensa
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
etc:users:jcmvbkbc:linux-xtensa [2022/05/24 10:46] – status update jcmvbkbc | etc:users:jcmvbkbc:linux-xtensa [2023/07/12 06:25] (current) – add esp32s3 linux wifi notes jcmvbkbc | ||
---|---|---|---|
Line 6: | Line 6: | ||
* [[.: | * [[.: | ||
* [[.: | * [[.: | ||
+ | * [[.: | ||
===== TODO ===== | ===== TODO ===== | ||
Line 17: | Line 18: | ||
* kprobes | * kprobes | ||
+ | * [[.: | ||
+ | * [[.: | ||
+ | * [[.: | ||
- | ===== Done ===== | + | ===== Features by release |
+ | ==== Linux 6.4 ==== | ||
- | === Hibernation === | + | |
- | Done, in the mainline: | + | |
- | | + | |
- | === Coprocessors support in SMP === | + | ==== Linux 6.1 ==== |
- | Done, in the mainline: | + | |
- | * [[https:// | + | |
- | === 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 broken, fixed in 6.1.31) |
- | * [[https:// | + | |
- | === Seccomp and audit === | + | ==== Linux 5.19 ==== |
- | Done, in the mainline: | + | |
- | < | + | |
- | da94a40f7285 xtensa: add seccomp support | + | |
- | ef1a935c08ea xtensa: add audit support | + | |
- | </ | + | |
- | === eXecute In Place === | + | * support coprocessors on SMP. |
- | [[.: | + | * support protection faults on noMMU. |
- | < | + | |
- | | + | * KCSAN. |
- | </ | + | * hibernation. |
- | === QEMU virt machine | + | ==== Linux 5.18 ==== |
- | Done, in the mainline: | + | |
- | < | + | |
- | 775f1f7eaced xtensa: virt: add defconfig and DTS | + | |
- | </ | + | |
- | === support | + | * support |
- | Done, in the mainline: | + | * support |
- | < | + | * removed dependency on compiler' |
- | a5944195d00a xtensa: implement initialize_cacheattr | + | |
- | </ | + | |
- | === exclusive access support (l32ex/ | + | ==== Linux 5.16 ==== |
- | Done, in the mainline: | + | |
- | < | + | |
- | f7c34874f04a xtensa: add exclusive atomics support | + | |
- | </ | + | |
- | === ticket spinlocks === | + | * support |
- | Done, in the mainline: | + | * call0 ABI kernel. |
- | < | + | |
- | af3d890b4303 xtensa: provide xchg for sizes 1 and 2 | + | |
- | 579afe866f52 xtensa: use generic spinlock/ | + | |
- | </ | + | |
- | === support xtfpga audio hardware in ALSA === | + | ==== Linux 5.13 ==== |
- | Done, in the mainline: | + | |
- | < | + | |
- | 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 | + | |
- | </ | + | |
+ | * GDBIO semihosting. | ||
- | === fixes for debuggability (continuous stack trace over exceptions at least) | + | ==== Linux 5.9 ==== |
- | Done, in the mainline: | + | |
- | < | + | |
- | b6569439f1ce xtensa: keep exception/ | + | |
- | </ | + | |
- | === NoMMU fixes === | + | * syscall audit. |
- | Done, in the xtensa-fixes branch: | + | * seccomp filter. |
- | < | + | |
- | 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 | + | |
- | </ | + | |
- | === 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): | + | |
- | < | + | |
- | c3ef1f4 xtensa: add double exception fixup handler for fast_unaligned | + | |
- | e9500dd xtensa: make fast_unaligned store restartable | + | |
- | 3cfc096 xtensa: don't allow overflow/ | + | |
- | 9184289 xtensa: deprecate fast_xtensa and fast_spill_registers syscalls | + | |
- | </ | + | |
- | === Highmem on cores with aliasing cache === | + | |
- | Done, in the mainline (v3.17-rc3): | + | |
- | < | + | |
- | 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 | + | |
- | </ | + | |
- | === Highmem support === | + | |
- | Done, in the mainline: | + | |
- | < | + | |
- | 6555910 xtensa: add HIGHMEM support | + | |
- | </ | + | |
- | === Limit PHY connected to OpenCores MAC to 10/100 MBits/s speeds === | + | |
- | Done, in the mainline: | + | |
- | < | + | |
- | 445a48c net: ethoc: don't advertise gigabit speed on attached PHY | + | |
- | a13aff0 net: ethoc: set up MII management bus clock | + | |
- | </ | + | |
- | === SMP support === | + | |
- | Done, in the mainline: | + | |
- | < | + | |
- | 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/ | + | |
- | 26a8e96 xtensa: add MX irqchip | + | |
- | f615136 xtensa: add SMP support | + | |
- | 49b424f xtensa: implement CPU hotplug | + | |
- | </ | + | |
- | === Clean up and fix ISS networking === | + | |
- | Done, in the mainline: | + | |
- | < | + | |
- | 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 | + | |
- | </ | + | |
- | === oprofile === | + | |
- | < | + | |
- | Done, in the mainline: | + | ==== Linux 5.6 ==== |
- | < | + | |
- | e6ffe17 xtensa: add support for oprofile | + | |
- | 74f5bf0 xtensa: fix oprofile building as module | + | |
- | </ | + | |
- | === simdisk | + | |
- | < | + | |
- | Done, in the mainline: | + | * exception vectors can be attached to the rest of the kernel or placed at specific address. |
- | < | + | |
- | b6c7e87 xtensa: ISS: add host file-based simulated disk | + | |
- | </ | + | |
- | === Medium level interrupts in less hacky way === | + | |
- | < | + | |
- | Done, in the mainline: | + | ==== Linux 5.5 ==== |
- | < | + | |
- | 2d1c645 xtensa: dispatch medium-priority interrupts | + | |
- | 895666a xtensa: disable IRQs while IRQ handler is running | + | |
- | </ | + | |
- | === Interrupt management | + | |
- | Done, in the mainline: | + | |
- | < | + | |
- | 2206d5d xtensa: add IRQ domains support | + | |
- | </ | + | |
- | === Cache aliasing aware mmap === | + | |
- | Done, in the mainline: | + | |
- | < | + | |
- | de73b6b xtensa: avoid mmap cache aliasing | + | |
- | </ | + | |
- | === Atomics (arch/ | + | |
- | Merged in the eb0a9bf31fdbcee9463c0f42fbf4a292ef149a7d, | + | |
- | Done, in the mainline: | + | * eXecute In Place (XIP) kernel. |
- | < | + | |
- | 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 | + | * ' |
- | 71872b5 xtensa: add s32c1i-based | + | |
- | 599bf77 xtensa: fix mb and wmb definitions | + | ==== Linux 5.2 ==== |
- | </ | + | |
- | === Generic kernel_thread & friends | + | * support for cores with exclusive access option. |
- | Done, in the mainline: | + | * basic support for cores with MPU. |
- | < | + | |
- | 3306a72 xtensa: switch to generic kernel_thread() | + | ==== Linux 5.1 ==== |
- | f0a1bf0 xtensa: switch to generic kernel_execve() | + | |
- | dc241f2 xtensa: switch | + | * generic |
- | </ | + | |
- | === Support | + | ==== Linux 5.0 ==== |
- | * [+] serial | + | |
- | * [+] ethernet | + | * memtest. |
- | * [+] FLASH | + | * Jump labels. |
- | * [-] audio | + | * tracehook. |
- | In the mainline: | + | * syscall tracepoints. |
- | < | + | * multiple coprocessor fixes. |
- | 0d456ba xtensa: add support for the XTFPGA boards | + | * SMP fixes. |
- | 5584b4d xtensa: add XTFPGA | + | |
- | </ | + | ==== Linux 4.16 ==== |
- | === Device trees support | + | |
- | Done, in the mainline: | + | * KASAN. |
- | < | + | * 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 |
- | Done, in the mainline: | + | |
- | < | + | ==== Linux 4.9 ==== |
- | e85e335 xtensa: add MMU v3 support | + | |
- | 93e294a xtensa: document MMUv3 setup sequence | + | * New kernel memory layouts: with 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 | ||
+ | |||
+ | ==== Linux 4.6 ==== | ||
+ | |||
+ | * Hardware breakpoints/ | ||
+ | * 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 | ||
+ | |||
+ | ==== 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. | ||
etc/users/jcmvbkbc/linux-xtensa.1653378389.txt.gz · Last modified: 2022/05/24 10:46 by jcmvbkbc