Pc_floppy does not work

I have a question about pc_floppy on mine it doesn’t work even if I have the floppy without problems :’/

Please report bugs at dev.haiku-os.org .


The excuse had forgotten but thanks anyway ^^

Your question too. At least i cant seem to find it, :wink:

I just did it on dev

I think this driver is not finished and difficult to test because of lack of hardware in the hands of the developers.

so true … i will learn programming to try to make it work lol it will be difficult ;w;

1 Like

I found this one from linux but I don’t know how to compile
if anyone thinks Freebsd will help ;>

You can’t use Linux drivers in Haiku because we don’t use the same kernel.

A useful reference for drivers like this is the osdev wiki: Floppy Disk Controller - OSDev Wiki and it links to various other documents and sourcecode of drivers for other systems. You can look what they did, compare with our own driver, and see what we are missing.

Probably you will need to recompile our driver (not the Linux one) with extra tracing to be able to see in the syslog what it’s doing.


thanks so it will help a lot, i knew this about the kernel part why i was behind freebsd.

If there was one piece of missing functionality that having the BeOS source code could provide, this has got to be it! BeOS had floppy support :slight_smile:

1 Like

It’s not the most difficult driver to write.

There is some interesting bits in the way BeOS did it, but it shouldn’t be too hard to replicate. Basically they had the floppy copied to a RAM disk, and they would read it on mount, and write it back to disk on unmount only. This makes it much faster to work with floppies and probably made the driver a little simpler since it only needed a “read the whole disk” and a “write the whole disk” operations.

On the other hand, it was not possible to do any kind of low level access to the floppy, which I’d have used a lot at the time to write custom floppy formats for use with old 8bit computers. So it was in fact not suitable for my main use of floppies. Surely we could do better on this part.


Well I don’t know how it worked on BeOS, but writing a whole disk should be a long jurney… What about writing only the “diff’ed” sectors?


After looking over the pc_floppy driver’s code, it looks like the reason this driver isn’t functional is that the “Driver Configuration Manager” (a system module that was used for keeping track of internally connected devices on BeOS) is currently unimplemented.

The pc_floppy driver attempts to scan on the ISA bus for floppy drives using the Driver Configuration Manager here:

This is the code attempting to be called:

I think the solution here would involve wrapping the Driver Configuration Manager around the newer Device Manager framework. However, I don’t think the Device Manager framework has any ISA PNP scanning capabilities… Furthermore, Haiku’s ISA Bus Manager has holes when it comes to DMA transfers. (Though that wouldn’t be a problem for smaller transfers I would think? :thinking:)


For floppy disk controllers, there is no plug and play (the floppy controller is just at a fixed address that everyone knows and has not changed since the first model of IBM PC).

Some work was started to handle this type of device with the config_manager (I don’t think it is related to BeOS?). But probably we should use FDT instead to describe that type of hardware.


from what I understand and almost like NewOS too

it really can be better this way, I would spend less time and would only access the sector when opening a file for example, I don’t know how they will do more reading the entire disk it should also work fine, I’m just in doubt if it will make it possible to make a bootable floppy disk on account of it’s all in the ram

I forgot to put my ticket first but it’s here
there are some errors, but it’s because it was the first time I made a

1 Like

This looks like a duplicate of ticket https://dev.haiku-os.org/ticket/3287

This is over 10 years old, apparently nobody really cares about floppy drives on haiku.


yeah, I saw this one but as it’s been over 10 years I ended up making another one