Direct Floppy Driver DF - ghaerr/elks GitHub Wiki
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