* Read supported VRMA page size from device tree. Signed-Off-By : Sachin Sant Signed-Off-By : Mohan Kumar M --- diff -Naurp linux-2.6.22-rc2/arch/powerpc/kernel/setup_64.c linux-2.6.22-rc2-vrma/arch/powerpc/kernel/setup_64.c --- linux-2.6.22-rc2/arch/powerpc/kernel/setup_64.c 2007-05-19 09:36:17.000000000 +0530 +++ linux-2.6.22-rc2-vrma/arch/powerpc/kernel/setup_64.c 2007-05-23 11:25:45.000000000 +0530 @@ -73,6 +73,10 @@ int have_of = 1; int boot_cpuid = 0; u64 ppc64_pft_size; +/* For VRMA */ +u64 ppc64_vrma_page_shift; +int have_vrma = 0; + /* Pick defaults since we might want to patch instructions * before we've read this from the device tree. */ diff -Naurp linux-2.6.22-rc2/arch/powerpc/mm/hash_utils_64.c linux-2.6.22-rc2-vrma/arch/powerpc/mm/hash_utils_64.c --- linux-2.6.22-rc2/arch/powerpc/mm/hash_utils_64.c 2007-05-19 09:36:17.000000000 +0530 +++ linux-2.6.22-rc2-vrma/arch/powerpc/mm/hash_utils_64.c 2007-05-23 11:26:03.000000000 +0530 @@ -199,6 +199,13 @@ static int __init htab_dt_scan_page_size if (type == NULL || strcmp(type, "cpu") != 0) return 0; + prop = (u32 *)of_get_flat_dt_prop(node, "ibm,vrma-page-sizes", &size); + if (prop != NULL) { + DBG("VRMA Page size from device-tree:\n"); + ppc64_vrma_page_shift = prop[0]; + have_vrma = 1; + } + prop = (u32 *)of_get_flat_dt_prop(node, "ibm,segment-page-sizes", &size); if (prop != NULL) { diff -Naurp linux-2.6.22-rc2/include/asm-powerpc/page_64.h linux-2.6.22-rc2-vrma/include/asm-powerpc/page_64.h --- linux-2.6.22-rc2/include/asm-powerpc/page_64.h 2007-05-19 09:36:17.000000000 +0530 +++ linux-2.6.22-rc2-vrma/include/asm-powerpc/page_64.h 2007-05-23 11:25:27.000000000 +0530 @@ -76,6 +76,10 @@ static inline void copy_page(void *to, v /* Log 2 of page table size */ extern u64 ppc64_pft_size; +/* For VRMA */ +extern u64 ppc64_vrma_page_shift; +extern int have_vrma; + /* Large pages size */ #ifdef CONFIG_HUGETLB_PAGE extern unsigned int HPAGE_SHIFT;