]> git.ipfire.org Git - people/ms/u-boot.git/commitdiff
mxs: Add MX23 olinuxino board support
authorMarek Vasut <marex@denx.de>
Sat, 12 Jan 2013 07:11:11 +0000 (07:11 +0000)
committerStefano Babic <sbabic@denx.de>
Mon, 21 Jan 2013 11:05:22 +0000 (12:05 +0100)
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
board/olimex/mx23_olinuxino/Makefile [new file with mode: 0644]
board/olimex/mx23_olinuxino/mx23_olinuxino.c [new file with mode: 0644]
board/olimex/mx23_olinuxino/spl_boot.c [new file with mode: 0644]
boards.cfg
include/configs/mx23_olinuxino.h [new file with mode: 0644]

index 28c052d7a0e32500a400876c6af473f26c9eaa55..dfa3c8bd1d47832f496e28fe19611cf6ae0ebe21 100644 (file)
@@ -935,6 +935,7 @@ Marek Vasut <marek.vasut@gmail.com>
        palmtc          xscale/pxa
        vpac270         xscale/pxa
        zipitz2         xscale/pxa
        palmtc          xscale/pxa
        vpac270         xscale/pxa
        zipitz2         xscale/pxa
+       mx23_olinuxino  i.MX23
        m28evk          i.MX28
        sc_sps_1        i.MX28
 
        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 (file)
index 0000000..ff41cff
--- /dev/null
@@ -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 (file)
index 0000000..2fcad26
--- /dev/null
@@ -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 (file)
index 0000000..aaebe6c
--- /dev/null
@@ -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));
+}
index e4b0d44fa7825d9b4ffd2dd863d451dec5385b9d..9b319314b2f96cda91c42289b1a85451eb3676a1 100644 (file)
@@ -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
 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
 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 (file)
index 0000000..e5e718c
--- /dev/null
@@ -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__ */