mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-18 13:11:31 +00:00
mxs: Add MX23 olinuxino board support
This patch adds support for MX23-based Olinuxino board. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Fabio Estevam <fabio.estevam@freescale.com> Cc: Otavio Salvador <otavio@ossystems.com.br> Cc: Stefano Babic <sbabic@denx.de>
This commit is contained in:
parent
9fb6aa9a61
commit
64a9386080
6 changed files with 325 additions and 0 deletions
|
@ -935,6 +935,7 @@ Marek Vasut <marek.vasut@gmail.com>
|
|||
palmtc xscale/pxa
|
||||
vpac270 xscale/pxa
|
||||
zipitz2 xscale/pxa
|
||||
mx23_olinuxino i.MX23
|
||||
m28evk i.MX28
|
||||
sc_sps_1 i.MX28
|
||||
|
||||
|
|
47
board/olimex/mx23_olinuxino/Makefile
Normal file
47
board/olimex/mx23_olinuxino/Makefile
Normal file
|
@ -0,0 +1,47 @@
|
|||
#
|
||||
# (C) Copyright 2000-2006
|
||||
# Wolfgang Denk, DENX Software Engineering, wd@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.
|
||||
#
|
||||
# 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
|
||||
|
||||
ifndef CONFIG_SPL_BUILD
|
||||
COBJS := mx23_olinuxino.o
|
||||
else
|
||||
COBJS := spl_boot.o
|
||||
endif
|
||||
|
||||
SRCS := $(COBJS:.o=.c)
|
||||
OBJS := $(addprefix $(obj),$(COBJS))
|
||||
|
||||
$(LIB): $(obj).depend $(OBJS)
|
||||
$(call cmd_link_o_target, $(OBJS))
|
||||
|
||||
#########################################################################
|
||||
|
||||
# defines $(obj).depend target
|
||||
include $(SRCTREE)/rules.mk
|
||||
|
||||
sinclude $(obj).depend
|
||||
|
||||
#########################################################################
|
51
board/olimex/mx23_olinuxino/mx23_olinuxino.c
Normal file
51
board/olimex/mx23_olinuxino/mx23_olinuxino.c
Normal file
|
@ -0,0 +1,51 @@
|
|||
/*
|
||||
* Olimex MX23 Olinuxino board
|
||||
*
|
||||
* Copyright (C) 2013 Marek Vasut <marex@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.
|
||||
*
|
||||
* 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 <common.h>
|
||||
#include <asm/arch/imx-regs.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
/*
|
||||
* Functions
|
||||
*/
|
||||
int board_early_init_f(void)
|
||||
{
|
||||
/* SSP clock init will come here soon. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
int dram_init(void)
|
||||
{
|
||||
return mxs_dram_init();
|
||||
}
|
||||
|
||||
int board_init(void)
|
||||
{
|
||||
/* Adress of boot parameters */
|
||||
gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
|
||||
|
||||
return 0;
|
||||
}
|
90
board/olimex/mx23_olinuxino/spl_boot.c
Normal file
90
board/olimex/mx23_olinuxino/spl_boot.c
Normal file
|
@ -0,0 +1,90 @@
|
|||
/*
|
||||
* Olimex MX23 Olinuxino Boot setup
|
||||
*
|
||||
* Copyright (C) 2013 Marek Vasut <marex@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.
|
||||
*
|
||||
* 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 <common.h>
|
||||
#include <config.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/iomux-mx23.h>
|
||||
#include <asm/arch/imx-regs.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
|
||||
#define MUX_CONFIG_EMI (MXS_PAD_3V3 | MXS_PAD_12MA | MXS_PAD_NOPULL)
|
||||
|
||||
const iomux_cfg_t iomux_setup[] = {
|
||||
/* DUART */
|
||||
MX23_PAD_PWM0__DUART_RX,
|
||||
MX23_PAD_PWM1__DUART_TX,
|
||||
|
||||
/* EMI */
|
||||
MX23_PAD_EMI_D00__EMI_D00 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_D01__EMI_D01 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_D02__EMI_D02 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_D03__EMI_D03 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_D04__EMI_D04 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_D05__EMI_D05 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_D06__EMI_D06 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_D07__EMI_D07 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_D08__EMI_D08 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_D09__EMI_D09 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_D10__EMI_D10 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_D11__EMI_D11 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_D12__EMI_D12 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_D13__EMI_D13 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_D14__EMI_D14 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_D15__EMI_D15 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_DQM0__EMI_DQM0 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_DQM1__EMI_DQM1 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_DQS0__EMI_DQS0 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_DQS1__EMI_DQS1 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_CLK__EMI_CLK | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_CLKN__EMI_CLKN | MUX_CONFIG_EMI,
|
||||
|
||||
MX23_PAD_EMI_A00__EMI_A00 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_A01__EMI_A01 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_A02__EMI_A02 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_A03__EMI_A03 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_A04__EMI_A04 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_A05__EMI_A05 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_A06__EMI_A06 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_A07__EMI_A07 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_A08__EMI_A08 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_A09__EMI_A09 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_A10__EMI_A10 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_A11__EMI_A11 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_A12__EMI_A12 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_BA0__EMI_BA0 | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_BA1__EMI_BA1 | MUX_CONFIG_EMI,
|
||||
|
||||
MX23_PAD_EMI_CASN__EMI_CASN | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_CE0N__EMI_CE0N | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_CE1N__EMI_CE1N | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_CKE__EMI_CKE | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_RASN__EMI_RASN | MUX_CONFIG_EMI,
|
||||
MX23_PAD_EMI_WEN__EMI_WEN | MUX_CONFIG_EMI,
|
||||
};
|
||||
|
||||
void board_init_ll(void)
|
||||
{
|
||||
mxs_common_spl_init(iomux_setup, ARRAY_SIZE(iomux_setup));
|
||||
}
|
|
@ -191,6 +191,7 @@ tx25 arm arm926ejs tx25 karo
|
|||
zmx25 arm arm926ejs zmx25 syteco mx25
|
||||
imx27lite arm arm926ejs imx27lite logicpd mx27
|
||||
magnesium arm arm926ejs imx27lite logicpd mx27
|
||||
mx23_olinuxino arm arm926ejs mx23_olinuxino olimex mxs mx23_olinuxino
|
||||
apx4devkit arm arm926ejs apx4devkit bluegiga mxs apx4devkit
|
||||
m28evk arm arm926ejs m28evk denx mxs m28evk
|
||||
mx28evk arm arm926ejs mx28evk freescale mxs mx28evk
|
||||
|
|
135
include/configs/mx23_olinuxino.h
Normal file
135
include/configs/mx23_olinuxino.h
Normal file
|
@ -0,0 +1,135 @@
|
|||
/*
|
||||
* Copyright (C) 2013 Marek Vasut <marex@denx.de>
|
||||
*
|
||||
* 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 __MX23_OLINUXINO_CONFIG_H__
|
||||
#define __MX23_OLINUXINO_CONFIG_H__
|
||||
|
||||
/*
|
||||
* SoC configurations
|
||||
*/
|
||||
#define CONFIG_MX23 /* i.MX23 SoC */
|
||||
#define CONFIG_MXS_GPIO /* GPIO control */
|
||||
#define CONFIG_SYS_HZ 1000 /* Ticks per second */
|
||||
|
||||
#define CONFIG_MACH_TYPE 4105
|
||||
|
||||
#include <asm/arch/regs-base.h>
|
||||
|
||||
#define CONFIG_SYS_NO_FLASH
|
||||
#define CONFIG_BOARD_EARLY_INIT_F
|
||||
#define CONFIG_ARCH_MISC_INIT
|
||||
|
||||
/*
|
||||
* SPL
|
||||
*/
|
||||
#define CONFIG_SPL
|
||||
#define CONFIG_SPL_NO_CPU_SUPPORT_CODE
|
||||
#define CONFIG_SPL_START_S_PATH "arch/arm/cpu/arm926ejs/mxs"
|
||||
#define CONFIG_SPL_LDSCRIPT "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds"
|
||||
#define CONFIG_SPL_LIBCOMMON_SUPPORT
|
||||
#define CONFIG_SPL_LIBGENERIC_SUPPORT
|
||||
#define CONFIG_SPL_GPIO_SUPPORT
|
||||
|
||||
/*
|
||||
* U-Boot Commands
|
||||
*/
|
||||
#include <config_cmd_default.h>
|
||||
#define CONFIG_DISPLAY_CPUINFO
|
||||
#define CONFIG_DOS_PARTITION
|
||||
|
||||
#define CONFIG_CMD_CACHE
|
||||
#define CONFIG_CMD_FAT
|
||||
#define CONFIG_CMD_GPIO
|
||||
|
||||
/*
|
||||
* Memory configurations
|
||||
*/
|
||||
#define CONFIG_NR_DRAM_BANKS 1 /* 1 bank of DRAM */
|
||||
#define PHYS_SDRAM_1 0x40000000 /* Base address */
|
||||
#define PHYS_SDRAM_1_SIZE 0x08000000 /* Max 128 MB RAM */
|
||||
#define CONFIG_SYS_MALLOC_LEN 0x00400000 /* 4 MB for malloc */
|
||||
#define CONFIG_SYS_GBL_DATA_SIZE 128 /* Initial data */
|
||||
#define CONFIG_SYS_MEMTEST_START 0x40000000 /* Memtest start adr */
|
||||
#define CONFIG_SYS_MEMTEST_END 0x40400000 /* 4 MB RAM test */
|
||||
#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1
|
||||
/* Point initial SP in SRAM so SPL can use it too. */
|
||||
|
||||
#define CONFIG_SYS_INIT_RAM_ADDR 0x00000000
|
||||
#define CONFIG_SYS_INIT_RAM_SIZE (128 * 1024)
|
||||
|
||||
#define CONFIG_SYS_INIT_SP_OFFSET \
|
||||
(CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
|
||||
#define CONFIG_SYS_INIT_SP_ADDR \
|
||||
(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
|
||||
/*
|
||||
* We need to sacrifice first 4 bytes of RAM here to avoid triggering some
|
||||
* strange BUG in ROM corrupting first 4 bytes of RAM when loading U-Boot
|
||||
* binary. In case there was more of this mess, 0x100 bytes are skipped.
|
||||
*/
|
||||
#define CONFIG_SYS_TEXT_BASE 0x40000100
|
||||
|
||||
/*
|
||||
* U-Boot general configurations
|
||||
*/
|
||||
#define CONFIG_SYS_LONGHELP
|
||||
#define CONFIG_SYS_PROMPT "=> "
|
||||
#define CONFIG_SYS_CBSIZE 1024 /* Console I/O buffer size */
|
||||
#define CONFIG_SYS_PBSIZE \
|
||||
(CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
|
||||
/* Print buffer size */
|
||||
#define CONFIG_SYS_MAXARGS 32 /* Max number of command args */
|
||||
#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE
|
||||
/* Boot argument buffer size */
|
||||
#define CONFIG_VERSION_VARIABLE /* U-BOOT version */
|
||||
#define CONFIG_AUTO_COMPLETE /* Command auto complete */
|
||||
#define CONFIG_CMDLINE_EDITING /* Command history etc */
|
||||
#define CONFIG_SYS_HUSH_PARSER
|
||||
|
||||
/*
|
||||
* Serial Driver
|
||||
*/
|
||||
#define CONFIG_PL011_SERIAL
|
||||
#define CONFIG_PL011_CLOCK 24000000
|
||||
#define CONFIG_PL01x_PORTS { (void *)MXS_UARTDBG_BASE }
|
||||
#define CONFIG_CONS_INDEX 0
|
||||
#define CONFIG_BAUDRATE 115200 /* Default baud rate */
|
||||
|
||||
/*
|
||||
* APBH DMA
|
||||
*/
|
||||
#define CONFIG_APBH_DMA
|
||||
|
||||
/*
|
||||
* ENV -- nowhere so far
|
||||
*/
|
||||
#define CONFIG_ENV_SIZE (16 * 1024)
|
||||
#define CONFIG_ENV_IS_NOWHERE
|
||||
|
||||
/*
|
||||
* Boot Linux
|
||||
*/
|
||||
#define CONFIG_CMDLINE_TAG
|
||||
#define CONFIG_SETUP_MEMORY_TAGS
|
||||
#define CONFIG_BOOTDELAY 3
|
||||
#define CONFIG_BOOTFILE "uImage"
|
||||
#define CONFIG_BOOTARGS "console=ttyAMA0,115200n8 "
|
||||
#define CONFIG_LOADADDR 0x42000000
|
||||
#define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR
|
||||
#define CONFIG_OF_LIBFDT
|
||||
|
||||
#endif /* __MX23_OLINUXINO_CONFIG_H__ */
|
Loading…
Add table
Reference in a new issue