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