]> Git Repo - u-boot.git/blame - arch/arm/mach-at91/spl.c
common: Move testdram() into init.h
[u-boot.git] / arch / arm / mach-at91 / spl.c
CommitLineData
83d290c5 1// SPDX-License-Identifier: GPL-2.0+
c5e8885a
BS
2/*
3 * Copyright (C) 2013 Atmel Corporation
4 * Bo Shen <[email protected]>
c5e8885a
BS
5 */
6
7#include <common.h>
8#include <asm/io.h>
9#include <asm/arch/at91_common.h>
c5e8885a
BS
10#include <asm/arch/at91_wdt.h>
11#include <asm/arch/clk.h>
12#include <spl.h>
13
1473f6ac 14#if !defined(CONFIG_WDT_AT91)
5abc00d0 15void at91_disable_wdt(void)
c5e8885a
BS
16{
17 struct at91_wdt *wdt = (struct at91_wdt *)ATMEL_BASE_WDT;
18
19 writel(AT91_WDT_MR_WDDIS, &wdt->mr);
20}
49b461f3 21#endif
c5e8885a 22
1c24f13f
MV
23#if defined(CONFIG_SAMA5D2) || defined(CONFIG_SAMA5D3) || \
24 defined(CONFIG_SAMA5D4)
25#include <asm/arch/sama5_boot.h>
bb0c63a5
MV
26struct {
27 u32 r4;
28} bootrom_stash __attribute__((section(".data")));
29
30u32 spl_boot_device(void)
31{
1c24f13f
MV
32 u32 dev = (bootrom_stash.r4 >> ATMEL_SAMA5_BOOT_FROM_OFF) &
33 ATMEL_SAMA5_BOOT_FROM_MASK;
34 u32 off = (bootrom_stash.r4 >> ATMEL_SAMA5_BOOT_DEV_ID_OFF) &
35 ATMEL_SAMA5_BOOT_DEV_ID_MASK;
bb0c63a5 36
a35c3402 37#if defined(CONFIG_SYS_USE_MMC) || defined(CONFIG_SD_BOOT)
1c24f13f 38 if (dev == ATMEL_SAMA5_BOOT_FROM_MCI) {
c00d7c33
WY
39#if defined(CONFIG_SPL_OF_CONTROL)
40 return BOOT_DEVICE_MMC1;
41#else
bb0c63a5
MV
42 if (off == 0)
43 return BOOT_DEVICE_MMC1;
44 if (off == 1)
45 return BOOT_DEVICE_MMC2;
46 printf("ERROR: MMC controller %i not present!\n", dev);
47 hang();
c00d7c33 48#endif
bb0c63a5
MV
49 }
50#endif
51
a35c3402
WY
52#if defined(CONFIG_SYS_USE_SERIALFLASH) || \
53 defined(CONFIG_SYS_USE_SPIFLASH) || \
54 defined(CONFIG_SPI_BOOT)
1c24f13f 55 if (dev == ATMEL_SAMA5_BOOT_FROM_SPI)
bb0c63a5
MV
56 return BOOT_DEVICE_SPI;
57#endif
dfd6d3a9
WY
58 if (dev == ATMEL_SAMA5_BOOT_FROM_QSPI)
59 return BOOT_DEVICE_SPI;
bb0c63a5 60
c00d7c33
WY
61 if (dev == ATMEL_SAMA5_BOOT_FROM_SMC)
62 return BOOT_DEVICE_NAND;
63
1c24f13f
MV
64 if (dev == ATMEL_SAMA5_BOOT_FROM_SAMBA)
65 return BOOT_DEVICE_USB;
66
bb0c63a5
MV
67 printf("ERROR: SMC/TWI/QSPI boot device not supported!\n"
68 " Boot device %i, controller number %i\n", dev, off);
69
70 return BOOT_DEVICE_NONE;
71}
72#else
c5e8885a
BS
73u32 spl_boot_device(void)
74{
a35c3402 75#if defined(CONFIG_SYS_USE_MMC) || defined(CONFIG_SD_BOOT)
c5e8885a 76 return BOOT_DEVICE_MMC1;
a35c3402 77#elif defined(CONFIG_SYS_USE_NANDFLASH) || defined(CONFIG_NAND_BOOT)
27019e4a 78 return BOOT_DEVICE_NAND;
a35c3402
WY
79#elif defined(CONFIG_SYS_USE_SERIALFLASH) || \
80 defined(CONFIG_SYS_USE_SPIFLASH) || \
81 defined(CONFIG_SPI_BOOT)
8a45b0ba 82 return BOOT_DEVICE_SPI;
c5e8885a
BS
83#endif
84 return BOOT_DEVICE_NONE;
85}
bb0c63a5 86#endif
This page took 0.258383 seconds and 4 git commands to generate.