xemu/hw/misc
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
..
macio qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
a9scu.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
applesmc.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
arm11scu.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
arm_integrator_debug.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
arm_l2x0.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
arm_sysctl.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
armsse-cpuid.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
armsse-mhu.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
aspeed_scu.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
aspeed_sdmc.c arm/aspeed: actually check RAM size 2020-02-19 16:49:54 +00:00
aspeed_xdma.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
auxbus.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
bcm2835_mbox.c hw/misc/bcm2835_mbox: Add trace events 2019-10-15 18:09:05 +01:00
bcm2835_property.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
bcm2835_rng.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
bcm2835_thermal.c hw/misc/bcm2835_thermal: Add a dummy BCM2835 thermal sensor 2019-10-25 13:09:27 +01:00
cbus.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
debugexit.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
eccmemctl.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
edu.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
exynos4210_clk.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
exynos4210_pmu.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
exynos4210_rng.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
grlib_ahb_apb_pnp.c hw/misc/grlib_ahb_apb_pnp: Fix 8-bit accesses 2019-11-05 15:02:33 +01:00
imx2_wdt.c i.MX: Fix inverted register bits in wdt code. 2020-02-13 14:14:52 +00:00
imx6_ccm.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
imx6_src.c hw/core: Move cpu.c, cpu.h from qom/ to hw/core/ 2019-08-21 13:24:01 +02:00
imx6ul_ccm.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
imx7_ccm.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
imx7_gpr.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
imx7_snvs.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
imx25_ccm.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
imx31_ccm.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
imx_ccm.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
imx_rngc.c i.MX: add an emulation for RNGC 2020-01-17 14:27:16 +00:00
iotkit-secctl.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
iotkit-sysctl.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
iotkit-sysinfo.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
ivshmem.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
Kconfig hw/misc: Add the STM32F4xx EXTI device 2020-01-17 14:09:29 +00:00
mac_via.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
Makefile.objs i.MX: add an emulation for RNGC 2020-01-17 14:27:16 +00:00
max111x.c migration: Define VMSTATE_INSTANCE_ID_ANY 2020-01-20 09:10:23 +01:00
milkymist-hpdmc.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
milkymist-pfpu.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
mips_cmgcr.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
mips_cpc.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
mips_itu.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
mos6522.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
mps2-fpgaio.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
mps2-scc.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
msf2-sysreg.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
mst_fpga.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
nrf51_rng.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
omap_clk.c Include hw/irq.h a lot less 2019-08-16 13:31:52 +02:00
omap_gpmc.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
omap_l4.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
omap_sdrc.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
omap_tap.c Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
pc-testdev.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
pca9552.c misc/pca9552: Add qom set and get 2020-01-30 16:02:02 +00:00
pci-testdev.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
puv3_pm.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
pvpanic.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
sga.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
slavio_misc.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
stm32f2xx_syscfg.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
stm32f4xx_exti.c hw/misc: Add the STM32F4xx EXTI device 2020-01-17 14:09:29 +00:00
stm32f4xx_syscfg.c hw/misc/stm32f4xx_syscfg: Fix copy/paste error 2020-01-23 15:34:04 +00:00
tmp105.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
tmp105.h
tmp421.c Do not use %m in common code to print error messages 2019-10-22 09:38:42 +02:00
trace-events hw/misc: Add the STM32F4xx EXTI device 2020-01-17 14:09:29 +00:00
tz-mpc.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
tz-msc.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
tz-ppc.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
unimp.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
vmcoreinfo.c hw/misc/vmcoreinfo: Add comment about reset handler 2019-10-15 18:18:08 -03:00
zynq_slcr.c target-arm queue: 2019-08-16 17:21:40 +01:00
zynq-xadc.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00