On Fri, Mar 9, 2018 at 1:19 PM, Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk> wrote: > On 09/03/18 10:43, Philippe Mathieu-Daudé wrote: >> >> Hi Mark, >> >> On 03/09/2018 11:32 AM, Mark Cave-Ayland wrote: >>> >>> On 08/03/18 22:39, Philippe Mathieu-Daudé wrote: >>> >>>> - Move the header from hw/isa/ to hw/dma/ >>>> - Remove the old i386/pc dependency >>>> - use a bool type for the high_page_enable argument >>>> >>>> Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> >>>> --- >>>> include/hw/{isa => dma}/i8257.h | 6 ++++++ >>>> include/hw/isa/isa.h | 2 -- >>>> hw/dma/i82374.c | 3 ++- >>>> hw/dma/i8257.c | 4 ++-- >>>> hw/i386/pc.c | 3 ++- >>>> hw/mips/mips_fulong2e.c | 3 ++- >>>> hw/mips/mips_jazz.c | 3 ++- >>>> hw/mips/mips_malta.c | 3 ++- >>>> hw/sparc/sun4m.c | 4 ---- >>>> hw/sparc64/sun4u.c | 4 ---- >>>> MAINTAINERS | 2 +- >>>> 11 files changed, 19 insertions(+), 18 deletions(-) >>>> rename include/hw/{isa => dma}/i8257.h (86%) >>>> >>>> diff --git a/include/hw/isa/i8257.h b/include/hw/dma/i8257.h >>>> similarity index 86% >>>> rename from include/hw/isa/i8257.h >>>> rename to include/hw/dma/i8257.h >>>> index 88a2766a3f..2cab50bb6c 100644 >>>> --- a/include/hw/isa/i8257.h >>>> +++ b/include/hw/dma/i8257.h >>>> @@ -1,6 +1,10 @@ >>>> #ifndef HW_I8257_H >>>> #define HW_I8257_H >>>> +#include "hw/hw.h" >>>> +#include "hw/isa/isa.h" >>>> +#include "exec/ioport.h" >>>> + >>>> #define TYPE_I8257 "i8257" >>>> typedef struct I8257Regs { >>>> @@ -40,4 +44,6 @@ typedef struct I8257State { >>>> PortioList portio_pageh; >>>> } I8257State; >>>> +void i8257_dma_init(ISABus *bus, bool high_page_enable); >>>> + >>>> #endif >>>> diff --git a/include/hw/isa/isa.h b/include/hw/isa/isa.h >>>> index 95593408ef..b9dbab24b4 100644 >>>> --- a/include/hw/isa/isa.h >>>> +++ b/include/hw/isa/isa.h >>>> @@ -151,6 +151,4 @@ static inline ISABus >>>> *isa_bus_from_device(ISADevice *d) >>>> return ISA_BUS(qdev_get_parent_bus(DEVICE(d))); >>>> } >>>> -/* i8257.c */ >>>> -void DMA_init(ISABus *bus, int high_page_enable); >>>> #endif >>>> diff --git a/hw/dma/i82374.c b/hw/dma/i82374.c >>>> index 6c0f975df0..83c87d92e0 100644 >>>> --- a/hw/dma/i82374.c >>>> +++ b/hw/dma/i82374.c >>>> @@ -24,6 +24,7 @@ >>>> #include "qemu/osdep.h" >>>> #include "hw/isa/isa.h" >>>> +#include "hw/dma/i8257.h" >>>> #define TYPE_I82374 "i82374" >>>> #define I82374(obj) OBJECT_CHECK(I82374State, (obj), TYPE_I82374) >>>> @@ -123,7 +124,7 @@ static void i82374_realize(DeviceState *dev, Error >>>> **errp) >>>> portio_list_add(&s->port_list, >>>> isa_address_space_io(&s->parent_obj), >>>> s->iobase); >>>> - DMA_init(isa_bus_from_device(ISA_DEVICE(dev)), 1); >>>> + i8257_dma_init(isa_bus_from_device(ISA_DEVICE(dev)), true); >>>> memset(s->commands, 0, sizeof(s->commands)); >>>> } >>>> diff --git a/hw/dma/i8257.c b/hw/dma/i8257.c >>>> index bd23e893bf..52675e97c9 100644 >>>> --- a/hw/dma/i8257.c >>>> +++ b/hw/dma/i8257.c >>>> @@ -24,7 +24,7 @@ >>>> #include "qemu/osdep.h" >>>> #include "hw/hw.h" >>>> #include "hw/isa/isa.h" >>>> -#include "hw/isa/i8257.h" >>>> +#include "hw/dma/i8257.h" >>>> #include "qemu/main-loop.h" >>>> #include "trace.h" >>>> @@ -622,7 +622,7 @@ static void i8257_register_types(void) >>>> type_init(i8257_register_types) >>>> -void DMA_init(ISABus *bus, int high_page_enable) >>>> +void i8257_dma_init(ISABus *bus, bool high_page_enable) >>>> { >>>> ISADevice *isa1, *isa2; >>>> DeviceState *d; >>>> diff --git a/hw/i386/pc.c b/hw/i386/pc.c >>>> index 81364932d3..ec75b09a8f 100644 >>>> --- a/hw/i386/pc.c >>>> +++ b/hw/i386/pc.c >>>> @@ -41,6 +41,7 @@ >>>> #include "elf.h" >>>> #include "multiboot.h" >>>> #include "hw/timer/mc146818rtc.h" >>>> +#include "hw/dma/i8257.h" >>>> #include "hw/timer/i8254.h" >>>> #include "hw/audio/pcspk.h" >>>> #include "hw/pci/msi.h" >>>> @@ -1609,7 +1610,7 @@ void pc_basic_device_init(ISABus *isa_bus, >>>> qemu_irq *gsi, >>>> port92_init(port92, a20_line[1]); >>>> g_free(a20_line); >>>> - DMA_init(isa_bus, 0); >>>> + i8257_dma_init(isa_bus, 0); >>>> for(i = 0; i < MAX_FD; i++) { >>>> fd[i] = drive_get(IF_FLOPPY, 0, i); >>>> diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c >>>> index dc77b55755..0545fcd899 100644 >>>> --- a/hw/mips/mips_fulong2e.c >>>> +++ b/hw/mips/mips_fulong2e.c >>>> @@ -22,6 +22,7 @@ >>>> #include "qapi/error.h" >>>> #include "hw/hw.h" >>>> #include "hw/i386/pc.h" >>>> +#include "hw/dma/i8257.h" >>>> #include "hw/char/serial.h" >>>> #include "hw/char/parallel.h" >>>> #include "hw/block/fdc.h" >>>> @@ -360,7 +361,7 @@ static void mips_fulong2e_init(MachineState >>>> *machine) >>>> /* init other devices */ >>>> pit = i8254_pit_init(isa_bus, 0x40, 0, NULL); >>>> - DMA_init(isa_bus, 0); >>>> + i8257_dma_init(isa_bus, 0); >>>> /* Super I/O */ >>>> isa_create_simple(isa_bus, "i8042"); >>>> diff --git a/hw/mips/mips_jazz.c b/hw/mips/mips_jazz.c >>>> index b24305b7b4..827ffdcd4a 100644 >>>> --- a/hw/mips/mips_jazz.c >>>> +++ b/hw/mips/mips_jazz.c >>>> @@ -27,6 +27,7 @@ >>>> #include "hw/mips/mips.h" >>>> #include "hw/mips/cpudevs.h" >>>> #include "hw/i386/pc.h" >>>> +#include "hw/dma/i8257.h" >>>> #include "hw/char/serial.h" >>>> #include "hw/char/parallel.h" >>>> #include "hw/isa/isa.h" >>>> @@ -220,7 +221,7 @@ static void mips_jazz_init(MachineState *machine, >>>> /* ISA devices */ >>>> i8259 = i8259_init(isa_bus, env->irq[4]); >>>> isa_bus_irqs(isa_bus, i8259); >>>> - DMA_init(isa_bus, 0); >>>> + i8257_dma_init(isa_bus, 0); >>>> pit = i8254_pit_init(isa_bus, 0x40, 0, NULL); >>>> pcspk_init(isa_bus, pit); >>>> diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c >>>> index c74882c7e9..9cb86c432e 100644 >>>> --- a/hw/mips/mips_malta.c >>>> +++ b/hw/mips/mips_malta.c >>>> @@ -27,6 +27,7 @@ >>>> #include "cpu.h" >>>> #include "hw/hw.h" >>>> #include "hw/i386/pc.h" >>>> +#include "hw/dma/i8257.h" >>>> #include "hw/char/serial.h" >>>> #include "hw/char/parallel.h" >>>> #include "hw/block/fdc.h" >>>> @@ -1209,7 +1210,7 @@ void mips_malta_init(MachineState *machine) >>>> smbus_eeprom_init(smbus, 8, smbus_eeprom_buf, smbus_eeprom_size); >>>> g_free(smbus_eeprom_buf); >>>> pit = i8254_pit_init(isa_bus, 0x40, 0, NULL); >>>> - DMA_init(isa_bus, 0); >>>> + i8257_dma_init(isa_bus, 0); >>>> /* Super I/O */ >>>> isa_create_simple(isa_bus, "i8042"); >>>> diff --git a/hw/sparc/sun4m.c b/hw/sparc/sun4m.c >>>> index 0f5804b3b4..fa1bfd6c92 100644 >>>> --- a/hw/sparc/sun4m.c >>>> +++ b/hw/sparc/sun4m.c >>>> @@ -99,10 +99,6 @@ struct sun4m_hwdef { >>>> uint8_t nvram_machine_id; >>>> }; >>>> -void DMA_init(ISABus *bus, int high_page_enable) >>>> -{ >>>> -} >>>> - >>>> static void fw_cfg_boot_set(void *opaque, const char *boot_device, >>>> Error **errp) >>>> { >>>> diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c >>>> index ceb1ba7eaf..0ca0243821 100644 >>>> --- a/hw/sparc64/sun4u.c >>>> +++ b/hw/sparc64/sun4u.c >>>> @@ -90,10 +90,6 @@ typedef struct EbusState { >>>> #define TYPE_EBUS "ebus" >>>> #define EBUS(obj) OBJECT_CHECK(EbusState, (obj), TYPE_EBUS) >>>> -void DMA_init(ISABus *bus, int high_page_enable) >>>> -{ >>>> -} >>>> - >>>> static void fw_cfg_boot_set(void *opaque, const char *boot_device, >>>> Error **errp) >>>> { >>>> diff --git a/MAINTAINERS b/MAINTAINERS >>>> index c0f1620f3a..335c6c9f65 100644 >>>> --- a/MAINTAINERS >>>> +++ b/MAINTAINERS >>>> @@ -929,8 +929,8 @@ F: hw/timer/mc146818rtc* >>>> F: hw/watchdog/wdt_ib700.c >>>> F: include/hw/display/vga.h >>>> F: include/hw/char/parallel.h >>>> +F: include/hw/dma/i8257.h >>>> F: include/hw/i2c/pm_smbus.h >>>> -F: include/hw/isa/i8257.h >>>> F: include/hw/timer/hpet.h >>>> F: include/hw/timer/i8254* >>>> F: include/hw/timer/mc146818rtc* >>>> >>> >>> Presumably these DMA_init() functions have been unused on sun4u/sun4m >>> for a while which is why they are being removed? Might be worth a >>> mention of this in the commit message. >> >> >> Apparently (from git log) once the Sparc machine was copied from the PC >> machine (~ 6f7e9aec5), using an empty stub, and finally got cleaned in >> ba0a71022 but this function was missed. So this function has never been >> implemented. >> >> I'll add a comment if I need to respin, or gently add the maintainer to >> update the commit message if this series is accepted :) >> >> Thanks! >> >> Phil. > > > Got it. In that case for sun4/sun4u: > > Reviewed-by: Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk>
Out of curiosity, isn't ISA-DMA used by FDthree on Ultra-5/Ultra-10 machines? -- Regards, Artyom Tarasenko SPARC and PPC PReP under qemu blog: http://tyom.blogspot.com/search/label/qemu