qemu-patch-raspberry4/hw
Greg Kurz b4b83312e7 spapr: Simplify selection of radix/hash during CAS
The guest can select the MMU mode by setting bits 0-1 of byte 24
in OV5 to to 0b00 for hash or 0b01 for radix. As required by the
architecture, we terminate the boot process if any other value
is found there.

The usual way to negotiate features in OV5 is basically ANDing
the bitfield provided by the guest and the bitfield of features
supported by QEMU, previously populated at machine init.

For some not documented reason, MMU is treated differently : bit 1
of byte 24 (the radix/hash bit) is cleared from the guest OV5 and
explicitely set in the final negotiated OV5 if radix was requested.

Since the only expected input from the guest is the radix/hash bit
being set or not, it seems more appropriate to handle this like we
do for XIVE.

Set the radix bit in spapr->ov5 at machine init if it has a chance
to work (ie. power9, either TCG or a radix capable KVM) and rely
exclusively on spapr_ovec_intersect() to set the radix bit in
spapr->ov5_cas.

Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <158514993621.478799.4204740354545734293.stgit@bahia.lan>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2020-05-07 11:10:50 +10:00
..
9pfs 9p/proxy: Fix export_flags 2020-03-10 16:12:49 +01:00
acpi hw/arm/virt: Add nvdimm hotplug support 2020-05-04 10:25:02 -04:00
adc hw/*/Makefile.objs: Move many .o files to common-objs 2020-02-04 09:00:57 +01:00
alpha hw/ide: Do ide_drive_get() within pci_ide_create_devs() 2020-03-17 12:22:36 -04:00
arm hw/arm/virt: Add nvdimm hotplug support 2020-05-04 10:25:02 -04:00
audio Compress lines for immediate return 2020-05-04 14:43:22 +02:00
block vhost-user-blk: fix invalid memory access 2020-05-04 10:25:02 -04:00
char hw/char/cadence_uart: add clock support 2020-04-30 15:35:41 +01:00
core hw/core/register: Add register_init_block8 helper. 2020-05-05 13:37:51 -07:00
cpu cpu/arm11mpcore: Set number of GIC priority bits to 4 2020-02-28 16:14:57 +00:00
cris hw: Make MachineClass::is_default a boolean type 2020-02-28 14:57:19 -05:00
display trivial patches (20200504) 2020-05-05 14:03:28 +01:00
dma dma/xlnx-zdma: Fix descriptor loading (REG) wrt endianness 2020-04-30 11:52:25 +01:00
gpio hw/gpio/aspeed_gpio: Remove dead assignment 2020-05-04 14:43:24 +02:00
hppa hw/ide: Remove unneeded inclusion of hw/ide.h 2020-03-17 12:22:36 -04:00
hyperv lockable: Replace locks with lock guard macros 2020-05-04 16:07:43 +01:00
i2c hw/i2c/pm_smbus: Remove dead assignment 2020-05-04 14:43:24 +02:00
i386 hw/i386: Make vmmouse helpers static 2020-05-04 10:25:03 -04:00
ide hw/ide/sii3112: Remove dead assignment 2020-05-04 14:43:24 +02:00
input hw/input/adb-kbd: Remove dead assignment 2020-05-04 14:43:24 +02:00
intc bugfix: Use gicr_typer in arm_gicv3_icc_reset 2020-04-30 11:52:27 +01:00
ipack qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
ipmi qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
isa trivial patches (20200504) 2020-05-05 14:03:28 +01:00
lm32 hw: Make MachineClass::is_default a boolean type 2020-02-28 14:57:19 -05:00
m68k hw/m68k: Use memory_region_init_rom() with read-only regions 2020-03-17 15:18:47 +01:00
mem trivial patches (20200504) 2020-05-05 14:03:28 +01:00
microblaze hw: Make MachineClass::is_default a boolean type 2020-02-28 14:57:19 -05:00
mips smbus: Fix spd_data_generate() error API violation 2020-04-29 08:01:52 +02:00
misc hw/misc/zynq_slcr: add clock generation for uarts 2020-04-30 15:35:41 +01:00
moxie hw: Make MachineClass::is_default a boolean type 2020-02-28 14:57:19 -05:00
net target-arm queue: 2020-04-30 15:45:34 +01:00
nios2 hw: Make MachineClass::is_default a boolean type 2020-02-28 14:57:19 -05:00
nubus hw/m68k: add Nubus support 2019-10-28 19:06:47 +01:00
nvram fw_cfg: Migrate ACPI table mr sizes separately 2020-04-13 06:55:54 -04:00
openrisc hw: Make MachineClass::is_default a boolean type 2020-02-28 14:57:19 -05:00
pci hw/pci/pcie: Replace PCI_DEVICE() casts with existing variable 2020-05-04 10:25:02 -04:00
pci-bridge pcie_root_port: Add hotplug disabling option 2020-03-08 09:18:29 -04:00
pci-host hw/pci-host: Use memory_region_init_rom() with read-only regions 2020-03-17 15:18:47 +01:00
pcmcia hw/*/Makefile.objs: Move many .o files to common-objs 2020-02-04 09:00:57 +01:00
ppc spapr: Simplify selection of radix/hash during CAS 2020-05-07 11:10:50 +10:00
rdma lockable: Replace locks with lock guard macros 2020-05-04 16:07:43 +01:00
riscv hw/riscv/spike: Allow more than one CPUs 2020-04-29 13:16:38 -07:00
rtc rtc: add RTC_ISA_BASE 2020-05-04 10:25:02 -04:00
s390x s390x/s390-virtio-ccw: Fix build on systems without KVM 2020-04-29 14:36:19 +02:00
scsi scsi/esp-pci: add g_assert() for fix clang analyzer warning in esp_pci_io_write() 2020-05-04 11:17:27 +02:00
sd various: Remove suspicious '\' character outside of #define in C code 2020-04-29 08:01:51 +02:00
semihosting semihosting: add qemu_semihosting_console_inc for SYS_READC 2020-01-09 11:41:29 +00:00
sh4 hw/sh4: Use memory_region_init_rom() with read-only regions 2020-03-17 15:18:47 +01:00
smbios hw/smbios/smbios: Remove unused include 2020-02-06 10:38:57 +01:00
sparc hw/sparc: Use memory_region_init_rom() with read-only regions 2020-03-17 15:18:48 +01:00
sparc64 hw/ide: Do ide_drive_get() within pci_ide_create_devs() 2020-03-17 12:22:36 -04:00
ssi aspeed/smc: Fix DMA support for AST2600 2020-03-23 17:22:30 +00:00
timer hw/timer/pxa2xx_timer: Add assertion to silent static analyzer warning 2020-05-04 14:43:24 +02:00
tpm tpm: Add the SysBus TPM TIS device 2020-03-05 12:18:08 -05:00
tricore hw: Do not initialize MachineClass::is_default to 0 2020-02-28 14:57:19 -05:00
unicore32 hw: Make MachineClass::is_default a boolean type 2020-02-28 14:57:19 -05:00
usb hw/usb/xen-usb.c: Pass struct usbback_req* to usbback_packet_complete() 2020-04-07 16:13:26 +01:00
vfio lockable: replaced locks with lock guard macros where appropriate 2020-05-04 16:07:43 +01:00
virtio Refactor vhost_user_set_mem_table functions 2020-05-04 10:25:03 -04:00
watchdog qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
xen xen/pt: Fix flawed conversion to realize() 2020-04-29 08:01:52 +02:00
xenpv trivial: Remove xenfb_enabled from sysemu.h 2020-02-04 09:00:57 +01:00
xtensa hw/xtensa/xtfpga:fix leak of fdevice tree blob 2020-02-19 10:33:38 +01:00
Kconfig Remove the core bluetooth code 2019-12-17 09:01:14 +01:00
Makefile.objs Remove the core bluetooth code 2019-12-17 09:01:14 +01:00