etc:users:jcmvbkbc:qemu-target-xtensa
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
etc:users:jcmvbkbc:qemu-target-xtensa [2011/07/24 21:36] – progress jcmvbkbc | etc:users:jcmvbkbc:qemu-target-xtensa [2024/01/21 19:22] (current) – jcmvbkbc | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== QEMU support for Xtensa ====== | ====== QEMU support for Xtensa ====== | ||
- | * Git tree (view): [[http://jcmvbkbc.spb.ru/git/?p=dumb/ | + | * Git tree: https://github.com/OSLL/ |
- | * Git tree (clone): [[git://jcmvbkbc.spb.ru/dumb/qemu-xtensa.git]] / [[http://jcmvbkbc.spb.ru/ | + | * Official QEMU wiki feature page: [[http://wiki.qemu.org/Features/Xtensa]] |
+ | * Official xtensa linux wiki page: [[https://wiki.linux-xtensa.org/ | ||
- | * Toolchain build scripts (view): [[http:// | + | ===== Description ===== |
- | * Toolchain build scripts (clone): [[git:// | + | qemu/target-xtensa |
+ | Although xtensa instruction set specification is open and there' | ||
+ | |||
+ | The project was initiated to lower cost and to speed up development of one of the Motorola Solutions projects and has been carried out exclusively by the [[http:// | ||
+ | |||
+ | Our goal is to make it usable (and preferable: | ||
+ | |||
+ | ===== Now active ===== | ||
+ | * TIE support | ||
+ | |||
+ | ===== TODO ===== | ||
+ | * xtensa TCG backend | ||
+ | |||
+ | ===== Implementation status ===== | ||
- | ===== Things to do ===== | ||
* core/basic opcodes implementation; | * core/basic opcodes implementation; | ||
* [+] and/ | * [+] and/ | ||
Line 22: | Line 35: | ||
* [+] loop option; | * [+] loop option; | ||
* [+] extended L32R option; | * [+] extended L32R option; | ||
- | * [-] MAC16; | + | * [+] MAC16; |
- | * [-] coprocessors; | + | * [+] coprocessors; |
- | * [-] floating point; | + | * [+] floating point; |
- | * [-] boolean registers/ | + | * [+] boolean registers/ |
* [+] memory protection; | * [+] memory protection; | ||
* [+] no-MMU mode; | * [+] no-MMU mode; | ||
* [+] region protection (with/ | * [+] region protection (with/ | ||
- | * [+] MMU mode; | + | * [+] MMU; |
+ | * [+] MPU; | ||
* cache options; | * cache options; | ||
- | * [-] memory attributes; | + | * [+] memory attributes; |
+ | * [+] memory accessibility check; | ||
* [-] memory access timing; | * [-] memory access timing; | ||
- | * [-] debug option; | + | * [+] debug option; |
* exceptions; | * exceptions; | ||
* [+] debug (only external); | * [+] debug (only external); | ||
- | * [-] break; | + | * [+] break; |
* [+] window overflow/ | * [+] window overflow/ | ||
* [+] user/kernel (invalid insn, privileged insn, alignment, division by 0,...); | * [+] user/kernel (invalid insn, privileged insn, alignment, division by 0,...); | ||
Line 42: | Line 57: | ||
* [+] external interrupts; | * [+] external interrupts; | ||
* [+] timer interrupts; | * [+] timer interrupts; | ||
- | * [-] correct opcode timings?; | ||
* [+] qemu timer to avoid busy looping in waiti; | * [+] qemu timer to avoid busy looping in waiti; | ||
+ | * [+] FLIX; | ||
+ | * [+] wide branches; | ||
* gdbserver; | * gdbserver; | ||
- | * [+] xml register map, read/write register; | + | * [+] read/write register, < |
* [+] correct SR mapping; | * [+] correct SR mapping; | ||
* [+] debug exception, single step mode; | * [+] debug exception, single step mode; | ||
* [+] hw/sw breakpoints; | * [+] hw/sw breakpoints; | ||
* [+] gdbserver for different processor types; | * [+] gdbserver for different processor types; | ||
- | * sample | + | * evaluation board; |
- | * [+] memory mapping, ELF loader; | + | * [+] sim platform; |
- | * [-] standard peripherals; | + | |
- | * [+] dc232b; | + | * [+] UART (reuse existing 16550 serial); |
+ | * [+] xtsonic (reuse existing dp8393x NIC); | ||
+ | | ||
+ | * [+] lx200/ | ||
+ | * [+] UART (reuse existing 16550 serial); | ||
+ | * [+] opencores ethernet; | ||
+ | * [+] [[.: | ||
+ | * [+] PCI controller | ||
+ | * [-] hardcoded IRQ routing may connect legacy PCI IRQ to edge-triggered external IRQ line | ||
+ | * [+] [[.: | ||
* simulation quality; | * simulation quality; | ||
- | * [+] pass command line arguments to argc/argv SIMCALLs | + | * [+] pass command line arguments to argc/argv SIMCALLs; |
* [+] TB chaining; | * [+] TB chaining; | ||
- | * [+] external configuration (a-la xtensa | + | * [+] external configuration (overlay |
- | * [-] automatic regression test suite; | + | * [+] [[.: |
- | + | * [+] SMP support (interrupt distributor, | |
- | + | * [-] [[.: | |
- | + | ||
===== Events ===== | ===== Events ===== | ||
Line 72: | Line 95: | ||
* 2011.06.19: [[xtensa-linux|linux boots]], issues on userspace application startup | * 2011.06.19: [[xtensa-linux|linux boots]], issues on userspace application startup | ||
* 2011.06.22: successfull userspace app startup in linux | * 2011.06.22: successfull userspace app startup in linux | ||
- | * 2011.06.29: xtensa linux session on qemu-xtensa | + | * 2011.06.29: xtensa linux session on qemu-xtensa |
- | < | + | |
- | -----BEGIN RSA PRIVATE KEY----- | + | |
- | MIIEpQIBAAKCAQEA2ycE9iuEtWoNOmyLsx5aiEAPDx// | + | |
- | kaKQE1yCZMUa/ | + | |
- | ytM5fkpHFyg1DmCvkXdoUAAzeVCy5ILh6ZhqpQpe68Pb8vQLdj9QmwcvOpS7d97q | + | |
- | OMbGadIRdgOdlVAYQ/ | + | |
- | 3VY/ | + | |
- | x6dPBqKsQZCW6gGcsHk7fMw0K4H1RSOLRiAuQwIDAQABAoIBAQDZQ1m743DxmW37 | + | |
- | 2di1fwYpxbgoOoR33dxfuFOtJj+IRoTqYzF64DsNtszesjoKcLcJc4av9BOBCMlz | + | |
- | / | + | |
- | nJfzSdOQQzPPcKEBv8gNNr/ | + | |
- | VgOLgFHo9qEMO5PlTElRvRd0JjVRF5Mn9SExSxqWKFzlFMNRkk63Fd3j34St+Z6U | + | |
- | VFc5OAMEoJt8pPEFNwpbzK0CZyYhWi02US2A8d5aPgodb1WQ0H1JdgO3u9b5YsJN | + | |
- | hcGjtDwhAoGBAO5/ | + | |
- | xZi67BWCPS0ac4AlKjMJ0Px85XZQChjEh43CH3cglf9bzneTTC+liHq7GfvoQITd | + | |
- | TOZTHFu1z6SCgUtTnUwQFdXZHJDs0C21VENcS/ | + | |
- | zfBA2IOFim3OHNaMjMUYvtpo+QQNGSwQJrw91rEbyrCd/ | + | |
- | qRDGN6gqANRiTkJsZyvQz81aEqlp3WmG4hPWitymhlpgQ4mFmZU88IMYaQ9Dh8Vp | + | |
- | Dv6kT6zraAzBKc5nezjKisDItVzieDbly4TWMX6lAoGAJshOzGsL3vwspGDpKPQF | + | |
- | Uy93/ | + | |
- | EXgsp7F70r96DoW8UM8pJ1P/ | + | |
- | F+ANVbRprlLGECCZnxeXvocCgYEAhLnfvvm3sK3+p2oul1gCbYtC1JV6O7DwTQ5n | + | |
- | 7Lqvkort2K2tSrBwPF0gsGXIV0hMSX016YMOEFJy2WMGaTAlHnHZbjKuaOyUw2AZ | + | |
- | 27un6kwDbqb2NHgvaidSRYXWcYhW6SoYDdHEKvtAYEH1RsLYofiWRaR5wIj/ | + | |
- | ZZQ9pQkCgYEA7I004D9SvsVytaeN4RdmbpXYhontoYTorL343B/ | + | |
- | VfbweLGQ6Ga8K99YARbx2/ | + | |
- | y3Cqme66+PO8Ka0NjjWxb+ksgO0hgcmEhlnz+3MWNODiacxHffH0ChM= | + | |
- | -----END RSA PRIVATE KEY----- | + | |
- | </ | + | |
* 2011.07.18: issue with gdb not able to read privileged SRs root-caused: | * 2011.07.18: issue with gdb not able to read privileged SRs root-caused: | ||
* 2011.07.19: tensilica guys suggested the following solution for gdb: | * 2011.07.19: tensilica guys suggested the following solution for gdb: | ||
Line 109: | Line 103: | ||
</ | </ | ||
* 2011.07.24: second PATCH patchset sent to qemu-devel http:// | * 2011.07.24: second PATCH patchset sent to qemu-devel http:// | ||
- | {{tag>qemu}} | + | * 2011.09.01: third PATCH patchset sent to qemu-devel http:// |
+ | * 2011.09.02: fourth PATCH patchset sent to qemu-devel http:// | ||
+ | * 2011.09.06: fifth PATCH patchset sent to qemu-devel http:// | ||
+ | * 2011.09.10: fifth PATCH patchset hit the qemu mainline: http:// | ||
+ | * 2011.09.27: linux booted up to rootfs mounting on the new emulated LX200 board | ||
+ | * 2011.10.01: complete linux bootup via NFS on the LX200 | ||
+ | * 2011.10.10: lx60, opencores ethernet, overlay reuse and MAC16 patches sent to qemu-devel | ||
+ | * 2011.10.16: lx60, opencores ethernet, overlay reuse and MAC16 patches are merged | ||
+ | * 2011.10.29: lx60/lx200: u-boot starts from FLASH, linux kernel boots via TFTP | ||
+ | * 2011.11.03: emulation speed test for sha512sum running in linux on dc232b shows fantastic 266 MIPS | ||
+ | * 2011.11.22: linux for dc233c is working on qemu | ||
+ | * 2012.01.13: instruction breakpoints are working | ||
+ | * 2012.01.29: data breakpoints are working | ||
+ | * 2012.03.03: debug option is merged | ||
+ | * 2012.09.09: FP coprocessor series is posted to qemu-devel | ||
+ | * 2012.09.19: FP coprocessor series is in the mainline | ||
+ | * 2014.06.29: uImage/ | ||
+ | * 2017.01.25: CCOUNT no longer counts instructions; | ||
+ | * 2018.01.09: libisa and target disassembler series is in the mainline | ||
+ | * 2018.01.24: xtensa noMMU series is in the mainline | ||
+ | * 2018.03.17: xtensa linux-user series is in the mainline | ||
+ | * 2019.01.30: basic FLIX 'hello world' is working | ||
+ | * 2019.02.05: xtensa SMP support series is in the mainline | ||
+ | * 2019.03.01: xtensa FLIX support series is in the mainline | ||
+ | * 2019.09.12: xtensa call0 ABI is supported by linux-user in the mainline | ||
+ | * 2019.10.24: xtensa [[.: | ||
+ | * 2020.08.24: xtensa DFPU support series is in the mainline | ||
+ | * 2021.03.10: it's been 10 years | ||
+ | * 2024.01.13: control/ |
etc/users/jcmvbkbc/qemu-target-xtensa.1311528997.txt.gz · Last modified: 2011/07/24 21:36 by jcmvbkbc