[SeaBIOS] [PATCH 1/5] floppy: hold the DOR reset bit low for 4 microseconds, when resetting the floppy controller

Nikolay Nikolov 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.

Nikolay

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 mailing list