mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-11 15:37:23 +00:00
MX35: Add soc_boot_mode and soc_boot_device to MX35
The functions are required to use the generic SPL Framework. Signed-off-by: Stefano Babic <sbabic@denx.de>
This commit is contained in:
parent
e650030347
commit
d41924a2c1
4 changed files with 206 additions and 0 deletions
|
@ -35,6 +35,7 @@
|
||||||
#include <fsl_esdhc.h>
|
#include <fsl_esdhc.h>
|
||||||
#endif
|
#endif
|
||||||
#include <netdev.h>
|
#include <netdev.h>
|
||||||
|
#include <spl.h>
|
||||||
|
|
||||||
#define CLK_CODE(arm, ahb, sel) (((arm) << 16) + ((ahb) << 8) + (sel))
|
#define CLK_CODE(arm, ahb, sel) (((arm) << 16) + ((ahb) << 8) + (sel))
|
||||||
#define CLK_CODE_ARM(c) (((c) >> 16) & 0xFF)
|
#define CLK_CODE_ARM(c) (((c) >> 16) & 0xFF)
|
||||||
|
@ -492,3 +493,77 @@ void reset_cpu(ulong addr)
|
||||||
struct wdog_regs *wdog = (struct wdog_regs *)WDOG_BASE_ADDR;
|
struct wdog_regs *wdog = (struct wdog_regs *)WDOG_BASE_ADDR;
|
||||||
writew(4, &wdog->wcr);
|
writew(4, &wdog->wcr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define RCSR_MEM_CTL_WEIM 0
|
||||||
|
#define RCSR_MEM_CTL_NAND 1
|
||||||
|
#define RCSR_MEM_CTL_ATA 2
|
||||||
|
#define RCSR_MEM_CTL_EXPANSION 3
|
||||||
|
#define RCSR_MEM_TYPE_NOR 0
|
||||||
|
#define RCSR_MEM_TYPE_ONENAND 2
|
||||||
|
#define RCSR_MEM_TYPE_SD 0
|
||||||
|
#define RCSR_MEM_TYPE_I2C 2
|
||||||
|
#define RCSR_MEM_TYPE_SPI 3
|
||||||
|
|
||||||
|
u32 spl_boot_device(void)
|
||||||
|
{
|
||||||
|
struct ccm_regs *ccm =
|
||||||
|
(struct ccm_regs *)IMX_CCM_BASE;
|
||||||
|
|
||||||
|
u32 rcsr = readl(&ccm->rcsr);
|
||||||
|
u32 mem_type, mem_ctl;
|
||||||
|
|
||||||
|
/* In external mode, no boot device is returned */
|
||||||
|
if ((rcsr >> 10) & 0x03)
|
||||||
|
return BOOT_DEVICE_NONE;
|
||||||
|
|
||||||
|
mem_ctl = (rcsr >> 25) & 0x03;
|
||||||
|
mem_type = (rcsr >> 23) & 0x03;
|
||||||
|
|
||||||
|
switch (mem_ctl) {
|
||||||
|
case RCSR_MEM_CTL_WEIM:
|
||||||
|
switch (mem_type) {
|
||||||
|
case RCSR_MEM_TYPE_NOR:
|
||||||
|
return BOOT_DEVICE_NOR;
|
||||||
|
case RCSR_MEM_TYPE_ONENAND:
|
||||||
|
return BOOT_DEVICE_ONE_NAND;
|
||||||
|
default:
|
||||||
|
return BOOT_DEVICE_NONE;
|
||||||
|
}
|
||||||
|
case RCSR_MEM_CTL_NAND:
|
||||||
|
return BOOT_DEVICE_NAND;
|
||||||
|
case RCSR_MEM_CTL_EXPANSION:
|
||||||
|
switch (mem_type) {
|
||||||
|
case RCSR_MEM_TYPE_SD:
|
||||||
|
return BOOT_DEVICE_MMC1;
|
||||||
|
case RCSR_MEM_TYPE_I2C:
|
||||||
|
return BOOT_DEVICE_I2C;
|
||||||
|
case RCSR_MEM_TYPE_SPI:
|
||||||
|
return BOOT_DEVICE_SPI;
|
||||||
|
default:
|
||||||
|
return BOOT_DEVICE_NONE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return BOOT_DEVICE_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_SPL_BUILD
|
||||||
|
u32 spl_boot_mode(void)
|
||||||
|
{
|
||||||
|
switch (spl_boot_device()) {
|
||||||
|
case BOOT_DEVICE_MMC1:
|
||||||
|
#ifdef CONFIG_SPL_FAT_SUPPORT
|
||||||
|
return MMCSD_MODE_FAT;
|
||||||
|
#else
|
||||||
|
return MMCSD_MODE_RAW;
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
case BOOT_DEVICE_NAND:
|
||||||
|
return 0;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
puts("spl: ERROR: unsupported device\n");
|
||||||
|
hang();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
62
arch/arm/cpu/arm1136/u-boot-spl.lds
Normal file
62
arch/arm/cpu/arm1136/u-boot-spl.lds
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
/*
|
||||||
|
* (C) Copyright 2002
|
||||||
|
* Gary Jennejohn, DENX Software Engineering, <garyj@denx.de>
|
||||||
|
*
|
||||||
|
* (C) Copyright 2010
|
||||||
|
* Texas Instruments, <www.ti.com>
|
||||||
|
* Aneesh V <aneesh@ti.com>
|
||||||
|
*
|
||||||
|
* See file CREDITS for list of people who contributed to this
|
||||||
|
* project.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||||
|
* MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
MEMORY { .sram : ORIGIN = CONFIG_SPL_TEXT_BASE,\
|
||||||
|
LENGTH = CONFIG_SPL_MAX_SIZE }
|
||||||
|
MEMORY { .sdram : ORIGIN = CONFIG_SPL_BSS_START_ADDR, \
|
||||||
|
LENGTH = CONFIG_SPL_BSS_MAX_SIZE }
|
||||||
|
|
||||||
|
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
|
||||||
|
OUTPUT_ARCH(arm)
|
||||||
|
ENTRY(_start)
|
||||||
|
SECTIONS
|
||||||
|
{
|
||||||
|
.text :
|
||||||
|
{
|
||||||
|
__start = .;
|
||||||
|
arch/arm/cpu/arm1136/start.o (.text)
|
||||||
|
*(.text*)
|
||||||
|
} >.sram
|
||||||
|
|
||||||
|
. = ALIGN(4);
|
||||||
|
.rodata : { *(SORT_BY_ALIGNMENT(.rodata*)) } >.sram
|
||||||
|
|
||||||
|
. = ALIGN(4);
|
||||||
|
.data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
|
||||||
|
. = ALIGN(4);
|
||||||
|
__image_copy_end = .;
|
||||||
|
_end = .;
|
||||||
|
|
||||||
|
.bss :
|
||||||
|
{
|
||||||
|
. = ALIGN(4);
|
||||||
|
__bss_start = .;
|
||||||
|
*(.bss*)
|
||||||
|
. = ALIGN(4);
|
||||||
|
__bss_end__ = .;
|
||||||
|
} >.sdram
|
||||||
|
}
|
31
arch/arm/include/asm/arch-mx35/mmc_host_def.h
Normal file
31
arch/arm/include/asm/arch-mx35/mmc_host_def.h
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
/*
|
||||||
|
* (C) Copyright 2008
|
||||||
|
* Texas Instruments, <www.ti.com>
|
||||||
|
* Syed Mohammed Khasim <khasim@ti.com>
|
||||||
|
*
|
||||||
|
* See file CREDITS for list of people who contributed to this
|
||||||
|
* project.
|
||||||
|
*
|
||||||
|
* 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's version 2 of
|
||||||
|
* the License.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||||
|
* MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef MMC_HOST_DEF_H
|
||||||
|
#define MMC_HOST_DEF_H
|
||||||
|
|
||||||
|
/* Driver definitions */
|
||||||
|
#define MMCSD_SECTOR_SIZE 512
|
||||||
|
|
||||||
|
#endif /* MMC_HOST_DEF_H */
|
38
arch/arm/include/asm/arch-mx35/spl.h
Normal file
38
arch/arm/include/asm/arch-mx35/spl.h
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
/*
|
||||||
|
* (C) Copyright 2012
|
||||||
|
* Texas Instruments, <www.ti.com>
|
||||||
|
*
|
||||||
|
* See file CREDITS for list of people who contributed to this
|
||||||
|
* project.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||||
|
* MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
#ifndef _ASM_ARCH_SPL_H_
|
||||||
|
#define _ASM_SPL_H_
|
||||||
|
|
||||||
|
#define BOOT_DEVICE_NONE 0
|
||||||
|
#define BOOT_DEVICE_XIP 1
|
||||||
|
#define BOOT_DEVICE_XIPWAIT 2
|
||||||
|
#define BOOT_DEVICE_NAND 3
|
||||||
|
#define BOOT_DEVICE_ONE_NAND 4
|
||||||
|
#define BOOT_DEVICE_MMC1 5
|
||||||
|
#define BOOT_DEVICE_MMC2 6
|
||||||
|
#define BOOT_DEVICE_MMC2_2 7
|
||||||
|
#define BOOT_DEVICE_NOR 8
|
||||||
|
#define BOOT_DEVICE_I2C 9
|
||||||
|
#define BOOT_DEVICE_SPI 10
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in a new issue