xref: /kvm-unit-tests/lib/arm/asm/setup.h (revision a823f36ac0c7143e1816973527d66b9d04257874)
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>
962e6e986SAndrew Jones #include <asm/page.h>
1062e6e986SAndrew Jones #include <asm/pgtable-hwdef.h>
115e61cba0SAndrew Jones 
122f03234dSAndrew Jones #define NR_CPUS			511
13da905c9dSAndrew Jones extern u64 cpus[NR_CPUS];	/* per-cpu IDs (MPIDRs) */
145e61cba0SAndrew Jones extern int nr_cpus;
155e61cba0SAndrew Jones 
165a2a7371SAndrew Jones #define MR_F_IO			(1U << 0)
175a2a7371SAndrew Jones #define MR_F_CODE		(1U << 1)
18*a823f36aSAndrew Jones #define MR_F_RESERVED		(1U << 2)
19ef31e31dSAndrew Jones #define MR_F_UNKNOWN		(1U << 31)
20ef31e31dSAndrew Jones 
2162de081aSAndrew Jones struct mem_region {
2262de081aSAndrew Jones 	phys_addr_t start;
2362de081aSAndrew Jones 	phys_addr_t end;
2462de081aSAndrew Jones 	unsigned int flags;
2562de081aSAndrew Jones };
26ef31e31dSAndrew Jones extern struct mem_region *mem_regions;
275e61cba0SAndrew Jones extern phys_addr_t __phys_offset, __phys_end;
285e61cba0SAndrew Jones 
295a2a7371SAndrew Jones extern struct mem_region *mem_region_find(phys_addr_t paddr);
30ef31e31dSAndrew Jones extern unsigned int mem_region_get_flags(phys_addr_t paddr);
31ef31e31dSAndrew Jones 
325e61cba0SAndrew Jones #define PHYS_OFFSET		(__phys_offset)
335e61cba0SAndrew Jones #define PHYS_END		(__phys_end)
345e61cba0SAndrew Jones 
355e61cba0SAndrew Jones #define L1_CACHE_SHIFT		6
365e61cba0SAndrew Jones #define L1_CACHE_BYTES		(1 << L1_CACHE_SHIFT)
375e61cba0SAndrew Jones #define SMP_CACHE_BYTES		L1_CACHE_BYTES
385e61cba0SAndrew Jones 
395a2a7371SAndrew Jones void setup(const void *fdt, phys_addr_t freemem_start);
400df901e0SAndrew Jones 
415e61cba0SAndrew Jones #endif /* _ASMARM_SETUP_H_ */
42