Hi, i'm porting the linux 2.6.27 kernel to the custom board with PowerPC 7448 & Marvell 64560. In DTS file the PCI ranges are configured as follows:
system-control...@fbe00000 { /* Marvell Discovery mv64560 (Discovery V)*/ #address-cells = <1>; #size-cells = <1>; model = "mv64560"; /* Default */ compatible = "marvell,mv64360", "marvell,mv64560"; clock-frequency = <133333333>; reg = <0xfbe00000 0x100000>; virtual-reg = <0xfbe00000>; ranges = <0xd8000000 0xd8000000 0x00010000 /* PCI 0 I/O Space */ 0x80000000 0x80000000 0x68000000 /* PCI 0 MEM Space */ 0xd8080000 0xd8080000 0x00010000 /* PCI 1 I/O Space */ 0x60000000 0x60000000 0x20000000 /* PCI 1 MEM Space */ 0x00000000 0xfbe00000 0x00100000>; /* Bridge's regs */ ..... PCI0: p...@30000 { #address-cells = <3>; #size-cells = <2>; #interrupt-cells = <1>; device_type = "pci"; compatible = "marvell,mv64360-pci"; reg = <0x30c78 12>; ranges = <0x01000000 0x0 0x00000000 0xd8000000 0x0 0x00010000 0x02000000 0x0 0x80000000 0x80000000 0x0 0x40000000>; bus-range = <0 255>; clock-frequency = <33000000>; interrupt-pci-iack = <0x30c34>; interrupt-parent = <&PIC>; interrupt-map-mask = <0xf800 0x0 0x0 0x7>; interrupt-map = < /* IDSEL 0x07 */ 0x3800 0 0 1 &PIC 74 0x3800 0 0 2 &PIC 74 0x3800 0 0 3 &PIC 74 0x3800 0 0 4 &PIC 74 /* IDSEL 0x09 */ 0x4800 0 0 1 &PIC 68 0x4800 0 0 2 &PIC 68 0x4800 0 0 3 &PIC 68 0x4800 0 0 4 &PIC 68 /* IDSEL 0x0A */ 0x5000 0 0 1 &PIC 69 0x5000 0 0 2 &PIC 69 0x5000 0 0 3 &PIC 69 0x5000 0 0 4 &PIC 69 >; }; when the kernel is booting, at the beginning the ranges are detected correctly: PCI host bridge /system-control...@fbe00000/p...@30000 (primary) ranges: IO 0x00000000d8000000..0x00000000d800ffff -> 0x0000000000000000 MEM 0x0000000080000000..0x00000000bfffffff -> 0x0000000080000000 nevertheless later the range for IO space is changed as follow: PCI: Probing PCI hardware .... PCI: PHB (bus 0) bridge rsrc 0: 0000000000011000-0000000000020fff [0x100], PCI: PHB (bus 0) bridge rsrc 1: 0000000080000000-00000000bfffffff [0x200], normally the IO space should be from 0x00000000-0x0000ffff. Can someone explain to me where the offset 0x11000 comes from. Best regards Eduard Fuchs _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev