qemu-e2k/hw/arm
Wei Huang f460be435f ARM: ACPI: fix the AML ID format for CPU devices
Current QEMU will stall guest VM booting under ACPI mode when vcpu count
is >= 12. Analyzing the booting log, it turns out that DSDT table can't
be loaded correctly due to "Invalid character(s) in name (0x62303043),
repaired: [C00*]". This is because existing QEMU uses a lower case AML
ID for CPU devices (e.g. C000, C001, ..., C00a, C00b). The ACPI code
inside guest VM detects this lower case character as an invalid character
(see acpi_ut_valid_acpi_char() in drivers/acpi/acpica/utstring.c file)
and converts it to "*". This causes duplicated IDs (i.e. "C00a" ==>"C00*"
and "C00b" ==> "C00*"). So ACPI refuses to load the table.

This patch fixes the problem by changing the format with a upper case
character. It matches the CPU ID formats used in other parts of QEMU
code.

Reported-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Wei Huang <wei@redhat.com>
Reviewed-by: Shannon Zhao <shannon.zhao@linaro.org>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Tested-by: Eric Auger <eric.auger@redhat.com>
Message-id: 1472852809-23042-1-git-send-email-wei@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-09-06 19:52:17 +01:00
..
allwinner-a10.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
armv7m.c hw/arm: QOM'ify armv7m.c 2016-05-12 13:40:48 +01:00
ast2400.c ast2400: add a memory controller device model 2016-09-06 19:52:17 +01:00
bcm2835_peripherals.c hw/char: QOM'ify pl011 model 2016-06-06 16:59:31 +01:00
bcm2836.c hw/arm/bcm2836: Wire up CPU timer interrupts correctly 2016-04-04 17:33:51 +01:00
boot.c ARM: Virt: Set numa-node-id for cpu and memory nodes 2016-05-12 13:22:27 +01:00
collie.c explicitly include qom/cpu.h 2016-05-19 16:42:27 +02:00
cubieboard.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
digic_boards.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
digic.c hw/char: QOM'ify digic-uart model 2016-06-06 16:59:31 +01:00
exynos4_boards.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
exynos4210.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
fsl-imx6.c i.MX: split the GPT timer implementation into per SOC definitions 2016-07-07 13:47:01 +01:00
fsl-imx25.c i.MX: split the GPT timer implementation into per SOC definitions 2016-07-07 13:47:01 +01:00
fsl-imx31.c i.MX: split the GPT timer implementation into per SOC definitions 2016-07-07 13:47:01 +01:00
gumstix.c machine: Use type_init() to register machine classes 2016-03-16 15:34:05 -03:00
highbank.c hw/char: QOM'ify pl011 model 2016-06-06 16:59:31 +01:00
imx25_pdk.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
integratorcp.c hw/char: QOM'ify pl011 model 2016-06-06 16:59:31 +01:00
kzm.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
mainstone.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
Makefile.objs i.MX: Add sabrelite i.MX6 emulation. 2016-05-12 13:22:29 +01:00
musicpal.c qapi: Change Netdev into a flat union 2016-07-19 20:18:02 +02:00
netduino2.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
nseries.c vl: Eliminate usb_enabled() 2016-06-13 13:24:41 +02:00
omap1.c util: move declarations out of qemu-common.h 2016-03-22 22:20:17 +01:00
omap2.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
omap_sx1.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
palm.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
palmetto-bmc.c ast2400: create SPI flash slaves 2016-07-04 13:15:22 +01:00
pxa2xx_gpio.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
pxa2xx_pic.c hw/arm: QOM'ify pxa2xx_pic.c 2016-05-12 13:42:08 +01:00
pxa2xx.c pxa2xx: Unconditionally enable USB controller 2016-06-13 13:24:41 +02:00
raspi.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
realview.c vl: Eliminate usb_enabled() 2016-06-13 13:24:41 +02:00
sabrelite.c m25p80: qdev-ify drive property 2016-07-04 13:15:22 +01:00
spitz.c ssi: change ssi_slave_init to be a realize ops 2016-07-04 13:15:22 +01:00
stellaris.c hw/char: QOM'ify pl011 model 2016-06-06 16:59:31 +01:00
stm32f205_soc.c hw/char: QOM'ify stm32f2xx_usart model 2016-06-06 16:59:32 +01:00
strongarm.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
strongarm.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
sysbus-fdt.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
tosa.c ssi: change ssi_slave_init to be a realize ops 2016-07-04 13:15:22 +01:00
trace-events trace-events: fix first line comment in trace-events 2016-08-12 10:36:01 +01:00
versatilepb.c vl: Eliminate usb_enabled() 2016-06-13 13:24:41 +02:00
vexpress.c hw/char: QOM'ify pl011 model 2016-06-06 16:59:31 +01:00
virt-acpi-build.c ARM: ACPI: fix the AML ID format for CPU devices 2016-09-06 19:52:17 +01:00
virt.c hw/arm/virt: tcg: adjust MPIDR like KVM 2016-07-14 16:51:37 +01:00
xilinx_zynq.c m25p80: qdev-ify drive property 2016-07-04 13:15:22 +01:00
xlnx-ep108.c m25p80: qdev-ify drive property 2016-07-04 13:15:22 +01:00
xlnx-zynqmp.c arm: xlnx-zynqmp: Add xlnx-dp and xlnx-dpdma 2016-06-14 16:01:03 +01:00
z2.c ssi: change ssi_slave_init to be a realize ops 2016-07-04 13:15:22 +01:00