Open Source & Linux Lab

It's better when it's simple

User Tools

Site Tools


etc:users:jcmvbkbc:qemu-target-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:qemu-target-xtensa [2011/08/25 02:23] – progress jcmvbkbcetc: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/qemu-xtensa.git;a=summary]] +  * Git tree: https://github.com/OSLL/qemu-xtensa 
-  * Git tree (clone): [[git://jcmvbkbc.spb.ru/dumb/qemu-xtensa.git]] [[http://jcmvbkbc.spb.ru/dumb/qemu-xtensa.git]]+  * Official QEMU wiki feature page: [[http://wiki.qemu.org/Features/Xtensa]] 
 +  * Official xtensa linux wiki page: [[https://wiki.linux-xtensa.org/index.php?title=Xtensa_on_QEMU]]
  
-  * Toolchain build scripts (view): [[http://jcmvbkbc.spb.ru/git/?p=dumb/xtensa-toolchain-build.git;a=summary]] +===== Description ===== 
-  * Toolchain build scripts (clone): [[git://jcmvbkbc.spb.ru/dumb/xtensa-toolchain-build.git]] / [[http://jcmvbkbc.spb.ru/dumb/xtensa-toolchain-build.git]]+qemu/target-xtensa is a project aimed at development of a free simulator for Tensilica Xtensa processor family
 + 
 +Although xtensa instruction set specification is open and there's even linux port for xtensa there were no free simulator available. 
 + 
 +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://osll.ru|OSLL]]. Started in March 2011 it took 2 months to provide initial ThreadX support, 2 more months to provide linux support and 2 more months to get accepted into the qemu mainline. 
 + 
 +Our goal is to make it usable (and preferable:) in real development/production environment.
  
 ===== Now active ===== ===== Now active =====
-  * target: PATCH v3, 2011.08.31 +  * TIE support 
-    * [4/5] regression test suite/unit tests; + 
-    * [4/4] accurate interrupt delivery; +===== TODO ===== 
-  * [[.:qemu-target-xtensa:pipeline|cycle accurate pipeline]];+  * xtensa TCG backend 
 + 
 +===== Implementation status =====
  
-===== Things to do ===== 
   * core/basic opcodes implementation;   * core/basic opcodes implementation;
     * [+] and/or/xor/neg/abs;     * [+] and/or/xor/neg/abs;
Line 27: Line 35:
     * [+] loop option;     * [+] loop option;
     * [+] extended L32R option;     * [+] extended L32R option;
-    * [-] MAC16; +    * [+] MAC16; 
-    * [-] coprocessors; +    * [+] coprocessors; 
-      * [-] floating point; +      * [+] floating point; 
-      * [-] boolean registers/commands;+      * [+] boolean registers/commands;
     * [+] memory protection;     * [+] memory protection;
       * [+] no-MMU mode;       * [+] no-MMU mode;
       * [+] region protection (with/without translation);       * [+] region protection (with/without translation);
-      * [+] 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/underflow;       * [+] window overflow/underflow;
       * [+] user/kernel (invalid insn, privileged insn, alignment, division by 0,...);       * [+] user/kernel (invalid insn, privileged insn, alignment, division by 0,...);
Line 47: 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, <del>xml register map</del> (not used by gdb);
     * [+] 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; +  * evaluation board; 
-    * [+] memory mapping, ELF loader+    * [+] sim platform
-    * [-] standard peripherals+    * xt2000 platform; 
-    * [+] dc232b;+      * [+] UART (reuse existing 16550 serial); 
 +      * [+] xtsonic (reuse existing dp8393x NIC); 
 +      * [-] LED
 +    * [+] lx200/60/110 platform; 
 +      * [+] UART (reuse existing 16550 serial); 
 +      * [+] opencores ethernet; 
 +    * [+] [[.:qemu-target-xtensa:virt|virt platform]] 
 +      * [+] PCI controller 
 +      * [-] hardcoded IRQ routing may connect legacy PCI IRQ to edge-triggered external IRQ line 
 +    * [+] [[.:qemu-target-xtensa:linux-user|linux-user]]
   * simulation quality;   * simulation quality;
-    * [+] pass command line arguments to argc/argv SIMCALLs (DAN branch only);+    * [+] pass command line arguments to argc/argv SIMCALLs;
     * [+] TB chaining;     * [+] TB chaining;
-    * cycle accuracy; +  * [+external configuration (overlay reuse)
-      * [-pipeline/SYNC group+  * [+] [[.:qemu-target-xtensa:testsuite|automatic regression test suite]]; 
-      * [-memory access; +  * [+] SMP support (interrupt distributor, WER/RER); 
-      * [-] exceptions+  * [-] [[.:qemu-target-xtensa:pipeline|cycle accurate pipeline]];
-  * [+] external configuration (a-la xtensa overlay)? +
-  * [-] automatic regression test suite;+
  
 ===== Events ===== ===== Events =====
Line 77: 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 is available at ssh -p 3333 xtensa@jcmvbkbc.spb.ru with the following private key: +  * 2011.06.29: xtensa linux session on qemu-xtensa was available at ssh -p 3333 xtensa@jcmvbkbc.spb.ru
-<file> +
------BEGIN RSA PRIVATE KEY----- +
-MIIEpQIBAAKCAQEA2ycE9iuEtWoNOmyLsx5aiEAPDx//MJlmMrx6o6qAUTj+wivk +
-kaKQE1yCZMUa/B40BMUST9KffHqIcV9jxDFjagM/dfbdbTxeiiNEKyjBsrEidEoU +
-ytM5fkpHFyg1DmCvkXdoUAAzeVCy5ILh6ZhqpQpe68Pb8vQLdj9QmwcvOpS7d97q +
-OMbGadIRdgOdlVAYQ/Rju8D+k9yygFn/TwZlTiT/glEpk/D4dq+8D1UlFNvohUH4 +
-3VY/gVJ0CuEQx1OwS+NTJLSz25Z2eTaNTEE4sqqAy2zlBe23Ef4vQo0mWvmBBIkA +
-x6dPBqKsQZCW6gGcsHk7fMw0K4H1RSOLRiAuQwIDAQABAoIBAQDZQ1m743DxmW37 +
-2di1fwYpxbgoOoR33dxfuFOtJj+IRoTqYzF64DsNtszesjoKcLcJc4av9BOBCMlz +
-/CmgO4Zfd1DW1iK3RP5E3KmcUA+X49xQhZEPc1CwT1sjLg1Lb7ce885KYaimQMbZ +
-nJfzSdOQQzPPcKEBv8gNNr/msby0ySFZ06sQNpSzaboD0u7TdssYz22BDaZ0E+4C +
-VgOLgFHo9qEMO5PlTElRvRd0JjVRF5Mn9SExSxqWKFzlFMNRkk63Fd3j34St+Z6U +
-VFc5OAMEoJt8pPEFNwpbzK0CZyYhWi02US2A8d5aPgodb1WQ0H1JdgO3u9b5YsJN +
-hcGjtDwhAoGBAO5/ySbW59vfUkmwI/s5WL3KgfdkzIUGKdG3yPL3MpUgnrOPPcnT +
-xZi67BWCPS0ac4AlKjMJ0Px85XZQChjEh43CH3cglf9bzneTTC+liHq7GfvoQITd +
-TOZTHFu1z6SCgUtTnUwQFdXZHJDs0C21VENcS/N0XudXLy0nIBwWKwzHAoGBAOs7 +
-zfBA2IOFim3OHNaMjMUYvtpo+QQNGSwQJrw91rEbyrCd/09rUD5YLddPRhwq1jYJ +
-qRDGN6gqANRiTkJsZyvQz81aEqlp3WmG4hPWitymhlpgQ4mFmZU88IMYaQ9Dh8Vp +
-Dv6kT6zraAzBKc5nezjKisDItVzieDbly4TWMX6lAoGAJshOzGsL3vwspGDpKPQF +
-Uy93/OO+Qi9jY3/wRFogNpHMXMSBNq2iJxjWRRUdn5T6jS798ri47CXfJmMTkT18 +
-EXgsp7F70r96DoW8UM8pJ1P/gLAetbxKwfVn2h3xev3hyn75SCIhetnIRGTN4XDo +
-F+ANVbRprlLGECCZnxeXvocCgYEAhLnfvvm3sK3+p2oul1gCbYtC1JV6O7DwTQ5n +
-7Lqvkort2K2tSrBwPF0gsGXIV0hMSX016YMOEFJy2WMGaTAlHnHZbjKuaOyUw2AZ +
-27un6kwDbqb2NHgvaidSRYXWcYhW6SoYDdHEKvtAYEH1RsLYofiWRaR5wIj/72nF +
-ZZQ9pQkCgYEA7I004D9SvsVytaeN4RdmbpXYhontoYTorL343B/hAXYgGENKEfTK +
-VfbweLGQ6Ga8K99YARbx2/3FOYqbGKUtUpgxVwhquyBtcUxq6+vr4riUP6M2Zw55 +
-y3Cqme66+PO8Ka0NjjWxb+ksgO0hgcmEhlnz+3MWNODiacxHffH0ChM= +
------END RSA PRIVATE KEY----- +
-</file>+
   * 2011.07.18: issue with gdb not able to read privileged SRs root-caused: http://sourceware.org/ml/gdb/2011-07/msg00073.html   * 2011.07.18: issue with gdb not able to read privileged SRs root-caused: http://sourceware.org/ml/gdb/2011-07/msg00073.html
   * 2011.07.19: tensilica guys suggested the following solution for gdb:   * 2011.07.19: tensilica guys suggested the following solution for gdb:
Line 114: Line 103:
 </file> </file>
   * 2011.07.24: second PATCH patchset sent to qemu-devel http://lists.nongnu.org/archive/html/qemu-devel/2011-07/msg02529.html   * 2011.07.24: second PATCH patchset sent to qemu-devel http://lists.nongnu.org/archive/html/qemu-devel/2011-07/msg02529.html
-{{tag>qemu}}+  * 2011.09.01: third PATCH patchset sent to qemu-devel http://lists.nongnu.org/archive/html/qemu-devel/2011-08/msg03888.html 
 +  * 2011.09.02: fourth PATCH patchset sent to qemu-devel http://lists.nongnu.org/archive/html/qemu-devel/2011-09/msg00165.html 
 +  * 2011.09.06: fifth PATCH patchset sent to qemu-devel http://lists.nongnu.org/archive/html/qemu-devel/2011-09/msg00695.html 
 +  * 2011.09.10: fifth PATCH patchset hit the qemu mainline: http://lists.nongnu.org/archive/html/qemu-devel/2011-09/msg01298.html 
 +  * 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/DTB/initrd loading on XTFPGA boards 
 +  * 2017.01.25: CCOUNT no longer counts instructions; RER/WER and RUNSTALL are in the mainline 
 +  * 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 [[.:qemu-target-xtensa:virt|virt machine]] is in the mainline 
 +  * 2020.08.24: xtensa DFPU support series is in the mainline 
 +  * 2021.03.10: it's been 10 years 
 +  * 2024.01.13: control/TIE/Xtensa.xml in the xtensa build directory is an actual fixed-substitution-coded XML file with full core description. Why do I realize it just now and not 10 years ago?
etc/users/jcmvbkbc/qemu-target-xtensa.1314224588.txt.gz · Last modified: 2011/08/25 02:23 by jcmvbkbc