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

TODO

coprocessors support in SMP

dynamic ftrace

kprobes

kgdb/kdb

kexec

exclusive access (vs. s32c1i)

QEMU virt machine

NX

In Progress

Done

ticket spinlocks

Done, in the mainline:

af3d890b4303 xtensa: provide xchg for sizes 1 and 2
579afe866f52 xtensa: use generic spinlock/rwlock implementation

support xtfpga audio hardware in ALSA

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

fixes for debuggability (continuous stack trace over exceptions at least)

Done, in the mainline:

b6569439f1ce xtensa: keep exception/interrupt stack continuous

NoMMU fixes

Done, in the xtensa-fixes branch:

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/underflow on unaligned stack
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/irqchip
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

8c502ca703956e56bf191774e4169752f0f71c8e, 7dd1d39e70769f2dd7a6a508d58b187ed8d1cb95

Done, in the mainline:

e6ffe17 xtensa: add support for oprofile
74f5bf0 xtensa: fix oprofile building as module

simdisk

1a955825662fa378d447b91485d9fe2438124b0a, 8bcbc3adb5c5bfdbd96078c1e68916be859c832d

Done, in the mainline:

b6c7e87 xtensa: ISS: add host file-based simulated disk

Medium level interrupts in less hacky way

489fb47c75772e3a41ef3e988eb0c0e512592085

Done, in the mainline:

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/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:

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

Generic kernel_thread & friends

Done, in the mainline:

3306a72 xtensa: switch to generic kernel_thread()
f0a1bf0 xtensa: switch to generic kernel_execve()
dc241f2 xtensa: switch to generic sys_execve()

Support for Tensilica FPGA boards (xtfpga)

[+] serial

[+] ethernet

[+] FLASH

[-] audio

In the mainline:

0d456ba xtensa: add support for the XTFPGA boards
5584b4d xtensa: add XTFPGA DTS

Device trees support

Done, in the mainline:

da844a8 xtensa: add device trees support

MMU v3

Done, in the mainline:

e85e335 xtensa: add MMU v3 support
93e294a xtensa: document MMUv3 setup sequence