diff --git a/hardware/ideterqua.rst b/hardware/ideterqua.rst index eac7c93..a8f9a24 100644 --- a/hardware/ideterqua.rst +++ b/hardware/ideterqua.rst @@ -16,14 +16,17 @@ The following resources are used by these additional controllers: |Quaternary|01E8h |03EEh |11 | +----------+-------------+---------------+---+ -These controllers are not Plug and Play compliant. If the emulated machine supports Plug and Play (through ISA, PCI or other means), remember to mark the IRQ(s) as being used by a legacy ISA device in the BIOS setup utility. +Each controller's IRQ can be configured through its respective *Settings* button on :ref:`settings/storage:Tertiary / Quaternary IDE Controller`. The *Plug and Play* option on the *IRQ* box enables Plug and Play functionality, allowing a PnP compliant operating system to automatically set the controller's IRQ, while all other options set a static IRQ with no Plug and Play. -.. note:: While the IRQ for each channel can be changed through its respective *Settings* button on :ref:`settings/storage:Tertiary / Quaternary IDE Controller`, many operating systems do not allow legacy (ISA or VLB) IDE controllers to use custom IRQs. +.. note:: * When using a non-Plug and Play IDE controller on an emulated machine which supports Plug and Play, remember to mark the IRQ as being used by a legacy ISA device in the BIOS setup utility. + * Many operating systems do not allow non-Plug and Play IDE controllers to use IRQs outside of the default ones listed on the table above. BIOS support ------------ -The tertiary and quaternary controllers are not visible and not bootable by the BIOS on most machines currently emulated by 86Box. Machines with **MR BIOS version 3** are the rare exception; that BIOS provides full support for these controllers, including bootability and INT 13h services. +The tertiary and quaternary controllers are not visible and not bootable by the BIOS on most machines currently emulated by 86Box, no matter whether or not they are Plug and Play. + +Machines with **MR BIOS version 3** are the rare exception to this rule, since that BIOS provides full support for non-Plug and Play controllers (as long as the :ref:`default IRQs for each controller ` are used), including bootability and INT 13h services. Operating system support ------------------------ @@ -31,12 +34,12 @@ Operating system support DOS and real mode ^^^^^^^^^^^^^^^^^ -DOS and other real mode operating systems rely on INT 13h services provided by the BIOS to access hard disks. These are only provided for the tertiary and quaternary channels by **MR BIOS version 3**, as mentioned above. +**DOS and other real mode operating systems** rely on INT 13h services provided by the BIOS to access hard disks. These are only provided for the tertiary and quaternary channels by **MR BIOS version 3**, as mentioned above. Windows 95, 98 and Me ^^^^^^^^^^^^^^^^^^^^^ -The Windows 9x family will only detect and enable both additional channels during installation :ref:`if the BIOS supports them `. Each additional channel can be enabled after installation through the following steps: +The **Windows 9x family** will automatically detect Plug and Play IDE controllers on boot. Non-Plug and Play controllers will be detected during installation :ref:`only if the BIOS supports them `. Follow these steps to enable a non-Plug and Play controller on an already-installed system: 1. Go to the *Add New Hardware* control panel. 2. Add a *Standard IDE/ESDI Hard Disk Controller* from the *Hard disk controllers* category. @@ -45,12 +48,12 @@ The Windows 9x family will only detect and enable both additional channels durin 5. Select the newly-added *Standard IDE/ESDI Hard Disk Controller* device from the *Hard disk controllers* category and click *Properties*. 6. Go to the *Resources* tab. 7. Select *Basic configuration 4* in the *Settings based on* box. -8. Change the resource settings to match the :ref:`table above `. The first *Input/Output Range* range corresponds to the **main** I/O port, the second one corresponds to the **status** I/O port, and *Interrupt Request* corresponds to the IRQ. +8. Change the resource settings to match the I/O ports on the :ref:`table above ` and the configured IRQ. The first *Input/Output Range* range corresponds to the **main** I/O port, the second one corresponds to the **status** I/O port, and *Interrupt Request* corresponds to the IRQ. * The status I/O port range is off by 6. Select 0368 for the tertiary channel or 03E8 for the quaternary channel. * The screenshot below shows an example configuration for the tertiary channel. -9. If both the tertiary and quaternary channels are enabled, repeat the steps above to add the other channel. +9. If both the tertiary and quaternary channels are enabled, repeat the steps above to enable the other controller. .. image:: images/ideterqua_win98.png :align: center @@ -58,25 +61,35 @@ The Windows 9x family will only detect and enable both additional channels durin Windows NT, 2000 and XP ^^^^^^^^^^^^^^^^^^^^^^^ -The Windows NT family (from 3.5 to XP) will automatically detect and enable both additional channels during installation, regardless of BIOS support. This auto-detection does not, however, work on machines with **Award BIOS**, except for the version which identifies itself as *Phoenix - AwardBIOS v6.00PG*, where it does work. +**Windows 2000 and XP** will automatically detect Plug and Play IDE controllers on boot. Additionally, **Windows NT 3.5, 4.0, 2000 and XP** will automatically detect non-Plug and Play controllers during installation, regardless of BIOS support; this auto-detection of non-PnP controllers does not, however, work on machines with **Award BIOS**, except for the version which identifies itself as *Phoenix - AwardBIOS v6.00PG*, where it does work. -.. note:: If you install the system to a hard disk on one of the additional channels, it will not be bootable if the BIOS doesn't support booting from these channels. +.. note:: If you install the system to a hard disk on one of the additional controllers, it will not be bootable if the BIOS doesn't support booting from these controllers. -On Windows 2000 only, the additional channels can be enabled after the system is installed through *Add New Hardware* similarly to Windows 95/98/Me above, although the I/O ports and IRQ cannot be changed. *Basic configuration 0003* corresponds to the **tertiary** channel, while *Basic configuration 0002* corresponds to the **quaternary** channel. +On **Windows 2000 only**, non-Plug and Play controllers can be enabled on an already-installed system through *Add New Hardware* similarly to :ref:`Windows 9x as shown above `. The resource parameters cannot be changed, and therefore, only the :ref:`default IRQs for each controller ` are supported. *Basic configuration 0003* corresponds to the **tertiary** channel, while *Basic configuration 0002* corresponds to the **quaternary** channel. Windows Vista and 7 ^^^^^^^^^^^^^^^^^^^ -The Windows NT 6 family does not support legacy non-Plug-and-Play IDE controllers, and therefore cannot use the additional channels as currently emulated by 86Box. +The **Windows NT 6 family** does not support legacy (ISA or VLB) IDE controllers, and therefore cannot use the additional channels as currently emulated by 86Box. Linux ^^^^^ -On kernels with ``libata`` (typically 2.6.19 and newer), run the ``modprobe pata_legacy probe_all=1`` command as root to enable both additional channels. Consult your distribution's documentation on how to load that module on startup. +There are different steps for enabling additional IDE controllers on Linux, depending on which IDE driver stack is used by your distribution's kernel. -On kernels without ``libata`` (typically older than 2.6.19), add the following parameters to the kernel command line to enable their respective channels: +Modules can be loaded at any time with the ``modprobe`` command, or loaded on boot by adding the module's name (and parameters if required) to a file in ``/etc/modules-load.d`` on newer systemd-based distributions, or the ``/etc/modules`` file on older distributions. -* **Tertiary:** ``ide2=0x168,0x36e,10`` (assuming IRQ 10) -* **Quaternary:** ``ide3=0x1e8,0x3ee,11`` (assuming IRQ 11) +* **libATA** (typically kernels **2.6.19 and above**): -.. note:: Some Linux distributions may automatically detect and enable both additional channels; however, that is very rarely the case. + * Load the ``pata_isapnp`` module to enable Plug and Play controllers. + * Load the ``pata_legacy`` module with the ``probe_all=1`` parameter to automatically detect and enable non-Plug and Play controllers. Only the :ref:`default IRQs for each controller ` are supported. + +* **Legacy IDE** (typically kernels **older than 2.6.19**): + + * Load the ``ide-pnp`` module to enable Plug and Play controllers. + * Non-Plug and Play controllers require editing the kernel command line on your bootloader to add each controller's I/O ports and IRQ: + + * **Tertiary:** ``ide2=0x168,0x36e,10`` (assuming IRQ 10) + * **Quaternary:** ``ide3=0x1e8,0x3ee,11`` (assuming IRQ 11) + +.. note:: Some distributions may automatically detect additional IDE controllers; however, that is very rarely the case.