tillitis / qemu Goto Github PK
View Code? Open in Web Editor NEWFork of https://gitlab.com/qemu-project/qemu
License: Other
Fork of https://gitlab.com/qemu-project/qemu
License: Other
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
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?
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
Add special firmware-only RAM of 1024 bytes.
If we can't run a Docker container for the qemu on macOS, perhaps just publish a binary or two.
Implement the random number generator in the qemu model.
According to software.md there is:
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
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!
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 the timer in the qemu model of TK1.
According to software.md
at least these MMIO addresses:
Also update the software.md table!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.