Am Dienstag, den 27.01.2009, 13:42 +0100 schrieb Frank Neuber:
> Am Dienstag, den 27.01.2009, 13:11 +0100 schrieb Manuel Lauss:
> > > I think somting is wrong with PCI resource management here.
> > > I can't believe that nobody is using the PCI or Cardbus on the AU1550
> > > with the current kernel.
> >
> > I'm no PCI expert, but I'm pretty sure resource assignment is done by
> > generic, not mips-specific, code. Please try the linux-pci and/or
> > linux-kernel lists.
> At the moment I buld a matrix of working kernel versions regarding the
> PCI stuff on the AU1550
>
> For now I can say that the versions
> 2.6.18, 2.6.18-rc1
> is crashing after showing the linux banner
>
I found the problem for this error. It is because we compare 32 and 64
bit numbers in __request_resource.
> 2.6.18-rc2, 2.6.18-rc4, 2.6.19, 2.6.20, 2.6.23 produce this:
> Skipping PCI bus scan due to resource conflict
I changed this:
diff --git a/include/asm-mips/mach-au1x00/au1000.h
b/include/asm-mips/mach-au1x00/au1000.h
index 3bdce91..8616c09 100644
--- a/include/asm-mips/mach-au1x00/au1000.h
+++ b/include/asm-mips/mach-au1x00/au1000.h
@@ -1679,12 +1679,21 @@ enum soc_au1200_ints {
#define Au1500_PCI_MEM_START 0x440000000ULL
#define Au1500_PCI_MEM_END 0x44FFFFFFFULL
+#if 1
+#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)
+#else
#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_FIRST_DEVFN (0<<3)
#define PCI_LAST_DEVFN (19<<3)
+#endif
#define IOPORT_RESOURCE_START 0x00001000 /* skip legacy probing */
#define IOPORT_RESOURCE_END 0xffffffff
Now I think a have to look at 64 problems in the resource management of
th PCI subsystem
>
> The version 2.6.24 has the same behavior as the current git head.
>
> I will inform you about more results
>
> Regards,
> Frank
>
|