18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * arch/arm/mach-sa1100/include/mach/memory.h 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (C) 1999-2000 Nicolas Pitre <nico@fluxnic.net> 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#ifndef __ASM_ARCH_MEMORY_H 98c2ecf20Sopenharmony_ci#define __ASM_ARCH_MEMORY_H 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci#include <linux/sizes.h> 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ci/* 148c2ecf20Sopenharmony_ci * Because of the wide memory address space between physical RAM banks on the 158c2ecf20Sopenharmony_ci * SA1100, it's much convenient to use Linux's SparseMEM support to implement 168c2ecf20Sopenharmony_ci * our memory map representation. Assuming all memory nodes have equal access 178c2ecf20Sopenharmony_ci * characteristics, we then have generic discontiguous memory support. 188c2ecf20Sopenharmony_ci * 198c2ecf20Sopenharmony_ci * The sparsemem banks are matched with the physical memory bank addresses 208c2ecf20Sopenharmony_ci * which are incidentally the same as virtual addresses. 218c2ecf20Sopenharmony_ci * 228c2ecf20Sopenharmony_ci * node 0: 0xc0000000 - 0xc7ffffff 238c2ecf20Sopenharmony_ci * node 1: 0xc8000000 - 0xcfffffff 248c2ecf20Sopenharmony_ci * node 2: 0xd0000000 - 0xd7ffffff 258c2ecf20Sopenharmony_ci * node 3: 0xd8000000 - 0xdfffffff 268c2ecf20Sopenharmony_ci */ 278c2ecf20Sopenharmony_ci#define MAX_PHYSMEM_BITS 32 288c2ecf20Sopenharmony_ci#define SECTION_SIZE_BITS 27 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci/* 318c2ecf20Sopenharmony_ci * Cache flushing area - SA1100 zero bank 328c2ecf20Sopenharmony_ci */ 338c2ecf20Sopenharmony_ci#define FLUSH_BASE_PHYS 0xe0000000 348c2ecf20Sopenharmony_ci#define FLUSH_BASE 0xf5000000 358c2ecf20Sopenharmony_ci#define FLUSH_BASE_MINICACHE 0xf5100000 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci#endif 38