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> 9*62de081aSAndrew Jones #include <alloc.h> /* phys_addr_t */ 1062e6e986SAndrew Jones #include <asm/page.h> 1162e6e986SAndrew Jones #include <asm/pgtable-hwdef.h> 125e61cba0SAndrew Jones 135e61cba0SAndrew Jones #define NR_CPUS 8 145e61cba0SAndrew Jones extern u32 cpus[NR_CPUS]; 155e61cba0SAndrew Jones extern int nr_cpus; 165e61cba0SAndrew Jones 17*62de081aSAndrew Jones #define NR_MEM_REGIONS 8 18*62de081aSAndrew Jones #define MR_F_PRIMARY (1U << 0) 19*62de081aSAndrew Jones struct mem_region { 20*62de081aSAndrew Jones phys_addr_t start; 21*62de081aSAndrew Jones phys_addr_t end; 22*62de081aSAndrew Jones unsigned int flags; 23*62de081aSAndrew Jones }; 24*62de081aSAndrew 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