162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * arch/arm/mach-sa1100/include/mach/memory.h
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (C) 1999-2000 Nicolas Pitre <nico@fluxnic.net>
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#ifndef __ASM_ARCH_MEMORY_H
962306a36Sopenharmony_ci#define __ASM_ARCH_MEMORY_H
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#include <linux/sizes.h>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci/*
1462306a36Sopenharmony_ci * Because of the wide memory address space between physical RAM banks on the
1562306a36Sopenharmony_ci * SA1100, it's much convenient to use Linux's SparseMEM support to implement
1662306a36Sopenharmony_ci * our memory map representation.  Assuming all memory nodes have equal access
1762306a36Sopenharmony_ci * characteristics, we then have generic discontiguous memory support.
1862306a36Sopenharmony_ci *
1962306a36Sopenharmony_ci * The sparsemem banks are matched with the physical memory bank addresses
2062306a36Sopenharmony_ci * which are incidentally the same as virtual addresses.
2162306a36Sopenharmony_ci *
2262306a36Sopenharmony_ci * 	node 0:  0xc0000000 - 0xc7ffffff
2362306a36Sopenharmony_ci * 	node 1:  0xc8000000 - 0xcfffffff
2462306a36Sopenharmony_ci * 	node 2:  0xd0000000 - 0xd7ffffff
2562306a36Sopenharmony_ci * 	node 3:  0xd8000000 - 0xdfffffff
2662306a36Sopenharmony_ci */
2762306a36Sopenharmony_ci#define MAX_PHYSMEM_BITS	32
2862306a36Sopenharmony_ci#define SECTION_SIZE_BITS	27
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci/*
3162306a36Sopenharmony_ci * Cache flushing area - SA1100 zero bank
3262306a36Sopenharmony_ci */
3362306a36Sopenharmony_ci#define FLUSH_BASE_PHYS		0xe0000000
3462306a36Sopenharmony_ci#define FLUSH_BASE		0xf5000000
3562306a36Sopenharmony_ci#define FLUSH_BASE_MINICACHE	0xf5100000
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci#endif
38