Re: PCI Express support for 2.4 kernel
From: Vladimir Kondratiev
Date: Mon Dec 15 2003 - 09:00:27 EST
Got it.
Should I understand it this way: for system with >=1Gb RAM, I will be
unable to ioremap 256Mb region?
It looks confusing. On my test system (don't ask details, I am not
alowed to share this info), I see
video controller with 256Mb BAR. Does it mean this controller will not
work as well?
There is alternative solution, for each transaction to ioremap/unmap
corresponded page.
I don't like it, it involves huge overhead.
I thought about remapping only pages that have actual PCI devices behind,
but this is problematic: access to config goes not always through
pci_exp_read_config_xxx and alike, raw access with bus/dev/fn numbers
used as well. And in 2.6, correct me if I wrong, raw access using
bus/dev/fn numbers goes to be the only way. Per-device access replaced
with per-bus, at least.
I can statically remap only region for existing buses, this will be huge
save. It is 1MB per bus, this lead to typical 2-3MB instead of 256. To
be sure I can do this, I need to know that new bus can't be added on run
time. I don't think it is true, isn't it? Or do we have single point to
capture hot plug for new bus?
Vladimir.
Arjan van de Ven wrote:
I should be missing something here. You have 256M of physical address
space at 0xe0000000 occupied.
You can do nothing with it, it is simply present. Then, ioremap maps it
somewhere in high memory.
It should not conflict with kernel RAM, for which trivial mapping (+3G)
used.
the thing is that typically you have a maximum of 168Mb or so of
ioremap/vmalloc space (they share the same pool). That is, ff your
system has >= 1Gb of ram, if it has less ran the ioremap/vmalloc space
is bigger....
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/