- Where can I find the stardand IDE Contorller spec for Windows XP?
- Posted by Kai Lidda on May 8th, 2008
Hi.
If we want to design a PCI-IDE Card, we shall know the stardand IDE Host
adapter spec, in order to support a generic device driver.
Where can I find the stardand IDE Contorller spec for Windows XP?
Does Microsoft define a rule let hardware vendors following it?
--
Sincerely Yours,
- Posted by Maxim S. Shatskih on May 8th, 2008
It's an old PC/AT spec, with proprietary vendor extensions (about DMA) by
Intel, VIA and others.
I would suggest to abandon the "generic driver" idea and to make your own
driver (as a SCSI miniport maybe, not as IDE stack). The reason is that most
modern features of SATA like NCQ are not compatible with PC/AT controller's
register task file, so, if you're binding itself with a task file - then you're
technically impaired.
Some IDE RAID vendors like HighPoint use this approach for years.
--
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
maxim@storagecraft.com
http://www.storagecraft.com
"Kai Lidda" <KaiLidda@discussions.microsoft.com> wrote in message
news:7EA4151A-8A24-474E-A7F5-47341DF2B1B5@microsoft.com...
- Posted by Kai Lidda on May 8th, 2008
hi Maxim S. Shatskih
You are a Windows DDK MVP. Nice to meet you.
I study the Windows DDK about the IDE Driver Stack.
(force on Windows XP system)
It shows Vendors can elect to provide their own IDE controller minidriver
instead of using the native minidriver, pciide.sys. In other words, even
Vendors don't provide its minidriver, Windows will still be workable.
So, I think the default driver follows someone standards, do not?
Than I study the ATA Host Adapater Standards that T13 published.
Its a standard for ATA Controller.
May Windows follow it ?
--
Sincerely Yours,
---------------------------------------
"Maxim S. Shatskih" wrote:
- Posted by Maxim S. Shatskih on May 8th, 2008
If vendor provides no driver at all - then the hardware must be either a)
compatible 100% with Intel ICH or VIA controller or b) DMA will not be
supported.
If vendor provides an IDE minidriver - then the hardware still must be
compatible with standard PC/AT IDE, but the DMA facilities can be implemented
in any ways the vendor wants.
If vendor provides a SCSI/StorPort miniport - then even the requirement of
being PC/AT compatible is gone.
Windows IDE stack only works with PC/AT compatible devices. If the IDE
controller is not PC/AT compatible - then only SCSIPORT/StorPort stacks can be
used.
I do not remember where is the PC/AT controller described, maybe in t13's ATA
spec.
Once more - yes, you can drop any hardware compatibility requirements (except
of ATA-side physical and PCI ones). In this case, you just need to forget the
Windows ATA stack and use SCSIPORT or StorPort.
--
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
maxim@storagecraft.com
http://www.storagecraft.com
- Posted by Pavel A. on May 8th, 2008
"Maxim S. Shatskih" <maxim@storagecraft.com> wrote in message
news:eu0I5EQsIHA.552@TK2MSFTNGP06.phx.gbl...
.....
But being not ATA compatible is a major headache, no? You'll need to provide
drivers for text setup phase and everywhere else.
Even if the developer doesn't see this as a problem, users may disagree.
--PA
- Posted by Maxim S. Shatskih on May 9th, 2008
HighPoint uses this for years.
The thing is that PC/AT disk controller task file is impaired and prohibits the
use of some high-performance features.
--
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
maxim@storagecraft.com
http://www.storagecraft.com
- Posted by Kai Lidda on May 9th, 2008
Another Doubt
Based on my knows, the different IDE Controller, they have own ATA Timing
Control Registers.
On Booting, the BIOS IDE Controller Driver will drive the hard disk to
bootload.
before this, the BIOS use those registers to config the hard disk to match
their transfer mode - PIO, UDMA...etc.
Does also Windows XP config the hard disk by those registers?
(Can Windows change the transfer mode of hard disk on runtime?
--
Sincerely Yours,
"Maxim S. Shatskih" wrote:
- Posted by Maxim S. Shatskih on May 9th, 2008
Non-PC/AT-compatible controllers use their own extension BIOS, just like SCSI
controllers. int13h is OK for them, but the ports 0x1f0 and interrupt 14 can be
absent.
For such controllers, Windows require their particular driver.
So, just like SCSI, but the attached disks are ATA.
For PC/AT compatible controllers, Windows uses the information from ACPI table,
which appears in the ACPI table as a result of BIOS setup.
For non-PC/AT compatibles, the transfer mode setting is proprietary for the
driver.
--
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
maxim@storagecraft.com
http://www.storagecraft.com
- Posted by Kai Lidda on May 14th, 2008
If this card is a PCI IDE Card and its class code is IDE controller that
follows Intel specification, does Windows still need a Vendor-specific
driver to drive it?