DRIMe III: ex1: initial commit
authorMinkyu Kang <mk7.kang@samsung.com>
Thu, 3 Jun 2010 11:58:00 +0000 (20:58 +0900)
committerMinkyu Kang <mk7.kang@samsung.com>
Thu, 3 Jun 2010 11:58:00 +0000 (20:58 +0900)
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
12 files changed:
Makefile
arch/arm/cpu/arm926ejs/drime3/Makefile [new file with mode: 0644]
arch/arm/cpu/arm926ejs/drime3/cpu_info.c [new file with mode: 0644]
arch/arm/cpu/arm926ejs/drime3/reset.S [new file with mode: 0644]
arch/arm/cpu/arm926ejs/drime3/timer.c [new file with mode: 0644]
arch/arm/include/asm/arch-drime3/cpu.h [new file with mode: 0644]
arch/arm/include/asm/arch-drime3/timer.h [new file with mode: 0644]
board/samsung/ex1/Makefile [new file with mode: 0644]
board/samsung/ex1/config.mk [new file with mode: 0644]
board/samsung/ex1/ex1.c [new file with mode: 0644]
board/samsung/ex1/lowlevel_init.S [new file with mode: 0644]
include/configs/ex1.h [new file with mode: 0644]

index 99b456b..15a6f01 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -2956,6 +2956,9 @@ davinci_dm365evm_config : unconfig
 davinci_dm6467evm_config :     unconfig
        @$(MKCONFIG) $(@:_config=) arm arm926ejs dm6467evm davinci davinci
 
+ex1_config :   unconfig
+       @$(MKCONFIG) $(@:_config=) arm arm926ejs ex1 samsung drime3
+
 guruplug_config: unconfig
        @$(MKCONFIG) $(@:_config=) arm arm926ejs $(@:_config=) Marvell kirkwood
 
diff --git a/arch/arm/cpu/arm926ejs/drime3/Makefile b/arch/arm/cpu/arm926ejs/drime3/Makefile
new file mode 100644 (file)
index 0000000..f93a71c
--- /dev/null
@@ -0,0 +1,25 @@
+include $(TOPDIR)/config.mk
+
+LIB    = $(obj)lib$(SOC).a
+
+SOBJS  = reset.o
+
+COBJS-y                += cpu_info.o
+COBJS-y                += timer.o
+
+SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS   := $(addprefix $(obj),$(COBJS-y) $(SOBJS))
+
+all:    $(obj).depend $(LIB)
+
+$(LIB):        $(OBJS)
+       $(AR) $(ARFLAGS) $@ $(OBJS)
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
diff --git a/arch/arm/cpu/arm926ejs/drime3/cpu_info.c b/arch/arm/cpu/arm926ejs/drime3/cpu_info.c
new file mode 100644 (file)
index 0000000..173eb38
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2010 Samsung Electronics
+ * Minkyu Kang <mk7.kang@samsung.com>
+ *
+ * Configuation settings for the SAMSUNG Universal (s5pc100) board.
+ *
+ * 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>
+
+#ifdef CONFIG_DISPLAY_CPUINFO
+int print_cpuinfo(void)
+{
+       printf("CPU:\tDRIMeIII@%sMHz\n", "400");
+}
+#endif
diff --git a/arch/arm/cpu/arm926ejs/drime3/reset.S b/arch/arm/cpu/arm926ejs/drime3/reset.S
new file mode 100644 (file)
index 0000000..2bf0794
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2010 Samsung Electronics.
+ * Minkyu Kang <mk7.kang@samsung.com>
+ *
+ * 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 <asm/arch/cpu.h>
+
+.globl reset_cpu
+reset_cpu:
+       ldr     r1, =DRIME3_RESET_BASE
+       ldr     r2, =0x0
+       str     r2, [r1]
diff --git a/arch/arm/cpu/arm926ejs/drime3/timer.c b/arch/arm/cpu/arm926ejs/drime3/timer.c
new file mode 100644 (file)
index 0000000..9434ef7
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2010 Samsung Electronics
+ * Minkyu Kang <mk7.kang@samsung.com>
+ *
+ * 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/io.h>
+#include <asm/arch/timer.h>
+
+static unsigned long count_value;
+
+/* Internal tick units */
+static unsigned long long timestamp;   /* Monotonic incrementing timer */
+static unsigned long lastdec;          /* Last decremneter snapshot */
+
+static inline struct drime3_timer *drime3_get_base_timer(void)
+{
+       return (struct drime3_timer *)DRIME3_TIMER_BASE;
+}
+
+int timer_init(void)
+{
+       struct drime3_timer *const timer = drime3_get_base_timer();
+
+       writel(DRIME3_MCLK / 1000000 - 1, &timer->psr); /* prescaler */
+}
+
+unsigned long get_timer(unsigned long base)
+{
+       struct drime3_timer *const timer = drime3_get_base_timer();
+       return readl(&timer->ldr) & 0xffff;
+}
+
+/* delay x useconds */
+void __udelay(unsigned long usec)
+{
+       struct drime3_timer *const timer = drime3_get_base_timer();
+       int i;
+
+       for (i = 0; i < usec; i++) {
+               writel(0x0, &timer->tcr);       /* disable timer */
+               writel(1000, &timer->ldr);
+               writel(0x103, &timer->tcr);     /* disable timer */
+
+               while (readl(&timer->isr))
+                               ;
+       }
+}
diff --git a/arch/arm/include/asm/arch-drime3/cpu.h b/arch/arm/include/asm/arch-drime3/cpu.h
new file mode 100644 (file)
index 0000000..4f5cd5d
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ * (C) Copyright 2010 Samsung Electronics
+ * Minkyu Kang <mk7.kang@samsung.com>
+ *
+ * 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 _DRIME3_CPU_H
+#define _DRIME3_CPU_H
+
+#define DRIME3_TIMER_BASE      0x71000000
+#define DRIME3_RTC_BASE                0x90000000
+#define DRIME3_UART_BASE       0x90030000
+#define DRIME3_GPIO_BASE       0x90040000
+#define DRIME3_SYSTEM_BASE     0x90070000
+#define DRIME3_RESET_BASE      0x90080000
+#define DRIME3_CLOCK_BASE      0x90090000
+
+#define DRIME3_MCLK            100000000
+
+#endif
diff --git a/arch/arm/include/asm/arch-drime3/timer.h b/arch/arm/include/asm/arch-drime3/timer.h
new file mode 100644 (file)
index 0000000..2d6e621
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ * (C) Copyright 2010 Samsung Electronics
+ * Minkyu Kang <mk7.kang@samsung.com>
+ *
+ * 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 __ASM_ARM_ARCH_TIMER_H_
+#define __ASM_ARM_ARCH_TIMER_H_
+
+#ifndef __ASSEMBLY__
+struct drime3_timer {
+       unsigned int    tcr;
+       unsigned int    psr;
+       unsigned int    ldr;
+       unsigned int    lvr;
+       unsigned int    isr;
+};
+#endif
+
+#endif
diff --git a/board/samsung/ex1/Makefile b/board/samsung/ex1/Makefile
new file mode 100644 (file)
index 0000000..e3a83e1
--- /dev/null
@@ -0,0 +1,28 @@
+include $(TOPDIR)/config.mk
+
+LIB    = $(obj)lib$(BOARD).a
+
+COBJS-y        := ex1.o
+SOBJS  := lowlevel_init.o
+
+SRCS    := $(SOBJS:.o=.S) $(COBJS-y:.o=.c)
+OBJS   := $(addprefix $(obj),$(COBJS-y))
+SOBJS  := $(addprefix $(obj),$(SOBJS))
+
+$(LIB):        $(obj).depend $(SOBJS) $(OBJS)
+       $(AR) $(ARFLAGS) $@ $(SOBJS) $(OBJS)
+
+clean:
+       rm -f $(SOBJS) $(OBJS)
+
+distclean:     clean
+       rm -f $(LIB) core *.bak $(obj).depend
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
diff --git a/board/samsung/ex1/config.mk b/board/samsung/ex1/config.mk
new file mode 100644 (file)
index 0000000..a1bcf47
--- /dev/null
@@ -0,0 +1,5 @@
+#
+# Copyright (C) 2010 # Samsung Elecgtronics
+#
+
+TEXT_BASE = 0xC4800000
diff --git a/board/samsung/ex1/ex1.c b/board/samsung/ex1/ex1.c
new file mode 100644 (file)
index 0000000..e375588
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ *  Copyright (C) 2010 Samsung Electronics
+ *  Minkyu Kang <mk7.kang@samsung.com>
+ *
+ * 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>
+
+#ifndef MACH_TYPE_EX1
+#define MACH_TYPE_EX1  4001
+#endif
+
+DECLARE_GLOBAL_DATA_PTR;
+
+int board_init(void)
+{
+       gd->bd->bi_arch_number = MACH_TYPE_EX1;
+       gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
+
+       return 0;
+}
+
+int dram_init(void)
+{
+       gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
+       gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
+
+       return 0;
+}
+
+#ifdef CONFIG_DISPLAY_BOARDINFO
+int checkboard(void)
+{
+       puts("Board:\tEX1\n");
+       return 0;
+}
+#endif
diff --git a/board/samsung/ex1/lowlevel_init.S b/board/samsung/ex1/lowlevel_init.S
new file mode 100644 (file)
index 0000000..5654ff7
--- /dev/null
@@ -0,0 +1,77 @@
+
+#include <config.h>
+#include <version.h>
+#include <asm/arch/cpu.h>
+
+_TEXT_BASE:
+       .word   TEXT_BASE
+
+       .globl lowlevel_init
+lowlevel_init:
+       mov     r11, lr
+
+set_drvier_current:
+       ldr     r1, =0x900D0078
+       ldr     r0, =0x43434343
+       str     r0, [r1]
+       ldr     r1, =0x900D007C
+       ldr     r0, =0x43434343
+       str     r0, [r1]
+       ldr     r1, =0x900D0080
+       ldr     r0, =0x43434343
+       str     r0, [r1]
+       ldr     r1, =0x900D0084
+       ldr     r0, =0x43434343
+       str     r0, [r1]
+       ldr     r1, =0x900D0088
+       ldr     r0, =0x43434343
+       str     r0, [r1]
+       ldr     r1, =0x900D008C
+       ldr     r0, =0x43434343
+       str     r0, [r1]
+       ldr     r1, =0x900D0090
+       ldr     r0, =0x43434343
+       str     r0, [r1]
+       ldr     r1, =0x900D0094
+       ldr     r0, =0x43434343
+       str     r0, [r1]
+       ldr     r1, =0x900D0098
+       ldr     r0, =0x43434343
+       str     r0, [r1]
+       ldr     r1, =0x900D009C
+       ldr     r0, =0x43434343
+       str     r0, [r1]
+       ldr     r1, =0x900D00A0
+       ldr     r0, =0x43434343
+       str     r0, [r1]
+       ldr     r1, =0x900D00A4
+       ldr     r0, =0x43434343
+       str     r0, [r1]
+       ldr     r1, =0x900D00A8
+       ldr     r0, =0x50504343
+       str     r0, [r1]
+
+set_system_clock:
+       ldr     r1, =0x90090000
+       ldr     r0, =0x00003000
+       str     r0, [r1]
+       ldr     r1, =0x90090008
+       ldr     r0, =0xD6070814
+       str     r0, [r1]
+
+set_uart_clock:
+       ldr     r1, =0x90070414
+       ldr     r0, =0x1
+       str     r0, [r1]
+
+set_gpio:
+       ldr     r1, =0x90040000
+       ldr     r0, =0x0
+       str     r0, [r1]
+       ldr     r1, =0x90040004
+       ldr     r0, =0x1
+       str     r0, [r1]
+
+done:
+       mov     lr, r11
+       mov     pc, lr
diff --git a/include/configs/ex1.h b/include/configs/ex1.h
new file mode 100644 (file)
index 0000000..723dec4
--- /dev/null
@@ -0,0 +1,220 @@
+/*
+ * Copyright (C) 2010 Samsung Electronics
+ * Minkyu Kang <mk7.kang@samsung.com>
+ *
+ * Configuation settings for the SAMSUNG Universal (s5pc100) board.
+ *
+ * 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
+ */
+
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+/* High Level Configuration Options */
+#define CONFIG_ARM926EJS       1       /* This is an arm926ejs CPU core  */
+#define CONFIG_SAMSUNG         1       /* in a SAMSUNG core */
+#define CONFIG_DRIME3          1       /* which is in a DRIMe III */
+
+#include <asm/arch/cpu.h>              /* get chip and board defs */
+
+#define CONFIG_DISPLAY_CPUINFO
+#define CONFIG_DISPLAY_BOARDINFO
+
+#undef CONFIG_SKIP_RELOCATE_UBOOT
+
+/* DRAM Base */
+#define CONFIG_SYS_SDRAM_BASE          0xC0000000
+
+#define CONFIG_SETUP_MEMORY_TAGS
+#define CONFIG_CMDLINE_TAG
+#define CONFIG_INITRD_TAG
+#define CONFIG_CMDLINE_EDITING
+
+/*
+ * Size of malloc() pool
+ * 1MB = 0x100000, 0x100000 = 1024 * 1024
+ */
+#define CONFIG_SYS_MALLOC_LEN          (CONFIG_ENV_SIZE + (1 << 20))
+#define CONFIG_SYS_GBL_DATA_SIZE       128     /* size in bytes for */
+                                               /* initial data */
+#if 0
+/*
+ * select serial console configuration
+ */
+#define CONFIG_SERIAL0                 1       /* use SERIAL2 */
+#define CONFIG_SERIAL_MULTI            1
+#define CONFIG_BAUDRATE                        115200
+#endif
+
+/*
+ * NS16550 Configuration
+ */
+#define CONFIG_PL011_SERIAL
+#define CONFIG_PL011_CLOCK     100000000
+#define CONFIG_PL01x_PORTS                             \
+                       {(void *)CONFIG_SYS_SERIAL0 }
+#define CONFIG_CONS_INDEX      0
+
+#define CONFIG_BAUDRATE                        115200
+#define CONFIG_SYS_BAUDRATE_TABLE      { 9600, 19200, 38400, 57600, 115200 }
+#define CONFIG_SYS_SERIAL0             DRIME3_UART_BASE
+
+/* It should define before config_cmd_default.h */
+#define CONFIG_SYS_NO_FLASH            1
+
+/* Command definition */
+#include <config_cmd_default.h>
+
+#undef CONFIG_CMD_FPGA
+#undef CONFIG_CMD_MISC
+#undef CONFIG_CMD_NET
+#undef CONFIG_CMD_NFS
+#undef CONFIG_CMD_XIMG
+#define CONFIG_CMD_CACHE
+#define CONFIG_CMD_REGINFO
+#define CONFIG_CMD_ONENAND
+#define CONFIG_CMD_MTDPARTS
+
+#define CONFIG_BOOTDELAY               3
+//#define CONFIG_ZERO_BOOTDELAY_CHECK
+
+#define CONFIG_MTD_DEVICE
+#define CONFIG_MTD_PARTITIONS
+
+/* Actual modem binary size is 16MiB. Add 2MiB for bad block handling */
+#define MTDIDS_DEFAULT         "onenand0=samsung-onenand"
+#define MTDPARTS_DEFAULT       "mtdparts=samsung-onenand:1m(bootloader)"\
+                               ",256k(params)"\
+                               ",2816k(config)"\
+                               ",8m(csa)"\
+                               ",7m(kernel)"\
+                               ",1m(log)"\
+                               ",12m(modem)"\
+                               ",60m(qboot)"\
+                               ",-(UBI)\0"
+
+#define NORMAL_MTDPARTS_DEFAULT MTDPARTS_DEFAULT
+
+#define CONFIG_BOOTCOMMAND     "run ubifsboot"
+
+#define CONFIG_DEFAULT_CONSOLE "console=ttySAC2,115200n8\0"
+
+#define CONFIG_RAMDISK_BOOT    "root=/dev/ram0 rw rootfstype=ext2" \
+               " ${console} ${meminfo}"
+
+#define CONFIG_COMMON_BOOT     "${console} ${meminfo} ${mtdparts}"
+
+#define CONFIG_BOOTARGS        "root=/dev/mtdblock8 ubi.mtd=8 ubi.mtd=3 ubi.mtd=6" \
+               " rootfstype=cramfs " CONFIG_COMMON_BOOT
+
+#define CONFIG_UPDATEB "updateb=onenand erase 0x0 0x100000;" \
+                       " onenand write 0x32008000 0x0 0x100000\0"
+
+#define CONFIG_UBI_MTD " ubi.mtd=${ubiblock} ubi.mtd=3 ubi.mtd=6"
+
+#define CONFIG_UBIFS_OPTION    "rootflags=bulk_read,no_chk_data_crc"
+
+#define CONFIG_ENV_OVERWRITE
+#define CONFIG_SYS_CONSOLE_IS_IN_ENV
+#define CONFIG_EXTRA_ENV_SETTINGS                                      \
+       CONFIG_UPDATEB \
+       "updatek=" \
+               "onenand erase 0xc00000 0x600000;" \
+               "onenand write 0x31008000 0xc00000 0x600000\0" \
+       "updateu=" \
+               "onenand erase 0x01560000 0x1eaa0000;" \
+               "onenand write 0x32000000 0x1260000 0x8C0000\0" \
+       "bootk=" \
+               "onenand read 0x30007FC0 0xc00000 0x600000;" \
+               "bootm 0x30007FC0\0" \
+       "flashboot=" \
+               "set bootargs root=/dev/mtdblock${bootblock} " \
+               "rootfstype=${rootfstype}" CONFIG_UBI_MTD " ${opts} " \
+               "${lcdinfo} " CONFIG_COMMON_BOOT "; run bootk\0" \
+       "ubifsboot=" \
+               "set bootargs root=ubi0!rootfs rootfstype=ubifs " \
+               CONFIG_UBIFS_OPTION CONFIG_UBI_MTD " ${opts} ${lcdinfo} " \
+               CONFIG_COMMON_BOOT "; run bootk\0" \
+       "tftpboot=" \
+               "set bootargs root=ubi0!rootfs rootfstype=ubifs " \
+               CONFIG_UBIFS_OPTION CONFIG_UBI_MTD " ${opts} ${lcdinfo} " \
+               CONFIG_COMMON_BOOT "; tftp 0x30007FC0 uImage; " \
+               "bootm 0x30007FC0\0" \
+       "ramboot=" \
+               "set bootargs " CONFIG_RAMDISK_BOOT \
+               " initrd=0x33000000,8M ramdisk=8192\0" \
+       "mmcboot=" \
+               "set bootargs root=${mmcblk} rootfstype=${rootfstype}" \
+               CONFIG_UBI_MTD " ${opts} ${lcdinfo} " \
+               CONFIG_COMMON_BOOT "; run bootk\0" \
+       "boottrace=setenv opts initcall_debug; run bootcmd\0" \
+       "bootchart=set opts init=/sbin/bootchartd; run bootcmd\0" \
+       "verify=n\0" \
+       "rootfstype=cramfs\0" \
+       "console=" CONFIG_DEFAULT_CONSOLE \
+       "mtdparts=" MTDPARTS_DEFAULT \
+       "meminfo=mem=80M mem=256M@0x40000000 mem=128M@0x50000000\0" \
+       "mmcblk=/dev/mmcblk1p1\0" \
+       "bootblock=9\0" \
+       "ubiblock=8\0" \
+       "ubi=enabled\0" \
+       "opts=always_resume=1"
+
+/* Miscellaneous configurable options */
+#define CONFIG_SYS_LONGHELP            /* undef to save memory */
+#define CONFIG_SYS_HUSH_PARSER         /* use "hush" command parser    */
+#define CONFIG_SYS_PROMPT_HUSH_PS2     "> "
+#define CONFIG_SYS_PROMPT      "EX1 # "
+#define CONFIG_SYS_CBSIZE      256     /* Console I/O Buffer Size */
+#define CONFIG_SYS_PBSIZE      384     /* Print Buffer Size */
+#define CONFIG_SYS_MAXARGS     16      /* max number of command args */
+/* Boot Argument Buffer Size */
+#define CONFIG_SYS_BARGSIZE            CONFIG_SYS_CBSIZE
+/* memtest works on */
+#define CONFIG_SYS_MEMTEST_START       CONFIG_SYS_SDRAM_BASE
+#define CONFIG_SYS_MEMTEST_END         (CONFIG_SYS_SDRAM_BASE + 0x5000000)
+#define CONFIG_SYS_LOAD_ADDR           (CONFIG_SYS_SDRAM_BASE + 0x4000000)
+
+#define CONFIG_SYS_HZ                  1000
+
+/* valid baudrates */
+#define CONFIG_SYS_BAUDRATE_TABLE      { 9600, 19200, 38400, 57600, 115200 }
+
+/* Stack sizes */
+#define CONFIG_STACKSIZE       (256 << 10)     /* 256 KiB */
+
+/* Goni has 3 banks of DRAM, but swap the bank */
+#define CONFIG_NR_DRAM_BANKS   1
+#define PHYS_SDRAM_1           CONFIG_SYS_SDRAM_BASE   /* OneDRAM Bank #0 */
+#define PHYS_SDRAM_1_SIZE      (256 << 20)             /* 256 MB in Bank #0 */
+
+#define CONFIG_SYS_MONITOR_BASE                0x00000000
+#define CONFIG_SYS_MONITOR_LEN         (256 << 10)     /* 256 KiB */
+
+/* FLASH and environment organization */
+#define CONFIG_ENV_IS_IN_ONENAND       1
+#define CONFIG_ENV_SIZE                        (256 << 10)     /* 256 KiB, 0x40000 */
+#define CONFIG_ENV_ADDR                        (1 << 20)       /* 1 MB, 0x100000 */
+
+//#define CONFIG_USE_ONENAND_BOARD_INIT
+#define CONFIG_SYS_ONENAND_BASE                0xB0000000
+
+#define CONFIG_DOS_PARTITION           1
+
+#endif /* __CONFIG_H */