Audigy SE / ca0106 driver for PowerPC?
Kumar Gala
galak at kernel.crashing.org
Thu Feb 1 10:49:27 EST 2007
On Jan 31, 2007, at 5:42 PM, Russell McGuire wrote:
>
>
> /* Configure PCI Local Access Windows */
> pci_law[0].bar = CFG_PCI_MEM_PHYS & LAWBAR_BAR;
> pci_law[0].ar = LAWAR_EN | LAWAR_SIZE_512M;
>
> pci_law[1].bar = CFG_PCI_IO_PHYS & LAWBAR_BAR;
> pci_law[1].ar = LAWAR_EN | LAWAR_SIZE_1M;
Well, you're making life difficult, not sure what's wrong :)
At this point I'd suggest adding a printk before the ioremap as I
mentioned before, as well turning on the DEBUG and report the output.
It seems like the HW is setup properly, lets see if the address
you're trying to access is valid or not.
The other place to put a printk is before the first inl().
Do something like printk("about to do inl for port:%x base:%p\n",
(port based to inl), _IO_BASE);
- k
-----Original Message-----
> From: Kumar Gala [mailto:galak at kernel.crashing.org]
> Sent: Wednesday, January 31, 2007 3:19 PM
> To: rmcguire at videopresence.com
> Cc: linuxppc-embedded at ozlabs.org
> Subject: Re: Audigy SE / ca0106 driver for PowerPC?
>
>
> On Jan 31, 2007, at 5:01 PM, Russell McGuire wrote:
>
>>
>> What I really don't know is what the first column in the ranges
>> field does.
>> I.e. the <42000000>, <02000000>, and <01000000>.
>
> They are encoding of type of "space" is being described, the first
> byte's what's important:
>
> [42] - prefetchable memory
> [02] - 32-bit memory space
> [01] - IO space
>
> [00] - CFG space
> [03] - 64-bit memory space
>
>> Here is part of current blob I am using:
>>
>> pci at 8500 {
>> linux,phandle = <8500>;
>> interrupt-map-mask = <f800 0 0 7>;
>> interrupt-map= <
>> /* IDSEL 0x19 AD25*/
>> c800 0 0 1 700 14 8
>> c800 0 0 2 700 15 8
>> c800 0 0 3 700 16 8
>> c800 0 0 4 700 17 8>; > //and a lot more like this
>> bus-range = <0 0>; //U-boot modifies this to be <0 2> I think
>> ranges = <42000000 0 80000000 80000000 0 10000000
>> 02000000 0 90000000 90000000 0 10000000
>> 01000000 0 00000000 f0300000 0 00100000>;
>> clock-frequency = <3f940aa>;
>> #interrupt-cells = <1>;
>> #size-cells = <2>;
>> #address-cells = <3>;
>> reg = <8500 100>;
>> compatible = "83xx";
>> device_type = "pci";
>> }
>>
>> Here are the U-boot #defines I am using at the moment.
>>
>> #define CFG_PCI_MEM_BASE 0x80000000
>> #define CFG_PCI_MEM_PHYS CFG_PCI_MEM_BASE
>> #define CFG_PCI_MEM_SIZE 0x10000000 /* 256M */
>> #define CFG_PCI_MMIO_BASE 0x90000000
>> #define CFG_PCI_MMIO_PHYS CFG_PCI_MMIO_BASE
>> #define CFG_PCI_MMIO_SIZE 0x10000000 /* 256M */
>> #define CFG_PCI_IO_BASE 0x00000000
>> #define CFG_PCI_IO_PHYS 0xF0300000
>> #define CFG_PCI_IO_SIZE 0x00100000 /* 1M */
>> Might need to change PCI_IO_BASE to match PCI_IO_PHYS as well?
>
> This all looks correct, how are you setting PCILAWBAR0/1, PCILAWAR0/1?
>
> - k
>
More information about the Linuxppc-embedded
mailing list