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) 18a823f36aSAndrew 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 41*23e17626SNikos Nikoleris #ifdef CONFIG_EFI 42*23e17626SNikos Nikoleris 43*23e17626SNikos Nikoleris #include <efi.h> 44*23e17626SNikos Nikoleris 45*23e17626SNikos Nikoleris efi_status_t setup_efi(efi_bootinfo_t *efi_bootinfo); 46*23e17626SNikos Nikoleris 47*23e17626SNikos Nikoleris #endif 48*23e17626SNikos Nikoleris 495e61cba0SAndrew Jones #endif /* _ASMARM_SETUP_H_ */ 50