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 13 14#ifdef CONFIG_32BIT 15 16#define CAC_BASE 0x80000000 17#define IO_BASE 0xa0000000 18#define UNCAC_BASE 0xa0000000 19#define MAP_BASE 0xc0000000 20 21/* 22 * This handles the memory map. 23 * We handle pages at KSEG0 for kernels with 32 bit address space. 24 */ 25#define PAGE_OFFSET 0x80000000UL 26 27/* 28 * Memory above this physical address will be considered highmem. 29 */ 30#ifndef HIGHMEM_START 31#define HIGHMEM_START 0x20000000UL 32#endif 33 34#endif /* CONFIG_32BIT */ 35 36#ifdef CONFIG_64BIT 37 38/* 39 * This handles the memory map. 40 */ 41#ifdef CONFIG_DMA_NONCOHERENT 42#define PAGE_OFFSET 0x9800000000000000UL 43#else 44#define PAGE_OFFSET 0xa800000000000000UL 45#endif 46 47#ifndef HIGHMEM_START 48#define HIGHMEM_START (1UL << 59UL) 49#endif 50 51#ifdef CONFIG_DMA_NONCOHERENT 52#define CAC_BASE 0x9800000000000000UL 53#else 54#define CAC_BASE 0xa800000000000000UL 55#endif 56#define IO_BASE 0x9000000000000000UL 57#define UNCAC_BASE 0x9000000000000000UL 58#define MAP_BASE 0xc000000000000000UL 59 60#define TO_PHYS(x) ( ((x) & TO_PHYS_MASK)) 61#define TO_CAC(x) (CAC_BASE | ((x) & TO_PHYS_MASK)) 62#define TO_UNCAC(x) (UNCAC_BASE | ((x) & TO_PHYS_MASK)) 63 64#endif /* CONFIG_64BIT */ 65 66#endif /* __ASM_MACH_GENERIC_SPACES_H */ 67