omap4: Definitions for SYS_BOOT-based fallback boot device selection

This introduces code to read the value of the SYS_BOOT pins on the OMAP4, as
well as the memory-preferred scheme for the interpretation of each value.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
master
Paul Kocialkowski 10 years ago committed by Tom Rini
parent cfac375616
commit 94fc751d8a
  1. 1
      arch/arm/cpu/armv7/omap4/Makefile
  2. 60
      arch/arm/cpu/armv7/omap4/boot.c
  3. 1
      arch/arm/cpu/armv7/omap4/prcm-regs.c

@ -5,6 +5,7 @@
# SPDX-License-Identifier: GPL-2.0+
#
obj-y += boot.o
obj-y += sdram_elpida.o
obj-y += hwinit.o
obj-y += emif.o

@ -0,0 +1,60 @@
/*
* OMAP4 boot
*
* Copyright (C) 2015 Paul Kocialkowski <contact@paulk.fr>
*
* SPDX-License-Identifier: GPL-2.0+
*/
#include <common.h>
#include <asm/io.h>
#include <asm/omap_common.h>
#include <spl.h>
static u32 boot_devices[] = {
BOOT_DEVICE_MMC2,
BOOT_DEVICE_XIP,
BOOT_DEVICE_XIPWAIT,
BOOT_DEVICE_NAND,
BOOT_DEVICE_XIPWAIT,
BOOT_DEVICE_MMC1,
BOOT_DEVICE_ONENAND,
BOOT_DEVICE_ONENAND,
BOOT_DEVICE_MMC2,
BOOT_DEVICE_ONENAND,
BOOT_DEVICE_XIPWAIT,
BOOT_DEVICE_NAND,
BOOT_DEVICE_NAND,
BOOT_DEVICE_MMC1,
BOOT_DEVICE_ONENAND,
BOOT_DEVICE_MMC2,
BOOT_DEVICE_XIP,
BOOT_DEVICE_XIPWAIT,
BOOT_DEVICE_NAND,
BOOT_DEVICE_MMC1,
BOOT_DEVICE_MMC1,
BOOT_DEVICE_ONENAND,
BOOT_DEVICE_MMC2,
BOOT_DEVICE_XIP,
BOOT_DEVICE_MMC2_2,
BOOT_DEVICE_NAND,
BOOT_DEVICE_MMC2_2,
BOOT_DEVICE_MMC1,
BOOT_DEVICE_MMC2_2,
BOOT_DEVICE_MMC2_2,
BOOT_DEVICE_NONE,
BOOT_DEVICE_XIPWAIT,
};
u32 omap_sys_boot_device(void)
{
u32 sys_boot;
/* Grab the first 5 bits of the status register for SYS_BOOT. */
sys_boot = readl((u32 *) (*ctrl)->control_status) & ((1 << 5) - 1);
if (sys_boot >= (sizeof(boot_devices) / sizeof(u32)))
return BOOT_DEVICE_NONE;
return boot_devices[sys_boot];
}

@ -279,6 +279,7 @@ struct prcm_regs const omap4_prcm = {
};
struct omap_sys_ctrl_regs const omap4_ctrl = {
.control_status = 0x4A0022C4,
.control_id_code = 0x4A002204,
.control_std_fuse_opp_bgap = 0x4a002260,
.control_status = 0x4a0022c4,

Loading…
Cancel
Save