uboot/arch/arm/mach-exynos/include/mach/spl.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0+ */
   2/*
   3 * Copyright (c) 2012 The Chromium OS Authors.
   4 */
   5
   6#ifndef __ASM_ARCH_EXYNOS_SPL_H__
   7#define __ASM_ARCH_EXYNOS_SPL_H__
   8
   9#include <asm/arch/dmc.h>
  10#include <asm/arch/power.h>
  11
  12#ifndef __ASSEMBLY__
  13/* Parameters of early board initialization in SPL */
  14struct spl_machine_param {
  15        /* Add fields as and when required */
  16        u32             signature;
  17        u32             version;        /* Version number */
  18        u32             size;           /* Size of block */
  19        /**
  20         * Parameters we expect, in order, terminated with \0. Each parameter
  21         * is a single character representing one 32-bit word in this
  22         * structure.
  23         *
  24         * Valid characters in this string are:
  25         *
  26         * Code         Name
  27         * v            mem_iv_size
  28         * m            mem_type
  29         * u            uboot_size
  30         * b            boot_source
  31         * f            frequency_mhz (memory frequency in MHz)
  32         * a            ARM clock frequency in MHz
  33         * s            serial base address
  34         * i            i2c base address for early access (meant for PMIC)
  35         * r            board rev GPIO numbers used to read board revision
  36         *                      (lower halfword=bit 0, upper=bit 1)
  37         * M            Memory Manufacturer name
  38         * \0           termination
  39         */
  40        char            params[12];     /* Length must be word-aligned */
  41        u32             mem_iv_size;    /* Memory channel interleaving size */
  42        enum ddr_mode   mem_type;       /* Type of on-board memory */
  43        /*
  44         * U-Boot size - The iROM mmc copy function used by the SPL takes a
  45         * block count paramter to describe the U-Boot size unlike the spi
  46         * boot copy function which just uses the U-Boot size directly. Align
  47         * the U-Boot size to block size (512 bytes) when populating the SPL
  48         * table only for mmc boot.
  49         */
  50        u32             uboot_size;
  51        unsigned        boot_source;    /* Boot device */
  52        unsigned        frequency_mhz;  /* Frequency of memory in MHz */
  53        unsigned        arm_freq_mhz;   /* ARM Frequency in MHz */
  54        u32             serial_base;    /* Serial base address */
  55        u32             i2c_base;       /* i2c base address */
  56        u32             board_rev_gpios;        /* Board revision GPIOs */
  57        enum mem_manuf  mem_manuf;      /* Memory Manufacturer */
  58} __attribute__((__packed__));
  59#endif
  60
  61/**
  62 * Validate signature and return a pointer to the parameter table.  If the
  63 * signature is invalid, call panic() and never return.
  64 *
  65 * @return pointer to the parameter table if signature matched or never return.
  66 */
  67struct spl_machine_param *spl_get_machine_params(void);
  68
  69#endif /* __ASM_ARCH_EXYNOS_SPL_H__ */
  70