All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] scripts/runqemu: qemumips support up to 2GiB RAM
@ 2018-07-04  6:56 He Zhe
  2018-07-04  6:56 ` [PATCH 2/2] scripts/runqemu: fix qemumips64 with 512M RAM caused kernel panic He Zhe
  2018-07-04 13:29 ` [PATCH 1/2] scripts/runqemu: qemumips support up to 2GiB RAM Khem Raj
  0 siblings, 2 replies; 9+ messages in thread
From: He Zhe @ 2018-07-04  6:56 UTC (permalink / raw)
  To: openembedded-core

OE uses qemumips to simulate a Malta board by default.

As upstream qemu introduced:
https://git.qemu.org/?p=qemu.git;a=commit;h=94c2b6aff43cdfcfdfb552773a6b6b973a72ef0b

The Malta board can support up to 2GiB of RAM which should
be able to boot a Linux kernel built with CONFIG_HIGHMEM
enabled and passing "-m 2048" to QEMU and appending the
following kernel parameters:
...
mem=256M@0x0 mem=256M@0x90000000 mem=1536M@0x20000000
...

But the following commit in kernel broke above mem=X@Y setting
which added the memory as reserved memory area.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=73fbc1eba7ffa3bf0ad12486232a8a1edb4e4411
...
commit 73fbc1eba7ffa3bf0ad12486232a8a1edb4e4411
Author: Marcin Nowakowski <marcin.nowakowski@imgtec.com>
Date:   Wed Nov 23 14:43:49 2016 +0100

    MIPS: fix mem=X@Y commandline processing
...

So remove `mem=*' to disable user-defined physical RAM map
which let kernel itself caculates memory ranges.

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: He Zhe <zhe.he@windriver.com>
---
 scripts/runqemu | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/scripts/runqemu b/scripts/runqemu
index de42d0f323..597e7e9a79 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -668,7 +668,10 @@ class BaseConfig(object):
             logger.info('QB_MEM is not set, use 512M by default')
             self.set('QB_MEM', '-m 512')
 
-        self.kernel_cmdline_script += ' mem=%s' % self.get('QB_MEM').replace('-m','').strip() + 'M'
+        mach = self.get('MACHINE')
+        if mach != 'qemumips':
+            self.kernel_cmdline_script += ' mem=%s' % self.get('QB_MEM').replace('-m','').strip() + 'M'
+
         self.qemu_opt_script += ' %s' % self.get('QB_MEM')
 
     def check_tcpserial(self):
-- 
2.11.0



^ permalink raw reply related	[flat|nested] 9+ messages in thread
* [PATCH 1/2] scripts/runqemu: qemumips support up to 2GiB RAM
@ 2017-12-06  2:46 Hongxu Jia
  2017-12-06  2:57 ` Hongxu Jia
  2017-12-20  1:53 ` Hongxu Jia
  0 siblings, 2 replies; 9+ messages in thread
From: Hongxu Jia @ 2017-12-06  2:46 UTC (permalink / raw)
  To: openembedded-core, ross.burton; +Cc: bruce.ashfield

OE uses qemumips to simulate a Malta board by default.

As upstream qemu introduced:
https://git.qemu.org/?p=qemu.git;a=commit;h=94c2b6aff43cdfcfdfb552773a6b6b973a72ef0b

The Malta board can support up to 2GiB of RAM which should
be able to boot a Linux kernel built with CONFIG_HIGHMEM
enabled and passing "-m 2048" to QEMU and appending the
following kernel parameters:
...
mem=256M@0x0 mem=256M@0x90000000 mem=1536M@0x20000000
...

But the following commit in kernel broke above mem=X@Y setting
which added the memory as reserved memory area.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=73fbc1eba7ffa3bf0ad12486232a8a1edb4e4411
...
commit 73fbc1eba7ffa3bf0ad12486232a8a1edb4e4411
Author: Marcin Nowakowski <marcin.nowakowski@imgtec.com>
Date:   Wed Nov 23 14:43:49 2016 +0100

    MIPS: fix mem=X@Y commandline processing
...

So remove `mem=*' to disable user-defined physical RAM map
which let kernel itself caculates memory ranges.

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
 scripts/runqemu | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/scripts/runqemu b/scripts/runqemu
index f2b4b3c..0ae2f85 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -658,7 +658,10 @@ class BaseConfig(object):
             logger.info('QB_MEM is not set, use 512M by default')
             self.set('QB_MEM', '-m 512')
 
-        self.kernel_cmdline_script += ' mem=%s' % self.get('QB_MEM').replace('-m','').strip() + 'M'
+        mach = self.get('MACHINE')
+        if mach != 'qemumips':
+            self.kernel_cmdline_script += ' mem=%s' % self.get('QB_MEM').replace('-m','').strip() + 'M'
+
         self.qemu_opt_script += ' %s' % self.get('QB_MEM')
 
     def check_tcpserial(self):
-- 
2.8.1



^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2018-07-05 15:39 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-04  6:56 [PATCH 1/2] scripts/runqemu: qemumips support up to 2GiB RAM He Zhe
2018-07-04  6:56 ` [PATCH 2/2] scripts/runqemu: fix qemumips64 with 512M RAM caused kernel panic He Zhe
2018-07-04 13:29 ` [PATCH 1/2] scripts/runqemu: qemumips support up to 2GiB RAM Khem Raj
2018-07-05  9:37   ` He Zhe
2018-07-05 15:39     ` Khem Raj
  -- strict thread matches above, loose matches on Subject: below --
2017-12-06  2:46 Hongxu Jia
2017-12-06  2:57 ` Hongxu Jia
2017-12-20  1:53 ` Hongxu Jia
2018-01-31  9:16   ` Hongxu Jia

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.