MIPS: Loongson-3: Add PHYS48_TO_HT40 support
authorHuacai Chen <chenhc@lemote.com>
Tue, 4 Nov 2014 06:13:24 +0000 (14:13 +0800)
committerRalf Baechle <ralf@linux-mips.org>
Mon, 24 Nov 2014 06:45:01 +0000 (07:45 +0100)
commitf490682a6b21ffed5acd7a0d49d8371e5e625d7a
tree23fec41907ba1f5fb8cac1a5d2e0f18af6ee8fa7
parent432d9ecb9628bdcb20670b2cf0678f3738bd40a5
MIPS: Loongson-3: Add PHYS48_TO_HT40 support

The width of HT-bus is only 40-bit, but Loongson-3 has 48-bit physical
address. This implies only node-0's memory is DMAable because high bits
(Node ID) will lost. Fortunately, by configuring address windows in
firmware, we can extract 2bit Node ID (bit 44~47, only bit 44~45 used
now) from Loongson-3's 48-bit address space and embed it into 40-bit
(bit 37~38). Every NUMA node can do DMA now (however, maximum memory of
each node is reduced to 2^37 = 128GB).

Signed-off-by: Huacai Chen <chenhc@lemote.com>
Cc: John Crispin <john@phrozen.org>
Cc: Steven J. Hill <Steven.Hill@imgtec.com>
Cc: linux-mips@linux-mips.org
Cc: Fuxin Zhang <zhangfx@lemote.com>
Cc: Zhangjin Wu <wuzhangjin@gmail.com>
Patchwork: https://patchwork.linux-mips.org/patch/8321/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/include/asm/mach-loongson/dma-coherence.h
arch/mips/loongson/Kconfig
arch/mips/loongson/common/dma-swiotlb.c