Am 2017-07-17 17:18, schrieb Programmingkid:
On Jul 17, 2017, at 10:56 AM, Programmingkid
<programmingk...@gmail.com> wrote:
On Jul 17, 2017, at 1:40 AM, Michael Walle <mich...@walle.cc> wrote:
Am 2017-07-09 17:39, schrieb Programmingkid:
I just made a documentation page for the LatticeMicro32 target. I
need
to know its current status, how much of this system is implemented,
what software runs on it. If anyone could supply more information
that
would be appreciated. Pictures of this target running would be great
as well. Thanks.
Here is the page:
http://wiki.qemu.org/Documentation/Platforms/LatticeMico32
Hi,
thank you for your efforts. I have to admit that the current status
is unknown.
I've just compiled the latest head and it looks like the BQL is
missing for the interrupt helpers. I'll post a patch soon. With the
patch, the basic stuff is working but there seems to be an issue with
OpenGL.
You can read the quickstart instructions at:
http://milkymist.walle.cc/README.qemu
The flash image isn't working because it will boot right into the
visualization mode, which is using the OpenGL stuff. The "-kernel
flickernoise" method is working though. You can get the flickernoise
binary at:
http://milkymist.walle.cc/updates/current/flickernoise
Besides the milkymist emulation, there is plain lm32 emulation based
on the Lattice reference design which should be ok, because the tests
are working (make -C tests/tcg/lm32 check)
-michael
Thank you for all this information. It has been added to the wiki
page.
I just tried qemu-system-lm32 and it crashed.
Command-line: qemu-system-lm32 -M milkymist -kernel flickernoise
Error message: audio: Failed to create voice `mm_ac97.in'
**
ERROR: /accel/tcg/tcg-all.c:42:tcg_handle_interrupt: assertion failed:
(qemu_mutex_iothread_locked())
Abort trap: 6
Host: Mac OS 10.12.5
As I said before, I guess the BQL is missing here. Try the following
patch:
diff --git a/target/lm32/op_helper.c b/target/lm32/op_helper.c
index 2177c8ad12..93b8d09794 100644
--- a/target/lm32/op_helper.c
+++ b/target/lm32/op_helper.c
@@ -102,12 +102,16 @@ void HELPER(wcsr_dc)(CPULM32State *env, uint32_t
dc)
void HELPER(wcsr_im)(CPULM32State *env, uint32_t im)
{
+ qemu_mutex_lock_iothread();
lm32_pic_set_im(env->pic_state, im);
+ qemu_mutex_unlock_iothread();
}
void HELPER(wcsr_ip)(CPULM32State *env, uint32_t im)
{
+ qemu_mutex_lock_iothread();
lm32_pic_set_ip(env->pic_state, im);
+ qemu_mutex_unlock_iothread();
}
void HELPER(wcsr_jtx)(CPULM32State *env, uint32_t jtx)
-michael