View unanswered posts    View active topics

All times are UTC - 6 hours





Post new topic Reply to topic  [ 1 post ] 
Print view Previous topic   Next topic  
Author Message
Search for:
PostPosted: Tue Feb 08, 2005 10:00 am 
Offline
Joined: Wed Feb 02, 2005 4:07 pm
Posts: 141
After trying almost everything to get DMA running on my new Abit NF7-S2G motherboard, I gave up and installed a PCI EIDE card. Today while surfing the web I cam across this tidbit:

Older distributions missing nForce 3 storage controller device IDs Some older distributions will not have nForce 3 IDE/SATA device IDs. This will have the following consequences: 1) IDE class driver will not be able to use DMA. This will adversely affect IDE performance. This can be worked around by patching the driver with appropriate device IDs.

It seems that even though the motherboard says nForce2 it really is a variant that has an nForce3 storage controller, and will require a patch to get DMA working (not to mention SATA). It requires rebuilding the kernel which I don't know how to do, but for those who do, the instructions are:

To patch the driver two tables in the drivers/ide/pci/amd74xx.c driver need modification: The first table is an array of struct amd_ide_chip called amd_ide_chips. Each entry is of the following form: { PCI_DEVICE_ID_XXXXXXXXXXX, 0xXX, AMD_UDMA_100 },

If any of the following device IDs are missing from that table: PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2 then the amd74xx.c driver does not support the nForce 3 IDE and SATA controllers. To add support:

Step 1: Define PCI device ID macros. Immediately before the amd_ide_chips table, add the following lines: #define PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE 0x00d5 #define PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE 0x00e5 #define PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA 0x00e3 #define PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2 0x00ee

Step 2: Add entries to the end of the amd_ide_chips table (but before the terminating entry "{ 0 },"). { PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE, 0x50, AMD_UDMA_133 }, { PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE, 0x50, AMD_UDMA_133 }, { PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA, 0x50, AMD_UDMA_133 }, { PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2, 0x50, AMD_UDMA_133 },

Step 3: Add entries to the amd74xx_pci_tbl (but before the terminating entry "{ 0, },"). There is an array of struct pci_device_id called amd74xx_pci_tbl. Entries need to be added here for CK804/MCP04 support. { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 9 }, { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 10 }, { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 11 }, { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 12 }, The number at the end of each entry (9 through 12) refers to the the corresponding entries (numbering starts with 0) in the amd_ide_chips table. For example, counting down in the amd_ide_chips table, the 9th entry (starting the count with 0) should correspond with the PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE entry. If it doesn't correspond, the numbers in the entries of amd74xx_pci_tbl will need to be adjusted accordingly.

Step 4: Rebuild the kernel.


Top
 Profile  
 

Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 1 post ] 


All times are UTC - 6 hours




Who is online

Users browsing this forum: No registered users and 10 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group

Theme Created By ceyhansuyu