Add the initial support for MX25PDK booting from SD card via internal boot. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>master
parent
e6d9b9785c
commit
419adbfbcb
@ -0,0 +1,49 @@ |
||||
#
|
||||
# Copyright (C) 2007, Guennadi Liakhovetski <lg@denx.de>
|
||||
#
|
||||
# (C) Copyright 2011 Freescale Semiconductor, Inc.
|
||||
#
|
||||
# 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
|
||||
#
|
||||
|
||||
include $(TOPDIR)/config.mk |
||||
|
||||
LIB = $(obj)lib$(BOARD).o
|
||||
|
||||
COBJS := mx25pdk.o
|
||||
SOBJS := lowlevel_init.o
|
||||
|
||||
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
|
||||
OBJS := $(addprefix $(obj),$(COBJS))
|
||||
SOBJS := $(addprefix $(obj),$(SOBJS))
|
||||
|
||||
$(LIB): $(obj).depend $(OBJS) $(SOBJS) |
||||
$(call cmd_link_o_target, $(OBJS) $(SOBJS))
|
||||
|
||||
clean: |
||||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean |
||||
rm -f $(LIB) core *.bak .depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
# defines $(obj).depend target
|
||||
include $(SRCTREE)/rules.mk |
||||
|
||||
sinclude $(obj).depend |
||||
|
||||
#########################################################################
|
@ -0,0 +1,73 @@ |
||||
# |
||||
# (C) Copyright 2009 |
||||
# Stefano Babic DENX Software Engineering sbabic@denx.de. |
||||
# |
||||
# 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. |
||||
# |
||||
# Refer docs/README.imxmage for more details about how-to configure |
||||
# and create imximage boot image |
||||
# |
||||
# The syntax is taken as close as possible with the kwbimage |
||||
|
||||
# Boot Device : one of |
||||
# spi, sd (the board has no nand neither onenand) |
||||
|
||||
BOOT_FROM sd |
||||
|
||||
# Device Configuration Data (DCD) |
||||
# |
||||
# Each entry must have the format: |
||||
# Addr-type Address Value |
||||
# |
||||
# where: |
||||
# Addr-type register length (1,2 or 4 bytes) |
||||
# Address absolute address of the register |
||||
# value value to be stored in the register |
||||
|
||||
# EIM config-CS5 init -- CPLD |
||||
DATA 4 0xB8002050 0x0000D843 |
||||
DATA 4 0xB8002054 0x22252521 |
||||
DATA 4 0xB8002058 0x22220A00 |
||||
|
||||
# DDR2 init |
||||
DATA 4 0xB8001004 0x0076E83A |
||||
DATA 4 0xB8001010 0x00000204 |
||||
DATA 4 0xB8001000 0x92210000 |
||||
DATA 4 0x80000f00 0x12344321 |
||||
DATA 4 0xB8001000 0xB2210000 |
||||
DATA 1 0x82000000 0xda |
||||
DATA 1 0x83000000 0xda |
||||
DATA 1 0x81000400 0xda |
||||
DATA 1 0x80000333 0xda |
||||
|
||||
DATA 4 0xB8001000 0x92210000 |
||||
DATA 1 0x80000400 0x12345678 |
||||
|
||||
DATA 4 0xB8001000 0xA2210000 |
||||
DATA 4 0x80000000 0x87654321 |
||||
DATA 4 0x80000000 0x87654321 |
||||
|
||||
DATA 4 0xB8001000 0xB2210000 |
||||
DATA 1 0x80000233 0xda |
||||
DATA 1 0x81000780 0xda |
||||
DATA 1 0x81000400 0xda |
||||
DATA 4 0xB8001000 0x82216080 |
||||
DATA 4 0x43FAC454 0x00001000 |
||||
|
||||
DATA 4 0x53F80008 0x20034000 |
||||
|
||||
# Enable the clocks |
||||
DATA 4 0x53f8000c 0x1fffffff |
||||
DATA 4 0x53f80010 0xffffffff |
||||
DATA 4 0x53f80014 0xfdfff |
@ -0,0 +1,21 @@ |
||||
/* |
||||
* Copyright (c) 2011 Freescale Semiconductor |
||||
* |
||||
* 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. |
||||
*/ |
||||
|
||||
.globl lowlevel_init
|
||||
lowlevel_init: |
||||
|
||||
mov pc, lr |
@ -0,0 +1,63 @@ |
||||
/*
|
||||
* (C) Copyright 2011 Freescale Semiconductor, Inc. |
||||
* |
||||
* Author: Fabio Estevam <fabio.estevam@freescale.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. |
||||
*/ |
||||
|
||||
#include <common.h> |
||||
#include <asm/io.h> |
||||
#include <asm/arch/imx-regs.h> |
||||
#include <asm/arch/imx25-pinmux.h> |
||||
#include <asm/arch/sys_proto.h> |
||||
|
||||
DECLARE_GLOBAL_DATA_PTR; |
||||
|
||||
int dram_init(void) |
||||
{ |
||||
/* dram_init must store complete ramsize in gd->ram_size */ |
||||
gd->ram_size = get_ram_size((void *)CONFIG_SYS_SDRAM_BASE, |
||||
PHYS_SDRAM_1_SIZE); |
||||
return 0; |
||||
} |
||||
|
||||
void dram_init_banksize(void) |
||||
{ |
||||
gd->bd->bi_dram[0].start = PHYS_SDRAM_1; |
||||
gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE; |
||||
} |
||||
|
||||
int board_early_init_f(void) |
||||
{ |
||||
mx25_uart1_init_pins(); |
||||
|
||||
return 0; |
||||
} |
||||
|
||||
int board_init(void) |
||||
{ |
||||
gd->bd->bi_arch_number = MACH_TYPE_MX25_3DS; |
||||
/* address of boot parameters */ |
||||
gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100; |
||||
|
||||
return 0; |
||||
} |
||||
|
||||
int checkboard(void) |
||||
{ |
||||
puts("Board: MX25PDK\n"); |
||||
|
||||
return 0; |
||||
} |
@ -0,0 +1,106 @@ |
||||
/*
|
||||
* (C) Copyright 2011 Freescale Semiconductor, Inc. |
||||
* |
||||
* 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. |
||||
*/ |
||||
|
||||
#ifndef __CONFIG_H |
||||
#define __CONFIG_H |
||||
|
||||
/* High Level Configuration Options */ |
||||
|
||||
#define CONFIG_MX25_CLK32 32768 /* OSC32K frequency */ |
||||
#define CONFIG_SYS_HZ 1000 |
||||
#define CONFIG_SYS_TEXT_BASE 0x81200000 |
||||
|
||||
#define CONFIG_DISPLAY_CPUINFO |
||||
#define CONFIG_DISPLAY_BOARDINFO |
||||
|
||||
#define CONFIG_CMDLINE_TAG /* enable passing of ATAGs */ |
||||
#define CONFIG_SETUP_MEMORY_TAGS |
||||
#define CONFIG_INITRD_TAG |
||||
|
||||
/* Size of malloc() pool */ |
||||
#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 2 * 1024 * 1024) |
||||
|
||||
/* Physical Memory Map */ |
||||
|
||||
#define CONFIG_NR_DRAM_BANKS 1 |
||||
#define PHYS_SDRAM_1 0x80000000 |
||||
#define PHYS_SDRAM_1_SIZE (64 * 1024 * 1024) |
||||
|
||||
#define CONFIG_BOARD_EARLY_INIT_F |
||||
|
||||
#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1 |
||||
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_SDRAM_BASE + 0x1000 - \ |
||||
GENERATED_GBL_DATA_SIZE) |
||||
|
||||
/* Memory Test */ |
||||
#define CONFIG_SYS_MEMTEST_START (PHYS_SDRAM_1 + PHYS_SDRAM_1_SIZE/2) |
||||
#define CONFIG_SYS_MEMTEST_END (PHYS_SDRAM_1 + PHYS_SDRAM_1_SIZE) |
||||
|
||||
/* Stack sizes */ |
||||
#define CONFIG_STACKSIZE (128 * 1024) /* regular stack */ |
||||
|
||||
/* Serial Info */ |
||||
#define CONFIG_MXC_UART |
||||
#define CONFIG_SYS_MX25_UART1 |
||||
#define CONFIG_CONS_INDEX 1 /* use UART0 for console */ |
||||
#define CONFIG_BAUDRATE 115200 /* Default baud rate */ |
||||
#define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 } |
||||
|
||||
/* No NOR flash present */ |
||||
#define CONFIG_ENV_OFFSET (6 * 64 * 1024) |
||||
#define CONFIG_ENV_SIZE (8 * 1024) |
||||
#define CONFIG_ENV_IS_NOWHERE |
||||
|
||||
#define CONFIG_SYS_NO_FLASH |
||||
#define CONFIG_SYS_64BIT_VSPRINTF |
||||
|
||||
/* U-Boot general configuration */ |
||||
#define CONFIG_SYS_PROMPT "MX25PDK U-Boot > " |
||||
#define CONFIG_AUTO_COMPLETE |
||||
#define CONFIG_SYS_CBSIZE 256 /* Console I/O Buffer Size */ |
||||
/* Print buffer sz */ |
||||
#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \ |
||||
sizeof(CONFIG_SYS_PROMPT) + 16) |
||||
#define CONFIG_SYS_MAXARGS 16 /* max number of command args */ |
||||
/* Boot Argument Buffer Size */ |
||||
#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE |
||||
#define CONFIG_CMDLINE_EDITING |
||||
#define CONFIG_SYS_LONGHELP |
||||
|
||||
/* U-Boot commands */ |
||||
#include <config_cmd_default.h> |
||||
#define CONFIG_CMD_CACHE |
||||
|
||||
/* Ethernet */ |
||||
#define CONFIG_FEC_MXC |
||||
#define CONFIG_FEC_MXC_PHYADDR 0x1f |
||||
#define CONFIG_MII |
||||
#define CONFIG_CMD_NET |
||||
#define CONFIG_NET_MULTI |
||||
#define CONFIG_ENV_OVERWRITE |
||||
|
||||
#define CONFIG_BOOTDELAY 3 |
||||
|
||||
#define CONFIG_LOADADDR 0x81000000 /* loadaddr env var */ |
||||
#define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR |
||||
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \ |
||||
"script=boot.scr\0" \
|
||||
"uimage=uImage\0" \
|
||||
"netargs=setenv bootargs console=ttymxc0,${baudrate} " \
|
||||
"root=/dev/nfs " \
|
||||
"ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \
|
||||
"bootcmd=run netargs; dhcp ${uimage}; bootm\0" \
|
||||
|
||||
#endif /* __CONFIG_H */ |
Loading…
Reference in new issue