Path: blob/master/arch/unicore32/include/mach/memory.h
10818 views
/*1* linux/arch/unicore32/include/mach/memory.h2*3* Code specific to PKUnity SoC and UniCore ISA4*5* Copyright (C) 2001-2010 GUAN Xue-tao6*7* This program is free software; you can redistribute it and/or modify8* it under the terms of the GNU General Public License version 2 as9* published by the Free Software Foundation.10*/11#ifndef __MACH_PUV3_MEMORY_H__12#define __MACH_PUV3_MEMORY_H__1314#include <mach/hardware.h>1516/* Physical DRAM offset. */17#define PHYS_OFFSET UL(0x00000000)18/* The base address of exception vectors. */19#define VECTORS_BASE UL(0xffff0000)20/* The base address of kuser area. */21#define KUSER_BASE UL(0x80000000)2223#ifdef __ASSEMBLY__24/* The byte offset of the kernel image in RAM from the start of RAM. */25#define KERNEL_IMAGE_START 0x0040800026#endif2728#if !defined(__ASSEMBLY__) && defined(CONFIG_PCI)2930void puv3_pci_adjust_zones(unsigned long *size, unsigned long *holes);3132#define arch_adjust_zones(size, holes) \33puv3_pci_adjust_zones(size, holes)3435#endif3637/*38* PCI controller in PKUnity-3 masks highest 5-bit for upstream channel,39* so we must limit the DMA allocation within 128M physical memory for40* supporting PCI devices.41*/42#define PCI_DMA_THRESHOLD (PHYS_OFFSET + SZ_128M - 1)4344#define is_pcibus_device(dev) (dev && \45(strncmp(dev->bus->name, "pci", 3) == 0))4647#define __virt_to_pcibus(x) (__virt_to_phys((x) + PKUNITY_PCIAHB_BASE))48#define __pcibus_to_virt(x) (__phys_to_virt(x) - PKUNITY_PCIAHB_BASE)4950/* kuser area */51#define KUSER_VECPAGE_BASE (KUSER_BASE + UL(0x3fff0000))52/* kuser_vecpage (0xbfff0000) is ro, and vectors page (0xffff0000) is rw */53#define kuser_vecpage_to_vectors(x) ((x) - (KUSER_VECPAGE_BASE) \54+ (VECTORS_BASE))5556#endif575859