Setting UDMA Mode on PCI Controller Card

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Setting UDMA Mode on PCI Controller Card

Mike Tremaine
Greetings all,

I’m a new OpenBSD user so I’m assuming my issues are lack of knowledge and was hoping to get  little help.

Overview:

I have installed Maxtor ATA 133 PCI card with a Promise PDC20269 chipset in my Sun Ultra 5. Using the clues found here
https://www.netbsd.org/ports/sparc64/faq.html#pci-cards
I was able to define the vendor class code by finding the PCI card in openboot

show-devs
cd /pci@1f,0/pci@1/<DEVICE>
.properties

the class-code my Promise PDC20269 is 00018085

nvedit
dev /packages/SUNW,builtin-drivers
: class018085
f 9 my-space + " config-b!" $call-parent class010100
;
device-end

This gives a proper ide@2 device with disk and cdrom children. So I moved my cable from the internal IDE devices to pci card created a new devlias and booted directly via the card.. So far so good.


Problem:

The problem is the DMESG shows the PIO MODE 4, Ultra-DMA mode 2 so there is no performance gain, using the atactl wd0 identify is shows me the drive is capable of UDMA 7.

Question:

How can I increase the DMA Mode, or is this indicate something else is wrong?

Thanks for any advice.

-Mike

Reply | Threaded
Open this post in threaded view
|

Re: Setting UDMA Mode on PCI Controller Card

Mike Tremaine

>
> Problem:
>
> The problem is the DMESG shows the PIO MODE 4, Ultra-DMA mode 2 so there is no performance gain, using the atactl wd0 identify is shows me the drive is capable of UDMA 7.
>
> Question:
>
> How can I increase the DMA Mode, or is this indicate something else is wrong?
>
> Thanks for any advice.
>
> -Mike


I did some further reading and found the “change” command. Using find wd*

I saw the flag was 0xa00 on the pciide so I set it to 0x0

Upon reboot I saw that wd0 had identified as Ultra DMA 6, but then the boot failed with

bus-master DMA error: missing interrupt, status=0x21

Obviously I’m doing something wrong. I’ll keep playing with it but if anyone has any suggestions I’d be happy to hear them

-Mike