Closed baryluk closed 4 years ago
RAM is mapped between 0 and 0x3fffffff, so the maximum is 1024 Mib, ROM is between 0x40000000 and 0x4fffffff, I/O starts at 0x5000000, which is 1280 MiB and explains the assertion crash.
So we may limit to 1024 MiB at QEMU level. I don't know why we can't use the last 24 MiB, but I suspect a problem in the kernel.
We have an hint in the kernel logs:
ABCFGHIJK
Linux version 5.4.0-rc4-mac-17620-g8d7828aa2b90 (laurent@quad) (gcc version 9.2.1 20190827 (Red Hat Cross 9.2.1-1) (GCC)) #31 Fri Oct 25 18:35:50 CEST 2019
Saving 128 bytes of bootinfo
Detected Macintosh model: 35
Apple Macintosh Quadra 800
Built 1 zonelists, mobility grouping on. Total pages: 259840
259840 * 4 kiB / 1 MiB = 1015 MiB
@vivier I think we can close this issue now as this is a hardware limitation, nothing that qemu can change if it emulates a Quadra 800. And since we have the new m68k-virt
machine that allows up to 3.2 GB of RAM, the RAM size limitation no longer exists in qemu-m68k.
@vivier I think we can close this issue now as this is a hardware limitation, nothing that qemu can change if it emulates a Quadra 800. And since we have the new
m68k-virt
machine that allows up to 3.2 GB of RAM, the RAM size limitation no longer exists in qemu-m68k.
Yes, and moreover I think the bug is in the kernel
-m 1000M
works.-m 1024M
doesn't.-m 1015M
works.-m 1016M
doesn't.I guess it is either not supported completly due to architecture limitations, or some memory is mapped incorrectly.
One option is to fix it, another (if it is arch issue), to refuse to start if the memory requrested is too big, or something.
-m 1281M
refuses to start:-m 1280M
does start but crashes.However, with
-m 1200M
, it does work:and no crashes.
Tested with Linux 5.3.0-1 and Linux 4.19.0
Here are runs with -m 1024M, which are similar to runs with
-m 1280M
.Linux 5.3.0-1:
Linux 4.19.0: