Message ID | 1357946838-9707-1-git-send-email-marex@denx.de |
---|---|
State | Superseded |
Delegated to: | Stefano Babic |
Headers | show |
On Fri, Jan 11, 2013 at 9:27 PM, Marek Vasut <marex@denx.de> wrote: > 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> > --- > MAINTAINERS | 1 + > 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 | 133 ++++++++++++++++++++++++++ > 6 files changed, 323 insertions(+) > create mode 100644 board/olimex/mx23_olinuxino/Makefile > 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 > > V2: Add MAINTAINERS entry > Remove CONFIG_MACH_TYPE (as this board is DT-only) In fact it is not DT-only; we support it in linux-imx inside of OE and the images provided by Olinex are also based 2.6.35 so it seems better to define the machine type. > diff --git a/MAINTAINERS b/MAINTAINERS > index 36b47b7..08daa28 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 0000000..ff41cff > --- /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 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 <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 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 <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 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..056436f > --- /dev/null > +++ b/include/configs/mx23_olinuxino.h > @@ -0,0 +1,133 @@ > +/* > + * 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 */ > + > +#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 */ The SYS_CBSIZE might be smaller I think; we use 256 in sabresd and others which have a much bigger environment so I think it could be reduced. > +#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__ */ > -- > 1.7.10.4 > -- Otavio Salvador O.S. Systems E-mail: otavio@ossystems.com.br http://www.ossystems.com.br Mobile: +55 53 9981-7854 http://projetos.ossystems.com.br
Dear Otavio Salvador, > On Fri, Jan 11, 2013 at 9:27 PM, Marek Vasut <marex@denx.de> wrote: > > 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> > > --- > > > > MAINTAINERS | 1 + > > 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 | 133 > > ++++++++++++++++++++++++++ 6 files changed, 323 insertions(+) > > create mode 100644 board/olimex/mx23_olinuxino/Makefile > > 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 > > > > V2: Add MAINTAINERS entry > > > > Remove CONFIG_MACH_TYPE (as this board is DT-only) > > In fact it is not DT-only; we support it in linux-imx inside of OE and > the images provided by Olinex are also based 2.6.35 so it seems better > to define the machine type. Can be added in a subsequent patch. [...] > > +/* > > + * U-Boot general configurations > > + */ > > +#define CONFIG_SYS_LONGHELP > > +#define CONFIG_SYS_PROMPT "=> " > > +#define CONFIG_SYS_CBSIZE 1024 /* Console I/O > > buffer size */ > > The SYS_CBSIZE might be smaller I think; we use 256 in sabresd and > others which have a much bigger environment so I think it could be > reduced. Can you elaborate what issues this causes please?
On Sat, Jan 12, 2013 at 2:16 PM, Marek Vasut <marex@denx.de> wrote: > Dear Otavio Salvador, > >> On Fri, Jan 11, 2013 at 9:27 PM, Marek Vasut <marex@denx.de> wrote: >> > 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> >> > --- >> > >> > MAINTAINERS | 1 + >> > 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 | 133 >> > ++++++++++++++++++++++++++ 6 files changed, 323 insertions(+) >> > create mode 100644 board/olimex/mx23_olinuxino/Makefile >> > 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 >> > >> > V2: Add MAINTAINERS entry >> > >> > Remove CONFIG_MACH_TYPE (as this board is DT-only) >> >> In fact it is not DT-only; we support it in linux-imx inside of OE and >> the images provided by Olinex are also based 2.6.35 so it seems better >> to define the machine type. > > Can be added in a subsequent patch. > [...] I don't think it is the way to go for several reasons, mainly: * your v1 had this support * all sdcards provided by olimex use 2.6.35 kernel (until now) * the FSL supported kernel is non-DT So I see no reason to not fix the patch, seriously. >> > +/* >> > + * U-Boot general configurations >> > + */ >> > +#define CONFIG_SYS_LONGHELP >> > +#define CONFIG_SYS_PROMPT "=> " >> > +#define CONFIG_SYS_CBSIZE 1024 /* Console I/O >> > buffer size */ >> >> The SYS_CBSIZE might be smaller I think; we use 256 in sabresd and >> others which have a much bigger environment so I think it could be >> reduced. > > Can you elaborate what issues this causes please? It causes nothing except more memory allocation than need. As other bords work fine with less it seems a good option to move to a smaller value. Just it. -- Otavio Salvador O.S. Systems E-mail: otavio@ossystems.com.br http://www.ossystems.com.br Mobile: +55 53 9981-7854 http://projetos.ossystems.com.br
Dear Otavio Salvador, > On Sat, Jan 12, 2013 at 2:16 PM, Marek Vasut <marex@denx.de> wrote: > > Dear Otavio Salvador, > > > >> On Fri, Jan 11, 2013 at 9:27 PM, Marek Vasut <marex@denx.de> wrote: > >> > 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> > >> > --- > >> > > >> > MAINTAINERS | 1 + > >> > 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 | 133 > >> > ++++++++++++++++++++++++++ 6 files changed, 323 insertions(+) > >> > create mode 100644 board/olimex/mx23_olinuxino/Makefile > >> > 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 > >> > > >> > V2: Add MAINTAINERS entry > >> > > >> > Remove CONFIG_MACH_TYPE (as this board is DT-only) > >> > >> In fact it is not DT-only; we support it in linux-imx inside of OE and > >> the images provided by Olinex are also based 2.6.35 so it seems better > >> to define the machine type. > > > > Can be added in a subsequent patch. > > [...] > > I don't think it is the way to go for several reasons, mainly: > > * your v1 had this support 0xffffffff is DT boot ID really. > * all sdcards provided by olimex use 2.6.35 kernel (until now) > * the FSL supported kernel is non-DT > > So I see no reason to not fix the patch, seriously. Can you provide pointer to olinuxino machine entry in RMK's ID database then please? > >> > +/* > >> > + * U-Boot general configurations > >> > + */ > >> > +#define CONFIG_SYS_LONGHELP > >> > +#define CONFIG_SYS_PROMPT "=> " > >> > +#define CONFIG_SYS_CBSIZE 1024 /* Console I/O > >> > buffer size */ > >> > >> The SYS_CBSIZE might be smaller I think; we use 256 in sabresd and > >> others which have a much bigger environment so I think it could be > >> reduced. > > > > Can you elaborate what issues this causes please? > > It causes nothing except more memory allocation than need. As other > bords work fine with less it seems a good option to move to a smaller > value. Just it. It reduces the size of console buffer, right? Best regards, Marek Vasut
On Sat, Jan 12, 2013 at 2:52 PM, Marek Vasut <marex@denx.de> wrote: > Dear Otavio Salvador, > >> On Sat, Jan 12, 2013 at 2:16 PM, Marek Vasut <marex@denx.de> wrote: >> > Dear Otavio Salvador, >> > >> >> On Fri, Jan 11, 2013 at 9:27 PM, Marek Vasut <marex@denx.de> wrote: >> >> > 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> >> >> > --- >> >> > >> >> > MAINTAINERS | 1 + >> >> > 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 | 133 >> >> > ++++++++++++++++++++++++++ 6 files changed, 323 insertions(+) >> >> > create mode 100644 board/olimex/mx23_olinuxino/Makefile >> >> > 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 >> >> > >> >> > V2: Add MAINTAINERS entry >> >> > >> >> > Remove CONFIG_MACH_TYPE (as this board is DT-only) >> >> >> >> In fact it is not DT-only; we support it in linux-imx inside of OE and >> >> the images provided by Olinex are also based 2.6.35 so it seems better >> >> to define the machine type. >> > >> > Can be added in a subsequent patch. >> > [...] >> >> I don't think it is the way to go for several reasons, mainly: >> >> * your v1 had this support > > 0xffffffff is DT boot ID really. > >> * all sdcards provided by olimex use 2.6.35 kernel (until now) >> * the FSL supported kernel is non-DT >> >> So I see no reason to not fix the patch, seriously. > > Can you provide pointer to olinuxino machine entry in RMK's ID database then > please? +imx233_olinuxino MACH_IMX233_OLINUXINO IMX233_OLINUXINO 4105 This is from the board patch. >> >> > +/* >> >> > + * U-Boot general configurations >> >> > + */ >> >> > +#define CONFIG_SYS_LONGHELP >> >> > +#define CONFIG_SYS_PROMPT "=> " >> >> > +#define CONFIG_SYS_CBSIZE 1024 /* Console I/O >> >> > buffer size */ >> >> >> >> The SYS_CBSIZE might be smaller I think; we use 256 in sabresd and >> >> others which have a much bigger environment so I think it could be >> >> reduced. >> > >> > Can you elaborate what issues this causes please? >> >> It causes nothing except more memory allocation than need. As other >> bords work fine with less it seems a good option to move to a smaller >> value. Just it. > > It reduces the size of console buffer, right? AFAIK yes. -- Otavio Salvador O.S. Systems E-mail: otavio@ossystems.com.br http://www.ossystems.com.br Mobile: +55 53 9981-7854 http://projetos.ossystems.com.br
diff --git a/MAINTAINERS b/MAINTAINERS index 36b47b7..08daa28 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 0000000..ff41cff --- /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 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 <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 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 <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 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..056436f --- /dev/null +++ b/include/configs/mx23_olinuxino.h @@ -0,0 +1,133 @@ +/* + * 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 */ + +#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__ */
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> --- MAINTAINERS | 1 + 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 | 133 ++++++++++++++++++++++++++ 6 files changed, 323 insertions(+) create mode 100644 board/olimex/mx23_olinuxino/Makefile 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 V2: Add MAINTAINERS entry Remove CONFIG_MACH_TYPE (as this board is DT-only)