[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Question about using qemu with multiple, different CPUs (or alternatives

From: Gabriel Marcano
Subject: Question about using qemu with multiple, different CPUs (or alternatives)
Date: Thu, 27 Aug 2020 14:17:14 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0


I have an interesting situation on my hands. On my free time I am involved in the Nintendo 3DS homebrew community, and one thing that we've wanted to do for some time is emulating the low-level system so that we can test (and debug) our own programs on our PCs instead of having to transfer them over to the 3DS to run them (and pray; no remote debugging support on bare metal). Someone (b1l1s) a while back began implementing some 3DS hardware support in qemu, and it was simple enough to run some basic programs that ran on the actual console. That said, this only focused on one of the CPUs of the 3DS.

The 3DS has actually 3 different CPUs in it-- an ARM7, and ARM9 (arm946 I think), and an ARM11 (mpcore) CPU, each having access to slightly different parts of the hardware, and each CPU has different capabilities and speeds (e.g. the ARM9 has an MPU and not an MMU, while the ARM11 does have an MMU). On hardware, the way the CPUs communicate with each other is over a small FIFO queue with interrupt support, and some memory is shared while other is not, and each CPU has their own map of memory (so really, it's like 3 computers in one, sharing some peripherals).

My question is, is it possible use qemu to emulate this mess of a system? I looked into maybe using shared memory, but that exposes the shared memory across multiple instances of qemu as a PCI device...

Any suggestions or ideas would be appreciated. Thanks!

Gabriel Marcano

reply via email to

[Prev in Thread] Current Thread [Next in Thread]