Re: floppy problem & Award BIOS floppy swap

Alain KNAFF (Alain.Knaff@imag.fr)
Tue, 16 Apr 1996 15:41:55 +0200


>Introduction:
>
>Recently I decided to add my 5.25" floppy drive to my new computer
>(Asus board with Triton chipset). I wanted the 5.25" drive to be the
>second drive, but unfortunately the connector plugged into A: was the
>conector on the far end of the cable, and in the middle was the
>connector(s) for drive B:. As I needed to have B: on the far end of
>the cable, I thought swapping the connectors AND changing the drive
>select would be a good idea. Unfortunately this ended up in a strange
>situaltion, where the light on drive A: went on simultaneously with
>the motor of drive B: and for the light of drive B: the motot of A:
>went on. So I undid the changes...
This is because the motor-on and select lines are actually different
wires. The LED is driven by the select line. The select line also
says which drive will communicate with the floppy disk controller.
The motor-on line only switches the motor, and nothing else. Most of
these jumperable drives only switch the select lines, not the motor-on
lines.

>Now the Asus BIOS is basically an Award BIOS that allows to swap
>floppy drives. As it seems this feature is not supported by hardware,
>but is done in software. It works fine for DOS, but for Linux the
>drive parameters seem swapped, and probably due to that I can't
>successfully access any drive. Now, is there any possibility for the
>floppy driver to work without the BIOS parameters, or is there a way
>to find out if drives are swapped in Award BIOS?

You may override the CMOS drive type by using the method described in
the REAMDE.fd file (included in the linux/drivers/block directory in
the kernel sources). However, the problem might be more than just the
CMOS type. Which floppy disk controller do you have? Some floppy disk
controllers (82078) allow you to switch drives in hardware, but
unfortunately, the necessary info is cleared during an FDC hard reset,
which happens when the FDC is initialized. If the latter is the case,
remove the following lines from the floppy_init function in
linux/drivers/block/floppy.c :
if (user_reset_fdc(-1,FD_RESET_ALWAYS,0)){
FDCS->address = -1;
continue;
}

>
>To really solve my problem, it seems I need a different cable...
>
>Ulrich
>

Alain