hw/arm: Don't fail qtest due to missing SD card in -nodefaults mode
When running omap1/2 or pxa2xx based ARM machines with -nodefaults, they bail out immediately complaining about a "missing SecureDigital device". That's not how the "default" devices in vl.c are meant to work - it should be possible for a board to also start up without default devices. So let's turn the error message and exit() into a warning instead. Signed-off-by: Thomas Huth <thuth@redhat.com> Message-id: 1525326811-3233-1-git-send-email-thuth@redhat.com Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
a8766e3172
commit
a82929a251
|
@ -30,6 +30,7 @@
|
||||||
#include "hw/arm/soc_dma.h"
|
#include "hw/arm/soc_dma.h"
|
||||||
#include "sysemu/block-backend.h"
|
#include "sysemu/block-backend.h"
|
||||||
#include "sysemu/blockdev.h"
|
#include "sysemu/blockdev.h"
|
||||||
|
#include "sysemu/qtest.h"
|
||||||
#include "qemu/range.h"
|
#include "qemu/range.h"
|
||||||
#include "hw/sysbus.h"
|
#include "hw/sysbus.h"
|
||||||
#include "qemu/cutils.h"
|
#include "qemu/cutils.h"
|
||||||
|
@ -3987,12 +3988,11 @@ struct omap_mpu_state_s *omap310_mpu_init(MemoryRegion *system_memory,
|
||||||
omap_findclk(s, "dpll3"));
|
omap_findclk(s, "dpll3"));
|
||||||
|
|
||||||
dinfo = drive_get(IF_SD, 0, 0);
|
dinfo = drive_get(IF_SD, 0, 0);
|
||||||
if (!dinfo) {
|
if (!dinfo && !qtest_enabled()) {
|
||||||
error_report("missing SecureDigital device");
|
warn_report("missing SecureDigital device");
|
||||||
exit(1);
|
|
||||||
}
|
}
|
||||||
s->mmc = omap_mmc_init(0xfffb7800, system_memory,
|
s->mmc = omap_mmc_init(0xfffb7800, system_memory,
|
||||||
blk_by_legacy_dinfo(dinfo),
|
dinfo ? blk_by_legacy_dinfo(dinfo) : NULL,
|
||||||
qdev_get_gpio_in(s->ih[1], OMAP_INT_OQN),
|
qdev_get_gpio_in(s->ih[1], OMAP_INT_OQN),
|
||||||
&s->drq[OMAP_DMA_MMC_TX],
|
&s->drq[OMAP_DMA_MMC_TX],
|
||||||
omap_findclk(s, "mmc_ck"));
|
omap_findclk(s, "mmc_ck"));
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
#include "cpu.h"
|
#include "cpu.h"
|
||||||
#include "sysemu/block-backend.h"
|
#include "sysemu/block-backend.h"
|
||||||
#include "sysemu/blockdev.h"
|
#include "sysemu/blockdev.h"
|
||||||
|
#include "sysemu/qtest.h"
|
||||||
#include "hw/boards.h"
|
#include "hw/boards.h"
|
||||||
#include "hw/hw.h"
|
#include "hw/hw.h"
|
||||||
#include "hw/arm/arm.h"
|
#include "hw/arm/arm.h"
|
||||||
|
@ -2486,12 +2487,11 @@ struct omap_mpu_state_s *omap2420_mpu_init(MemoryRegion *sysmem,
|
||||||
s->drq[OMAP24XX_DMA_GPMC]);
|
s->drq[OMAP24XX_DMA_GPMC]);
|
||||||
|
|
||||||
dinfo = drive_get(IF_SD, 0, 0);
|
dinfo = drive_get(IF_SD, 0, 0);
|
||||||
if (!dinfo) {
|
if (!dinfo && !qtest_enabled()) {
|
||||||
error_report("missing SecureDigital device");
|
warn_report("missing SecureDigital device");
|
||||||
exit(1);
|
|
||||||
}
|
}
|
||||||
s->mmc = omap2_mmc_init(omap_l4tao(s->l4, 9),
|
s->mmc = omap2_mmc_init(omap_l4tao(s->l4, 9),
|
||||||
blk_by_legacy_dinfo(dinfo),
|
dinfo ? blk_by_legacy_dinfo(dinfo) : NULL,
|
||||||
qdev_get_gpio_in(s->ih[0], OMAP_INT_24XX_MMC_IRQ),
|
qdev_get_gpio_in(s->ih[0], OMAP_INT_24XX_MMC_IRQ),
|
||||||
&s->drq[OMAP24XX_DMA_MMC1_TX],
|
&s->drq[OMAP24XX_DMA_MMC1_TX],
|
||||||
omap_findclk(s, "mmc_fclk"), omap_findclk(s, "mmc_iclk"));
|
omap_findclk(s, "mmc_fclk"), omap_findclk(s, "mmc_iclk"));
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
#include "chardev/char-fe.h"
|
#include "chardev/char-fe.h"
|
||||||
#include "sysemu/block-backend.h"
|
#include "sysemu/block-backend.h"
|
||||||
#include "sysemu/blockdev.h"
|
#include "sysemu/blockdev.h"
|
||||||
|
#include "sysemu/qtest.h"
|
||||||
#include "qemu/cutils.h"
|
#include "qemu/cutils.h"
|
||||||
|
|
||||||
static struct {
|
static struct {
|
||||||
|
@ -2095,12 +2096,11 @@ PXA2xxState *pxa270_init(MemoryRegion *address_space,
|
||||||
s->gpio = pxa2xx_gpio_init(0x40e00000, s->cpu, s->pic, 121);
|
s->gpio = pxa2xx_gpio_init(0x40e00000, s->cpu, s->pic, 121);
|
||||||
|
|
||||||
dinfo = drive_get(IF_SD, 0, 0);
|
dinfo = drive_get(IF_SD, 0, 0);
|
||||||
if (!dinfo) {
|
if (!dinfo && !qtest_enabled()) {
|
||||||
error_report("missing SecureDigital device");
|
warn_report("missing SecureDigital device");
|
||||||
exit(1);
|
|
||||||
}
|
}
|
||||||
s->mmc = pxa2xx_mmci_init(address_space, 0x41100000,
|
s->mmc = pxa2xx_mmci_init(address_space, 0x41100000,
|
||||||
blk_by_legacy_dinfo(dinfo),
|
dinfo ? blk_by_legacy_dinfo(dinfo) : NULL,
|
||||||
qdev_get_gpio_in(s->pic, PXA2XX_PIC_MMC),
|
qdev_get_gpio_in(s->pic, PXA2XX_PIC_MMC),
|
||||||
qdev_get_gpio_in(s->dma, PXA2XX_RX_RQ_MMCI),
|
qdev_get_gpio_in(s->dma, PXA2XX_RX_RQ_MMCI),
|
||||||
qdev_get_gpio_in(s->dma, PXA2XX_TX_RQ_MMCI));
|
qdev_get_gpio_in(s->dma, PXA2XX_TX_RQ_MMCI));
|
||||||
|
@ -2220,12 +2220,11 @@ PXA2xxState *pxa255_init(MemoryRegion *address_space, unsigned int sdram_size)
|
||||||
s->gpio = pxa2xx_gpio_init(0x40e00000, s->cpu, s->pic, 85);
|
s->gpio = pxa2xx_gpio_init(0x40e00000, s->cpu, s->pic, 85);
|
||||||
|
|
||||||
dinfo = drive_get(IF_SD, 0, 0);
|
dinfo = drive_get(IF_SD, 0, 0);
|
||||||
if (!dinfo) {
|
if (!dinfo && !qtest_enabled()) {
|
||||||
error_report("missing SecureDigital device");
|
warn_report("missing SecureDigital device");
|
||||||
exit(1);
|
|
||||||
}
|
}
|
||||||
s->mmc = pxa2xx_mmci_init(address_space, 0x41100000,
|
s->mmc = pxa2xx_mmci_init(address_space, 0x41100000,
|
||||||
blk_by_legacy_dinfo(dinfo),
|
dinfo ? blk_by_legacy_dinfo(dinfo) : NULL,
|
||||||
qdev_get_gpio_in(s->pic, PXA2XX_PIC_MMC),
|
qdev_get_gpio_in(s->pic, PXA2XX_PIC_MMC),
|
||||||
qdev_get_gpio_in(s->dma, PXA2XX_RX_RQ_MMCI),
|
qdev_get_gpio_in(s->dma, PXA2XX_RX_RQ_MMCI),
|
||||||
qdev_get_gpio_in(s->dma, PXA2XX_TX_RQ_MMCI));
|
qdev_get_gpio_in(s->dma, PXA2XX_TX_RQ_MMCI));
|
||||||
|
|
Loading…
Reference in a new issue