diff options
| -rw-r--r-- | MAINTAINERS | 1 | ||||
| -rw-r--r-- | board/olimex/mx23_olinuxino/Makefile | 47 | ||||
| -rw-r--r-- | board/olimex/mx23_olinuxino/mx23_olinuxino.c | 51 | ||||
| -rw-r--r-- | board/olimex/mx23_olinuxino/spl_boot.c | 90 | ||||
| -rw-r--r-- | boards.cfg | 1 | ||||
| -rw-r--r-- | include/configs/mx23_olinuxino.h | 135 | 
6 files changed, 325 insertions, 0 deletions
| diff --git a/MAINTAINERS b/MAINTAINERS index 28c052d7a..dfa3c8bd1 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -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 diff --git a/board/olimex/mx23_olinuxino/Makefile b/board/olimex/mx23_olinuxino/Makefile new file mode 100644 index 000000000..ff41cff01 --- /dev/null +++ b/board/olimex/mx23_olinuxino/Makefile @@ -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 + +######################################################################### diff --git a/board/olimex/mx23_olinuxino/mx23_olinuxino.c b/board/olimex/mx23_olinuxino/mx23_olinuxino.c new file mode 100644 index 000000000..2fcad2679 --- /dev/null +++ b/board/olimex/mx23_olinuxino/mx23_olinuxino.c @@ -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; +} diff --git a/board/olimex/mx23_olinuxino/spl_boot.c b/board/olimex/mx23_olinuxino/spl_boot.c new file mode 100644 index 000000000..aaebe6c04 --- /dev/null +++ b/board/olimex/mx23_olinuxino/spl_boot.c @@ -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)); +} diff --git a/boards.cfg b/boards.cfg index e4b0d44fa..9b319314b 100644 --- a/boards.cfg +++ b/boards.cfg @@ -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 diff --git a/include/configs/mx23_olinuxino.h b/include/configs/mx23_olinuxino.h new file mode 100644 index 000000000..e5e718c25 --- /dev/null +++ b/include/configs/mx23_olinuxino.h @@ -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__ */ |