public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] Add support for the KwikByte KBOC OMAP35xx board
@ 2009-07-09 23:03 christian at kwikbyte.com
  2009-07-10  1:06 ` Nishanth Menon
  0 siblings, 1 reply; 15+ messages in thread
From: christian at kwikbyte.com @ 2009-07-09 23:03 UTC (permalink / raw)
  To: u-boot

Subject: [PATCH] Add support for the KwikByte KBOC OMAP35xx board

Signed-off-by: Christian Owens <christian@kwikbyte.com>
---
  MAINTAINERS                  |    4 +
  MAKEALL                      |    1 +
  Makefile                     |    3 +
  board/omap3/common/Makefile  |    1 +
  board/omap3/kboc/Makefile    |   49 ++++++
  board/omap3/kboc/config.mk   |   33 ++++
  board/omap3/kboc/kboc.c      |  106 ++++++++++++
  board/omap3/kboc/kboc.h      |  382  
++++++++++++++++++++++++++++++++++++++++++
  include/configs/omap3_kboc.h |  317 +++++++++++++++++++++++++++++++++++
  9 files changed, 896 insertions(+), 0 deletions(-)
  create mode 100644 board/omap3/kboc/Makefile
  create mode 100644 board/omap3/kboc/config.mk
  create mode 100644 board/omap3/kboc/kboc.c
  create mode 100644 board/omap3/kboc/kboc.h
  create mode 100644 include/configs/omap3_kboc.h

diff --git a/MAINTAINERS b/MAINTAINERS
index 0041112..cc55df9 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -686,6 +686,10 @@ Alex Z
  	lart		SA1100
  	dnp1110		SA1110

+Christian Owens <christian@kwikbyte.com>
+
+	omap3_kboc	ARM CORTEX-A8 (OMAP35xx SoC)
+
  -------------------------------------------------------------------------

  Unknown / orphaned boards:
diff --git a/MAKEALL b/MAKEALL
index 41f1445..ac0c5d9 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -572,6 +572,7 @@ LIST_ARM_CORTEX_A8="		\
  	omap3_pandora		\
  	omap3_zoom1		\
  	omap3_zoom2		\
+	omap3_kboc		\
  "

  #########################################################################
diff --git a/Makefile b/Makefile
index 2a06440..b204917 100644
--- a/Makefile
+++ b/Makefile
@@ -3040,6 +3040,9 @@ omap3_zoom1_config :	unconfig
  omap3_zoom2_config :	unconfig
  	@$(MKCONFIG) $(@:_config=) arm arm_cortexa8 zoom2 omap3 omap3

+omap3_kboc_config :	unconfig
+	@$(MKCONFIG) $(@:_config=) arm arm_cortexa8 kboc omap3 omap3
+
  #########################################################################
  ## XScale Systems
  #########################################################################
diff --git a/board/omap3/common/Makefile b/board/omap3/common/Makefile
index b8a0b14..4f7a20b 100644
--- a/board/omap3/common/Makefile
+++ b/board/omap3/common/Makefile
@@ -34,6 +34,7 @@ COBJS-$(CONFIG_OMAP3_OVERO) += power.o
  COBJS-$(CONFIG_OMAP3_PANDORA) += power.o
  COBJS-$(CONFIG_OMAP3_ZOOM1) += power.o
  COBJS-$(CONFIG_OMAP3_ZOOM2) += power.o
+COBJS-$(CONFIG_OMAP3_KBOC) += power.o

  COBJS	:= $(COBJS-y)
  SRCS	:= $(COBJS:.o=.c)
diff --git a/board/omap3/kboc/Makefile b/board/omap3/kboc/Makefile
new file mode 100644
index 0000000..2c77444
--- /dev/null
+++ b/board/omap3/kboc/Makefile
@@ -0,0 +1,49 @@
+#
+# (C) Copyright 2000, 2001, 2002
+# Wolfgang Denk, DENX Software Engineering, wd at 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	:= kboc.o
+
+SRCS	:= $(COBJS:.o=.c)
+OBJS	:= $(addprefix $(obj),$(COBJS))
+
+$(LIB):	$(obj).depend $(OBJS)
+	$(AR) $(ARFLAGS) $@ $(OBJS)
+
+clean:
+	rm -f $(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/omap3/kboc/config.mk b/board/omap3/kboc/config.mk
new file mode 100644
index 0000000..879b2e2
--- /dev/null
+++ b/board/omap3/kboc/config.mk
@@ -0,0 +1,33 @@
+#
+# (C) Copyright 2006
+# Texas Instruments, <www.ti.com>
+#
+# Beagle Board uses OMAP3 (ARM-CortexA8) cpu
+# see http://www.ti.com/ for more information on Texas Instruments
+#
+# 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
+#
+# Physical Address:
+# 8000'0000 (bank0)
+# A000/0000 (bank1)
+# Linux-Kernel is expected to be at 8000'8000, entry 8000'8000
+# (mem base + reserved)
+
+# For use with external or internal boots.
+TEXT_BASE = 0x80e80000
diff --git a/board/omap3/kboc/kboc.c b/board/omap3/kboc/kboc.c
new file mode 100644
index 0000000..5fc9b96
--- /dev/null
+++ b/board/omap3/kboc/kboc.c
@@ -0,0 +1,106 @@
+/*
+ * (C) Copyright 2009
+ * KwikByte <www.kwikbyte.com>
+ *
+ * Author :
+ *  Christian Owens <christian@kwikbyte.com>
+ *
+ * Derived from the following:
+ *
+ * (C) Copyright 2004-2008
+ * Texas Instruments, <www.ti.com>
+ *
+ * Author :
+ *	Sunil Kumar <sunilsaini05@gmail.com>
+ *	Shashi Ranjan <shashiranjanmca05@gmail.com>
+ *
+ * Derived from Beagle Board and 3430 SDP code by
+ *	Richard Woodruff <r-woodruff2@ti.com>
+ *	Syed Mohammed Khasim <khasim@ti.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/mux.h>
+#include <asm/arch/sys_proto.h>
+#include <asm/arch/gpio.h>
+#include <asm/mach-types.h>
+#include "kboc.h"
+
+/*
+ * Routine: board_init
+ * Description: Early hardware init.
+ */
+int board_init(void)
+{
+	DECLARE_GLOBAL_DATA_PTR;
+
+	gpmc_init(); /* in SRAM or SDRAM, finish GPMC */
+	/* board id for Linux */
+	gd->bd->bi_arch_number = MACH_TYPE_OMAP3_KBOC;
+	/* boot param addr */
+	gd->bd->bi_boot_params = (OMAP34XX_SDRC_CS0 + 0x100);
+
+	return 0;
+}
+
+/*
+ * Routine: misc_init_r
+ * Description: Configure board specific parts
+ */
+int misc_init_r(void)
+{
+	gpio_t *gpio1_base = (gpio_t *)OMAP34XX_GPIO1_BASE;
+	gpio_t *gpio5_base = (gpio_t *)OMAP34XX_GPIO5_BASE;
+	gpio_t *gpio6_base = (gpio_t *)OMAP34XX_GPIO6_BASE;
+
+	power_init_r();
+
+	/* Configure GPIOs to output */
+	writel(~(GPIO23 | GPIO17 | GPIO12 | GPIO11 | GPIO10 | GPIO8 | GPIO2),
+		&gpio6_base->oe);
+	writel(~(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 |
+		GPIO13 | GPIO12), &gpio5_base->oe);
+	writel(~(GPIO22 | GPIO13), &gpio1_base->oe);
+
+	/* Set GPIOs */
+	writel(GPIO23 | GPIO17 | GPIO10 | GPIO8 | GPIO2,
+		&gpio6_base->setdataout);
+	writel(GPIO31 | GPIO29 | GPIO28 | GPIO22 | GPIO21 | GPIO13 | GPIO12,
+		&gpio5_base->setdataout);
+	writel(GPIO22 | GPIO13,
+		&gpio1_base->setdataout);
+
+	dieid_num_r();
+
+	return 0;
+}
+
+/*
+ * Routine: set_muxconf_regs
+ * Description: Setting up the configuration Mux registers specific to the
+ *		hardware. Many pins need to be moved from protect to primary
+ *		mode.
+ */
+void set_muxconf_regs(void)
+{
+	MUX_KBOC();
+}
diff --git a/board/omap3/kboc/kboc.h b/board/omap3/kboc/kboc.h
new file mode 100644
index 0000000..41c3b9e
--- /dev/null
+++ b/board/omap3/kboc/kboc.h
@@ -0,0 +1,382 @@
+/*
+ * (C) Copyright 2009
+ * KwikByte <www.kwikbyte.com>
+ *
+ * Author :
+ *  Christian Owens <christian@kwikbyte.com>
+ *
+ * Derived from the following:
+ *
+ * (C) Copyright 2008
+ * Dirk Behme <dirk.behme@gmail.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
+ */
+#ifndef _KBOC_H_
+#define _KBOC_H_
+
+const omap3_sysinfo sysinfo = {
+	DDR_STACKED,
+	"OMAP3 KBOC board",
+#if defined(CONFIG_ENV_IS_IN_ONENAND)
+	"OneNAND",
+#else
+	"NAND",
+#endif
+};
+
+/*
+ * IEN  - Input Enable
+ * IDIS - Input Disable
+ * PTD  - Pull type Down
+ * PTU  - Pull type Up
+ * DIS  - Pull type selection is inactive
+ * EN   - Pull type selection is active
+ * M0   - Mode 0
+ * The commented string gives the final mux configuration for that pin
+ */
+#define MUX_KBOC() \
+ /*SDRC*/\
+ MUX_VAL(CP(SDRC_D0),		(IEN  | PTD | DIS | M0)) /*SDRC_D0*/\
+ MUX_VAL(CP(SDRC_D1),		(IEN  | PTD | DIS | M0)) /*SDRC_D1*/\
+ MUX_VAL(CP(SDRC_D2),		(IEN  | PTD | DIS | M0)) /*SDRC_D2*/\
+ MUX_VAL(CP(SDRC_D3),		(IEN  | PTD | DIS | M0)) /*SDRC_D3*/\
+ MUX_VAL(CP(SDRC_D4),		(IEN  | PTD | DIS | M0)) /*SDRC_D4*/\
+ MUX_VAL(CP(SDRC_D5),		(IEN  | PTD | DIS | M0)) /*SDRC_D5*/\
+ MUX_VAL(CP(SDRC_D6),		(IEN  | PTD | DIS | M0)) /*SDRC_D6*/\
+ MUX_VAL(CP(SDRC_D7),		(IEN  | PTD | DIS | M0)) /*SDRC_D7*/\
+ MUX_VAL(CP(SDRC_D8),		(IEN  | PTD | DIS | M0)) /*SDRC_D8*/\
+ MUX_VAL(CP(SDRC_D9),		(IEN  | PTD | DIS | M0)) /*SDRC_D9*/\
+ MUX_VAL(CP(SDRC_D10),		(IEN  | PTD | DIS | M0)) /*SDRC_D10*/\
+ MUX_VAL(CP(SDRC_D11),		(IEN  | PTD | DIS | M0)) /*SDRC_D11*/\
+ MUX_VAL(CP(SDRC_D12),		(IEN  | PTD | DIS | M0)) /*SDRC_D12*/\
+ MUX_VAL(CP(SDRC_D13),		(IEN  | PTD | DIS | M0)) /*SDRC_D13*/\
+ MUX_VAL(CP(SDRC_D14),		(IEN  | PTD | DIS | M0)) /*SDRC_D14*/\
+ MUX_VAL(CP(SDRC_D15),		(IEN  | PTD | DIS | M0)) /*SDRC_D15*/\
+ MUX_VAL(CP(SDRC_D16),		(IEN  | PTD | DIS | M0)) /*SDRC_D16*/\
+ MUX_VAL(CP(SDRC_D17),		(IEN  | PTD | DIS | M0)) /*SDRC_D17*/\
+ MUX_VAL(CP(SDRC_D18),		(IEN  | PTD | DIS | M0)) /*SDRC_D18*/\
+ MUX_VAL(CP(SDRC_D19),		(IEN  | PTD | DIS | M0)) /*SDRC_D19*/\
+ MUX_VAL(CP(SDRC_D20),		(IEN  | PTD | DIS | M0)) /*SDRC_D20*/\
+ MUX_VAL(CP(SDRC_D21),		(IEN  | PTD | DIS | M0)) /*SDRC_D21*/\
+ MUX_VAL(CP(SDRC_D22),		(IEN  | PTD | DIS | M0)) /*SDRC_D22*/\
+ MUX_VAL(CP(SDRC_D23),		(IEN  | PTD | DIS | M0)) /*SDRC_D23*/\
+ MUX_VAL(CP(SDRC_D24),		(IEN  | PTD | DIS | M0)) /*SDRC_D24*/\
+ MUX_VAL(CP(SDRC_D25),		(IEN  | PTD | DIS | M0)) /*SDRC_D25*/\
+ MUX_VAL(CP(SDRC_D26),		(IEN  | PTD | DIS | M0)) /*SDRC_D26*/\
+ MUX_VAL(CP(SDRC_D27),		(IEN  | PTD | DIS | M0)) /*SDRC_D27*/\
+ MUX_VAL(CP(SDRC_D28),		(IEN  | PTD | DIS | M0)) /*SDRC_D28*/\
+ MUX_VAL(CP(SDRC_D29),		(IEN  | PTD | DIS | M0)) /*SDRC_D29*/\
+ MUX_VAL(CP(SDRC_D30),		(IEN  | PTD | DIS | M0)) /*SDRC_D30*/\
+ MUX_VAL(CP(SDRC_D31),		(IEN  | PTD | DIS | M0)) /*SDRC_D31*/\
+ MUX_VAL(CP(SDRC_CLK),		(IEN  | PTD | DIS | M0)) /*SDRC_CLK*/\
+ MUX_VAL(CP(SDRC_DQS0),		(IEN  | PTD | DIS | M0)) /*SDRC_DQS0*/\
+ MUX_VAL(CP(SDRC_DQS1),		(IEN  | PTD | DIS | M0)) /*SDRC_DQS1*/\
+ MUX_VAL(CP(SDRC_DQS2),		(IEN  | PTD | DIS | M0)) /*SDRC_DQS2*/\
+ MUX_VAL(CP(SDRC_DQS3),		(IEN  | PTD | DIS | M0)) /*SDRC_DQS3*/\
+ /*GPMC*/\
+ MUX_VAL(CP(GPMC_A1),		(IDIS | PTD | DIS | M0)) /*GPMC_A1*/\
+ MUX_VAL(CP(GPMC_A2),		(IDIS | PTD | DIS | M0)) /*GPMC_A2*/\
+ MUX_VAL(CP(GPMC_A3),		(IDIS | PTD | DIS | M0)) /*GPMC_A3*/\
+ MUX_VAL(CP(GPMC_A4),		(IDIS | PTD | DIS | M0)) /*GPMC_A4*/\
+ MUX_VAL(CP(GPMC_A5),		(IDIS | PTD | DIS | M0)) /*GPMC_A5*/\
+ MUX_VAL(CP(GPMC_A6),		(IDIS | PTD | DIS | M0)) /*GPMC_A6*/\
+ MUX_VAL(CP(GPMC_A7),		(IDIS | PTD | DIS | M0)) /*GPMC_A7*/\
+ MUX_VAL(CP(GPMC_A8),		(IDIS | PTD | DIS | M0)) /*GPMC_A8*/\
+ MUX_VAL(CP(GPMC_A9),		(IDIS | PTD | DIS | M0)) /*GPMC_A9*/\
+ MUX_VAL(CP(GPMC_A10),		(IDIS | PTD | DIS | M0)) /*GPMC_A10*/\
+ MUX_VAL(CP(GPMC_D0),		(IEN  | PTD | DIS | M0)) /*GPMC_D0*/\
+ MUX_VAL(CP(GPMC_D1),		(IEN  | PTD | DIS | M0)) /*GPMC_D1*/\
+ MUX_VAL(CP(GPMC_D2),		(IEN  | PTD | DIS | M0)) /*GPMC_D2*/\
+ MUX_VAL(CP(GPMC_D3),		(IEN  | PTD | DIS | M0)) /*GPMC_D3*/\
+ MUX_VAL(CP(GPMC_D4),		(IEN  | PTD | DIS | M0)) /*GPMC_D4*/\
+ MUX_VAL(CP(GPMC_D5),		(IEN  | PTD | DIS | M0)) /*GPMC_D5*/\
+ MUX_VAL(CP(GPMC_D6),		(IEN  | PTD | DIS | M0)) /*GPMC_D6*/\
+ MUX_VAL(CP(GPMC_D7),		(IEN  | PTD | DIS | M0)) /*GPMC_D7*/\
+ MUX_VAL(CP(GPMC_D8),		(IEN  | PTD | DIS | M0)) /*GPMC_D8*/\
+ MUX_VAL(CP(GPMC_D9),		(IEN  | PTD | DIS | M0)) /*GPMC_D9*/\
+ MUX_VAL(CP(GPMC_D10),		(IEN  | PTD | DIS | M0)) /*GPMC_D10*/\
+ MUX_VAL(CP(GPMC_D11),		(IEN  | PTD | DIS | M0)) /*GPMC_D11*/\
+ MUX_VAL(CP(GPMC_D12),		(IEN  | PTD | DIS | M0)) /*GPMC_D12*/\
+ MUX_VAL(CP(GPMC_D13),		(IEN  | PTD | DIS | M0)) /*GPMC_D13*/\
+ MUX_VAL(CP(GPMC_D14),		(IEN  | PTD | DIS | M0)) /*GPMC_D14*/\
+ MUX_VAL(CP(GPMC_D15),		(IEN  | PTD | DIS | M0)) /*GPMC_D15*/\
+ MUX_VAL(CP(GPMC_NCS0),		(IDIS | PTU | EN  | M0)) /*GPMC_nCS0*/\
+ MUX_VAL(CP(GPMC_NCS1),		(IDIS | PTU | EN  | M0)) /*GPMC_nCS1*/\
+ MUX_VAL(CP(GPMC_NCS2),		(IDIS | PTU | EN  | M0)) /*GPMC_nCS2*/\
+ MUX_VAL(CP(GPMC_NCS3),		(IDIS | PTU | EN  | M0)) /*GPMC_nCS3*/\
+ MUX_VAL(CP(GPMC_NCS4),		(IDIS | PTU | EN  | M0)) /*GPMC_nCS4*/\
+ MUX_VAL(CP(GPMC_NCS5),		(IDIS | PTD | DIS | M0)) /*GPMC_nCS5*/\
+ MUX_VAL(CP(GPMC_NCS6),		(IEN  | PTD | DIS | M1)) /*SYS_nDMA_REQ2*/\
+ MUX_VAL(CP(GPMC_NCS7),		(IEN  | PTU | EN  | M1)) /*SYS_nDMA_REQ3*/\
+ MUX_VAL(CP(GPMC_NBE1),		(IEN  | PTD | DIS | M0)) /*GPMC_nBE1*/\
+ MUX_VAL(CP(GPMC_WAIT2),	(IEN  | PTU | EN  | M0)) /*GPMC_WAIT2*/\
+ MUX_VAL(CP(GPMC_WAIT3),	(IEN  | PTU | EN  | M0)) /*GPMC_WAIT3*/\
+ MUX_VAL(CP(GPMC_CLK),		(IDIS | PTD | DIS | M0)) /*GPMC_CLK*/\
+ MUX_VAL(CP(GPMC_NADV_ALE),	(IDIS | PTD | DIS | M0)) /*GPMC_nADV_ALE*/\
+ MUX_VAL(CP(GPMC_NOE),		(IDIS | PTD | DIS | M0)) /*GPMC_nOE*/\
+ MUX_VAL(CP(GPMC_NWE),		(IDIS | PTD | DIS | M0)) /*GPMC_nWE*/\
+ MUX_VAL(CP(GPMC_NBE0_CLE),	(IDIS | PTD | DIS | M0)) /*GPMC_nBE0_CLE*/\
+ MUX_VAL(CP(GPMC_NWP),		(IEN  | PTD | DIS | M0)) /*GPMC_nWP*/\
+ MUX_VAL(CP(GPMC_WAIT0),	(IEN  | PTU | EN  | M0)) /*GPMC_WAIT0*/\
+ MUX_VAL(CP(GPMC_WAIT1),	(IEN  | PTU | EN  | M0)) /*GPMC_WAIT1*/\
+ /*DSS*/\
+ MUX_VAL(CP(DSS_PCLK),		(IDIS | PTD | DIS | M0)) /*DSS_PCLK*/\
+ MUX_VAL(CP(DSS_HSYNC),		(IDIS | PTD | DIS | M0)) /*DSS_HSYNC*/\
+ MUX_VAL(CP(DSS_VSYNC),		(IDIS | PTD | DIS | M0)) /*DSS_VSYNC*/\
+ MUX_VAL(CP(DSS_ACBIAS),	(IDIS | PTD | DIS | M0)) /*DSS_ACBIAS*/\
+ MUX_VAL(CP(DSS_DATA0),		(IDIS | PTD | DIS | M0)) /*DSS_DATA0*/\
+ MUX_VAL(CP(DSS_DATA1),		(IDIS | PTD | DIS | M0)) /*DSS_DATA1*/\
+ MUX_VAL(CP(DSS_DATA2),		(IDIS | PTD | DIS | M0)) /*DSS_DATA2*/\
+ MUX_VAL(CP(DSS_DATA3),		(IDIS | PTD | DIS | M0)) /*DSS_DATA3*/\
+ MUX_VAL(CP(DSS_DATA4),		(IDIS | PTD | DIS | M0)) /*DSS_DATA4*/\
+ MUX_VAL(CP(DSS_DATA5),		(IDIS | PTD | DIS | M0)) /*DSS_DATA5*/\
+ MUX_VAL(CP(DSS_DATA6),		(IDIS | PTD | DIS | M0)) /*DSS_DATA6*/\
+ MUX_VAL(CP(DSS_DATA7),		(IDIS | PTD | DIS | M0)) /*DSS_DATA7*/\
+ MUX_VAL(CP(DSS_DATA8),		(IDIS | PTD | DIS | M0)) /*DSS_DATA8*/\
+ MUX_VAL(CP(DSS_DATA9),		(IDIS | PTD | DIS | M0)) /*DSS_DATA9*/\
+ MUX_VAL(CP(DSS_DATA10),	(IDIS | PTD | DIS | M0)) /*DSS_DATA10*/\
+ MUX_VAL(CP(DSS_DATA11),	(IDIS | PTD | DIS | M0)) /*DSS_DATA11*/\
+ MUX_VAL(CP(DSS_DATA12),	(IDIS | PTD | DIS | M0)) /*DSS_DATA12*/\
+ MUX_VAL(CP(DSS_DATA13),	(IDIS | PTD | DIS | M0)) /*DSS_DATA13*/\
+ MUX_VAL(CP(DSS_DATA14),	(IDIS | PTD | DIS | M0)) /*DSS_DATA14*/\
+ MUX_VAL(CP(DSS_DATA15),	(IDIS | PTD | DIS | M0)) /*DSS_DATA15*/\
+ MUX_VAL(CP(DSS_DATA16),	(IDIS | PTD | DIS | M0)) /*DSS_DATA16*/\
+ MUX_VAL(CP(DSS_DATA17),	(IDIS | PTD | DIS | M0)) /*DSS_DATA17*/\
+ MUX_VAL(CP(DSS_DATA18),	(IDIS | PTD | DIS | M0)) /*DSS_DATA18*/\
+ MUX_VAL(CP(DSS_DATA19),	(IDIS | PTD | DIS | M0)) /*DSS_DATA19*/\
+ MUX_VAL(CP(DSS_DATA20),	(IDIS | PTD | DIS | M0)) /*DSS_DATA20*/\
+ MUX_VAL(CP(DSS_DATA21),	(IDIS | PTD | DIS | M0)) /*DSS_DATA21*/\
+ MUX_VAL(CP(DSS_DATA22),	(IDIS | PTD | DIS | M0)) /*DSS_DATA22*/\
+ MUX_VAL(CP(DSS_DATA23),	(IDIS | PTD | DIS | M0)) /*DSS_DATA23*/\
+ /*CAMERA*/\
+ MUX_VAL(CP(CAM_HS),		(IEN  | PTU | EN  | M0)) /*CAM_HS */\
+ MUX_VAL(CP(CAM_VS),		(IEN  | PTU | EN  | M0)) /*CAM_VS */\
+ MUX_VAL(CP(CAM_XCLKA),		(IDIS | PTD | DIS | M0)) /*CAM_XCLKA*/\
+ MUX_VAL(CP(CAM_PCLK),		(IEN  | PTU | EN  | M0)) /*CAM_PCLK*/\
+ MUX_VAL(CP(CAM_FLD),		(IDIS | PTD | DIS | M4)) /*GPIO_98*/\
+ MUX_VAL(CP(CAM_D0),		(IEN  | PTD | DIS | M0)) /*CAM_D0*/\
+ MUX_VAL(CP(CAM_D1),		(IEN  | PTD | DIS | M0)) /*CAM_D1*/\
+ MUX_VAL(CP(CAM_D2),		(IEN  | PTD | DIS | M0)) /*CAM_D2*/\
+ MUX_VAL(CP(CAM_D3),		(IEN  | PTD | DIS | M0)) /*CAM_D3*/\
+ MUX_VAL(CP(CAM_D4),		(IEN  | PTD | DIS | M0)) /*CAM_D4*/\
+ MUX_VAL(CP(CAM_D5),		(IEN  | PTD | DIS | M0)) /*CAM_D5*/\
+ MUX_VAL(CP(CAM_D6),		(IEN  | PTD | DIS | M0)) /*CAM_D6*/\
+ MUX_VAL(CP(CAM_D7),		(IEN  | PTD | DIS | M0)) /*CAM_D7*/\
+ MUX_VAL(CP(CAM_D8),		(IEN  | PTD | DIS | M0)) /*CAM_D8*/\
+ MUX_VAL(CP(CAM_D9),		(IEN  | PTD | DIS | M0)) /*CAM_D9*/\
+ MUX_VAL(CP(CAM_D10),		(IEN  | PTD | DIS | M0)) /*CAM_D10*/\
+ MUX_VAL(CP(CAM_D11),		(IEN  | PTD | DIS | M0)) /*CAM_D11*/\
+ MUX_VAL(CP(CAM_XCLKB),		(IDIS | PTD | DIS | M0)) /*CAM_XCLKB*/\
+ MUX_VAL(CP(CAM_WEN),		(IEN  | PTD | DIS | M4)) /*GPIO_167*/\
+ MUX_VAL(CP(CAM_STROBE),	(IDIS | PTD | DIS | M0)) /*CAM_STROBE*/\
+ MUX_VAL(CP(CSI2_DX0),		(IEN  | PTD | DIS | M0)) /*CSI2_DX0*/\
+ MUX_VAL(CP(CSI2_DY0),		(IEN  | PTD | DIS | M0)) /*CSI2_DY0*/\
+ MUX_VAL(CP(CSI2_DX1),		(IEN  | PTD | DIS | M0)) /*CSI2_DX1*/\
+ MUX_VAL(CP(CSI2_DY1),		(IEN  | PTD | DIS | M0)) /*CSI2_DY1*/\
+ /*Audio Interface */\
+ MUX_VAL(CP(MCBSP2_FSX),	(IEN  | PTD | DIS | M0)) /*McBSP2_FSX*/\
+ MUX_VAL(CP(MCBSP2_CLKX),	(IEN  | PTD | DIS | M0)) /*McBSP2_CLKX*/\
+ MUX_VAL(CP(MCBSP2_DR),		(IEN  | PTD | DIS | M0)) /*McBSP2_DR*/\
+ MUX_VAL(CP(MCBSP2_DX),		(IDIS | PTD | DIS | M0)) /*McBSP2_DX*/\
+ /*Expansion card */\
+ MUX_VAL(CP(MMC1_CLK),		(IDIS | PTU | EN  | M0)) /*MMC1_CLK*/\
+ MUX_VAL(CP(MMC1_CMD),		(IEN  | PTU | EN  | M0)) /*MMC1_CMD*/\
+ MUX_VAL(CP(MMC1_DAT0),		(IEN  | PTU | EN  | M0)) /*MMC1_DAT0*/\
+ MUX_VAL(CP(MMC1_DAT1),		(IEN  | PTU | EN  | M0)) /*MMC1_DAT1*/\
+ MUX_VAL(CP(MMC1_DAT2),		(IEN  | PTU | EN  | M0)) /*MMC1_DAT2*/\
+ MUX_VAL(CP(MMC1_DAT3),		(IEN  | PTU | EN  | M0)) /*MMC1_DAT3*/\
+ MUX_VAL(CP(MMC1_DAT4),		(IEN  | PTU | EN  | M0)) /*MMC1_DAT4*/\
+ MUX_VAL(CP(MMC1_DAT5),		(IEN  | PTU | EN  | M0)) /*MMC1_DAT5*/\
+ MUX_VAL(CP(MMC1_DAT6),		(IEN  | PTU | EN  | M0)) /*MMC1_DAT6*/\
+ MUX_VAL(CP(MMC1_DAT7),		(IEN  | PTU | EN  | M0)) /*MMC1_DAT7*/\
+ /*Wireless LAN */\
+ MUX_VAL(CP(MMC2_CLK),		(IEN  | PTU | EN  | M4)) /*GPIO_130*/\
+ MUX_VAL(CP(MMC2_CMD),		(IEN  | PTU | EN  | M4)) /*GPIO_131*/\
+ MUX_VAL(CP(MMC2_DAT0),		(IEN  | PTU | EN  | M4)) /*GPIO_132*/\
+ MUX_VAL(CP(MMC2_DAT1),		(IEN  | PTU | EN  | M4)) /*GPIO_133*/\
+ MUX_VAL(CP(MMC2_DAT2),		(IEN  | PTU | EN  | M4)) /*GPIO_134*/\
+ MUX_VAL(CP(MMC2_DAT3),		(IEN  | PTU | EN  | M4)) /*GPIO_135*/\
+ MUX_VAL(CP(MMC2_DAT4),		(IEN  | PTU | EN  | M4)) /*GPIO_136*/\
+ MUX_VAL(CP(MMC2_DAT5),		(IEN  | PTU | EN  | M4)) /*GPIO_137*/\
+ MUX_VAL(CP(MMC2_DAT6),		(IEN  | PTU | EN  | M4)) /*GPIO_138*/\
+ MUX_VAL(CP(MMC2_DAT7),		(IEN  | PTU | EN  | M4)) /*GPIO_139*/\
+ /*Bluetooth*/\
+ MUX_VAL(CP(MCBSP3_DX),		(IEN  | PTD | DIS | M1)) /*UART2_CTS*/\
+ MUX_VAL(CP(MCBSP3_DR),		(IDIS | PTD | DIS | M1)) /*UART2_RTS*/\
+ MUX_VAL(CP(MCBSP3_CLKX),	(IDIS | PTD | DIS | M1)) /*UART2_TX*/\
+ MUX_VAL(CP(MCBSP3_FSX),	(IEN  | PTD | DIS | M1)) /*UART2_RX*/\
+ MUX_VAL(CP(UART2_CTS),		(IEN  | PTD | DIS | M4)) /*GPIO_144*/\
+ MUX_VAL(CP(UART2_RTS),		(IEN  | PTD | DIS | M4)) /*GPIO_145*/\
+ MUX_VAL(CP(UART2_TX),		(IEN  | PTD | DIS | M4)) /*GPIO_146*/\
+ MUX_VAL(CP(UART2_RX),		(IEN  | PTD | DIS | M4)) /*GPIO_147*/\
+ /*Modem Interface */\
+ MUX_VAL(CP(UART1_TX),		(IDIS | PTD | DIS | M0)) /*UART1_TX*/\
+ MUX_VAL(CP(UART1_RTS),		(IDIS | PTD | DIS | M4)) /*GPIO_149*/ \
+ MUX_VAL(CP(UART1_CTS),		(IDIS | PTD | DIS | M4)) /*GPIO_150*/ \
+ MUX_VAL(CP(UART1_RX),		(IEN  | PTD | DIS | M0)) /*UART1_RX*/\
+ MUX_VAL(CP(MCBSP4_CLKX),	(IEN  | PTD | DIS | M1)) /*SSI1_DAT_RX*/\
+ MUX_VAL(CP(MCBSP4_DR),		(IEN  | PTD | DIS | M1)) /*SSI1_FLAG_RX*/\
+ MUX_VAL(CP(MCBSP4_DX),		(IEN  | PTD | DIS | M1)) /*SSI1_RDY_RX*/\
+ MUX_VAL(CP(MCBSP4_FSX),	(IEN  | PTD | DIS | M1)) /*SSI1_WAKE*/\
+ MUX_VAL(CP(MCBSP1_CLKR),	(IDIS | PTU | EN  | M4)) /*GPIO_156*/\
+ MUX_VAL(CP(MCBSP1_FSR),	(IDIS | PTU | EN  | M4)) /*GPIO_157*/\
+ MUX_VAL(CP(MCBSP1_DX),		(IDIS | PTD | EN  | M4)) /*GPIO_158*/\
+ MUX_VAL(CP(MCBSP1_DR),		(IDIS | PTU | EN  | M4)) /*GPIO_159*/\
+ MUX_VAL(CP(MCBSP_CLKS),	(IEN  | PTU | DIS | M0)) /*McBSP_CLKS*/\
+ MUX_VAL(CP(MCBSP1_FSX),	(IEN  | PTD | DIS | M4)) /*GPIO_161*/\
+ MUX_VAL(CP(MCBSP1_CLKX),	(IDIS | PTD | DIS | M4)) /*GPIO_162*/\
+ /*Serial Interface*/\
+ MUX_VAL(CP(UART3_CTS_RCTX),	(IEN  | PTD | EN  | M0)) /*UART3_CTS_RCTX*/\
+ MUX_VAL(CP(UART3_RTS_SD),	(IDIS | PTD | DIS | M0)) /*UART3_RTS_SD */\
+ MUX_VAL(CP(UART3_RX_IRRX),	(IEN  | PTD | DIS | M0)) /*UART3_RX_IRRX*/\
+ MUX_VAL(CP(UART3_TX_IRTX),	(IDIS | PTD | DIS | M0)) /*UART3_TX_IRTX*/\
+ MUX_VAL(CP(HSUSB0_CLK),	(IEN  | PTD | DIS | M0)) /*HSUSB0_CLK*/\
+ MUX_VAL(CP(HSUSB0_STP),	(IDIS | PTU | EN  | M0)) /*HSUSB0_STP*/\
+ MUX_VAL(CP(HSUSB0_DIR),	(IEN  | PTD | DIS | M0)) /*HSUSB0_DIR*/\
+ MUX_VAL(CP(HSUSB0_NXT),	(IEN  | PTD | DIS | M0)) /*HSUSB0_NXT*/\
+ MUX_VAL(CP(HSUSB0_DATA0),	(IEN  | PTD | DIS | M0)) /*HSUSB0_DATA0*/\
+ MUX_VAL(CP(HSUSB0_DATA1),	(IEN  | PTD | DIS | M0)) /*HSUSB0_DATA1*/\
+ MUX_VAL(CP(HSUSB0_DATA2),	(IEN  | PTD | DIS | M0)) /*HSUSB0_DATA2*/\
+ MUX_VAL(CP(HSUSB0_DATA3),	(IEN  | PTD | DIS | M0)) /*HSUSB0_DATA3*/\
+ MUX_VAL(CP(HSUSB0_DATA4),	(IEN  | PTD | DIS | M0)) /*HSUSB0_DATA4*/\
+ MUX_VAL(CP(HSUSB0_DATA5),	(IEN  | PTD | DIS | M0)) /*HSUSB0_DATA5*/\
+ MUX_VAL(CP(HSUSB0_DATA6),	(IEN  | PTD | DIS | M0)) /*HSUSB0_DATA6*/\
+ MUX_VAL(CP(HSUSB0_DATA7),	(IEN  | PTD | DIS | M0)) /*HSUSB0_DATA7*/\
+ MUX_VAL(CP(I2C1_SCL),		(IEN  | PTU | EN  | M0)) /*I2C1_SCL*/\
+ MUX_VAL(CP(I2C1_SDA),		(IEN  | PTU | EN  | M0)) /*I2C1_SDA*/\
+ MUX_VAL(CP(I2C2_SCL),		(IEN  | PTU | EN  | M4)) /*GPIO_168*/\
+ MUX_VAL(CP(I2C2_SDA),		(IEN  | PTU | EN  | M4)) /*GPIO_183*/\
+ MUX_VAL(CP(I2C3_SCL),		(IEN  | PTU | EN  | M0)) /*I2C3_SCL*/\
+ MUX_VAL(CP(I2C3_SDA),		(IEN  | PTU | EN  | M0)) /*I2C3_SDA*/\
+ MUX_VAL(CP(I2C4_SCL),		(IEN  | PTU | EN  | M0)) /*I2C4_SCL*/\
+ MUX_VAL(CP(I2C4_SDA),		(IEN  | PTU | EN  | M0)) /*I2C4_SDA*/\
+ MUX_VAL(CP(HDQ_SIO),		(IDIS | PTU | EN  | M4)) /*GPIO_170*/\
+ MUX_VAL(CP(MCSPI1_CLK),	(IDIS | PTU | EN  | M0)) /*SPI1_CLK*/\
+ MUX_VAL(CP(MCSPI1_SIMO),	(IDIS | PTU | DIS | M0)) /*SPI1_SIMO*/\
+ MUX_VAL(CP(MCSPI1_SOMI),	(IEN  | PTD | DIS | M0)) /*McSPI1_SOMI*/\
+ MUX_VAL(CP(MCSPI1_CS0),	(IEN  | PTD | EN  | M0)) /*McSPI1_CS0*/\
+ MUX_VAL(CP(MCSPI1_CS1),	(IDIS | PTD | EN  | M0)) /*McSPI1_CS1*/\
+ MUX_VAL(CP(MCSPI1_CS2),	(IDIS | PTD | DIS | M4)) /*GPIO_176*/\
+ /* USB EHCI (port 2) */\
+ MUX_VAL(CP(MCSPI1_CS3),	(IDIS | PTU | EN  | M0)) /*SPI1_CS3*/\
+ MUX_VAL(CP(MCSPI2_CLK),	(IEN  | PTU | DIS | M3)) /*HSUSB2_DATA7*/\
+ MUX_VAL(CP(MCSPI2_SIMO),	(IEN  | PTU | DIS | M3)) /*HSUSB2_DATA4*/\
+ MUX_VAL(CP(MCSPI2_SOMI),	(IEN  | PTU | DIS | M3)) /*HSUSB2_DATA5*/\
+ MUX_VAL(CP(MCSPI2_CS0),	(IEN  | PTU | DIS | M3)) /*HSUSB2_DATA6*/\
+ MUX_VAL(CP(MCSPI2_CS1),	(IEN  | PTU | DIS | M3)) /*HSUSB2_DATA3*/\
+ MUX_VAL(CP(ETK_D10_ES2),	(IDIS | PTU | DIS | M3)) /*HSUSB2_CLK*/\
+ MUX_VAL(CP(ETK_D11_ES2),	(IDIS | PTU | DIS | M3)) /*HSUSB2_STP*/\
+ MUX_VAL(CP(ETK_D12_ES2),	(IEN  | PTU | DIS | M3)) /*HSUSB2_DIR*/\
+ MUX_VAL(CP(ETK_D13_ES2),	(IEN  | PTU | DIS | M3)) /*HSUSB2_NXT*/\
+ MUX_VAL(CP(ETK_D14_ES2),	(IEN  | PTU | DIS | M3)) /*HSUSB2_DATA0*/\
+ MUX_VAL(CP(ETK_D15_ES2),	(IEN  | PTU | DIS | M3)) /*HSUSB2_DATA1*/\
+ /*Control and debug */\
+ MUX_VAL(CP(SYS_32K),		(IEN  | PTD | DIS | M0)) /*SYS_32K*/\
+ MUX_VAL(CP(SYS_CLKREQ),	(IEN  | PTD | DIS | M0)) /*SYS_CLKREQ*/\
+ MUX_VAL(CP(SYS_NIRQ),		(IEN  | PTU | EN  | M0)) /*SYS_nIRQ*/\
+ MUX_VAL(CP(SYS_BOOT0),		(IEN  | PTD | DIS | M4)) /*GPIO_2*/\
+ MUX_VAL(CP(SYS_BOOT1),		(IEN  | PTD | DIS | M4)) /*GPIO_3*/\
+ MUX_VAL(CP(SYS_BOOT2),		(IEN  | PTD | DIS | M4)) /*GPIO_4 - MMC1_WP*/\
+ MUX_VAL(CP(SYS_BOOT3),		(IEN  | PTD | DIS | M4)) /*GPIO_5*/\
+ MUX_VAL(CP(SYS_BOOT4),		(IEN  | PTD | DIS | M4)) /*GPIO_6*/\
+ MUX_VAL(CP(SYS_BOOT5),		(IEN  | PTD | DIS | M4)) /*GPIO_7*/\
+ MUX_VAL(CP(SYS_BOOT6),		(IDIS | PTD | DIS | M4)) /*GPIO_8*/ \
+ MUX_VAL(CP(SYS_OFF_MODE),	(IEN  | PTD | DIS | M0)) /*SYS_OFF_MODE*/\
+ MUX_VAL(CP(SYS_CLKOUT1),	(IEN  | PTD | DIS | M0)) /*SYS_CLKOUT1*/\
+ MUX_VAL(CP(SYS_CLKOUT2),	(IEN  | PTU | EN  | M4)) /*GPIO_186*/\
+ MUX_VAL(CP(ETK_CLK_ES2),	(IDIS | PTU | EN  | M3)) /*HSUSB1_STP*/\
+ MUX_VAL(CP(ETK_CTL_ES2),	(IDIS | PTU | EN  | M4)) /*GPIO_13*/\
+ MUX_VAL(CP(ETK_D0_ES2),	(IEN  | PTU | DIS | M3)) /*HSUSB1_DATA0*/\
+ MUX_VAL(CP(ETK_D1_ES2),	(IEN  | PTU | DIS | M3)) /*HSUSB1_DATA1*/\
+ MUX_VAL(CP(ETK_D2_ES2),	(IEN  | PTU | DIS | M3)) /*HSUSB1_DATA2*/\
+ MUX_VAL(CP(ETK_D3_ES2),	(IEN  | PTU | DIS | M3)) /*HSUSB1_DATA7*/\
+ MUX_VAL(CP(ETK_D4_ES2),	(IEN  | PTU | DIS | M3)) /*HSUSB1_DATA4*/\
+ MUX_VAL(CP(ETK_D5_ES2),	(IEN  | PTU | DIS | M3)) /*HSUSB1_DATA5*/\
+ MUX_VAL(CP(ETK_D6_ES2),	(IEN  | PTU | DIS | M3)) /*HSUSB1_DATA6*/\
+ MUX_VAL(CP(ETK_D7_ES2),	(IEN  | PTU | DIS | M3)) /*HSUSB1_DATA3*/\
+ MUX_VAL(CP(ETK_D8_ES2),	(IDIS | PTU | EN  | M4)) /*GPIO_22*/\
+ MUX_VAL(CP(ETK_D9_ES2),	(IEN  | PTU | DIS | M3)) /*HSUSB1_NXT*/\
+ MUX_VAL(CP(D2D_MCAD1),		(IEN  | PTD | EN  | M0)) /*d2d_mcad1*/\
+ MUX_VAL(CP(D2D_MCAD2),		(IEN  | PTD | EN  | M0)) /*d2d_mcad2*/\
+ MUX_VAL(CP(D2D_MCAD3),		(IEN  | PTD | EN  | M0)) /*d2d_mcad3*/\
+ MUX_VAL(CP(D2D_MCAD4),		(IEN  | PTD | EN  | M0)) /*d2d_mcad4*/\
+ MUX_VAL(CP(D2D_MCAD5),		(IEN  | PTD | EN  | M0)) /*d2d_mcad5*/\
+ MUX_VAL(CP(D2D_MCAD6),		(IEN  | PTD | EN  | M0)) /*d2d_mcad6*/\
+ MUX_VAL(CP(D2D_MCAD7),		(IEN  | PTD | EN  | M0)) /*d2d_mcad7*/\
+ MUX_VAL(CP(D2D_MCAD8),		(IEN  | PTD | EN  | M0)) /*d2d_mcad8*/\
+ MUX_VAL(CP(D2D_MCAD9),		(IEN  | PTD | EN  | M0)) /*d2d_mcad9*/\
+ MUX_VAL(CP(D2D_MCAD10),	(IEN  | PTD | EN  | M0)) /*d2d_mcad10*/\
+ MUX_VAL(CP(D2D_MCAD11),	(IEN  | PTD | EN  | M0)) /*d2d_mcad11*/\
+ MUX_VAL(CP(D2D_MCAD12),	(IEN  | PTD | EN  | M0)) /*d2d_mcad12*/\
+ MUX_VAL(CP(D2D_MCAD13),	(IEN  | PTD | EN  | M0)) /*d2d_mcad13*/\
+ MUX_VAL(CP(D2D_MCAD14),	(IEN  | PTD | EN  | M0)) /*d2d_mcad14*/\
+ MUX_VAL(CP(D2D_MCAD15),	(IEN  | PTD | EN  | M0)) /*d2d_mcad15*/\
+ MUX_VAL(CP(D2D_MCAD16),	(IEN  | PTD | EN  | M0)) /*d2d_mcad16*/\
+ MUX_VAL(CP(D2D_MCAD17),	(IEN  | PTD | EN  | M0)) /*d2d_mcad17*/\
+ MUX_VAL(CP(D2D_MCAD18),	(IEN  | PTD | EN  | M0)) /*d2d_mcad18*/\
+ MUX_VAL(CP(D2D_MCAD19),	(IEN  | PTD | EN  | M0)) /*d2d_mcad19*/\
+ MUX_VAL(CP(D2D_MCAD20),	(IEN  | PTD | EN  | M0)) /*d2d_mcad20*/\
+ MUX_VAL(CP(D2D_MCAD21),	(IEN  | PTD | EN  | M0)) /*d2d_mcad21*/\
+ MUX_VAL(CP(D2D_MCAD22),	(IEN  | PTD | EN  | M0)) /*d2d_mcad22*/\
+ MUX_VAL(CP(D2D_MCAD23),	(IEN  | PTD | EN  | M0)) /*d2d_mcad23*/\
+ MUX_VAL(CP(D2D_MCAD24),	(IEN  | PTD | EN  | M0)) /*d2d_mcad24*/\
+ MUX_VAL(CP(D2D_MCAD25),	(IEN  | PTD | EN  | M0)) /*d2d_mcad25*/\
+ MUX_VAL(CP(D2D_MCAD26),	(IEN  | PTD | EN  | M0)) /*d2d_mcad26*/\
+ MUX_VAL(CP(D2D_MCAD27),	(IEN  | PTD | EN  | M0)) /*d2d_mcad27*/\
+ MUX_VAL(CP(D2D_MCAD28),	(IEN  | PTD | EN  | M0)) /*d2d_mcad28*/\
+ MUX_VAL(CP(D2D_MCAD29),	(IEN  | PTD | EN  | M0)) /*d2d_mcad29*/\
+ MUX_VAL(CP(D2D_MCAD30),	(IEN  | PTD | EN  | M0)) /*d2d_mcad30*/\
+ MUX_VAL(CP(D2D_MCAD31),	(IEN  | PTD | EN  | M0)) /*d2d_mcad31*/\
+ MUX_VAL(CP(D2D_MCAD32),	(IEN  | PTD | EN  | M0)) /*d2d_mcad32*/\
+ MUX_VAL(CP(D2D_MCAD33),	(IEN  | PTD | EN  | M0)) /*d2d_mcad33*/\
+ MUX_VAL(CP(D2D_MCAD34),	(IEN  | PTD | EN  | M0)) /*d2d_mcad34*/\
+ MUX_VAL(CP(D2D_MCAD35),	(IEN  | PTD | EN  | M0)) /*d2d_mcad35*/\
+ MUX_VAL(CP(D2D_MCAD36),	(IEN  | PTD | EN  | M0)) /*d2d_mcad36*/\
+ MUX_VAL(CP(D2D_CLK26MI),	(IEN  | PTD | DIS | M0)) /*d2d_clk26mi*/\
+ MUX_VAL(CP(D2D_NRESPWRON),	(IEN  | PTD | EN  | M0)) /*d2d_nrespwron*/\
+ MUX_VAL(CP(D2D_NRESWARM),	(IEN  | PTU | EN  | M0)) /*d2d_nreswarm */\
+ MUX_VAL(CP(D2D_ARM9NIRQ),	(IEN  | PTD | DIS | M0)) /*d2d_arm9nirq */\
+ MUX_VAL(CP(D2D_UMA2P6FIQ),	(IEN  | PTD | DIS | M0)) /*d2d_uma2p6fiq*/\
+ MUX_VAL(CP(D2D_SPINT),		(IEN  | PTD | EN  | M0)) /*d2d_spint*/\
+ MUX_VAL(CP(D2D_FRINT),		(IEN  | PTD | EN  | M0)) /*d2d_frint*/\
+ MUX_VAL(CP(D2D_DMAREQ0),	(IEN  | PTD | DIS | M0)) /*d2d_dmareq0*/\
+ MUX_VAL(CP(D2D_DMAREQ1),	(IEN  | PTD | DIS | M0)) /*d2d_dmareq1*/\
+ MUX_VAL(CP(D2D_DMAREQ2),	(IEN  | PTD | DIS | M0)) /*d2d_dmareq2*/\
+ MUX_VAL(CP(D2D_DMAREQ3),	(IEN  | PTD | DIS | M0)) /*d2d_dmareq3*/\
+ MUX_VAL(CP(D2D_N3GTRST),	(IEN  | PTD | DIS | M0)) /*d2d_n3gtrst*/\
+ MUX_VAL(CP(D2D_N3GTDI),	(IEN  | PTD | DIS | M0)) /*d2d_n3gtdi*/\
+ MUX_VAL(CP(D2D_N3GTDO),	(IEN  | PTD | DIS | M0)) /*d2d_n3gtdo*/\
+ MUX_VAL(CP(D2D_N3GTMS),	(IEN  | PTD | DIS | M0)) /*d2d_n3gtms*/\
+ MUX_VAL(CP(D2D_N3GTCK),	(IEN  | PTD | DIS | M0)) /*d2d_n3gtck*/\
+ MUX_VAL(CP(D2D_N3GRTCK),	(IEN  | PTD | DIS | M0)) /*d2d_n3grtck*/\
+ MUX_VAL(CP(D2D_MSTDBY),	(IEN  | PTU | EN  | M0)) /*d2d_mstdby*/\
+ MUX_VAL(CP(D2D_SWAKEUP),	(IEN  | PTD | EN  | M0)) /*d2d_swakeup*/\
+ MUX_VAL(CP(D2D_IDLEREQ),	(IEN  | PTD | DIS | M0)) /*d2d_idlereq*/\
+ MUX_VAL(CP(D2D_IDLEACK),	(IEN  | PTU | EN  | M0)) /*d2d_idleack*/\
+ MUX_VAL(CP(D2D_MWRITE),	(IEN  | PTD | DIS | M0)) /*d2d_mwrite*/\
+ MUX_VAL(CP(D2D_SWRITE),	(IEN  | PTD | DIS | M0)) /*d2d_swrite*/\
+ MUX_VAL(CP(D2D_MREAD),		(IEN  | PTD | DIS | M0)) /*d2d_mread*/\
+ MUX_VAL(CP(D2D_SREAD),		(IEN  | PTD | DIS | M0)) /*d2d_sread*/\
+ MUX_VAL(CP(D2D_MBUSFLAG),	(IEN  | PTD | DIS | M0)) /*d2d_mbusflag*/\
+ MUX_VAL(CP(D2D_SBUSFLAG),	(IEN  | PTD | DIS | M0)) /*d2d_sbusflag*/\
+ MUX_VAL(CP(SDRC_CKE0),		(IDIS | PTU | EN  | M0)) /*sdrc_cke0*/\
+ MUX_VAL(CP(SDRC_CKE1),		(IDIS | PTU | EN  | M0)) /*sdrc_cke1*/
+
+#endif
diff --git a/include/configs/omap3_kboc.h b/include/configs/omap3_kboc.h
new file mode 100644
index 0000000..8a59612
--- /dev/null
+++ b/include/configs/omap3_kboc.h
@@ -0,0 +1,317 @@
+/*
+ * (C) Copyright 2009
+ * KwikByte <www.kwikbyte.com>
+ *
+ * Author :
+ *  Christian Owens <christian@kwikbyte.com>
+ *
+ * Configuration settings for the KwikByte OMAP3530 KBOC Module.
+ *
+ * Derived from the following:
+ *
+ * (C) Copyright 2006-2008
+ * Texas Instruments.
+ * Richard Woodruff <r-woodruff2@ti.com>
+ * Syed Mohammed Khasim <x0khasim@ti.com>
+ *
+ * Configuration settings for the TI OMAP3530 Beagle 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
+ */
+#define CONFIG_ARMCORTEXA8	1	/* This is an ARM V7 CPU core */
+#define CONFIG_OMAP			1	/* in a TI OMAP core */
+#define CONFIG_OMAP34XX		1	/* which is a 34XX */
+#define CONFIG_OMAP3430		1	/* which is in a 3430 */
+#define CONFIG_OMAP3_KBOC	1	/* working with KBOC */
+
+#include <asm/arch/cpu.h>		/* get chip and board defs */
+#include <asm/arch/omap3.h>
+
+/*
+ * Display CPU and Board information
+ */
+#define CONFIG_DISPLAY_CPUINFO		1
+#define CONFIG_DISPLAY_BOARDINFO	1
+
+/* Clock Defines */
+#define V_OSCK			26000000	/* Clock output from T2 */
+#define V_SCLK			(V_OSCK >> 1)
+
+#undef CONFIG_USE_IRQ				/* no support for IRQs */
+#define CONFIG_MISC_INIT_R
+
+#define CONFIG_CMDLINE_TAG		1	/* enable passing of ATAGs */
+#define CONFIG_SETUP_MEMORY_TAGS	1
+#define CONFIG_INITRD_TAG		1
+#define CONFIG_REVISION_TAG		1
+
+/*
+ * Size of malloc() pool
+ */
+#define CONFIG_ENV_SIZE			SZ_128K	/* Total Size Environment */
+						/* Sector */
+#define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + SZ_128K)
+#define CONFIG_SYS_GBL_DATA_SIZE	128	/* bytes reserved for */
+						/* initial data */
+
+/*
+ * Hardware drivers
+ */
+
+/*
+ * NS16550 Configuration
+ */
+#define V_NS16550_CLK			48000000	/* 48MHz (APLL96/2) */
+
+#define CONFIG_SYS_NS16550
+#define CONFIG_SYS_NS16550_SERIAL
+#define CONFIG_SYS_NS16550_REG_SIZE	(-4)
+#define CONFIG_SYS_NS16550_CLK		V_NS16550_CLK
+
+/*
+ * select serial console configuration
+ */
+#define CONFIG_CONS_INDEX		3
+#define CONFIG_SYS_NS16550_COM3		OMAP34XX_UART3
+#define CONFIG_SERIAL3			3	/* UART3 on KBOC Rev 0.90 */
+
+/* allow to overwrite serial and ethaddr */
+#define CONFIG_ENV_OVERWRITE
+#define CONFIG_BAUDRATE			115200
+#define CONFIG_SYS_BAUDRATE_TABLE	{4800, 9600, 19200, 38400, 57600,\
+					115200}
+#define CONFIG_MMC			1
+#define CONFIG_OMAP3_MMC		1
+#define CONFIG_DOS_PARTITION		1
+
+/* commands to include */
+#include <config_cmd_default.h>
+
+#define CONFIG_CMD_EXT2		/* EXT2 Support			*/
+#define CONFIG_CMD_FAT		/* FAT support			*/
+#define CONFIG_CMD_JFFS2	/* JFFS2 Support		*/
+#define CONFIG_CMD_MTDPARTS	/* Enable MTD parts commands */
+#define CONFIG_MTD_DEVICE	/* needed for mtdparts commands */
+#define MTDIDS_DEFAULT			"nand0=nand"
+#define MTDPARTS_DEFAULT		"mtdparts=nand:512k(x-loader),"\
+					"1920k(u-boot),128k(u-boot-env),"\
+					"4m(kernel),-(fs)"
+
+#define CONFIG_CMD_I2C		/* I2C serial bus support	*/
+#define CONFIG_CMD_MMC		/* MMC support			*/
+#define CONFIG_CMD_NAND		/* NAND support			*/
+
+#undef CONFIG_CMD_FLASH		/* flinfo, erase, protect	*/
+#undef CONFIG_CMD_FPGA		/* FPGA configuration Support	*/
+#undef CONFIG_CMD_IMI		/* iminfo			*/
+#undef CONFIG_CMD_IMLS		/* List all found images	*/
+#undef CONFIG_CMD_NET		/* bootp, tftpboot, rarpboot	*/
+#undef CONFIG_CMD_NFS		/* NFS support			*/
+
+#define CONFIG_SYS_NO_FLASH
+#define CONFIG_SYS_I2C_SPEED		100000
+#define CONFIG_SYS_I2C_SLAVE		1
+#define CONFIG_SYS_I2C_BUS		0
+#define CONFIG_SYS_I2C_BUS_SELECT	1
+#define CONFIG_DRIVER_OMAP34XX_I2C	1
+
+/*
+ * Board NAND Info.
+ */
+#define CONFIG_NAND_OMAP_GPMC
+#define CONFIG_SYS_NAND_ADDR		NAND_BASE	/* physical address */
+							/* to access nand */
+#define CONFIG_SYS_NAND_BASE		NAND_BASE	/* physical address */
+							/* to access nand at */
+							/* CS0 */
+#define GPMC_NAND_ECC_LP_x16_LAYOUT	1
+
+#define CONFIG_SYS_MAX_NAND_DEVICE	1		/* Max number of NAND */
+							/* devices */
+
+#define CONFIG_JFFS2_NAND
+/* nand device jffs2 lives on */
+#define CONFIG_JFFS2_DEV		"nand0"
+/* start of jffs2 partition */
+#define CONFIG_JFFS2_PART_OFFSET	0x680000
+#define CONFIG_JFFS2_PART_SIZE		0xf980000	/* size of jffs2 */
+							/* partition */
+
+/* Environment information */
+#define CONFIG_BOOTDELAY		3
+
+#define CONFIG_EXTRA_ENV_SETTINGS \
+	"loadaddr=0x82000000\0" \
+	"console=ttyS2,115200n8\0" \
+	"videomode=1024x768 at 60,vxres=1024,vyres=768\0" \
+	"videospec=omapfb:vram:2M,vram:4M\0" \
+	"mmcargs=setenv bootargs console=${console} " \
+		"video=${videospec},mode:${videomode} " \
+		"root=/dev/mmcblk0p2 rw " \
+		"rootfstype=ext3 rootwait " \
+		"${optargs}\0" \
+	"nandargs=setenv bootargs console=${console} " \
+		"video=${videospec},mode:${videomode} " \
+		"root=/dev/mtdblock4 rw " \
+		"rootfstype=jffs2 " \
+		"${optargs}\0" \
+	"loadbootscript=fatload mmc 0 ${loadaddr} boot.scr\0" \
+	"bootscript=echo Running bootscript from mmc ...; " \
+		"source ${loadaddr}\0" \
+	"loaduimage=fatload mmc 0 ${loadaddr} uImage\0" \
+	"mmcboot=echo Booting from mmc ...; " \
+		"run mmcargs; " \
+		"bootm ${loadaddr}\0" \
+	"nandboot=echo Booting from nand ...; " \
+		"run nandargs; " \
+		"nand read ${loadaddr} 280000 400000; " \
+		"bootm ${loadaddr}\0" \
+
+#define CONFIG_BOOTCOMMAND \
+	"if mmc init; then " \
+		"if run loadbootscript; then " \
+			"run bootscript; " \
+		"else " \
+			"if run loaduimage; then " \
+				"run mmcboot; " \
+			"else run nandboot; " \
+			"fi; " \
+		"fi; " \
+	"else run nandboot; fi"
+
+#define CONFIG_AUTO_COMPLETE		1
+/*
+ * Miscellaneous configurable options
+ */
+#define V_PROMPT			"OMAP3_KBOC # "
+
+#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		V_PROMPT
+#define CONFIG_SYS_CBSIZE		256	/* Console I/O Buffer Size */
+/* Print Buffer Size */
+#define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE + \
+					sizeof(CONFIG_SYS_PROMPT) + 16)
+#define CONFIG_SYS_MAXARGS		16	/* max number of command args */
+/* Boot Argument Buffer Size */
+#define CONFIG_SYS_BARGSIZE		(CONFIG_SYS_CBSIZE)
+
+#define CONFIG_SYS_MEMTEST_START	(OMAP34XX_SDRC_CS0)	/* memtest */
+								/* works on */
+#define CONFIG_SYS_MEMTEST_END		(OMAP34XX_SDRC_CS0 + \
+					0x01F00000) /* 31MB */
+
+#define CONFIG_SYS_LOAD_ADDR		(OMAP34XX_SDRC_CS0)	/* default */
+							/* load address */
+
+/*
+ * OMAP3 has 12 GP timers, they can be driven by the system clock
+ * (12/13/16.8/19.2/38.4MHz) or by 32KHz clock. We use 13MHz (V_SCLK).
+ * This rate is divided by a local divisor.
+ */
+#define CONFIG_SYS_TIMERBASE		(OMAP34XX_GPT2)
+#define CONFIG_SYS_PTV			2       /* Divisor: 2^(PTV+1) => 8 */
+#define CONFIG_SYS_HZ			1000
+
+/*-----------------------------------------------------------------------
+ * Stack sizes
+ *
+ * The stack sizes are set up in start.S using the settings below
+ */
+#define CONFIG_STACKSIZE	SZ_128K	/* regular stack */
+#ifdef CONFIG_USE_IRQ
+#define CONFIG_STACKSIZE_IRQ	SZ_4K	/* IRQ stack */
+#define CONFIG_STACKSIZE_FIQ	SZ_4K	/* FIQ stack */
+#endif
+
+/*-----------------------------------------------------------------------
+ * Physical Memory Map
+ */
+#define CONFIG_NR_DRAM_BANKS	2	/* CS1 may or may not be populated */
+#define PHYS_SDRAM_1		OMAP34XX_SDRC_CS0
+#define PHYS_SDRAM_1_SIZE	SZ_32M	/* at least 32 meg */
+#define PHYS_SDRAM_2		OMAP34XX_SDRC_CS1
+
+/* SDRAM Bank Allocation method */
+#define SDRC_R_B_C		1
+
+/*-----------------------------------------------------------------------
+ * FLASH and environment organization
+ */
+
+/* **** PISMO SUPPORT *** */
+
+/* Configure the PISMO */
+#define PISMO1_NAND_SIZE		GPMC_SIZE_128M
+#define PISMO1_ONEN_SIZE		GPMC_SIZE_128M
+
+#define CONFIG_SYS_MAX_FLASH_SECT	520	/* max number of sectors on */
+						/* one chip */
+#define CONFIG_SYS_MAX_FLASH_BANKS	2	/* max number of flash banks */
+#define CONFIG_SYS_MONITOR_LEN		SZ_256K	/* Reserve 2 sectors */
+
+#define CONFIG_SYS_FLASH_BASE		boot_flash_base
+
+/* Monitor at start of flash */
+#define CONFIG_SYS_MONITOR_BASE		CONFIG_SYS_FLASH_BASE
+#define CONFIG_SYS_ONENAND_BASE		ONENAND_MAP
+
+#define CONFIG_ENV_IS_IN_NAND		1
+#define ONENAND_ENV_OFFSET		0x260000 /* environment starts here */
+#define SMNAND_ENV_OFFSET		0x260000 /* environment starts here */
+
+#define CONFIG_SYS_ENV_SECT_SIZE	boot_flash_sec
+#define CONFIG_ENV_OFFSET		boot_flash_off
+#define CONFIG_ENV_ADDR			SMNAND_ENV_OFFSET
+
+/*-----------------------------------------------------------------------
+ * CFI FLASH driver setup
+ */
+/* timeout values are in ticks */
+#define CONFIG_SYS_FLASH_ERASE_TOUT	(100 * CONFIG_SYS_HZ)
+#define CONFIG_SYS_FLASH_WRITE_TOUT	(100 * CONFIG_SYS_HZ)
+
+/* Flash banks JFFS2 should use */
+#define CONFIG_SYS_MAX_MTD_BANKS	(CONFIG_SYS_MAX_FLASH_BANKS + \
+					CONFIG_SYS_MAX_NAND_DEVICE)
+#define CONFIG_SYS_JFFS2_MEM_NAND
+/* use flash_info[2] */
+#define CONFIG_SYS_JFFS2_FIRST_BANK	CONFIG_SYS_MAX_FLASH_BANKS
+#define CONFIG_SYS_JFFS2_NUM_BANKS	1
+
+#ifndef __ASSEMBLY__
+extern gpmc_csx_t *nand_cs_base;
+extern gpmc_t *gpmc_cfg_base;
+extern unsigned int boot_flash_base;
+extern volatile unsigned int boot_flash_env_addr;
+extern unsigned int boot_flash_off;
+extern unsigned int boot_flash_sec;
+extern unsigned int boot_flash_type;
+#endif
+
+#endif /* __CONFIG_H */
-- 
1.5.4.3

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH] Add support for the KwikByte KBOC OMAP35xx board
  2009-07-09 23:03 [U-Boot] [PATCH] Add support for the KwikByte KBOC OMAP35xx board christian at kwikbyte.com
@ 2009-07-10  1:06 ` Nishanth Menon
  2009-07-10 16:27   ` christian at kwikbyte.com
  2009-07-12 13:13   ` Jean-Christophe PLAGNIOL-VILLARD
  0 siblings, 2 replies; 15+ messages in thread
From: Nishanth Menon @ 2009-07-10  1:06 UTC (permalink / raw)
  To: u-boot

On Thu, Jul 9, 2009 at 6:03 PM, <christian@kwikbyte.com> wrote:
> Subject: [PATCH] Add support for the KwikByte KBOC OMAP35xx board
Do you have some link that you can point us to what is KwikByte KBOC
board? give us some explanation..

>
> Signed-off-by: Christian Owens <christian@kwikbyte.com>
> ---
> ?MAINTAINERS ? ? ? ? ? ? ? ? ?| ? ?4 +
> ?MAKEALL ? ? ? ? ? ? ? ? ? ? ?| ? ?1 +
> ?Makefile ? ? ? ? ? ? ? ? ? ? | ? ?3 +
> ?board/omap3/common/Makefile ?| ? ?1 +
> ?board/omap3/kboc/Makefile ? ?| ? 49 ++++++
> ?board/omap3/kboc/config.mk ? | ? 33 ++++
> ?board/omap3/kboc/kboc.c ? ? ?| ?106 ++++++++++++
> ?board/omap3/kboc/kboc.h ? ? ?| ?382
> ++++++++++++++++++++++++++++++++++++++++++
> ?include/configs/omap3_kboc.h | ?317 +++++++++++++++++++++++++++++++++++
> ?9 files changed, 896 insertions(+), 0 deletions(-)
> ?create mode 100644 board/omap3/kboc/Makefile
> ?create mode 100644 board/omap3/kboc/config.mk
> ?create mode 100644 board/omap3/kboc/kboc.c
> ?create mode 100644 board/omap3/kboc/kboc.h
> ?create mode 100644 include/configs/omap3_kboc.h
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 0041112..cc55df9 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -686,6 +686,10 @@ Alex Z
> ? ? ? ?lart ? ? ? ? ? ?SA1100
> ? ? ? ?dnp1110 ? ? ? ? SA1110
>
> +Christian Owens <christian@kwikbyte.com>
> +
> + ? ? ? omap3_kboc ? ? ?ARM CORTEX-A8 (OMAP35xx SoC)
> +
> ?-------------------------------------------------------------------------
>
> ?Unknown / orphaned boards:
> diff --git a/MAKEALL b/MAKEALL
> index 41f1445..ac0c5d9 100755
> --- a/MAKEALL
> +++ b/MAKEALL
> @@ -572,6 +572,7 @@ LIST_ARM_CORTEX_A8=" ? ? ? ? ? ? ? ?\
> ? ? ? ?omap3_pandora ? ? ? ? ? \
> ? ? ? ?omap3_zoom1 ? ? ? ? ? ? \
> ? ? ? ?omap3_zoom2 ? ? ? ? ? ? \
> + ? ? ? omap3_kboc ? ? ? ? ? ? ?\
> ?"
>
> ?#########################################################################
> diff --git a/Makefile b/Makefile
> index 2a06440..b204917 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -3040,6 +3040,9 @@ omap3_zoom1_config : ? ? ?unconfig
> ?omap3_zoom2_config : ?unconfig
> ? ? ? ?@$(MKCONFIG) $(@:_config=) arm arm_cortexa8 zoom2 omap3 omap3
>
> +omap3_kboc_config : ? ?unconfig
> + ? ? ? @$(MKCONFIG) $(@:_config=) arm arm_cortexa8 kboc omap3 omap3
> +
> ?#########################################################################
> ?## XScale Systems
> ?#########################################################################
> diff --git a/board/omap3/common/Makefile b/board/omap3/common/Makefile
> index b8a0b14..4f7a20b 100644
> --- a/board/omap3/common/Makefile
> +++ b/board/omap3/common/Makefile
> @@ -34,6 +34,7 @@ COBJS-$(CONFIG_OMAP3_OVERO) += power.o
> ?COBJS-$(CONFIG_OMAP3_PANDORA) += power.o
> ?COBJS-$(CONFIG_OMAP3_ZOOM1) += power.o
> ?COBJS-$(CONFIG_OMAP3_ZOOM2) += power.o
> +COBJS-$(CONFIG_OMAP3_KBOC) += power.o
>
> ?COBJS := $(COBJS-y)
> ?SRCS ?:= $(COBJS:.o=.c)
> diff --git a/board/omap3/kboc/Makefile b/board/omap3/kboc/Makefile
> new file mode 100644
> index 0000000..2c77444
> --- /dev/null
> +++ b/board/omap3/kboc/Makefile
> @@ -0,0 +1,49 @@
> +#
> +# (C) Copyright 2000, 2001, 2002
> +# Wolfgang Denk, DENX Software Engineering, wd at 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 ?:= kboc.o
> +
> +SRCS ? := $(COBJS:.o=.c)
> +OBJS ? := $(addprefix $(obj),$(COBJS))
> +
> +$(LIB): ? ? ? ?$(obj).depend $(OBJS)
> + ? ? ? $(AR) $(ARFLAGS) $@ $(OBJS)
> +
> +clean:
> + ? ? ? rm -f $(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/omap3/kboc/config.mk b/board/omap3/kboc/config.mk
> new file mode 100644
> index 0000000..879b2e2
> --- /dev/null
> +++ b/board/omap3/kboc/config.mk
> @@ -0,0 +1,33 @@
> +#
> +# (C) Copyright 2006
> +# Texas Instruments, <www.ti.com>
> +#
> +# Beagle Board uses OMAP3 (ARM-CortexA8) cpu
> +# see http://www.ti.com/ for more information on Texas Instruments
is this board beagleboard? should this be here? mebbe you could take
state copyrights right?
> +#
> +# 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
> +#
> +# Physical Address:
> +# 8000'0000 (bank0)
> +# A000/0000 (bank1)
> +# Linux-Kernel is expected to be at 8000'8000, entry 8000'8000
> +# (mem base + reserved)
> +
> +# For use with external or internal boots.
> +TEXT_BASE = 0x80e80000
> diff --git a/board/omap3/kboc/kboc.c b/board/omap3/kboc/kboc.c
> new file mode 100644
> index 0000000..5fc9b96
> --- /dev/null
> +++ b/board/omap3/kboc/kboc.c
> @@ -0,0 +1,106 @@
> +/*
> + * (C) Copyright 2009
> + * KwikByte <www.kwikbyte.com>
> + *
bit more info on the board is so useful for someone to read - remember
you would be selling your board this way too.. give us more info and
we can hopefully help..

> + * Author :
> + * ?Christian Owens <christian@kwikbyte.com>
> + *
> + * Derived from the following:
> + *
> + * (C) Copyright 2004-2008
> + * Texas Instruments, <www.ti.com>
> + *
> + * Author :
> + * ? ? Sunil Kumar <sunilsaini05@gmail.com>
> + * ? ? Shashi Ranjan <shashiranjanmca05@gmail.com>
> + *
> + * Derived from Beagle Board and 3430 SDP code by
> + * ? ? Richard Woodruff <r-woodruff2@ti.com>
> + * ? ? Syed Mohammed Khasim <khasim@ti.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/mux.h>
> +#include <asm/arch/sys_proto.h>
> +#include <asm/arch/gpio.h>
> +#include <asm/mach-types.h>
> +#include "kboc.h"
> +
> +/*
> + * Routine: board_init
> + * Description: Early hardware init.
> + */
> +int board_init(void)
> +{
> + ? ? ? DECLARE_GLOBAL_DATA_PTR;
> +
> + ? ? ? gpmc_init(); /* in SRAM or SDRAM, finish GPMC */
> + ? ? ? /* board id for Linux */
> + ? ? ? gd->bd->bi_arch_number = MACH_TYPE_OMAP3_KBOC;
> + ? ? ? /* boot param addr */
> + ? ? ? gd->bd->bi_boot_params = (OMAP34XX_SDRC_CS0 + 0x100);
> +
> + ? ? ? return 0;
> +}
> +
> +/*
> + * Routine: misc_init_r
> + * Description: Configure board specific parts
> + */
> +int misc_init_r(void)
> +{
> + ? ? ? gpio_t *gpio1_base = (gpio_t *)OMAP34XX_GPIO1_BASE;
> + ? ? ? gpio_t *gpio5_base = (gpio_t *)OMAP34XX_GPIO5_BASE;
> + ? ? ? gpio_t *gpio6_base = (gpio_t *)OMAP34XX_GPIO6_BASE;
> +
> + ? ? ? power_init_r();
> +
> + ? ? ? /* Configure GPIOs to output */
> + ? ? ? writel(~(GPIO23 | GPIO17 | GPIO12 | GPIO11 | GPIO10 | GPIO8 | GPIO2),
> + ? ? ? ? ? ? ? &gpio6_base->oe);
> + ? ? ? writel(~(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 |
> + ? ? ? ? ? ? ? GPIO13 | GPIO12), &gpio5_base->oe);
> + ? ? ? writel(~(GPIO22 | GPIO13), &gpio1_base->oe);
> +
> + ? ? ? /* Set GPIOs */
> + ? ? ? writel(GPIO23 | GPIO17 | GPIO10 | GPIO8 | GPIO2,
> + ? ? ? ? ? ? ? &gpio6_base->setdataout);
> + ? ? ? writel(GPIO31 | GPIO29 | GPIO28 | GPIO22 | GPIO21 | GPIO13 | GPIO12,
> + ? ? ? ? ? ? ? &gpio5_base->setdataout);
> + ? ? ? writel(GPIO22 | GPIO13,
> + ? ? ? ? ? ? ? &gpio1_base->setdataout);
Aieeeee....... what are these gpios and why do they need to be set high?

normally you might want to do setdataout followed by oe?
> +
> + ? ? ? dieid_num_r();
> +
> + ? ? ? return 0;
> +}
> +
> +/*
> + * Routine: set_muxconf_regs
> + * Description: Setting up the configuration Mux registers specific to the
> + * ? ? ? ? ? ? hardware. Many pins need to be moved from protect to primary
> + * ? ? ? ? ? ? mode.
> + */
> +void set_muxconf_regs(void)
> +{
> + ? ? ? MUX_KBOC();
> +}
> diff --git a/board/omap3/kboc/kboc.h b/board/omap3/kboc/kboc.h
> new file mode 100644
> index 0000000..41c3b9e
> --- /dev/null
> +++ b/board/omap3/kboc/kboc.h
> @@ -0,0 +1,382 @@
> +/*
> + * (C) Copyright 2009
> + * KwikByte <www.kwikbyte.com>
> + *
> + * Author :
> + * ?Christian Owens <christian@kwikbyte.com>
> + *
> + * Derived from the following:
> + *
> + * (C) Copyright 2008
> + * Dirk Behme <dirk.behme@gmail.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
> + */
> +#ifndef _KBOC_H_
> +#define _KBOC_H_
> +
> +const omap3_sysinfo sysinfo = {
> + ? ? ? DDR_STACKED,
> + ? ? ? "OMAP3 KBOC board",
> +#if defined(CONFIG_ENV_IS_IN_ONENAND)
> + ? ? ? "OneNAND",
> +#else
> + ? ? ? "NAND",
> +#endif

err... CONFIG_ENV_IS_IN_NAND is defined as 1 in config header.. means
never support onenand?
> +};
> +
> +/*
> + * IEN ?- Input Enable
> + * IDIS - Input Disable
> + * PTD ?- Pull type Down
> + * PTU ?- Pull type Up
> + * DIS ?- Pull type selection is inactive
> + * EN ? - Pull type selection is active
> + * M0 ? - Mode 0
> + * The commented string gives the final mux configuration for that pin
> + */
> +#define MUX_KBOC() \
> + /*SDRC*/\
> + MUX_VAL(CP(SDRC_D0), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D0*/\
> + MUX_VAL(CP(SDRC_D1), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D1*/\
> + MUX_VAL(CP(SDRC_D2), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D2*/\
> + MUX_VAL(CP(SDRC_D3), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D3*/\
> + MUX_VAL(CP(SDRC_D4), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D4*/\
> + MUX_VAL(CP(SDRC_D5), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D5*/\
> + MUX_VAL(CP(SDRC_D6), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D6*/\
> + MUX_VAL(CP(SDRC_D7), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D7*/\
> + MUX_VAL(CP(SDRC_D8), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D8*/\
> + MUX_VAL(CP(SDRC_D9), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D9*/\
> + MUX_VAL(CP(SDRC_D10), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D10*/\
> + MUX_VAL(CP(SDRC_D11), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D11*/\
> + MUX_VAL(CP(SDRC_D12), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D12*/\
> + MUX_VAL(CP(SDRC_D13), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D13*/\
> + MUX_VAL(CP(SDRC_D14), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D14*/\
> + MUX_VAL(CP(SDRC_D15), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D15*/\
> + MUX_VAL(CP(SDRC_D16), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D16*/\
> + MUX_VAL(CP(SDRC_D17), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D17*/\
> + MUX_VAL(CP(SDRC_D18), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D18*/\
> + MUX_VAL(CP(SDRC_D19), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D19*/\
> + MUX_VAL(CP(SDRC_D20), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D20*/\
> + MUX_VAL(CP(SDRC_D21), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D21*/\
> + MUX_VAL(CP(SDRC_D22), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D22*/\
> + MUX_VAL(CP(SDRC_D23), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D23*/\
> + MUX_VAL(CP(SDRC_D24), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D24*/\
> + MUX_VAL(CP(SDRC_D25), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D25*/\
> + MUX_VAL(CP(SDRC_D26), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D26*/\
> + MUX_VAL(CP(SDRC_D27), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D27*/\
> + MUX_VAL(CP(SDRC_D28), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D28*/\
> + MUX_VAL(CP(SDRC_D29), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D29*/\
> + MUX_VAL(CP(SDRC_D30), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D30*/\
> + MUX_VAL(CP(SDRC_D31), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D31*/\
> + MUX_VAL(CP(SDRC_CLK), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_CLK*/\
> + MUX_VAL(CP(SDRC_DQS0), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_DQS0*/\
> + MUX_VAL(CP(SDRC_DQS1), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_DQS1*/\
> + MUX_VAL(CP(SDRC_DQS2), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_DQS2*/\
> + MUX_VAL(CP(SDRC_DQS3), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_DQS3*/\
> + /*GPMC*/\
> + MUX_VAL(CP(GPMC_A1), ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*GPMC_A1*/\
> + MUX_VAL(CP(GPMC_A2), ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*GPMC_A2*/\
> + MUX_VAL(CP(GPMC_A3), ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*GPMC_A3*/\
> + MUX_VAL(CP(GPMC_A4), ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*GPMC_A4*/\
> + MUX_VAL(CP(GPMC_A5), ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*GPMC_A5*/\
> + MUX_VAL(CP(GPMC_A6), ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*GPMC_A6*/\
> + MUX_VAL(CP(GPMC_A7), ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*GPMC_A7*/\
> + MUX_VAL(CP(GPMC_A8), ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*GPMC_A8*/\
> + MUX_VAL(CP(GPMC_A9), ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*GPMC_A9*/\
> + MUX_VAL(CP(GPMC_A10), ? ? ? ? (IDIS | PTD | DIS | M0)) /*GPMC_A10*/\
> + MUX_VAL(CP(GPMC_D0), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*GPMC_D0*/\
> + MUX_VAL(CP(GPMC_D1), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*GPMC_D1*/\
> + MUX_VAL(CP(GPMC_D2), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*GPMC_D2*/\
> + MUX_VAL(CP(GPMC_D3), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*GPMC_D3*/\
> + MUX_VAL(CP(GPMC_D4), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*GPMC_D4*/\
> + MUX_VAL(CP(GPMC_D5), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*GPMC_D5*/\
> + MUX_VAL(CP(GPMC_D6), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*GPMC_D6*/\
> + MUX_VAL(CP(GPMC_D7), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*GPMC_D7*/\
> + MUX_VAL(CP(GPMC_D8), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*GPMC_D8*/\
> + MUX_VAL(CP(GPMC_D9), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*GPMC_D9*/\
> + MUX_VAL(CP(GPMC_D10), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*GPMC_D10*/\
> + MUX_VAL(CP(GPMC_D11), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*GPMC_D11*/\
> + MUX_VAL(CP(GPMC_D12), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*GPMC_D12*/\
> + MUX_VAL(CP(GPMC_D13), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*GPMC_D13*/\
> + MUX_VAL(CP(GPMC_D14), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*GPMC_D14*/\
> + MUX_VAL(CP(GPMC_D15), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*GPMC_D15*/\
> + MUX_VAL(CP(GPMC_NCS0), ? ? ? ? ? ? ? ?(IDIS | PTU | EN ?| M0)) /*GPMC_nCS0*/\
> + MUX_VAL(CP(GPMC_NCS1), ? ? ? ? ? ? ? ?(IDIS | PTU | EN ?| M0)) /*GPMC_nCS1*/\
> + MUX_VAL(CP(GPMC_NCS2), ? ? ? ? ? ? ? ?(IDIS | PTU | EN ?| M0)) /*GPMC_nCS2*/\
> + MUX_VAL(CP(GPMC_NCS3), ? ? ? ? ? ? ? ?(IDIS | PTU | EN ?| M0)) /*GPMC_nCS3*/\
> + MUX_VAL(CP(GPMC_NCS4), ? ? ? ? ? ? ? ?(IDIS | PTU | EN ?| M0)) /*GPMC_nCS4*/\
> + MUX_VAL(CP(GPMC_NCS5), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*GPMC_nCS5*/\
> + MUX_VAL(CP(GPMC_NCS6), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M1)) /*SYS_nDMA_REQ2*/\
> + MUX_VAL(CP(GPMC_NCS7), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M1)) /*SYS_nDMA_REQ3*/\
> + MUX_VAL(CP(GPMC_NBE1), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*GPMC_nBE1*/\
> + MUX_VAL(CP(GPMC_WAIT2), ? ? ? (IEN ?| PTU | EN ?| M0)) /*GPMC_WAIT2*/\
> + MUX_VAL(CP(GPMC_WAIT3), ? ? ? (IEN ?| PTU | EN ?| M0)) /*GPMC_WAIT3*/\
> + MUX_VAL(CP(GPMC_CLK), ? ? ? ? (IDIS | PTD | DIS | M0)) /*GPMC_CLK*/\
> + MUX_VAL(CP(GPMC_NADV_ALE), ? ?(IDIS | PTD | DIS | M0)) /*GPMC_nADV_ALE*/\
> + MUX_VAL(CP(GPMC_NOE), ? ? ? ? (IDIS | PTD | DIS | M0)) /*GPMC_nOE*/\
> + MUX_VAL(CP(GPMC_NWE), ? ? ? ? (IDIS | PTD | DIS | M0)) /*GPMC_nWE*/\
> + MUX_VAL(CP(GPMC_NBE0_CLE), ? ?(IDIS | PTD | DIS | M0)) /*GPMC_nBE0_CLE*/\
> + MUX_VAL(CP(GPMC_NWP), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*GPMC_nWP*/\
> + MUX_VAL(CP(GPMC_WAIT0), ? ? ? (IEN ?| PTU | EN ?| M0)) /*GPMC_WAIT0*/\
> + MUX_VAL(CP(GPMC_WAIT1), ? ? ? (IEN ?| PTU | EN ?| M0)) /*GPMC_WAIT1*/\
> + /*DSS*/\
> + MUX_VAL(CP(DSS_PCLK), ? ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_PCLK*/\
> + MUX_VAL(CP(DSS_HSYNC), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*DSS_HSYNC*/\
> + MUX_VAL(CP(DSS_VSYNC), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*DSS_VSYNC*/\
> + MUX_VAL(CP(DSS_ACBIAS), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_ACBIAS*/\
> + MUX_VAL(CP(DSS_DATA0), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*DSS_DATA0*/\
> + MUX_VAL(CP(DSS_DATA1), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*DSS_DATA1*/\
> + MUX_VAL(CP(DSS_DATA2), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*DSS_DATA2*/\
> + MUX_VAL(CP(DSS_DATA3), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*DSS_DATA3*/\
> + MUX_VAL(CP(DSS_DATA4), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*DSS_DATA4*/\
> + MUX_VAL(CP(DSS_DATA5), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*DSS_DATA5*/\
> + MUX_VAL(CP(DSS_DATA6), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*DSS_DATA6*/\
> + MUX_VAL(CP(DSS_DATA7), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*DSS_DATA7*/\
> + MUX_VAL(CP(DSS_DATA8), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*DSS_DATA8*/\
> + MUX_VAL(CP(DSS_DATA9), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*DSS_DATA9*/\
> + MUX_VAL(CP(DSS_DATA10), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_DATA10*/\
> + MUX_VAL(CP(DSS_DATA11), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_DATA11*/\
> + MUX_VAL(CP(DSS_DATA12), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_DATA12*/\
> + MUX_VAL(CP(DSS_DATA13), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_DATA13*/\
> + MUX_VAL(CP(DSS_DATA14), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_DATA14*/\
> + MUX_VAL(CP(DSS_DATA15), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_DATA15*/\
> + MUX_VAL(CP(DSS_DATA16), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_DATA16*/\
> + MUX_VAL(CP(DSS_DATA17), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_DATA17*/\
> + MUX_VAL(CP(DSS_DATA18), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_DATA18*/\
> + MUX_VAL(CP(DSS_DATA19), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_DATA19*/\
> + MUX_VAL(CP(DSS_DATA20), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_DATA20*/\
> + MUX_VAL(CP(DSS_DATA21), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_DATA21*/\
> + MUX_VAL(CP(DSS_DATA22), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_DATA22*/\
> + MUX_VAL(CP(DSS_DATA23), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_DATA23*/\
> + /*CAMERA*/\
> + MUX_VAL(CP(CAM_HS), ? ? ? ? ? (IEN ?| PTU | EN ?| M0)) /*CAM_HS */\
> + MUX_VAL(CP(CAM_VS), ? ? ? ? ? (IEN ?| PTU | EN ?| M0)) /*CAM_VS */\
> + MUX_VAL(CP(CAM_XCLKA), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*CAM_XCLKA*/\
> + MUX_VAL(CP(CAM_PCLK), ? ? ? ? (IEN ?| PTU | EN ?| M0)) /*CAM_PCLK*/\
> + MUX_VAL(CP(CAM_FLD), ? ? ? ? ?(IDIS | PTD | DIS | M4)) /*GPIO_98*/\
> + MUX_VAL(CP(CAM_D0), ? ? ? ? ? (IEN ?| PTD | DIS | M0)) /*CAM_D0*/\
> + MUX_VAL(CP(CAM_D1), ? ? ? ? ? (IEN ?| PTD | DIS | M0)) /*CAM_D1*/\
> + MUX_VAL(CP(CAM_D2), ? ? ? ? ? (IEN ?| PTD | DIS | M0)) /*CAM_D2*/\
> + MUX_VAL(CP(CAM_D3), ? ? ? ? ? (IEN ?| PTD | DIS | M0)) /*CAM_D3*/\
> + MUX_VAL(CP(CAM_D4), ? ? ? ? ? (IEN ?| PTD | DIS | M0)) /*CAM_D4*/\
> + MUX_VAL(CP(CAM_D5), ? ? ? ? ? (IEN ?| PTD | DIS | M0)) /*CAM_D5*/\
> + MUX_VAL(CP(CAM_D6), ? ? ? ? ? (IEN ?| PTD | DIS | M0)) /*CAM_D6*/\
> + MUX_VAL(CP(CAM_D7), ? ? ? ? ? (IEN ?| PTD | DIS | M0)) /*CAM_D7*/\
> + MUX_VAL(CP(CAM_D8), ? ? ? ? ? (IEN ?| PTD | DIS | M0)) /*CAM_D8*/\
> + MUX_VAL(CP(CAM_D9), ? ? ? ? ? (IEN ?| PTD | DIS | M0)) /*CAM_D9*/\
> + MUX_VAL(CP(CAM_D10), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*CAM_D10*/\
> + MUX_VAL(CP(CAM_D11), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*CAM_D11*/\
> + MUX_VAL(CP(CAM_XCLKB), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*CAM_XCLKB*/\
> + MUX_VAL(CP(CAM_WEN), ? ? ? ? ?(IEN ?| PTD | DIS | M4)) /*GPIO_167*/\
> + MUX_VAL(CP(CAM_STROBE), ? ? ? (IDIS | PTD | DIS | M0)) /*CAM_STROBE*/\
> + MUX_VAL(CP(CSI2_DX0), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*CSI2_DX0*/\
> + MUX_VAL(CP(CSI2_DY0), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*CSI2_DY0*/\
> + MUX_VAL(CP(CSI2_DX1), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*CSI2_DX1*/\
> + MUX_VAL(CP(CSI2_DY1), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*CSI2_DY1*/\
> + /*Audio Interface */\
> + MUX_VAL(CP(MCBSP2_FSX), ? ? ? (IEN ?| PTD | DIS | M0)) /*McBSP2_FSX*/\
> + MUX_VAL(CP(MCBSP2_CLKX), ? ? ?(IEN ?| PTD | DIS | M0)) /*McBSP2_CLKX*/\
> + MUX_VAL(CP(MCBSP2_DR), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*McBSP2_DR*/\
> + MUX_VAL(CP(MCBSP2_DX), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*McBSP2_DX*/\
> + /*Expansion card */\
> + MUX_VAL(CP(MMC1_CLK), ? ? ? ? (IDIS | PTU | EN ?| M0)) /*MMC1_CLK*/\
> + MUX_VAL(CP(MMC1_CMD), ? ? ? ? (IEN ?| PTU | EN ?| M0)) /*MMC1_CMD*/\
> + MUX_VAL(CP(MMC1_DAT0), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M0)) /*MMC1_DAT0*/\
> + MUX_VAL(CP(MMC1_DAT1), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M0)) /*MMC1_DAT1*/\
> + MUX_VAL(CP(MMC1_DAT2), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M0)) /*MMC1_DAT2*/\
> + MUX_VAL(CP(MMC1_DAT3), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M0)) /*MMC1_DAT3*/\
> + MUX_VAL(CP(MMC1_DAT4), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M0)) /*MMC1_DAT4*/\
> + MUX_VAL(CP(MMC1_DAT5), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M0)) /*MMC1_DAT5*/\
> + MUX_VAL(CP(MMC1_DAT6), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M0)) /*MMC1_DAT6*/\
> + MUX_VAL(CP(MMC1_DAT7), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M0)) /*MMC1_DAT7*/\
> + /*Wireless LAN */\
> + MUX_VAL(CP(MMC2_CLK), ? ? ? ? (IEN ?| PTU | EN ?| M4)) /*GPIO_130*/\
> + MUX_VAL(CP(MMC2_CMD), ? ? ? ? (IEN ?| PTU | EN ?| M4)) /*GPIO_131*/\
> + MUX_VAL(CP(MMC2_DAT0), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M4)) /*GPIO_132*/\
> + MUX_VAL(CP(MMC2_DAT1), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M4)) /*GPIO_133*/\
> + MUX_VAL(CP(MMC2_DAT2), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M4)) /*GPIO_134*/\
> + MUX_VAL(CP(MMC2_DAT3), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M4)) /*GPIO_135*/\
> + MUX_VAL(CP(MMC2_DAT4), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M4)) /*GPIO_136*/\
> + MUX_VAL(CP(MMC2_DAT5), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M4)) /*GPIO_137*/\
> + MUX_VAL(CP(MMC2_DAT6), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M4)) /*GPIO_138*/\
> + MUX_VAL(CP(MMC2_DAT7), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M4)) /*GPIO_139*/\
> + /*Bluetooth*/\
> + MUX_VAL(CP(MCBSP3_DX), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M1)) /*UART2_CTS*/\
> + MUX_VAL(CP(MCBSP3_DR), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M1)) /*UART2_RTS*/\
> + MUX_VAL(CP(MCBSP3_CLKX), ? ? ?(IDIS | PTD | DIS | M1)) /*UART2_TX*/\
> + MUX_VAL(CP(MCBSP3_FSX), ? ? ? (IEN ?| PTD | DIS | M1)) /*UART2_RX*/\
> + MUX_VAL(CP(UART2_CTS), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M4)) /*GPIO_144*/\
> + MUX_VAL(CP(UART2_RTS), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M4)) /*GPIO_145*/\
> + MUX_VAL(CP(UART2_TX), ? ? ? ? (IEN ?| PTD | DIS | M4)) /*GPIO_146*/\
> + MUX_VAL(CP(UART2_RX), ? ? ? ? (IEN ?| PTD | DIS | M4)) /*GPIO_147*/\
> + /*Modem Interface */\
> + MUX_VAL(CP(UART1_TX), ? ? ? ? (IDIS | PTD | DIS | M0)) /*UART1_TX*/\
> + MUX_VAL(CP(UART1_RTS), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M4)) /*GPIO_149*/ \
> + MUX_VAL(CP(UART1_CTS), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M4)) /*GPIO_150*/ \
> + MUX_VAL(CP(UART1_RX), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*UART1_RX*/\
> + MUX_VAL(CP(MCBSP4_CLKX), ? ? ?(IEN ?| PTD | DIS | M1)) /*SSI1_DAT_RX*/\
> + MUX_VAL(CP(MCBSP4_DR), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M1)) /*SSI1_FLAG_RX*/\
> + MUX_VAL(CP(MCBSP4_DX), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M1)) /*SSI1_RDY_RX*/\
> + MUX_VAL(CP(MCBSP4_FSX), ? ? ? (IEN ?| PTD | DIS | M1)) /*SSI1_WAKE*/\
> + MUX_VAL(CP(MCBSP1_CLKR), ? ? ?(IDIS | PTU | EN ?| M4)) /*GPIO_156*/\
> + MUX_VAL(CP(MCBSP1_FSR), ? ? ? (IDIS | PTU | EN ?| M4)) /*GPIO_157*/\
> + MUX_VAL(CP(MCBSP1_DX), ? ? ? ? ? ? ? ?(IDIS | PTD | EN ?| M4)) /*GPIO_158*/\
> + MUX_VAL(CP(MCBSP1_DR), ? ? ? ? ? ? ? ?(IDIS | PTU | EN ?| M4)) /*GPIO_159*/\
> + MUX_VAL(CP(MCBSP_CLKS), ? ? ? (IEN ?| PTU | DIS | M0)) /*McBSP_CLKS*/\
> + MUX_VAL(CP(MCBSP1_FSX), ? ? ? (IEN ?| PTD | DIS | M4)) /*GPIO_161*/\
> + MUX_VAL(CP(MCBSP1_CLKX), ? ? ?(IDIS | PTD | DIS | M4)) /*GPIO_162*/\
> + /*Serial Interface*/\
> + MUX_VAL(CP(UART3_CTS_RCTX), ? (IEN ?| PTD | EN ?| M0)) /*UART3_CTS_RCTX*/\
> + MUX_VAL(CP(UART3_RTS_SD), ? ? (IDIS | PTD | DIS | M0)) /*UART3_RTS_SD */\
> + MUX_VAL(CP(UART3_RX_IRRX), ? ?(IEN ?| PTD | DIS | M0)) /*UART3_RX_IRRX*/\
> + MUX_VAL(CP(UART3_TX_IRTX), ? ?(IDIS | PTD | DIS | M0)) /*UART3_TX_IRTX*/\
> + MUX_VAL(CP(HSUSB0_CLK), ? ? ? (IEN ?| PTD | DIS | M0)) /*HSUSB0_CLK*/\
> + MUX_VAL(CP(HSUSB0_STP), ? ? ? (IDIS | PTU | EN ?| M0)) /*HSUSB0_STP*/\
> + MUX_VAL(CP(HSUSB0_DIR), ? ? ? (IEN ?| PTD | DIS | M0)) /*HSUSB0_DIR*/\
> + MUX_VAL(CP(HSUSB0_NXT), ? ? ? (IEN ?| PTD | DIS | M0)) /*HSUSB0_NXT*/\
> + MUX_VAL(CP(HSUSB0_DATA0), ? ? (IEN ?| PTD | DIS | M0)) /*HSUSB0_DATA0*/\
> + MUX_VAL(CP(HSUSB0_DATA1), ? ? (IEN ?| PTD | DIS | M0)) /*HSUSB0_DATA1*/\
> + MUX_VAL(CP(HSUSB0_DATA2), ? ? (IEN ?| PTD | DIS | M0)) /*HSUSB0_DATA2*/\
> + MUX_VAL(CP(HSUSB0_DATA3), ? ? (IEN ?| PTD | DIS | M0)) /*HSUSB0_DATA3*/\
> + MUX_VAL(CP(HSUSB0_DATA4), ? ? (IEN ?| PTD | DIS | M0)) /*HSUSB0_DATA4*/\
> + MUX_VAL(CP(HSUSB0_DATA5), ? ? (IEN ?| PTD | DIS | M0)) /*HSUSB0_DATA5*/\
> + MUX_VAL(CP(HSUSB0_DATA6), ? ? (IEN ?| PTD | DIS | M0)) /*HSUSB0_DATA6*/\
> + MUX_VAL(CP(HSUSB0_DATA7), ? ? (IEN ?| PTD | DIS | M0)) /*HSUSB0_DATA7*/\
> + MUX_VAL(CP(I2C1_SCL), ? ? ? ? (IEN ?| PTU | EN ?| M0)) /*I2C1_SCL*/\
> + MUX_VAL(CP(I2C1_SDA), ? ? ? ? (IEN ?| PTU | EN ?| M0)) /*I2C1_SDA*/\
> + MUX_VAL(CP(I2C2_SCL), ? ? ? ? (IEN ?| PTU | EN ?| M4)) /*GPIO_168*/\
> + MUX_VAL(CP(I2C2_SDA), ? ? ? ? (IEN ?| PTU | EN ?| M4)) /*GPIO_183*/\
> + MUX_VAL(CP(I2C3_SCL), ? ? ? ? (IEN ?| PTU | EN ?| M0)) /*I2C3_SCL*/\
> + MUX_VAL(CP(I2C3_SDA), ? ? ? ? (IEN ?| PTU | EN ?| M0)) /*I2C3_SDA*/\
> + MUX_VAL(CP(I2C4_SCL), ? ? ? ? (IEN ?| PTU | EN ?| M0)) /*I2C4_SCL*/\
> + MUX_VAL(CP(I2C4_SDA), ? ? ? ? (IEN ?| PTU | EN ?| M0)) /*I2C4_SDA*/\
> + MUX_VAL(CP(HDQ_SIO), ? ? ? ? ?(IDIS | PTU | EN ?| M4)) /*GPIO_170*/\
> + MUX_VAL(CP(MCSPI1_CLK), ? ? ? (IDIS | PTU | EN ?| M0)) /*SPI1_CLK*/\
> + MUX_VAL(CP(MCSPI1_SIMO), ? ? ?(IDIS | PTU | DIS | M0)) /*SPI1_SIMO*/\
> + MUX_VAL(CP(MCSPI1_SOMI), ? ? ?(IEN ?| PTD | DIS | M0)) /*McSPI1_SOMI*/\
> + MUX_VAL(CP(MCSPI1_CS0), ? ? ? (IEN ?| PTD | EN ?| M0)) /*McSPI1_CS0*/\
> + MUX_VAL(CP(MCSPI1_CS1), ? ? ? (IDIS | PTD | EN ?| M0)) /*McSPI1_CS1*/\
> + MUX_VAL(CP(MCSPI1_CS2), ? ? ? (IDIS | PTD | DIS | M4)) /*GPIO_176*/\
> + /* USB EHCI (port 2) */\
> + MUX_VAL(CP(MCSPI1_CS3), ? ? ? (IDIS | PTU | EN ?| M0)) /*SPI1_CS3*/\
> + MUX_VAL(CP(MCSPI2_CLK), ? ? ? (IEN ?| PTU | DIS | M3)) /*HSUSB2_DATA7*/\
> + MUX_VAL(CP(MCSPI2_SIMO), ? ? ?(IEN ?| PTU | DIS | M3)) /*HSUSB2_DATA4*/\
> + MUX_VAL(CP(MCSPI2_SOMI), ? ? ?(IEN ?| PTU | DIS | M3)) /*HSUSB2_DATA5*/\
> + MUX_VAL(CP(MCSPI2_CS0), ? ? ? (IEN ?| PTU | DIS | M3)) /*HSUSB2_DATA6*/\
> + MUX_VAL(CP(MCSPI2_CS1), ? ? ? (IEN ?| PTU | DIS | M3)) /*HSUSB2_DATA3*/\
> + MUX_VAL(CP(ETK_D10_ES2), ? ? ?(IDIS | PTU | DIS | M3)) /*HSUSB2_CLK*/\
> + MUX_VAL(CP(ETK_D11_ES2), ? ? ?(IDIS | PTU | DIS | M3)) /*HSUSB2_STP*/\
> + MUX_VAL(CP(ETK_D12_ES2), ? ? ?(IEN ?| PTU | DIS | M3)) /*HSUSB2_DIR*/\
> + MUX_VAL(CP(ETK_D13_ES2), ? ? ?(IEN ?| PTU | DIS | M3)) /*HSUSB2_NXT*/\
> + MUX_VAL(CP(ETK_D14_ES2), ? ? ?(IEN ?| PTU | DIS | M3)) /*HSUSB2_DATA0*/\
> + MUX_VAL(CP(ETK_D15_ES2), ? ? ?(IEN ?| PTU | DIS | M3)) /*HSUSB2_DATA1*/\
> + /*Control and debug */\
> + MUX_VAL(CP(SYS_32K), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SYS_32K*/\
> + MUX_VAL(CP(SYS_CLKREQ), ? ? ? (IEN ?| PTD | DIS | M0)) /*SYS_CLKREQ*/\
> + MUX_VAL(CP(SYS_NIRQ), ? ? ? ? (IEN ?| PTU | EN ?| M0)) /*SYS_nIRQ*/\
> + MUX_VAL(CP(SYS_BOOT0), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M4)) /*GPIO_2*/\
> + MUX_VAL(CP(SYS_BOOT1), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M4)) /*GPIO_3*/\
> + MUX_VAL(CP(SYS_BOOT2), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M4)) /*GPIO_4 - MMC1_WP*/\
> + MUX_VAL(CP(SYS_BOOT3), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M4)) /*GPIO_5*/\
> + MUX_VAL(CP(SYS_BOOT4), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M4)) /*GPIO_6*/\
> + MUX_VAL(CP(SYS_BOOT5), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M4)) /*GPIO_7*/\
> + MUX_VAL(CP(SYS_BOOT6), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M4)) /*GPIO_8*/ \
> + MUX_VAL(CP(SYS_OFF_MODE), ? ? (IEN ?| PTD | DIS | M0)) /*SYS_OFF_MODE*/\
> + MUX_VAL(CP(SYS_CLKOUT1), ? ? ?(IEN ?| PTD | DIS | M0)) /*SYS_CLKOUT1*/\
> + MUX_VAL(CP(SYS_CLKOUT2), ? ? ?(IEN ?| PTU | EN ?| M4)) /*GPIO_186*/\
> + MUX_VAL(CP(ETK_CLK_ES2), ? ? ?(IDIS | PTU | EN ?| M3)) /*HSUSB1_STP*/\
> + MUX_VAL(CP(ETK_CTL_ES2), ? ? ?(IDIS | PTU | EN ?| M4)) /*GPIO_13*/\
> + MUX_VAL(CP(ETK_D0_ES2), ? ? ? (IEN ?| PTU | DIS | M3)) /*HSUSB1_DATA0*/\
> + MUX_VAL(CP(ETK_D1_ES2), ? ? ? (IEN ?| PTU | DIS | M3)) /*HSUSB1_DATA1*/\
> + MUX_VAL(CP(ETK_D2_ES2), ? ? ? (IEN ?| PTU | DIS | M3)) /*HSUSB1_DATA2*/\
> + MUX_VAL(CP(ETK_D3_ES2), ? ? ? (IEN ?| PTU | DIS | M3)) /*HSUSB1_DATA7*/\
> + MUX_VAL(CP(ETK_D4_ES2), ? ? ? (IEN ?| PTU | DIS | M3)) /*HSUSB1_DATA4*/\
> + MUX_VAL(CP(ETK_D5_ES2), ? ? ? (IEN ?| PTU | DIS | M3)) /*HSUSB1_DATA5*/\
> + MUX_VAL(CP(ETK_D6_ES2), ? ? ? (IEN ?| PTU | DIS | M3)) /*HSUSB1_DATA6*/\
> + MUX_VAL(CP(ETK_D7_ES2), ? ? ? (IEN ?| PTU | DIS | M3)) /*HSUSB1_DATA3*/\
> + MUX_VAL(CP(ETK_D8_ES2), ? ? ? (IDIS | PTU | EN ?| M4)) /*GPIO_22*/\
> + MUX_VAL(CP(ETK_D9_ES2), ? ? ? (IEN ?| PTU | DIS | M3)) /*HSUSB1_NXT*/\
> + MUX_VAL(CP(D2D_MCAD1), ? ? ? ? ? ? ? ?(IEN ?| PTD | EN ?| M0)) /*d2d_mcad1*/\
> + MUX_VAL(CP(D2D_MCAD2), ? ? ? ? ? ? ? ?(IEN ?| PTD | EN ?| M0)) /*d2d_mcad2*/\
> + MUX_VAL(CP(D2D_MCAD3), ? ? ? ? ? ? ? ?(IEN ?| PTD | EN ?| M0)) /*d2d_mcad3*/\
> + MUX_VAL(CP(D2D_MCAD4), ? ? ? ? ? ? ? ?(IEN ?| PTD | EN ?| M0)) /*d2d_mcad4*/\
> + MUX_VAL(CP(D2D_MCAD5), ? ? ? ? ? ? ? ?(IEN ?| PTD | EN ?| M0)) /*d2d_mcad5*/\
> + MUX_VAL(CP(D2D_MCAD6), ? ? ? ? ? ? ? ?(IEN ?| PTD | EN ?| M0)) /*d2d_mcad6*/\
> + MUX_VAL(CP(D2D_MCAD7), ? ? ? ? ? ? ? ?(IEN ?| PTD | EN ?| M0)) /*d2d_mcad7*/\
> + MUX_VAL(CP(D2D_MCAD8), ? ? ? ? ? ? ? ?(IEN ?| PTD | EN ?| M0)) /*d2d_mcad8*/\
> + MUX_VAL(CP(D2D_MCAD9), ? ? ? ? ? ? ? ?(IEN ?| PTD | EN ?| M0)) /*d2d_mcad9*/\
> + MUX_VAL(CP(D2D_MCAD10), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad10*/\
> + MUX_VAL(CP(D2D_MCAD11), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad11*/\
> + MUX_VAL(CP(D2D_MCAD12), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad12*/\
> + MUX_VAL(CP(D2D_MCAD13), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad13*/\
> + MUX_VAL(CP(D2D_MCAD14), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad14*/\
> + MUX_VAL(CP(D2D_MCAD15), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad15*/\
> + MUX_VAL(CP(D2D_MCAD16), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad16*/\
> + MUX_VAL(CP(D2D_MCAD17), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad17*/\
> + MUX_VAL(CP(D2D_MCAD18), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad18*/\
> + MUX_VAL(CP(D2D_MCAD19), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad19*/\
> + MUX_VAL(CP(D2D_MCAD20), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad20*/\
> + MUX_VAL(CP(D2D_MCAD21), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad21*/\
> + MUX_VAL(CP(D2D_MCAD22), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad22*/\
> + MUX_VAL(CP(D2D_MCAD23), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad23*/\
> + MUX_VAL(CP(D2D_MCAD24), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad24*/\
> + MUX_VAL(CP(D2D_MCAD25), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad25*/\
> + MUX_VAL(CP(D2D_MCAD26), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad26*/\
> + MUX_VAL(CP(D2D_MCAD27), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad27*/\
> + MUX_VAL(CP(D2D_MCAD28), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad28*/\
> + MUX_VAL(CP(D2D_MCAD29), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad29*/\
> + MUX_VAL(CP(D2D_MCAD30), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad30*/\
> + MUX_VAL(CP(D2D_MCAD31), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad31*/\
> + MUX_VAL(CP(D2D_MCAD32), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad32*/\
> + MUX_VAL(CP(D2D_MCAD33), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad33*/\
> + MUX_VAL(CP(D2D_MCAD34), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad34*/\
> + MUX_VAL(CP(D2D_MCAD35), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad35*/\
> + MUX_VAL(CP(D2D_MCAD36), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad36*/\
> + MUX_VAL(CP(D2D_CLK26MI), ? ? ?(IEN ?| PTD | DIS | M0)) /*d2d_clk26mi*/\
> + MUX_VAL(CP(D2D_NRESPWRON), ? ?(IEN ?| PTD | EN ?| M0)) /*d2d_nrespwron*/\
> + MUX_VAL(CP(D2D_NRESWARM), ? ? (IEN ?| PTU | EN ?| M0)) /*d2d_nreswarm */\
> + MUX_VAL(CP(D2D_ARM9NIRQ), ? ? (IEN ?| PTD | DIS | M0)) /*d2d_arm9nirq */\
> + MUX_VAL(CP(D2D_UMA2P6FIQ), ? ?(IEN ?| PTD | DIS | M0)) /*d2d_uma2p6fiq*/\
> + MUX_VAL(CP(D2D_SPINT), ? ? ? ? ? ? ? ?(IEN ?| PTD | EN ?| M0)) /*d2d_spint*/\
> + MUX_VAL(CP(D2D_FRINT), ? ? ? ? ? ? ? ?(IEN ?| PTD | EN ?| M0)) /*d2d_frint*/\
> + MUX_VAL(CP(D2D_DMAREQ0), ? ? ?(IEN ?| PTD | DIS | M0)) /*d2d_dmareq0*/\
> + MUX_VAL(CP(D2D_DMAREQ1), ? ? ?(IEN ?| PTD | DIS | M0)) /*d2d_dmareq1*/\
> + MUX_VAL(CP(D2D_DMAREQ2), ? ? ?(IEN ?| PTD | DIS | M0)) /*d2d_dmareq2*/\
> + MUX_VAL(CP(D2D_DMAREQ3), ? ? ?(IEN ?| PTD | DIS | M0)) /*d2d_dmareq3*/\
> + MUX_VAL(CP(D2D_N3GTRST), ? ? ?(IEN ?| PTD | DIS | M0)) /*d2d_n3gtrst*/\
> + MUX_VAL(CP(D2D_N3GTDI), ? ? ? (IEN ?| PTD | DIS | M0)) /*d2d_n3gtdi*/\
> + MUX_VAL(CP(D2D_N3GTDO), ? ? ? (IEN ?| PTD | DIS | M0)) /*d2d_n3gtdo*/\
> + MUX_VAL(CP(D2D_N3GTMS), ? ? ? (IEN ?| PTD | DIS | M0)) /*d2d_n3gtms*/\
> + MUX_VAL(CP(D2D_N3GTCK), ? ? ? (IEN ?| PTD | DIS | M0)) /*d2d_n3gtck*/\
> + MUX_VAL(CP(D2D_N3GRTCK), ? ? ?(IEN ?| PTD | DIS | M0)) /*d2d_n3grtck*/\
> + MUX_VAL(CP(D2D_MSTDBY), ? ? ? (IEN ?| PTU | EN ?| M0)) /*d2d_mstdby*/\
> + MUX_VAL(CP(D2D_SWAKEUP), ? ? ?(IEN ?| PTD | EN ?| M0)) /*d2d_swakeup*/\
> + MUX_VAL(CP(D2D_IDLEREQ), ? ? ?(IEN ?| PTD | DIS | M0)) /*d2d_idlereq*/\
> + MUX_VAL(CP(D2D_IDLEACK), ? ? ?(IEN ?| PTU | EN ?| M0)) /*d2d_idleack*/\
> + MUX_VAL(CP(D2D_MWRITE), ? ? ? (IEN ?| PTD | DIS | M0)) /*d2d_mwrite*/\
> + MUX_VAL(CP(D2D_SWRITE), ? ? ? (IEN ?| PTD | DIS | M0)) /*d2d_swrite*/\
> + MUX_VAL(CP(D2D_MREAD), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*d2d_mread*/\
> + MUX_VAL(CP(D2D_SREAD), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*d2d_sread*/\
> + MUX_VAL(CP(D2D_MBUSFLAG), ? ? (IEN ?| PTD | DIS | M0)) /*d2d_mbusflag*/\
> + MUX_VAL(CP(D2D_SBUSFLAG), ? ? (IEN ?| PTD | DIS | M0)) /*d2d_sbusflag*/\
> + MUX_VAL(CP(SDRC_CKE0), ? ? ? ? ? ? ? ?(IDIS | PTU | EN ?| M0)) /*sdrc_cke0*/\
> + MUX_VAL(CP(SDRC_CKE1), ? ? ? ? ? ? ? ?(IDIS | PTU | EN ?| M0)) /*sdrc_cke1*/

one more reason why the mux needs a big change in mux handling :( I
think we will end up with 1/2 a dozen crazy and code repetition for
each board... Arrggghhh...
> +
> +#endif
> diff --git a/include/configs/omap3_kboc.h b/include/configs/omap3_kboc.h
> new file mode 100644
> index 0000000..8a59612
> --- /dev/null
> +++ b/include/configs/omap3_kboc.h
> @@ -0,0 +1,317 @@
> +/*
> + * (C) Copyright 2009
> + * KwikByte <www.kwikbyte.com>
> + *
> + * Author :
> + * ?Christian Owens <christian@kwikbyte.com>
> + *
> + * Configuration settings for the KwikByte OMAP3530 KBOC Module.
> + *
> + * Derived from the following:
> + *
> + * (C) Copyright 2006-2008
> + * Texas Instruments.
> + * Richard Woodruff <r-woodruff2@ti.com>
> + * Syed Mohammed Khasim <x0khasim@ti.com>
> + *
> + * Configuration settings for the TI OMAP3530 Beagle 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
> + */
> +#define CONFIG_ARMCORTEXA8 ? ? 1 ? ? ? /* This is an ARM V7 CPU core */
> +#define CONFIG_OMAP ? ? ? ? ? ? ? ? ? ?1 ? ? ? /* in a TI OMAP core */
> +#define CONFIG_OMAP34XX ? ? ? ? ? ? ? ?1 ? ? ? /* which is a 34XX */
> +#define CONFIG_OMAP3430 ? ? ? ? ? ? ? ?1 ? ? ? /* which is in a 3430 */
> +#define CONFIG_OMAP3_KBOC ? ? ?1 ? ? ? /* working with KBOC */
> +
> +#include <asm/arch/cpu.h> ? ? ? ? ? ? ?/* get chip and board defs */
> +#include <asm/arch/omap3.h>
> +
> +/*
> + * Display CPU and Board information
> + */
> +#define CONFIG_DISPLAY_CPUINFO ? ? ? ? 1
> +#define CONFIG_DISPLAY_BOARDINFO ? ? ? 1
> +
> +/* Clock Defines */
> +#define V_OSCK ? ? ? ? ? ? ? ? 26000000 ? ? ? ?/* Clock output from T2 */
> +#define V_SCLK ? ? ? ? ? ? ? ? (V_OSCK >> 1)
> +
> +#undef CONFIG_USE_IRQ ? ? ? ? ? ? ? ? ? ? ? ? ?/* no support for IRQs */
> +#define CONFIG_MISC_INIT_R
> +
> +#define CONFIG_CMDLINE_TAG ? ? ? ? ? ? 1 ? ? ? /* enable passing of ATAGs */
> +#define CONFIG_SETUP_MEMORY_TAGS ? ? ? 1
> +#define CONFIG_INITRD_TAG ? ? ? ? ? ? ?1
> +#define CONFIG_REVISION_TAG ? ? ? ? ? ?1
> +
> +/*
> + * Size of malloc() pool
> + */
> +#define CONFIG_ENV_SIZE ? ? ? ? ? ? ? ? ? ? ? ?SZ_128K /* Total Size Environment */
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* Sector */
> +#define CONFIG_SYS_MALLOC_LEN ? ? ? ? ?(CONFIG_ENV_SIZE + SZ_128K)
> +#define CONFIG_SYS_GBL_DATA_SIZE ? ? ? 128 ? ? /* bytes reserved for */
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* initial data */
> +
> +/*
> + * Hardware drivers
> + */
> +
> +/*
> + * NS16550 Configuration
> + */
> +#define V_NS16550_CLK ? ? ? ? ? ? ? ? ?48000000 ? ? ? ?/* 48MHz (APLL96/2) */
> +
> +#define CONFIG_SYS_NS16550
> +#define CONFIG_SYS_NS16550_SERIAL
> +#define CONFIG_SYS_NS16550_REG_SIZE ? ?(-4)
> +#define CONFIG_SYS_NS16550_CLK ? ? ? ? V_NS16550_CLK
> +
> +/*
> + * select serial console configuration
> + */
> +#define CONFIG_CONS_INDEX ? ? ? ? ? ? ?3
> +#define CONFIG_SYS_NS16550_COM3 ? ? ? ? ? ? ? ?OMAP34XX_UART3
> +#define CONFIG_SERIAL3 ? ? ? ? ? ? ? ? 3 ? ? ? /* UART3 on KBOC Rev 0.90 */
> +
> +/* allow to overwrite serial and ethaddr */
> +#define CONFIG_ENV_OVERWRITE
> +#define CONFIG_BAUDRATE ? ? ? ? ? ? ? ? ? ? ? ?115200
> +#define CONFIG_SYS_BAUDRATE_TABLE ? ? ?{4800, 9600, 19200, 38400, 57600,\
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 115200}
> +#define CONFIG_MMC ? ? ? ? ? ? ? ? ? ? 1
> +#define CONFIG_OMAP3_MMC ? ? ? ? ? ? ? 1
> +#define CONFIG_DOS_PARTITION ? ? ? ? ? 1
> +
> +/* commands to include */
> +#include <config_cmd_default.h>
> +
> +#define CONFIG_CMD_EXT2 ? ? ? ? ? ? ? ?/* EXT2 Support ? ? ? ? ? ? ? ? */
> +#define CONFIG_CMD_FAT ? ? ? ? /* FAT support ? ? ? ? ? ? ? ? ?*/
> +#define CONFIG_CMD_JFFS2 ? ? ? /* JFFS2 Support ? ? ? ? ? ? ? ?*/
> +#define CONFIG_CMD_MTDPARTS ? ?/* Enable MTD parts commands */
> +#define CONFIG_MTD_DEVICE ? ? ?/* needed for mtdparts commands */
> +#define MTDIDS_DEFAULT ? ? ? ? ? ? ? ? "nand0=nand"
> +#define MTDPARTS_DEFAULT ? ? ? ? ? ? ? "mtdparts=nand:512k(x-loader),"\
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "1920k(u-boot),128k(u-boot-env),"\
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "4m(kernel),-(fs)"
> +
> +#define CONFIG_CMD_I2C ? ? ? ? /* I2C serial bus support ? ? ? */
> +#define CONFIG_CMD_MMC ? ? ? ? /* MMC support ? ? ? ? ? ? ? ? ?*/
> +#define CONFIG_CMD_NAND ? ? ? ? ? ? ? ?/* NAND support ? ? ? ? ? ? ? ? */
> +
> +#undef CONFIG_CMD_FLASH ? ? ? ? ? ? ? ?/* flinfo, erase, protect ? ? ? */
> +#undef CONFIG_CMD_FPGA ? ? ? ? /* FPGA configuration Support ? */
> +#undef CONFIG_CMD_IMI ? ? ? ? ?/* iminfo ? ? ? ? ? ? ? ? ? ? ? */
> +#undef CONFIG_CMD_IMLS ? ? ? ? /* List all found images ? ? ? ?*/
> +#undef CONFIG_CMD_NET ? ? ? ? ?/* bootp, tftpboot, rarpboot ? ?*/
> +#undef CONFIG_CMD_NFS ? ? ? ? ?/* NFS support ? ? ? ? ? ? ? ? ?*/
> +
> +#define CONFIG_SYS_NO_FLASH
> +#define CONFIG_SYS_I2C_SPEED ? ? ? ? ? 100000
> +#define CONFIG_SYS_I2C_SLAVE ? ? ? ? ? 1
> +#define CONFIG_SYS_I2C_BUS ? ? ? ? ? ? 0
> +#define CONFIG_SYS_I2C_BUS_SELECT ? ? ?1
> +#define CONFIG_DRIVER_OMAP34XX_I2C ? ? 1
> +
> +/*
> + * Board NAND Info.
> + */
> +#define CONFIG_NAND_OMAP_GPMC
> +#define CONFIG_SYS_NAND_ADDR ? ? ? ? ? NAND_BASE ? ? ? /* physical address */
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* to access nand */
> +#define CONFIG_SYS_NAND_BASE ? ? ? ? ? NAND_BASE ? ? ? /* physical address */
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* to access nand at */
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* CS0 */
> +#define GPMC_NAND_ECC_LP_x16_LAYOUT ? ?1
> +
> +#define CONFIG_SYS_MAX_NAND_DEVICE ? ? 1 ? ? ? ? ? ? ? /* Max number of NAND */
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* devices */
> +
> +#define CONFIG_JFFS2_NAND
> +/* nand device jffs2 lives on */
> +#define CONFIG_JFFS2_DEV ? ? ? ? ? ? ? "nand0"
> +/* start of jffs2 partition */
> +#define CONFIG_JFFS2_PART_OFFSET ? ? ? 0x680000
> +#define CONFIG_JFFS2_PART_SIZE ? ? ? ? 0xf980000 ? ? ? /* size of jffs2 */
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* partition */
> +
> +/* Environment information */
> +#define CONFIG_BOOTDELAY ? ? ? ? ? ? ? 3
> +
> +#define CONFIG_EXTRA_ENV_SETTINGS \
> + ? ? ? "loadaddr=0x82000000\0" \
> + ? ? ? "console=ttyS2,115200n8\0" \
> + ? ? ? "videomode=1024x768 at 60,vxres=1024,vyres=768\0" \
> + ? ? ? "videospec=omapfb:vram:2M,vram:4M\0" \
> + ? ? ? "mmcargs=setenv bootargs console=${console} " \
> + ? ? ? ? ? ? ? "video=${videospec},mode:${videomode} " \
> + ? ? ? ? ? ? ? "root=/dev/mmcblk0p2 rw " \
> + ? ? ? ? ? ? ? "rootfstype=ext3 rootwait " \
> + ? ? ? ? ? ? ? "${optargs}\0" \
> + ? ? ? "nandargs=setenv bootargs console=${console} " \
> + ? ? ? ? ? ? ? "video=${videospec},mode:${videomode} " \
> + ? ? ? ? ? ? ? "root=/dev/mtdblock4 rw " \
> + ? ? ? ? ? ? ? "rootfstype=jffs2 " \
> + ? ? ? ? ? ? ? "${optargs}\0" \
> + ? ? ? "loadbootscript=fatload mmc 0 ${loadaddr} boot.scr\0" \
> + ? ? ? "bootscript=echo Running bootscript from mmc ...; " \
> + ? ? ? ? ? ? ? "source ${loadaddr}\0" \
> + ? ? ? "loaduimage=fatload mmc 0 ${loadaddr} uImage\0" \
> + ? ? ? "mmcboot=echo Booting from mmc ...; " \
> + ? ? ? ? ? ? ? "run mmcargs; " \
> + ? ? ? ? ? ? ? "bootm ${loadaddr}\0" \
> + ? ? ? "nandboot=echo Booting from nand ...; " \
> + ? ? ? ? ? ? ? "run nandargs; " \
> + ? ? ? ? ? ? ? "nand read ${loadaddr} 280000 400000; " \
> + ? ? ? ? ? ? ? "bootm ${loadaddr}\0" \
> +
> +#define CONFIG_BOOTCOMMAND \
> + ? ? ? "if mmc init; then " \
> + ? ? ? ? ? ? ? "if run loadbootscript; then " \
> + ? ? ? ? ? ? ? ? ? ? ? "run bootscript; " \
> + ? ? ? ? ? ? ? "else " \
> + ? ? ? ? ? ? ? ? ? ? ? "if run loaduimage; then " \
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "run mmcboot; " \
> + ? ? ? ? ? ? ? ? ? ? ? "else run nandboot; " \
> + ? ? ? ? ? ? ? ? ? ? ? "fi; " \
> + ? ? ? ? ? ? ? "fi; " \
> + ? ? ? "else run nandboot; fi"
> +
> +#define CONFIG_AUTO_COMPLETE ? ? ? ? ? 1
> +/*
> + * Miscellaneous configurable options
> + */
> +#define V_PROMPT ? ? ? ? ? ? ? ? ? ? ? "OMAP3_KBOC # "
> +
> +#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 ? ? ? ? ? ? ?V_PROMPT
> +#define CONFIG_SYS_CBSIZE ? ? ? ? ? ? ?256 ? ? /* Console I/O Buffer Size */
> +/* Print Buffer Size */
> +#define CONFIG_SYS_PBSIZE ? ? ? ? ? ? ?(CONFIG_SYS_CBSIZE + \
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? sizeof(CONFIG_SYS_PROMPT) + 16)
> +#define CONFIG_SYS_MAXARGS ? ? ? ? ? ? 16 ? ? ?/* max number of command args */
> +/* Boot Argument Buffer Size */
> +#define CONFIG_SYS_BARGSIZE ? ? ? ? ? ?(CONFIG_SYS_CBSIZE)
> +
> +#define CONFIG_SYS_MEMTEST_START ? ? ? (OMAP34XX_SDRC_CS0) ? ? /* memtest */
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* works on */
> +#define CONFIG_SYS_MEMTEST_END ? ? ? ? (OMAP34XX_SDRC_CS0 + \
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0x01F00000) /* 31MB */
> +
> +#define CONFIG_SYS_LOAD_ADDR ? ? ? ? ? (OMAP34XX_SDRC_CS0) ? ? /* default */
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* load address */
> +
> +/*
> + * OMAP3 has 12 GP timers, they can be driven by the system clock
> + * (12/13/16.8/19.2/38.4MHz) or by 32KHz clock. We use 13MHz (V_SCLK).
> + * This rate is divided by a local divisor.
> + */
> +#define CONFIG_SYS_TIMERBASE ? ? ? ? ? (OMAP34XX_GPT2)
> +#define CONFIG_SYS_PTV ? ? ? ? ? ? ? ? 2 ? ? ? /* Divisor: 2^(PTV+1) => 8 */
> +#define CONFIG_SYS_HZ ? ? ? ? ? ? ? ? ?1000
> +
> +/*-----------------------------------------------------------------------
> + * Stack sizes
> + *
> + * The stack sizes are set up in start.S using the settings below
> + */
> +#define CONFIG_STACKSIZE ? ? ? SZ_128K /* regular stack */
> +#ifdef CONFIG_USE_IRQ
> +#define CONFIG_STACKSIZE_IRQ ? SZ_4K ? /* IRQ stack */
> +#define CONFIG_STACKSIZE_FIQ ? SZ_4K ? /* FIQ stack */
> +#endif
> +
> +/*-----------------------------------------------------------------------
> + * Physical Memory Map
> + */
> +#define CONFIG_NR_DRAM_BANKS ? 2 ? ? ? /* CS1 may or may not be populated */
> +#define PHYS_SDRAM_1 ? ? ? ? ? OMAP34XX_SDRC_CS0
> +#define PHYS_SDRAM_1_SIZE ? ? ?SZ_32M ?/* at least 32 meg */
> +#define PHYS_SDRAM_2 ? ? ? ? ? OMAP34XX_SDRC_CS1
> +
> +/* SDRAM Bank Allocation method */
> +#define SDRC_R_B_C ? ? ? ? ? ? 1
> +
> +/*-----------------------------------------------------------------------
> + * FLASH and environment organization
> + */
> +
> +/* **** PISMO SUPPORT *** */
> +
> +/* Configure the PISMO */
> +#define PISMO1_NAND_SIZE ? ? ? ? ? ? ? GPMC_SIZE_128M
> +#define PISMO1_ONEN_SIZE ? ? ? ? ? ? ? GPMC_SIZE_128M
> +
> +#define CONFIG_SYS_MAX_FLASH_SECT ? ? ?520 ? ? /* max number of sectors on */
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* one chip */
> +#define CONFIG_SYS_MAX_FLASH_BANKS ? ? 2 ? ? ? /* max number of flash banks */
> +#define CONFIG_SYS_MONITOR_LEN ? ? ? ? SZ_256K /* Reserve 2 sectors */
> +
> +#define CONFIG_SYS_FLASH_BASE ? ? ? ? ?boot_flash_base
> +
> +/* Monitor at start of flash */
> +#define CONFIG_SYS_MONITOR_BASE ? ? ? ? ? ? ? ?CONFIG_SYS_FLASH_BASE
> +#define CONFIG_SYS_ONENAND_BASE ? ? ? ? ? ? ? ?ONENAND_MAP
> +
> +#define CONFIG_ENV_IS_IN_NAND ? ? ? ? ?1
> +#define ONENAND_ENV_OFFSET ? ? ? ? ? ? 0x260000 /* environment starts here */
> +#define SMNAND_ENV_OFFSET ? ? ? ? ? ? ?0x260000 /* environment starts here */
> +
> +#define CONFIG_SYS_ENV_SECT_SIZE ? ? ? boot_flash_sec
> +#define CONFIG_ENV_OFFSET ? ? ? ? ? ? ?boot_flash_off
> +#define CONFIG_ENV_ADDR ? ? ? ? ? ? ? ? ? ? ? ?SMNAND_ENV_OFFSET
> +
> +/*-----------------------------------------------------------------------
> + * CFI FLASH driver setup
> + */
> +/* timeout values are in ticks */
> +#define CONFIG_SYS_FLASH_ERASE_TOUT ? ?(100 * CONFIG_SYS_HZ)
> +#define CONFIG_SYS_FLASH_WRITE_TOUT ? ?(100 * CONFIG_SYS_HZ)
> +
> +/* Flash banks JFFS2 should use */
> +#define CONFIG_SYS_MAX_MTD_BANKS ? ? ? (CONFIG_SYS_MAX_FLASH_BANKS + \
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? CONFIG_SYS_MAX_NAND_DEVICE)
> +#define CONFIG_SYS_JFFS2_MEM_NAND
> +/* use flash_info[2] */
> +#define CONFIG_SYS_JFFS2_FIRST_BANK ? ?CONFIG_SYS_MAX_FLASH_BANKS
> +#define CONFIG_SYS_JFFS2_NUM_BANKS ? ? 1
> +
> +#ifndef __ASSEMBLY__
> +extern gpmc_csx_t *nand_cs_base;
> +extern gpmc_t *gpmc_cfg_base;
> +extern unsigned int boot_flash_base;
> +extern volatile unsigned int boot_flash_env_addr;
> +extern unsigned int boot_flash_off;
> +extern unsigned int boot_flash_sec;
> +extern unsigned int boot_flash_type;
> +#endif
> +
> +#endif /* __CONFIG_H */
> --
> 1.5.4.3
>
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH] Add support for the KwikByte KBOC OMAP35xx board
  2009-07-10  1:06 ` Nishanth Menon
@ 2009-07-10 16:27   ` christian at kwikbyte.com
  2009-07-12 13:13   ` Jean-Christophe PLAGNIOL-VILLARD
  1 sibling, 0 replies; 15+ messages in thread
From: christian at kwikbyte.com @ 2009-07-10 16:27 UTC (permalink / raw)
  To: u-boot

Quoting Nishanth Menon <menon.nishanth@gmail.com>:

> On Thu, Jul 9, 2009 at 6:03 PM, <christian@kwikbyte.com> wrote:
>> Subject: [PATCH] Add support for the KwikByte KBOC OMAP35xx board
> Do you have some link that you can point us to what is KwikByte KBOC
> board? give us some explanation..

The KBOC <www.kwikbyte.com/KBOC.html> is a system module intended to  
help users transition easily from from single boards to larger  
production volume.  By design, the hardware is very much like the  
BeagleBoard which explains the code similarities.

>
>>
>> Signed-off-by: Christian Owens <christian@kwikbyte.com>
>> ---
>> ?MAINTAINERS ? ? ? ? ? ? ? ? ?| ? ?4 +
>> ?MAKEALL ? ? ? ? ? ? ? ? ? ? ?| ? ?1 +
>> ?Makefile ? ? ? ? ? ? ? ? ? ? | ? ?3 +
>> ?board/omap3/common/Makefile ?| ? ?1 +
>> ?board/omap3/kboc/Makefile ? ?| ? 49 ++++++
>> ?board/omap3/kboc/config.mk ? | ? 33 ++++
>> ?board/omap3/kboc/kboc.c ? ? ?| ?106 ++++++++++++
>> ?board/omap3/kboc/kboc.h ? ? ?| ?382
>> ++++++++++++++++++++++++++++++++++++++++++
>> ?include/configs/omap3_kboc.h | ?317 +++++++++++++++++++++++++++++++++++
>> ?9 files changed, 896 insertions(+), 0 deletions(-)
>> ?create mode 100644 board/omap3/kboc/Makefile
>> ?create mode 100644 board/omap3/kboc/config.mk
>> ?create mode 100644 board/omap3/kboc/kboc.c
>> ?create mode 100644 board/omap3/kboc/kboc.h
>> ?create mode 100644 include/configs/omap3_kboc.h
>>
>> diff --git a/MAINTAINERS b/MAINTAINERS
>> index 0041112..cc55df9 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -686,6 +686,10 @@ Alex Z
>> ? ? ? ?lart ? ? ? ? ? ?SA1100
>> ? ? ? ?dnp1110 ? ? ? ? SA1110
>>
>> +Christian Owens <christian@kwikbyte.com>
>> +
>> + ? ? ? omap3_kboc ? ? ?ARM CORTEX-A8 (OMAP35xx SoC)
>> +
>> ?-------------------------------------------------------------------------
>>
>> ?Unknown / orphaned boards:
>> diff --git a/MAKEALL b/MAKEALL
>> index 41f1445..ac0c5d9 100755
>> --- a/MAKEALL
>> +++ b/MAKEALL
>> @@ -572,6 +572,7 @@ LIST_ARM_CORTEX_A8=" ? ? ? ? ? ? ? ?\
>> ? ? ? ?omap3_pandora ? ? ? ? ? \
>> ? ? ? ?omap3_zoom1 ? ? ? ? ? ? \
>> ? ? ? ?omap3_zoom2 ? ? ? ? ? ? \
>> + ? ? ? omap3_kboc ? ? ? ? ? ? ?\
>> ?"
>>
>> ?#########################################################################
>> diff --git a/Makefile b/Makefile
>> index 2a06440..b204917 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -3040,6 +3040,9 @@ omap3_zoom1_config : ? ? ?unconfig
>> ?omap3_zoom2_config : ?unconfig
>> ? ? ? ?@$(MKCONFIG) $(@:_config=) arm arm_cortexa8 zoom2 omap3 omap3
>>
>> +omap3_kboc_config : ? ?unconfig
>> + ? ? ? @$(MKCONFIG) $(@:_config=) arm arm_cortexa8 kboc omap3 omap3
>> +
>> ?#########################################################################
>> ?## XScale Systems
>> ?#########################################################################
>> diff --git a/board/omap3/common/Makefile b/board/omap3/common/Makefile
>> index b8a0b14..4f7a20b 100644
>> --- a/board/omap3/common/Makefile
>> +++ b/board/omap3/common/Makefile
>> @@ -34,6 +34,7 @@ COBJS-$(CONFIG_OMAP3_OVERO) += power.o
>> ?COBJS-$(CONFIG_OMAP3_PANDORA) += power.o
>> ?COBJS-$(CONFIG_OMAP3_ZOOM1) += power.o
>> ?COBJS-$(CONFIG_OMAP3_ZOOM2) += power.o
>> +COBJS-$(CONFIG_OMAP3_KBOC) += power.o
>>
>> ?COBJS := $(COBJS-y)
>> ?SRCS ?:= $(COBJS:.o=.c)
>> diff --git a/board/omap3/kboc/Makefile b/board/omap3/kboc/Makefile
>> new file mode 100644
>> index 0000000..2c77444
>> --- /dev/null
>> +++ b/board/omap3/kboc/Makefile
>> @@ -0,0 +1,49 @@
>> +#
>> +# (C) Copyright 2000, 2001, 2002
>> +# Wolfgang Denk, DENX Software Engineering, wd at 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 ?:= kboc.o
>> +
>> +SRCS ? := $(COBJS:.o=.c)
>> +OBJS ? := $(addprefix $(obj),$(COBJS))
>> +
>> +$(LIB): ? ? ? ?$(obj).depend $(OBJS)
>> + ? ? ? $(AR) $(ARFLAGS) $@ $(OBJS)
>> +
>> +clean:
>> + ? ? ? rm -f $(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/omap3/kboc/config.mk b/board/omap3/kboc/config.mk
>> new file mode 100644
>> index 0000000..879b2e2
>> --- /dev/null
>> +++ b/board/omap3/kboc/config.mk
>> @@ -0,0 +1,33 @@
>> +#
>> +# (C) Copyright 2006
>> +# Texas Instruments, <www.ti.com>
>> +#
>> +# Beagle Board uses OMAP3 (ARM-CortexA8) cpu
>> +# see http://www.ti.com/ for more information on Texas Instruments
> is this board beagleboard? should this be here? mebbe you could take
> state copyrights right?

We use the same (copy of) file in the new directory.  Without any  
changes, I assume the original copyrights should remain?

>> +#
>> +# 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
>> +#
>> +# Physical Address:
>> +# 8000'0000 (bank0)
>> +# A000/0000 (bank1)
>> +# Linux-Kernel is expected to be at 8000'8000, entry 8000'8000
>> +# (mem base + reserved)
>> +
>> +# For use with external or internal boots.
>> +TEXT_BASE = 0x80e80000
>> diff --git a/board/omap3/kboc/kboc.c b/board/omap3/kboc/kboc.c
>> new file mode 100644
>> index 0000000..5fc9b96
>> --- /dev/null
>> +++ b/board/omap3/kboc/kboc.c
>> @@ -0,0 +1,106 @@
>> +/*
>> + * (C) Copyright 2009
>> + * KwikByte <www.kwikbyte.com>
>> + *
> bit more info on the board is so useful for someone to read - remember
> you would be selling your board this way too.. give us more info and
> we can hopefully help..

Thanks.  I can add more description.

>
>> + * Author :
>> + * ?Christian Owens <christian@kwikbyte.com>
>> + *
>> + * Derived from the following:
>> + *
>> + * (C) Copyright 2004-2008
>> + * Texas Instruments, <www.ti.com>
>> + *
>> + * Author :
>> + * ? ? Sunil Kumar <sunilsaini05@gmail.com>
>> + * ? ? Shashi Ranjan <shashiranjanmca05@gmail.com>
>> + *
>> + * Derived from Beagle Board and 3430 SDP code by
>> + * ? ? Richard Woodruff <r-woodruff2@ti.com>
>> + * ? ? Syed Mohammed Khasim <khasim@ti.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/mux.h>
>> +#include <asm/arch/sys_proto.h>
>> +#include <asm/arch/gpio.h>
>> +#include <asm/mach-types.h>
>> +#include "kboc.h"
>> +
>> +/*
>> + * Routine: board_init
>> + * Description: Early hardware init.
>> + */
>> +int board_init(void)
>> +{
>> + ? ? ? DECLARE_GLOBAL_DATA_PTR;
>> +
>> + ? ? ? gpmc_init(); /* in SRAM or SDRAM, finish GPMC */
>> + ? ? ? /* board id for Linux */
>> + ? ? ? gd->bd->bi_arch_number = MACH_TYPE_OMAP3_KBOC;
>> + ? ? ? /* boot param addr */
>> + ? ? ? gd->bd->bi_boot_params = (OMAP34XX_SDRC_CS0 + 0x100);
>> +
>> + ? ? ? return 0;
>> +}
>> +
>> +/*
>> + * Routine: misc_init_r
>> + * Description: Configure board specific parts
>> + */
>> +int misc_init_r(void)
>> +{
>> + ? ? ? gpio_t *gpio1_base = (gpio_t *)OMAP34XX_GPIO1_BASE;
>> + ? ? ? gpio_t *gpio5_base = (gpio_t *)OMAP34XX_GPIO5_BASE;
>> + ? ? ? gpio_t *gpio6_base = (gpio_t *)OMAP34XX_GPIO6_BASE;
>> +
>> + ? ? ? power_init_r();
>> +
>> + ? ? ? /* Configure GPIOs to output */
>> + ? ? ? writel(~(GPIO23 | GPIO17 | GPIO12 | GPIO11 | GPIO10 | GPIO8  
>>  | GPIO2),
>> + ? ? ? ? ? ? ? &gpio6_base->oe);
>> + ? ? ? writel(~(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 |
>> + ? ? ? ? ? ? ? GPIO13 | GPIO12), &gpio5_base->oe);
>> + ? ? ? writel(~(GPIO22 | GPIO13), &gpio1_base->oe);
>> +
>> + ? ? ? /* Set GPIOs */
>> + ? ? ? writel(GPIO23 | GPIO17 | GPIO10 | GPIO8 | GPIO2,
>> + ? ? ? ? ? ? ? &gpio6_base->setdataout);
>> + ? ? ? writel(GPIO31 | GPIO29 | GPIO28 | GPIO22 | GPIO21 | GPIO13 | GPIO12,
>> + ? ? ? ? ? ? ? &gpio5_base->setdataout);
>> + ? ? ? writel(GPIO22 | GPIO13,
>> + ? ? ? ? ? ? ? &gpio1_base->setdataout);
> Aieeeee....... what are these gpios and why do they need to be set high?
>
> normally you might want to do setdataout followed by oe?

This format is taken directly from the existing code for BeagleBoard.   
The pins are a little different and I can add some comments.

>> +
>> + ? ? ? dieid_num_r();
>> +
>> + ? ? ? return 0;
>> +}
>> +
>> +/*
>> + * Routine: set_muxconf_regs
>> + * Description: Setting up the configuration Mux registers specific to the
>> + * ? ? ? ? ? ? hardware. Many pins need to be moved from protect to primary
>> + * ? ? ? ? ? ? mode.
>> + */
>> +void set_muxconf_regs(void)
>> +{
>> + ? ? ? MUX_KBOC();
>> +}
>> diff --git a/board/omap3/kboc/kboc.h b/board/omap3/kboc/kboc.h
>> new file mode 100644
>> index 0000000..41c3b9e
>> --- /dev/null
>> +++ b/board/omap3/kboc/kboc.h
>> @@ -0,0 +1,382 @@
>> +/*
>> + * (C) Copyright 2009
>> + * KwikByte <www.kwikbyte.com>
>> + *
>> + * Author :
>> + * ?Christian Owens <christian@kwikbyte.com>
>> + *
>> + * Derived from the following:
>> + *
>> + * (C) Copyright 2008
>> + * Dirk Behme <dirk.behme@gmail.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
>> + */
>> +#ifndef _KBOC_H_
>> +#define _KBOC_H_
>> +
>> +const omap3_sysinfo sysinfo = {
>> + ? ? ? DDR_STACKED,
>> + ? ? ? "OMAP3 KBOC board",
>> +#if defined(CONFIG_ENV_IS_IN_ONENAND)
>> + ? ? ? "OneNAND",
>> +#else
>> + ? ? ? "NAND",
>> +#endif
>
> err... CONFIG_ENV_IS_IN_NAND is defined as 1 in config header.. means
> never support onenand?

This is also taken from existing BeagleBoard code.  I can remove the  
conditional.

>> +};
>> +
>> +/*
>> + * IEN ?- Input Enable
>> + * IDIS - Input Disable
>> + * PTD ?- Pull type Down
>> + * PTU ?- Pull type Up
>> + * DIS ?- Pull type selection is inactive
>> + * EN ? - Pull type selection is active
>> + * M0 ? - Mode 0
>> + * The commented string gives the final mux configuration for that pin
>> + */
>> +#define MUX_KBOC() \
>> + /*SDRC*/\
>> + MUX_VAL(CP(SDRC_D0), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D0*/\
>> + MUX_VAL(CP(SDRC_D1), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D1*/\
>> + MUX_VAL(CP(SDRC_D2), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D2*/\
>> + MUX_VAL(CP(SDRC_D3), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D3*/\
>> + MUX_VAL(CP(SDRC_D4), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D4*/\
>> + MUX_VAL(CP(SDRC_D5), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D5*/\
>> + MUX_VAL(CP(SDRC_D6), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D6*/\
>> + MUX_VAL(CP(SDRC_D7), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D7*/\
>> + MUX_VAL(CP(SDRC_D8), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D8*/\
>> + MUX_VAL(CP(SDRC_D9), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D9*/\
>> + MUX_VAL(CP(SDRC_D10), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D10*/\
>> + MUX_VAL(CP(SDRC_D11), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D11*/\
>> + MUX_VAL(CP(SDRC_D12), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D12*/\
>> + MUX_VAL(CP(SDRC_D13), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D13*/\
>> + MUX_VAL(CP(SDRC_D14), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D14*/\
>> + MUX_VAL(CP(SDRC_D15), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D15*/\
>> + MUX_VAL(CP(SDRC_D16), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D16*/\
>> + MUX_VAL(CP(SDRC_D17), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D17*/\
>> + MUX_VAL(CP(SDRC_D18), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D18*/\
>> + MUX_VAL(CP(SDRC_D19), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D19*/\
>> + MUX_VAL(CP(SDRC_D20), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D20*/\
>> + MUX_VAL(CP(SDRC_D21), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D21*/\
>> + MUX_VAL(CP(SDRC_D22), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D22*/\
>> + MUX_VAL(CP(SDRC_D23), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D23*/\
>> + MUX_VAL(CP(SDRC_D24), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D24*/\
>> + MUX_VAL(CP(SDRC_D25), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D25*/\
>> + MUX_VAL(CP(SDRC_D26), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D26*/\
>> + MUX_VAL(CP(SDRC_D27), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D27*/\
>> + MUX_VAL(CP(SDRC_D28), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D28*/\
>> + MUX_VAL(CP(SDRC_D29), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D29*/\
>> + MUX_VAL(CP(SDRC_D30), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D30*/\
>> + MUX_VAL(CP(SDRC_D31), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D31*/\
>> + MUX_VAL(CP(SDRC_CLK), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_CLK*/\
>> + MUX_VAL(CP(SDRC_DQS0), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M0))   
>> /*SDRC_DQS0*/\
>> + MUX_VAL(CP(SDRC_DQS1), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M0))   
>> /*SDRC_DQS1*/\
>> + MUX_VAL(CP(SDRC_DQS2), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M0))   
>> /*SDRC_DQS2*/\
>> + MUX_VAL(CP(SDRC_DQS3), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M0))   
>> /*SDRC_DQS3*/\
>> + /*GPMC*/\
>> + MUX_VAL(CP(GPMC_A1), ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*GPMC_A1*/\
>> + MUX_VAL(CP(GPMC_A2), ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*GPMC_A2*/\
>> + MUX_VAL(CP(GPMC_A3), ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*GPMC_A3*/\
>> + MUX_VAL(CP(GPMC_A4), ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*GPMC_A4*/\
>> + MUX_VAL(CP(GPMC_A5), ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*GPMC_A5*/\
>> + MUX_VAL(CP(GPMC_A6), ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*GPMC_A6*/\
>> + MUX_VAL(CP(GPMC_A7), ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*GPMC_A7*/\
>> + MUX_VAL(CP(GPMC_A8), ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*GPMC_A8*/\
>> + MUX_VAL(CP(GPMC_A9), ? ? ? ? ?(IDIS | PTD | DIS | M0)) /*GPMC_A9*/\
>> + MUX_VAL(CP(GPMC_A10), ? ? ? ? (IDIS | PTD | DIS | M0)) /*GPMC_A10*/\
>> + MUX_VAL(CP(GPMC_D0), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*GPMC_D0*/\
>> + MUX_VAL(CP(GPMC_D1), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*GPMC_D1*/\
>> + MUX_VAL(CP(GPMC_D2), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*GPMC_D2*/\
>> + MUX_VAL(CP(GPMC_D3), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*GPMC_D3*/\
>> + MUX_VAL(CP(GPMC_D4), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*GPMC_D4*/\
>> + MUX_VAL(CP(GPMC_D5), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*GPMC_D5*/\
>> + MUX_VAL(CP(GPMC_D6), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*GPMC_D6*/\
>> + MUX_VAL(CP(GPMC_D7), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*GPMC_D7*/\
>> + MUX_VAL(CP(GPMC_D8), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*GPMC_D8*/\
>> + MUX_VAL(CP(GPMC_D9), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*GPMC_D9*/\
>> + MUX_VAL(CP(GPMC_D10), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*GPMC_D10*/\
>> + MUX_VAL(CP(GPMC_D11), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*GPMC_D11*/\
>> + MUX_VAL(CP(GPMC_D12), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*GPMC_D12*/\
>> + MUX_VAL(CP(GPMC_D13), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*GPMC_D13*/\
>> + MUX_VAL(CP(GPMC_D14), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*GPMC_D14*/\
>> + MUX_VAL(CP(GPMC_D15), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*GPMC_D15*/\
>> + MUX_VAL(CP(GPMC_NCS0), ? ? ? ? ? ? ? ?(IDIS | PTU | EN ?| M0))   
>> /*GPMC_nCS0*/\
>> + MUX_VAL(CP(GPMC_NCS1), ? ? ? ? ? ? ? ?(IDIS | PTU | EN ?| M0))   
>> /*GPMC_nCS1*/\
>> + MUX_VAL(CP(GPMC_NCS2), ? ? ? ? ? ? ? ?(IDIS | PTU | EN ?| M0))   
>> /*GPMC_nCS2*/\
>> + MUX_VAL(CP(GPMC_NCS3), ? ? ? ? ? ? ? ?(IDIS | PTU | EN ?| M0))   
>> /*GPMC_nCS3*/\
>> + MUX_VAL(CP(GPMC_NCS4), ? ? ? ? ? ? ? ?(IDIS | PTU | EN ?| M0))   
>> /*GPMC_nCS4*/\
>> + MUX_VAL(CP(GPMC_NCS5), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0))   
>> /*GPMC_nCS5*/\
>> + MUX_VAL(CP(GPMC_NCS6), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M1))   
>> /*SYS_nDMA_REQ2*/\
>> + MUX_VAL(CP(GPMC_NCS7), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M1))   
>> /*SYS_nDMA_REQ3*/\
>> + MUX_VAL(CP(GPMC_NBE1), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M0))   
>> /*GPMC_nBE1*/\
>> + MUX_VAL(CP(GPMC_WAIT2), ? ? ? (IEN ?| PTU | EN ?| M0)) /*GPMC_WAIT2*/\
>> + MUX_VAL(CP(GPMC_WAIT3), ? ? ? (IEN ?| PTU | EN ?| M0)) /*GPMC_WAIT3*/\
>> + MUX_VAL(CP(GPMC_CLK), ? ? ? ? (IDIS | PTD | DIS | M0)) /*GPMC_CLK*/\
>> + MUX_VAL(CP(GPMC_NADV_ALE), ? ?(IDIS | PTD | DIS | M0)) /*GPMC_nADV_ALE*/\
>> + MUX_VAL(CP(GPMC_NOE), ? ? ? ? (IDIS | PTD | DIS | M0)) /*GPMC_nOE*/\
>> + MUX_VAL(CP(GPMC_NWE), ? ? ? ? (IDIS | PTD | DIS | M0)) /*GPMC_nWE*/\
>> + MUX_VAL(CP(GPMC_NBE0_CLE), ? ?(IDIS | PTD | DIS | M0)) /*GPMC_nBE0_CLE*/\
>> + MUX_VAL(CP(GPMC_NWP), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*GPMC_nWP*/\
>> + MUX_VAL(CP(GPMC_WAIT0), ? ? ? (IEN ?| PTU | EN ?| M0)) /*GPMC_WAIT0*/\
>> + MUX_VAL(CP(GPMC_WAIT1), ? ? ? (IEN ?| PTU | EN ?| M0)) /*GPMC_WAIT1*/\
>> + /*DSS*/\
>> + MUX_VAL(CP(DSS_PCLK), ? ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_PCLK*/\
>> + MUX_VAL(CP(DSS_HSYNC), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0))   
>> /*DSS_HSYNC*/\
>> + MUX_VAL(CP(DSS_VSYNC), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0))   
>> /*DSS_VSYNC*/\
>> + MUX_VAL(CP(DSS_ACBIAS), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_ACBIAS*/\
>> + MUX_VAL(CP(DSS_DATA0), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0))   
>> /*DSS_DATA0*/\
>> + MUX_VAL(CP(DSS_DATA1), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0))   
>> /*DSS_DATA1*/\
>> + MUX_VAL(CP(DSS_DATA2), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0))   
>> /*DSS_DATA2*/\
>> + MUX_VAL(CP(DSS_DATA3), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0))   
>> /*DSS_DATA3*/\
>> + MUX_VAL(CP(DSS_DATA4), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0))   
>> /*DSS_DATA4*/\
>> + MUX_VAL(CP(DSS_DATA5), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0))   
>> /*DSS_DATA5*/\
>> + MUX_VAL(CP(DSS_DATA6), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0))   
>> /*DSS_DATA6*/\
>> + MUX_VAL(CP(DSS_DATA7), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0))   
>> /*DSS_DATA7*/\
>> + MUX_VAL(CP(DSS_DATA8), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0))   
>> /*DSS_DATA8*/\
>> + MUX_VAL(CP(DSS_DATA9), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0))   
>> /*DSS_DATA9*/\
>> + MUX_VAL(CP(DSS_DATA10), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_DATA10*/\
>> + MUX_VAL(CP(DSS_DATA11), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_DATA11*/\
>> + MUX_VAL(CP(DSS_DATA12), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_DATA12*/\
>> + MUX_VAL(CP(DSS_DATA13), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_DATA13*/\
>> + MUX_VAL(CP(DSS_DATA14), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_DATA14*/\
>> + MUX_VAL(CP(DSS_DATA15), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_DATA15*/\
>> + MUX_VAL(CP(DSS_DATA16), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_DATA16*/\
>> + MUX_VAL(CP(DSS_DATA17), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_DATA17*/\
>> + MUX_VAL(CP(DSS_DATA18), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_DATA18*/\
>> + MUX_VAL(CP(DSS_DATA19), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_DATA19*/\
>> + MUX_VAL(CP(DSS_DATA20), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_DATA20*/\
>> + MUX_VAL(CP(DSS_DATA21), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_DATA21*/\
>> + MUX_VAL(CP(DSS_DATA22), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_DATA22*/\
>> + MUX_VAL(CP(DSS_DATA23), ? ? ? (IDIS | PTD | DIS | M0)) /*DSS_DATA23*/\
>> + /*CAMERA*/\
>> + MUX_VAL(CP(CAM_HS), ? ? ? ? ? (IEN ?| PTU | EN ?| M0)) /*CAM_HS */\
>> + MUX_VAL(CP(CAM_VS), ? ? ? ? ? (IEN ?| PTU | EN ?| M0)) /*CAM_VS */\
>> + MUX_VAL(CP(CAM_XCLKA), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0))   
>> /*CAM_XCLKA*/\
>> + MUX_VAL(CP(CAM_PCLK), ? ? ? ? (IEN ?| PTU | EN ?| M0)) /*CAM_PCLK*/\
>> + MUX_VAL(CP(CAM_FLD), ? ? ? ? ?(IDIS | PTD | DIS | M4)) /*GPIO_98*/\
>> + MUX_VAL(CP(CAM_D0), ? ? ? ? ? (IEN ?| PTD | DIS | M0)) /*CAM_D0*/\
>> + MUX_VAL(CP(CAM_D1), ? ? ? ? ? (IEN ?| PTD | DIS | M0)) /*CAM_D1*/\
>> + MUX_VAL(CP(CAM_D2), ? ? ? ? ? (IEN ?| PTD | DIS | M0)) /*CAM_D2*/\
>> + MUX_VAL(CP(CAM_D3), ? ? ? ? ? (IEN ?| PTD | DIS | M0)) /*CAM_D3*/\
>> + MUX_VAL(CP(CAM_D4), ? ? ? ? ? (IEN ?| PTD | DIS | M0)) /*CAM_D4*/\
>> + MUX_VAL(CP(CAM_D5), ? ? ? ? ? (IEN ?| PTD | DIS | M0)) /*CAM_D5*/\
>> + MUX_VAL(CP(CAM_D6), ? ? ? ? ? (IEN ?| PTD | DIS | M0)) /*CAM_D6*/\
>> + MUX_VAL(CP(CAM_D7), ? ? ? ? ? (IEN ?| PTD | DIS | M0)) /*CAM_D7*/\
>> + MUX_VAL(CP(CAM_D8), ? ? ? ? ? (IEN ?| PTD | DIS | M0)) /*CAM_D8*/\
>> + MUX_VAL(CP(CAM_D9), ? ? ? ? ? (IEN ?| PTD | DIS | M0)) /*CAM_D9*/\
>> + MUX_VAL(CP(CAM_D10), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*CAM_D10*/\
>> + MUX_VAL(CP(CAM_D11), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*CAM_D11*/\
>> + MUX_VAL(CP(CAM_XCLKB), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0))   
>> /*CAM_XCLKB*/\
>> + MUX_VAL(CP(CAM_WEN), ? ? ? ? ?(IEN ?| PTD | DIS | M4)) /*GPIO_167*/\
>> + MUX_VAL(CP(CAM_STROBE), ? ? ? (IDIS | PTD | DIS | M0)) /*CAM_STROBE*/\
>> + MUX_VAL(CP(CSI2_DX0), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*CSI2_DX0*/\
>> + MUX_VAL(CP(CSI2_DY0), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*CSI2_DY0*/\
>> + MUX_VAL(CP(CSI2_DX1), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*CSI2_DX1*/\
>> + MUX_VAL(CP(CSI2_DY1), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*CSI2_DY1*/\
>> + /*Audio Interface */\
>> + MUX_VAL(CP(MCBSP2_FSX), ? ? ? (IEN ?| PTD | DIS | M0)) /*McBSP2_FSX*/\
>> + MUX_VAL(CP(MCBSP2_CLKX), ? ? ?(IEN ?| PTD | DIS | M0)) /*McBSP2_CLKX*/\
>> + MUX_VAL(CP(MCBSP2_DR), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M0))   
>> /*McBSP2_DR*/\
>> + MUX_VAL(CP(MCBSP2_DX), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M0))   
>> /*McBSP2_DX*/\
>> + /*Expansion card */\
>> + MUX_VAL(CP(MMC1_CLK), ? ? ? ? (IDIS | PTU | EN ?| M0)) /*MMC1_CLK*/\
>> + MUX_VAL(CP(MMC1_CMD), ? ? ? ? (IEN ?| PTU | EN ?| M0)) /*MMC1_CMD*/\
>> + MUX_VAL(CP(MMC1_DAT0), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M0))   
>> /*MMC1_DAT0*/\
>> + MUX_VAL(CP(MMC1_DAT1), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M0))   
>> /*MMC1_DAT1*/\
>> + MUX_VAL(CP(MMC1_DAT2), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M0))   
>> /*MMC1_DAT2*/\
>> + MUX_VAL(CP(MMC1_DAT3), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M0))   
>> /*MMC1_DAT3*/\
>> + MUX_VAL(CP(MMC1_DAT4), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M0))   
>> /*MMC1_DAT4*/\
>> + MUX_VAL(CP(MMC1_DAT5), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M0))   
>> /*MMC1_DAT5*/\
>> + MUX_VAL(CP(MMC1_DAT6), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M0))   
>> /*MMC1_DAT6*/\
>> + MUX_VAL(CP(MMC1_DAT7), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M0))   
>> /*MMC1_DAT7*/\
>> + /*Wireless LAN */\
>> + MUX_VAL(CP(MMC2_CLK), ? ? ? ? (IEN ?| PTU | EN ?| M4)) /*GPIO_130*/\
>> + MUX_VAL(CP(MMC2_CMD), ? ? ? ? (IEN ?| PTU | EN ?| M4)) /*GPIO_131*/\
>> + MUX_VAL(CP(MMC2_DAT0), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M4))   
>> /*GPIO_132*/\
>> + MUX_VAL(CP(MMC2_DAT1), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M4))   
>> /*GPIO_133*/\
>> + MUX_VAL(CP(MMC2_DAT2), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M4))   
>> /*GPIO_134*/\
>> + MUX_VAL(CP(MMC2_DAT3), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M4))   
>> /*GPIO_135*/\
>> + MUX_VAL(CP(MMC2_DAT4), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M4))   
>> /*GPIO_136*/\
>> + MUX_VAL(CP(MMC2_DAT5), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M4))   
>> /*GPIO_137*/\
>> + MUX_VAL(CP(MMC2_DAT6), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M4))   
>> /*GPIO_138*/\
>> + MUX_VAL(CP(MMC2_DAT7), ? ? ? ? ? ? ? ?(IEN ?| PTU | EN ?| M4))   
>> /*GPIO_139*/\
>> + /*Bluetooth*/\
>> + MUX_VAL(CP(MCBSP3_DX), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M1))   
>> /*UART2_CTS*/\
>> + MUX_VAL(CP(MCBSP3_DR), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M1))   
>> /*UART2_RTS*/\
>> + MUX_VAL(CP(MCBSP3_CLKX), ? ? ?(IDIS | PTD | DIS | M1)) /*UART2_TX*/\
>> + MUX_VAL(CP(MCBSP3_FSX), ? ? ? (IEN ?| PTD | DIS | M1)) /*UART2_RX*/\
>> + MUX_VAL(CP(UART2_CTS), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M4))   
>> /*GPIO_144*/\
>> + MUX_VAL(CP(UART2_RTS), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M4))   
>> /*GPIO_145*/\
>> + MUX_VAL(CP(UART2_TX), ? ? ? ? (IEN ?| PTD | DIS | M4)) /*GPIO_146*/\
>> + MUX_VAL(CP(UART2_RX), ? ? ? ? (IEN ?| PTD | DIS | M4)) /*GPIO_147*/\
>> + /*Modem Interface */\
>> + MUX_VAL(CP(UART1_TX), ? ? ? ? (IDIS | PTD | DIS | M0)) /*UART1_TX*/\
>> + MUX_VAL(CP(UART1_RTS), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M4))   
>> /*GPIO_149*/ \
>> + MUX_VAL(CP(UART1_CTS), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M4))   
>> /*GPIO_150*/ \
>> + MUX_VAL(CP(UART1_RX), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*UART1_RX*/\
>> + MUX_VAL(CP(MCBSP4_CLKX), ? ? ?(IEN ?| PTD | DIS | M1)) /*SSI1_DAT_RX*/\
>> + MUX_VAL(CP(MCBSP4_DR), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M1))   
>> /*SSI1_FLAG_RX*/\
>> + MUX_VAL(CP(MCBSP4_DX), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M1))   
>> /*SSI1_RDY_RX*/\
>> + MUX_VAL(CP(MCBSP4_FSX), ? ? ? (IEN ?| PTD | DIS | M1)) /*SSI1_WAKE*/\
>> + MUX_VAL(CP(MCBSP1_CLKR), ? ? ?(IDIS | PTU | EN ?| M4)) /*GPIO_156*/\
>> + MUX_VAL(CP(MCBSP1_FSR), ? ? ? (IDIS | PTU | EN ?| M4)) /*GPIO_157*/\
>> + MUX_VAL(CP(MCBSP1_DX), ? ? ? ? ? ? ? ?(IDIS | PTD | EN ?| M4))   
>> /*GPIO_158*/\
>> + MUX_VAL(CP(MCBSP1_DR), ? ? ? ? ? ? ? ?(IDIS | PTU | EN ?| M4))   
>> /*GPIO_159*/\
>> + MUX_VAL(CP(MCBSP_CLKS), ? ? ? (IEN ?| PTU | DIS | M0)) /*McBSP_CLKS*/\
>> + MUX_VAL(CP(MCBSP1_FSX), ? ? ? (IEN ?| PTD | DIS | M4)) /*GPIO_161*/\
>> + MUX_VAL(CP(MCBSP1_CLKX), ? ? ?(IDIS | PTD | DIS | M4)) /*GPIO_162*/\
>> + /*Serial Interface*/\
>> + MUX_VAL(CP(UART3_CTS_RCTX), ? (IEN ?| PTD | EN ?| M0)) /*UART3_CTS_RCTX*/\
>> + MUX_VAL(CP(UART3_RTS_SD), ? ? (IDIS | PTD | DIS | M0)) /*UART3_RTS_SD */\
>> + MUX_VAL(CP(UART3_RX_IRRX), ? ?(IEN ?| PTD | DIS | M0)) /*UART3_RX_IRRX*/\
>> + MUX_VAL(CP(UART3_TX_IRTX), ? ?(IDIS | PTD | DIS | M0)) /*UART3_TX_IRTX*/\
>> + MUX_VAL(CP(HSUSB0_CLK), ? ? ? (IEN ?| PTD | DIS | M0)) /*HSUSB0_CLK*/\
>> + MUX_VAL(CP(HSUSB0_STP), ? ? ? (IDIS | PTU | EN ?| M0)) /*HSUSB0_STP*/\
>> + MUX_VAL(CP(HSUSB0_DIR), ? ? ? (IEN ?| PTD | DIS | M0)) /*HSUSB0_DIR*/\
>> + MUX_VAL(CP(HSUSB0_NXT), ? ? ? (IEN ?| PTD | DIS | M0)) /*HSUSB0_NXT*/\
>> + MUX_VAL(CP(HSUSB0_DATA0), ? ? (IEN ?| PTD | DIS | M0)) /*HSUSB0_DATA0*/\
>> + MUX_VAL(CP(HSUSB0_DATA1), ? ? (IEN ?| PTD | DIS | M0)) /*HSUSB0_DATA1*/\
>> + MUX_VAL(CP(HSUSB0_DATA2), ? ? (IEN ?| PTD | DIS | M0)) /*HSUSB0_DATA2*/\
>> + MUX_VAL(CP(HSUSB0_DATA3), ? ? (IEN ?| PTD | DIS | M0)) /*HSUSB0_DATA3*/\
>> + MUX_VAL(CP(HSUSB0_DATA4), ? ? (IEN ?| PTD | DIS | M0)) /*HSUSB0_DATA4*/\
>> + MUX_VAL(CP(HSUSB0_DATA5), ? ? (IEN ?| PTD | DIS | M0)) /*HSUSB0_DATA5*/\
>> + MUX_VAL(CP(HSUSB0_DATA6), ? ? (IEN ?| PTD | DIS | M0)) /*HSUSB0_DATA6*/\
>> + MUX_VAL(CP(HSUSB0_DATA7), ? ? (IEN ?| PTD | DIS | M0)) /*HSUSB0_DATA7*/\
>> + MUX_VAL(CP(I2C1_SCL), ? ? ? ? (IEN ?| PTU | EN ?| M0)) /*I2C1_SCL*/\
>> + MUX_VAL(CP(I2C1_SDA), ? ? ? ? (IEN ?| PTU | EN ?| M0)) /*I2C1_SDA*/\
>> + MUX_VAL(CP(I2C2_SCL), ? ? ? ? (IEN ?| PTU | EN ?| M4)) /*GPIO_168*/\
>> + MUX_VAL(CP(I2C2_SDA), ? ? ? ? (IEN ?| PTU | EN ?| M4)) /*GPIO_183*/\
>> + MUX_VAL(CP(I2C3_SCL), ? ? ? ? (IEN ?| PTU | EN ?| M0)) /*I2C3_SCL*/\
>> + MUX_VAL(CP(I2C3_SDA), ? ? ? ? (IEN ?| PTU | EN ?| M0)) /*I2C3_SDA*/\
>> + MUX_VAL(CP(I2C4_SCL), ? ? ? ? (IEN ?| PTU | EN ?| M0)) /*I2C4_SCL*/\
>> + MUX_VAL(CP(I2C4_SDA), ? ? ? ? (IEN ?| PTU | EN ?| M0)) /*I2C4_SDA*/\
>> + MUX_VAL(CP(HDQ_SIO), ? ? ? ? ?(IDIS | PTU | EN ?| M4)) /*GPIO_170*/\
>> + MUX_VAL(CP(MCSPI1_CLK), ? ? ? (IDIS | PTU | EN ?| M0)) /*SPI1_CLK*/\
>> + MUX_VAL(CP(MCSPI1_SIMO), ? ? ?(IDIS | PTU | DIS | M0)) /*SPI1_SIMO*/\
>> + MUX_VAL(CP(MCSPI1_SOMI), ? ? ?(IEN ?| PTD | DIS | M0)) /*McSPI1_SOMI*/\
>> + MUX_VAL(CP(MCSPI1_CS0), ? ? ? (IEN ?| PTD | EN ?| M0)) /*McSPI1_CS0*/\
>> + MUX_VAL(CP(MCSPI1_CS1), ? ? ? (IDIS | PTD | EN ?| M0)) /*McSPI1_CS1*/\
>> + MUX_VAL(CP(MCSPI1_CS2), ? ? ? (IDIS | PTD | DIS | M4)) /*GPIO_176*/\
>> + /* USB EHCI (port 2) */\
>> + MUX_VAL(CP(MCSPI1_CS3), ? ? ? (IDIS | PTU | EN ?| M0)) /*SPI1_CS3*/\
>> + MUX_VAL(CP(MCSPI2_CLK), ? ? ? (IEN ?| PTU | DIS | M3)) /*HSUSB2_DATA7*/\
>> + MUX_VAL(CP(MCSPI2_SIMO), ? ? ?(IEN ?| PTU | DIS | M3)) /*HSUSB2_DATA4*/\
>> + MUX_VAL(CP(MCSPI2_SOMI), ? ? ?(IEN ?| PTU | DIS | M3)) /*HSUSB2_DATA5*/\
>> + MUX_VAL(CP(MCSPI2_CS0), ? ? ? (IEN ?| PTU | DIS | M3)) /*HSUSB2_DATA6*/\
>> + MUX_VAL(CP(MCSPI2_CS1), ? ? ? (IEN ?| PTU | DIS | M3)) /*HSUSB2_DATA3*/\
>> + MUX_VAL(CP(ETK_D10_ES2), ? ? ?(IDIS | PTU | DIS | M3)) /*HSUSB2_CLK*/\
>> + MUX_VAL(CP(ETK_D11_ES2), ? ? ?(IDIS | PTU | DIS | M3)) /*HSUSB2_STP*/\
>> + MUX_VAL(CP(ETK_D12_ES2), ? ? ?(IEN ?| PTU | DIS | M3)) /*HSUSB2_DIR*/\
>> + MUX_VAL(CP(ETK_D13_ES2), ? ? ?(IEN ?| PTU | DIS | M3)) /*HSUSB2_NXT*/\
>> + MUX_VAL(CP(ETK_D14_ES2), ? ? ?(IEN ?| PTU | DIS | M3)) /*HSUSB2_DATA0*/\
>> + MUX_VAL(CP(ETK_D15_ES2), ? ? ?(IEN ?| PTU | DIS | M3)) /*HSUSB2_DATA1*/\
>> + /*Control and debug */\
>> + MUX_VAL(CP(SYS_32K), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SYS_32K*/\
>> + MUX_VAL(CP(SYS_CLKREQ), ? ? ? (IEN ?| PTD | DIS | M0)) /*SYS_CLKREQ*/\
>> + MUX_VAL(CP(SYS_NIRQ), ? ? ? ? (IEN ?| PTU | EN ?| M0)) /*SYS_nIRQ*/\
>> + MUX_VAL(CP(SYS_BOOT0), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M4)) /*GPIO_2*/\
>> + MUX_VAL(CP(SYS_BOOT1), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M4)) /*GPIO_3*/\
>> + MUX_VAL(CP(SYS_BOOT2), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M4))   
>> /*GPIO_4 - MMC1_WP*/\
>> + MUX_VAL(CP(SYS_BOOT3), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M4)) /*GPIO_5*/\
>> + MUX_VAL(CP(SYS_BOOT4), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M4)) /*GPIO_6*/\
>> + MUX_VAL(CP(SYS_BOOT5), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M4)) /*GPIO_7*/\
>> + MUX_VAL(CP(SYS_BOOT6), ? ? ? ? ? ? ? ?(IDIS | PTD | DIS | M4))   
>> /*GPIO_8*/ \
>> + MUX_VAL(CP(SYS_OFF_MODE), ? ? (IEN ?| PTD | DIS | M0)) /*SYS_OFF_MODE*/\
>> + MUX_VAL(CP(SYS_CLKOUT1), ? ? ?(IEN ?| PTD | DIS | M0)) /*SYS_CLKOUT1*/\
>> + MUX_VAL(CP(SYS_CLKOUT2), ? ? ?(IEN ?| PTU | EN ?| M4)) /*GPIO_186*/\
>> + MUX_VAL(CP(ETK_CLK_ES2), ? ? ?(IDIS | PTU | EN ?| M3)) /*HSUSB1_STP*/\
>> + MUX_VAL(CP(ETK_CTL_ES2), ? ? ?(IDIS | PTU | EN ?| M4)) /*GPIO_13*/\
>> + MUX_VAL(CP(ETK_D0_ES2), ? ? ? (IEN ?| PTU | DIS | M3)) /*HSUSB1_DATA0*/\
>> + MUX_VAL(CP(ETK_D1_ES2), ? ? ? (IEN ?| PTU | DIS | M3)) /*HSUSB1_DATA1*/\
>> + MUX_VAL(CP(ETK_D2_ES2), ? ? ? (IEN ?| PTU | DIS | M3)) /*HSUSB1_DATA2*/\
>> + MUX_VAL(CP(ETK_D3_ES2), ? ? ? (IEN ?| PTU | DIS | M3)) /*HSUSB1_DATA7*/\
>> + MUX_VAL(CP(ETK_D4_ES2), ? ? ? (IEN ?| PTU | DIS | M3)) /*HSUSB1_DATA4*/\
>> + MUX_VAL(CP(ETK_D5_ES2), ? ? ? (IEN ?| PTU | DIS | M3)) /*HSUSB1_DATA5*/\
>> + MUX_VAL(CP(ETK_D6_ES2), ? ? ? (IEN ?| PTU | DIS | M3)) /*HSUSB1_DATA6*/\
>> + MUX_VAL(CP(ETK_D7_ES2), ? ? ? (IEN ?| PTU | DIS | M3)) /*HSUSB1_DATA3*/\
>> + MUX_VAL(CP(ETK_D8_ES2), ? ? ? (IDIS | PTU | EN ?| M4)) /*GPIO_22*/\
>> + MUX_VAL(CP(ETK_D9_ES2), ? ? ? (IEN ?| PTU | DIS | M3)) /*HSUSB1_NXT*/\
>> + MUX_VAL(CP(D2D_MCAD1), ? ? ? ? ? ? ? ?(IEN ?| PTD | EN ?| M0))   
>> /*d2d_mcad1*/\
>> + MUX_VAL(CP(D2D_MCAD2), ? ? ? ? ? ? ? ?(IEN ?| PTD | EN ?| M0))   
>> /*d2d_mcad2*/\
>> + MUX_VAL(CP(D2D_MCAD3), ? ? ? ? ? ? ? ?(IEN ?| PTD | EN ?| M0))   
>> /*d2d_mcad3*/\
>> + MUX_VAL(CP(D2D_MCAD4), ? ? ? ? ? ? ? ?(IEN ?| PTD | EN ?| M0))   
>> /*d2d_mcad4*/\
>> + MUX_VAL(CP(D2D_MCAD5), ? ? ? ? ? ? ? ?(IEN ?| PTD | EN ?| M0))   
>> /*d2d_mcad5*/\
>> + MUX_VAL(CP(D2D_MCAD6), ? ? ? ? ? ? ? ?(IEN ?| PTD | EN ?| M0))   
>> /*d2d_mcad6*/\
>> + MUX_VAL(CP(D2D_MCAD7), ? ? ? ? ? ? ? ?(IEN ?| PTD | EN ?| M0))   
>> /*d2d_mcad7*/\
>> + MUX_VAL(CP(D2D_MCAD8), ? ? ? ? ? ? ? ?(IEN ?| PTD | EN ?| M0))   
>> /*d2d_mcad8*/\
>> + MUX_VAL(CP(D2D_MCAD9), ? ? ? ? ? ? ? ?(IEN ?| PTD | EN ?| M0))   
>> /*d2d_mcad9*/\
>> + MUX_VAL(CP(D2D_MCAD10), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad10*/\
>> + MUX_VAL(CP(D2D_MCAD11), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad11*/\
>> + MUX_VAL(CP(D2D_MCAD12), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad12*/\
>> + MUX_VAL(CP(D2D_MCAD13), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad13*/\
>> + MUX_VAL(CP(D2D_MCAD14), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad14*/\
>> + MUX_VAL(CP(D2D_MCAD15), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad15*/\
>> + MUX_VAL(CP(D2D_MCAD16), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad16*/\
>> + MUX_VAL(CP(D2D_MCAD17), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad17*/\
>> + MUX_VAL(CP(D2D_MCAD18), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad18*/\
>> + MUX_VAL(CP(D2D_MCAD19), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad19*/\
>> + MUX_VAL(CP(D2D_MCAD20), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad20*/\
>> + MUX_VAL(CP(D2D_MCAD21), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad21*/\
>> + MUX_VAL(CP(D2D_MCAD22), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad22*/\
>> + MUX_VAL(CP(D2D_MCAD23), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad23*/\
>> + MUX_VAL(CP(D2D_MCAD24), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad24*/\
>> + MUX_VAL(CP(D2D_MCAD25), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad25*/\
>> + MUX_VAL(CP(D2D_MCAD26), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad26*/\
>> + MUX_VAL(CP(D2D_MCAD27), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad27*/\
>> + MUX_VAL(CP(D2D_MCAD28), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad28*/\
>> + MUX_VAL(CP(D2D_MCAD29), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad29*/\
>> + MUX_VAL(CP(D2D_MCAD30), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad30*/\
>> + MUX_VAL(CP(D2D_MCAD31), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad31*/\
>> + MUX_VAL(CP(D2D_MCAD32), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad32*/\
>> + MUX_VAL(CP(D2D_MCAD33), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad33*/\
>> + MUX_VAL(CP(D2D_MCAD34), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad34*/\
>> + MUX_VAL(CP(D2D_MCAD35), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad35*/\
>> + MUX_VAL(CP(D2D_MCAD36), ? ? ? (IEN ?| PTD | EN ?| M0)) /*d2d_mcad36*/\
>> + MUX_VAL(CP(D2D_CLK26MI), ? ? ?(IEN ?| PTD | DIS | M0)) /*d2d_clk26mi*/\
>> + MUX_VAL(CP(D2D_NRESPWRON), ? ?(IEN ?| PTD | EN ?| M0)) /*d2d_nrespwron*/\
>> + MUX_VAL(CP(D2D_NRESWARM), ? ? (IEN ?| PTU | EN ?| M0)) /*d2d_nreswarm */\
>> + MUX_VAL(CP(D2D_ARM9NIRQ), ? ? (IEN ?| PTD | DIS | M0)) /*d2d_arm9nirq */\
>> + MUX_VAL(CP(D2D_UMA2P6FIQ), ? ?(IEN ?| PTD | DIS | M0)) /*d2d_uma2p6fiq*/\
>> + MUX_VAL(CP(D2D_SPINT), ? ? ? ? ? ? ? ?(IEN ?| PTD | EN ?| M0))   
>> /*d2d_spint*/\
>> + MUX_VAL(CP(D2D_FRINT), ? ? ? ? ? ? ? ?(IEN ?| PTD | EN ?| M0))   
>> /*d2d_frint*/\
>> + MUX_VAL(CP(D2D_DMAREQ0), ? ? ?(IEN ?| PTD | DIS | M0)) /*d2d_dmareq0*/\
>> + MUX_VAL(CP(D2D_DMAREQ1), ? ? ?(IEN ?| PTD | DIS | M0)) /*d2d_dmareq1*/\
>> + MUX_VAL(CP(D2D_DMAREQ2), ? ? ?(IEN ?| PTD | DIS | M0)) /*d2d_dmareq2*/\
>> + MUX_VAL(CP(D2D_DMAREQ3), ? ? ?(IEN ?| PTD | DIS | M0)) /*d2d_dmareq3*/\
>> + MUX_VAL(CP(D2D_N3GTRST), ? ? ?(IEN ?| PTD | DIS | M0)) /*d2d_n3gtrst*/\
>> + MUX_VAL(CP(D2D_N3GTDI), ? ? ? (IEN ?| PTD | DIS | M0)) /*d2d_n3gtdi*/\
>> + MUX_VAL(CP(D2D_N3GTDO), ? ? ? (IEN ?| PTD | DIS | M0)) /*d2d_n3gtdo*/\
>> + MUX_VAL(CP(D2D_N3GTMS), ? ? ? (IEN ?| PTD | DIS | M0)) /*d2d_n3gtms*/\
>> + MUX_VAL(CP(D2D_N3GTCK), ? ? ? (IEN ?| PTD | DIS | M0)) /*d2d_n3gtck*/\
>> + MUX_VAL(CP(D2D_N3GRTCK), ? ? ?(IEN ?| PTD | DIS | M0)) /*d2d_n3grtck*/\
>> + MUX_VAL(CP(D2D_MSTDBY), ? ? ? (IEN ?| PTU | EN ?| M0)) /*d2d_mstdby*/\
>> + MUX_VAL(CP(D2D_SWAKEUP), ? ? ?(IEN ?| PTD | EN ?| M0)) /*d2d_swakeup*/\
>> + MUX_VAL(CP(D2D_IDLEREQ), ? ? ?(IEN ?| PTD | DIS | M0)) /*d2d_idlereq*/\
>> + MUX_VAL(CP(D2D_IDLEACK), ? ? ?(IEN ?| PTU | EN ?| M0)) /*d2d_idleack*/\
>> + MUX_VAL(CP(D2D_MWRITE), ? ? ? (IEN ?| PTD | DIS | M0)) /*d2d_mwrite*/\
>> + MUX_VAL(CP(D2D_SWRITE), ? ? ? (IEN ?| PTD | DIS | M0)) /*d2d_swrite*/\
>> + MUX_VAL(CP(D2D_MREAD), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M0))   
>> /*d2d_mread*/\
>> + MUX_VAL(CP(D2D_SREAD), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M0))   
>> /*d2d_sread*/\
>> + MUX_VAL(CP(D2D_MBUSFLAG), ? ? (IEN ?| PTD | DIS | M0)) /*d2d_mbusflag*/\
>> + MUX_VAL(CP(D2D_SBUSFLAG), ? ? (IEN ?| PTD | DIS | M0)) /*d2d_sbusflag*/\
>> + MUX_VAL(CP(SDRC_CKE0), ? ? ? ? ? ? ? ?(IDIS | PTU | EN ?| M0))   
>> /*sdrc_cke0*/\
>> + MUX_VAL(CP(SDRC_CKE1), ? ? ? ? ? ? ? ?(IDIS | PTU | EN ?| M0))   
>> /*sdrc_cke1*/
>
> one more reason why the mux needs a big change in mux handling :( I
> think we will end up with 1/2 a dozen crazy and code repetition for
> each board... Arrggghhh...

There are a couple subtle differences.  For now, we have to use the  
format available.

>> +
>> +#endif
>> diff --git a/include/configs/omap3_kboc.h b/include/configs/omap3_kboc.h
>> new file mode 100644
>> index 0000000..8a59612
>> --- /dev/null
>> +++ b/include/configs/omap3_kboc.h
>> @@ -0,0 +1,317 @@
>> +/*
>> + * (C) Copyright 2009
>> + * KwikByte <www.kwikbyte.com>
>> + *
>> + * Author :
>> + * ?Christian Owens <christian@kwikbyte.com>
>> + *
>> + * Configuration settings for the KwikByte OMAP3530 KBOC Module.
>> + *
>> + * Derived from the following:
>> + *
>> + * (C) Copyright 2006-2008
>> + * Texas Instruments.
>> + * Richard Woodruff <r-woodruff2@ti.com>
>> + * Syed Mohammed Khasim <x0khasim@ti.com>
>> + *
>> + * Configuration settings for the TI OMAP3530 Beagle 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
>> + */
>> +#define CONFIG_ARMCORTEXA8 ? ? 1 ? ? ? /* This is an ARM V7 CPU core */
>> +#define CONFIG_OMAP ? ? ? ? ? ? ? ? ? ?1 ? ? ? /* in a TI OMAP core */
>> +#define CONFIG_OMAP34XX ? ? ? ? ? ? ? ?1 ? ? ? /* which is a 34XX */
>> +#define CONFIG_OMAP3430 ? ? ? ? ? ? ? ?1 ? ? ? /* which is in a 3430 */
>> +#define CONFIG_OMAP3_KBOC ? ? ?1 ? ? ? /* working with KBOC */
>> +
>> +#include <asm/arch/cpu.h> ? ? ? ? ? ? ?/* get chip and board defs */
>> +#include <asm/arch/omap3.h>
>> +
>> +/*
>> + * Display CPU and Board information
>> + */
>> +#define CONFIG_DISPLAY_CPUINFO ? ? ? ? 1
>> +#define CONFIG_DISPLAY_BOARDINFO ? ? ? 1
>> +
>> +/* Clock Defines */
>> +#define V_OSCK ? ? ? ? ? ? ? ? 26000000 ? ? ? ?/* Clock output from T2 */
>> +#define V_SCLK ? ? ? ? ? ? ? ? (V_OSCK >> 1)
>> +
>> +#undef CONFIG_USE_IRQ ? ? ? ? ? ? ? ? ? ? ? ? ?/* no support for IRQs */
>> +#define CONFIG_MISC_INIT_R
>> +
>> +#define CONFIG_CMDLINE_TAG ? ? ? ? ? ? 1 ? ? ? /* enable passing   
>> of ATAGs */
>> +#define CONFIG_SETUP_MEMORY_TAGS ? ? ? 1
>> +#define CONFIG_INITRD_TAG ? ? ? ? ? ? ?1
>> +#define CONFIG_REVISION_TAG ? ? ? ? ? ?1
>> +
>> +/*
>> + * Size of malloc() pool
>> + */
>> +#define CONFIG_ENV_SIZE ? ? ? ? ? ? ? ? ? ? ? ?SZ_128K /* Total   
>> Size Environment */
>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* Sector */
>> +#define CONFIG_SYS_MALLOC_LEN ? ? ? ? ?(CONFIG_ENV_SIZE + SZ_128K)
>> +#define CONFIG_SYS_GBL_DATA_SIZE ? ? ? 128 ? ? /* bytes reserved for */
>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* initial data */
>> +
>> +/*
>> + * Hardware drivers
>> + */
>> +
>> +/*
>> + * NS16550 Configuration
>> + */
>> +#define V_NS16550_CLK ? ? ? ? ? ? ? ? ?48000000 ? ? ? ?/* 48MHz   
>> (APLL96/2) */
>> +
>> +#define CONFIG_SYS_NS16550
>> +#define CONFIG_SYS_NS16550_SERIAL
>> +#define CONFIG_SYS_NS16550_REG_SIZE ? ?(-4)
>> +#define CONFIG_SYS_NS16550_CLK ? ? ? ? V_NS16550_CLK
>> +
>> +/*
>> + * select serial console configuration
>> + */
>> +#define CONFIG_CONS_INDEX ? ? ? ? ? ? ?3
>> +#define CONFIG_SYS_NS16550_COM3 ? ? ? ? ? ? ? ?OMAP34XX_UART3
>> +#define CONFIG_SERIAL3 ? ? ? ? ? ? ? ? 3 ? ? ? /* UART3 on KBOC Rev 0.90 */
>> +
>> +/* allow to overwrite serial and ethaddr */
>> +#define CONFIG_ENV_OVERWRITE
>> +#define CONFIG_BAUDRATE ? ? ? ? ? ? ? ? ? ? ? ?115200
>> +#define CONFIG_SYS_BAUDRATE_TABLE ? ? ?{4800, 9600, 19200, 38400, 57600,\
>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 115200}
>> +#define CONFIG_MMC ? ? ? ? ? ? ? ? ? ? 1
>> +#define CONFIG_OMAP3_MMC ? ? ? ? ? ? ? 1
>> +#define CONFIG_DOS_PARTITION ? ? ? ? ? 1
>> +
>> +/* commands to include */
>> +#include <config_cmd_default.h>
>> +
>> +#define CONFIG_CMD_EXT2 ? ? ? ? ? ? ? ?/* EXT2 Support ? ? ? ? ? ? ? ? */
>> +#define CONFIG_CMD_FAT ? ? ? ? /* FAT support ? ? ? ? ? ? ? ? ?*/
>> +#define CONFIG_CMD_JFFS2 ? ? ? /* JFFS2 Support ? ? ? ? ? ? ? ?*/
>> +#define CONFIG_CMD_MTDPARTS ? ?/* Enable MTD parts commands */
>> +#define CONFIG_MTD_DEVICE ? ? ?/* needed for mtdparts commands */
>> +#define MTDIDS_DEFAULT ? ? ? ? ? ? ? ? "nand0=nand"
>> +#define MTDPARTS_DEFAULT ? ? ? ? ? ? ? "mtdparts=nand:512k(x-loader),"\
>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "1920k(u-boot),128k(u-boot-env),"\
>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "4m(kernel),-(fs)"
>> +
>> +#define CONFIG_CMD_I2C ? ? ? ? /* I2C serial bus support ? ? ? */
>> +#define CONFIG_CMD_MMC ? ? ? ? /* MMC support ? ? ? ? ? ? ? ? ?*/
>> +#define CONFIG_CMD_NAND ? ? ? ? ? ? ? ?/* NAND support ? ? ? ? ? ? ? ? */
>> +
>> +#undef CONFIG_CMD_FLASH ? ? ? ? ? ? ? ?/* flinfo, erase, protect ? ? ? */
>> +#undef CONFIG_CMD_FPGA ? ? ? ? /* FPGA configuration Support ? */
>> +#undef CONFIG_CMD_IMI ? ? ? ? ?/* iminfo ? ? ? ? ? ? ? ? ? ? ? */
>> +#undef CONFIG_CMD_IMLS ? ? ? ? /* List all found images ? ? ? ?*/
>> +#undef CONFIG_CMD_NET ? ? ? ? ?/* bootp, tftpboot, rarpboot ? ?*/
>> +#undef CONFIG_CMD_NFS ? ? ? ? ?/* NFS support ? ? ? ? ? ? ? ? ?*/
>> +
>> +#define CONFIG_SYS_NO_FLASH
>> +#define CONFIG_SYS_I2C_SPEED ? ? ? ? ? 100000
>> +#define CONFIG_SYS_I2C_SLAVE ? ? ? ? ? 1
>> +#define CONFIG_SYS_I2C_BUS ? ? ? ? ? ? 0
>> +#define CONFIG_SYS_I2C_BUS_SELECT ? ? ?1
>> +#define CONFIG_DRIVER_OMAP34XX_I2C ? ? 1
>> +
>> +/*
>> + * Board NAND Info.
>> + */
>> +#define CONFIG_NAND_OMAP_GPMC
>> +#define CONFIG_SYS_NAND_ADDR ? ? ? ? ? NAND_BASE ? ? ? /* physical  
>>  address */
>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* to access nand */
>> +#define CONFIG_SYS_NAND_BASE ? ? ? ? ? NAND_BASE ? ? ? /* physical  
>>  address */
>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* to   
>> access nand at */
>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* CS0 */
>> +#define GPMC_NAND_ECC_LP_x16_LAYOUT ? ?1
>> +
>> +#define CONFIG_SYS_MAX_NAND_DEVICE ? ? 1 ? ? ? ? ? ? ? /* Max   
>> number of NAND */
>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* devices */
>> +
>> +#define CONFIG_JFFS2_NAND
>> +/* nand device jffs2 lives on */
>> +#define CONFIG_JFFS2_DEV ? ? ? ? ? ? ? "nand0"
>> +/* start of jffs2 partition */
>> +#define CONFIG_JFFS2_PART_OFFSET ? ? ? 0x680000
>> +#define CONFIG_JFFS2_PART_SIZE ? ? ? ? 0xf980000 ? ? ? /* size of jffs2 */
>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* partition */
>> +
>> +/* Environment information */
>> +#define CONFIG_BOOTDELAY ? ? ? ? ? ? ? 3
>> +
>> +#define CONFIG_EXTRA_ENV_SETTINGS \
>> + ? ? ? "loadaddr=0x82000000\0" \
>> + ? ? ? "console=ttyS2,115200n8\0" \
>> + ? ? ? "videomode=1024x768 at 60,vxres=1024,vyres=768\0" \
>> + ? ? ? "videospec=omapfb:vram:2M,vram:4M\0" \
>> + ? ? ? "mmcargs=setenv bootargs console=${console} " \
>> + ? ? ? ? ? ? ? "video=${videospec},mode:${videomode} " \
>> + ? ? ? ? ? ? ? "root=/dev/mmcblk0p2 rw " \
>> + ? ? ? ? ? ? ? "rootfstype=ext3 rootwait " \
>> + ? ? ? ? ? ? ? "${optargs}\0" \
>> + ? ? ? "nandargs=setenv bootargs console=${console} " \
>> + ? ? ? ? ? ? ? "video=${videospec},mode:${videomode} " \
>> + ? ? ? ? ? ? ? "root=/dev/mtdblock4 rw " \
>> + ? ? ? ? ? ? ? "rootfstype=jffs2 " \
>> + ? ? ? ? ? ? ? "${optargs}\0" \
>> + ? ? ? "loadbootscript=fatload mmc 0 ${loadaddr} boot.scr\0" \
>> + ? ? ? "bootscript=echo Running bootscript from mmc ...; " \
>> + ? ? ? ? ? ? ? "source ${loadaddr}\0" \
>> + ? ? ? "loaduimage=fatload mmc 0 ${loadaddr} uImage\0" \
>> + ? ? ? "mmcboot=echo Booting from mmc ...; " \
>> + ? ? ? ? ? ? ? "run mmcargs; " \
>> + ? ? ? ? ? ? ? "bootm ${loadaddr}\0" \
>> + ? ? ? "nandboot=echo Booting from nand ...; " \
>> + ? ? ? ? ? ? ? "run nandargs; " \
>> + ? ? ? ? ? ? ? "nand read ${loadaddr} 280000 400000; " \
>> + ? ? ? ? ? ? ? "bootm ${loadaddr}\0" \
>> +
>> +#define CONFIG_BOOTCOMMAND \
>> + ? ? ? "if mmc init; then " \
>> + ? ? ? ? ? ? ? "if run loadbootscript; then " \
>> + ? ? ? ? ? ? ? ? ? ? ? "run bootscript; " \
>> + ? ? ? ? ? ? ? "else " \
>> + ? ? ? ? ? ? ? ? ? ? ? "if run loaduimage; then " \
>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "run mmcboot; " \
>> + ? ? ? ? ? ? ? ? ? ? ? "else run nandboot; " \
>> + ? ? ? ? ? ? ? ? ? ? ? "fi; " \
>> + ? ? ? ? ? ? ? "fi; " \
>> + ? ? ? "else run nandboot; fi"
>> +
>> +#define CONFIG_AUTO_COMPLETE ? ? ? ? ? 1
>> +/*
>> + * Miscellaneous configurable options
>> + */
>> +#define V_PROMPT ? ? ? ? ? ? ? ? ? ? ? "OMAP3_KBOC # "
>> +
>> +#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 ? ? ? ? ? ? ?V_PROMPT
>> +#define CONFIG_SYS_CBSIZE ? ? ? ? ? ? ?256 ? ? /* Console I/O   
>> Buffer Size */
>> +/* Print Buffer Size */
>> +#define CONFIG_SYS_PBSIZE ? ? ? ? ? ? ?(CONFIG_SYS_CBSIZE + \
>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? sizeof(CONFIG_SYS_PROMPT) + 16)
>> +#define CONFIG_SYS_MAXARGS ? ? ? ? ? ? 16 ? ? ?/* max number of   
>> command args */
>> +/* Boot Argument Buffer Size */
>> +#define CONFIG_SYS_BARGSIZE ? ? ? ? ? ?(CONFIG_SYS_CBSIZE)
>> +
>> +#define CONFIG_SYS_MEMTEST_START ? ? ? (OMAP34XX_SDRC_CS0) ? ? /*   
>> memtest */
>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /*   
>> works on */
>> +#define CONFIG_SYS_MEMTEST_END ? ? ? ? (OMAP34XX_SDRC_CS0 + \
>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0x01F00000) /* 31MB */
>> +
>> +#define CONFIG_SYS_LOAD_ADDR ? ? ? ? ? (OMAP34XX_SDRC_CS0) ? ? /*   
>> default */
>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* load address */
>> +
>> +/*
>> + * OMAP3 has 12 GP timers, they can be driven by the system clock
>> + * (12/13/16.8/19.2/38.4MHz) or by 32KHz clock. We use 13MHz (V_SCLK).
>> + * This rate is divided by a local divisor.
>> + */
>> +#define CONFIG_SYS_TIMERBASE ? ? ? ? ? (OMAP34XX_GPT2)
>> +#define CONFIG_SYS_PTV ? ? ? ? ? ? ? ? 2 ? ? ? /* Divisor:   
>> 2^(PTV+1) => 8 */
>> +#define CONFIG_SYS_HZ ? ? ? ? ? ? ? ? ?1000
>> +
>> +/*-----------------------------------------------------------------------
>> + * Stack sizes
>> + *
>> + * The stack sizes are set up in start.S using the settings below
>> + */
>> +#define CONFIG_STACKSIZE ? ? ? SZ_128K /* regular stack */
>> +#ifdef CONFIG_USE_IRQ
>> +#define CONFIG_STACKSIZE_IRQ ? SZ_4K ? /* IRQ stack */
>> +#define CONFIG_STACKSIZE_FIQ ? SZ_4K ? /* FIQ stack */
>> +#endif
>> +
>> +/*-----------------------------------------------------------------------
>> + * Physical Memory Map
>> + */
>> +#define CONFIG_NR_DRAM_BANKS ? 2 ? ? ? /* CS1 may or may not be   
>> populated */
>> +#define PHYS_SDRAM_1 ? ? ? ? ? OMAP34XX_SDRC_CS0
>> +#define PHYS_SDRAM_1_SIZE ? ? ?SZ_32M ?/* at least 32 meg */
>> +#define PHYS_SDRAM_2 ? ? ? ? ? OMAP34XX_SDRC_CS1
>> +
>> +/* SDRAM Bank Allocation method */
>> +#define SDRC_R_B_C ? ? ? ? ? ? 1
>> +
>> +/*-----------------------------------------------------------------------
>> + * FLASH and environment organization
>> + */
>> +
>> +/* **** PISMO SUPPORT *** */
>> +
>> +/* Configure the PISMO */
>> +#define PISMO1_NAND_SIZE ? ? ? ? ? ? ? GPMC_SIZE_128M
>> +#define PISMO1_ONEN_SIZE ? ? ? ? ? ? ? GPMC_SIZE_128M
>> +
>> +#define CONFIG_SYS_MAX_FLASH_SECT ? ? ?520 ? ? /* max number of   
>> sectors on */
>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* one chip */
>> +#define CONFIG_SYS_MAX_FLASH_BANKS ? ? 2 ? ? ? /* max number of   
>> flash banks */
>> +#define CONFIG_SYS_MONITOR_LEN ? ? ? ? SZ_256K /* Reserve 2 sectors */
>> +
>> +#define CONFIG_SYS_FLASH_BASE ? ? ? ? ?boot_flash_base
>> +
>> +/* Monitor at start of flash */
>> +#define CONFIG_SYS_MONITOR_BASE ? ? ? ? ? ? ? ?CONFIG_SYS_FLASH_BASE
>> +#define CONFIG_SYS_ONENAND_BASE ? ? ? ? ? ? ? ?ONENAND_MAP
>> +
>> +#define CONFIG_ENV_IS_IN_NAND ? ? ? ? ?1
>> +#define ONENAND_ENV_OFFSET ? ? ? ? ? ? 0x260000 /* environment   
>> starts here */
>> +#define SMNAND_ENV_OFFSET ? ? ? ? ? ? ?0x260000 /* environment   
>> starts here */
>> +
>> +#define CONFIG_SYS_ENV_SECT_SIZE ? ? ? boot_flash_sec
>> +#define CONFIG_ENV_OFFSET ? ? ? ? ? ? ?boot_flash_off
>> +#define CONFIG_ENV_ADDR ? ? ? ? ? ? ? ? ? ? ? ?SMNAND_ENV_OFFSET
>> +
>> +/*-----------------------------------------------------------------------
>> + * CFI FLASH driver setup
>> + */
>> +/* timeout values are in ticks */
>> +#define CONFIG_SYS_FLASH_ERASE_TOUT ? ?(100 * CONFIG_SYS_HZ)
>> +#define CONFIG_SYS_FLASH_WRITE_TOUT ? ?(100 * CONFIG_SYS_HZ)
>> +
>> +/* Flash banks JFFS2 should use */
>> +#define CONFIG_SYS_MAX_MTD_BANKS ? ? ? (CONFIG_SYS_MAX_FLASH_BANKS + \
>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? CONFIG_SYS_MAX_NAND_DEVICE)
>> +#define CONFIG_SYS_JFFS2_MEM_NAND
>> +/* use flash_info[2] */
>> +#define CONFIG_SYS_JFFS2_FIRST_BANK ? ?CONFIG_SYS_MAX_FLASH_BANKS
>> +#define CONFIG_SYS_JFFS2_NUM_BANKS ? ? 1
>> +
>> +#ifndef __ASSEMBLY__
>> +extern gpmc_csx_t *nand_cs_base;
>> +extern gpmc_t *gpmc_cfg_base;
>> +extern unsigned int boot_flash_base;
>> +extern volatile unsigned int boot_flash_env_addr;
>> +extern unsigned int boot_flash_off;
>> +extern unsigned int boot_flash_sec;
>> +extern unsigned int boot_flash_type;
>> +#endif
>> +
>> +#endif /* __CONFIG_H */
>> --
>> 1.5.4.3
>>
>>
>> _______________________________________________
>> U-Boot mailing list
>> U-Boot at lists.denx.de
>> http://lists.denx.de/mailman/listinfo/u-boot
>>
>

Thanks for the comments.  If my planned updates are acceptable, I will  
make the changes and submit a new patch.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH] Add support for the KwikByte KBOC OMAP35xx board
  2009-07-10  1:06 ` Nishanth Menon
  2009-07-10 16:27   ` christian at kwikbyte.com
@ 2009-07-12 13:13   ` Jean-Christophe PLAGNIOL-VILLARD
  2009-07-12 13:35     ` Dirk Behme
                       ` (2 more replies)
  1 sibling, 3 replies; 15+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2009-07-12 13:13 UTC (permalink / raw)
  To: u-boot

Could you regenerate it with the following option
git format-patch -M -B -C
> > + ? ? ? /* Configure GPIOs to output */
> > + ? ? ? writel(~(GPIO23 | GPIO17 | GPIO12 | GPIO11 | GPIO10 | GPIO8 | GPIO2),
> > + ? ? ? ? ? ? ? &gpio6_base->oe);
> > + ? ? ? writel(~(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 |
> > + ? ? ? ? ? ? ? GPIO13 | GPIO12), &gpio5_base->oe);
> > + ? ? ? writel(~(GPIO22 | GPIO13), &gpio1_base->oe);
> > +
> > + ? ? ? /* Set GPIOs */
> > + ? ? ? writel(GPIO23 | GPIO17 | GPIO10 | GPIO8 | GPIO2,
> > + ? ? ? ? ? ? ? &gpio6_base->setdataout);
> > + ? ? ? writel(GPIO31 | GPIO29 | GPIO28 | GPIO22 | GPIO21 | GPIO13 | GPIO12,
> > + ? ? ? ? ? ? ? &gpio5_base->setdataout);
> > + ? ? ? writel(GPIO22 | GPIO13,
> > + ? ? ? ? ? ? ? &gpio1_base->setdataout);
> Aieeeee....... what are these gpios and why do they need to be set high?
> 
> normally you might want to do setdataout followed by oe?
btw we have a gpio API now please use it
> > +
> > + ? ? ? dieid_num_r();
> > +
> > + ? ? ? return 0;
> > +}
> > +
> > +/*
> > + * Routine: set_muxconf_regs
> > + * Description: Setting up the configuration Mux registers specific to the
> > + * ? ? ? ? ? ? hardware. Many pins need to be moved from protect to primary
> > + * ? ? ? ? ? ? mode.
> > + */
> > +void set_muxconf_regs(void)
> > +{
> > + ? ? ? MUX_KBOC();
> > +}
> > diff --git a/board/omap3/kboc/kboc.h b/board/omap3/kboc/kboc.h
please create you own vendor dirent
> > new file mode 100644
> > index 0000000..41c3b9e
> > --- /dev/null
> > +++ b/board/omap3/kboc/kboc.h
> > @@ -0,0 +1,382 @@
> > +/*
> > + * (C) Copyright 2009
> > + * KwikByte <www.kwikbyte.com>
> > + *
> > + * Author :
> > + * ?Christian Owens <christian@kwikbyte.com>
> > + *
> > + * Derived from the following:
> > + *
> > + * (C) Copyright 2008
> > + * Dirk Behme <dirk.behme@gmail.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
> > + */
> > +#ifndef _KBOC_H_
> > +#define _KBOC_H_
> > +
> > +const omap3_sysinfo sysinfo = {
> > + ? ? ? DDR_STACKED,
> > + ? ? ? "OMAP3 KBOC board",
> > +#if defined(CONFIG_ENV_IS_IN_ONENAND)
> > + ? ? ? "OneNAND",
> > +#else
> > + ? ? ? "NAND",
> > +#endif
> 
> err... CONFIG_ENV_IS_IN_NAND is defined as 1 in config header.. means
> never support onenand?
> > +};
> > +
> > +/*
> > + * IEN ?- Input Enable
> > + * IDIS - Input Disable
> > + * PTD ?- Pull type Down
> > + * PTU ?- Pull type Up
> > + * DIS ?- Pull type selection is inactive
> > + * EN ? - Pull type selection is active
> > + * M0 ? - Mode 0
> > + * The commented string gives the final mux configuration for that pin
> > + */
> > +#define MUX_KBOC() \
> > + /*SDRC*/\
> > + MUX_VAL(CP(SDRC_D0), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D0*/\
> > + MUX_VAL(CP(SDRC_D1), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D1*/\
> > + MUX_VAL(CP(SDRC_D2), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D2*/\
> > + MUX_VAL(CP(SDRC_D3), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D3*/\
> > + MUX_VAL(CP(SDRC_D4), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D4*/\
> > + MUX_VAL(CP(SDRC_D5), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D5*/\
> > + MUX_VAL(CP(SDRC_D6), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D6*/\
> > + MUX_VAL(CP(SDRC_D7), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D7*/\
> > + MUX_VAL(CP(SDRC_D8), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D8*/\
> > + MUX_VAL(CP(SDRC_D9), ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*SDRC_D9*/\
> > + MUX_VAL(CP(SDRC_D10), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D10*/\
> > + MUX_VAL(CP(SDRC_D11), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D11*/\
> > + MUX_VAL(CP(SDRC_D12), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D12*/\
> > + MUX_VAL(CP(SDRC_D13), ? ? ? ? (IEN ?| PTD | DIS | M0)) /*SDRC_D13*/\
<snip>
> > + MUX_VAL(CP(D2D_FRINT), ? ? ? ? ? ? ? ?(IEN ?| PTD | EN ?| M0)) /*d2d_frint*/\
> > + MUX_VAL(CP(D2D_DMAREQ0), ? ? ?(IEN ?| PTD | DIS | M0)) /*d2d_dmareq0*/\
> > + MUX_VAL(CP(D2D_DMAREQ1), ? ? ?(IEN ?| PTD | DIS | M0)) /*d2d_dmareq1*/\
> > + MUX_VAL(CP(D2D_DMAREQ2), ? ? ?(IEN ?| PTD | DIS | M0)) /*d2d_dmareq2*/\
> > + MUX_VAL(CP(D2D_DMAREQ3), ? ? ?(IEN ?| PTD | DIS | M0)) /*d2d_dmareq3*/\
> > + MUX_VAL(CP(D2D_N3GTRST), ? ? ?(IEN ?| PTD | DIS | M0)) /*d2d_n3gtrst*/\
> > + MUX_VAL(CP(D2D_N3GTDI), ? ? ? (IEN ?| PTD | DIS | M0)) /*d2d_n3gtdi*/\
> > + MUX_VAL(CP(D2D_N3GTDO), ? ? ? (IEN ?| PTD | DIS | M0)) /*d2d_n3gtdo*/\
> > + MUX_VAL(CP(D2D_N3GTMS), ? ? ? (IEN ?| PTD | DIS | M0)) /*d2d_n3gtms*/\
> > + MUX_VAL(CP(D2D_N3GTCK), ? ? ? (IEN ?| PTD | DIS | M0)) /*d2d_n3gtck*/\
> > + MUX_VAL(CP(D2D_N3GRTCK), ? ? ?(IEN ?| PTD | DIS | M0)) /*d2d_n3grtck*/\
> > + MUX_VAL(CP(D2D_MSTDBY), ? ? ? (IEN ?| PTU | EN ?| M0)) /*d2d_mstdby*/\
> > + MUX_VAL(CP(D2D_SWAKEUP), ? ? ?(IEN ?| PTD | EN ?| M0)) /*d2d_swakeup*/\
> > + MUX_VAL(CP(D2D_IDLEREQ), ? ? ?(IEN ?| PTD | DIS | M0)) /*d2d_idlereq*/\
> > + MUX_VAL(CP(D2D_IDLEACK), ? ? ?(IEN ?| PTU | EN ?| M0)) /*d2d_idleack*/\
> > + MUX_VAL(CP(D2D_MWRITE), ? ? ? (IEN ?| PTD | DIS | M0)) /*d2d_mwrite*/\
> > + MUX_VAL(CP(D2D_SWRITE), ? ? ? (IEN ?| PTD | DIS | M0)) /*d2d_swrite*/\
> > + MUX_VAL(CP(D2D_MREAD), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*d2d_mread*/\
> > + MUX_VAL(CP(D2D_SREAD), ? ? ? ? ? ? ? ?(IEN ?| PTD | DIS | M0)) /*d2d_sread*/\
> > + MUX_VAL(CP(D2D_MBUSFLAG), ? ? (IEN ?| PTD | DIS | M0)) /*d2d_mbusflag*/\
> > + MUX_VAL(CP(D2D_SBUSFLAG), ? ? (IEN ?| PTD | DIS | M0)) /*d2d_sbusflag*/\
> > + MUX_VAL(CP(SDRC_CKE0), ? ? ? ? ? ? ? ?(IDIS | PTU | EN ?| M0)) /*sdrc_cke0*/\
> > + MUX_VAL(CP(SDRC_CKE1), ? ? ? ? ? ? ? ?(IDIS | PTU | EN ?| M0)) /*sdrc_cke1*/
> 
> one more reason why the mux needs a big change in mux handling :( I
> think we will end up with 1/2 a dozen crazy and code repetition for
> each board... Arrggghhh...
NM: yes, it's really not easy to follow here
do you plan to do it soon?
> > +
> > +#endif
> > diff --git a/include/configs/omap3_kboc.h b/include/configs/omap3_kboc.h
> > new file mode 100644
> > index 0000000..8a59612
> > --- /dev/null
> > +++ b/include/configs/omap3_kboc.h
> > @@ -0,0 +1,317 @@
> > +/*
> > + * (C) Copyright 2009
> > + * KwikByte <www.kwikbyte.com>
> > + *
> > + * Author :
> > + * ?Christian Owens <christian@kwikbyte.com>
> > + *
> > + * Configuration settings for the KwikByte OMAP3530 KBOC Module.
> > + *
> > + * Derived from the following:
> > + *
> > + * (C) Copyright 2006-2008
> > + * Texas Instruments.
> > + * Richard Woodruff <r-woodruff2@ti.com>
> > + * Syed Mohammed Khasim <x0khasim@ti.com>
> > + *
> > + * Configuration settings for the TI OMAP3530 Beagle 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
> > + */
> > +#define CONFIG_ARMCORTEXA8 ? ? 1 ? ? ? /* This is an ARM V7 CPU core */
> > +#define CONFIG_OMAP ? ? ? ? ? ? ? ? ? ?1 ? ? ? /* in a TI OMAP core */
> > +#define CONFIG_OMAP34XX ? ? ? ? ? ? ? ?1 ? ? ? /* which is a 34XX */
> > +#define CONFIG_OMAP3430 ? ? ? ? ? ? ? ?1 ? ? ? /* which is in a 3430 */
> > +#define CONFIG_OMAP3_KBOC ? ? ?1 ? ? ? /* working with KBOC */
> > +
> > +#include <asm/arch/cpu.h> ? ? ? ? ? ? ?/* get chip and board defs */
> > +#include <asm/arch/omap3.h>
> > +
> > +/*
> > + * Display CPU and Board information
> > + */
> > +#define CONFIG_DISPLAY_CPUINFO ? ? ? ? 1
> > +#define CONFIG_DISPLAY_BOARDINFO ? ? ? 1
> > +
> > +/* Clock Defines */
> > +#define V_OSCK ? ? ? ? ? ? ? ? 26000000 ? ? ? ?/* Clock output from T2 */
> > +#define V_SCLK ? ? ? ? ? ? ? ? (V_OSCK >> 1)
> > +
> > +#undef CONFIG_USE_IRQ ? ? ? ? ? ? ? ? ? ? ? ? ?/* no support for IRQs */
> > +#define CONFIG_MISC_INIT_R
> > +
> > +#define CONFIG_CMDLINE_TAG ? ? ? ? ? ? 1 ? ? ? /* enable passing of ATAGs */
> > +#define CONFIG_SETUP_MEMORY_TAGS ? ? ? 1
> > +#define CONFIG_INITRD_TAG ? ? ? ? ? ? ?1
> > +#define CONFIG_REVISION_TAG ? ? ? ? ? ?1
> > +
> > +/*
> > + * Size of malloc() pool
> > + */
> > +#define CONFIG_ENV_SIZE ? ? ? ? ? ? ? ? ? ? ? ?SZ_128K /* Total Size Environment */
> > + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* Sector */
> > +#define CONFIG_SYS_MALLOC_LEN ? ? ? ? ?(CONFIG_ENV_SIZE + SZ_128K)
> > +#define CONFIG_SYS_GBL_DATA_SIZE ? ? ? 128 ? ? /* bytes reserved for */
> > + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* initial data */
> > +
> > +/*
> > + * Hardware drivers
> > + */
> > +
> > +/*
> > + * NS16550 Configuration
> > + */
> > +#define V_NS16550_CLK ? ? ? ? ? ? ? ? ?48000000 ? ? ? ?/* 48MHz (APLL96/2) */
> > +
> > +#define CONFIG_SYS_NS16550
> > +#define CONFIG_SYS_NS16550_SERIAL
> > +#define CONFIG_SYS_NS16550_REG_SIZE ? ?(-4)
> > +#define CONFIG_SYS_NS16550_CLK ? ? ? ? V_NS16550_CLK
> > +
> > +/*
> > + * select serial console configuration
> > + */
> > +#define CONFIG_CONS_INDEX ? ? ? ? ? ? ?3
> > +#define CONFIG_SYS_NS16550_COM3 ? ? ? ? ? ? ? ?OMAP34XX_UART3
> > +#define CONFIG_SERIAL3 ? ? ? ? ? ? ? ? 3 ? ? ? /* UART3 on KBOC Rev 0.90 */
> > +
> > +/* allow to overwrite serial and ethaddr */
> > +#define CONFIG_ENV_OVERWRITE
> > +#define CONFIG_BAUDRATE ? ? ? ? ? ? ? ? ? ? ? ?115200
> > +#define CONFIG_SYS_BAUDRATE_TABLE ? ? ?{4800, 9600, 19200, 38400, 57600,\
> > + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 115200}
> > +#define CONFIG_MMC ? ? ? ? ? ? ? ? ? ? 1
> > +#define CONFIG_OMAP3_MMC ? ? ? ? ? ? ? 1
> > +#define CONFIG_DOS_PARTITION ? ? ? ? ? 1
> > +
> > +/* commands to include */
> > +#include <config_cmd_default.h>
> > +
> > +#define CONFIG_CMD_EXT2 ? ? ? ? ? ? ? ?/* EXT2 Support ? ? ? ? ? ? ? ? */
> > +#define CONFIG_CMD_FAT ? ? ? ? /* FAT support ? ? ? ? ? ? ? ? ?*/
> > +#define CONFIG_CMD_JFFS2 ? ? ? /* JFFS2 Support ? ? ? ? ? ? ? ?*/
> > +#define CONFIG_CMD_MTDPARTS ? ?/* Enable MTD parts commands */
> > +#define CONFIG_MTD_DEVICE ? ? ?/* needed for mtdparts commands */
> > +#define MTDIDS_DEFAULT ? ? ? ? ? ? ? ? "nand0=nand"
> > +#define MTDPARTS_DEFAULT ? ? ? ? ? ? ? "mtdparts=nand:512k(x-loader),"\
> > + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "1920k(u-boot),128k(u-boot-env),"\
> > + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "4m(kernel),-(fs)"
> > +
> > +#define CONFIG_CMD_I2C ? ? ? ? /* I2C serial bus support ? ? ? */
> > +#define CONFIG_CMD_MMC ? ? ? ? /* MMC support ? ? ? ? ? ? ? ? ?*/
> > +#define CONFIG_CMD_NAND ? ? ? ? ? ? ? ?/* NAND support ? ? ? ? ? ? ? ? */
> > +
> > +#undef CONFIG_CMD_FLASH ? ? ? ? ? ? ? ?/* flinfo, erase, protect ? ? ? */
> > +#undef CONFIG_CMD_FPGA ? ? ? ? /* FPGA configuration Support ? */
> > +#undef CONFIG_CMD_IMI ? ? ? ? ?/* iminfo ? ? ? ? ? ? ? ? ? ? ? */
> > +#undef CONFIG_CMD_IMLS ? ? ? ? /* List all found images ? ? ? ?*/
> > +#undef CONFIG_CMD_NET ? ? ? ? ?/* bootp, tftpboot, rarpboot ? ?*/
> > +#undef CONFIG_CMD_NFS ? ? ? ? ?/* NFS support ? ? ? ? ? ? ? ? ?*/
> > +
> > +#define CONFIG_SYS_NO_FLASH
> > +#define CONFIG_SYS_I2C_SPEED ? ? ? ? ? 100000
> > +#define CONFIG_SYS_I2C_SLAVE ? ? ? ? ? 1
> > +#define CONFIG_SYS_I2C_BUS ? ? ? ? ? ? 0
> > +#define CONFIG_SYS_I2C_BUS_SELECT ? ? ?1
> > +#define CONFIG_DRIVER_OMAP34XX_I2C ? ? 1
> > +
> > +/*
> > + * Board NAND Info.
> > + */
> > +#define CONFIG_NAND_OMAP_GPMC
> > +#define CONFIG_SYS_NAND_ADDR ? ? ? ? ? NAND_BASE ? ? ? /* physical address */
> > + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* to access nand */
> > +#define CONFIG_SYS_NAND_BASE ? ? ? ? ? NAND_BASE ? ? ? /* physical address */
> > + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* to access nand at */
> > + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* CS0 */
> > +#define GPMC_NAND_ECC_LP_x16_LAYOUT ? ?1
> > +
> > +#define CONFIG_SYS_MAX_NAND_DEVICE ? ? 1 ? ? ? ? ? ? ? /* Max number of NAND */
> > + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* devices */
> > +
> > +#define CONFIG_JFFS2_NAND
> > +/* nand device jffs2 lives on */
> > +#define CONFIG_JFFS2_DEV ? ? ? ? ? ? ? "nand0"
> > +/* start of jffs2 partition */
> > +#define CONFIG_JFFS2_PART_OFFSET ? ? ? 0x680000
> > +#define CONFIG_JFFS2_PART_SIZE ? ? ? ? 0xf980000 ? ? ? /* size of jffs2 */
> > + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* partition */
> > +
> > +/* Environment information */
> > +#define CONFIG_BOOTDELAY ? ? ? ? ? ? ? 3
> > +
> > +#define CONFIG_EXTRA_ENV_SETTINGS \
> > + ? ? ? "loadaddr=0x82000000\0" \
> > + ? ? ? "console=ttyS2,115200n8\0" \
> > + ? ? ? "videomode=1024x768 at 60,vxres=1024,vyres=768\0" \
> > + ? ? ? "videospec=omapfb:vram:2M,vram:4M\0" \
> > + ? ? ? "mmcargs=setenv bootargs console=${console} " \
> > + ? ? ? ? ? ? ? "video=${videospec},mode:${videomode} " \
> > + ? ? ? ? ? ? ? "root=/dev/mmcblk0p2 rw " \
> > + ? ? ? ? ? ? ? "rootfstype=ext3 rootwait " \
> > + ? ? ? ? ? ? ? "${optargs}\0" \
> > + ? ? ? "nandargs=setenv bootargs console=${console} " \
> > + ? ? ? ? ? ? ? "video=${videospec},mode:${videomode} " \
> > + ? ? ? ? ? ? ? "root=/dev/mtdblock4 rw " \
> > + ? ? ? ? ? ? ? "rootfstype=jffs2 " \
> > + ? ? ? ? ? ? ? "${optargs}\0" \
> > + ? ? ? "loadbootscript=fatload mmc 0 ${loadaddr} boot.scr\0" \
> > + ? ? ? "bootscript=echo Running bootscript from mmc ...; " \
> > + ? ? ? ? ? ? ? "source ${loadaddr}\0" \
> > + ? ? ? "loaduimage=fatload mmc 0 ${loadaddr} uImage\0" \
> > + ? ? ? "mmcboot=echo Booting from mmc ...; " \
> > + ? ? ? ? ? ? ? "run mmcargs; " \
> > + ? ? ? ? ? ? ? "bootm ${loadaddr}\0" \
> > + ? ? ? "nandboot=echo Booting from nand ...; " \
> > + ? ? ? ? ? ? ? "run nandargs; " \
> > + ? ? ? ? ? ? ? "nand read ${loadaddr} 280000 400000; " \
> > + ? ? ? ? ? ? ? "bootm ${loadaddr}\0" \
> > +
> > +#define CONFIG_BOOTCOMMAND \
> > + ? ? ? "if mmc init; then " \
> > + ? ? ? ? ? ? ? "if run loadbootscript; then " \
> > + ? ? ? ? ? ? ? ? ? ? ? "run bootscript; " \
> > + ? ? ? ? ? ? ? "else " \
> > + ? ? ? ? ? ? ? ? ? ? ? "if run loaduimage; then " \
> > + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "run mmcboot; " \
> > + ? ? ? ? ? ? ? ? ? ? ? "else run nandboot; " \
> > + ? ? ? ? ? ? ? ? ? ? ? "fi; " \
> > + ? ? ? ? ? ? ? "fi; " \
> > + ? ? ? "else run nandboot; fi"
> > +
> > +#define CONFIG_AUTO_COMPLETE ? ? ? ? ? 1
> > +/*
> > + * Miscellaneous configurable options
> > + */
> > +#define V_PROMPT ? ? ? ? ? ? ? ? ? ? ? "OMAP3_KBOC # "
no need of add V_PROMPT define
please use CONFIG_SYS_PROMPT
> > +
> > +#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 ? ? ? ? ? ? ?V_PROMPT
> > +#define CONFIG_SYS_CBSIZE ? ? ? ? ? ? ?256 ? ? /* Console I/O Buffer Size */
> > +/* Print Buffer Size */
> > +#define CONFIG_SYS_PBSIZE ? ? ? ? ? ? ?(CONFIG_SYS_CBSIZE + \
> > + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? sizeof(CONFIG_SYS_PROMPT) + 16)
Best Regards,
J.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH] Add support for the KwikByte KBOC OMAP35xx board
  2009-07-12 13:13   ` Jean-Christophe PLAGNIOL-VILLARD
@ 2009-07-12 13:35     ` Dirk Behme
  2009-07-12 14:48       ` Wolfgang Denk
  2009-07-12 15:20       ` Jean-Christophe PLAGNIOL-VILLARD
  2009-07-12 14:25     ` Nishanth Menon
  2009-07-12 14:45     ` [U-Boot] [PATCH] Add support for the KwikByte KBOC OMAP35xx board Wolfgang Denk
  2 siblings, 2 replies; 15+ messages in thread
From: Dirk Behme @ 2009-07-12 13:35 UTC (permalink / raw)
  To: u-boot

Dear Jean-Christophe,

Jean-Christophe PLAGNIOL-VILLARD wrote:

>>> diff --git a/board/omap3/kboc/kboc.h b/board/omap3/kboc/kboc.h
> please create you own vendor dirent

NACK. We use board/omap3/<board>/<board>.h syntax. So this is fine. 
Everything else would make it inconsistent.

Best regards

Dirk

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH] Add support for the KwikByte KBOC OMAP35xx board
  2009-07-12 13:13   ` Jean-Christophe PLAGNIOL-VILLARD
  2009-07-12 13:35     ` Dirk Behme
@ 2009-07-12 14:25     ` Nishanth Menon
  2009-07-12 14:31       ` Dirk Behme
  2009-07-12 14:45     ` [U-Boot] [PATCH] Add support for the KwikByte KBOC OMAP35xx board Wolfgang Denk
  2 siblings, 1 reply; 15+ messages in thread
From: Nishanth Menon @ 2009-07-12 14:25 UTC (permalink / raw)
  To: u-boot

Jean-Christophe PLAGNIOL-VILLARD said the following on 07/12/2009 08:13 AM:
>>> _sread*/\
>>> + MUX_VAL(CP(D2D_MBUSFLAG),     (IEN  | PTD | DIS | M0)) /*d2d_mbusflag*/\
>>> + MUX_VAL(CP(D2D_SBUSFLAG),     (IEN  | PTD | DIS | M0)) /*d2d_sbusflag*/\
>>> + MUX_VAL(CP(SDRC_CKE0),                (IDIS | PTU | EN  | M0)) /*sdrc_cke0*/\
>>> + MUX_VAL(CP(SDRC_CKE1),                (IDIS | PTU | EN  | M0)) /*sdrc_cke1*/
>>>       
>> one more reason why the mux needs a big change in mux handling :( I
>> think we will end up with 1/2 a dozen crazy and code repetition for
>> each board... Arrggghhh...
>>     
> NM: yes, it's really not easy to follow here
> do you plan to do it soon?
>   
Been a little tied up recent days with "work load" hoping things to ease
down.. will try to send out a mux cleanup rev next weekend..

Regards,
Nishanth Menon

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH] Add support for the KwikByte KBOC OMAP35xx board
  2009-07-12 14:25     ` Nishanth Menon
@ 2009-07-12 14:31       ` Dirk Behme
  2009-07-12 14:50         ` [U-Boot] OMAP MUX handling improvement (was: Add support for the KwikByte KBOC OMAP35xx board) Nishanth Menon
  0 siblings, 1 reply; 15+ messages in thread
From: Dirk Behme @ 2009-07-12 14:31 UTC (permalink / raw)
  To: u-boot

Nishanth Menon wrote:
> Jean-Christophe PLAGNIOL-VILLARD said the following on 07/12/2009 08:13 AM:
>>>> _sread*/\
>>>> + MUX_VAL(CP(D2D_MBUSFLAG),     (IEN  | PTD | DIS | M0)) /*d2d_mbusflag*/\
>>>> + MUX_VAL(CP(D2D_SBUSFLAG),     (IEN  | PTD | DIS | M0)) /*d2d_sbusflag*/\
>>>> + MUX_VAL(CP(SDRC_CKE0),                (IDIS | PTU | EN  | M0)) /*sdrc_cke0*/\
>>>> + MUX_VAL(CP(SDRC_CKE1),                (IDIS | PTU | EN  | M0)) /*sdrc_cke1*/
>>>>       
>>> one more reason why the mux needs a big change in mux handling :( I
>>> think we will end up with 1/2 a dozen crazy and code repetition for
>>> each board... Arrggghhh...
>>>     
>> NM: yes, it's really not easy to follow here
>> do you plan to do it soon?
>>   
> Been a little tied up recent days with "work load" hoping things to ease
> down.. will try to send out a mux cleanup rev next weekend..

Btw, I like the way we do pin mux in U-Boot at the moment (*). Or 
better: I can't imagine a way how to do it even better without 
introducing other disadvantages. But I will enjoy to have a look to 
your changes ;) Maybe you can give us already an idea of how you like 
to change it?

(*) What I like:

Having everything in one file for each board. With this, you can get a 
complete overview of board's pin mux with looking only in one file. 
And you can see immediately for each pin what is configured and how.

Best regards

Dirk

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH] Add support for the KwikByte KBOC OMAP35xx board
  2009-07-12 13:13   ` Jean-Christophe PLAGNIOL-VILLARD
  2009-07-12 13:35     ` Dirk Behme
  2009-07-12 14:25     ` Nishanth Menon
@ 2009-07-12 14:45     ` Wolfgang Denk
  2 siblings, 0 replies; 15+ messages in thread
From: Wolfgang Denk @ 2009-07-12 14:45 UTC (permalink / raw)
  To: u-boot

Dear Jean-Christophe PLAGNIOL-VILLARD,

In message <20090712131357.GE7218@game.jcrosoft.org> you wrote:
>
> > > diff --git a/board/omap3/kboc/kboc.h b/board/omap3/kboc/kboc.h
> please create you own vendor dirent

This is only needed if the company is expected to release any
significant number of boards.

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
...though his invention worked superbly -- his theory was a crock  of
sewage from beginning to end.         - Vernor Vinge, "The Peace War"

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH] Add support for the KwikByte KBOC OMAP35xx board
  2009-07-12 13:35     ` Dirk Behme
@ 2009-07-12 14:48       ` Wolfgang Denk
  2009-07-12 15:06         ` Dirk Behme
  2009-07-12 15:20       ` Jean-Christophe PLAGNIOL-VILLARD
  1 sibling, 1 reply; 15+ messages in thread
From: Wolfgang Denk @ 2009-07-12 14:48 UTC (permalink / raw)
  To: u-boot

Dear Dirk Behme,

In message <4A59E6B3.1070501@googlemail.com> you wrote:
> 
> Jean-Christophe PLAGNIOL-VILLARD wrote:
> >>> diff --git a/board/omap3/kboc/kboc.h b/board/omap3/kboc/kboc.h
> > please create you own vendor dirent
> 
> NACK. We use board/omap3/<board>/<board>.h syntax. So this is fine. 
> Everything else would make it inconsistent.

I'm not sure what you mean by "we" here. The rus  is  that  a  vendor
directory  shall  be  used  when  a company supports any significaant
number (say, more than 2...3) of boards. So when for example  company
FOO who already have other boards in board/foo/* releases their first
OMAP3 board, it will naturally go into board/foo/

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
Peace was the way.
	-- Kirk, "The City on the Edge of Forever", stardate unknown

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] OMAP MUX handling improvement (was: Add support for the KwikByte KBOC OMAP35xx board)
  2009-07-12 14:31       ` Dirk Behme
@ 2009-07-12 14:50         ` Nishanth Menon
  2009-07-12 15:28           ` [U-Boot] OMAP MUX handling improvement Dirk Behme
  0 siblings, 1 reply; 15+ messages in thread
From: Nishanth Menon @ 2009-07-12 14:50 UTC (permalink / raw)
  To: u-boot

Dirk Behme said the following on 07/12/2009 09:31 AM:
> Nishanth Menon wrote:
>> Jean-Christophe PLAGNIOL-VILLARD said the following on 07/12/2009
>> 08:13 AM:
>>>>> _sread*/\
>>>>> + MUX_VAL(CP(D2D_MBUSFLAG),     (IEN  | PTD | DIS | M0))
>>>>> /*d2d_mbusflag*/\
>>>>> + MUX_VAL(CP(D2D_SBUSFLAG),     (IEN  | PTD | DIS | M0))
>>>>> /*d2d_sbusflag*/\
>>>>> + MUX_VAL(CP(SDRC_CKE0),                (IDIS | PTU | EN  | M0))
>>>>> /*sdrc_cke0*/\
>>>>> + MUX_VAL(CP(SDRC_CKE1),                (IDIS | PTU | EN  | M0))
>>>>> /*sdrc_cke1*/
>>>>>       
>>>> one more reason why the mux needs a big change in mux handling :( I
>>>> think we will end up with 1/2 a dozen crazy and code repetition for
>>>> each board... Arrggghhh...
>>>>     
>>> NM: yes, it's really not easy to follow here
>>> do you plan to do it soon?
>>>   
>> Been a little tied up recent days with "work load" hoping things to ease
>> down.. will try to send out a mux cleanup rev next weekend..
>
> Btw, I like the way we do pin mux in U-Boot at the moment (*). Or
> better: I can't imagine a way how to do it even better without
> introducing other disadvantages. But I will enjoy to have a look to
> your changes ;) Maybe you can give us already an idea of how you like
> to change it?
>
> (*) What I like:
>
> Having everything in one file for each board. With this, you can get a
> complete overview of board's pin mux with looking only in one file.
> And you can see immediately for each pin what is configured and how.
Here are few quick things i like and dont like about the mux handling
Pros:
* Simple interface - just a #define
Cons:
* Repetition for every single board for common stuff such as Sdrc dat
regs etc..
* Boards tend to enable *every* mux even if u-boot uses or not.

Proposal stage 1:
* move common mux out to a mux.h, where board files can use the defaults
if they like -> i recollect having send such a patch out some time
back.. but I never got the time to follow up on it.

Proposal stage 2:
* kick out mux settings from each board, which does not belong there ->
e.g. if the board does not do camera at u-boot level ->move that out to
kernel.


This is just my 2 cents..
Regards,
Nishanth Menon

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH] Add support for the KwikByte KBOC OMAP35xx board
  2009-07-12 14:48       ` Wolfgang Denk
@ 2009-07-12 15:06         ` Dirk Behme
  2009-07-12 15:52           ` Wolfgang Denk
  0 siblings, 1 reply; 15+ messages in thread
From: Dirk Behme @ 2009-07-12 15:06 UTC (permalink / raw)
  To: u-boot

Dear Wolfgang,

Wolfgang Denk wrote:
> Dear Dirk Behme,
> 
> In message <4A59E6B3.1070501@googlemail.com> you wrote:
>> Jean-Christophe PLAGNIOL-VILLARD wrote:
>>>>> diff --git a/board/omap3/kboc/kboc.h b/board/omap3/kboc/kboc.h
>>> please create you own vendor dirent
>> NACK. We use board/omap3/<board>/<board>.h syntax. So this is fine. 
>> Everything else would make it inconsistent.
> 
> I'm not sure what you mean by "we" here. 

Most probably the maintainers of all existing board/omap3/* and 
board/davinci/* boards ;)

> The rus  is  that  a  vendor
> directory  shall  be  used  when  a company supports any significaant
> number (say, more than 2...3) of boards. So when for example  company
> FOO who already have other boards in board/foo/* releases their first
> OMAP3 board, it will naturally go into board/foo/

Yes, ok, fine.

I understood Jean-Christophe that he wants

board/omap3/<vendor>

and this is what I doesn't like. At least not for the first board of a 
company. If they, later, add some additional (OMAP3) boards, moving 
then to board/omap3/<vendor>/<board_A>/, 
board/omap3/<vendor>/<board_B>/ etc would be fine, though. But please 
don't make the currently used schema inconsistent just for one (the 
first) board (not knowing if there ever will be an additional one).

Best regards

Dirk

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH] Add support for the KwikByte KBOC OMAP35xx board
  2009-07-12 13:35     ` Dirk Behme
  2009-07-12 14:48       ` Wolfgang Denk
@ 2009-07-12 15:20       ` Jean-Christophe PLAGNIOL-VILLARD
  2009-07-12 15:34         ` Dirk Behme
  1 sibling, 1 reply; 15+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2009-07-12 15:20 UTC (permalink / raw)
  To: u-boot

On 15:35 Sun 12 Jul     , Dirk Behme wrote:
> Dear Jean-Christophe,
> 
> Jean-Christophe PLAGNIOL-VILLARD wrote:
> 
> >>>diff --git a/board/omap3/kboc/kboc.h b/board/omap3/kboc/kboc.h
> >please create you own vendor dirent
> 
> NACK. We use board/omap3/<board>/<board>.h syntax. So this is fine.
> Everything else would make it inconsistent.
have more board in omap3 NACK
omap3 is not a vendor it's a TI soc

I've said it multiple time

No new board will be allow to go in omap3 ditto for davinci

Best Regards,
J.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] OMAP MUX handling improvement
  2009-07-12 14:50         ` [U-Boot] OMAP MUX handling improvement (was: Add support for the KwikByte KBOC OMAP35xx board) Nishanth Menon
@ 2009-07-12 15:28           ` Dirk Behme
  0 siblings, 0 replies; 15+ messages in thread
From: Dirk Behme @ 2009-07-12 15:28 UTC (permalink / raw)
  To: u-boot

Nishanth Menon wrote:
> Dirk Behme said the following on 07/12/2009 09:31 AM:
>> Nishanth Menon wrote:
>>> Jean-Christophe PLAGNIOL-VILLARD said the following on 07/12/2009
>>> 08:13 AM:
>>>>>> _sread*/\
>>>>>> + MUX_VAL(CP(D2D_MBUSFLAG),     (IEN  | PTD | DIS | M0))
>>>>>> /*d2d_mbusflag*/\
>>>>>> + MUX_VAL(CP(D2D_SBUSFLAG),     (IEN  | PTD | DIS | M0))
>>>>>> /*d2d_sbusflag*/\
>>>>>> + MUX_VAL(CP(SDRC_CKE0),                (IDIS | PTU | EN  | M0))
>>>>>> /*sdrc_cke0*/\
>>>>>> + MUX_VAL(CP(SDRC_CKE1),                (IDIS | PTU | EN  | M0))
>>>>>> /*sdrc_cke1*/
>>>>>>       
>>>>> one more reason why the mux needs a big change in mux handling :( I
>>>>> think we will end up with 1/2 a dozen crazy and code repetition for
>>>>> each board... Arrggghhh...
>>>>>     
>>>> NM: yes, it's really not easy to follow here
>>>> do you plan to do it soon?
>>>>   
>>> Been a little tied up recent days with "work load" hoping things to ease
>>> down.. will try to send out a mux cleanup rev next weekend..
>> Btw, I like the way we do pin mux in U-Boot at the moment (*). Or
>> better: I can't imagine a way how to do it even better without
>> introducing other disadvantages. But I will enjoy to have a look to
>> your changes ;) Maybe you can give us already an idea of how you like
>> to change it?
>>
>> (*) What I like:
>>
>> Having everything in one file for each board. With this, you can get a
>> complete overview of board's pin mux with looking only in one file.
>> And you can see immediately for each pin what is configured and how.
> Here are few quick things i like and dont like about the mux handling
> Pros:
> * Simple interface - just a #define
> Cons:
> * Repetition for every single board for common stuff such as Sdrc dat
> regs etc..

This isn't a con for me. Having this in each board directory, you know 
that it is exactly right for this board and that you don't 
(accidentally) use some other (generic) code from somewhere else that 
you never checked. And you have it in one, easy maintainable file. You 
don't have to search for pin mux in x files scattered around in the 
source tree, with chance that you miss one if you want to check the 
pin mux for your board.

> * Boards tend to enable *every* mux even if u-boot uses or not.

This is a very big pro for me. Again, with this, you can be sure that 
the pin mux, which you have in one place, is done right for exactly 
this board. And you don't have to rely on broken kernel pin mux of 
anything else. With this, you can be sure that your board boots fine 
without burning something due to wrong pin mux. Even if you don't use 
all interfaces.

> Proposal stage 1:
> * move common mux out to a mux.h, where board files can use the defaults
> if they like 

Con:

Configuration scattered around in several files, see above.

> -> i recollect having send such a patch out some time
> back.. but I never got the time to follow up on it.
> 
> Proposal stage 2:
> * kick out mux settings from each board, which does not belong there ->
> e.g. if the board does not do camera at u-boot level ->move that out to
> kernel.

Then you first have to fix totally broken kernel pin mux before we can 
do this ;)

Best regards

Dirk

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH] Add support for the KwikByte KBOC OMAP35xx board
  2009-07-12 15:20       ` Jean-Christophe PLAGNIOL-VILLARD
@ 2009-07-12 15:34         ` Dirk Behme
  0 siblings, 0 replies; 15+ messages in thread
From: Dirk Behme @ 2009-07-12 15:34 UTC (permalink / raw)
  To: u-boot

Dear Jean-Christophe,

Jean-Christophe PLAGNIOL-VILLARD wrote:
> On 15:35 Sun 12 Jul     , Dirk Behme wrote:
>> Dear Jean-Christophe,
>>
>> Jean-Christophe PLAGNIOL-VILLARD wrote:
>>
>>>>> diff --git a/board/omap3/kboc/kboc.h b/board/omap3/kboc/kboc.h
>>> please create you own vendor dirent
>> NACK. We use board/omap3/<board>/<board>.h syntax. So this is fine.
>> Everything else would make it inconsistent.
> have more board in omap3 NACK
> omap3 is not a vendor it's a TI soc

Please feel free to send a patch to change directory layout as you 
like and then we can discuss about it.

> I've said it multiple time
> 
> No new board will be allow to go in omap3 ditto for davinci

Giving such a statement might sound like "no more (TI?) ARM boards 
will be allowed to be added" which I think doesn't really help.

Best regards

Dirk

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH] Add support for the KwikByte KBOC OMAP35xx board
  2009-07-12 15:06         ` Dirk Behme
@ 2009-07-12 15:52           ` Wolfgang Denk
  0 siblings, 0 replies; 15+ messages in thread
From: Wolfgang Denk @ 2009-07-12 15:52 UTC (permalink / raw)
  To: u-boot

Dear Dirk Behme,

In message <4A59FBDA.70004@googlemail.com> you wrote:
> 
> I understood Jean-Christophe that he wants
> 
> board/omap3/<vendor>
> 
> and this is what I doesn't like. At least not for the first board of a 
> company. If they, later, add some additional (OMAP3) boards, moving 
> then to board/omap3/<vendor>/<board_A>/, 

Agred - board/omap3/<vendor> is not acceptable, not for the first
board, nor for any number of boards. If a vendor directory is used,
then ist must go as board/<vendor>

Otherwise we will have the same "<vendor>" directories all over the
place for all processors supported by a vendor - and for some active
board vendors that can be a _lot_.

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 first rule of magic is simple. Don't waste your time waving your
hands and hoping when a rock or a club will do."
                                               - McCloctnik the Lucid

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2009-07-12 15:52 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-07-09 23:03 [U-Boot] [PATCH] Add support for the KwikByte KBOC OMAP35xx board christian at kwikbyte.com
2009-07-10  1:06 ` Nishanth Menon
2009-07-10 16:27   ` christian at kwikbyte.com
2009-07-12 13:13   ` Jean-Christophe PLAGNIOL-VILLARD
2009-07-12 13:35     ` Dirk Behme
2009-07-12 14:48       ` Wolfgang Denk
2009-07-12 15:06         ` Dirk Behme
2009-07-12 15:52           ` Wolfgang Denk
2009-07-12 15:20       ` Jean-Christophe PLAGNIOL-VILLARD
2009-07-12 15:34         ` Dirk Behme
2009-07-12 14:25     ` Nishanth Menon
2009-07-12 14:31       ` Dirk Behme
2009-07-12 14:50         ` [U-Boot] OMAP MUX handling improvement (was: Add support for the KwikByte KBOC OMAP35xx board) Nishanth Menon
2009-07-12 15:28           ` [U-Boot] OMAP MUX handling improvement Dirk Behme
2009-07-12 14:45     ` [U-Boot] [PATCH] Add support for the KwikByte KBOC OMAP35xx board Wolfgang Denk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox