mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-05 11:00:15 +00:00
e3913f56a2
Add check for write protection in omap mmc driver. Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il> Signed-off-by: Igor Grinberg <grinberg@compulab.co.il> Reviewed-by: Tom Rini <trini@ti.com>
76 lines
1.9 KiB
C
76 lines
1.9 KiB
C
/*
|
|
* boot-common.c
|
|
*
|
|
* Common bootmode functions for omap based boards
|
|
*
|
|
* Copyright (C) 2011, Texas Instruments, Incorporated - http://www.ti.com/
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License as
|
|
* published by the Free Software Foundation; either version 2 of
|
|
* the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR /PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*/
|
|
|
|
#include <common.h>
|
|
#include <spl.h>
|
|
#include <asm/omap_common.h>
|
|
#include <asm/arch/omap.h>
|
|
#include <asm/arch/mmc_host_def.h>
|
|
#include <asm/arch/sys_proto.h>
|
|
|
|
/*
|
|
* This is used to verify if the configuration header
|
|
* was executed by rom code prior to control of transfer
|
|
* to the bootloader. SPL is responsible for saving and
|
|
* passing the boot_params pointer to the u-boot.
|
|
*/
|
|
struct omap_boot_parameters boot_params __attribute__ ((section(".data")));
|
|
|
|
#ifdef CONFIG_SPL_BUILD
|
|
/*
|
|
* We use static variables because global data is not ready yet.
|
|
* Initialized data is available in SPL right from the beginning.
|
|
* We would not typically need to save these parameters in regular
|
|
* U-Boot. This is needed only in SPL at the moment.
|
|
*/
|
|
u32 omap_bootmode = MMCSD_MODE_FAT;
|
|
|
|
u32 spl_boot_device(void)
|
|
{
|
|
return (u32) (boot_params.omap_bootdevice);
|
|
}
|
|
|
|
u32 spl_boot_mode(void)
|
|
{
|
|
return omap_bootmode;
|
|
}
|
|
|
|
void spl_board_init(void)
|
|
{
|
|
#ifdef CONFIG_SPL_NAND_SUPPORT
|
|
gpmc_init();
|
|
#endif
|
|
#if defined(CONFIG_AM33XX) && defined(CONFIG_SPL_MUSB_NEW_SUPPORT)
|
|
arch_misc_init();
|
|
#endif
|
|
}
|
|
|
|
int board_mmc_init(bd_t *bis)
|
|
{
|
|
switch (spl_boot_device()) {
|
|
case BOOT_DEVICE_MMC1:
|
|
omap_mmc_init(0, 0, 0, -1, -1);
|
|
break;
|
|
case BOOT_DEVICE_MMC2:
|
|
case BOOT_DEVICE_MMC2_2:
|
|
omap_mmc_init(1, 0, 0, -1, -1);
|
|
break;
|
|
}
|
|
return 0;
|
|
}
|
|
#endif
|