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