Coder Social home page Coder Social logo

tillitis / qemu Goto Github PK

View Code? Open in Web Editor NEW
7.0 7.0 3.0 226.21 MB

Fork of https://gitlab.com/qemu-project/qemu

License: Other

Emacs Lisp 0.01% Vim Script 0.01% GDB 0.01% Python 3.83% Dockerfile 0.01% Makefile 0.12% C 79.21% Meson 0.44% C++ 13.24% Assembly 0.53% Haxe 0.39% Shell 1.66% Pawn 0.02% NSIS 0.01% Perl 0.28% SmPL 0.03% SourcePawn 0.08% POV-Ray SDL 0.06% Objective-C 0.09% GLSL 0.01%

qemu's People

Contributors

afaerber avatar agraf avatar aliguori avatar aurel32 avatar berrange avatar blueswirl avatar bonzini avatar dagrh avatar davidhildenbrand avatar dgibson avatar ebblake avatar edgarigl avatar ehabkost avatar elmarco avatar gkurz avatar huth avatar jan-kiszka avatar jnsnow avatar kraxel avatar legoater avatar mcayland avatar mstsirkin avatar philmd avatar pm215 avatar rth7680 avatar stefanharh avatar stsquad avatar stweil avatar vivier avatar xanclic avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

qemu's Issues

Builds only with warnings

With a modern C compiler we get warnings when building qemu but not originating from our code.

The only way to build is to:

../configure --target-list=riscv32-softmmu --disable-werror

So that warnings are not treated as errors. These warnings are possibly already fixed upstream so maybe update here?

FAILED: libqemuutil.a.p/qobject_block-qdict.c.o 
cc -m64 -mcx16 -Ilibqemuutil.a.p -I. -I.. -Isubprojects/libvhost-user -I../subprojects/libvhost-user -Iqapi -Itrace -Iui -Iui/shader -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-4 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gio-unix-2.0 -I/usr/include/p11-kit-1 -I/usr/include/pixman-1 -fdiagnostics-color=auto -Wall -Winvalid-pch -Werror -std=gnu11 -O2 -g -isystem /home/mc/tillitis/git/qemu/linux-headers -isystem linux-headers -iquote . -iquote /home/mc/tillitis/git/qemu -iquote /home/mc/tillitis/git/qemu/include -iquote /home/mc/tillitis/git/qemu/disas/libvixl -iquote /home/mc/tillitis/git/qemu/tcg/i386 -pthread -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wold-style-declaration -Wold-style-definition -Wtype-limits -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wempty-body -Wnested-externs -Wendif-labels -Wexpansion-to-defined -Wimplicit-fallthrough=2 -Wno-missing-include-dirs -Wno-shift-negative-value -Wno-psabi -fstack-protector-strong -fPIE -MD -MQ libqemuutil.a.p/qobject_block-qdict.c.o -MF libqemuutil.a.p/qobject_block-qdict.c.o.d -o libqemuutil.a.p/qobject_block-qdict.c.o -c ../qobject/block-qdict.c
In file included from /home/mc/tillitis/git/qemu/include/qapi/qmp/qdict.h:16,
                 from /home/mc/tillitis/git/qemu/include/block/qdict.h:13,
                 from ../qobject/block-qdict.c:11:
/home/mc/tillitis/git/qemu/include/qapi/qmp/qobject.h: In function ‘qdict_array_split’:
/home/mc/tillitis/git/qemu/include/qapi/qmp/qobject.h:49:17: error: ‘subqdict’ may be used uninitialized [-Werror=maybe-uninitialized]
   49 |     typeof(obj) _obj = (obj);                                   \
      |                 ^~~~
../qobject/block-qdict.c:227:16: note: ‘subqdict’ declared here
  227 |         QDict *subqdict;
      |                ^~~~~~~~
cc1: all warnings being treated as errors

qemu: Does the rv32 support Zmmul?

We want to go to Zmmul and not use division. What do we do with the qemu model? Does the qemu rv32 support Zmmul? Do we just pretend and use Zmmul when compiling? Is that OK?

onto QEMU v8.0.0

Branch tk1-on-v8.0.0 contains a new tk1 branch that is based on QEMU v8.0.0. Done with the help of Adam Joseph. It seems to work well.

This solves #3 #13
There should also be possible to use Zmmul instruction set wanted in #8

Implement TRNG

Implement the random number generator in the qemu model.

According to software.md there is:

  • TRNG_NAME0
  • TRNG_NAME1
  • TRNG_VERSION
  • TRNG_STATUS
  • TRNG_SAMPLE_RATE
  • TRNG_ENTROPY

mta1_mkdf_mem.h also says MTA1_MKDF_MMIO_TRNG_STATUS_READY_BIT = 0,.

Do we need real random data in the model? If so, do we just read from the host's random pool? If not, would, say returning 4 (number from a throw with fair dice) each time be OK?

In the software.md the firmware protocol includes CMD_TRNG_DATA and _STATUS. Do we really need those? I don't think so. If we want to get at the TRNG we can just write an app, right? I suggest we remove these from the document

rebase against upstream qemu?

Hi, I'm packaging your qemu fork for nixpkgs, and was wondering if you could perhaps rebase against a recent version of qemu (like 7.2.18.0.0?).

Currently your fork has most of its changes in one monolithic commit dcd8319 which also seems to include debris... it modifies the Makefile for some PC BIOS option rom functionality (pc-bios/optionrom/Makefile)... I am pretty sure tillitis cannot execute x86 option roms, but maybe I'm wrong about that.

Thanks!

writing bytes to CDI gives erroneous result on hw, should on qemu too

mc discovered that in hardware, writing bytes to CDI in this manner:

uint32_t cdi_writetest[CDI_WORDS] = {0xdeafbeef, 0xdeafbeef, 0xdeafbeef,
                                        0xdeafbeef, 0xdeafbeef, 0xdeafbeef,
                                         0xdeafbeef, 0xdeafbeef};
memcpy_s((void *)cdi, CDI_WORDS * 4, cdi_writetest, CDI_WORDS * 4);
puts("cdi: \r\n");
hexdump((uint8_t *)cdi, CDI_WORDS * 4);

results in CDI:

dededededededede0000000000000000
00000000000000000000000000000000

compared to writing words:

efbeafdeefbeafdeefbeafdeefbeafde
efbeafdeefbeafdeefbeafdeefbeafde

Perhaps QEMU should behave like this too

Implement TIMER

Implement the timer in the qemu model of TK1.

According to software.md at least these MMIO addresses:

  • TIMER_NAME0
  • TIMER_NAME1
  • TIMER_VERSION
  • TIMER_CTRL
  • TIMER_STATUS
  • TIMER_PRESCALER
  • TIMER_TIMER

Also update the software.md table!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.