linux/arch/frv/include/asm/mem-layout.h
<<
>>
Prefs
   1/* mem-layout.h: memory layout
   2 *
   3 * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved.
   4 * Written by David Howells (dhowells@redhat.com)
   5 *
   6 * This program is free software; you can redistribute it and/or
   7 * modify it under the terms of the GNU General Public License
   8 * as published by the Free Software Foundation; either version
   9 * 2 of the License, or (at your option) any later version.
  10 */
  11
  12#ifndef _ASM_MEM_LAYOUT_H
  13#define _ASM_MEM_LAYOUT_H
  14
  15#ifndef __ASSEMBLY__
  16#define __UL(X) ((unsigned long) (X))
  17#else
  18#define __UL(X) (X)
  19#endif
  20
  21/*
  22 * PAGE_SHIFT determines the page size
  23 */
  24#define PAGE_SHIFT                      14
  25
  26#ifndef __ASSEMBLY__
  27#define PAGE_SIZE                       (1UL << PAGE_SHIFT)
  28#else
  29#define PAGE_SIZE                       (1 << PAGE_SHIFT)
  30#endif
  31
  32#define PAGE_MASK                       (~(PAGE_SIZE-1))
  33
  34/*
  35 * the slab must be aligned such that load- and store-double instructions don't
  36 * fault if used
  37 */
  38#define ARCH_DMA_MINALIGN               L1_CACHE_BYTES
  39#define ARCH_SLAB_MINALIGN              L1_CACHE_BYTES
  40
  41/*****************************************************************************/
  42/*
  43 * virtual memory layout from kernel's point of view
  44 */
  45#define PAGE_OFFSET                     ((unsigned long) &__page_offset)
  46
  47#ifdef CONFIG_MMU
  48
  49/* see Documentation/frv/mmu-layout.txt */
  50#define KERNEL_LOWMEM_START             __UL(0xc0000000)
  51#define KERNEL_LOWMEM_END               __UL(0xd0000000)
  52#define VMALLOC_START                   __UL(0xd0000000)
  53#define VMALLOC_END                     __UL(0xd8000000)
  54#define PKMAP_BASE                      __UL(0xd8000000)
  55#define PKMAP_END                       __UL(0xdc000000)
  56#define KMAP_ATOMIC_SECONDARY_FRAME     __UL(0xdc000000)
  57#define KMAP_ATOMIC_PRIMARY_FRAME       __UL(0xdd000000)
  58
  59#endif
  60
  61#define KERNEL_IO_START                 __UL(0xe0000000)
  62
  63
  64/*****************************************************************************/
  65/*
  66 * memory layout from userspace's point of view
  67 */
  68#define BRK_BASE                        __UL(2 * 1024 * 1024 + PAGE_SIZE)
  69#define STACK_TOP                       __UL(2 * 1024 * 1024)
  70#define STACK_TOP_MAX                   __UL(0xc0000000)
  71
  72/* userspace process size */
  73#ifdef CONFIG_MMU
  74#define TASK_SIZE                       (PAGE_OFFSET)
  75#else
  76#define TASK_SIZE                       __UL(0xFFFFFFFFUL)
  77#endif
  78
  79/* base of area at which unspecified mmaps will start */
  80#ifdef CONFIG_BINFMT_ELF_FDPIC
  81#define TASK_UNMAPPED_BASE              __UL(16 * 1024 * 1024)
  82#else
  83#define TASK_UNMAPPED_BASE              __UL(TASK_SIZE / 3)
  84#endif
  85
  86#endif /* _ASM_MEM_LAYOUT_H */
  87