spaces.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. /*
  2. * This file is subject to the terms and conditions of the GNU General Public
  3. * License. See the file "COPYING" in the main directory of this archive
  4. * for more details.
  5. *
  6. * Copyright (C) 1994 - 1999, 2000, 03, 04 Ralf Baechle
  7. * Copyright (C) 2000, 2002 Maciej W. Rozycki
  8. * Copyright (C) 1990, 1999, 2000 Silicon Graphics, Inc.
  9. */
  10. #ifndef _ASM_MACH_GENERIC_SPACES_H
  11. #define _ASM_MACH_GENERIC_SPACES_H
  12. #ifdef CONFIG_32BIT
  13. #define CAC_BASE 0x80000000
  14. #define IO_BASE 0xa0000000
  15. #define UNCAC_BASE 0xa0000000
  16. #define MAP_BASE 0xc0000000
  17. /*
  18. * This handles the memory map.
  19. * We handle pages at KSEG0 for kernels with 32 bit address space.
  20. */
  21. #define PAGE_OFFSET 0x80000000UL
  22. /*
  23. * Memory above this physical address will be considered highmem.
  24. */
  25. #ifndef HIGHMEM_START
  26. #define HIGHMEM_START 0x20000000UL
  27. #endif
  28. #endif /* CONFIG_32BIT */
  29. #ifdef CONFIG_64BIT
  30. /*
  31. * This handles the memory map.
  32. */
  33. #ifdef CONFIG_DMA_NONCOHERENT
  34. #define PAGE_OFFSET 0x9800000000000000UL
  35. #else
  36. #define PAGE_OFFSET 0xa800000000000000UL
  37. #endif
  38. /*
  39. * Memory above this physical address will be considered highmem.
  40. * Fixme: 59 bits is a fictive number and makes assumptions about processors
  41. * in the distant future. Nobody will care for a few years :-)
  42. */
  43. #ifndef HIGHMEM_START
  44. #define HIGHMEM_START (1UL << 59UL)
  45. #endif
  46. #ifdef CONFIG_DMA_NONCOHERENT
  47. #define CAC_BASE 0x9800000000000000UL
  48. #else
  49. #define CAC_BASE 0xa800000000000000UL
  50. #endif
  51. #define IO_BASE 0x9000000000000000UL
  52. #define UNCAC_BASE 0x9000000000000000UL
  53. #define MAP_BASE 0xc000000000000000UL
  54. #define TO_PHYS(x) ( ((x) & TO_PHYS_MASK))
  55. #define TO_CAC(x) (CAC_BASE | ((x) & TO_PHYS_MASK))
  56. #define TO_UNCAC(x) (UNCAC_BASE | ((x) & TO_PHYS_MASK))
  57. #endif /* CONFIG_64BIT */
  58. #endif /* __ASM_MACH_GENERIC_SPACES_H */