[SeaBIOS] [PATCH 1/5] floppy: hold the DOR reset bit low for 4 microseconds, when resetting the floppy controller
nickysn at gmail.com
Fri Feb 9 01:41:53 CET 2018
This patch series makes SeaBIOS work with a real floppy controller.
Only a single 1.44 MB floppy drive with a 1.44 MB diskette was tested.
Both reading and writing works. Formatting was not tested. I also
tested QEMU - seems to work fine.
On Fri, 2018-02-09 at 02:30 +0200, Nikolay Nikolov wrote:
> Signed-off-by: Nikolay Nikolov <nickysn at users.sourceforge.net>
> src/hw/floppy.c | 2 ++
> 1 file changed, 2 insertions(+)
> diff --git a/src/hw/floppy.c b/src/hw/floppy.c
> index 3012b3a..16989c2 100644
> --- a/src/hw/floppy.c
> +++ b/src/hw/floppy.c
> @@ -328,6 +328,8 @@ floppy_enable_controller(void)
> dprintf(2, "Floppy_enable_controller\n");
> // Clear the reset bit (enter reset state), but set 'enable IRQ
> and DMA'
> floppy_dor_mask(FLOPPY_DOR_RESET, FLOPPY_DOR_IRQ);
> + // Real hardware needs a 4 microsecond delay
> + usleep(4);
> // Set the reset bit (normal operation) and keep 'enable IRQ and
> DMA' on
> floppy_dor_mask(0, FLOPPY_DOR_IRQ | FLOPPY_DOR_RESET);
> int ret = floppy_wait_irq();
More information about the SeaBIOS