1 #ifndef _ASMARM_SETUP_H_ 2 #define _ASMARM_SETUP_H_ 3 /* 4 * Copyright (C) 2014, Red Hat Inc, Andrew Jones <drjones@redhat.com> 5 * 6 * This work is licensed under the terms of the GNU LGPL, version 2. 7 */ 8 #include <libcflat.h> 9 #include <asm/page.h> 10 #include <asm/pgtable-hwdef.h> 11 12 #define NR_CPUS 511 13 extern u64 cpus[NR_CPUS]; /* per-cpu IDs (MPIDRs) */ 14 extern int nr_cpus; 15 16 #define MR_F_PRIMARY (1U << 0) 17 #define MR_F_IO (1U << 1) 18 #define MR_F_UNKNOWN (1U << 31) 19 20 struct mem_region { 21 phys_addr_t start; 22 phys_addr_t end; 23 unsigned int flags; 24 }; 25 extern struct mem_region *mem_regions; 26 extern phys_addr_t __phys_offset, __phys_end; 27 28 extern unsigned int mem_region_get_flags(phys_addr_t paddr); 29 30 #define PHYS_OFFSET (__phys_offset) 31 #define PHYS_END (__phys_end) 32 33 #define L1_CACHE_SHIFT 6 34 #define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT) 35 #define SMP_CACHE_BYTES L1_CACHE_BYTES 36 37 void setup(const void *fdt); 38 39 #endif /* _ASMARM_SETUP_H_ */ 40