Skip to contentSkip to conversation

Initial support for IGEP v2

PATCH New Enric Balletbo i Serra 2 participants 5 messages Apr 14, 2010 – May 5, 2010

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

v3 cover Initial support for IGEP v2

Hello,

These are the third version and apply on top of u-boot-arm repository.

- Fixed date/time configuration

The IGEP v2 board is a low-cost, fan-less and industrial temperature range single board computer that unleashes laptop-like performance and expandability without the bulk, expense, or noise of typical desktop machines. Its architecture shares much in common with other OMAP3 boards

These patch series adds initial support for IGEP v2

#1 lore raw

PATCH v3 1/3 OMAP3:SDRC: Introduce Numonyx DDR type

From: Enric Balletbo i Serra <[email protected]>

Introduce Numoyx DDR timings and provide
CONFIG_OMAP3_NUMONYX_DDR config options to allow
for platform files to setup their timings.

---
 include/asm-arm/arch-omap3/mem.h |   42 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 42 insertions(+), 0 deletions(-)
include/asm-arm/arch-omap3/mem.h +42 -0
index 9439758..cc4a7c2 100644
@@ -128,6 +128,44 @@ enum {
 		(MICRON_XSR_165 << 0) | (MICRON_TXP_165 << 8) |	\
 		(MICRON_TWTR_165 << 16))
 
+/* NUMONYX part of IGEP v2 (165MHz optimized) 6.06ns
+ *   ACTIMA
+ *      TDAL = Twr/Tck + Trp/tck = 15/6 + 18/6 = 2.5 + 3 = 5.5 -> 6
+ *      TDPL (Twr) = 15/6 = 2.5 -> 3
+ *      TRRD = 12/6 = 2
+ *      TRCD = 22.5/6 = 3.75 -> 4
+ *      TRP  = 18/6 = 3
+ *      TRAS = 42/6 = 7
+ *      TRC  = 60/6 = 10
+ *      TRFC = 140/6 = 23.3 -> 24
+ *   ACTIMB
+ *	TWTR = 2
+ *	TCKE = 2
+ *	TXSR = 200/6 =  33.3 -> 34
+ *	TXP  = 1.0 + 1.1 = 2.1 -> 3
+ */
+#define NUMONYX_TDAL_165   6
+#define NUMONYX_TDPL_165   3
+#define NUMONYX_TRRD_165   2
+#define NUMONYX_TRCD_165   4
+#define NUMONYX_TRP_165    3
+#define NUMONYX_TRAS_165   7
+#define NUMONYX_TRC_165   10
+#define NUMONYX_TRFC_165  24
+#define NUMONYX_V_ACTIMA_165 ((NUMONYX_TRFC_165 << 27) | \
+		(NUMONYX_TRC_165 << 22) | (NUMONYX_TRAS_165 << 18) | \
+		(NUMONYX_TRP_165 << 15) | (NUMONYX_TRCD_165 << 12) | \
+		(NUMONYX_TRRD_165 << 9) | (NUMONYX_TDPL_165 << 6) | \
+		(NUMONYX_TDAL_165))
+
+#define NUMONYX_TWTR_165   2
+#define NUMONYX_TCKE_165   2
+#define NUMONYX_TXP_165    3
+#define NUMONYX_XSR_165    34
+#define NUMONYX_V_ACTIMB_165 ((NUMONYX_TCKE_165 << 12) | \
+		(NUMONYX_XSR_165 << 0)) | (NUMONYX_TXP_165 << 8) | \
+		(NUMONYX_TWTR_165 << 16)
+
 #ifdef CONFIG_OMAP3_INFINEON_DDR
 #define V_ACTIMA_165 INFINEON_V_ACTIMA_165
 #define V_ACTIMB_165 INFINEON_V_ACTIMB_165
@@ -136,6 +174,10 @@ enum {
 #define V_ACTIMA_165 MICRON_V_ACTIMA_165
 #define V_ACTIMB_165 MICRON_V_ACTIMB_165
 #endif
+#ifdef 	CONFIG_OMAP3_NUMONYX_DDR
+#define V_ACTIMA_165 NUMONYX_V_ACTIMA_165
+#define V_ACTIMB_165 NUMONYX_V_ACTIMB_165
+#endif
 
 #if !defined(V_ACTIMA_165) || !defined(V_ACTIMB_165)
 #error "Please choose the right DDR type in config header"
Signature · 1 line
1.5.4.3
#2 lore raw

PATCH v3 2/3 OneNAND: Add support for Numonyx part

From: Enric Balletbo i Serra <[email protected]>

---
 drivers/mtd/onenand/onenand_base.c |    1 +
 include/linux/mtd/onenand.h        |    1 +
 2 files changed, 2 insertions(+), 0 deletions(-)
drivers/mtd/onenand/onenand_base.c +1 -0
index f9273ab..c978420 100644
@@ -2214,6 +2214,7 @@ char *onenand_print_device_info(int device, int version)
 
 static const struct onenand_manufacturers onenand_manuf_ids[] = {
 	{ONENAND_MFR_SAMSUNG, "Samsung"},
+	{ONENAND_MFR_NUMONYX, "Numonyx"},
 };
 
 /**
include/linux/mtd/onenand.h +1 -0
index 68e174e..1827226 100644
@@ -155,6 +155,7 @@ struct onenand_chip {
  * OneNAND Flash Manufacturer ID Codes
  */
 #define ONENAND_MFR_SAMSUNG	0xec
+#define ONENAND_MFR_NUMONYX     0x20
 
 /**
  * struct nand_manufacturers - NAND Flash Manufacturer ID Structure
Signature · 1 line
1.5.4.3
#3 lore raw

PATCH v3 3/3 IGEP v2 support

From: Enric Balletbo i Serra <[email protected]>

This patch adds support for the IGEP v2 board.

The IGEP v2 board is a low-cost, fan-less and industrial temperature range single board computer that unleashes laptop-like performance and expandability without the bulk, expense, or noise of typical desktop machines. Its architecture shares much in common with other OMAP3 boards.

---
 MAINTAINERS                      |    4 +
 Makefile                         |    3 +
 board/isee/igep0020/Makefile     |   49 +++++
 board/isee/igep0020/config.mk    |   34 ++++
 board/isee/igep0020/igep0020.c   |  134 +++++++++++++
 board/isee/igep0020/igep0020.h   |  399 ++++++++++++++++++++++++++++++++++++++
 include/configs/omap3_igep0020.h |  245 +++++++++++++++++++++++
 7 files changed, 868 insertions(+), 0 deletions(-)
 create mode 100644 board/isee/igep0020/Makefile
 create mode 100644 board/isee/igep0020/config.mk
 create mode 100644 board/isee/igep0020/igep0020.c
 create mode 100644 board/isee/igep0020/igep0020.h
 create mode 100644 include/configs/omap3_igep0020.h
MAINTAINERS +4 -0
index 94839ce..19da604 100644
@@ -525,6 +525,10 @@ Stefano Babic <[email protected]>
 	polaris		xscale
 	trizepsiv	xscale
 
+Enric Balletbo i Serra <[email protected]>
+
+	omap3_igep0020	ARM CORTEX-A8 (OMAP3530 SoC)
+
 Dirk Behme <[email protected]>
 
 	omap3_beagle	ARM CORTEX-A8 (OMAP3530 SoC)
Makefile +3 -0
index 412e359..90f8c29 100644
@@ -3161,6 +3161,9 @@ omap3_overo_config :	unconfig
 omap3_evm_config :	unconfig
 	@$(MKCONFIG) $(@:_config=) arm arm_cortexa8 evm ti omap3
 
+omap3_igep0020_config :	unconfig
+	@$(MKCONFIG) $(@:_config=) arm arm_cortexa8 igep0020 isee omap3
+
 omap3_pandora_config :	unconfig
 	@$(MKCONFIG) $(@:_config=) arm arm_cortexa8 pandora NULL omap3
 
board/isee/igep0020/Makefile new file +49 -0

49 lines not on this page · raw message

board/isee/igep0020/config.mk new file +34 -0
new file mode 100644
index 0000000..a05f782
@@ -0,0 +1,34 @@
+#
+# (C) Copyright 2009
+# Integration Software and Electronics Engineering, <www.iseebcn.com>
+#
+# IGEP0020 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 = 0x8ff00000
+
board/isee/igep0020/igep0020.c new file +134 -0

134 lines not on this page · raw message

board/isee/igep0020/igep0020.h new file +399 -0

399 lines not on this page · raw message

include/configs/omap3_igep0020.h new file +245 -0

245 lines not on this page · raw message

Signature · 1 line
1.5.4.3
#4 lore raw

PATCH v3 3/3 IGEP v2 support

Dear Enric Balletbo i Serra,

Quoted 10 lines · In message <[email protected]> you wrote:

From: Enric Balletbo i Serra <[email protected]>

This patch adds support for the IGEP v2 board.

The IGEP v2 board is a low-cost, fan-less and industrial temperature range single board computer that unleashes laptop-like performance and expandability without the bulk, expense, or noise of typical desktop machines. Its architecture shares much in common with other OMAP3 boards.

Quoted 14 lines
---
 MAINTAINERS                      |    4 +
 Makefile                         |    3 +
 board/isee/igep0020/Makefile     |   49 +++++
 board/isee/igep0020/config.mk    |   34 ++++
 board/isee/igep0020/igep0020.c   |  134 +++++++++++++
 board/isee/igep0020/igep0020.h   |  399 ++++++++++++++++++++++++++++++++++++++
 include/configs/omap3_igep0020.h |  245 +++++++++++++++++++++++
 7 files changed, 868 insertions(+), 0 deletions(-)
 create mode 100644 board/isee/igep0020/Makefile
 create mode 100644 board/isee/igep0020/config.mk
 create mode 100644 board/isee/igep0020/igep0020.c
 create mode 100644 board/isee/igep0020/igep0020.h
 create mode 100644 include/configs/omap3_igep0020.h

MAKEALL entry missing.

Quoted 20 lines
MAINTAINERS +4 -0
index 94839ce..19da604 100644
@@ -525,6 +525,10 @@ Stefano Babic <[email protected]>
 	polaris		xscale
 	trizepsiv	xscale
 
+Enric Balletbo i Serra <[email protected]>
+
+	omap3_igep0020	ARM CORTEX-A8 (OMAP3530 SoC)
+
 Dirk Behme <[email protected]>
 
 	omap3_beagle	ARM CORTEX-A8 (OMAP3530 SoC)
Makefile +0 -0
index 412e359..90f8c29 100644

Makefile omap3_overo_config : unconfig · line 3168

Quoted 8 lines
Makefile +3 -0
@@ -3161,6 +3161,9 @@ omap3_overo_config :	unconfig
 omap3_evm_config :	unconfig
 	@$(MKCONFIG) $(@:_config=) arm arm_cortexa8 evm ti omap3
 
+omap3_igep0020_config :	unconfig
+	@$(MKCONFIG) $(@:_config=) arm arm_cortexa8 igep0020 isee omap3
+
 omap3_pandora_config :	unconfig
 	@$(MKCONFIG) $(@:_config=) arm arm_cortexa8 pandora NULL omap3

Make target names shall be identical to board names. Please use "igep0020_config" here. [Yes, I know, bad examples exist. Please ignore these.]

Quoted 5 lines
board/isee/igep0020/config.mk new file +0 -0
new file mode 100644
index 0000000..a05f782

...

board/isee/igep0020/config.mk line 34

Quoted 3 lines
board/isee/igep0020/config.mk new file +3 -0
+# For use with external or internal boots.
+TEXT_BASE = 0x8ff00000
+

No trailing empty lines, please.

Quoted 6 lines
board/isee/igep0020/igep0020.c new file +0 -0
new file mode 100644
index 0000000..a9d9deb
@@ -0,0 +1,134 @@

...

board/isee/igep0020/igep0020.c line 47

Quoted 7 lines
board/isee/igep0020/igep0020.c new file +7 -0
+/*
+ * Routine: board_init
+ * Description: Early hardware init.
+ */
+int board_init(void)
+{
+	DECLARE_GLOBAL_DATA_PTR;

This will not work. DECLARE_GLOBAL_DATA_PTR must be on file levcel, not on function level.

Quoted 5 lines
board/isee/igep0020/igep0020.h new file +0 -0
new file mode 100644
index 0000000..e5e0ac9

...

Quoted 9 lines

+/* MUX_VAL(CP(MMC2_DAT3), (IEN | PTD | DIS | M4)) GPIO_135 (GPIO-Based CS) */\
+ \

+ MUX_VAL(CP(CAM_HS),		(IDIS | PTD | DIS | M4)) /* GPIO_94 - PDN (Rev. B) */\
+ MUX_VAL(CP(CAM_VS),		(IDIS | PTD | DIS | M4)) /* GPIO_95 - RESET_N_W (Rev. B) */\
+ \
+ MUX_VAL(CP(MMC2_DAT4),		(IDIS | PTD | DIS | M4)) /* GPIO_136 */\
+ MUX_VAL(CP(MMC2_DAT5),		(IDIS | PTD | DIS | M4)) /* GPIO_137 - RESET_N_B */\
+ MUX_VAL(CP(MMC2_DAT6),		(IDIS | PTD | DIS | M4)) /* GPIO_138 - PDN (Rev. C)  */\
+ MUX_VAL(CP(MMC2_DAT7),		(IDIS | PTD | DIS | M4)) /* GPIO_139 - RESET_N_W (Rev. C) */\

Lines too long. Please fix globally.

include/configs/omap3_igep0020.h

Quoted 5 lines
include/configs/omap3_igep0020.h new file +0 -0
new file mode 100644
index 0000000..0b2564a

File name should be include/configs/igep0020.h

include/configs/omap3_igep0020.h line 46

Quoted 5 lines
include/configs/omap3_igep0020.h new file +5 -0
+/* Clock Defines */
+#define V_OSCK			26000000	/* Clock output from T2 */
+#define V_SCLK			(V_OSCK >> 1)
+
+#undef CONFIG_USE_IRQ				/* no support for IRQs */

Please do not #undef what is not defined anyway.

include/configs/omap3_igep0020.h line 107

Quoted 9 lines
include/configs/omap3_igep0020.h new file +9 -0
+#define CONFIG_CMD_EXT2		/* EXT2 Support			*/
+#define CONFIG_CMD_FAT		/* FAT support			*/
+#define CONFIG_CMD_I2C		/* I2C serial bus support	*/
+#define CONFIG_CMD_MMC		/* MMC support			*/
+#define CONFIG_CMD_ONENAND	/* ONENAND support		*/
+#define CONFIG_CMD_NET		/* bootp, tftpboot, rarpboot	*/
+#define CONFIG_CMD_DHCP
+#define CONFIG_CMD_PING
+#define CONFIG_CMD_NFS		/* NFS support			*/

Maybe you want to sort the list?

include/configs/omap3_igep0020.h line 114

Quoted 6 lines
include/configs/omap3_igep0020.h new file +6 -0
+#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_JFFS2		/* JFFS2 Support		*/
+#undef CONFIG_CMD_NAND	  	/* NAND support			*/

iminfo is a very useful command. Are you sure you want to disablke it?

Is there neither NOR nor NAND flash on your board? What are you booting from?

include/configs/omap3_igep0020.h line 131

Quoted 3 lines
include/configs/omap3_igep0020.h new file +3 -0
+/* Environment information */
+#define CONFIG_BOOTDELAY		3
+#define CONFIG_EXTRA_ENV_SETTINGS	"\0"

That's bogus. Please delete.

include/configs/omap3_igep0020.h line 197

Quoted 7 lines
include/configs/omap3_igep0020.h new file +7 -0
+/*
+ * FLASH and environment organization
+ */
+
+#define PISMO1_ONEN_SIZE		GPMC_SIZE_128M /* Configure the PISMO */
+
+#define CONFIG_SYS_FLASH_BASE		boot_flash_base

Hm... FLASH_BASE when there is no flash there?

Quoted 1 line

+#define CONFIG_ENV_SIZE (512 << 10) /* 512 KiB */

Do you really need that much? That will make CRC caclulation slow...

include/configs/omap3_igep0020.h

Quoted 2 lines
include/configs/omap3_igep0020.h new file +2 -0
+/* Monitor at start of flash */
+#define CONFIG_SYS_MONITOR_BASE		CONFIG_SYS_FLASH_BASE

Without flash? Really?

include/configs/omap3_igep0020.h line 242

Quoted 8 lines
include/configs/omap3_igep0020.h new file +8 -0
+#ifndef __ASSEMBLY__
+extern struct gpmc *gpmc_cfg;
+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

This has no place in the board config file. Please move elsewhere.

Best regards,

Wolfgang Denk

Signature · 6 lines
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
Fools ignore complexity. Pragmatists suffer it. Some  can  avoid  it.
Geniuses remove it.
     - Perlis's Programming Proverb #58, SIGPLAN Notices, Sept.  1982