[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 2/2] hw/arm: remove exit(1) in case of missing ROM
From: |
Pavel Dovgalyuk |
Subject: |
[PATCH v2 2/2] hw/arm: remove exit(1) in case of missing ROM |
Date: |
Tue, 21 Jul 2020 09:15:11 +0300 |
User-agent: |
StGit/0.17.1-dirty |
This patch updates ARM-based machines to allow starting them without ROM.
In this case CPU starts to execute instructions from the empty memory,
but QEMU allows introspecting the machine configuration.
Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
--
v2:
- useless error reports were dropped (suggested by Peter Maydell)
---
hw/arm/digic_boards.c | 8 ++++++--
hw/arm/gumstix.c | 12 ------------
hw/arm/omap_sx1.c | 5 -----
hw/arm/palm.c | 8 +-------
4 files changed, 7 insertions(+), 26 deletions(-)
diff --git a/hw/arm/digic_boards.c b/hw/arm/digic_boards.c
index d5524d3e72..4f39a001bb 100644
--- a/hw/arm/digic_boards.c
+++ b/hw/arm/digic_boards.c
@@ -101,8 +101,12 @@ static void digic_load_rom(DigicState *s, hwaddr addr,
char *fn = qemu_find_file(QEMU_FILE_TYPE_BIOS, filename);
if (!fn) {
- error_report("Couldn't find rom image '%s'.", filename);
- exit(1);
+ if (bios_name) {
+ error_report("Couldn't find rom image '%s'.", filename);
+ exit(1);
+ } else {
+ return;
+ }
}
rom_size = load_image_targphys(fn, addr, max_size);
diff --git a/hw/arm/gumstix.c b/hw/arm/gumstix.c
index 3a4bc332c4..fb9fd6ab9c 100644
--- a/hw/arm/gumstix.c
+++ b/hw/arm/gumstix.c
@@ -59,12 +59,6 @@ static void connex_init(MachineState *machine)
cpu = pxa255_init(address_space_mem, connex_ram);
dinfo = drive_get(IF_PFLASH, 0, 0);
- if (!dinfo && !qtest_enabled()) {
- error_report("A flash image must be given with the "
- "'pflash' parameter");
- exit(1);
- }
-
if (!pflash_cfi01_register(0x00000000, "connext.rom", connex_rom,
dinfo ? blk_by_legacy_dinfo(dinfo) : NULL,
sector_len, 2, 0, 0, 0, 0, 0)) {
@@ -89,12 +83,6 @@ static void verdex_init(MachineState *machine)
cpu = pxa270_init(address_space_mem, verdex_ram, machine->cpu_type);
dinfo = drive_get(IF_PFLASH, 0, 0);
- if (!dinfo && !qtest_enabled()) {
- error_report("A flash image must be given with the "
- "'pflash' parameter");
- exit(1);
- }
-
if (!pflash_cfi01_register(0x00000000, "verdex.rom", verdex_rom,
dinfo ? blk_by_legacy_dinfo(dinfo) : NULL,
sector_len, 2, 0, 0, 0, 0, 0)) {
diff --git a/hw/arm/omap_sx1.c b/hw/arm/omap_sx1.c
index 57829b3744..ea3236cfb7 100644
--- a/hw/arm/omap_sx1.c
+++ b/hw/arm/omap_sx1.c
@@ -190,11 +190,6 @@ static void sx1_init(MachineState *machine, const int
version)
OMAP_CS1_BASE, &cs[1]);
}
- if (!machine->kernel_filename && !fl_idx && !qtest_enabled()) {
- error_report("Kernel or Flash image must be specified");
- exit(1);
- }
-
/* Load the kernel. */
arm_load_kernel(mpu->cpu, machine, &sx1_binfo);
diff --git a/hw/arm/palm.c b/hw/arm/palm.c
index e7bc9ea4c6..8225c252c4 100644
--- a/hw/arm/palm.c
+++ b/hw/arm/palm.c
@@ -231,7 +231,7 @@ static void palmte_init(MachineState *machine)
static uint32_t cs1val = 0x0000e1a0;
static uint32_t cs2val = 0x0000e1a0;
static uint32_t cs3val = 0xe1a0e1a0;
- int rom_size, rom_loaded = 0;
+ int rom_size;
MachineClass *mc = MACHINE_GET_CLASS(machine);
MemoryRegion *flash = g_new(MemoryRegion, 1);
MemoryRegion *cs = g_new(MemoryRegion, 4);
@@ -284,7 +284,6 @@ static void palmte_init(MachineState *machine)
if (rom_size > 0) {
rom_size = load_image_targphys(option_rom[0].name, OMAP_CS0_BASE,
flash_size);
- rom_loaded = 1;
}
if (rom_size < 0) {
fprintf(stderr, "%s: error loading '%s'\n",
@@ -292,11 +291,6 @@ static void palmte_init(MachineState *machine)
}
}
- if (!rom_loaded && !machine->kernel_filename && !qtest_enabled()) {
- fprintf(stderr, "Kernel or ROM image must be specified\n");
- exit(1);
- }
-
/* Load the kernel. */
arm_load_kernel(mpu->cpu, machine, &palmte_binfo);
}