First post, by RayeR
- Rank
- Oldbie
Hi,
I returned a bit to my old project started many years ago. It's SuperIO expander test board with W83627HF attached to LPC (via TPM header). The purpose was to bring back legacy peripherals like FDC, LPT and COM to relative modern MBs (that still has LPC but don't have this). You may use Google tran. or so... http://rayer.g6.cz/hardware/lpc_sio.htm
I wrote some code that is able to do some minimal configuration of W83627HF and enable the FDC block. I attached a common 3,5" HD FDD and I'd like to test it. Problem is that on current MB (my main PC that I use) I don't have routed LDRQ# to TPM so FDC cannot use DMA. Also I'd like to make it more universal so it could work also on MBs that cannot reach LDRQ#...
I read that floppy can work in non-DMA mode where's only IRQ used for reading the incoming Bytes. Any PC faster than old PC-XT should handle it. I read that Linux floppy driver has option for non-DMA mode so this is the 1st thing I tried but it doesn't work as expected. I added kernel boot parameter "floppy=0,4,cmos nodma messages" and booted via linld.com from DOS just after I run my DOS utility that enabled the FDC in SuperIO. I got "Floppy drive(s): fd0 is 1.44M" in dmesg and also the /dev/fd0 block device. When I tried to mount without floppy inserted it did short seek sound, LED blinked and got an error:
[ 71.265686] blk_update_request: I/O error, dev fd0, sector 0
[ 71.268236] floppy: error -5 while reading block 0
[ 71.295694] blk_update_request: I/O error, dev fd0, sector 0
[ 71.298239] floppy: error -5 while reading block 0
Then I inserted a floppy and tried again. The motor started spinning and LED light on but it was endlessly spinning without head moves. I checked that interrupts (IRQ6) from FDC are comming in /proc/interrupts but mount was hanged and it required multiple CTR+ALT+DEL to kill it and shutdown properly...
Then I tried 2 suggested DOS utils: 765DEBUG 5.0 and ImageDisk 1.20. I have some success that I can move heads at desired positions but anytime I tried a read/write/format I got an "overrun error" Later I was pointed to source code of that utils and seen that both use DMA so it obviously couldn't work because DMA request ends in the nowhere so data never comes...
So I would need some working util (or maybe an OS) that handles floppy via PIO/IRQ and not DMA. If it would success it will be possible to write a TSR that will extend INT13h services for floppy routines so DOS and other programs that don't use FDC direct access could access it.
Note: also asked on http://www.bttr-software.de/forum/forum_entry.php?id=21513 but lead to nowhere...
Gigabyte GA-P67-DS3-B3, Core i7-2600K @4,5GHz, 8GB DDR3, 128GB SSD, GTX970(GF7900GT), SB Audigy + YMF724F + DreamBlaster combo + LPC2ISA