xref: /kvm-unit-tests/lib/arm/asm/setup.h (revision d9729025989690ae4e02c6b84eac881849dd186a)
15e61cba0SAndrew Jones #ifndef _ASMARM_SETUP_H_
25e61cba0SAndrew Jones #define _ASMARM_SETUP_H_
35e61cba0SAndrew Jones /*
45e61cba0SAndrew Jones  * Copyright (C) 2014, Red Hat Inc, Andrew Jones <drjones@redhat.com>
55e61cba0SAndrew Jones  *
65e61cba0SAndrew Jones  * This work is licensed under the terms of the GNU LGPL, version 2.
75e61cba0SAndrew Jones  */
88cca5668SAndrew Jones #include <libcflat.h>
962de081aSAndrew Jones #include <alloc.h>	/* phys_addr_t */
1062e6e986SAndrew Jones #include <asm/page.h>
1162e6e986SAndrew Jones #include <asm/pgtable-hwdef.h>
125e61cba0SAndrew Jones 
13*d9729025SAndrew Jones #define NR_CPUS			255
14*d9729025SAndrew Jones extern u32 cpus[NR_CPUS];	/* per-cpu IDs (MPIDRs) */
155e61cba0SAndrew Jones extern int nr_cpus;
165e61cba0SAndrew Jones 
1762de081aSAndrew Jones #define NR_MEM_REGIONS		8
1862de081aSAndrew Jones #define MR_F_PRIMARY		(1U << 0)
1962de081aSAndrew Jones struct mem_region {
2062de081aSAndrew Jones 	phys_addr_t start;
2162de081aSAndrew Jones 	phys_addr_t end;
2262de081aSAndrew Jones 	unsigned int flags;
2362de081aSAndrew Jones };
2462de081aSAndrew Jones extern struct mem_region mem_regions[NR_MEM_REGIONS];
255e61cba0SAndrew Jones extern phys_addr_t __phys_offset, __phys_end;
265e61cba0SAndrew Jones 
275e61cba0SAndrew Jones #define PHYS_OFFSET		(__phys_offset)
285e61cba0SAndrew Jones #define PHYS_END		(__phys_end)
292f3028cdSAndrew Jones /* mach-virt reserves the first 1G section for I/O */
302f3028cdSAndrew Jones #define PHYS_IO_OFFSET		(0UL)
312f3028cdSAndrew Jones #define PHYS_IO_END		(1UL << 30)
325e61cba0SAndrew Jones 
335e61cba0SAndrew Jones #define L1_CACHE_SHIFT		6
345e61cba0SAndrew Jones #define L1_CACHE_BYTES		(1 << L1_CACHE_SHIFT)
355e61cba0SAndrew Jones #define SMP_CACHE_BYTES		L1_CACHE_BYTES
365e61cba0SAndrew Jones 
375e61cba0SAndrew Jones #endif /* _ASMARM_SETUP_H_ */
38