Open Source & Linux Lab

It's better when it's simple

User Tools

Site Tools


etc:users:jcmvbkbc:linux-xtensa

This is an old revision of the document!


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
    • [+] Make mainline build for ARCH=xtensa in defconfig, allnoconfig, allmodconfig
      • [+] fix remaining issues with allmodconfig
      • 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

Work items

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

Support for Tensilica FPGA boards

  • [+] serial
  • [+] ethernet
  • [+] FLASH
  • [-] audio

In the mainline:

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

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

TIE coprocessors

23ae3f723c8996d47ef205e98cb7732bbde4775f

Highmem

Non-functional. Doing from scratch.

Interrupt management

Done, in the mainline:

2206d5d xtensa: add IRQ domains support

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

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

ptrace (support latest GDB)

617244763e19a4eebb4fabe41ba56eb1ccbdb049, 23ae3f723c8996d47ef205e98cb7732bbde4775f, ff1b10f85a1176d1eb8df433434b717f6f0841d4 (already upstream), a2b61af3328025d6069e8bf9ff36f5288e11dba9

Support for building with XCC

simdisk

1a955825662fa378d447b91485d9fe2438124b0a, 8bcbc3adb5c5bfdbd96078c1e68916be859c832d

Done, in the mainline:

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

Various fixes made for debuggability

oprofile

8c502ca703956e56bf191774e4169752f0f71c8e, 7dd1d39e70769f2dd7a6a508d58b187ed8d1cb95

Done, in the mainline:

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

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()

Cache aliasing aware mmap

Done, in the mainline:

de73b6b xtensa: avoid mmap cache aliasing
etc/users/jcmvbkbc/linux-xtensa.1391508349.txt.gz · Last modified: 2014/02/04 14:05 by jcmvbkbc