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
etc:users:jcmvbkbc:linux-xtensa [2019/04/08 22:47] – status update jcmvbkbcetc:users:jcmvbkbc:linux-xtensa [2023/07/12 06:25] (current) – add esp32s3 linux wifi notes 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 =====
  
-  * coprocessors support in SMP 
   * dynamic ftrace   * dynamic ftrace
-  * kprobes 
   * kgdb/kdb   * kgdb/kdb
   * kexec   * kexec
-  * exclusive access (vs. s32c1i) 
-  * QEMU virt machine 
   * NX   * NX
  
 ===== In Progress ===== ===== In Progress =====
  
 +  * kprobes
 +  * [[.:linux-xtensa:esp32]]
 +  * [[.:linux-xtensa:esp32s3]]
 +  * [[.:linux-xtensa:esp32s3wifi]]
 +
 +===== 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.
  
-===== Done =====+==== Linux 3.11 ====
  
-=== ticket spinlocks === +  * Multihit exceptions fixed. 
-Done, in the mainline: +  * Static function tracer.
-<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 3.10 ====
-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>+
  
 +  * MMUv3 cores.
 +  * Lockdep/stack tracing.
  
-=== fixes for debuggability (continuous stack trace over exceptions at least) === +==== Linux 3.9 ====
-Done, in the mainline: +
-<code> +
-b6569439f1ce xtensa: keep exception/interrupt stack continuous +
-</code>+
  
-=== NoMMU fixes === +  * TLS (THREADPTR register)
-Done, in the xtensa-fixes branch: +  * Oprofile
-<code> +  ISS simdisk.
-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 3.8 ====
-<code> +
-e6ffe17 xtensa: add support for oprofile +
-74f5bf0 xtensa: fix oprofile building as module +
-</code> +
-=== simdisk === +
-<del>1a955825662fa378d447b91485d9fe2438124b0a, 8bcbc3adb5c5bfdbd96078c1e68916be859c832d</del>+
  
-Donein the mainline: +  * Device trees. 
-<code> +  * uImage generation. 
-b6c7e87 xtensa: ISS: add host file-based simulated disk +  * IRQ subsystem overhaul (IRQ domainsmedium-priority interrupts). 
-</code> +  * XTFPGA boards. 
-=== Medium level interrupts in less hacky way === +  * s32c1i-based atomic/bit operations and spinlocks.
-<del>489fb47c75772e3a41ef3e988eb0c0e512592085</del>+
  
-Done, in the mainline: +==== Linux 3.7 ====
-<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.+
  
-Donein the mainline+  * Overall architecture port overhaul, mainline is alive again, builds and runs. 
-<code> +  * There were dragons prior to that release.
-2f6ea6a xtensa: display s32c1i feature flag in cpuinfo +
-733536b xtensa: save and restore scompare1 SR on kernel entry +
-c622b29 xtensa: initialize atomctl SR +
-28570e8 xtensa: add trap_set_handler function +
-0027312 xtensa: add s32c1i sanity check +
-219b1e4 xtensa: add s32c1i-based atomic ops implementations +
-e5a9f6a xtensa: add s32c1i-based bitops implementations +
-71872b5 xtensa: add s32c1i-based spinlock implementations +
-599bf77 xtensa: fix mb and wmb definitions +
-</code> +
-=== 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> +
-=== Support for Tensilica FPGA boards (xtfpga) === +
-  * [+] serial +
-  * [+] ethernet +
-  * [+] FLASH +
-  * [-] audio +
-In the mainline: +
-<code> +
-0d456ba xtensa: add support for the XTFPGA boards +
-5584b4d xtensa: add XTFPGA DTS +
-</code> +
-=== Device trees support === +
-Done, in the mainline: +
-<code> +
-da844a8 xtensa: add device trees support +
-</code> +
-=== MMU v3 === +
-Done, in the mainline: +
-<code> +
-e85e335 xtensa: add MMU v3 support +
-93e294a xtensa: document MMUv3 setup sequence +
-</code>+
  
etc/users/jcmvbkbc/linux-xtensa.1554752876.txt.gz · Last modified: 2019/04/08 22:47 by jcmvbkbc