Alchemy: fix PCI resource conflict (take 2)
PATCH 1/1 Alchemy: fix PCI resource conflict (take 2)
... by getting the PCI resources back into the 32-bit range -- there's no need therefore for CONFIG_RESOURCES_64BIT either. This makes Alchemy PCI work again while currently the kernel skips the bus scan.
--- arch/mips/au1000/Kconfig | 9 --------- arch/mips/au1000/common/pci.c | 8 ++++---- include/asm-mips/mach-au1x00/au1000.h | 9 +++++---- 3 files changed, 9 insertions(+), 17 deletions(-)
arch/mips/au1000/Kconfig +0 -9
@@ -7,7 +7,6 @@ config MIPS_MTX1 bool "4G Systems MTX-1 board" select DMA_NONCOHERENT select HW_HAS_PCI - select RESOURCES_64BIT if PCI select SOC_AU1500 select SYS_SUPPORTS_LITTLE_ENDIAN
@@ -22,7 +21,6 @@ config MIPS_DB1000 select SOC_AU1000 select DMA_NONCOHERENT select HW_HAS_PCI - select RESOURCES_64BIT if PCI select SYS_SUPPORTS_LITTLE_ENDIAN config MIPS_DB1100
@@ -44,7 +42,6 @@ config MIPS_DB1500 select DMA_NONCOHERENT select HW_HAS_PCI select MIPS_DISABLE_OBSOLETE_IDE - select RESOURCES_64BIT if PCI select SYS_SUPPORTS_BIG_ENDIAN select SYS_SUPPORTS_LITTLE_ENDIAN
@@ -54,7 +51,6 @@ config MIPS_DB1550 select HW_HAS_PCI select DMA_NONCOHERENT select MIPS_DISABLE_OBSOLETE_IDE - select RESOURCES_64BIT if PCI select SYS_SUPPORTS_LITTLE_ENDIAN config MIPS_MIRAGE
@@ -68,7 +64,6 @@ config MIPS_PB1000 select SOC_AU1000 select DMA_NONCOHERENT select HW_HAS_PCI - select RESOURCES_64BIT if PCI select SWAP_IO_SPACE select SYS_SUPPORTS_LITTLE_ENDIAN
@@ -77,7 +72,6 @@ config MIPS_PB1100 select SOC_AU1100 select DMA_NONCOHERENT select HW_HAS_PCI - select RESOURCES_64BIT if PCI select SWAP_IO_SPACE select SYS_SUPPORTS_LITTLE_ENDIAN
@@ -86,7 +80,6 @@ config MIPS_PB1200 select SOC_AU1200 select DMA_NONCOHERENT select MIPS_DISABLE_OBSOLETE_IDE - select RESOURCES_64BIT if PCI select SYS_SUPPORTS_LITTLE_ENDIAN config MIPS_PB1500
@@ -94,7 +87,6 @@ config MIPS_PB1500 select SOC_AU1500 select DMA_NONCOHERENT select HW_HAS_PCI - select RESOURCES_64BIT if PCI select SYS_SUPPORTS_LITTLE_ENDIAN config MIPS_PB1550
@@ -103,7 +95,6 @@ config MIPS_PB1550 select DMA_NONCOHERENT select HW_HAS_PCI select MIPS_DISABLE_OBSOLETE_IDE - select RESOURCES_64BIT if PCI select SYS_SUPPORTS_LITTLE_ENDIAN config MIPS_XXS1500
arch/mips/au1000/common/pci.c +4 -4
@@ -39,15 +39,15 @@/* TBD */ static struct resource pci_io_resource = { - .start = (resource_size_t )PCI_IO_START , - .end = (resource_size_t )PCI_IO_END , + .start =PCI_IO_START , + .end =PCI_IO_END , .name ="PCI IO space" , .flags =IORESOURCE_IO };static struct resource pci_mem_resource = { - .start = (resource_size_t )PCI_MEM_START , - .end = (resource_size_t )PCI_MEM_END , + .start =PCI_MEM_START , + .end =PCI_MEM_END , .name ="PCI memory space" , .flags =IORESOURCE_MEM };
include/asm-mips/mach-au1x00/au1000.h +5 -4
@@ -1680,10 +1680,11 @@ enum soc_au1200_ints {#define Au1500_PCI_MEM_START 0x440000000ULL#define Au1500_PCI_MEM_END 0x44FFFFFFFULL -#define PCI_IO_START (Au1500_PCI_IO_START + 0x1000) -#define PCI_IO_END (Au1500_PCI_IO_END) -#define PCI_MEM_START (Au1500_PCI_MEM_START) -#define PCI_MEM_END (Au1500_PCI_MEM_END) +#define PCI_IO_START 0x00001000 +#define PCI_IO_END 0x000FFFFF +#define PCI_MEM_START 0x40000000 +#define PCI_MEM_END 0x4FFFFFFF +#define PCI_FIRST_DEVFN (0<<3)#define PCI_LAST_DEVFN (19<<3)
Any chance this will help fix my Au1x00 serial + USB issues? I know the old PCI bus code used to not work with the USB - at least the two could not run together. It's been a while since I looked at those issues, so that may have been resolved long ago.
Just curious,
Thanks!
Nate
----------------------------------------
Quoted 130 lines
From: [email protected]
To: [email protected]
Subject: [PATCH] Alchemy: fix PCI resource conflict (take 2)
Date: Mon, 10 Dec 2007 20:28:51 +0300
CC: [email protected]... by getting the PCI resources back into the 32-bit range -- there's no need therefore for
CONFIG_RESOURCES_64BITeither. This makes Alchemy PCI work again while currently the kernel skips the bus scan.Signed-off-by Sergei Shtylyov <[email protected]>--- arch/mips/au1000/Kconfig | 9 --------- arch/mips/au1000/common/pci.c | 8 ++++---- include/asm-mips/mach-au1x00/au1000.h | 9 +++++---- 3 files changed, 9 insertions(+), 17 deletions(-)Index: linux-2.6/arch/mips/au1000/Kconfig
===================================================================arch/mips/au1000/Kconfig +0
-9@@ -7,7 +7,6 @@ config MIPS_MTX1 bool "4G Systems MTX-1 board" select DMA_NONCOHERENT select HW_HAS_PCI - select RESOURCES_64BIT if PCI select SOC_AU1500 select SYS_SUPPORTS_LITTLE_ENDIAN@@ -22,7 +21,6 @@ config MIPS_DB1000 select SOC_AU1000 select DMA_NONCOHERENT select HW_HAS_PCI - select RESOURCES_64BIT if PCI select SYS_SUPPORTS_LITTLE_ENDIAN config MIPS_DB1100@@ -44,7 +42,6 @@ config MIPS_DB1500 select DMA_NONCOHERENT select HW_HAS_PCI select MIPS_DISABLE_OBSOLETE_IDE - select RESOURCES_64BIT if PCI select SYS_SUPPORTS_BIG_ENDIAN select SYS_SUPPORTS_LITTLE_ENDIAN@@ -54,7 +51,6 @@ config MIPS_DB1550 select HW_HAS_PCI select DMA_NONCOHERENT select MIPS_DISABLE_OBSOLETE_IDE - select RESOURCES_64BIT if PCI select SYS_SUPPORTS_LITTLE_ENDIAN config MIPS_MIRAGE@@ -68,7 +64,6 @@ config MIPS_PB1000 select SOC_AU1000 select DMA_NONCOHERENT select HW_HAS_PCI - select RESOURCES_64BIT if PCI select SWAP_IO_SPACE select SYS_SUPPORTS_LITTLE_ENDIAN@@ -77,7 +72,6 @@ config MIPS_PB1100 select SOC_AU1100 select DMA_NONCOHERENT select HW_HAS_PCI - select RESOURCES_64BIT if PCI select SWAP_IO_SPACE select SYS_SUPPORTS_LITTLE_ENDIAN@@ -86,7 +80,6 @@ config MIPS_PB1200 select SOC_AU1200 select DMA_NONCOHERENT select MIPS_DISABLE_OBSOLETE_IDE - select RESOURCES_64BIT if PCI select SYS_SUPPORTS_LITTLE_ENDIAN config MIPS_PB1500@@ -94,7 +87,6 @@ config MIPS_PB1500 select SOC_AU1500 select DMA_NONCOHERENT select HW_HAS_PCI - select RESOURCES_64BIT if PCI select SYS_SUPPORTS_LITTLE_ENDIAN config MIPS_PB1550@@ -103,7 +95,6 @@ config MIPS_PB1550 select DMA_NONCOHERENT select HW_HAS_PCI select MIPS_DISABLE_OBSOLETE_IDE - select RESOURCES_64BIT if PCI select SYS_SUPPORTS_LITTLE_ENDIAN config MIPS_XXS1500Index:
linux-2.6/arch/mips/au1000/common/pci.c
===================================================================arch/mips/au1000/common/pci.c +4
-4@@ -39,15 +39,15 @@/* TBD */ static struct resource pci_io_resource = { - .start = (resource_size_t )PCI_IO_START , - .end = (resource_size_t )PCI_IO_END , + .start =PCI_IO_START , + .end =PCI_IO_END , .name ="PCI IO space" , .flags =IORESOURCE_IO };static struct resource pci_mem_resource = { - .start = (resource_size_t )PCI_MEM_START , - .end = (resource_size_t )PCI_MEM_END , + .start =PCI_MEM_START , + .end =PCI_MEM_END , .name ="PCI memory space" , .flags =IORESOURCE_MEM };Index:
linux-2.6/include/asm-mips/mach-au1x00/au1000.h
===================================================================include/asm-mips/mach-au1x00/au1000.h +0
-2@@ -1680,10 +1680,11 @@ enum soc_au1200_ints {#define Au1500_PCI_MEM_START 0x440000000ULL#define Au1500_PCI_MEM_END 0x44FFFFFFFULL -#define PCI_IO_START (Au1500_PCI_IO_START + 0x1000) -#define PCI_IO_END (Au1500_PCI_IO_END)
include/asm-mips/mach-au1x00/au1000.h enum soc_au1200_ints { · line 1690
Quoted 10 lines
include/asm-mips/mach-au1x00/au1000.h +5
-2-#define PCI_MEM_START (Au1500_PCI_MEM_START) -#define PCI_MEM_END (Au1500_PCI_MEM_END) +#define PCI_IO_START 0x00001000 +#define PCI_IO_END 0x000FFFFF +#define PCI_MEM_START 0x40000000 +#define PCI_MEM_END 0x4FFFFFFF +#define PCI_FIRST_DEVFN (0<<3)#define PCI_LAST_DEVFN (19<<3)
_________________________________________________________________
Connect and share in new ways with Windows Live.
http://www.windowslive.com/connect.html?ocid=TXT_TAGLM_Wave2_newways_112007
Quoted 1 line · Nathan Eggan
Any chance this will help fix my Au1x00 serial + USB issues?
I don't think so.
Quoted 1 line
I know the old PCI bus code used to not work with the USB - at least the two could not run together.
There are some chip errata connected with USB and PCI...
WBR, Sergei
Ralf Baechle
AppliedQuoted 5 lines · Sergei Shtylyov
... by getting the PCI resources back into the 32-bit range -- there's no need therefore for
CONFIG_RESOURCES_64BITeither. This makes Alchemy PCI work again while currently the kernel skips the bus scan.Signed-off-by Sergei Shtylyov <[email protected]>
Thanks, applied.
Which -stable branches do these two fixes need to be applied to?
Ralf