hppa: Add emulation of Artist graphics
This adds emulation of Artist graphics good enough to get a text console on both Linux and HP-UX. The X11 server from HP-UX also works. Adjust boot-serial-test to disable graphics, so that SeaBIOS outputs to the serial port, as expected by the test. Signed-off-by: Sven Schnelle <svens@stackframe.org> Message-Id: <20191220211512.3289-6-svens@stackframe.org> [rth: Merge Helge's test for machine->enable_graphics] Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
346e78f6d6
commit
4765384ce3
@ -91,6 +91,10 @@ config TCX
|
||||
config CG3
|
||||
bool
|
||||
|
||||
config ARTIST
|
||||
bool
|
||||
select FRAMEBUFFER
|
||||
|
||||
config VGA
|
||||
bool
|
||||
|
||||
|
@ -40,6 +40,7 @@ common-obj-$(CONFIG_SM501) += sm501.o
|
||||
common-obj-$(CONFIG_TCX) += tcx.o
|
||||
common-obj-$(CONFIG_CG3) += cg3.o
|
||||
common-obj-$(CONFIG_NEXTCUBE) += next-fb.o
|
||||
common-obj-$(CONFIG_ARTIST) += artist.o
|
||||
|
||||
obj-$(CONFIG_VGA) += vga.o
|
||||
|
||||
|
1454
hw/display/artist.c
Normal file
1454
hw/display/artist.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -142,3 +142,12 @@ sii9022_switch_mode(const char *mode) "mode: %s"
|
||||
# ati.c
|
||||
ati_mm_read(unsigned int size, uint64_t addr, const char *name, uint64_t val) "%u 0x%"PRIx64 " %s -> 0x%"PRIx64
|
||||
ati_mm_write(unsigned int size, uint64_t addr, const char *name, uint64_t val) "%u 0x%"PRIx64 " %s <- 0x%"PRIx64
|
||||
|
||||
# artist.c
|
||||
artist_reg_read(unsigned int size, uint64_t addr, const char *name, uint64_t val) "%u 0x%"PRIx64 "%s -> 0x%"PRIx64
|
||||
artist_reg_write(unsigned int size, uint64_t addr, const char *name, uint64_t val) "%u 0x%"PRIx64 "%s <- 0x%"PRIx64
|
||||
artist_vram_read(unsigned int size, uint64_t addr, int posx, int posy, uint64_t val) "%u 0x%"PRIx64 " %ux%u-> 0x%"PRIx64
|
||||
artist_vram_write(unsigned int size, uint64_t addr, uint64_t val) "%u 0x%"PRIx64 " <- 0x%"PRIx64
|
||||
artist_fill_window(unsigned int start_x, unsigned int start_y, unsigned int width, unsigned int height, uint32_t op, uint32_t ctlpln) "start=%ux%u length=%ux%u op=0x%08x ctlpln=0x%08x"
|
||||
artist_block_move(unsigned int start_x, unsigned int start_y, unsigned int dest_x, unsigned int dest_y, unsigned int width, unsigned int height) "source %ux%u -> dest %ux%u size %ux%u"
|
||||
artist_draw_line(unsigned int start_x, unsigned int start_y, unsigned int end_x, unsigned int end_y) "%ux%u %ux%u"
|
||||
|
@ -12,3 +12,4 @@ config DINO
|
||||
select LSI_SCSI_PCI
|
||||
select LASI_82596
|
||||
select LASIPS2
|
||||
select ARTIST
|
||||
|
@ -22,6 +22,7 @@
|
||||
#define LASI_PS2KBD_HPA 0xffd08000
|
||||
#define LASI_PS2MOU_HPA 0xffd08100
|
||||
#define LASI_GFX_HPA 0xf8000000
|
||||
#define ARTIST_FB_ADDR 0xf9000000
|
||||
#define CPU_HPA 0xfffb0000
|
||||
#define MEMORY_HPA 0xfffbf000
|
||||
|
||||
|
@ -75,6 +75,7 @@ static void machine_hppa_init(MachineState *machine)
|
||||
MemoryRegion *cpu_region;
|
||||
long i;
|
||||
unsigned int smp_cpus = machine->smp.cpus;
|
||||
SysBusDevice *s;
|
||||
|
||||
ram_size = machine->ram_size;
|
||||
|
||||
@ -127,6 +128,15 @@ static void machine_hppa_init(MachineState *machine)
|
||||
dev = DEVICE(pci_create_simple(pci_bus, -1, "lsi53c895a"));
|
||||
lsi53c8xx_handle_legacy_cmdline(dev);
|
||||
|
||||
/* Graphics setup. */
|
||||
if (machine->enable_graphics && vga_interface_type != VGA_NONE) {
|
||||
dev = qdev_create(NULL, "artist");
|
||||
qdev_init_nofail(dev);
|
||||
s = SYS_BUS_DEVICE(dev);
|
||||
sysbus_mmio_map(s, 0, LASI_GFX_HPA);
|
||||
sysbus_mmio_map(s, 1, ARTIST_FB_ADDR);
|
||||
}
|
||||
|
||||
/* Network setup. */
|
||||
for (i = 0; i < nb_nics; i++) {
|
||||
if (!enable_lasi_lan()) {
|
||||
|
@ -135,7 +135,8 @@ static testdef_t tests[] = {
|
||||
sizeof(kernel_plml605), kernel_plml605 },
|
||||
{ "moxie", "moxiesim", "", "TT", sizeof(bios_moxiesim), 0, bios_moxiesim },
|
||||
{ "arm", "raspi2", "", "TT", sizeof(bios_raspi2), 0, bios_raspi2 },
|
||||
{ "hppa", "hppa", "", "SeaBIOS wants SYSTEM HALT" },
|
||||
/* For hppa, force bios to output to serial by disabling graphics. */
|
||||
{ "hppa", "hppa", "-vga none", "SeaBIOS wants SYSTEM HALT" },
|
||||
{ "aarch64", "virt", "-cpu cortex-a57", "TT", sizeof(kernel_aarch64),
|
||||
kernel_aarch64 },
|
||||
{ "arm", "microbit", "", "T", sizeof(kernel_nrf51), kernel_nrf51 },
|
||||
|
Loading…
Reference in New Issue
Block a user