mirror of
https://gitlab.com/qemu-project/qemu.git
synced 2025-10-30 07:57:14 +08:00
hw/mips: Evaluate TARGET_BIG_ENDIAN at compile time
Rather than evaluating TARGET_BIG_ENDIAN at preprocessing time via #ifdef'ry, do it in C at compile time Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20250417131004.47205-7-philmd@linaro.org>
This commit is contained in:
@ -59,12 +59,6 @@ enum jazz_model_e {
|
||||
JAZZ_PICA61,
|
||||
};
|
||||
|
||||
#if TARGET_BIG_ENDIAN
|
||||
#define BIOS_FILENAME "mips_bios.bin"
|
||||
#else
|
||||
#define BIOS_FILENAME "mipsel_bios.bin"
|
||||
#endif
|
||||
|
||||
static void main_cpu_reset(void *opaque)
|
||||
{
|
||||
MIPSCPU *cpu = opaque;
|
||||
@ -168,6 +162,8 @@ static void mips_jazz_init_net(IOMMUMemoryRegion *rc4030_dma_mr,
|
||||
static void mips_jazz_init(MachineState *machine,
|
||||
enum jazz_model_e jazz_model)
|
||||
{
|
||||
const char *bios_name = TARGET_BIG_ENDIAN ? "mips_bios.bin"
|
||||
: "mipsel_bios.bin";
|
||||
MemoryRegion *address_space = get_system_memory();
|
||||
char *filename;
|
||||
int bios_size, n;
|
||||
@ -245,7 +241,8 @@ static void mips_jazz_init(MachineState *machine,
|
||||
memory_region_add_subregion(address_space, 0xfff00000LL, bios2);
|
||||
|
||||
/* load the BIOS image. */
|
||||
filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, machine->firmware ?: BIOS_FILENAME);
|
||||
filename = qemu_find_file(QEMU_FILE_TYPE_BIOS,
|
||||
machine->firmware ?: bios_name);
|
||||
if (filename) {
|
||||
bios_size = load_image_targphys(filename, 0xfff00000LL,
|
||||
MAGNUM_BIOS_SIZE);
|
||||
|
||||
@ -94,12 +94,6 @@ typedef struct {
|
||||
bool display_inited;
|
||||
} MaltaFPGAState;
|
||||
|
||||
#if TARGET_BIG_ENDIAN
|
||||
#define BIOS_FILENAME "mips_bios.bin"
|
||||
#else
|
||||
#define BIOS_FILENAME "mipsel_bios.bin"
|
||||
#endif
|
||||
|
||||
#define TYPE_MIPS_MALTA "mips-malta"
|
||||
OBJECT_DECLARE_SIMPLE_TYPE(MaltaState, MIPS_MALTA)
|
||||
|
||||
@ -383,11 +377,7 @@ static uint64_t malta_fpga_read(void *opaque, hwaddr addr,
|
||||
|
||||
/* STATUS Register */
|
||||
case 0x00208:
|
||||
#if TARGET_BIG_ENDIAN
|
||||
val = 0x00000012;
|
||||
#else
|
||||
val = 0x00000010;
|
||||
#endif
|
||||
val = TARGET_BIG_ENDIAN ? 0x00000012 : 0x00000010;
|
||||
break;
|
||||
|
||||
/* JMPRS Register */
|
||||
@ -1177,9 +1167,12 @@ void mips_malta_init(MachineState *machine)
|
||||
target_long bios_size = FLASH_SIZE;
|
||||
/* Load firmware from flash. */
|
||||
if (!dinfo) {
|
||||
const char *bios_name = TARGET_BIG_ENDIAN ? "mips_bios.bin"
|
||||
: "mipsel_bios.bin";
|
||||
|
||||
/* Load a BIOS image. */
|
||||
filename = qemu_find_file(QEMU_FILE_TYPE_BIOS,
|
||||
machine->firmware ?: BIOS_FILENAME);
|
||||
machine->firmware ?: bios_name);
|
||||
if (filename) {
|
||||
bios_size = load_image_targphys(filename, FLASH_ADDRESS,
|
||||
BIOS_SIZE);
|
||||
@ -1197,8 +1190,7 @@ void mips_malta_init(MachineState *machine)
|
||||
* In little endian mode the 32bit words in the bios are swapped,
|
||||
* a neat trick which allows bi-endian firmware.
|
||||
*/
|
||||
#if !TARGET_BIG_ENDIAN
|
||||
{
|
||||
if (!TARGET_BIG_ENDIAN) {
|
||||
uint32_t *end, *addr;
|
||||
const size_t swapsize = MIN(bios_size, 0x3e0000);
|
||||
addr = rom_ptr(FLASH_ADDRESS, swapsize);
|
||||
@ -1211,7 +1203,6 @@ void mips_malta_init(MachineState *machine)
|
||||
addr++;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@ -46,12 +46,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;
|
||||
@ -143,6 +137,8 @@ mips_mipssim_init(MachineState *machine)
|
||||
const char *kernel_filename = machine->kernel_filename;
|
||||
const char *kernel_cmdline = machine->kernel_cmdline;
|
||||
const char *initrd_filename = machine->initrd_filename;
|
||||
const char *bios_name = TARGET_BIG_ENDIAN ? "mips_bios.bin"
|
||||
: "mipsel_bios.bin";
|
||||
char *filename;
|
||||
MemoryRegion *address_space_mem = get_system_memory();
|
||||
MemoryRegion *isa = g_new(MemoryRegion, 1);
|
||||
@ -179,7 +175,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 ?: bios_name);
|
||||
if (filename) {
|
||||
bios_size = load_image_targphys(filename, 0x1fc00000LL, BIOS_SIZE);
|
||||
g_free(filename);
|
||||
|
||||
Reference in New Issue
Block a user