Theory of Operation
R
SATA Programmer’s Reference Manual
25
4.3.1.1.2
Enabling/Disabling a SATA Port from an Operating System Driver
To disable or enable a SATA port, system software need only program the
PCS.PxE
(where
x
is 0
for Port 0 or 1 for Port 1) bit(s) with a
0 or a 1. Note that the SATA host controller hardware
allows the
PCS.PxE
bits to be written to individually or simultaneously. A WDM driver may
program the
PCS.PxE
bits directly (through the PCI driver) or indirectly (through an ACPI control
method – see
Device Presence Check – Using ACPI
for an example of how to call an ACPI
control method from a WDM driver).
A.1 Enabling/Disabling SATA Ports from a WDM Driver
illustrates how a WDM driver could
read/write the
PCS.PxE
bits for enabling or disabling the SATA port(s).
Note:
Because the SATA host controller is designed with backward compatibility in mind, it is not
expected that existing operating system software designed for P-ATA host controllers should ever
have to modify the
PCS.PxE
bits directly; this shall be done by the system BIOS and/or ACPI
control methods (see Section:
4.3.1.1.3 Enabling/Disabling a SATA Port from ACPI
4.3.1.1.3
Enabling/Disabling a SATA Port from ACPI
Enabling and disabling of the SATA ports is also a function of the standard
PSx
(_PS0 or _PS3 –
these control methods can be used to supplement the device power management and are executed
whenever the operating system wishes to place the SATA into the D0 and D3 power states,
respectively)
control methods found in the ACPI namespace for the SATA controller
.
By enabling the SATA ports when the host controller transitions to the D0 power state (via
_PS0
)
and disabling the SATA ports prior to the host controller transitioning to the D3 power state (via
_PS3
), backward compatibility with system software designed for non-ICH5 SATA aware ACPI
operating systems will be maintained.
Using ACPI can also be beneficial to device drivers that comprehend the ICH5 SATA in that the
ACPI implementation abstracts the actual hardware implementation and location of the
PCS
register. This is especially useful if hardware designers require a change in the location in PCI
configuration space of the
PCS
register due to silicon stepping requirements. Using ACPI could
prevent a re-spin of the device driver and any subsequent re-validation.
A.2 Enabling/Disabling SATA Ports in the _PSx Control
Method provides an example of how the
SATA ports are enabled and disabled via the
_PS0
and
PS3
control methods.
Note:
For those platforms that support hot insertion/removal of SATA devices through specialized
hardware, the associated ACPI control methods (e.g., _EJx) shall also implement ASL (ACPI
Script Language) code that disables a SATA port (for device removal events) and enables a SATA
port (for device insertion events).
Summary of Contents for 82801EB
Page 6: ...R 6 SATA Programmer s Reference Manual This page is intentionally left blank...
Page 8: ...Introduction R 8 SATA Programmer s Reference Manual This page is intentionally left blank...
Page 10: ...Conventions R 10 SATA Programmer s Reference Manual This page is intentionally left blank...
Page 59: ...Theory of Operation R SATA Programmer s Reference Manual 59...