|
@@ -100,29 +100,26 @@ extern unsigned int get_wchan(struct task_struct *p);
|
|
|
|
|
|
#endif /* !__ASSEMBLY__ */
|
|
|
|
|
|
-/* Kernels Virtual memory area.
|
|
|
- * Unlike other architectures(MIPS, sh, cris ) ARC 700 does not have a
|
|
|
- * "kernel translated" region (like KSEG2 in MIPS). So we use a upper part
|
|
|
- * of the translated bottom 2GB for kernel virtual memory and protect
|
|
|
- * these pages from user accesses by disabling Ru, Eu and Wu.
|
|
|
+/*
|
|
|
+ * System Memory Map on ARC
|
|
|
+ *
|
|
|
+ * ---------------------------- (lower 2G, Translated) -------------------------
|
|
|
+ * 0x0000_0000 0x5FFF_FFFF (user vaddr: TASK_SIZE)
|
|
|
+ * 0x6000_0000 0x6FFF_FFFF (reserved gutter between U/K)
|
|
|
+ * 0x7000_0000 0x7FFF_FFFF (kvaddr: vmalloc/modules/pkmap..)
|
|
|
+ *
|
|
|
+ * PAGE_OFFSET ---------------- (Upper 2G, Untranslated) -----------------------
|
|
|
+ * 0x8000_0000 0xBFFF_FFFF (kernel direct mapped)
|
|
|
+ * 0xC000_0000 0xFFFF_FFFF (peripheral uncached space)
|
|
|
+ * -----------------------------------------------------------------------------
|
|
|
*/
|
|
|
-#define VMALLOC_SIZE (0x10000000) /* 256M */
|
|
|
-#define VMALLOC_START (PAGE_OFFSET - VMALLOC_SIZE)
|
|
|
-#define VMALLOC_END (PAGE_OFFSET)
|
|
|
+#define VMALLOC_START 0x70000000
|
|
|
+#define VMALLOC_SIZE (PAGE_OFFSET - VMALLOC_START)
|
|
|
+#define VMALLOC_END (VMALLOC_START + VMALLOC_SIZE)
|
|
|
|
|
|
-/* Most of the architectures seem to be keeping some kind of padding between
|
|
|
- * userspace TASK_SIZE and PAGE_OFFSET. i.e TASK_SIZE != PAGE_OFFSET.
|
|
|
- */
|
|
|
#define USER_KERNEL_GUTTER 0x10000000
|
|
|
|
|
|
-/* User address space:
|
|
|
- * On ARC700, CPU allows the entire lower half of 32 bit address space to be
|
|
|
- * translated. Thus potentially 2G (0:0x7FFF_FFFF) could be User vaddr space.
|
|
|
- * However we steal 256M for kernel addr (0x7000_0000:0x7FFF_FFFF) and another
|
|
|
- * 256M (0x6000_0000:0x6FFF_FFFF) is gutter between user/kernel spaces
|
|
|
- * Thus total User vaddr space is (0:0x5FFF_FFFF)
|
|
|
- */
|
|
|
-#define TASK_SIZE (PAGE_OFFSET - VMALLOC_SIZE - USER_KERNEL_GUTTER)
|
|
|
+#define TASK_SIZE (VMALLOC_START - USER_KERNEL_GUTTER)
|
|
|
|
|
|
#define STACK_TOP TASK_SIZE
|
|
|
#define STACK_TOP_MAX STACK_TOP
|