uboot/arch/arm/lib/zimage.c
<<
>>
Prefs
   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#include <image.h>
  11
  12#define LINUX_ARM_ZIMAGE_MAGIC  0x016f2818
  13#define BAREBOX_IMAGE_MAGIC     0x00786f62
  14
  15struct arm_z_header {
  16        uint32_t        code[9];
  17        uint32_t        zi_magic;
  18        uint32_t        zi_start;
  19        uint32_t        zi_end;
  20} __attribute__ ((__packed__));
  21
  22int bootz_setup(ulong image, ulong *start, ulong *end)
  23{
  24        struct arm_z_header *zi = (struct arm_z_header *)image;
  25
  26        if (zi->zi_magic != LINUX_ARM_ZIMAGE_MAGIC &&
  27            zi->zi_magic != BAREBOX_IMAGE_MAGIC) {
  28                if (!IS_ENABLED(CONFIG_SPL_BUILD))
  29                        puts("zimage: Bad magic!\n");
  30                return 1;
  31        }
  32
  33        *start = zi->zi_start;
  34        *end = zi->zi_end;
  35        if (!IS_ENABLED(CONFIG_SPL_BUILD))
  36                printf("Kernel image @ %#08lx [ %#08lx - %#08lx ]\n",
  37                       image, *start, *end);
  38
  39        return 0;
  40}
  41