Hi Marek, On Fri, Jan 11, 2013 at 11:19 AM, Marek Vasut <ma...@denx.de> wrote: > This patch adds support for MX23-based Olinuxino board. > > Signed-off-by: Marek Vasut <ma...@denx.de> > Cc: Fabio Estevam <fabio.este...@freescale.com> > Cc: Otavio Salvador <ota...@ossystems.com.br> > Cc: Stefano Babic <sba...@denx.de> > --- > board/olimex/mx23_olinuxino/Makefile | 47 +++++++++ > board/olimex/mx23_olinuxino/mx23_olinuxino.c | 51 ++++++++++ > board/olimex/mx23_olinuxino/spl_boot.c | 90 +++++++++++++++++ > boards.cfg | 1 + > include/configs/mx23_olinuxino.h | 136 > ++++++++++++++++++++++++++
You missed an entry in MAINTAINER file. > 5 files changed, 325 insertions(+) > create mode 100644 board/olimex/mx23_olinuxino/Makefile Can't we name it 'mx23olinuxino', without the underscore ? > create mode 100644 board/olimex/mx23_olinuxino/mx23_olinuxino.c > create mode 100644 board/olimex/mx23_olinuxino/spl_boot.c > create mode 100644 include/configs/mx23_olinuxino.h > > diff --git a/board/olimex/mx23_olinuxino/Makefile > b/board/olimex/mx23_olinuxino/Makefile > new file mode 100644 > index 0000000..ff41cff > --- /dev/null > +++ b/board/olimex/mx23_olinuxino/Makefile > @@ -0,0 +1,47 @@ > +# > +# (C) Copyright 2000-2006 > +# Wolfgang Denk, DENX Software Engineering, w...@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 0000000..2fcad26 > --- /dev/null > +++ b/board/olimex/mx23_olinuxino/mx23_olinuxino.c > @@ -0,0 +1,51 @@ > +/* > + * Olimex MX23 Olinuxino board > + * > + * Copyright (C) 2013 Marek Vasut <ma...@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 0000000..aaebe6c > --- /dev/null > +++ b/board/olimex/mx23_olinuxino/spl_boot.c > @@ -0,0 +1,90 @@ > +/* > + * Olimex MX23 Olinuxino Boot setup > + * > + * Copyright (C) 2013 Marek Vasut <ma...@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 388e4a4..ef17745 100644 > --- a/boards.cfg > +++ b/boards.cfg > @@ -189,6 +189,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 0000000..8bc13ff > --- /dev/null > +++ b/include/configs/mx23_olinuxino.h > @@ -0,0 +1,136 @@ > +/* > + * Copyright (C) 2013 Marek Vasut <ma...@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 */ > + > +/* Device-tree only boot. */ > +#define CONFIG_MACH_TYPE 0xffffffff Couldn't we define its real MACH_TYPE instead or just remove this line? > + > +#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=ttyAM0,115200n8 " Linux mainline uses ttyAMA0. Thanks, Fabio Estevam _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot