uboot/tools/ublimage.h
<<
>>
Prefs
   1/*
   2 * (C) Copyright 2011
   3 * Heiko Schocher, DENX Software Engineering, hs@denx.de.
   4 *
   5 * Vased on:
   6 * (C) Copyright 2009
   7 * Stefano Babic, DENX Software Engineering, sbabic@denx.de.
   8 *
   9 * SPDX-License-Identifier:     GPL-2.0+
  10 */
  11
  12#ifndef _UBLIMAGE_H_
  13#define _UBLIMAGE_H_
  14
  15enum ublimage_cmd {
  16        CMD_INVALID,
  17        CMD_BOOT_MODE,
  18        CMD_ENTRY,
  19        CMD_PAGE,
  20        CMD_ST_BLOCK,
  21        CMD_ST_PAGE,
  22        CMD_LD_ADDR
  23};
  24
  25enum ublimage_fld_types {
  26        CFG_INVALID = -1,
  27        CFG_COMMAND,
  28        CFG_REG_VALUE
  29};
  30
  31/*
  32 * from sprufg5a.pdf Table 110
  33 * Used by RBL when doing NAND boot
  34 */
  35#define UBL_MAGIC_BASE              (0xA1ACED00)
  36/* Safe boot mode */
  37#define UBL_MAGIC_SAFE              (0x00)
  38/* DMA boot mode */
  39#define UBL_MAGIC_DMA               (0x11)
  40/* I Cache boot mode */
  41#define UBL_MAGIC_IC                (0x22)
  42/* Fast EMIF boot mode */
  43#define UBL_MAGIC_FAST              (0x33)
  44/* DMA + ICache boot mode */
  45#define UBL_MAGIC_DMA_IC            (0x44)
  46/* DMA + ICache + Fast EMIF boot mode */
  47#define UBL_MAGIC_DMA_IC_FAST       (0x55)
  48
  49/* Define max UBL image size */
  50#define UBL_IMAGE_SIZE              (0x00003800u)
  51
  52/* one NAND block */
  53#define UBL_BLOCK_SIZE 2048
  54
  55/* from sprufg5a.pdf Table 109 */
  56struct ubl_header {
  57        uint32_t        magic;  /* Magic Number, see UBL_* defines */
  58        uint32_t        entry;  /* entry point address for bootloader */
  59        uint32_t        pages;  /* number of pages (size of bootloader) */
  60        uint32_t        block;  /*
  61                                 * blocknumber where user bootloader is
  62                                 * present
  63                                 */
  64        uint32_t        page;   /*
  65                                 * page number where user bootloader is
  66                                 * present.
  67                                 */
  68        uint32_t        pll_m;  /*
  69                                 * PLL setting -Multiplier (only valid if
  70                                 * Magic Number indicates PLL enable).
  71                                 */
  72        uint32_t        pll_n;  /*
  73                                 * PLL setting -Divider (only valid if
  74                                 * Magic Number indicates PLL enable).
  75                                 */
  76        uint32_t        emif;   /*
  77                                 * fast EMIF setting (only valid if
  78                                 * Magic Number indicates fast EMIF boot).
  79                                 */
  80        /* to fit in one nand block */
  81        unsigned char   res[UBL_BLOCK_SIZE - 8 * 4];
  82};
  83
  84#endif /* _UBLIMAGE_H_ */
  85