Audigy SE / ca0106 driver for PowerPC?

Russell McGuire rmcguire at videopresence.com
Thu Feb 1 10:42:58 EST 2007



/* 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;

-Russ

-----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