b5ee900258
Let's provide an overridable default instead of having every machine class define __virt_to_bus and __bus_to_virt to the same thing. What most platforms are using is bus_addr == phys_addr so such is the default. One exception is ebsa110 which has no DMA what so ever, so the actual definition is not important except only for proper compilation. Also added a comment about the special footbridge bus translation. Let's also remove comments alluding to set_dma_addr which is not (and should not) be commonly used. Signed-off-by: Nicolas Pitre <nico@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
72 lines
1.8 KiB
C
72 lines
1.8 KiB
C
/* arch/arm/mach-lh7a40x/include/mach/memory.h
|
|
*
|
|
* Copyright (C) 2004 Coastal Environmental Systems
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* version 2 as published by the Free Software Foundation.
|
|
*
|
|
*
|
|
* Refer to <file:Documentation/arm/Sharp-LH/SDRAM> for more information.
|
|
*
|
|
*/
|
|
|
|
#ifndef __ASM_ARCH_MEMORY_H
|
|
#define __ASM_ARCH_MEMORY_H
|
|
|
|
/*
|
|
* Physical DRAM offset.
|
|
*/
|
|
#define PHYS_OFFSET UL(0xc0000000)
|
|
|
|
#ifdef CONFIG_DISCONTIGMEM
|
|
|
|
/*
|
|
* Given a kernel address, find the home node of the underlying memory.
|
|
*/
|
|
|
|
# ifdef CONFIG_LH7A40X_ONE_BANK_PER_NODE
|
|
# define KVADDR_TO_NID(addr) \
|
|
( ((((unsigned long) (addr) - PAGE_OFFSET) >> 24) & 1)\
|
|
| ((((unsigned long) (addr) - PAGE_OFFSET) >> 25) & ~1))
|
|
# else /* 2 banks per node */
|
|
# define KVADDR_TO_NID(addr) \
|
|
(((unsigned long) (addr) - PAGE_OFFSET) >> 26)
|
|
# endif
|
|
|
|
/*
|
|
* Given a page frame number, convert it to a node id.
|
|
*/
|
|
|
|
# ifdef CONFIG_LH7A40X_ONE_BANK_PER_NODE
|
|
# define PFN_TO_NID(pfn) \
|
|
(((((pfn) - PHYS_PFN_OFFSET) >> (24 - PAGE_SHIFT)) & 1)\
|
|
| ((((pfn) - PHYS_PFN_OFFSET) >> (25 - PAGE_SHIFT)) & ~1))
|
|
# else /* 2 banks per node */
|
|
# define PFN_TO_NID(pfn) \
|
|
(((pfn) - PHYS_PFN_OFFSET) >> (26 - PAGE_SHIFT))
|
|
#endif
|
|
|
|
/*
|
|
* Given a kaddr, LOCAL_MEM_MAP finds the owning node of the memory
|
|
* and returns the index corresponding to the appropriate page in the
|
|
* node's mem_map.
|
|
*/
|
|
|
|
# ifdef CONFIG_LH7A40X_ONE_BANK_PER_NODE
|
|
# define LOCAL_MAP_NR(addr) \
|
|
(((unsigned long)(addr) & 0x003fffff) >> PAGE_SHIFT)
|
|
# else /* 2 banks per node */
|
|
# define LOCAL_MAP_NR(addr) \
|
|
(((unsigned long)(addr) & 0x01ffffff) >> PAGE_SHIFT)
|
|
# endif
|
|
|
|
#endif
|
|
|
|
/*
|
|
* Sparsemem version of the above
|
|
*/
|
|
#define MAX_PHYSMEM_BITS 32
|
|
#define SECTION_SIZE_BITS 24
|
|
|
|
#endif
|