[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 0/9] hw/block/fdc: Allow Kconfig-selecting ISA bus/SysBus
From: |
Hervé Poussineau |
Subject: |
Re: [PATCH v4 0/9] hw/block/fdc: Allow Kconfig-selecting ISA bus/SysBus floppy controllers |
Date: |
Sat, 22 May 2021 08:51:22 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.0 |
Le 18/05/2021 à 09:14, Philippe Mathieu-Daudé a écrit :
Cc'ing Hervé, Aleksandar, Markus & Mark.
On 5/17/21 11:11 PM, John Snow wrote:
On 5/17/21 4:50 PM, Philippe Mathieu-Daudé wrote:
On 5/17/21 9:19 PM, John Snow wrote:
On 5/17/21 2:39 PM, Philippe Mathieu-Daudé wrote:
The floppy disc controllers pulls in irrelevant devices (sysbus in
an ISA-only machine, ISA bus + isa devices on a sysbus-only machine).
This series clean that by extracting each device in its own file,
adding the corresponding Kconfig symbols: FDC_ISA and FDC_SYSBUS.
Not good enough:
Yup, I see. Dropping it from the queue for now. Thanks!
The Jazz machines use the sysbus FDC model, but register a DMA channel.
The DMA transfer is done using:
if (fdctrl->dma_chann != -1 && !(fdctrl->msr & FD_MSR_NONDMA)) {
IsaDmaClass *k = ISADMA_GET_CLASS(fdctrl->dma);
k->release_DREQ(fdctrl->dma, fdctrl->dma_chann);
}
The IsaDmaTransferHandler is ISA specific...
I suppose the Jazz machines should use the ISA FDC model.
>
> Hervé, Aleksandar, do you know?
The Jazz machine uses the standard floppy controller (i82077)
FDC registers are accessible at memory-mapped address 0x80003000-0x80003007
FDC interrupt is using custom Jazz interrupt controller, with interrupt #1.
FDC DMA is using custom Jazz DMA channel controller, with channel #1.
You can find in jazz.c the following code:
/* FIXME: we should enable DMA with a custom IsaDma device */
fdctrl_init_sysbus(qdev_get_gpio_in(rc4030, 1), -1, 0x80003000, fds);
I had in the idea to wrap the custom Jazz interrupt controller in a IsaDma
structure,
to use it with floppy controller, but I never took the time to do it + test it.
So, floppy drive never worked for me, neither with Windows NT 4, nor with Linux
kernels.
You can do what you feel the best, as long as you keep the possibility to use
the floppy
model with something else than a i8259 DMA controller.
Regards,
Hervé
- [PATCH v4 4/9] hw/block/fdc: Extract ISA floppy controllers to fdc-isa.c, (continued)
- [PATCH v4 4/9] hw/block/fdc: Extract ISA floppy controllers to fdc-isa.c, Philippe Mathieu-Daudé, 2021/05/17
- [PATCH v4 5/9] hw/block/fdc: Extract SysBus floppy controllers to fdc-sysbus.c, Philippe Mathieu-Daudé, 2021/05/17
- [PATCH v4 6/9] hw/block/fdc: Add sysbus_fdc_init_drives() method, Philippe Mathieu-Daudé, 2021/05/17
- [PATCH v4 7/9] hw/sparc/sun4m: Inline sun4m_fdctrl_init(), Philippe Mathieu-Daudé, 2021/05/17
- [PATCH v4 8/9] hw/block/fdc-sysbus: Add 'dma-channel' property, Philippe Mathieu-Daudé, 2021/05/17
- [PATCH v4 9/9] hw/mips/jazz: Inline fdctrl_init_sysbus(), Philippe Mathieu-Daudé, 2021/05/17
- Re: [PATCH v4 0/9] hw/block/fdc: Allow Kconfig-selecting ISA bus/SysBus floppy controllers, John Snow, 2021/05/17