After release of OS4 Final Update there are some changes in the U-Boot environment variables that are used by the si0680.device driver.
Unfortunenatly my previous FAQ posting described the old way of setting the env variables, so I've decided to post an updated FAQ document which lists the changed variables I've described before.
The full documentation of all supported variables can be found on the installation CD of OS4 with the path OS4_Install_CD:Documentation/sii0680ide_dev/sii0680ide_dev.doc.
To activate the DMA support inside the U-Boot shell use now the following variable:
This allows to setup the transfer mode of all 4 possible devices/controller. This is done by entering a 4 character long string as value for this enviroment variable. The characters have the following meaning (read from left to right):
Primary master, primary slave, secondary master, secondary slave
Use one of the following characters to setup your connected devices (case-sensitive!!):
0 - Automatic PIO (driver will use the best PIO mode that the drive claims to support)
a - PIO 0 ( 3 MB/s, modeid 8)
b - PIO 1 ( 5 MB/s, modeid 9)
c - PIO 2 ( 8 MB/s, modeid 10)
d - PIO 3 ( 11 MB/s, modeid 11)
e - PIO 4 ( 16 MB/s, modeid 12)
A - UDMA 0 ( 16 MB/s, modeid 64)
B - UDMA 1 ( 25 MB/s, modeid 65)
C - UDMA 2 ( 33 MB/s, modeid 66)
D - UDMA 3 ( 44 MB/s, modeid 67)
E - UDMA 4 ( 66 MB/s, modeid 68)
F - UDMA 5 (100 MB/s, modeid 69)
G - UDMA 6 (133 MB/s, modeid 70)
For CD/DVD one should use 0, for harddiscs I highly recommend to setup a DMA mode supported by your drive(s).If you setup an unsupported mode the driver auto-selects the best possible mode from the device.
Another interesting variable is
This allows to setup the type of connected device on all used ports. Again you enter these config as 4 character long string, this time with the values 0,1,2 which have the following meaning:
0 : No device connected
1 : Harddisc
2 : DVD/CD-Rom or burner
So the string 1020 would mean:
Primary Master: Harddisc
Primary Slave: Nothing connected
Secondary Master: DVD/CD-Rom
Secondary Slave: Nothing connected
These are the major changes related to my previous posting. There exists some other variables to change the timeout of the IDE buses, activate or deactivate interrupt usage etc. I highly recommend to everyone: Read the supplied documentation to fully understand the usage of this driver!
To give you a live example: I have done the following steps to reconfigure the SI0680 after resetting the U-Boot to it's factory defaults:
Aborted booting process, disabled internal VIA controller inside the U-Boot menu (Boot Options), and setup boot device to use the external parallel controller instead of the internal one.
Now saved changes, again aborted boot process and entered the following commands in the U-Boot shell:
setenv sii0680ide_xfer F000
setenv sii0680ide_conf 1020
These settings have enabled UDMA5 for my hardisc on my primary master and setup auto-mode on my CDRom connected to secondary master. Also I have made known these connected devices to the driver with the 1020 value.
Have fun with OS4!