Skip to content

Direct Floppy Driver DF

toncho11 edited this page Feb 11, 2024 · 9 revisions

The DF (direct to hardware floppy) driver communicates directly to the floppy controller without passing through the BIOS, allowing for asynchronous floppy I/O within the kernel. This driver is not enabled by default.

Configuration

  • configure the kernel with "Direct to hw floppy support" in Block Device Drivers using make menuconfig. This will set CONFIG_BLK_DEV_FD and CONFIG_ASYNCIO in .config.
  • set root=/dev/df0 in /bootopts

Advantages

  • the CPU does not wait for a floppy read/write operation to complete, which is otherwise necessary when using the BIOS for floppy I/O. This frees up CPU cycles for running other tasks in a multitasking environment. This is specifically useful when running background applications such as networking that can continue to run without waiting for a slower floppy read or write to complete.
  • will help with future porting to non-standard 8088/8086 systems that do not have a BIOS or are not an IBM compatible one such as: Sanyo MBC 555 and Apricot F1,F2,F10.

Supported floppy controllers

Chip System
8272A/NEC765 IBM PC, IBM PC/XT
8272A/NEC765 IBM PC/AT
8272A/NEC765 IBM PS/2 (gen 1)
82072 IBM PS/2 (gen 2)
82077AA IBM PS/2 (gen 3)

Code

elks/arch/i86/drivers/block/directfd.c