From a80813fdd104fb6bef2eac2ed660ea660fa4b2d6 Mon Sep 17 00:00:00 2001 From: Alexander von Gluck IV Date: Sat, 6 Nov 2021 20:35:03 -0500 Subject: [PATCH] qemu/riscv64: Misc fixups for qemu * Disable overly verbose PCI IO access * Add ati to riscv64 minimum image for qemu * Update qemu test script with "best" gpu settings for the moment Change-Id: I5d16ace0f8589f8b17cc50c7a1db04266907269f Reviewed-on: https://review.haiku-os.org/c/haiku/+/4699 Tested-by: Commit checker robot Reviewed-by: Adrien Destugues --- build/jam/images/definitions/minimum | 6 ++++- .../bus_managers/pci/arch/riscv64/pci_io.cpp | 24 +++++++++++++------ src/tests/qemu-boot-test | 2 +- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/build/jam/images/definitions/minimum b/build/jam/images/definitions/minimum index 2927b73ef7..48889dfcc4 100644 --- a/build/jam/images/definitions/minimum +++ b/build/jam/images/definitions/minimum @@ -146,8 +146,10 @@ SYSTEM_ADD_ONS_ACCELERANTS = [ FFilterByBuildFeatures framebuffer.accelerant x86,x86_64 @{ vesa.accelerant - }@ # x86,x86_64,riscv64 + }@ # x86,x86_64 riscv64 @{ + # ati for qemu, radeon_hd for unmatched + ati.accelerant radeon_hd.accelerant }@ # riscv64 ] ; @@ -180,6 +182,8 @@ SYSTEM_ADD_ONS_DRIVERS_GRAPHICS = [ FFilterByBuildFeatures vesa }@ # x86,x86_64 riscv64 @{ + # ati for qemu, radeon_hd for unmatched + ati radeon_hd }@ # riscv64 ] ; diff --git a/src/add-ons/kernel/bus_managers/pci/arch/riscv64/pci_io.cpp b/src/add-ons/kernel/bus_managers/pci/arch/riscv64/pci_io.cpp index 83450a3e3b..8eb8ecd08a 100644 --- a/src/add-ons/kernel/bus_managers/pci/arch/riscv64/pci_io.cpp +++ b/src/add-ons/kernel/bus_managers/pci/arch/riscv64/pci_io.cpp @@ -11,6 +11,16 @@ #include +#undef TRACE + +//#define TRACE_PCI_IO +#ifdef TRACE_PCI_IO +# define TRACE(x...) fprintf("PCI_IO: " x) +#else +# define TRACE(x...) ; +#endif + + extern ArchPCIController* gArchPCI; addr_t gPCIeIoBase; @@ -18,7 +28,7 @@ addr_t gPCIeIoBase; status_t pci_io_init() { - dprintf("pci_io_init()\n"); + TRACE("pci_io_init()\n"); if (gArchPCI == NULL) return B_ERROR; @@ -30,7 +40,7 @@ pci_io_init() uint8 pci_read_io_8(int mapped_io_addr) { - dprintf("pci_read_io_8(%d)\n", mapped_io_addr); + TRACE("pci_read_io_8(%d)\n", mapped_io_addr); volatile uint8* ptr = (uint8*)(gPCIeIoBase + mapped_io_addr); return *ptr; } @@ -39,7 +49,7 @@ pci_read_io_8(int mapped_io_addr) void pci_write_io_8(int mapped_io_addr, uint8 value) { - dprintf("pci_write_io_8(%d)\n", mapped_io_addr); + TRACE("pci_write_io_8(%d)\n", mapped_io_addr); volatile uint8* ptr = (uint8*)(gPCIeIoBase + mapped_io_addr); *ptr = value; } @@ -48,7 +58,7 @@ pci_write_io_8(int mapped_io_addr, uint8 value) uint16 pci_read_io_16(int mapped_io_addr) { - dprintf("pci_read_io_16(%d)\n", mapped_io_addr); + TRACE("pci_read_io_16(%d)\n", mapped_io_addr); volatile uint16* ptr = (uint16*)(gPCIeIoBase + mapped_io_addr); return *ptr; } @@ -57,7 +67,7 @@ pci_read_io_16(int mapped_io_addr) void pci_write_io_16(int mapped_io_addr, uint16 value) { - dprintf("pci_write_io_16(%d)\n", mapped_io_addr); + TRACE("pci_write_io_16(%d)\n", mapped_io_addr); volatile uint16* ptr = (uint16*)(gPCIeIoBase + mapped_io_addr); *ptr = value; } @@ -66,7 +76,7 @@ pci_write_io_16(int mapped_io_addr, uint16 value) uint32 pci_read_io_32(int mapped_io_addr) { - dprintf("pci_read_io_32(%d)\n", mapped_io_addr); + TRACE("pci_read_io_32(%d)\n", mapped_io_addr); volatile uint32* ptr = (uint32*)(gPCIeIoBase + mapped_io_addr); return *ptr; } @@ -75,7 +85,7 @@ pci_read_io_32(int mapped_io_addr) void pci_write_io_32(int mapped_io_addr, uint32 value) { - dprintf("pci_write_io_32(%d)\n", mapped_io_addr); + TRACE("pci_write_io_32(%d)\n", mapped_io_addr); volatile uint32* ptr = (uint32*)(gPCIeIoBase + mapped_io_addr); *ptr = value; } diff --git a/src/tests/qemu-boot-test b/src/tests/qemu-boot-test index 2c06ab9634..78875715e1 100755 --- a/src/tests/qemu-boot-test +++ b/src/tests/qemu-boot-test @@ -108,7 +108,7 @@ case "$ARCH" in echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++" echo "+++ Testing $PLATFORM boot..." cp $IMAGE $TEST_FILE - $EMULATOR -device virtio-gpu -drive file=$TEST_FILE,format=raw,if=virtio + $EMULATOR -device ati-vga -drive file=$TEST_FILE,format=raw,if=virtio check_logs $TEST_SERIALLOG rm -f $TEST_FILE $TEST_SERIALLOG ;;