Last change
on this file since 80 was 80, checked in by chris, 14 years ago |
Version 1.06
============
- Finally came across a BIOS which accesses the ICH7/8 controller via SATA
registers (i.e. not AHCI mode). This required a few changes to the code
at boot time because it turned out that COMRESETs are required whenever
switching to/from AHCI mode to allow the AHCI or SATA controller to
re-discover the attached devices:
- 'init_reset' will now be forced on when finding a controller in
non-AHCI mode at boot time.
- A COMRESET is initiated for each implemented port after turning off
AHCI mode when restoring the BIOS configuration; this is done only
for Intel controllers at this point because they map the AHCI port SCR
MMIO registers even when not in AHCI mode.
- apm_suspend() has been adjusted to restore the BIOS configuration to
prevent needless timeouts when the BIOS takes over during suspend or
power-off operations.
- Small changes to the functions which save/restore BIOS/port settings
to avoid pitfalls; among others, the port save/restore code now also
saves and restores the port's engine status.
- Improvements to debug logging around port resets.
- Moved code to clear pending interrupts from ahci_reset_port() to
ahci_stop_port() because both need it and resetting a port involves
stopping it, first.
- NCQ mode has found to cause problems on a Dell D630. This may be related
to the hard disk used for the test but since I've never seen more than
one queued command regardless of the I/O load (even during simulaneous
xcopy operations), NCQ mode is now off by default and needs to be turned
on via the /N switch (i.e. the the /N switch now has a reversed meaning).
- Removed the code which attempts to establish another MMIO base address
in case the one assigned by the BIOS can't be reserved via resource manager;
if there's a conflict, it's extremely unlikely we would ever be able to
restore the BIOS MMIO address at boot time without the BIOS clashing with
whatever conflicts with the MMIO address, thus there's no point trying to
do any of this.
- Implemented a reset context hook watchdog; in the early boot phase, some
components apparently don't yield the CPU so the context hook will never
execute without the watchdog. Now we'll give the context hook 10 seconds
to execute, otherwise the watchdog will expire and we'll call the context
hook directly from the corresponding timer callback.
|
File size:
487 bytes
|
Line | |
---|
1 | library os2ahci
|
---|
2 | Description '$@#thi.guten (www.thiguten.de):1.00.20110228#@OS/2 AHCI Adapter Device Driver'
|
---|
3 | protmode
|
---|
4 |
|
---|
5 | segments
|
---|
6 | DEVHDR CLASS 'DATA'
|
---|
7 | _DATA CLASS 'DATA'
|
---|
8 | CONST CLASS 'CONST'
|
---|
9 | _BSS CLASS 'BSS'
|
---|
10 | c_common CLASS 'BSS'
|
---|
11 | _z_data CLASS 'BSS'
|
---|
12 | _TEXT CLASS 'CODE' IOPL
|
---|
13 | 'CODE' CLASS 'CODE' IOPL
|
---|
14 | RMCode CLASS 'CODE' IOPL
|
---|
15 | LIBCODE CLASS 'CODE' IOPL
|
---|
16 | _z_text CLASS 'CODE' IOPL
|
---|
17 |
|
---|
Note:
See
TracBrowser
for help on using the repository browser.