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
Next revisionBoth sides next revision
etc:users:jcmvbkbc:qemu-target-xtensa [2011/08/31 15:07] – progress jcmvbkbcetc:users:jcmvbkbc:qemu-target-xtensa [2020/08/31 05:06] – qemu status update 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]]+  * Toolchain build scriptshttps://github.com/jcmvbkbc/xtensa-toolchain-build
  
-  * Toolchain build scripts (view): [[http://jcmvbkbc.spb.ru/git/?p=dumb/xtensa-toolchain-build.git;a=summary]] +  * Kernel and rootfs binary archive: [[http://jcmvbkbc.spb.ru/~dumb/ws/osll/qemu-xtensa/20110829/xtensa-dc232b_kernel_rootfs.tgz]] 
-  * Toolchain build scripts (clone): [[git://jcmvbkbc.spb.ru/dumb/xtensa-toolchain-build.git]] [[http://jcmvbkbc.spb.ru/dumb/xtensa-toolchain-build.git]]+ 
 +  * Official QEMU wiki feature page: [[http://wiki.qemu.org/Features/Xtensa]] 
 + 
 +  * Official xtensa linux wiki page: [[http://wiki.linux-xtensa.org/index.php/Xtensa_on_QEMU]] 
 + 
 +===== Description ===== 
 +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 
-    * [5/5] regression test suite/unit tests; + 
-    * [4/4] accurate interrupt delivery; +===== TODO ===== 
-    extract sample cpu into DAN branch; +  xtensa TCG backend 
-    * re-baseline to the current mainline; + 
-  * [[.:qemu-target-xtensa:pipeline|cycle accurate pipeline]];+===== Implementation status =====
  
-===== Things to do ===== 
   * core/basic opcodes implementation;   * core/basic opcodes implementation;
     * [+] and/or/xor/neg/abs;     * [+] and/or/xor/neg/abs;
Line 29: Line 40:
     * [+] 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 49: Line 62:
       * [+] 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 79: Line 100:
   * 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 116: Line 108:
 </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 
etc/users/jcmvbkbc/qemu-target-xtensa.txt · Last modified: 2024/01/21 19:22 by jcmvbkbc