QEMU is a piece of software that would be extremely valuable to us at libre-soc because it provides a way to test that any given software or full OS image is fully SFFS compliant by emulating a chip that in itself is SFFS compliant. However, QEMU has no such chip to emulate and the closest thing is POWER7 in little endian mode, which lacks VSX but also lacks the v3.0 ISA and is unusable for our purposes.
qemu needs to be modifed so that the **GUEST** operating system has no VSX or other non-SFFS instructions. ***NOT*** repeat ***NOT*** "the host qemu binary is compiled for SFFS".
Will write up a full wiki page documenting everything we have tried with QEMU, how and where it failed, and what steps we can take for the future to make it work.
Attempts were made to patch a new chip into QEMU but given the many assumptions that any LE chip is supposed to have at least AltiVec and VSX, it proved to be a nontrivial task, and only research was conducted on how and whether this can be done at all. The final solution is to add something similar to x86(_64) in the CPU features flags, where they use "-sse,-avx" to disable SSE and AVX respectively, and apply those to POWER since the features flags are completely missing from POWER chips. In other words, the code is there to add features flags but needs a considerable amount of patching to the TCG emulator and/or KVM implementation for it to work.
Wiki page is up: https://libre-soc.org/SFFS/qemu
(In reply to Sadoon Albader from comment #4) > Wiki page is up: https://libre-soc.org/SFFS/qemu awesome i have linked it as the URL, and will crossreference it shortly. also i mentioned what Toshaan said in the earlier conversation, that the reason compiling for POWER7 failed is because that is v2.07 and some v2.07 instructions are deprecated in v3.0 https://git.libre-soc.org/?p=libreriscv.git;a=commitdiff;h=170518402a98b9d119974cfa89be33265db98250
formatted to 80 chars per line, removed absolute URL (use wiki links), cross-ref to bugtracker was already added (awesome) https://git.libre-soc.org/?p=libreriscv.git;a=commitdiff;h=5daf8c95