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