1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-07-05 16:13:15 +03:00

[ifxmips] Calculate PCI BARMASK11 register value dynamicly, signed off by Ithamar R. Adema

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20262 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
blogic 2010-03-18 09:20:43 +00:00
parent 1054800824
commit 907087e56e

View File

@ -89,6 +89,17 @@ pcibios_plat_dev_init(struct pci_dev *dev)
return 0;
}
static u32 calc_bar11mask(void)
{
u32 mem, bar11mask;
/* BAR11MASK value depends on available memory on system. */
mem = num_physpages * PAGE_SIZE;
bar11mask = (0x0ffffff0 & ~((1 << (fls(mem) -1)) -1)) | 8;
return bar11mask;
}
static void __init
ifxmips_pci_startup(void)
{
@ -138,7 +149,7 @@ ifxmips_pci_startup(void)
ifxmips_w32(0x19800000, PCI_CR_FCI_ADDR_MAP6);
ifxmips_w32(0x19c00000, PCI_CR_FCI_ADDR_MAP7);
ifxmips_w32(0x1ae00000, PCI_CR_FCI_ADDR_MAP11hg);
ifxmips_w32(0x0e000008, PCI_CR_BAR11MASK);
ifxmips_w32(calc_bar11mask(), PCI_CR_BAR11MASK);
ifxmips_w32(0, PCI_CR_PCI_ADDR_MAP11);
ifxmips_w32(0, PCI_CS_BASE_ADDR1);
#ifdef CONFIG_SWAP_IO_SPACE