two little bochs-display patches.
cover two little bochs-display patches.
Gerd Hoffmann (2):
display: add separate config option for bochs-display
bochs-display: wire up edid support
hw/display/bochs-display.c | 13 +++++++++++++ default-configs/pci.mak | 1 + hw/display/Makefile.objs | 3 ++- 3 files changed, 16 insertions(+), 1 deletion(-)
Signature · 1 line
2.9.3
PATCH 1/2 display: add separate config option for bochs-display
This allows modern architectures which don't care about vga compatibility (risc-v for example) build bochs-display without including all vga emulation too.
--- default-configs/pci.mak | 1 + hw/display/Makefile.objs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-)
default-configs/pci.mak +1 -0
@@ -44,5 +44,6 @@ CONFIG_SDHCI=y CONFIG_EDU=y CONFIG_VGA=y CONFIG_VGA_PCI=y +CONFIG_BOCHS_DISPLAY=y CONFIG_IVSHMEM_DEVICE=$(CONFIG_IVSHMEM) CONFIG_ROCKER=y
hw/display/Makefile.objs +1 -1
@@ -14,11 +14,11 @@ common-obj-$(CONFIG_SSD0323) += ssd0323.o common-obj-$(CONFIG_XEN) += xenfb.o common-obj-$(CONFIG_VGA_PCI) += vga-pci.o -common-obj-$(CONFIG_VGA_PCI) += bochs-display.o common-obj-$(CONFIG_VGA_PCI) += edid-region.o common-obj-$(CONFIG_VGA_ISA) += vga-isa.o common-obj-$(CONFIG_VGA_ISA_MM) += vga-isa-mm.o common-obj-$(CONFIG_VMWARE_VGA) += vmware_vga.o +common-obj-$(CONFIG_BOCHS_DISPLAY) += bochs-display.o common-obj-$(CONFIG_BLIZZARD) += blizzard.o common-obj-$(CONFIG_EXYNOS4) += exynos4210_fimd.o
Signature · 1 line
2.9.3
Re: [Qemu-devel] [PATCH 1/2] display: add separate config option for bochs-display
Quoted 4 lines · Gerd Hoffmann
This allows modern architectures which don't care about vga compatibility (risc-v for example) build bochs-display without including all vga emulation too.
For RISC-V we end up including pci.mak anyway for other things such as NVMe drives. So we don't really need this, but it still seems useful.
Quoted 2 lines
Signed-off-by Gerd Hoffmann <[email protected]>
Alistair
Quoted 37 lines
--- default-configs/pci.mak | 1 + hw/display/Makefile.objs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-)default-configs/pci.mak +1
-0@@ -44,5 +44,6 @@ CONFIG_SDHCI=y CONFIG_EDU=y CONFIG_VGA=y CONFIG_VGA_PCI=y +CONFIG_BOCHS_DISPLAY=y CONFIG_IVSHMEM_DEVICE=$(CONFIG_IVSHMEM) CONFIG_ROCKER=yhw/display/Makefile.objs +1
-2@@ -14,11 +14,11 @@ common-obj-$(CONFIG_SSD0323) += ssd0323.o common-obj-$(CONFIG_XEN) += xenfb.o common-obj-$(CONFIG_VGA_PCI) += vga-pci.o -common-obj-$(CONFIG_VGA_PCI) += bochs-display.o common-obj-$(CONFIG_VGA_PCI) += edid-region.o common-obj-$(CONFIG_VGA_ISA) += vga-isa.o common-obj-$(CONFIG_VGA_ISA_MM) += vga-isa-mm.o common-obj-$(CONFIG_VMWARE_VGA) += vmware_vga.o +common-obj-$(CONFIG_BOCHS_DISPLAY) += bochs-display.o common-obj-$(CONFIG_BLIZZARD) += blizzard.o common-obj-$(CONFIG_EXYNOS4) += exynos4210_fimd.o --2.9.3
Re: [Qemu-devel] [PATCH 1/2] display: add separate config option for bochs-display
Quoted 8 lines · Alistair Francis
Quoted 4 lines · Gerd Hoffmann
This allows modern architectures which don't care about vga compatibility (risc-v for example) build bochs-display without including all vga emulation too.
For RISC-V we end up including pci.mak anyway for other things such as NVMe drives. So we don't really need this, but it still seems useful.
Hmm, maybe we should split pci.mak into pci-legacy.mak and pci-express.mak then?
cheers,
Gerd
Re: [Qemu-devel] [PATCH 1/2] display: add separate config option for bochs-display
Quoted 7 lines · Gerd Hoffmann
Quoted 6 lines · Alistair Francis
Quoted 4 lines · Gerd Hoffmann
This allows modern architectures which don't care about vga compatibility (risc-v for example) build bochs-display without including all vga emulation too.
Quoted 5 lines
Quoted 2 lines
For RISC-V we end up including pci.mak anyway for other things such as NVMe drives. So we don't really need this, but it still seems useful.
Hmm, maybe we should split pci.mak into pci-legacy.mak and pci-express.mak then?
That sounds like a good idea.
Alistair
Quoted 4 lines
cheers,
Gerd
PATCH 2/2 bochs-display: wire up edid support
In reply to Gerd Hoffmann--- hw/display/bochs-display.c | 13 +++++++++++++ hw/display/Makefile.objs | 1 + 2 files changed, 14 insertions(+)
hw/display/bochs-display.c +13 -0
@@ -9,6 +9,7 @@#include "hw/hw.h" #include "hw/pci/pci.h" #include "hw/display/bochs-vbe.h" +#include "hw/display/edid.h" #include "qapi/error.h"
@@ -35,9 +36,13 @@ typedef struct BochsDisplayState {MemoryRegion mmio;MemoryRegion vbe;MemoryRegion qext; +MemoryRegion edid;/* device config */ uint64_t vgamem; +bool enable_edid; +qemu_edid_info edid_info; +uint8_t edid_blob[256 ];/* device registers */ uint16_t vbe_regs[VBE_DISPI_INDEX_NB ];
@@ -283,6 +288,12 @@ static void bochs_display_realize(PCIDevice *dev, Error **errp)pci_register_bar (&s->pci,0 ,PCI_BASE_ADDRESS_MEM_PREFETCH , &s->vram);pci_register_bar (&s->pci,2 ,PCI_BASE_ADDRESS_SPACE_MEMORY , &s->mmio); +if (s->enable_edid) { +qemu_edid_generate (s->edid_blob,sizeof (s->edid_blob), &s->edid_info); +qemu_edid_region_io (&s->edid, obj, s->edid_blob,sizeof (s->edid_blob)); +memory_region_add_subregion (&s->mmio,0 , &s->edid); + } +if (pci_bus_is_express (pci_get_bus (dev))) { dev->cap_present |=QEMU_PCI_CAP_EXPRESS ; ret =pcie_endpoint_cap_init (dev,0x80 );
@@ -325,6 +336,8 @@ static void bochs_display_exit(PCIDevice *dev)static Property bochs_display_properties[] = {DEFINE_PROP_SIZE ("vgamem" , BochsDisplayState, vgamem,16 * MiB), +DEFINE_PROP_BOOL ("edid" , BochsDisplayState, enable_edid, false), +DEFINE_EDID_PROPERTIES (BochsDisplayState, edid_info),DEFINE_PROP_END_OF_LIST (), };
hw/display/Makefile.objs +1 -0
@@ -19,6 +19,7 @@ common-obj-$(CONFIG_VGA_ISA) += vga-isa.o common-obj-$(CONFIG_VGA_ISA_MM) += vga-isa-mm.o common-obj-$(CONFIG_VMWARE_VGA) += vmware_vga.o common-obj-$(CONFIG_BOCHS_DISPLAY) += bochs-display.o +common-obj-$(CONFIG_BOCHS_DISPLAY) += edid-region.o common-obj-$(CONFIG_BLIZZARD) += blizzard.o common-obj-$(CONFIG_EXYNOS4) += exynos4210_fimd.o
Signature · 1 line
2.9.3