From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: "Daniel P. Berrangé" <berrange@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Pierrick Bouvier" <pierrick.bouvier@linaro.org>,
"Thomas Huth" <thuth@redhat.com>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>
Subject: [RFC PATCH 12/18] hw/mips/mipssim: Use legacy_binary_is_big_endian()
Date: Wed, 5 Mar 2025 16:39:22 +0100 [thread overview]
Message-ID: <20250305153929.43687-13-philmd@linaro.org> (raw)
In-Reply-To: <20250305153929.43687-1-philmd@linaro.org>
For legacy binaries, legacy_binary_is_big_endian() is equivalent
of the compile time TARGET_BIG_ENDIAN definition.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
hw/mips/mipssim.c | 21 +++++++++------------
1 file changed, 9 insertions(+), 12 deletions(-)
diff --git a/hw/mips/mipssim.c b/hw/mips/mipssim.c
index f94dbdc428b..c0959a9e24f 100644
--- a/hw/mips/mipssim.c
+++ b/hw/mips/mipssim.c
@@ -47,12 +47,6 @@
#define BIOS_SIZE (4 * MiB)
-#if TARGET_BIG_ENDIAN
-#define BIOS_FILENAME "mips_bios.bin"
-#else
-#define BIOS_FILENAME "mipsel_bios.bin"
-#endif
-
static struct _loaderparams {
int ram_size;
const char *kernel_filename;
@@ -65,7 +59,7 @@ typedef struct ResetData {
uint64_t vector;
} ResetData;
-static uint64_t load_kernel(void)
+static uint64_t load_kernel(bool is_big_endian)
{
uint64_t entry, kernel_high, initrd_size;
long kernel_size;
@@ -75,7 +69,7 @@ static uint64_t load_kernel(void)
cpu_mips_kseg0_to_phys, NULL,
&entry, NULL,
&kernel_high, NULL,
- TARGET_BIG_ENDIAN ? ELFDATA2MSB : ELFDATA2LSB,
+ is_big_endian ? ELFDATA2MSB : ELFDATA2LSB,
EM_MIPS, 1, 0);
if (kernel_size < 0) {
error_report("could not load kernel '%s': %s",
@@ -153,14 +147,16 @@ mips_mipssim_init(MachineState *machine)
CPUMIPSState *env;
ResetData *reset_info;
int bios_size;
+ bool is_big_endian = legacy_binary_is_big_endian();
+ const char *default_bios_filename = is_big_endian ? "mips_bios.bin"
+ : "mipsel_bios.bin";
unsigned clock_hz = (legacy_binary_is_64bit() ? 6 : 12) * 1000 * 1000;
cpuclk = clock_new(OBJECT(machine), "cpu-refclk");
clock_set_hz(cpuclk, clock_hz);
/* Init CPUs. */
- cpu = mips_cpu_create_with_clock(machine->cpu_type, cpuclk,
- TARGET_BIG_ENDIAN);
+ cpu = mips_cpu_create_with_clock(machine->cpu_type, cpuclk, is_big_endian);
env = &cpu->env;
reset_info = g_new0(ResetData, 1);
@@ -177,7 +173,8 @@ mips_mipssim_init(MachineState *machine)
/* Map the BIOS / boot exception handler. */
memory_region_add_subregion(address_space_mem, 0x1fc00000LL, bios);
/* Load a BIOS / boot exception handler image. */
- filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, machine->firmware ?: BIOS_FILENAME);
+ filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, machine->firmware
+ ?: default_bios_filename);
if (filename) {
bios_size = load_image_targphys(filename, 0x1fc00000LL, BIOS_SIZE);
g_free(filename);
@@ -199,7 +196,7 @@ mips_mipssim_init(MachineState *machine)
loaderparams.kernel_filename = kernel_filename;
loaderparams.kernel_cmdline = kernel_cmdline;
loaderparams.initrd_filename = initrd_filename;
- reset_info->vector = load_kernel();
+ reset_info->vector = load_kernel(is_big_endian);
}
/* Init CPU internal devices. */
--
2.47.1
next prev parent reply other threads:[~2025-03-05 15:40 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-05 15:39 [RFC PATCH 00/18] hw/microblaze: Quick single binary proof of concept Philippe Mathieu-Daudé
2025-03-05 15:39 ` [RFC PATCH 01/18] hw/xen/hvm: Fix Aarch64 typo Philippe Mathieu-Daudé
2025-03-05 16:53 ` Pierrick Bouvier
2025-03-06 1:35 ` Richard Henderson
2025-03-13 8:10 ` Michael Tokarev
2025-03-13 9:40 ` Philippe Mathieu-Daudé
2025-03-05 15:39 ` [RFC PATCH 02/18] hw/vfio/common: Get target page size using runtime helpers Philippe Mathieu-Daudé
2025-03-06 1:37 ` Richard Henderson
2025-03-05 15:39 ` [RFC PATCH 03/18] include: Poison TARGET_PHYS_ADDR_SPACE_BITS definition Philippe Mathieu-Daudé
2025-03-06 1:37 ` Richard Henderson
2025-03-05 15:39 ` [RFC PATCH 04/18] qemu: Introduce 'qemu/legacy_binary_info.h' Philippe Mathieu-Daudé
2025-03-05 16:59 ` Pierrick Bouvier
2025-03-06 7:26 ` Thomas Huth
2025-03-06 9:26 ` Philippe Mathieu-Daudé
2025-03-06 11:34 ` Paolo Bonzini
2025-03-06 11:52 ` Daniel P. Berrangé
2025-03-06 13:45 ` BALATON Zoltan
2025-03-06 15:15 ` Daniel P. Berrangé
2025-03-06 15:28 ` BALATON Zoltan
2025-03-06 21:45 ` Pierrick Bouvier
2025-03-07 0:46 ` BALATON Zoltan
2025-03-05 19:19 ` Paolo Bonzini
2025-03-06 1:56 ` Richard Henderson
2025-03-06 12:13 ` Daniel P. Berrangé
2025-03-19 14:25 ` Philippe Mathieu-Daudé
2025-03-22 6:59 ` Markus Armbruster
2025-03-05 15:39 ` [RFC PATCH 05/18] qemu: Introduce legacy_binary_is_64bit() helper Philippe Mathieu-Daudé
2025-03-05 15:39 ` [RFC PATCH 06/18] hw/mips/mipssim: Replace TARGET_MIPS64 by legacy_binary_is_64bit() Philippe Mathieu-Daudé
2025-03-05 15:39 ` [RFC PATCH 07/18] hw/mips/malta: " Philippe Mathieu-Daudé
2025-03-05 15:39 ` [RFC PATCH 08/18] hw/i386: Inline TARGET_DEFAULT_CPU_TYPE definition Philippe Mathieu-Daudé
2025-03-05 15:39 ` [RFC PATCH 09/18] hw/ppc/mac: Replace TARGET_PPC64 by legacy_binary_is_64bit() Philippe Mathieu-Daudé
2025-03-05 15:39 ` [RFC PATCH 10/18] qemu: Introduce legacy_binary_is_big_endian() helper Philippe Mathieu-Daudé
2025-03-06 7:28 ` Thomas Huth
2025-03-06 14:10 ` Philippe Mathieu-Daudé
2025-03-05 15:39 ` [RFC PATCH 11/18] hw/mips/jazz: Replace TARGET_BIG_ENDIAN by legacy_binary_is_big_endian Philippe Mathieu-Daudé
2025-03-05 15:39 ` Philippe Mathieu-Daudé [this message]
2025-03-05 15:39 ` [RFC PATCH 13/18] hw/xtensa/sim: " Philippe Mathieu-Daudé
2025-03-05 15:39 ` [RFC PATCH 14/18] hw/xtensa/xtfpga: Check endianness via legacy_binary_is_big_endian() Philippe Mathieu-Daudé
2025-03-05 15:39 ` [RFC PATCH 15/18] hw/microblaze/petalogix_ml605_mmu: Use legacy_binary_is_big_endian() Philippe Mathieu-Daudé
2025-03-05 15:39 ` [RFC PATCH 16/18] hw/microblaze/petalogix_s3adsp1800_mmu: Use legacy_binary_is_big_endian Philippe Mathieu-Daudé
2025-03-05 15:39 ` [RFC PATCH 17/18] meson: Allow symlinking system emulation binaries Philippe Mathieu-Daudé
2025-03-05 15:39 ` [RFC PATCH 18/18] configs/targets: Merge qemu-system-microblaze{el} binaries Philippe Mathieu-Daudé
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250305153929.43687-13-philmd@linaro.org \
--to=philmd@linaro.org \
--cc=alex.bennee@linaro.org \
--cc=berrange@redhat.com \
--cc=pbonzini@redhat.com \
--cc=pierrick.bouvier@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).