提交 41d824bf 编写于 作者: M Michael Ellerman 提交者: Paul Mackerras

[POWERPC] Allocate the hash table under 1G on cell

In order to support the fixed IOMMU mapping (in a subsequent patch),
we need the hash table to be inside the IOMMUs DMA window.  This is
usually 2G, but let's make sure the hash table is under 1G as that
will satisfy the IOMMU requirements and also means the hash table will
be on node 0.
Signed-off-by: NMichael Ellerman <michael@ellerman.id.au>
Acked-by: NArnd Bergmann <arnd@arndb.de>
Signed-off-by: NPaul Mackerras <paulus@samba.org>
上级 1f62a162
...@@ -471,7 +471,7 @@ void __init htab_initialize(void) ...@@ -471,7 +471,7 @@ void __init htab_initialize(void)
unsigned long table; unsigned long table;
unsigned long pteg_count; unsigned long pteg_count;
unsigned long mode_rw; unsigned long mode_rw;
unsigned long base = 0, size = 0; unsigned long base = 0, size = 0, limit;
int i; int i;
extern unsigned long tce_alloc_start, tce_alloc_end; extern unsigned long tce_alloc_start, tce_alloc_end;
...@@ -505,9 +505,15 @@ void __init htab_initialize(void) ...@@ -505,9 +505,15 @@ void __init htab_initialize(void)
_SDR1 = 0; _SDR1 = 0;
} else { } else {
/* Find storage for the HPT. Must be contiguous in /* Find storage for the HPT. Must be contiguous in
* the absolute address space. * the absolute address space. On cell we want it to be
* in the first 1 Gig.
*/ */
table = lmb_alloc(htab_size_bytes, htab_size_bytes); if (machine_is(cell))
limit = 0x40000000;
else
limit = 0;
table = lmb_alloc_base(htab_size_bytes, htab_size_bytes, limit);
DBG("Hash table allocated at %lx, size: %lx\n", table, DBG("Hash table allocated at %lx, size: %lx\n", table,
htab_size_bytes); htab_size_bytes);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册