* [U-Boot] [PATCH 4/4] s5pc1xx: add support SMDKC100 board
@ 2009-09-04 8:22 Minkyu Kang
2009-09-04 10:56 ` Wolfgang Denk
2009-09-04 22:39 ` Jean-Christophe PLAGNIOL-VILLARD
0 siblings, 2 replies; 8+ messages in thread
From: Minkyu Kang @ 2009-09-04 8:22 UTC (permalink / raw)
To: u-boot
Add new board SMDKC100 that uses s5pc100 SoC
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
Signed-off-by: HeungJun, Kim <riverful.kim@samsung.com>
---
MAINTAINERS | 4 +
MAKEALL | 1 +
Makefile | 3 +
board/samsung/smdkc100/Makefile | 54 +++++++
board/samsung/smdkc100/config.mk | 16 ++
board/samsung/smdkc100/lowlevel_init.S | 221 +++++++++++++++++++++++++++++
board/samsung/smdkc100/mem_setup.S | 198 ++++++++++++++++++++++++++
board/samsung/smdkc100/onenand.c | 98 +++++++++++++
board/samsung/smdkc100/smdkc100.c | 51 +++++++
board/samsung/smdkc100/u-boot.lds | 63 +++++++++
include/configs/smdkc100.h | 240 ++++++++++++++++++++++++++++++++
11 files changed, 949 insertions(+), 0 deletions(-)
create mode 100644 board/samsung/smdkc100/Makefile
create mode 100644 board/samsung/smdkc100/config.mk
create mode 100644 board/samsung/smdkc100/lowlevel_init.S
create mode 100644 board/samsung/smdkc100/mem_setup.S
create mode 100644 board/samsung/smdkc100/onenand.c
create mode 100644 board/samsung/smdkc100/smdkc100.c
create mode 100644 board/samsung/smdkc100/u-boot.lds
create mode 100644 include/configs/smdkc100.h
diff --git a/MAINTAINERS b/MAINTAINERS
index e4f3dee..5a93fa9 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -721,6 +721,10 @@ Alex Z
lart SA1100
dnp1110 SA1110
+Minkyu Kang <mk7.kang@samsung.com>
+
+ SMDKC100 ARM CORTEX-A8 (S5PC100 SoC)
+
-------------------------------------------------------------------------
Unknown / orphaned boards:
diff --git a/MAKEALL b/MAKEALL
index 03e8b7a..12bbbc5 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -587,6 +587,7 @@ LIST_ARM_CORTEX_A8=" \
omap3_pandora \
omap3_zoom1 \
omap3_zoom2 \
+ smdkc100 \
"
#########################################################################
diff --git a/Makefile b/Makefile
index 9d14210..36a94ca 100644
--- a/Makefile
+++ b/Makefile
@@ -3163,6 +3163,9 @@ omap3_zoom1_config : unconfig
omap3_zoom2_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm_cortexa8 zoom2 omap3 omap3
+smdkc100_config: unconfig
+ @$(MKCONFIG) $(@:_config=) arm arm_cortexa8 smdkc100 samsung s5pc1xx
+
#########################################################################
## XScale Systems
#########################################################################
diff --git a/board/samsung/smdkc100/Makefile b/board/samsung/smdkc100/Makefile
new file mode 100644
index 0000000..7d0b6b0
--- /dev/null
+++ b/board/samsung/smdkc100/Makefile
@@ -0,0 +1,54 @@
+#
+# (C) Copyright 2000, 2001, 2002
+# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+#
+# (C) Copyright 2008
+# Guennadi Liakhovetki, DENX Software Engineering, <lg@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).a
+
+COBJS-y := smdkc100.o onenand.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/smdkc100/config.mk b/board/samsung/smdkc100/config.mk
new file mode 100644
index 0000000..ebab420
--- /dev/null
+++ b/board/samsung/smdkc100/config.mk
@@ -0,0 +1,16 @@
+#
+# Copyright (C) 2008 # Samsung Elecgtronics
+# Kyungmin Park <kyungmin.park@samsung.com>
+#
+
+# On S5PC100 we use the 128 MiB OneDRAM bank at
+#
+# 0x30000000 to 0x35000000 (80MiB)
+# 0x38000000 to 0x40000000 (128MiB)
+#
+# On S5PC110 we use the 128 MiB OneDRAM bank at
+#
+# 0x30000000 to 0x35000000 (80MiB)
+# 0x40000000 to 0x48000000 (128MiB)
+#
+TEXT_BASE = 0x34800000
diff --git a/board/samsung/smdkc100/lowlevel_init.S b/board/samsung/smdkc100/lowlevel_init.S
new file mode 100644
index 0000000..cd512bd
--- /dev/null
+++ b/board/samsung/smdkc100/lowlevel_init.S
@@ -0,0 +1,221 @@
+/*
+ * Memory Setup stuff - taken from blob memsetup.S
+ *
+ * Copyright (C) 2009 Samsung Electronics
+ * Kyungmin Park <kyungmin.park@samsung.com>
+ * 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 <config.h>
+#include <version.h>
+#include <asm/arch/cpu.h>
+#include <asm/arch/mem.h>
+#include <asm/arch/gpio.h>
+#include <asm/arch/clock.h>
+#include <asm/arch/power.h>
+#include <asm/arch/interrupt.h>
+
+/*
+ * Register usages:
+ *
+ * r5 has zero always
+ */
+
+_TEXT_BASE:
+ .word TEXT_BASE
+
+ .globl lowlevel_init
+lowlevel_init:
+ mov r9, lr
+
+ /* r5 has always zero */
+ mov r5, #0
+
+ ldr r8, =S5PC100_GPIO_BASE(0)
+
+ /* Disable Watchdog */
+ ldr r0, =S5PC100_WATCHDOG_BASE @0xEA200000
+ orr r0, r0, #0x0
+ str r5, [r0]
+
+#ifndef CONFIG_ONENAND_IPL
+ /* setting SRAM */
+ ldr r0, =S5PC100_SROMC_BASE
+ ldr r1, =0x9
+ str r1, [r0]
+#endif
+
+ /* S5PC100 has 3 groups of interrupt sources */
+ ldr r0, =S5PC100_VIC0_BASE @0xE4000000
+ ldr r1, =S5PC100_VIC1_BASE @0xE4000000
+ ldr r2, =S5PC100_VIC2_BASE @0xE4000000
+
+ /* Disable all interrupts (VIC0, VIC1 and VIC2) */
+ mvn r3, #0x0
+ str r3, [r0, #VIC_INTENCLEAR_OFFSET]
+ str r3, [r1, #VIC_INTENCLEAR_OFFSET]
+ str r3, [r2, #VIC_INTENCLEAR_OFFSET]
+
+#ifndef CONFIG_ONENAND_IPL
+ /* Set all interrupts as IRQ */
+ str r5, [r0, #VIC_INTSELECT_OFFSET]
+ str r5, [r1, #VIC_INTSELECT_OFFSET]
+ str r5, [r2, #VIC_INTSELECT_OFFSET]
+
+ /* Pending Interrupt Clear */
+ str r5, [r0, #VIC_INTADDRESS_OFFSET]
+ str r5, [r1, #VIC_INTADDRESS_OFFSET]
+ str r5, [r2, #VIC_INTADDRESS_OFFSET]
+#endif
+
+#ifndef CONFIG_ONENAND_IPL
+ /* for UART */
+ bl uart_asm_init
+
+ /* for TZPC */
+ bl tzpc_asm_init
+#endif
+
+#ifdef CONFIG_ONENAND_IPL
+ /* init system clock */
+ bl system_clock_init
+
+ bl mem_ctrl_asm_init
+
+ /* Wakeup support. Don't know if it's going to be used, untested. */
+ ldr r0, =S5PC100_RST_STAT
+ ldr r1, [r0]
+ bic r1, r1, #0xfffffff7
+ cmp r1, #0x8
+ beq wakeup_reset
+#endif
+
+1:
+ mov lr, r9
+ mov pc, lr
+
+#ifdef CONFIG_ONENAND_IPL
+wakeup_reset:
+
+ /* Clear wakeup status register */
+ ldr r0, =S5PC100_WAKEUP_STAT
+ ldr r1, [r0]
+ str r1, [r0]
+
+ /* Load return address and jump to kernel */
+ ldr r0, =S5PC100_INFORM0
+
+ /* r1 = physical address of s5pc100_cpu_resume function */
+ ldr r1, [r0]
+
+ /* Jump to kernel (sleep.S) */
+ mov pc, r1
+ nop
+ nop
+#endif
+
+/*
+ * system_clock_init: Initialize core clock and bus clock.
+ * void system_clock_init(void)
+ */
+system_clock_init:
+ ldr r8, =S5PC1XX_CLOCK_BASE @ 0xE0100000
+
+ /* Set Clock divider */
+ ldr r1, =0x00011110
+ str r1, [r8, #0x304]
+ ldr r1, =0x1
+ str r1, [r8, #0x308]
+ ldr r1, =0x00011301
+ str r1, [r8, #0x300]
+
+ /* Set Lock Time */
+ ldr r1, =0xe10 @ Locktime : 0xe10 = 3600
+ str r1, [r8, #0x000] @ APLL_LOCK
+ str r1, [r8, #0x004] @ MPLL_LOCK
+ str r1, [r8, #0x008] @ EPLL_LOCK
+ str r1, [r8, #0x00C] @ HPLL_LOCK
+
+ /* APLL_CON */
+ ldr r1, =0x81bc0400 @ SDIV 0, PDIV 4, MDIV 444 (1332MHz)
+ str r1, [r8, #0x100]
+ /* MPLL_CON */
+ ldr r1, =0x80590201 @ SDIV 1, PDIV 2, MDIV 89 (267MHz)
+ str r1, [r8, #0x104]
+ /* EPLL_CON */
+ ldr r1, =0x80870303 @ SDIV 3, PDIV 3, MDIV 135 (67.5MHz)
+ str r1, [r8, #0x108]
+ /* HPLL_CON */
+ ldr r1, =0x80600603
+ str r1, [r8, #0x10C]
+
+ /* Set Source Clock */
+ ldr r1, =0x1111 @ A, M, E, HPLL Muxing
+ str r1, [r8, #0x200] @ CLK_SRC0
+
+ ldr r1, =0x1000001 @ Uart Clock & CLK48M Muxing
+ str r1, [r8, #0x204] @ CLK_SRC1
+
+ ldr r1, =0x9000 @ ARMCLK/4
+ str r1, [r8, #0x400] @ CLK_OUT
+
+ /* wait at least 200us to stablize all clock */
+ mov r2, #0x10000
+1: subs r2, r2, #1
+ bne 1b
+
+ mov pc, lr
+
+#ifndef CONFIG_ONENAND_IPL
+/*
+ * uart_asm_init: Initialize UART's pins
+ */
+uart_asm_init:
+ mov r0, r8
+ ldr r1, =0x22222222
+ str r1, [r0, #S5PC100_GPIO_A0_OFFSET] @ GPA0_CON
+ ldr r1, =0x00022222
+ str r1, [r0, #S5PC100_GPIO_A1_OFFSET] @ GPA1_CON
+
+ mov pc, lr
+
+/*
+ * tzpc_asm_init: Initialize TZPC
+ */
+tzpc_asm_init:
+ ldr r0, =0xE3800000
+ mov r1, #0x0
+ str r1, [r0]
+ mov r1, #0xff
+ str r1, [r0, #0x804]
+ str r1, [r0, #0x810]
+
+ ldr r0, =0xE2800000
+ str r1, [r0, #0x804]
+ str r1, [r0, #0x810]
+ str r1, [r0, #0x81C]
+
+ ldr r0, =0xE2900000
+ str r1, [r0, #0x804]
+ str r1, [r0, #0x810]
+
+ mov pc, lr
+#endif
diff --git a/board/samsung/smdkc100/mem_setup.S b/board/samsung/smdkc100/mem_setup.S
new file mode 100644
index 0000000..a3e692f
--- /dev/null
+++ b/board/samsung/smdkc100/mem_setup.S
@@ -0,0 +1,198 @@
+/*
+ * Originates from Samsung's u-boot 1.1.6 port to S5PC1xx
+ *
+ * Copyright (C) 2009 Samsung Electrnoics
+ * Inki Dae <inki.dae@samsung.com>
+ * Heungjun Kim <riverful.kim@samsung.com>
+ * Minkyu Kang <mk7.kang@samsung.com>
+ * Kyungmin Park <kyungmin.park@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 <config.h>
+#include <asm/arch/mem.h>
+
+ .globl mem_ctrl_asm_init
+mem_ctrl_asm_init:
+ ldr r6, =S5PC100_DMC_BASE @ 0xE6000000
+
+ /* DLL parameter setting */
+ ldr r1, =0x50101000
+ str r1, [r6, #0x018] @ PHYCONTROL0
+ ldr r1, =0xf4
+ str r1, [r6, #0x01C] @ PHYCONTROL1
+ ldr r1, =0x0
+ str r1, [r6, #0x020] @ PHYCONTROL2
+
+ /* DLL on */
+ ldr r1, =0x50101002
+ str r1, [r6, #0x018] @ PHYCONTROL0
+
+ /* DLL start */
+ ldr r1, =0x50101003
+ str r1, [r6, #0x018] @ PHYCONTROL0
+
+ /* Force value locking for DLL off */
+ str r1, [r6, #0x018] @ PHYCONTROL0
+
+ /* DLL off */
+ ldr r1, =0x50101001
+ str r1, [r6, #0x018] @ PHYCONTROL0
+
+ /* auto refresh off */
+ ldr r1, =0xff001010
+ str r1, [r6, #0x000] @ CONCONTROL
+
+ /*
+ * Burst Length 4, 2 chips, 32-bit, LPDDR
+ * OFF: dynamic self refresh, force precharge, dynamic power down off
+ */
+ ldr r1, =0x00212100
+ str r1, [r6, #0x004] @ MEMCONTROL
+
+ /*
+ * Note:
+ * If Bank0 has OneDRAM we place it at 0x2800'0000
+ * So finally Bank1 should address start at at 0x2000'0000
+ */
+ mov r4, #0x0
+
+swap_memory:
+ /*
+ * Bank0
+ * 0x30 -> 0x30000000
+ * 0xf8 -> 0x37FFFFFF
+ * [15:12] 0: Linear
+ * [11:8 ] 2: 9 bits
+ * [ 7:4 ] 2: 14 bits
+ * [ 3:0 ] 2: 4 banks
+ */
+ ldr r1, =0x30f80222
+ /* if r4 is 1, swap the bank */
+ cmp r4, #0x1
+ orreq r1, r1, #0x08000000
+ str r1, [r6, #0x008] @ MEMCONFIG0
+
+ /*
+ * Bank1
+ * 0x38 -> 0x38000000
+ * 0xf8 -> 0x3fFFFFFF
+ * [15:12] 0: Linear
+ * [11:8 ] 2: 9 bits
+ * [ 7:4 ] 2: 14 bits
+ * [ 3:0 ] 2: 4 banks
+ */
+ ldr r1, =0x38f80222
+ /* if r4 is 1, swap the bank */
+ cmp r4, #0x1
+ biceq r1, r1, #0x08000000
+ str r1, [r6, #0x00c] @ MEMCONFIG1
+
+ ldr r1, =0x20000000
+ str r1, [r6, #0x014] @ PRECHCONFIG
+
+ /*
+ * FIXME: Please verify these values
+ * 7.8us * 166MHz %LE %LONG1294(0x50E)
+ * 7.8us * 133MHz %LE %LONG1038(0x40E),
+ * 7.8us * 100MHz %LE %LONG780(0x30C),
+ * 7.8us * 20MHz %LE %LONG156(0x9C),
+ * 7.8us * 10MHz %LE %LONG78(0x4E)
+ */
+ ldr r1, =0x0000050e
+ str r1, [r6, #0x030] @ TIMINGAREF
+
+ /* 166 MHz */
+ ldr r1, =0x0c233287
+ str r1, [r6, #0x034] @ TIMINGROW
+
+ /* twtr=3 twr=2 trtp=3 cl=3 wl=3 rl=3 */
+ ldr r1, =0x32330303
+ str r1, [r6, #0x038] @ TIMINGDATA
+
+ /* tfaw=4 sxsr=0x14 txp=0x14 tcke=3 tmrd=3 */
+ ldr r1, =0x04141433
+ str r1, [r6, #0x03C] @ TIMINGPOWER
+
+ /* chip0 Deselect */
+ ldr r1, =0x07000000
+ str r1, [r6, #0x010] @ DIRECTCMD
+
+ /* chip0 PALL */
+ ldr r1, =0x01000000
+ str r1, [r6, #0x010] @ DIRECTCMD
+
+ /* chip0 REFA */
+ ldr r1, =0x05000000
+ str r1, [r6, #0x010] @ DIRECTCMD
+ /* chip0 REFA */
+ str r1, [r6, #0x010] @ DIRECTCMD
+
+ /* chip0 MRS, CL%LE %LONG3, BL%LE %LONG4 */
+ ldr r1, =0x00000032
+ str r1, [r6, #0x010] @ DIRECTCMD
+
+ /* chip1 Deselect */
+ ldr r1, =0x07100000
+ str r1, [r6, #0x010] @ DIRECTCMD
+
+ /* chip1 PALL */
+ ldr r1, =0x01100000
+ str r1, [r6, #0x010] @ DIRECTCMD
+
+ /* chip1 REFA */
+ ldr r1, =0x05100000
+ str r1, [r6, #0x010] @ DIRECTCMD
+ /* chip1 REFA */
+ str r1, [r6, #0x010] @ DIRECTCMD
+
+ /* chip1 MRS, CL%LE %LONG3, BL%LE %LONG4 */
+ ldr r1, =0x00100032
+ str r1, [r6, #0x010] @ DIRECTCMD
+
+ /* auto refresh on */
+ ldr r1, =0xff002030
+ str r1, [r6, #0x000] @ CONCONTROL
+
+ /* PwrdnConfig */
+ ldr r1, =0x00100002
+ str r1, [r6, #0x028] @ PWRDNCONFIG
+
+ /* BL%LE %LONG */
+ ldr r1, =0xff212100
+ str r1, [r6, #0x004] @ MEMCONTROL
+
+
+ /* Try to test memory area */
+ cmp r4, #0x1
+ beq 1f
+
+ mov r4, #0x1
+ ldr r1, =0x37ffff00
+ str r4, [r1]
+ str r4, [r1, #0x4] @ dummy write
+ ldr r0, [r1]
+ cmp r0, r4
+ bne swap_memory
+
+1:
+ mov pc, lr
+
+ .ltorg
diff --git a/board/samsung/smdkc100/onenand.c b/board/samsung/smdkc100/onenand.c
new file mode 100644
index 0000000..75bb8a9
--- /dev/null
+++ b/board/samsung/smdkc100/onenand.c
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2008-2009 Samsung Electronics
+ * Kyungmin Park <kyungmin.park@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 <linux/mtd/compat.h>
+#include <linux/mtd/mtd.h>
+#include <linux/mtd/onenand.h>
+
+#include <onenand_uboot.h>
+
+#include <samsung_onenand.h>
+
+#include <asm/io.h>
+#include <asm/arch/clock.h>
+
+extern void s3c_onenand_init(struct mtd_info *);
+
+static inline int onenand_read_reg(int offset)
+{
+ return readl(CONFIG_SYS_ONENAND_BASE + offset);
+}
+
+static inline void onenand_write_reg(int value, int offset)
+{
+ writel(value, CONFIG_SYS_ONENAND_BASE + offset);
+}
+
+static int s5pc1xx_clock_read(int offset)
+{
+ return readl(S5PC1XX_CLOCK_BASE + offset);
+}
+
+static void s5pc1xx_clock_write(int value, int offset)
+{
+ writel(value, S5PC1XX_CLOCK_BASE + offset);
+}
+
+void onenand_board_init(struct mtd_info *mtd)
+{
+ struct onenand_chip *this = mtd->priv;
+ int value;
+
+ this->base = (void *) S5PC100_ONENAND_BASE;
+
+ /* D0 Domain memory clock gating */
+ value = s5pc1xx_clock_read(S5P_CLK_GATE_D01_OFFSET);
+ value &= ~(1 << 2); /* CLK_ONENANDC */
+ value |= (1 << 2);
+ s5pc1xx_clock_write(value, S5P_CLK_GATE_D01_OFFSET);
+
+ value = s5pc1xx_clock_read(S5P_CLK_SRC0_OFFSET);
+ value &= ~(1 << 24); /* MUX_1nand: 0 from HCLKD0 */
+ value &= ~(1 << 20); /* MUX_HREF: 0 from FIN_27M */
+ s5pc1xx_clock_write(value, S5P_CLK_SRC0_OFFSET);
+
+ value = s5pc1xx_clock_read(S5P_CLK_DIV1_OFFSET);
+ value &= ~(3 << 16);
+ value |= (1 << 16);
+ s5pc1xx_clock_write(value, S5P_CLK_DIV1_OFFSET);
+
+ onenand_write_reg(ONENAND_MEM_RESET_COLD, MEM_RESET_OFFSET);
+
+ while (!(onenand_read_reg(INT_ERR_STAT_OFFSET) & RST_CMP))
+ continue;
+
+ onenand_write_reg(RST_CMP, INT_ERR_ACK_OFFSET);
+
+ onenand_write_reg(0x3, ACC_CLOCK_OFFSET);
+
+ onenand_write_reg(0x3fff, INT_ERR_MASK_OFFSET);
+ onenand_write_reg(1 << 0, INT_PIN_ENABLE_OFFSET); /* Enable */
+
+ value = onenand_read_reg(INT_ERR_MASK_OFFSET);
+ value &= ~RDY_ACT;
+ onenand_write_reg(value, INT_ERR_MASK_OFFSET);
+
+ s3c_onenand_init(mtd);
+}
diff --git a/board/samsung/smdkc100/smdkc100.c b/board/samsung/smdkc100/smdkc100.c
new file mode 100644
index 0000000..4539ced
--- /dev/null
+++ b/board/samsung/smdkc100/smdkc100.c
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2008-2009 Samsung Electronics
+ * Minkyu Kang <mk7.kang@samsung.com>
+ * Kyungmin Park <kyungmin.park@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>
+DECLARE_GLOBAL_DATA_PTR;
+
+int board_init(void)
+{
+ gd->bd->bi_arch_number = MACH_TYPE;
+ 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 = get_ram_size((long *)PHYS_SDRAM_1,
+ PHYS_SDRAM_1_SIZE);
+
+ return 0;
+}
+
+#ifdef CONFIG_DISPLAY_BOARDINFO
+int checkboard(void)
+{
+ printf("Board:\tSMDKC100\n");
+ return 0;
+}
+#endif
diff --git a/board/samsung/smdkc100/u-boot.lds b/board/samsung/smdkc100/u-boot.lds
new file mode 100644
index 0000000..27f8201
--- /dev/null
+++ b/board/samsung/smdkc100/u-boot.lds
@@ -0,0 +1,63 @@
+/*
+ * (C) Copyright 2002
+ * Gary Jennejohn, DENX Software Engineering, <gj@denx.de>
+ *
+ * (C) Copyright 2008
+ * Guennadi Liakhovetki, DENX Software Engineering, <lg@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
+ */
+
+OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
+OUTPUT_ARCH(arm)
+ENTRY(_start)
+SECTIONS
+{
+ . = 0x00000000;
+
+ . = ALIGN(4);
+ .text :
+ {
+ cpu/arm_cortexa8/start.o (.text)
+ *(.text)
+ }
+
+ . = ALIGN(4);
+ .rodata : { *(.rodata) }
+
+ .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) }
+ __exidx_start = .;
+ .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) }
+ __exidx_end = .;
+
+ . = ALIGN(4);
+ .data : { *(.data) }
+
+ . = ALIGN(4);
+ .got : { *(.got) }
+
+ __u_boot_cmd_start = .;
+ .u_boot_cmd : { *(.u_boot_cmd) }
+ __u_boot_cmd_end = .;
+
+ . = ALIGN(4);
+ __bss_start = .;
+ .bss : { *(.bss) }
+ _end = .;
+}
diff --git a/include/configs/smdkc100.h b/include/configs/smdkc100.h
new file mode 100644
index 0000000..ec0fd1d
--- /dev/null
+++ b/include/configs/smdkc100.h
@@ -0,0 +1,240 @@
+/*
+ * (C) Copyright 2009 Samsung Electronics
+ * Minkyu Kang <mk7.kang@samsung.com>
+ * HeungJun Kim <riverful.kim@samsung.com>
+ * Inki Dae <inki.dae@samsung.com>
+ *
+ * Configuation settings for the SAMSUNG SMDKC100 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
+#include <asm/sizes.h>
+
+/*
+ * High Level Configuration Options
+ * (easy to change)
+ */
+#define CONFIG_ARMCORTEXA8 1 /* This is an ARM V7 CPU core */
+#define CONFIG_SAMSUNG 1 /* in a SAMSUNG core */
+#define CONFIG_S5PC1XX 1 /* which is in a S5PC1XX Family */
+#define CONFIG_S5PC100 1 /* which is in a S5PC100 */
+#define CONFIG_SMDKC100 1 /* working with SMDKC100 */
+
+#include <asm/arch/cpu.h> /* get chip and board defs */
+
+#define CONFIG_ARCH_CPU_INIT
+
+/*
+ * Architecture magic and machine type
+ */
+#define MACH_TYPE 1826
+
+#define CONFIG_DISPLAY_CPUINFO
+#define CONFIG_DISPLAY_BOARDINFO
+
+#undef CONFIG_SKIP_RELOCATE_UBOOT
+
+/* input clock of PLL: SMDKC100 has 12MHz input clock */
+#define CONFIG_SYS_CLK_FREQ 12000000
+
+/* DRAM Base */
+#define CONFIG_SYS_SDRAM_BASE 0x30000000
+
+#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 + SZ_1M)
+#define CONFIG_SYS_GBL_DATA_SIZE 128 /* size in bytes for */
+ /* initial data */
+
+/*
+ * select serial console configuration
+ */
+#define CONFIG_SERIAL0 1 /* we use SERIAL 0 on SMDKC100 */
+
+/* allow to overwrite serial and ethaddr */
+#define CONFIG_ENV_OVERWRITE
+#define CONFIG_BAUDRATE 115200
+
+/***********************************************************
+ * Command definition
+ ***********************************************************/
+#include <config_cmd_default.h>
+
+#undef CONFIG_CMD_LOADB
+#undef CONFIG_CMD_LOADS
+#undef CONFIG_CMD_BOOTD
+#undef CONFIG_CMD_FPGA
+#undef CONFIG_CMD_XIMG
+#undef CONFIG_CMD_NAND
+#undef CONFIG_CMD_IMLS
+#undef CONFIG_CMD_FLASH
+#undef CONFIG_CMD_IMLS
+#undef CONFIG_CMD_NET
+#define CONFIG_CMD_CACHE
+#define CONFIG_CMD_REGINFO
+#define CONFIG_CMD_ONENAND
+#define CONFIG_CMD_ELF
+#define CONFIG_CMD_FAT
+#define CONFIG_CMD_MTDPARTS
+
+#define CONFIG_BOOTDELAY 3
+
+#define CONFIG_ZERO_BOOTDELAY_CHECK
+
+#define CONFIG_MTD_DEVICE
+#define CONFIG_MTD_PARTITIONS
+
+#define MTDIDS_DEFAULT "onenand0=s3c-onenand"
+#define MTDPARTS_DEFAULT "mtdparts=s3c-onenand:256k(bootloader)"\
+ ",128k at 0x40000(params)"\
+ ",3m at 0x60000(kernel)"\
+ ",16m at 0x360000(test)"\
+ ",-(UBI)"
+
+#define NORMAL_MTDPARTS_DEFAULT MTDPARTS_DEFAULT
+
+#if 1
+#define CONFIG_BOOTCOMMAND "run ubifsboot"
+#else
+#define CONFIG_BOOTCOMMAND "bootm 0x31008000"
+#endif
+
+#define CONFIG_RAMDISK_BOOT "root=/dev/ram0 rw rootfstype=ext2" \
+ " console=ttySAC0,115200n8" \
+ " mem=80M"
+
+#define CONFIG_COMMON_BOOT "console=ttySAC0,115200n8" \
+ " mem=128M " \
+ " " MTDPARTS_DEFAULT
+
+#define CONFIG_BOOTARGS "root=/dev/mtdblock5 ubi.mtd=4" \
+ " rootfstype=cramfs " CONFIG_COMMON_BOOT
+
+#define CONFIG_UPDATEB "updateb=onenand erase 0x0 0x40000;" \
+ " onenand write 0x32008000 0x0 0x40000\0"
+
+#define CONFIG_ENV_OVERWRITE
+#define CONFIG_EXTRA_ENV_SETTINGS \
+ CONFIG_UPDATEB \
+ "updatek=onenand erase 0x60000 0x300000;" \
+ " onenand write 0x31008000 0x60000 0x300000\0" \
+ "updateu=onenand erase block 147-4095;" \
+ " onenand write 0x32000000 0x1260000 0x8C0000\0" \
+ "bootk=onenand read 0x30007FC0 0x60000 0x300000;" \
+ " bootm 0x30007FC0\0" \
+ "flashboot=set bootargs root=/dev/mtdblock${bootblock}" \
+ " rootfstype=${rootfstype}" \
+ " ubi.mtd=${ubiblock} ${opts} " CONFIG_COMMON_BOOT "; run bootk\0" \
+ "ubifsboot=set bootargs root=ubi0!rootfs rootfstype=ubifs" \
+ " ubi.mtd=${ubiblock} ${opts} " CONFIG_COMMON_BOOT "; run bootk\0" \
+ "boottrace=setenv opts initcall_debug; run bootcmd\0" \
+ "android=set bootargs root=ubi0!ramdisk ubi.mtd=${ubiblock}" \
+ " rootfstype=ubifs init=/init.sh " CONFIG_COMMON_BOOT "; run bootk\0" \
+ "nfsboot=set bootargs root=/dev/nfs ubi.mtd=${ubiblock}" \
+ " nfsroot=${nfsroot},nolock ip=${ipaddr}:${serverip}:${gatewayip}:" \
+ "${netmask}:nowplus:usb0:off " CONFIG_COMMON_BOOT "; run bootk\0" \
+ "ramboot=set bootargs " CONFIG_RAMDISK_BOOT \
+ " initrd=0x33000000,8M ramdisk=8192\0" \
+ "rootfstype=cramfs\0" \
+ "mtdparts=" MTDPARTS_DEFAULT "\0" \
+ "meminfo=mem=128M\0" \
+ "nfsroot=/nfsroot/arm\0" \
+ "bootblock=5\0" \
+ "ubiblock=4\0" \
+ "ubi=enabled"
+
+/*
+ * 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 "SMDKC100 # "
+#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 + 0x5e00000)
+#define CONFIG_SYS_LOAD_ADDR CONFIG_SYS_SDRAM_BASE
+
+#define CONFIG_SYS_HZ 2085900 /* at PCLK 66.75MHz */
+
+/* valid baudrates */
+#define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 }
+
+/*-----------------------------------------------------------------------
+ * Stack sizes
+ *
+ * The stack sizes are set up in start.S using the settings below
+ */
+#define CONFIG_STACKSIZE SZ_256K /* regular stack */
+
+/* SMDKC100 has 1 banks of DRAM, we use only one in U-Boot */
+#define CONFIG_NR_DRAM_BANKS 1
+#define PHYS_SDRAM_1 CONFIG_SYS_SDRAM_BASE /* SDRAM Bank #1 */
+#define PHYS_SDRAM_1_SIZE SZ_128M /* 0x8000000, 128 MB Bank #1 */
+
+#define CONFIG_SYS_MONITOR_BASE 0x00000000
+
+/*-----------------------------------------------------------------------
+ * FLASH and environment organization
+ */
+#define CONFIG_SYS_NO_FLASH 1
+
+#define CONFIG_SYS_MONITOR_LEN SZ_256K /* Reserve 2 sectors */
+
+#define CONFIG_IDENT_STRING " for SMDKC100"
+
+#if !defined(CONFIG_NAND_SPL) && (TEXT_BASE >= 0xc0000000)
+#define CONFIG_ENABLE_MMU
+#endif
+
+#ifdef CONFIG_ENABLE_MMU
+#define CONFIG_SYS_MAPPED_RAM_BASE 0xc0000000
+#else
+#define CONFIG_SYS_MAPPED_RAM_BASE CONFIG_SYS_SDRAM_BASE
+#endif
+
+/*-----------------------------------------------------------------------
+ * Boot configuration (define only one of next 3)
+ */
+#define CONFIG_ENV_IS_IN_ONENAND 1
+#define CONFIG_ENV_SIZE SZ_128K /* 128KB, 0x20000 */
+#define CONFIG_ENV_ADDR SZ_256K /* 256KB, 0x40000 */
+#define CONFIG_ENV_OFFSET SZ_256K /* 256KB, 0x40000 */
+
+#define CONFIG_USE_ONENAND_BOARD_INIT
+#define CONFIG_SYS_ONENAND_BASE 0xE7100000
+
+#define CONFIG_DOS_PARTITION 1
+
+#endif /* __CONFIG_H */
--
1.5.4.3
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [U-Boot] [PATCH 4/4] s5pc1xx: add support SMDKC100 board
2009-09-04 8:22 [U-Boot] [PATCH 4/4] s5pc1xx: add support SMDKC100 board Minkyu Kang
@ 2009-09-04 10:56 ` Wolfgang Denk
2009-09-04 11:09 ` Kyungmin Park
2009-09-04 14:47 ` Minkyu Kang
2009-09-04 22:39 ` Jean-Christophe PLAGNIOL-VILLARD
1 sibling, 2 replies; 8+ messages in thread
From: Wolfgang Denk @ 2009-09-04 10:56 UTC (permalink / raw)
To: u-boot
Dear Minkyu Kang,
In message <4AA0CE4A.3060209@samsung.com> you wrote:
> Add new board SMDKC100 that uses s5pc100 SoC
...
> diff --git a/board/samsung/smdkc100/mem_setup.S b/board/samsung/smdkc100/mem_setup.S
> new file mode 100644
> index 0000000..a3e692f
> --- /dev/null
> +++ b/board/samsung/smdkc100/mem_setup.S
Why is this all written in assembly code?
Cannot we use C instead?
> diff --git a/board/samsung/smdkc100/onenand.c b/board/samsung/smdkc100/onenand.c
> new file mode 100644
> index 0000000..75bb8a9
> --- /dev/null
> +++ b/board/samsung/smdkc100/onenand.c
...
> +static inline int onenand_read_reg(int offset)
> +{
> + return readl(CONFIG_SYS_ONENAND_BASE + offset);
> +}
> +
> +static inline void onenand_write_reg(int value, int offset)
> +{
> + writel(value, CONFIG_SYS_ONENAND_BASE + offset);
> +}
See previous comments about not using base address plus offset for
register accesses. Please change to use C structs.
...
> diff --git a/board/samsung/smdkc100/smdkc100.c b/board/samsung/smdkc100/smdkc100.c
> new file mode 100644
> index 0000000..4539ced
> --- /dev/null
> +++ b/board/samsung/smdkc100/smdkc100.c
...
> +#include <common.h>
> +DECLARE_GLOBAL_DATA_PTR;
> +
> +int board_init(void)
> +{
> + gd->bd->bi_arch_number = MACH_TYPE;
Please don;t hide this information - use MACH_TYPE_SMDKC100 directly.
> diff --git a/include/configs/smdkc100.h b/include/configs/smdkc100.h
> new file mode 100644
> index 0000000..ec0fd1d
> --- /dev/null
> +++ b/include/configs/smdkc100.h
...
> +/*
> + * Architecture magic and machine type
> + */
> +#define MACH_TYPE 1826
Please do not do this. I recommend to omit this completely, and use
the MACH_TYPE_SMDKC100 defintion from include/asm-arm/mach-types.h
instead.
> +/***********************************************************
> + * Command definition
> + ***********************************************************/
> +#include <config_cmd_default.h>
> +
> +#undef CONFIG_CMD_LOADB
> +#undef CONFIG_CMD_LOADS
> +#undef CONFIG_CMD_BOOTD
> +#undef CONFIG_CMD_FPGA
> +#undef CONFIG_CMD_XIMG
> +#undef CONFIG_CMD_NAND
> +#undef CONFIG_CMD_IMLS
> +#undef CONFIG_CMD_FLASH
> +#undef CONFIG_CMD_IMLS
> +#undef CONFIG_CMD_NET
Is there any specific reason for disabling these commands? Some of
these are extremely useful to the end user?
Also, you might want to sort such lists, and remove duplicate entries.
> +#if 1
> +#define CONFIG_BOOTCOMMAND "run ubifsboot"
> +#else
> +#define CONFIG_BOOTCOMMAND "bootm 0x31008000"
> +#endif
Please do not add dead code.
...
> +#define CONFIG_SYS_HZ 2085900 /* at PCLK 66.75MHz */
NAK. It is a mandatory requirement that CONFIG_SYS_HZ must be 1000.
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Do not underestimate the value of print statements for debugging.
Don't have aesthetic convulsions when using them, either.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [U-Boot] [PATCH 4/4] s5pc1xx: add support SMDKC100 board
2009-09-04 10:56 ` Wolfgang Denk
@ 2009-09-04 11:09 ` Kyungmin Park
2009-09-04 11:25 ` Wolfgang Denk
2009-09-04 14:47 ` Minkyu Kang
1 sibling, 1 reply; 8+ messages in thread
From: Kyungmin Park @ 2009-09-04 11:09 UTC (permalink / raw)
To: u-boot
On Fri, Sep 4, 2009 at 7:56 PM, Wolfgang Denk<wd@denx.de> wrote:
> Dear Minkyu Kang,
>
> In message <4AA0CE4A.3060209@samsung.com> you wrote:
>> Add new board SMDKC100 that uses s5pc100 SoC
> ...
>> diff --git a/board/samsung/smdkc100/mem_setup.S b/board/samsung/smdkc100/mem_setup.S
>> new file mode 100644
>> index 0000000..a3e692f
>> --- /dev/null
>> +++ b/board/samsung/smdkc100/mem_setup.S
>
> Why is this all written in assembly code?
>
> Cannot we use C instead?
Since it is used at OneNAND IPL. It has size limitation.
>
>
>> diff --git a/board/samsung/smdkc100/onenand.c b/board/samsung/smdkc100/onenand.c
>> new file mode 100644
>> index 0000000..75bb8a9
>> --- /dev/null
>> +++ b/board/samsung/smdkc100/onenand.c
> ...
>> +static inline int onenand_read_reg(int offset)
>> +{
>> + ? ? return readl(CONFIG_SYS_ONENAND_BASE + offset);
>> +}
>> +
>> +static inline void onenand_write_reg(int value, int offset)
>> +{
>> + ? ? writel(value, CONFIG_SYS_ONENAND_BASE + offset);
>> +}
>
> See previous comments about not using base address plus offset for
> register accesses. Please change to use C structs.
>
> ...
>> diff --git a/board/samsung/smdkc100/smdkc100.c b/board/samsung/smdkc100/smdkc100.c
>> new file mode 100644
>> index 0000000..4539ced
>> --- /dev/null
>> +++ b/board/samsung/smdkc100/smdkc100.c
> ...
>> +#include <common.h>
>> +DECLARE_GLOBAL_DATA_PTR;
>> +
>> +int board_init(void)
>> +{
>> + ? ? gd->bd->bi_arch_number = MACH_TYPE;
>
> Please don;t hide this information - use MACH_TYPE_SMDKC100 directly.
Agreed.
>
>> diff --git a/include/configs/smdkc100.h b/include/configs/smdkc100.h
>> new file mode 100644
>> index 0000000..ec0fd1d
>> --- /dev/null
>> +++ b/include/configs/smdkc100.h
> ...
>> +/*
>> + * Architecture magic and machine type
>> + */
>> +#define MACH_TYPE ? ? ? ? ? ?1826
>
> Please do not do this. I recommend to omit this completely, and use
> the MACH_TYPE_SMDKC100 defintion from include/asm-arm/mach-types.h
> instead.
>
>> +/***********************************************************
>> + * Command definition
>> + ***********************************************************/
>> +#include <config_cmd_default.h>
>> +
>> +#undef CONFIG_CMD_LOADB
>> +#undef CONFIG_CMD_LOADS
>> +#undef CONFIG_CMD_BOOTD
>> +#undef CONFIG_CMD_FPGA
>> +#undef CONFIG_CMD_XIMG
>> +#undef CONFIG_CMD_NAND
>> +#undef CONFIG_CMD_IMLS
>> +#undef CONFIG_CMD_FLASH
>> +#undef CONFIG_CMD_IMLS
>> +#undef CONFIG_CMD_NET
>
> Is there any specific reason for disabling these commands? Some of
> these are extremely useful to the end user?
Since now we only tested on OneNAND. If someone or who want to use
these feature just remove it at that time.
>
> Also, you might want to sort such lists, and remove duplicate entries.
>
>> +#if 1
>> +#define CONFIG_BOOTCOMMAND ? "run ubifsboot"
>> +#else
>> +#define CONFIG_BOOTCOMMAND ? "bootm 0x31008000"
>> +#endif
>
> Please do not add dead code.
Okay.
Thank you,
Kyungmin Park
>
> ...
>> +#define CONFIG_SYS_HZ ? ? ? ? ? ? ? ?2085900 ? ? ? ? /* at PCLK 66.75MHz */
>
> NAK. It is a mandatory requirement that CONFIG_SYS_HZ must be 1000.
>
>
> Best regards,
>
> Wolfgang Denk
>
> --
> DENX Software Engineering GmbH, ? ? MD: Wolfgang Denk & Detlev Zundel
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
> Do not underestimate the value of print statements for debugging.
> Don't have aesthetic convulsions when using them, either.
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* [U-Boot] [PATCH 4/4] s5pc1xx: add support SMDKC100 board
2009-09-04 11:09 ` Kyungmin Park
@ 2009-09-04 11:25 ` Wolfgang Denk
0 siblings, 0 replies; 8+ messages in thread
From: Wolfgang Denk @ 2009-09-04 11:25 UTC (permalink / raw)
To: u-boot
Dear Kyungmin Park,
In message <9c9fda240909040409u576a7149kd4a4666148bfafa7@mail.gmail.com> you wrote:
>
> >> +++ b/board/samsung/smdkc100/mem_setup.S
> >
> > Why is this all written in assembly code?
> >
> > Cannot we use C instead?
>
> Since it is used at OneNAND IPL. It has size limitation.
So what? Do you think that equivalent C code would be inherently
bigger? I am not so sure about that.
...
> >> +/***********************************************************
> >> + * Command definition
> >> + ***********************************************************/
> >> +#include <config_cmd_default.h>
> >> +
> >> +#undef CONFIG_CMD_LOADB
> >> +#undef CONFIG_CMD_LOADS
> >> +#undef CONFIG_CMD_BOOTD
> >> +#undef CONFIG_CMD_FPGA
> >> +#undef CONFIG_CMD_XIMG
> >> +#undef CONFIG_CMD_NAND
> >> +#undef CONFIG_CMD_IMLS
> >> +#undef CONFIG_CMD_FLASH
> >> +#undef CONFIG_CMD_IMLS
> >> +#undef CONFIG_CMD_NET
> >
> > Is there any specific reason for disabling these commands? Some of
> > these are extremely useful to the end user?
>
> Since now we only tested on OneNAND. If someone or who want to use
> these feature just remove it at that time.
This makes no sense to me. Download commands like loadb and lods,
information commands like imls and network commands are completrely
independent of where you boot from.
It may make sense to diaable netwoirk support if you hav enot tested
it yet, but disabling all the othe rdefault features makes zero sense
to me. Please don't. Disable only things that really cannot be used.
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
The human race is a race of cowards; and I am not only marching in
that procession but carrying a banner. - Mark Twain
^ permalink raw reply [flat|nested] 8+ messages in thread
* [U-Boot] [PATCH 4/4] s5pc1xx: add support SMDKC100 board
2009-09-04 10:56 ` Wolfgang Denk
2009-09-04 11:09 ` Kyungmin Park
@ 2009-09-04 14:47 ` Minkyu Kang
2009-09-04 15:04 ` Wolfgang Denk
1 sibling, 1 reply; 8+ messages in thread
From: Minkyu Kang @ 2009-09-04 14:47 UTC (permalink / raw)
To: u-boot
Dear Wolfgang,
2009/9/4 Wolfgang Denk <wd@denx.de>
> Dear Minkyu Kang,
>
> In message <4AA0CE4A.3060209@samsung.com> you wrote:
> > Add new board SMDKC100 that uses s5pc100 SoC
> ...
> > diff --git a/board/samsung/smdkc100/mem_setup.S
> b/board/samsung/smdkc100/mem_setup.S
> > new file mode 100644
> > index 0000000..a3e692f
> > --- /dev/null
> > +++ b/board/samsung/smdkc100/mem_setup.S
>
> Why is this all written in assembly code?
>
> Cannot we use C instead?
>
Because of this function called by lowlevel_init (before jumping to C code).
Any problem?
If so, we can merge to lowlevel_init.S.
>
>
> > diff --git a/board/samsung/smdkc100/onenand.c
> b/board/samsung/smdkc100/onenand.c
> > new file mode 100644
> > index 0000000..75bb8a9
> > --- /dev/null
> > +++ b/board/samsung/smdkc100/onenand.c
> ...
> > +static inline int onenand_read_reg(int offset)
> > +{
> > + return readl(CONFIG_SYS_ONENAND_BASE + offset);
> > +}
> > +
> > +static inline void onenand_write_reg(int value, int offset)
> > +{
> > + writel(value, CONFIG_SYS_ONENAND_BASE + offset);
> > +}
>
> See previous comments about not using base address plus offset for
> register accesses. Please change to use C structs.
>
> ...
> > diff --git a/board/samsung/smdkc100/smdkc100.c
> b/board/samsung/smdkc100/smdkc100.c
> > new file mode 100644
> > index 0000000..4539ced
> > --- /dev/null
> > +++ b/board/samsung/smdkc100/smdkc100.c
> ...
> > +#include <common.h>
> > +DECLARE_GLOBAL_DATA_PTR;
> > +
> > +int board_init(void)
> > +{
> > + gd->bd->bi_arch_number = MACH_TYPE;
>
> Please don;t hide this information - use MACH_TYPE_SMDKC100 directly.
>
> > diff --git a/include/configs/smdkc100.h b/include/configs/smdkc100.h
> > new file mode 100644
> > index 0000000..ec0fd1d
> > --- /dev/null
> > +++ b/include/configs/smdkc100.h
> ...
> > +/*
> > + * Architecture magic and machine type
> > + */
> > +#define MACH_TYPE 1826
>
> Please do not do this. I recommend to omit this completely, and use
> the MACH_TYPE_SMDKC100 defintion from include/asm-arm/mach-types.h
> instead.
>
> > +/***********************************************************
> > + * Command definition
> > + ***********************************************************/
> > +#include <config_cmd_default.h>
> > +
> > +#undef CONFIG_CMD_LOADB
> > +#undef CONFIG_CMD_LOADS
> > +#undef CONFIG_CMD_BOOTD
> > +#undef CONFIG_CMD_FPGA
> > +#undef CONFIG_CMD_XIMG
> > +#undef CONFIG_CMD_NAND
> > +#undef CONFIG_CMD_IMLS
> > +#undef CONFIG_CMD_FLASH
> > +#undef CONFIG_CMD_IMLS
> > +#undef CONFIG_CMD_NET
>
> Is there any specific reason for disabling these commands? Some of
> these are extremely useful to the end user?
>
> Also, you might want to sort such lists, and remove duplicate entries.
>
> > +#if 1
> > +#define CONFIG_BOOTCOMMAND "run ubifsboot"
> > +#else
> > +#define CONFIG_BOOTCOMMAND "bootm 0x31008000"
> > +#endif
>
> Please do not add dead code.
>
> ...
> > +#define CONFIG_SYS_HZ 2085900 /* at PCLK 66.75MHz
> */
>
> NAK. It is a mandatory requirement that CONFIG_SYS_HZ must be 1000.
>
>
> Best regards,
>
> Wolfgang Denk
>
> --
> DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
> Do not underestimate the value of print statements for debugging.
> Don't have aesthetic convulsions when using them, either.
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>
Thanks for review.
Minkyu Kang.
--
from. prom.
www.promsoft.net
^ permalink raw reply [flat|nested] 8+ messages in thread
* [U-Boot] [PATCH 4/4] s5pc1xx: add support SMDKC100 board
2009-09-04 14:47 ` Minkyu Kang
@ 2009-09-04 15:04 ` Wolfgang Denk
0 siblings, 0 replies; 8+ messages in thread
From: Wolfgang Denk @ 2009-09-04 15:04 UTC (permalink / raw)
To: u-boot
Dear Minkyu Kang,
In message <1f3430fb0909040747l5ef9b87wdef31942377c4df0@mail.gmail.com> you wrote:
>
> > Why is this all written in assembly code?
> >
> > Cannot we use C instead?
>
> Because of this function called by lowlevel_init (before jumping to C code).
> Any problem?
> If so, we can merge to lowlevel_init.S.
No, it's not a problem. I just wanted to understand the reasons.
Normally we try to avoid assembly as much as possible, so I just
wanted to make sure there was a good reason for using it here.
> Thanks for review.
You are welcome.
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
The shortest unit of time in the multiverse is the News York Second,
defined as the period of time between the traffic lights turning
green and the cab behind you honking.
- Terry Pratchett, _Lords and Ladies_
^ permalink raw reply [flat|nested] 8+ messages in thread
* [U-Boot] [PATCH 4/4] s5pc1xx: add support SMDKC100 board
2009-09-04 8:22 [U-Boot] [PATCH 4/4] s5pc1xx: add support SMDKC100 board Minkyu Kang
2009-09-04 10:56 ` Wolfgang Denk
@ 2009-09-04 22:39 ` Jean-Christophe PLAGNIOL-VILLARD
2009-09-08 1:46 ` Minkyu Kang
1 sibling, 1 reply; 8+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2009-09-04 22:39 UTC (permalink / raw)
To: u-boot
> diff --git a/board/samsung/smdkc100/onenand.c b/board/samsung/smdkc100/onenand.c
I guess this is not board specific but soc specific
so please move it to drivers/mtd/onenand/
> new file mode 100644
> index 0000000..75bb8a9
> --- /dev/null
> +++ b/board/samsung/smdkc100/onenand.c
> @@ -0,0 +1,98 @@
> +/*
> + * Copyright (C) 2008-2009 Samsung Electronics
> + * Kyungmin Park <kyungmin.park@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 <linux/mtd/compat.h>
> +#include <linux/mtd/mtd.h>
> +#include <linux/mtd/onenand.h>
> +
> +#include <onenand_uboot.h>
> +
> +#include <samsung_onenand.h>
> +
> +#include <asm/io.h>
> +#include <asm/arch/clock.h>
> +
> +extern void s3c_onenand_init(struct mtd_info *);
please move this to a header
> +
> diff --git a/board/samsung/smdkc100/smdkc100.c b/board/samsung/smdkc100/smdkc100.c
> new file mode 100644
> index 0000000..4539ced
> --- /dev/null
> diff --git a/board/samsung/smdkc100/u-boot.lds b/board/samsung/smdkc100/u-boot.lds
no need please remove
> new file mode 100644
> index 0000000..27f8201
> --- /dev/null
> +/***********************************************************
> +
> +#define CONFIG_RAMDISK_BOOT "root=/dev/ram0 rw rootfstype=ext2" \
> + " console=ttySAC0,115200n8" \
> + " mem=80M"
why do you restrict the memsize of the kernel?
> +
> +#define CONFIG_COMMON_BOOT "console=ttySAC0,115200n8" \
> + " mem=128M " \
> + " " MTDPARTS_DEFAULT
> +
> +
> +#define CONFIG_ENV_OVERWRITE
> +#define CONFIG_EXTRA_ENV_SETTINGS \
> + CONFIG_UPDATEB \
> + "updatek=onenand erase 0x60000 0x300000;" \
> + " onenand write 0x31008000 0x60000 0x300000\0" \
> + "updateu=onenand erase block 147-4095;" \
> + " onenand write 0x32000000 0x1260000 0x8C0000\0" \
something like this will be more readable
"updatek=" \
"onenand erase 0x60000 0x300000; " \
"onenand write 0x31008000 0x60000 0x300000\0" \
"updateu=" \
"onenand erase block 147-4095; " \
"onenand write 0x32000000 0x1260000 0x8C0000\0" \
"bootk=" \
"onenand read 0x30007FC0 0x60000 0x300000; " \
"bootm 0x30007FC0\0" \
"flashboot=" \
"set bootargs " \
"root=/dev/mtdblock${bootblock} " \
"rootfstype=${rootfstype} " \
"ubi.mtd=${ubiblock} ${opts} " \
CONFIG_COMMON_BOOT "; " \
"run bootk\0" \
> + "ubifsboot=set bootargs root=ubi0!rootfs rootfstype=ubifs" \
> + " ubi.mtd=${ubiblock} ${opts} " CONFIG_COMMON_BOOT "; run bootk\0" \
> + "boottrace=setenv opts initcall_debug; run bootcmd\0" \
> + "android=set bootargs root=ubi0!ramdisk ubi.mtd=${ubiblock}" \
> + " rootfstype=ubifs init=/init.sh " CONFIG_COMMON_BOOT "; run bootk\0" \
> + "nfsboot=set bootargs root=/dev/nfs ubi.mtd=${ubiblock}" \
> + " nfsroot=${nfsroot},nolock ip=${ipaddr}:${serverip}:${gatewayip}:" \
> + "${netmask}:nowplus:usb0:off " CONFIG_COMMON_BOOT "; run bootk\0" \
> + "ramboot=set bootargs " CONFIG_RAMDISK_BOOT \
> + " initrd=0x33000000,8M ramdisk=8192\0" \
> + "rootfstype=cramfs\0" \
> + "mtdparts=" MTDPARTS_DEFAULT "\0" \
> + "meminfo=mem=128M\0" \
> + "nfsroot=/nfsroot/arm\0" \
> + "bootblock=5\0" \
> + "ubiblock=4\0" \
> + "ubi=enabled"
> +
> +/*
Best Regards,
J.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [U-Boot] [PATCH 4/4] s5pc1xx: add support SMDKC100 board
2009-09-04 22:39 ` Jean-Christophe PLAGNIOL-VILLARD
@ 2009-09-08 1:46 ` Minkyu Kang
0 siblings, 0 replies; 8+ messages in thread
From: Minkyu Kang @ 2009-09-08 1:46 UTC (permalink / raw)
To: u-boot
Dear Jean-Christophe
2009/9/5 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>:
>> diff --git a/board/samsung/smdkc100/onenand.c b/board/samsung/smdkc100/onenand.c
> I guess this is not board specific but soc specific
> so please move it to drivers/mtd/onenand/
no, this is related with onenand clock.
It is board specific.
>> new file mode 100644
>> index 0000000..75bb8a9
>> --- /dev/null
>> +++ b/board/samsung/smdkc100/onenand.c
>> @@ -0,0 +1,98 @@
>> +/*
>> + * ?Copyright (C) 2008-2009 Samsung Electronics
>> + * ?Kyungmin Park <kyungmin.park@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 <linux/mtd/compat.h>
>> +#include <linux/mtd/mtd.h>
>> +#include <linux/mtd/onenand.h>
>> +
>> +#include <onenand_uboot.h>
>> +
>> +#include <samsung_onenand.h>
>> +
>> +#include <asm/io.h>
>> +#include <asm/arch/clock.h>
>> +
>> +extern void s3c_onenand_init(struct mtd_info *);
> please move this to a header
agreed
>> +
>> diff --git a/board/samsung/smdkc100/smdkc100.c b/board/samsung/smdkc100/smdkc100.c
>> new file mode 100644
>> index 0000000..4539ced
>> --- /dev/null
>> diff --git a/board/samsung/smdkc100/u-boot.lds b/board/samsung/smdkc100/u-boot.lds
> no need please remove
>> new file mode 100644
>> index 0000000..27f8201
>> --- /dev/null
>> +/***********************************************************
>
>> +
>> +#define CONFIG_RAMDISK_BOOT ?"root=/dev/ram0 rw rootfstype=ext2" \
>> + ? ? ? ? ? ? " console=ttySAC0,115200n8" \
>> + ? ? ? ? ? ? " mem=80M"
> why do you restrict the memsize of the kernel?
>> +
>> +#define CONFIG_COMMON_BOOT ? "console=ttySAC0,115200n8" \
>> + ? ? ? ? ? ? " mem=128M " \
>> + ? ? ? ? ? ? " " MTDPARTS_DEFAULT
>> +
>> +
>> +#define CONFIG_ENV_OVERWRITE
>> +#define CONFIG_EXTRA_ENV_SETTINGS ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\
>> + ? ? CONFIG_UPDATEB \
>> + ? ? "updatek=onenand erase 0x60000 0x300000;" \
>> + ? ? " onenand write 0x31008000 0x60000 0x300000\0" \
>> + ? ? "updateu=onenand erase block 147-4095;" \
>> + ? ? " onenand write 0x32000000 0x1260000 0x8C0000\0" \
> something like this will be more readable
ok.
> ? ? ? ?"updatek=" ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\
> ? ? ? ? ? ? ? ?"onenand erase 0x60000 0x300000; " ? ? ? ? ? ? ?\
> ? ? ? ? ? ? ? ?"onenand write 0x31008000 0x60000 0x300000\0" ? \
> ? ? ? ?"updateu=" ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\
> ? ? ? ? ? ? ? ?"onenand erase block 147-4095; " ? ? ? ? ? ? ? ?\
> ? ? ? ? ? ? ? ?"onenand write 0x32000000 0x1260000 0x8C0000\0" \
> ? ? ? ?"bootk=" ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\
> ? ? ? ? ? ? ? ?"onenand read 0x30007FC0 0x60000 0x300000; " ? ?\
> ? ? ? ? ? ? ? ?"bootm 0x30007FC0\0" ? ? ? ? ? ? ? ? ? ? ? ? ? ?\
> ? ? ? ?"flashboot=" ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\
> ? ? ? ? ? ? ? ?"set bootargs " ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? \
> ? ? ? ? ? ? ? ? ? ? ? ?"root=/dev/mtdblock${bootblock} " ? ? ? \
> ? ? ? ? ? ? ? ? ? ? ? ?"rootfstype=${rootfstype} " ? ? ? ? ? ? \
> ? ? ? ? ? ? ? ? ? ? ? ?"ubi.mtd=${ubiblock} ${opts} " ? ? ? ? ?\
> ? ? ? ? ? ? ? ? ? ? ? ?CONFIG_COMMON_BOOT "; " ? ? ? ? ? ? ? ? \
> ? ? ? ? ? ? ? ?"run bootk\0" ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? \
>> + ? ? "ubifsboot=set bootargs root=ubi0!rootfs rootfstype=ubifs" \
>> + ? ? ?" ubi.mtd=${ubiblock} ${opts} " CONFIG_COMMON_BOOT "; run bootk\0" \
>> + ? ? "boottrace=setenv opts initcall_debug; run bootcmd\0" \
>> + ? ? "android=set bootargs root=ubi0!ramdisk ubi.mtd=${ubiblock}" \
>> + ? ? ?" rootfstype=ubifs init=/init.sh " CONFIG_COMMON_BOOT "; run bootk\0" \
>> + ? ? "nfsboot=set bootargs root=/dev/nfs ubi.mtd=${ubiblock}" \
>> + ? ? ?" nfsroot=${nfsroot},nolock ip=${ipaddr}:${serverip}:${gatewayip}:" \
>> + ? ? ?"${netmask}:nowplus:usb0:off " CONFIG_COMMON_BOOT "; run bootk\0" \
>> + ? ? "ramboot=set bootargs " CONFIG_RAMDISK_BOOT \
>> + ? ? ?" initrd=0x33000000,8M ramdisk=8192\0" \
>> + ? ? "rootfstype=cramfs\0" \
>> + ? ? "mtdparts=" MTDPARTS_DEFAULT "\0" \
>> + ? ? "meminfo=mem=128M\0" \
>> + ? ? "nfsroot=/nfsroot/arm\0" \
>> + ? ? "bootblock=5\0" \
>> + ? ? "ubiblock=4\0" \
>> + ? ? "ubi=enabled"
>> +
>> +/*
> Best Regards,
> J.
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>
Thanks for review
Minkyu Kang
--
from. prom.
www.promsoft.net
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2009-09-08 1:46 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-09-04 8:22 [U-Boot] [PATCH 4/4] s5pc1xx: add support SMDKC100 board Minkyu Kang
2009-09-04 10:56 ` Wolfgang Denk
2009-09-04 11:09 ` Kyungmin Park
2009-09-04 11:25 ` Wolfgang Denk
2009-09-04 14:47 ` Minkyu Kang
2009-09-04 15:04 ` Wolfgang Denk
2009-09-04 22:39 ` Jean-Christophe PLAGNIOL-VILLARD
2009-09-08 1:46 ` Minkyu Kang
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.