Re: [PATCH] PCI: don't allocate resource above 4G for 32-bit BAR

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> Saw pci_bus_alloc_resource() allocated resource above 4G for a
> non-Prefetchable Memory Space BAR on 64-bit machine. This is not correct
> since the non-Prefetchable Memory Space and I/O Space are 32-bit width.
> Only Prefetchable Memory Space support 64-bit address.

Tested-by: Pavel Roskin <proski@xxxxxxx>

The problem reported in the message "CardBus memory window beyond 4Gb
limit" is fixed now.  No kernel command line arguments are needed.
ath9k is working with a CardBus card.  Thank you!

Relevant parts of the kernel log:

[    0.926576] pci 0000:03:01.0: BAR 10: can't allocate mem resource [0x130000000-0xffffffff]
[    0.926642] pci 0000:03:01.0: CardBus bridge, secondary bus 0000:04
[    0.926686] pci 0000:03:01.0:   IO window: 0x00e000-0x00e0ff
[    0.926731] pci 0000:03:01.0:   IO window: 0x00e400-0x00e4ff
[    0.926777] pci 0000:03:01.0:   PREFETCH window: 0xd8000000-0xdbffffff
...
[    0.927210] pci_bus 0000:04: resource 0 io:  [0xe000-0xe0ff]
[    0.927211] pci_bus 0000:04: resource 1 io:  [0xe400-0xe4ff]
[    0.927213] pci_bus 0000:04: resource 2 mem: [0xd8000000-0xdbffffff]
[    0.927214] pci_bus 0000:04: resource 3 mem: [0x0-0x0]
...
[    6.043352] yenta_cardbus 0000:03:01.0: CardBus bridge found [0000:0000]
[    6.048479] yenta_cardbus 0000:03:01.0: CardBus bridge, secondary bus 0000:04
[    6.053669] yenta_cardbus 0000:03:01.0:   IO window: 0x00e000-0x00e0ff
[    6.058766] yenta_cardbus 0000:03:01.0:   IO window: 0x00e400-0x00e4ff
[    6.063819] yenta_cardbus 0000:03:01.0:   PREFETCH window: 0xd8000000-0xdbffffff
[    6.068803] yenta_cardbus 0000:03:01.0:   MEM window: 0xfe800000-0xfebfffff
[    6.210906] yenta_cardbus 0000:03:01.0: ISA IRQ mask 0x0000, PCI irq 18
[    6.215833] yenta_cardbus 0000:03:01.0: Socket status: 30000820
[    6.220745] pci_bus 0000:03: Raising subordinate bus# of parent bus (#03) from #04 to #07
[    6.225673] yenta_cardbus 0000:03:01.0: pcmcia: parent PCI bridge I/O window: 0xe000 - 0xefff
[    6.230646] yenta_cardbus 0000:03:01.0: pcmcia: parent PCI bridge Memory window: 0xfe400000 - 0xfebfffff
[    6.235568] yenta_cardbus 0000:03:01.0: pcmcia: parent PCI bridge Memory window: 0xdcf00000 - 0xdeffffff
...
[    9.534651] phy0: Atheros AR5416 MAC/BB Rev:2 AR2133 RF Rev:81: mem=0xffffc200100e0000, irq=18

# lspci -vs 03:01.0
03:01.0 CardBus bridge: Ricoh Co Ltd RL5c475 (rev 81)
        Flags: bus master, medium devsel, latency 168, IRQ 18
        Memory at fe400000 (32-bit, non-prefetchable) [size=4K]
        Bus: primary=03, secondary=04, subordinate=07, sec-latency=176
        Memory window 0: d8000000-dbfff000 (prefetchable)
        Memory window 1: fe800000-febff000
        I/O window 0: 0000e000-0000e0ff
        I/O window 1: 0000e400-0000e4ff
        16-bit legacy interface ports at 0001
        Kernel driver in use: yenta_cardbus

# cat /proc/iomem
00000000-0000ffff : reserved
00010000-0009fbff : System RAM
0009fc00-0009ffff : reserved
000c0000-000cffff : pnp 00:0e
000e0000-000fffff : reserved
00100000-cff9ffff : System RAM
  00200000-005cc135 : Kernel code
  005cc136-007726ff : Kernel data
  007f6000-008975cf : Kernel bss
cffa0000-cffadfff : ACPI Tables
cffae000-cffeffff : ACPI Non-volatile Storage
cfff0000-cfffdfff : reserved
d0000000-d7ffffff : PCI Bus 0000:01
  d0000000-d3ffffff : 0000:01:00.0
    d0000000-d3ffffff : radeonfb framebuffer
d8000000-dbffffff : PCI CardBus 0000:04
dcf00000-deffffff : PCI Bus 0000:03
  dcfff000-dcffffff : 0000:03:02.0
    dcfff000-dcffffff : orinoco_pci
dfffbc00-dfffbfff : 0000:00:1d.7
  dfffbc00-dfffbfff : ehci_hcd
dfffc000-dfffffff : 0000:00:1b.0
  dfffc000-dfffffff : ICH HD audio
e0000000-efffffff : PCI MMCONFIG 0
  e0000000-efffffff : pnp 00:0d
f0000000-fe2fffff : PCI Bus 0000:01
  f0000000-f000ffff : 0000:01:00.0
    f0000000-f000ffff : radeonfb mmio
  fe2d0000-fe2dffff : 0000:01:00.1
  fe2e0000-fe2fffff : 0000:01:00.0
fe300000-fe3fffff : PCI Bus 0000:02
  fe3c0000-fe3dffff : 0000:02:00.0
  fe3ff000-fe3fffff : 0000:02:00.0
    fe3ff000-fe3fffff : r8169
fe400000-febfffff : PCI Bus 0000:03
  fe400000-fe400fff : 0000:03:01.0
    fe400000-fe400fff : yenta_socket
  fe800000-febfffff : PCI CardBus 0000:04
    fe800000-fe80ffff : 0000:04:00.0
      fe800000-fe80ffff : ath9k
fec00000-fec00fff : IOAPIC 0
  fec00000-fec00fff : pnp 00:0c
fed00000-fed003ff : HPET 0
fed14000-fed19fff : pnp 00:01
fed1c000-fed1ffff : pnp 00:08
fed20000-fed8ffff : pnp 00:08
fee00000-fee00fff : Local APIC
  fee00000-fee00fff : reserved
    fee00000-fee00fff : pnp 00:0c
ffb80000-ffffffff : reserved
  ffc00000-fff7ffff : pnp 00:0b
100000000-12fffffff : System RAM


-- 
Regards,
Pavel Roskin
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux