Linux port for Xtensa

Phase 1

Goal: linux mainline contains the latest linux-xtensa updates, builds and works.

compilable with latest GCC

overlays to cover: FSF, dc232b, more TBD

tests to pass: builds, boots, LTP

boards to focus on: ISS, ML605

configurations: UP, linux-next specific, more TBD

Plan

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

Issues

Work items

SMP support

Support for Tensilica FPGA boards

[+] serial

[+] ethernet

[+] FLASH

[-] audio

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, posted to the linux-xtensa ML.

TIE coprocessors

23ae3f723c8996d47ef205e98cb7732bbde4775f

Highmem

Interrupt management

Medium level interrupts in less hacky way

489fb47c75772e3a41ef3e988eb0c0e512592085

Device trees support

On the xtensa-fixes branch and in the linux-next.

MMU v3

Draft of 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.

Cache aliasing aware mmap