xemu/hw/arm
Igor Mammedov 533eb415df arm/aspeed: actually check RAM size
It's supposed that SOC will check if "-m" provided
RAM size is valid by setting "ram-size" property and
then board would read back valid (possibly corrected
value) to map RAM MemoryReging with valid size.
It isn't doing so, since check is called only
indirectly from
  aspeed_sdmc_reset()->asc->compute_conf()
or much later when guest writes to configuration
register.

So depending on "-m" value QEMU end-ups with a warning
and an invalid MemoryRegion size allocated and mapped.
(examples:
 -M ast2500-evb -m 1M
    0000000080000000-000000017ffffffe (prio 0, i/o): aspeed-ram-container
      0000000080000000-00000000800fffff (prio 0, ram): ram
      0000000080100000-00000000bfffffff (prio 0, i/o): max_ram
 -M ast2500-evb -m 3G
    0000000080000000-000000017ffffffe (prio 0, i/o): aspeed-ram-container
      0000000080000000-000000013fffffff (prio 0, ram): ram
      [DETECTED OVERFLOW!] 0000000140000000-00000000bfffffff (prio 0, i/o): max_ram
)
On top of that sdmc falls back and reports to guest
"default" size, it thinks machine should have.

This patch makes ram-size check actually work and
changes behavior from a warning later on during
machine reset to error_fatal at the moment SOC.ram-size
is set so user will have to fix RAM size on CLI
to start machine.

It also gets out of the way mutable ram-size logic,
so we could consolidate RAM allocation logic around
pre-allocated hostmem backend (supplied by user or
auto created by generic machine code depending on
supplied -m/mem-path/mem-prealloc options.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20200219160953.13771-10-imammedo@redhat.com>
2020-02-19 16:49:54 +00:00
..
Kconfig hw/misc: Add the STM32F4xx EXTI device 2020-01-17 14:09:29 +00:00
Makefile.objs hw/arm: Add the Netduino Plus 2 2020-01-17 14:09:29 +00:00
allwinner-a10.c hw/arm/allwinner-a10: Remove local qemu_irq variables 2020-01-17 14:09:30 +00:00
armsse.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
armv7m.c hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
aspeed.c arm/aspeed: actually check RAM size 2020-02-19 16:49:54 +00:00
aspeed_ast2600.c hw/arm: ast2600: Wire up EHCI controllers 2020-02-13 14:14:55 +00:00
aspeed_soc.c hw/arm: ast2400/ast2500: Wire up EHCI controllers 2020-02-13 14:14:55 +00:00
bcm2835_peripherals.c hw/arm/bcm2835_peripherals: Use the SYS_timer 2019-10-25 13:09:27 +01:00
bcm2836.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
boot.c hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
collie.c hw/arm/collie: Create the RAM in the board 2019-10-22 17:44:01 +01:00
cubieboard.c Machine + x86 queue, 2019-09-03 2019-09-04 14:44:54 +01:00
digic.c hw/arm: Use ARM_CPU_TYPE_NAME() macro when appropriate 2019-09-03 16:20:34 +01:00
digic_boards.c hw/arm/digic4: Inline digic4_board_setup_ram() function 2019-10-22 17:44:01 +01:00
exynos4_boards.c Machine + x86 queue, 2019-09-03 2019-09-04 14:44:54 +01:00
exynos4210.c hw/arm/exynos4210: Connect serial port DMA busy signals with pl330 2020-01-23 16:34:15 +00:00
fsl-imx6.c i.MX: Add support for WDT on i.MX6 2020-02-13 14:14:52 +00:00
fsl-imx6ul.c hw/arm: Use ARM_CPU_TYPE_NAME() macro when appropriate 2019-09-03 16:20:34 +01:00
fsl-imx7.c hw/arm: Replace global smp variables with machine smp properties 2019-07-05 17:08:03 -03:00
fsl-imx25.c i.MX: add an emulation for RNGC 2020-01-17 14:27:16 +00:00
fsl-imx31.c hw/arm/fsl-imx: Add the cpu as child of the SoC object 2019-09-03 16:20:34 +01:00
gumstix.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
highbank.c hw/arm/highbank: Use AddressSpace when using write_secondary_boot() 2019-10-25 13:09:27 +01:00
imx25_pdk.c hw/arm: simplify arm_load_dtb 2019-09-03 11:26:55 -03:00
integratorcp.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
kzm.c hw/arm: simplify arm_load_dtb 2019-09-03 11:26:55 -03:00
mainstone.c hw/arm: simplify arm_load_dtb 2019-09-03 11:26:55 -03:00
mcimx6ul-evk.c hw/arm: simplify arm_load_dtb 2019-09-03 11:26:55 -03:00
mcimx7d-sabre.c Machine + x86 queue, 2019-09-03 2019-09-04 14:44:54 +01:00
microbit.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
mps2-tz.c hw/arm/mps2: Use the IEC binary prefix definitions 2019-10-22 17:44:00 +01:00
mps2.c hw/arm/mps2: Use the IEC binary prefix definitions 2019-10-22 17:44:00 +01:00
msf2-soc.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
msf2-som.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
musca.c hw: Move PL031 device from hw/timer/ to hw/rtc/ subdirectory 2019-10-24 20:10:27 +02:00
musicpal.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
netduino2.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
netduinoplus2.c hw/arm: Add the Netduino Plus 2 2020-01-17 14:09:29 +00:00
nrf51_soc.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
nseries.c hw/arm/nseries: Replace the bluetooth chardev with a "null" chardev 2019-12-16 17:24:07 +01:00
omap1.c omap-gpio: remove PROP_PTR 2020-01-07 17:24:29 +04:00
omap2.c omap-gpio: remove PROP_PTR 2020-01-07 17:24:29 +04:00
omap_sx1.c hw/arm/omap1: Create the RAM in the board 2019-10-22 17:44:01 +01:00
palm.c hw/arm/omap1: Create the RAM in the board 2019-10-22 17:44:01 +01:00
pxa2xx.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
pxa2xx_gpio.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
pxa2xx_pic.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
raspi.c hw/arm/raspi: Extract the cores count from the board revision 2020-02-13 14:30:51 +00:00
realview.c hw/arm: simplify arm_load_dtb 2019-09-03 11:26:55 -03:00
sabrelite.c hw/arm: simplify arm_load_dtb 2019-09-03 11:26:55 -03:00
sbsa-ref.c numa: properly check if numa is supported 2019-12-19 14:57:14 -03:00
smmu-common.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
smmu-internal.h hw/arm/smmu-common: VMSAv8-64 page table walk 2018-05-04 18:05:51 +01:00
smmuv3-internal.h hw/arm/smmuv3: Use correct bit positions in EVT_SET_ADDR2 macro 2019-12-20 14:03:00 +00:00
smmuv3.c hw/arm/smmuv3: Report F_STE_FETCH fault address in correct word position 2019-12-20 14:03:00 +00:00
spitz.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
stellaris.c stellaris: delay timer_new to avoid memleaks 2020-02-07 14:04:28 +00:00
stm32f205_soc.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
stm32f405_soc.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
strongarm.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
strongarm.h hw/arm/collie: Create the RAM in the board 2019-10-22 17:44:01 +01:00
sysbus-fdt.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
tosa.c hw/arm: simplify arm_load_dtb 2019-09-03 11:26:55 -03:00
trace-events trace-events: Fix attribution of trace points to source 2019-03-22 16:18:07 +00:00
versatilepb.c hw/arm: simplify arm_load_dtb 2019-09-03 11:26:55 -03:00
vexpress.c hw/arm: simplify arm_load_dtb 2019-09-03 11:26:55 -03:00
virt-acpi-build.c arm/acpi: simplify the description of PCI _CRS 2020-02-13 14:14:53 +00:00
virt.c target/arm/cpu: Add the kvm-no-adjvtime CPU property 2020-01-30 16:02:06 +00:00
xilinx_zynq.c hw/arm/xilinx_zynq: Use the IEC binary prefix definitions 2019-10-22 17:44:00 +01:00
xlnx-versal-virt.c hw/arm: simplify arm_load_dtb 2019-09-03 11:26:55 -03:00
xlnx-versal.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
xlnx-zcu102.c hw/arm: simplify arm_load_dtb 2019-09-03 11:26:55 -03:00
xlnx-zynqmp.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
z2.c hw/arm: simplify arm_load_dtb 2019-09-03 11:26:55 -03:00