提升 QEMU 中 MIPS-Malta 机器的 RAM 容量上限

目前 QEMU 中 MIPS-Malta 机器的 RAM 容量被限制在了最高 256M,原因是其外围设备被映射在了物理地址空间的 0x10000000 – 0x20000000 之间。为了使用更多的 RAM,需要同时修改机器的“硬件”配置和内核中的地址空间映射表来使用高端内存。为此需要使用 MIPS-5Kf 处理器且需要使用64位的内核,因为要访问 0x20000000 之后的物理地址空间。

在 QEMU 中,当 RAM 配置 <= 256M 时,只使用低 256M物理地址空间来映射;当 RAM 配置 > 256M 时,将其余部分映射到 0x20000000 之后,配置为:

0x00000000 - 0x0fffffff => RAM
0x10000000 - 0x1fffffff => 设备
0x20000000 -            => RAM

在 内核 中,增加一个内存映射表项,来标记 0x20000000 – 0x? 为 BOOT_MEM_RAM。

QEMU 补丁 => https://github.com/heiher/hev-patches/blob/master/qemu/qemu-mips-malta.diff
Kernel 补丁 => https://github.com/heiher/hev-patches/blob/master/linux/mips-malta.diff
Kernel 配置 => http://heiher.info/sftp/files/config.malta

目前,最高可设置为 2047M 的 RAM。

Over!

Leave a Reply

Your email address will not be published. Required fields are marked *