Home | History | Annotate | Download | only in omap5
      1 // SPDX-License-Identifier: GPL-2.0+
      2 /*
      3  * OMAP5 boot
      4  *
      5  * Copyright (C) 2015 Paul Kocialkowski <contact (at) paulk.fr>
      6  */
      7 
      8 #include <common.h>
      9 #include <asm/io.h>
     10 #include <asm/omap_common.h>
     11 #include <spl.h>
     12 
     13 static u32 boot_devices[] = {
     14 #if defined(CONFIG_DRA7XX)
     15 	BOOT_DEVICE_MMC2,
     16 	BOOT_DEVICE_NAND,
     17 	BOOT_DEVICE_MMC1,
     18 	BOOT_DEVICE_SATA,
     19 	BOOT_DEVICE_XIP,
     20 	BOOT_DEVICE_XIP,
     21 	BOOT_DEVICE_SPI,
     22 	BOOT_DEVICE_SPI,
     23 #else
     24 	BOOT_DEVICE_MMC2,
     25 	BOOT_DEVICE_NAND,
     26 	BOOT_DEVICE_MMC1,
     27 	BOOT_DEVICE_SATA,
     28 	BOOT_DEVICE_XIP,
     29 	BOOT_DEVICE_MMC2,
     30 	BOOT_DEVICE_XIPWAIT,
     31 #endif
     32 };
     33 
     34 u32 omap_sys_boot_device(void)
     35 {
     36 	u32 sys_boot;
     37 
     38 	/* Grab the first 4 bits of the status register for SYS_BOOT. */
     39 	sys_boot = readl((u32 *) (*ctrl)->control_status) & ((1 << 4) - 1);
     40 
     41 	if (sys_boot >= (sizeof(boot_devices) / sizeof(u32)))
     42 		return BOOT_DEVICE_NONE;
     43 
     44 	return boot_devices[sys_boot];
     45 }
     46