1*431889d6SLadislav Michl /* 2*431889d6SLadislav Michl * Copyright (C) 2016 3*431889d6SLadislav Michl * Ladislav Michl <ladis@linux-mips.org> 4*431889d6SLadislav Michl * 5*431889d6SLadislav Michl * bootz code: 6*431889d6SLadislav Michl * Copyright (C) 2012 Marek Vasut <marek.vasut@gmail.com> 7*431889d6SLadislav Michl * 8*431889d6SLadislav Michl * SPDX-License-Identifier: GPL-2.0+ 9*431889d6SLadislav Michl */ 10*431889d6SLadislav Michl #include <common.h> 11*431889d6SLadislav Michl 12*431889d6SLadislav Michl #define LINUX_ARM_ZIMAGE_MAGIC 0x016f2818 13*431889d6SLadislav Michl 14*431889d6SLadislav Michl struct arm_z_header { 15*431889d6SLadislav Michl uint32_t code[9]; 16*431889d6SLadislav Michl uint32_t zi_magic; 17*431889d6SLadislav Michl uint32_t zi_start; 18*431889d6SLadislav Michl uint32_t zi_end; 19*431889d6SLadislav Michl } __attribute__ ((__packed__)); 20*431889d6SLadislav Michl 21*431889d6SLadislav Michl int bootz_setup(ulong image, ulong *start, ulong *end) 22*431889d6SLadislav Michl { 23*431889d6SLadislav Michl struct arm_z_header *zi = (struct arm_z_header *)image; 24*431889d6SLadislav Michl 25*431889d6SLadislav Michl if (zi->zi_magic != LINUX_ARM_ZIMAGE_MAGIC) { 26*431889d6SLadislav Michl #ifndef CONFIG_SPL_FRAMEWORK 27*431889d6SLadislav Michl puts("Bad Linux ARM zImage magic!\n"); 28*431889d6SLadislav Michl #endif 29*431889d6SLadislav Michl return 1; 30*431889d6SLadislav Michl } 31*431889d6SLadislav Michl 32*431889d6SLadislav Michl *start = zi->zi_start; 33*431889d6SLadislav Michl *end = zi->zi_end; 34*431889d6SLadislav Michl #ifndef CONFIG_SPL_FRAMEWORK 35*431889d6SLadislav Michl printf("Kernel image @ %#08lx [ %#08lx - %#08lx ]\n", 36*431889d6SLadislav Michl image, *start, *end); 37*431889d6SLadislav Michl #endif 38*431889d6SLadislav Michl 39*431889d6SLadislav Michl return 0; 40*431889d6SLadislav Michl } 41