All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 0/5] mpc5200: digsy_mtc: update for next
@ 2011-05-27 14:08 Anatolij Gustschin
  2011-05-27 14:08 ` [U-Boot] [PATCH 1/5] video: mb862xx: support Coral-PA controller Anatolij Gustschin
                   ` (4 more replies)
  0 siblings, 5 replies; 35+ messages in thread
From: Anatolij Gustschin @ 2011-05-27 14:08 UTC (permalink / raw)
  To: u-boot

This patch series mainly updates digsy_mtc board to initialize
graphic extention hardware and add splash screen support.
The last patch is an update for "mtc appreg" command.

Anatolij Gustschin (5):
  video: mb862xx: support Coral-PA controller
  pci: option for configurable delay between pci reset and pci bus scan
  mpc5200: digsy_mtc: enable pci_scan_delay option
  mpc5200: digsy_mtc: add support for graphic extension board
  mpc5200: digsy_mtc: add support for writing 'appreg' value

 board/digsy_mtc/Makefile    |    7 +++--
 board/digsy_mtc/cmd_disp.c  |   54 +++++++++++++++++++++++++++++++++++++++++++
 board/digsy_mtc/cmd_mtc.c   |   46 +++++++++++++++++++++++++++++++----
 board/digsy_mtc/digsy_mtc.c |   49 +++++++++++++++++++++++++++++++++++++++
 board/digsy_mtc/exbo.h      |   17 +++++++++++++
 drivers/pci/pci.c           |   14 +++++++++++
 drivers/video/mb862xx.c     |   32 +++++++++++++++++++++----
 include/configs/digsy_mtc.h |   28 ++++++++++++++++++++++
 8 files changed, 233 insertions(+), 14 deletions(-)
 create mode 100644 board/digsy_mtc/cmd_disp.c
 create mode 100644 board/digsy_mtc/exbo.h

-- 
1.7.4.4

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

* [U-Boot] [PATCH 1/5] video: mb862xx: support Coral-PA controller
  2011-05-27 14:08 [U-Boot] [PATCH 0/5] mpc5200: digsy_mtc: update for next Anatolij Gustschin
@ 2011-05-27 14:08 ` Anatolij Gustschin
  2011-07-04 22:32   ` Anatolij Gustschin
  2011-05-27 14:08 ` [U-Boot] [PATCH 2/5] pci: option for configurable delay between pci reset and pci bus scan Anatolij Gustschin
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 35+ messages in thread
From: Anatolij Gustschin @ 2011-05-27 14:08 UTC (permalink / raw)
  To: u-boot

Add detection of Coral-PA and configure Coral CCF an MMR parameters
using CONFIG_SYS_MB862xx_CCF and CONFIG_SYS_MB862xx_MMR macros.
Use CCF and MMR parameters for Coral-P Eval. Board if the appropriate
macros weren't defined.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
 drivers/video/mb862xx.c |   32 +++++++++++++++++++++++++++-----
 1 files changed, 27 insertions(+), 5 deletions(-)

diff --git a/drivers/video/mb862xx.c b/drivers/video/mb862xx.c
index edf34aa..088365d 100644
--- a/drivers/video/mb862xx.c
+++ b/drivers/video/mb862xx.c
@@ -189,10 +189,19 @@ static void de_init (void)
 }
 
 #if defined(CONFIG_VIDEO_CORALP)
+/* use CCF and MMR parameters for Coral-P Eval. Board as default */
+#ifndef CONFIG_SYS_MB862xx_CCF
+#define CONFIG_SYS_MB862xx_CCF	0x00090000
+#endif
+#ifndef CONFIG_SYS_MB862xx_MMR
+#define CONFIG_SYS_MB862xx_MMR	0x11d7fa13
+#endif
+
 unsigned int pci_video_init (void)
 {
 	GraphicDevice *dev = &mb862xx;
 	pci_dev_t devbusfn;
+	u16 device;
 
 	if ((devbusfn = pci_find_devices (supported, 0)) < 0) {
 		puts ("PCI video controller not found!\n");
@@ -212,10 +221,25 @@ unsigned int pci_video_init (void)
 
 	dev->pciBase = dev->frameAdrs;
 
-	/* Setup clocks and memory mode for Coral-P Eval. Board */
-	HOST_WR_REG (GC_CCF, 0x00090000);
+	puts("Coral-");
+
+	pci_read_config_word(devbusfn, PCI_DEVICE_ID, &device);
+	switch (device) {
+	case PCI_DEVICE_ID_CORAL_P:
+		puts("P\n");
+		break;
+	case PCI_DEVICE_ID_CORAL_PA:
+		puts("PA\n");
+		break;
+	default:
+		puts("Unknown\n");
+		return 0;
+	}
+
+	/* Setup clocks and memory mode for Coral-P(A) */
+	HOST_WR_REG(GC_CCF, CONFIG_SYS_MB862xx_CCF);
 	udelay (200);
-	HOST_WR_REG (GC_MMR, 0x11d7fa13);
+	HOST_WR_REG(GC_MMR, CONFIG_SYS_MB862xx_MMR);
 	udelay (100);
 	return dev->frameAdrs;
 }
@@ -235,8 +259,6 @@ unsigned int card_init (void)
 	if (!pci_video_init ())
 		return 0;
 
-	puts ("CoralP\n");
-
 	tmp = 0;
 	videomode = 0x310;
 	/* get video mode via environment */
-- 
1.7.4.4

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

* [U-Boot] [PATCH 2/5] pci: option for configurable delay between pci reset and pci bus scan
  2011-05-27 14:08 [U-Boot] [PATCH 0/5] mpc5200: digsy_mtc: update for next Anatolij Gustschin
  2011-05-27 14:08 ` [U-Boot] [PATCH 1/5] video: mb862xx: support Coral-PA controller Anatolij Gustschin
@ 2011-05-27 14:08 ` Anatolij Gustschin
  2011-05-27 15:26   ` Detlev Zundel
  2011-05-27 14:08 ` [U-Boot] [PATCH 3/5] mpc5200: digsy_mtc: enable pci_scan_delay option Anatolij Gustschin
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 35+ messages in thread
From: Anatolij Gustschin @ 2011-05-27 14:08 UTC (permalink / raw)
  To: u-boot

PCI cards might need some time after reset to respond.
On some boards (mpc5200 or mpc8260 based) the PCI bus reset is
deasserted at pci_board_init() time, so we can not use available
"pcidelay" option for waiting before pci bus scan here. Add an option
to delay bus scan by setting "pci_scan_delay" environment variable.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
 drivers/pci/pci.c |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index cdfc4fb..2206c12 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -699,6 +699,20 @@ int pci_hose_scan_bus(struct pci_controller *hose, int bus)
 
 int pci_hose_scan(struct pci_controller *hose)
 {
+#if defined(CONFIG_PCI_SCAN_DELAY)
+	const char *s;
+	int i;
+
+	/* wait "pci_scan_delay" ms, limit to max. 1 s */
+	s = getenv("pci_scan_delay");
+	if (s) {
+		int val = simple_strtoul(s, NULL, 10);
+		if (val > 1000)
+			val = 1000;
+		for (i = 0; i < val; i++)
+			udelay(1000);
+	}
+#endif
 	/* Start scan at current_busno.
 	 * PCIe will start scan@first_busno+1.
 	 */
-- 
1.7.4.4

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

* [U-Boot] [PATCH 3/5] mpc5200: digsy_mtc: enable pci_scan_delay option
  2011-05-27 14:08 [U-Boot] [PATCH 0/5] mpc5200: digsy_mtc: update for next Anatolij Gustschin
  2011-05-27 14:08 ` [U-Boot] [PATCH 1/5] video: mb862xx: support Coral-PA controller Anatolij Gustschin
  2011-05-27 14:08 ` [U-Boot] [PATCH 2/5] pci: option for configurable delay between pci reset and pci bus scan Anatolij Gustschin
@ 2011-05-27 14:08 ` Anatolij Gustschin
  2011-05-27 15:28   ` Detlev Zundel
  2011-10-13 15:19   ` [U-Boot] [PATCH] mpc5200: digsy_mtc: fix detection of Coral-PA Anatolij Gustschin
  2011-05-27 14:08 ` [U-Boot] [PATCH 4/5] mpc5200: digsy_mtc: add support for graphic extension board Anatolij Gustschin
  2011-05-27 14:08 ` [U-Boot] [PATCH 5/5] mpc5200: digsy_mtc: add support for writing 'appreg' value Anatolij Gustschin
  4 siblings, 2 replies; 35+ messages in thread
From: Anatolij Gustschin @ 2011-05-27 14:08 UTC (permalink / raw)
  To: u-boot

A delay of approximately 250 ms after PCI bus reset in
pci_mpc5xxx_init() is needed to recognize the Coral-PA
controller on graphic extention board. With this option
enabled we can set the environment variable "pci_scan_delay"
to the needed value.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
 include/configs/digsy_mtc.h |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/include/configs/digsy_mtc.h b/include/configs/digsy_mtc.h
index c738b3a..2b7ba4d 100644
--- a/include/configs/digsy_mtc.h
+++ b/include/configs/digsy_mtc.h
@@ -70,6 +70,7 @@
 #define CONFIG_PCI		1
 #define CONFIG_PCI_PNP		1
 #define CONFIG_PCI_SCAN_SHOW	1
+#define CONFIG_PCI_SCAN_DELAY
 
 #define CONFIG_PCI_MEM_BUS	0x40000000
 #define CONFIG_PCI_MEM_PHYS	CONFIG_PCI_MEM_BUS
-- 
1.7.4.4

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

* [U-Boot] [PATCH 4/5] mpc5200: digsy_mtc: add support for graphic extension board
  2011-05-27 14:08 [U-Boot] [PATCH 0/5] mpc5200: digsy_mtc: update for next Anatolij Gustschin
                   ` (2 preceding siblings ...)
  2011-05-27 14:08 ` [U-Boot] [PATCH 3/5] mpc5200: digsy_mtc: enable pci_scan_delay option Anatolij Gustschin
@ 2011-05-27 14:08 ` Anatolij Gustschin
  2011-05-27 15:33   ` Detlev Zundel
  2011-05-30  7:16   ` [U-Boot] [PATCH v2 " Anatolij Gustschin
  2011-05-27 14:08 ` [U-Boot] [PATCH 5/5] mpc5200: digsy_mtc: add support for writing 'appreg' value Anatolij Gustschin
  4 siblings, 2 replies; 35+ messages in thread
From: Anatolij Gustschin @ 2011-05-27 14:08 UTC (permalink / raw)
  To: u-boot

Add detection and initialisation for graphic extension board
and support splash screen when booting. Enable "bmp" command
in the board configuration and provide "disp" command to
be able to switch the display on/off.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
 board/digsy_mtc/Makefile    |    7 +++--
 board/digsy_mtc/cmd_disp.c  |   54 +++++++++++++++++++++++++++++++++++++++++++
 board/digsy_mtc/digsy_mtc.c |   49 +++++++++++++++++++++++++++++++++++++++
 board/digsy_mtc/exbo.h      |   17 +++++++++++++
 include/configs/digsy_mtc.h |   27 +++++++++++++++++++++
 5 files changed, 151 insertions(+), 3 deletions(-)
 create mode 100644 board/digsy_mtc/cmd_disp.c
 create mode 100644 board/digsy_mtc/exbo.h

diff --git a/board/digsy_mtc/Makefile b/board/digsy_mtc/Makefile
index a40076c..19f5b3a 100644
--- a/board/digsy_mtc/Makefile
+++ b/board/digsy_mtc/Makefile
@@ -7,10 +7,11 @@ include $(TOPDIR)/config.mk
 
 LIB	= $(obj)lib$(BOARD).o
 
-COBJS	:= $(BOARD).o cmd_mtc.o
+COBJS-y	:= $(BOARD).o cmd_mtc.o
+COBJS-$(CONFIG_VIDEO) += cmd_disp.o
 
-SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
-OBJS	:= $(addprefix $(obj),$(COBJS))
+SRCS	:= $(SOBJS:.o=.S) $(COBJS-y:.o=.c)
+OBJS	:= $(addprefix $(obj),$(COBJS-y))
 SOBJS	:= $(addprefix $(obj),$(SOBJS))
 
 $(LIB):	$(obj).depend $(OBJS)
diff --git a/board/digsy_mtc/cmd_disp.c b/board/digsy_mtc/cmd_disp.c
new file mode 100644
index 0000000..16f0737
--- /dev/null
+++ b/board/digsy_mtc/cmd_disp.c
@@ -0,0 +1,54 @@
+/*
+ * (C) Copyright 2011 DENX Software Engineering,
+ * Anatolij Gustschin <agust@denx.de>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+#include <command.h>
+#include <mpc5xxx.h>
+#include "exbo.h"
+
+static int cmd_disp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+{
+	struct mpc5xxx_gpio *gpio = (struct mpc5xxx_gpio *)MPC5XXX_GPIO;
+
+	if (argc < 2) {
+		printf("%s\n", gpio->simple_dvo & GPIO_USB1_0 ? "on" : "off");
+		return 0;
+	}
+
+	if (!strncmp(argv[1], "on", 2)) {
+		gpio->simple_dvo |= GPIO_USB1_0;
+	} else if (!strncmp(argv[1], "off", 3)) {
+		gpio->simple_dvo &= ~GPIO_USB1_0;
+	} else {
+		cmd_usage(cmdtp);
+		return 1;
+	}
+	return 0;
+}
+
+U_BOOT_CMD(disp, 2, 1, cmd_disp,
+		"disp [on/off] - switch display on/off",
+		"\n    - print display on/off status\n"
+		"on\n    - turn on\n"
+		"off\n    - turn off\n"
+);
diff --git a/board/digsy_mtc/digsy_mtc.c b/board/digsy_mtc/digsy_mtc.c
index 588face..219b61a 100644
--- a/board/digsy_mtc/digsy_mtc.c
+++ b/board/digsy_mtc/digsy_mtc.c
@@ -48,6 +48,8 @@
 #endif
 #include <libfdt.h>
 #include <fdt_support.h>
+#include <i2c.h>
+#include "exbo.h"
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -207,6 +209,51 @@ int checkboard(void)
 	return 0;
 }
 
+#if defined(CONFIG_VIDEO)
+static void exbo_hw_init(void)
+{
+	struct mpc5xxx_gpt *gpt = (struct mpc5xxx_gpt *)MPC5XXX_GPT;
+	struct mpc5xxx_gpio *gpio = (struct mpc5xxx_gpio *)MPC5XXX_GPIO;
+	struct mpc5xxx_wu_gpio *wu_gpio =
+				(struct mpc5xxx_wu_gpio *)MPC5XXX_WU_GPIO;
+	unsigned char val;
+
+	/* 1st, check if extension board is present */
+	if (i2c_read(EXBO_EE_I2C_ADDRESS, 0, 1, &val, 1))
+		return;
+
+	/* configure IrDA pins (PSC6 port) as gpios */
+	gpio->port_config &= 0xFF8FFFFF;
+
+	/* Init for USB1_0, EE_CLK and EE_DI - Low */
+	gpio->simple_ddr |= GPIO_USB1_0 | GPIO_EE_CLK | GPIO_EE_DI;
+	gpio->simple_ode &= ~(GPIO_USB1_0 | GPIO_EE_CLK | GPIO_EE_DI);
+	gpio->simple_dvo &= ~(GPIO_USB1_0 | GPIO_EE_CLK | GPIO_EE_DI);
+	gpio->simple_gpioe |= GPIO_USB1_0 | GPIO_EE_CLK | GPIO_EE_DI;
+
+	/* Init for EE_DO, EE_CTS - Input */
+	wu_gpio->ddr &= ~(GPIO_EE_DO | GPIO_EE_CTS);
+	wu_gpio->enable |= GPIO_EE_DO | GPIO_EE_CTS;
+
+	/* Init for PX_~EN (USB1_9) - High */
+	gpio->sint_ode &= ~GPIO_USB1_9;
+	gpio->sint_ddr |= GPIO_USB1_9;
+	gpio->sint_inten &= ~GPIO_USB1_9;
+	gpio->sint_dvo |= GPIO_USB1_9;
+	gpio->sint_gpioe |= GPIO_USB1_9;
+
+	/* Init for ~OE Switch (GPIO3) - Timer_0 GPIO High */
+	gpt[0].emsr = GPT_GPIO_ON;
+	/* Init for S Switch (GPIO4) - Timer_1 GPIO High */
+	gpt[1].emsr = GPT_GPIO_ON;
+
+	/* Power-On camera supply */
+	gpio->simple_dvo |= GPIO_USB1_0;
+}
+#else
+static inline void exbo_hw_init(void) {}
+#endif /* CONFIG_VIDEO */
+
 int board_early_init_r(void)
 {
 #ifdef CONFIG_MPC52XX_SPI
@@ -224,6 +271,8 @@ int board_early_init_r(void)
 	/* enable CS0 */
 	setbits_be32((void *)MPC5XXX_ADDECR, (1 << 16));
 
+	exbo_hw_init();
+
 #if defined(CONFIG_USB_OHCI_NEW) && defined(CONFIG_SYS_USB_OHCI_CPU_INIT)
 	/* Low level USB init, required for proper kernel operation */
 	usb_cpu_init();
diff --git a/board/digsy_mtc/exbo.h b/board/digsy_mtc/exbo.h
new file mode 100644
index 0000000..ccc9d9c
--- /dev/null
+++ b/board/digsy_mtc/exbo.h
@@ -0,0 +1,17 @@
+#ifndef _EXBO_H
+#define _EXBO_H
+
+#define GPIO_USB1_0		0x00010000	/* Power-On pin */
+#define GPIO_USB1_9		0x00000008	/* PX_~EN pin */
+
+#define GPIO_EE_DO		0x10000000	/* PSC6_0 (DO) pin */
+#define GPIO_EE_CTS		0x20000000	/* PSC6_1 (CTS) pin */
+#define GPIO_EE_DI		0x10000000	/* PSC6_2 (DI) pin */
+#define GPIO_EE_CLK		0x20000000	/* PSC6_3 (CLK) pin */
+
+#define GPT_GPIO_ON		0x00000034	/* GPT as simple GPIO, high */
+
+/* ExBo I2C Addresses */
+#define EXBO_EE_I2C_ADDRESS	0x56
+
+#endif
diff --git a/include/configs/digsy_mtc.h b/include/configs/digsy_mtc.h
index 2b7ba4d..c2b642c 100644
--- a/include/configs/digsy_mtc.h
+++ b/include/configs/digsy_mtc.h
@@ -87,10 +87,37 @@
 #define CONFIG_BZIP2
 
 /*
+ * Video
+ */
+#define CONFIG_VIDEO
+
+#ifdef CONFIG_VIDEO
+#define CONFIG_VIDEO_MB862xx
+#define CONFIG_VIDEO_MB862xx_ACCEL
+#define CONFIG_VIDEO_CORALP
+#define CONFIG_CFB_CONSOLE
+#define CONFIG_VIDEO_LOGO
+#define CONFIG_VIDEO_SW_CURSOR
+#define CONFIG_VGA_AS_SINGLE_DEVICE
+#define CONFIG_SYS_CONSOLE_IS_IN_ENV
+#define CONFIG_SPLASH_SCREEN
+#define CONFIG_VIDEO_BMP_GZIP
+#define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE	(2 << 20)	/* decompressed img */
+
+/* Coral-PA clock frequency, geo and other both 133MHz */
+#define CONFIG_SYS_MB862xx_CCF	0x00050000
+/* Video SDRAM parameters */
+#define CONFIG_SYS_MB862xx_MMR	0x11d7fa72
+#endif
+
+/*
  * Command line configuration.
  */
 #include <config_cmd_default.h>
 
+#ifdef CONFIG_VIDEO
+#define CONFIG_CMD_BMP
+#endif
 #define CONFIG_CMD_DFL
 #define CONFIG_CMD_CACHE
 #define CONFIG_CMD_DATE
-- 
1.7.4.4

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

* [U-Boot] [PATCH 5/5] mpc5200: digsy_mtc: add support for writing 'appreg' value
  2011-05-27 14:08 [U-Boot] [PATCH 0/5] mpc5200: digsy_mtc: update for next Anatolij Gustschin
                   ` (3 preceding siblings ...)
  2011-05-27 14:08 ` [U-Boot] [PATCH 4/5] mpc5200: digsy_mtc: add support for graphic extension board Anatolij Gustschin
@ 2011-05-27 14:08 ` Anatolij Gustschin
  2011-05-27 15:36   ` Detlev Zundel
  2011-05-30  7:18   ` [U-Boot] [PATCH v2 " Anatolij Gustschin
  4 siblings, 2 replies; 35+ messages in thread
From: Anatolij Gustschin @ 2011-05-27 14:08 UTC (permalink / raw)
  To: u-boot

Up to now only reading 'appreg' value was implemented in the
digsyMTC special 'mtc appreg' command. Extend the command to
support writing appreg value, too.

Signed-off-by: Werner Pfister <Pfister_Werner@intercontrol.de>
Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
 board/digsy_mtc/cmd_mtc.c |   46 +++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 40 insertions(+), 6 deletions(-)

diff --git a/board/digsy_mtc/cmd_mtc.c b/board/digsy_mtc/cmd_mtc.c
index ba0c367..a12becf 100644
--- a/board/digsy_mtc/cmd_mtc.c
+++ b/board/digsy_mtc/cmd_mtc.c
@@ -31,6 +31,8 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
+static uchar user_out;
+
 static const char *led_names[] = {
 	"diag",
 	"can1",
@@ -112,6 +114,8 @@ static int do_mtc_led(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	else
 		pcmd.cmd_val2 = 0;
 
+	pcmd.user_out = user_out;
+
 	mtc_calculate_checksum(&pcmd);
 	err = msp430_xfer(&pcmd, &prx);
 
@@ -128,6 +132,7 @@ static int do_mtc_key(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	memset(&prx, 0, sizeof(prx));
 
 	pcmd.cmd = CMD_GET_VIM;
+	pcmd.user_out = user_out;
 
 	mtc_calculate_checksum(&pcmd);
 	err = msp430_xfer(&pcmd, &prx);
@@ -160,6 +165,7 @@ static int do_mtc_digout(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv
 
 	pcmd.cmd = CMD_GET_VIM;
 	pcmd.user_out = channel_mask;
+	user_out = channel_mask;
 
 	mtc_calculate_checksum(&pcmd);
 	err = msp430_xfer(&pcmd, &prx);
@@ -187,6 +193,7 @@ static int do_mtc_digin(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[
 	memset(&prx, 0, sizeof(prx));
 
 	pcmd.cmd = CMD_GET_VIM;
+	pcmd.user_out = user_out;
 
 	mtc_calculate_checksum(&pcmd);
 	err = msp430_xfer(&pcmd, &prx);
@@ -205,6 +212,7 @@ static int do_mtc_appreg(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv
 	rx_msp_cmd prx;
 	int err;
 	char buf[5];
+	uchar appreg;
 
 	/* read appreg */
 	memset(&pcmd, 0, sizeof(pcmd));
@@ -214,13 +222,34 @@ static int do_mtc_appreg(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv
 	pcmd.cmd_val0 = 5;	/* max. Count */
 	pcmd.cmd_val1 = 5;	/* max. Time */
 	pcmd.cmd_val2 = 0;	/* =0 means read appreg */
+	pcmd.user_out = user_out;
 
 	mtc_calculate_checksum(&pcmd);
 	err = msp430_xfer(&pcmd, &prx);
 
+	/* on success decide between read or write */
 	if (!err) {
-		sprintf(buf, "%d", prx.ack2);
-		setenv("appreg", buf);
+		if (argc == 2) {
+			appreg = simple_strtol(argv[1], NULL, 10);
+			if (appreg == 0) {
+				printf("mtc appreg: invalid parameter - "
+				       "must be betwenn 1 and 255\n");
+				return -1;
+			}
+			memset(&pcmd, 0, sizeof(pcmd));
+			pcmd.cmd = CMD_WD_PARA;
+			pcmd.cmd_val0 = prx.ack3; /* max. Count */
+			pcmd.cmd_val1 = prx.ack0; /* max. Time */
+			pcmd.cmd_val2 = appreg;	  /* !=0 means write appreg */
+			pcmd.user_out = user_out;
+			memset(&prx, 0, sizeof(prx));
+
+			mtc_calculate_checksum(&pcmd);
+			err = msp430_xfer(&pcmd, &prx);
+		} else {
+			sprintf(buf, "%d", prx.ack2);
+			setenv("appreg", buf);
+		}
 	}
 
 	return err;
@@ -236,6 +265,7 @@ static int do_mtc_version(cmd_tbl_t *cmdtp, int flag, int argc, char * const arg
 	memset(&prx, 0, sizeof(prx));
 
 	pcmd.cmd = CMD_FW_VERSION;
+	pcmd.user_out = user_out;
 
 	mtc_calculate_checksum(&pcmd);
 	err = msp430_xfer(&pcmd, &prx);
@@ -259,6 +289,7 @@ static int do_mtc_state(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[
 
 	pcmd.cmd = CMD_WD_WDSTATE;
 	pcmd.cmd_val2 = 1;
+	pcmd.user_out = user_out;
 
 	mtc_calculate_checksum(&pcmd);
 	err = msp430_xfer(&pcmd, &prx);
@@ -288,8 +319,10 @@ cmd_tbl_t cmd_mtc_sub[] = {
 	"returns state of user key", ""),
 	U_BOOT_CMD_MKENT(version, 0, 1, do_mtc_version,
 	"returns firmware version of supervisor uC", ""),
-	U_BOOT_CMD_MKENT(appreg, 0, 1, do_mtc_appreg,
-	"reads appreg value and stores in environment variable 'appreg'", ""),
+	U_BOOT_CMD_MKENT(appreg, 1, 1, do_mtc_appreg,
+	"reads or writes appreg value and stores in environment "
+	"variable 'appreg'",
+	"[value] - value (1 - 255) to write to appreg"),
 	U_BOOT_CMD_MKENT(digin, 1, 1, do_mtc_digin,
 	"returns state of digital input",
 	"<channel_num> - get state of digital input (1 or 2)\n"),
@@ -342,8 +375,9 @@ U_BOOT_CMD(mtc, 5, 1, cmd_mtc,
 	"  [blink]: blink interval in 100ms steps (1 - 10; 0 = static)\n"
 	"key - returns state of user key\n"
 	"version - returns firmware version of supervisor uC\n"
-	"appreg - reads appreg value and stores in environment variable"
-	" 'appreg'\n"
+	"appreg [value] - reads (in environment variable 'appreg') or writes"
+	" appreg value\n"
+	"  [value]: value (1 - 255) to write to appreg\n"
 	"digin [channel] - returns state of digital input (1 or 2)\n"
 	"digout <on|off> <on|off> - sets state of two digital outputs\n"
 	"state - displays state\n"
-- 
1.7.4.4

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

* [U-Boot] [PATCH 2/5] pci: option for configurable delay between pci reset and pci bus scan
  2011-05-27 14:08 ` [U-Boot] [PATCH 2/5] pci: option for configurable delay between pci reset and pci bus scan Anatolij Gustschin
@ 2011-05-27 15:26   ` Detlev Zundel
  2011-05-27 16:43     ` Anatolij Gustschin
  0 siblings, 1 reply; 35+ messages in thread
From: Detlev Zundel @ 2011-05-27 15:26 UTC (permalink / raw)
  To: u-boot

Hi Anatolij,

> PCI cards might need some time after reset to respond.
> On some boards (mpc5200 or mpc8260 based) the PCI bus reset is
> deasserted at pci_board_init() time, so we can not use available
> "pcidelay" option for waiting before pci bus scan here. Add an option
> to delay bus scan by setting "pci_scan_delay" environment variable.

Hm, I'm not sure I understand the situation, so please correct me.  We
have a "pcidelay" variable, which is used to wait before
pci_board_init() (I'm not counting the semantically different usage in
the esd boards).  This does not fit your need, so you define
pci_scan_delay which is used _after_ pci_init_board(), correct?

If this is correct, then why don't you keep your new delay also in the
pci_init() function so that the delays are easily visible on code
inspection?  But wait, if this is only needed for this very board, then
why don't we put the delay into digsys pci_init_board?  Actually I think
this is the best way, as on this board we always need the delay as PCI
is not hotplug.

Apart from that, having two variables "pcidelay" and "pci_scan_delay" we
would need good documentation to explain their usage - the names do not
help (me) much ;)

Cheers
  Detlev

-- 
Practice random senselessness and act kind of beautiful.
--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de

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

* [U-Boot] [PATCH 3/5] mpc5200: digsy_mtc: enable pci_scan_delay option
  2011-05-27 14:08 ` [U-Boot] [PATCH 3/5] mpc5200: digsy_mtc: enable pci_scan_delay option Anatolij Gustschin
@ 2011-05-27 15:28   ` Detlev Zundel
  2011-10-13 15:19   ` [U-Boot] [PATCH] mpc5200: digsy_mtc: fix detection of Coral-PA Anatolij Gustschin
  1 sibling, 0 replies; 35+ messages in thread
From: Detlev Zundel @ 2011-05-27 15:28 UTC (permalink / raw)
  To: u-boot

Hi Anatolij,

> A delay of approximately 250 ms after PCI bus reset in
> pci_mpc5xxx_init() is needed to recognize the Coral-PA
> controller on graphic extention board. With this option
> enabled we can set the environment variable "pci_scan_delay"
> to the needed value.
>
> Signed-off-by: Anatolij Gustschin <agust@denx.de>

Although I propose not to introduce a new environment variable for this
option, _if_ you do want to use it, you should also set its value in the
boards default configuration.

Cheers
  Detlev

-- 
Ich glaube, da? die Weltanschauung, die aus der modernen Physik hervorgeht,
mit unserer gegenw?rtigen  Gesellschaft unvereinbar ist,  weil sie den har-
monischen Zusammenh?ngen,  die wir in der Natur beaobachten, nicht Rechnung
tr?gt.                                  -- Fritjof Capra
--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de

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

* [U-Boot] [PATCH 4/5] mpc5200: digsy_mtc: add support for graphic extension board
  2011-05-27 14:08 ` [U-Boot] [PATCH 4/5] mpc5200: digsy_mtc: add support for graphic extension board Anatolij Gustschin
@ 2011-05-27 15:33   ` Detlev Zundel
  2011-05-27 17:56     ` Anatolij Gustschin
  2011-05-30  7:16   ` [U-Boot] [PATCH v2 " Anatolij Gustschin
  1 sibling, 1 reply; 35+ messages in thread
From: Detlev Zundel @ 2011-05-27 15:33 UTC (permalink / raw)
  To: u-boot

Hi Anatolij,

> Add detection and initialisation for graphic extension board
> and support splash screen when booting. Enable "bmp" command
> in the board configuration and provide "disp" command to
> be able to switch the display on/off.
>
> Signed-off-by: Anatolij Gustschin <agust@denx.de>
> ---

[...]

>  board/digsy_mtc/exbo.h      |   17 +++++++++++++

Please fold this into the digsy_mtc.h file.  We should not add more
files without proper licensing headers and 17 lines surely do not
justify going to this length.

Apart from that

Acked-by: Detlev Zundel <dzu@denx.de>

Cheers
  Detlev

-- 
Each language has its purpose, however humble. Each language expresses
the Yin and Yang of software. Each language has its place within the Tao.
But do not program in COBOL if you can avoid it.
                           -- The Tao of Programming
--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de

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

* [U-Boot] [PATCH 5/5] mpc5200: digsy_mtc: add support for writing 'appreg' value
  2011-05-27 14:08 ` [U-Boot] [PATCH 5/5] mpc5200: digsy_mtc: add support for writing 'appreg' value Anatolij Gustschin
@ 2011-05-27 15:36   ` Detlev Zundel
  2011-05-27 18:00     ` Anatolij Gustschin
  2011-05-30  7:18   ` [U-Boot] [PATCH v2 " Anatolij Gustschin
  1 sibling, 1 reply; 35+ messages in thread
From: Detlev Zundel @ 2011-05-27 15:36 UTC (permalink / raw)
  To: u-boot

Hi Anatolij,

> Up to now only reading 'appreg' value was implemented in the
> digsyMTC special 'mtc appreg' command. Extend the command to
> support writing appreg value, too.
>
> Signed-off-by: Werner Pfister <Pfister_Werner@intercontrol.de>
> Signed-off-by: Anatolij Gustschin <agust@denx.de>
> ---
>  board/digsy_mtc/cmd_mtc.c |   46 +++++++++++++++++++++++++++++++++++++++-----
>  1 files changed, 40 insertions(+), 6 deletions(-)
>
> diff --git a/board/digsy_mtc/cmd_mtc.c b/board/digsy_mtc/cmd_mtc.c
> index ba0c367..a12becf 100644
> --- a/board/digsy_mtc/cmd_mtc.c
> +++ b/board/digsy_mtc/cmd_mtc.c

[...]

> @@ -214,13 +222,34 @@ static int do_mtc_appreg(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv
>  	pcmd.cmd_val0 = 5;	/* max. Count */
>  	pcmd.cmd_val1 = 5;	/* max. Time */
>  	pcmd.cmd_val2 = 0;	/* =0 means read appreg */
> +	pcmd.user_out = user_out;
>  
>  	mtc_calculate_checksum(&pcmd);
>  	err = msp430_xfer(&pcmd, &prx);
>  
> +	/* on success decide between read or write */
>  	if (!err) {
> -		sprintf(buf, "%d", prx.ack2);
> -		setenv("appreg", buf);
> +		if (argc == 2) {
> +			appreg = simple_strtol(argv[1], NULL, 10);
> +			if (appreg == 0) {
> +				printf("mtc appreg: invalid parameter - "
> +				       "must be betwenn 1 and 255\n");

Typo, should be "between"

Otherwise

Acked-by: Detlev Zundel <dzu@denx.de>

Thanks
  Detlev

-- 
An elephant is a mouse with an operating system.
                                        -- Donald Knuth
--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de

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

* [U-Boot] [PATCH 2/5] pci: option for configurable delay between pci reset and pci bus scan
  2011-05-27 15:26   ` Detlev Zundel
@ 2011-05-27 16:43     ` Anatolij Gustschin
  2011-05-30  7:45       ` Detlev Zundel
  0 siblings, 1 reply; 35+ messages in thread
From: Anatolij Gustschin @ 2011-05-27 16:43 UTC (permalink / raw)
  To: u-boot

Hi Detlev,

On Fri, 27 May 2011 17:26:24 +0200
Detlev Zundel <dzu@denx.de> wrote:
...
> > PCI cards might need some time after reset to respond.
> > On some boards (mpc5200 or mpc8260 based) the PCI bus reset is
> > deasserted at pci_board_init() time, so we can not use available
> > "pcidelay" option for waiting before pci bus scan here. Add an option
> > to delay bus scan by setting "pci_scan_delay" environment variable.
> 
> Hm, I'm not sure I understand the situation, so please correct me.  We
> have a "pcidelay" variable, which is used to wait before
> pci_board_init() (I'm not counting the semantically different usage in
> the esd boards).  This does not fit your need, so you define
> pci_scan_delay which is used _after_ pci_init_board(), correct?

yes, this is correct.

> If this is correct, then why don't you keep your new delay also in the
> pci_init() function so that the delays are easily visible on code
> inspection?  But wait, if this is only needed for this very board, then
> why don't we put the delay into digsys pci_init_board?  Actually I think
> this is the best way, as on this board we always need the delay as PCI
> is not hotplug.

The reason for not keeping new delay in pci_init() is:
pci_init_board() starts scanning the bus (calls pci_hose_scan()), so
when pci_init_board() returns, it is too late, the scanning is
already completed.

digsy's pci_init_board() just calls pci_mpc5xxx_init(), when the latter
returns, the scanning is completed, too. PCI reset is de-asserted in
pci_mpc5xxx_init(), so I thought about putting the delay there, but
similar situation is also on mpc8260 based boards, pci_mpc8250_init()
de-asserts PCI reset and waits on some boards (on MPC8266ADS 1 sec).
So the problem is not only digsy specific. The needed time after reset
before config cycles could be up to 1 sec, depending on the card. The
pci spec 2.2 allows this.

I think that it would be good to run arch specific pci init not from
the pci_board_init(), but from pci_init(). Then we can add delay
code in the board specific way. This would reduce the code duplication,
too. Currently we have the same pci_init_board() for many 5200 boards,
except for mvbc_p and mvsmr boards.

> Apart from that, having two variables "pcidelay" and "pci_scan_delay" we
> would need good documentation to explain their usage - the names do not
> help (me) much ;)

Sure. If there is an agreement to solve the problem as proposed in
the patch, I'll add the documentation in the next patch version.
Maybe someone have a better idea, lets wait a bit for other comments.
Actually I don't like the name of the variable, it is somehow
misleading. Any better name?

Thanks,
Anatolij

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

* [U-Boot] [PATCH 4/5] mpc5200: digsy_mtc: add support for graphic extension board
  2011-05-27 15:33   ` Detlev Zundel
@ 2011-05-27 17:56     ` Anatolij Gustschin
  0 siblings, 0 replies; 35+ messages in thread
From: Anatolij Gustschin @ 2011-05-27 17:56 UTC (permalink / raw)
  To: u-boot

Hi Detlev,

On Fri, 27 May 2011 17:33:33 +0200
Detlev Zundel <dzu@denx.de> wrote:
...
> >  board/digsy_mtc/exbo.h      |   17 +++++++++++++
> 
> Please fold this into the digsy_mtc.h file.  We should not add more
> files without proper licensing headers and 17 lines surely do not
> justify going to this length.

Okay. I just noticed that this patch is old. In another
branch I've a newer version using register accessors.
There is also a small bug in this patch. I'll resend
and add the exbo.h header to existing header.

Thanks,
Anatolij

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

* [U-Boot] [PATCH 5/5] mpc5200: digsy_mtc: add support for writing 'appreg' value
  2011-05-27 15:36   ` Detlev Zundel
@ 2011-05-27 18:00     ` Anatolij Gustschin
  0 siblings, 0 replies; 35+ messages in thread
From: Anatolij Gustschin @ 2011-05-27 18:00 UTC (permalink / raw)
  To: u-boot

Hi Detlev,

On Fri, 27 May 2011 17:36:01 +0200
Detlev Zundel <dzu@denx.de> wrote:
...
> > +				       "must be betwenn 1 and 255\n");
> 
> Typo, should be "between"

I'll fix it. Thanks for catching!

Thanks,
Anatolij

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

* [U-Boot] [PATCH v2 4/5] mpc5200: digsy_mtc: add support for graphic extension board
  2011-05-27 14:08 ` [U-Boot] [PATCH 4/5] mpc5200: digsy_mtc: add support for graphic extension board Anatolij Gustschin
  2011-05-27 15:33   ` Detlev Zundel
@ 2011-05-30  7:16   ` Anatolij Gustschin
  2011-06-06  9:49     ` Detlev Zundel
  2011-07-27 21:26     ` Wolfgang Denk
  1 sibling, 2 replies; 35+ messages in thread
From: Anatolij Gustschin @ 2011-05-30  7:16 UTC (permalink / raw)
  To: u-boot

Add detection and initialisation for graphic extension board
and support splash screen when booting. Enable "bmp" command
in the board configuration and provide "disp" command to
be able to switch the display on/off.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
v2:
  - get rid of exbo.h header and put the needed defines into the .c file
  - use accessors when reading/writing gpio registers
  - correct GPIO_EE_DO, GPIO_EE_CTS and GPIO_USB1_9 macros for
    settings in 8-bit wkup gpio registers

 board/digsy_mtc/Makefile    |    7 ++--
 board/digsy_mtc/cmd_disp.c  |   57 +++++++++++++++++++++++++++++++++++++
 board/digsy_mtc/digsy_mtc.c |   66 +++++++++++++++++++++++++++++++++++++++++++
 include/configs/digsy_mtc.h |   27 +++++++++++++++++
 4 files changed, 154 insertions(+), 3 deletions(-)
 create mode 100644 board/digsy_mtc/cmd_disp.c

diff --git a/board/digsy_mtc/Makefile b/board/digsy_mtc/Makefile
index a40076c..19f5b3a 100644
--- a/board/digsy_mtc/Makefile
+++ b/board/digsy_mtc/Makefile
@@ -7,10 +7,11 @@ include $(TOPDIR)/config.mk
 
 LIB	= $(obj)lib$(BOARD).o
 
-COBJS	:= $(BOARD).o cmd_mtc.o
+COBJS-y	:= $(BOARD).o cmd_mtc.o
+COBJS-$(CONFIG_VIDEO) += cmd_disp.o
 
-SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
-OBJS	:= $(addprefix $(obj),$(COBJS))
+SRCS	:= $(SOBJS:.o=.S) $(COBJS-y:.o=.c)
+OBJS	:= $(addprefix $(obj),$(COBJS-y))
 SOBJS	:= $(addprefix $(obj),$(SOBJS))
 
 $(LIB):	$(obj).depend $(OBJS)
diff --git a/board/digsy_mtc/cmd_disp.c b/board/digsy_mtc/cmd_disp.c
new file mode 100644
index 0000000..d5f5efb
--- /dev/null
+++ b/board/digsy_mtc/cmd_disp.c
@@ -0,0 +1,57 @@
+/*
+ * (C) Copyright 2011 DENX Software Engineering,
+ * Anatolij Gustschin <agust@denx.de>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+#include <command.h>
+#include <mpc5xxx.h>
+#include <asm/io.h>
+
+#define GPIO_USB1_0	0x00010000
+
+static int cmd_disp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+{
+	struct mpc5xxx_gpio *gpio = (struct mpc5xxx_gpio *)MPC5XXX_GPIO;
+
+	if (argc < 2) {
+		printf("%s\n",
+		       in_be32(&gpio->simple_dvo) & GPIO_USB1_0 ? "on" : "off");
+		return 0;
+	}
+
+	if (!strncmp(argv[1], "on", 2)) {
+		setbits_be32(&gpio->simple_dvo, GPIO_USB1_0);
+	} else if (!strncmp(argv[1], "off", 3)) {
+		clrbits_be32(&gpio->simple_dvo, GPIO_USB1_0);
+	} else {
+		cmd_usage(cmdtp);
+		return 1;
+	}
+	return 0;
+}
+
+U_BOOT_CMD(disp, 2, 1, cmd_disp,
+		"disp [on/off] - switch display on/off",
+		"\n    - print display on/off status\n"
+		"on\n    - turn on\n"
+		"off\n    - turn off\n"
+);
diff --git a/board/digsy_mtc/digsy_mtc.c b/board/digsy_mtc/digsy_mtc.c
index 588face..784ba2a 100644
--- a/board/digsy_mtc/digsy_mtc.c
+++ b/board/digsy_mtc/digsy_mtc.c
@@ -48,6 +48,7 @@
 #endif
 #include <libfdt.h>
 #include <fdt_support.h>
+#include <i2c.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -207,6 +208,69 @@ int checkboard(void)
 	return 0;
 }
 
+#if defined(CONFIG_VIDEO)
+
+#define GPIO_USB1_0		0x00010000	/* Power-On pin */
+#define GPIO_USB1_9		0x08		/* PX_~EN pin */
+
+#define GPIO_EE_DO		0x10		/* PSC6_0 (DO) pin */
+#define GPIO_EE_CTS		0x20		/* PSC6_1 (CTS) pin */
+#define GPIO_EE_DI		0x10000000	/* PSC6_2 (DI) pin */
+#define GPIO_EE_CLK		0x20000000	/* PSC6_3 (CLK) pin */
+
+#define GPT_GPIO_ON		0x00000034	/* GPT as simple GPIO, high */
+
+/* ExBo I2C Addresses */
+#define EXBO_EE_I2C_ADDRESS	0x56
+
+static void exbo_hw_init(void)
+{
+	struct mpc5xxx_gpt *gpt = (struct mpc5xxx_gpt *)MPC5XXX_GPT;
+	struct mpc5xxx_gpio *gpio = (struct mpc5xxx_gpio *)MPC5XXX_GPIO;
+	struct mpc5xxx_wu_gpio *wu_gpio =
+				(struct mpc5xxx_wu_gpio *)MPC5XXX_WU_GPIO;
+	unsigned char val;
+
+	/* 1st, check if extension board is present */
+	if (i2c_read(EXBO_EE_I2C_ADDRESS, 0, 1, &val, 1))
+		return;
+
+	/* configure IrDA pins (PSC6 port) as gpios */
+	gpio->port_config &= 0xFF8FFFFF;
+
+	/* Init for USB1_0, EE_CLK and EE_DI - Low */
+	setbits_be32(&gpio->simple_ddr,
+			GPIO_USB1_0 | GPIO_EE_CLK | GPIO_EE_DI);
+	clrbits_be32(&gpio->simple_ode,
+			GPIO_USB1_0 | GPIO_EE_CLK | GPIO_EE_DI);
+	clrbits_be32(&gpio->simple_dvo,
+			GPIO_USB1_0 | GPIO_EE_CLK | GPIO_EE_DI);
+	setbits_be32(&gpio->simple_gpioe,
+			GPIO_USB1_0 | GPIO_EE_CLK | GPIO_EE_DI);
+
+	/* Init for EE_DO, EE_CTS - Input */
+	clrbits_8(&wu_gpio->ddr, GPIO_EE_DO | GPIO_EE_CTS);
+	setbits_8(&wu_gpio->enable, GPIO_EE_DO | GPIO_EE_CTS);
+
+	/* Init for PX_~EN (USB1_9) - High */
+	clrbits_8(&gpio->sint_ode, GPIO_USB1_9);
+	setbits_8(&gpio->sint_ddr, GPIO_USB1_9);
+	clrbits_8(&gpio->sint_inten, GPIO_USB1_9);
+	setbits_8(&gpio->sint_dvo, GPIO_USB1_9);
+	setbits_8(&gpio->sint_gpioe, GPIO_USB1_9);
+
+	/* Init for ~OE Switch (GPIO3) - Timer_0 GPIO High */
+	out_be32(&gpt[0].emsr, GPT_GPIO_ON);
+	/* Init for S Switch (GPIO4) - Timer_1 GPIO High */
+	out_be32(&gpt[1].emsr, GPT_GPIO_ON);
+
+	/* Power-On camera supply */
+	setbits_be32(&gpio->simple_dvo, GPIO_USB1_0);
+}
+#else
+static inline void exbo_hw_init(void) {}
+#endif /* CONFIG_VIDEO */
+
 int board_early_init_r(void)
 {
 #ifdef CONFIG_MPC52XX_SPI
@@ -224,6 +288,8 @@ int board_early_init_r(void)
 	/* enable CS0 */
 	setbits_be32((void *)MPC5XXX_ADDECR, (1 << 16));
 
+	exbo_hw_init();
+
 #if defined(CONFIG_USB_OHCI_NEW) && defined(CONFIG_SYS_USB_OHCI_CPU_INIT)
 	/* Low level USB init, required for proper kernel operation */
 	usb_cpu_init();
diff --git a/include/configs/digsy_mtc.h b/include/configs/digsy_mtc.h
index 2b7ba4d..c2b642c 100644
--- a/include/configs/digsy_mtc.h
+++ b/include/configs/digsy_mtc.h
@@ -87,10 +87,37 @@
 #define CONFIG_BZIP2
 
 /*
+ * Video
+ */
+#define CONFIG_VIDEO
+
+#ifdef CONFIG_VIDEO
+#define CONFIG_VIDEO_MB862xx
+#define CONFIG_VIDEO_MB862xx_ACCEL
+#define CONFIG_VIDEO_CORALP
+#define CONFIG_CFB_CONSOLE
+#define CONFIG_VIDEO_LOGO
+#define CONFIG_VIDEO_SW_CURSOR
+#define CONFIG_VGA_AS_SINGLE_DEVICE
+#define CONFIG_SYS_CONSOLE_IS_IN_ENV
+#define CONFIG_SPLASH_SCREEN
+#define CONFIG_VIDEO_BMP_GZIP
+#define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE	(2 << 20)	/* decompressed img */
+
+/* Coral-PA clock frequency, geo and other both 133MHz */
+#define CONFIG_SYS_MB862xx_CCF	0x00050000
+/* Video SDRAM parameters */
+#define CONFIG_SYS_MB862xx_MMR	0x11d7fa72
+#endif
+
+/*
  * Command line configuration.
  */
 #include <config_cmd_default.h>
 
+#ifdef CONFIG_VIDEO
+#define CONFIG_CMD_BMP
+#endif
 #define CONFIG_CMD_DFL
 #define CONFIG_CMD_CACHE
 #define CONFIG_CMD_DATE
-- 
1.7.1

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

* [U-Boot] [PATCH v2 5/5] mpc5200: digsy_mtc: add support for writing 'appreg' value
  2011-05-27 14:08 ` [U-Boot] [PATCH 5/5] mpc5200: digsy_mtc: add support for writing 'appreg' value Anatolij Gustschin
  2011-05-27 15:36   ` Detlev Zundel
@ 2011-05-30  7:18   ` Anatolij Gustschin
  2011-07-16 20:26     ` [U-Boot] [PATCH] digsy_mtc: move board into vendor dir and add vendor logo Anatolij Gustschin
  2011-07-27 21:26     ` [U-Boot] [PATCH v2 5/5] mpc5200: digsy_mtc: add support for writing 'appreg' value Wolfgang Denk
  1 sibling, 2 replies; 35+ messages in thread
From: Anatolij Gustschin @ 2011-05-30  7:18 UTC (permalink / raw)
  To: u-boot

Up to now only reading 'appreg' value was implemented in the
digsyMTC special 'mtc appreg' command. Extend the command to
support writing appreg value, too.

Signed-off-by: Werner Pfister <Pfister_Werner@intercontrol.de>
Signed-off-by: Anatolij Gustschin <agust@denx.de>
Acked-by: Detlev Zundel <dzu@denx.de>
---
v2:
  - fix typo in error message

 board/digsy_mtc/cmd_mtc.c |   46 +++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 40 insertions(+), 6 deletions(-)

diff --git a/board/digsy_mtc/cmd_mtc.c b/board/digsy_mtc/cmd_mtc.c
index ba0c367..fffcee9 100644
--- a/board/digsy_mtc/cmd_mtc.c
+++ b/board/digsy_mtc/cmd_mtc.c
@@ -31,6 +31,8 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
+static uchar user_out;
+
 static const char *led_names[] = {
 	"diag",
 	"can1",
@@ -112,6 +114,8 @@ static int do_mtc_led(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	else
 		pcmd.cmd_val2 = 0;
 
+	pcmd.user_out = user_out;
+
 	mtc_calculate_checksum(&pcmd);
 	err = msp430_xfer(&pcmd, &prx);
 
@@ -128,6 +132,7 @@ static int do_mtc_key(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	memset(&prx, 0, sizeof(prx));
 
 	pcmd.cmd = CMD_GET_VIM;
+	pcmd.user_out = user_out;
 
 	mtc_calculate_checksum(&pcmd);
 	err = msp430_xfer(&pcmd, &prx);
@@ -160,6 +165,7 @@ static int do_mtc_digout(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv
 
 	pcmd.cmd = CMD_GET_VIM;
 	pcmd.user_out = channel_mask;
+	user_out = channel_mask;
 
 	mtc_calculate_checksum(&pcmd);
 	err = msp430_xfer(&pcmd, &prx);
@@ -187,6 +193,7 @@ static int do_mtc_digin(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[
 	memset(&prx, 0, sizeof(prx));
 
 	pcmd.cmd = CMD_GET_VIM;
+	pcmd.user_out = user_out;
 
 	mtc_calculate_checksum(&pcmd);
 	err = msp430_xfer(&pcmd, &prx);
@@ -205,6 +212,7 @@ static int do_mtc_appreg(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv
 	rx_msp_cmd prx;
 	int err;
 	char buf[5];
+	uchar appreg;
 
 	/* read appreg */
 	memset(&pcmd, 0, sizeof(pcmd));
@@ -214,13 +222,34 @@ static int do_mtc_appreg(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv
 	pcmd.cmd_val0 = 5;	/* max. Count */
 	pcmd.cmd_val1 = 5;	/* max. Time */
 	pcmd.cmd_val2 = 0;	/* =0 means read appreg */
+	pcmd.user_out = user_out;
 
 	mtc_calculate_checksum(&pcmd);
 	err = msp430_xfer(&pcmd, &prx);
 
+	/* on success decide between read or write */
 	if (!err) {
-		sprintf(buf, "%d", prx.ack2);
-		setenv("appreg", buf);
+		if (argc == 2) {
+			appreg = simple_strtol(argv[1], NULL, 10);
+			if (appreg == 0) {
+				printf("mtc appreg: invalid parameter - "
+				       "must be between 1 and 255\n");
+				return -1;
+			}
+			memset(&pcmd, 0, sizeof(pcmd));
+			pcmd.cmd = CMD_WD_PARA;
+			pcmd.cmd_val0 = prx.ack3; /* max. Count */
+			pcmd.cmd_val1 = prx.ack0; /* max. Time */
+			pcmd.cmd_val2 = appreg;	  /* !=0 means write appreg */
+			pcmd.user_out = user_out;
+			memset(&prx, 0, sizeof(prx));
+
+			mtc_calculate_checksum(&pcmd);
+			err = msp430_xfer(&pcmd, &prx);
+		} else {
+			sprintf(buf, "%d", prx.ack2);
+			setenv("appreg", buf);
+		}
 	}
 
 	return err;
@@ -236,6 +265,7 @@ static int do_mtc_version(cmd_tbl_t *cmdtp, int flag, int argc, char * const arg
 	memset(&prx, 0, sizeof(prx));
 
 	pcmd.cmd = CMD_FW_VERSION;
+	pcmd.user_out = user_out;
 
 	mtc_calculate_checksum(&pcmd);
 	err = msp430_xfer(&pcmd, &prx);
@@ -259,6 +289,7 @@ static int do_mtc_state(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[
 
 	pcmd.cmd = CMD_WD_WDSTATE;
 	pcmd.cmd_val2 = 1;
+	pcmd.user_out = user_out;
 
 	mtc_calculate_checksum(&pcmd);
 	err = msp430_xfer(&pcmd, &prx);
@@ -288,8 +319,10 @@ cmd_tbl_t cmd_mtc_sub[] = {
 	"returns state of user key", ""),
 	U_BOOT_CMD_MKENT(version, 0, 1, do_mtc_version,
 	"returns firmware version of supervisor uC", ""),
-	U_BOOT_CMD_MKENT(appreg, 0, 1, do_mtc_appreg,
-	"reads appreg value and stores in environment variable 'appreg'", ""),
+	U_BOOT_CMD_MKENT(appreg, 1, 1, do_mtc_appreg,
+	"reads or writes appreg value and stores in environment "
+	"variable 'appreg'",
+	"[value] - value (1 - 255) to write to appreg"),
 	U_BOOT_CMD_MKENT(digin, 1, 1, do_mtc_digin,
 	"returns state of digital input",
 	"<channel_num> - get state of digital input (1 or 2)\n"),
@@ -342,8 +375,9 @@ U_BOOT_CMD(mtc, 5, 1, cmd_mtc,
 	"  [blink]: blink interval in 100ms steps (1 - 10; 0 = static)\n"
 	"key - returns state of user key\n"
 	"version - returns firmware version of supervisor uC\n"
-	"appreg - reads appreg value and stores in environment variable"
-	" 'appreg'\n"
+	"appreg [value] - reads (in environment variable 'appreg') or writes"
+	" appreg value\n"
+	"  [value]: value (1 - 255) to write to appreg\n"
 	"digin [channel] - returns state of digital input (1 or 2)\n"
 	"digout <on|off> <on|off> - sets state of two digital outputs\n"
 	"state - displays state\n"
-- 
1.7.1

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

* [U-Boot] [PATCH 2/5] pci: option for configurable delay between pci reset and pci bus scan
  2011-05-27 16:43     ` Anatolij Gustschin
@ 2011-05-30  7:45       ` Detlev Zundel
  2011-05-30 14:10         ` Stefan Roese
  0 siblings, 1 reply; 35+ messages in thread
From: Detlev Zundel @ 2011-05-30  7:45 UTC (permalink / raw)
  To: u-boot

Hi Anatolij,

> Hi Detlev,
>
> On Fri, 27 May 2011 17:26:24 +0200
> Detlev Zundel <dzu@denx.de> wrote:
> ...
>> > PCI cards might need some time after reset to respond.
>> > On some boards (mpc5200 or mpc8260 based) the PCI bus reset is
>> > deasserted at pci_board_init() time, so we can not use available
>> > "pcidelay" option for waiting before pci bus scan here. Add an option
>> > to delay bus scan by setting "pci_scan_delay" environment variable.
>> 
>> Hm, I'm not sure I understand the situation, so please correct me.  We
>> have a "pcidelay" variable, which is used to wait before
>> pci_board_init() (I'm not counting the semantically different usage in
>> the esd boards).  This does not fit your need, so you define
>> pci_scan_delay which is used _after_ pci_init_board(), correct?
>
> yes, this is correct.
>
>> If this is correct, then why don't you keep your new delay also in the
>> pci_init() function so that the delays are easily visible on code
>> inspection?  But wait, if this is only needed for this very board, then
>> why don't we put the delay into digsys pci_init_board?  Actually I think
>> this is the best way, as on this board we always need the delay as PCI
>> is not hotplug.
>
> The reason for not keeping new delay in pci_init() is:
> pci_init_board() starts scanning the bus (calls pci_hose_scan()), so
> when pci_init_board() returns, it is too late, the scanning is
> already completed.
>
> digsy's pci_init_board() just calls pci_mpc5xxx_init(), when the latter
> returns, the scanning is completed, too. PCI reset is de-asserted in
> pci_mpc5xxx_init(), so I thought about putting the delay there, but
> similar situation is also on mpc8260 based boards, pci_mpc8250_init()
> de-asserts PCI reset and waits on some boards (on MPC8266ADS 1 sec).
> So the problem is not only digsy specific. The needed time after reset
> before config cycles could be up to 1 sec, depending on the card. The
> pci spec 2.2 allows this.

Ah, thanks for shedding some light on this.  Now I see how you arrived
at the solution you propose.

> I think that it would be good to run arch specific pci init not from
> the pci_board_init(), but from pci_init(). Then we can add delay
> code in the board specific way. This would reduce the code duplication,
> too. Currently we have the same pci_init_board() for many 5200 boards,
> except for mvbc_p and mvsmr boards.

Yes, I have also noticed the massive code duplicatin here.  But as I
obviously didn't even understand the problem I didn't ponder changing
it ;)

>> Apart from that, having two variables "pcidelay" and "pci_scan_delay" we
>> would need good documentation to explain their usage - the names do not
>> help (me) much ;)
>
> Sure. If there is an agreement to solve the problem as proposed in
> the patch, I'll add the documentation in the next patch version.
> Maybe someone have a better idea, lets wait a bit for other comments.
> Actually I don't like the name of the variable, it is somehow
> misleading. Any better name?

Sorry, no idea.  If we are stuck stuck with "pcidelay" (which I think we
are), then it is hard to come up with a differentiating name.  So good
documentation will have to make up for the lack of good names ;)

Cheers
  Detlev

-- 
Old mathematicians never die; they just lose some of their functions.
--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de

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

* [U-Boot] [PATCH 2/5] pci: option for configurable delay between pci reset and pci bus scan
  2011-05-30  7:45       ` Detlev Zundel
@ 2011-05-30 14:10         ` Stefan Roese
  2011-10-11 15:16           ` Anatolij Gustschin
  2011-10-11 15:18           ` [U-Boot] [PATCH 1/1] pci: move pcidelay code to new location just before PCI " Anatolij Gustschin
  0 siblings, 2 replies; 35+ messages in thread
From: Stefan Roese @ 2011-05-30 14:10 UTC (permalink / raw)
  To: u-boot

Hi Anatolij and Detlev,

On Monday 30 May 2011 09:45:08 Detlev Zundel wrote:
> >> Hm, I'm not sure I understand the situation, so please correct me.  We
> >> have a "pcidelay" variable, which is used to wait before
> >> pci_board_init() (I'm not counting the semantically different usage in
> >> the esd boards).  This does not fit your need, so you define
> >> pci_scan_delay which is used _after_ pci_init_board(), correct?
> > 
> > yes, this is correct.
> > 
> >> If this is correct, then why don't you keep your new delay also in the
> >> pci_init() function so that the delays are easily visible on code
> >> inspection?  But wait, if this is only needed for this very board, then
> >> why don't we put the delay into digsys pci_init_board?  Actually I think
> >> this is the best way, as on this board we always need the delay as PCI
> >> is not hotplug.
> > 
> > The reason for not keeping new delay in pci_init() is:
> > pci_init_board() starts scanning the bus (calls pci_hose_scan()), so
> > when pci_init_board() returns, it is too late, the scanning is
> > already completed.

Right. With this PCI reset "design", the current "pcidelay" option won't work 
for these platforms. Too bad.

But thinking more about it, couldn't your new code location supersede the old 
one before pci_init_board()? If this really is the case (we would need to 
check with users of this "pcidelay" env variable, Mattias?), then we could 
remove the old code in pci_init() and only use your new version. We would need 
to use the old env variable name "pcidelay" though, since there are boards in 
the field already using this version.

Anatolij, what do you think?

Matthias, could you do some tests on some esd boards with the new version when 
available, to make sure that we don't break backwards compatibility?
 
Best regards,
Stefan

--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-0 Fax: (+49)-8142-66989-80 Email: office at denx.de

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

* [U-Boot] [PATCH v2 4/5] mpc5200: digsy_mtc: add support for graphic extension board
  2011-05-30  7:16   ` [U-Boot] [PATCH v2 " Anatolij Gustschin
@ 2011-06-06  9:49     ` Detlev Zundel
  2011-07-27 21:26     ` Wolfgang Denk
  1 sibling, 0 replies; 35+ messages in thread
From: Detlev Zundel @ 2011-06-06  9:49 UTC (permalink / raw)
  To: u-boot

Hi Anatolij,

> Add detection and initialisation for graphic extension board
> and support splash screen when booting. Enable "bmp" command
> in the board configuration and provide "disp" command to
> be able to switch the display on/off.
>
> Signed-off-by: Anatolij Gustschin <agust@denx.de>

Acked-by: Detlev Zundel <dzu@denx.de>

Cheers
  Detlev

-- 
Quantum physicists can either know how fast they do it, or where they
do it, but not both.
--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de

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

* [U-Boot] [PATCH 1/5] video: mb862xx: support Coral-PA controller
  2011-05-27 14:08 ` [U-Boot] [PATCH 1/5] video: mb862xx: support Coral-PA controller Anatolij Gustschin
@ 2011-07-04 22:32   ` Anatolij Gustschin
  0 siblings, 0 replies; 35+ messages in thread
From: Anatolij Gustschin @ 2011-07-04 22:32 UTC (permalink / raw)
  To: u-boot

On Fri, 27 May 2011 16:08:20 +0200
Anatolij Gustschin <agust@denx.de> wrote:

> Add detection of Coral-PA and configure Coral CCF an MMR parameters
> using CONFIG_SYS_MB862xx_CCF and CONFIG_SYS_MB862xx_MMR macros.
> Use CCF and MMR parameters for Coral-P Eval. Board if the appropriate
> macros weren't defined.
> 
> Signed-off-by: Anatolij Gustschin <agust@denx.de>
> ---
>  drivers/video/mb862xx.c |   32 +++++++++++++++++++++++++++-----
>  1 files changed, 27 insertions(+), 5 deletions(-)

applied to u-boot-video/master.

Anatolij

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

* [U-Boot] [PATCH] digsy_mtc: move board into vendor dir and add vendor logo
  2011-05-30  7:18   ` [U-Boot] [PATCH v2 " Anatolij Gustschin
@ 2011-07-16 20:26     ` Anatolij Gustschin
  2011-07-27 21:27       ` Wolfgang Denk
  2011-07-27 21:26     ` [U-Boot] [PATCH v2 5/5] mpc5200: digsy_mtc: add support for writing 'appreg' value Wolfgang Denk
  1 sibling, 1 reply; 35+ messages in thread
From: Anatolij Gustschin @ 2011-07-16 20:26 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
Another digsy_mtc patch for this merge window.
It applies on top of patch series
[PATCH 0/5] mpc5200: digsy_mtc: update for next.

 board/{ => intercontrol}/digsy_mtc/Makefile        |    0
 board/{ => intercontrol}/digsy_mtc/cmd_disp.c      |    0
 board/{ => intercontrol}/digsy_mtc/cmd_mtc.c       |    0
 board/{ => intercontrol}/digsy_mtc/cmd_mtc.h       |    0
 board/{ => intercontrol}/digsy_mtc/digsy_mtc.c     |    0
 board/{ => intercontrol}/digsy_mtc/eeprom.h        |    0
 .../{ => intercontrol}/digsy_mtc/is42s16800a-7t.h  |    0
 board/{ => intercontrol}/digsy_mtc/is45s16800a2.h  |    0
 boards.cfg                                         |    8 ++++----
 include/configs/digsy_mtc.h                        |    1 +
 tools/Makefile                                     |    3 +++
 tools/logos/intercontrol.bmp                       |  Bin 0 -> 4998 bytes
 12 files changed, 8 insertions(+), 4 deletions(-)
 rename board/{ => intercontrol}/digsy_mtc/Makefile (100%)
 rename board/{ => intercontrol}/digsy_mtc/cmd_disp.c (100%)
 rename board/{ => intercontrol}/digsy_mtc/cmd_mtc.c (100%)
 rename board/{ => intercontrol}/digsy_mtc/cmd_mtc.h (100%)
 rename board/{ => intercontrol}/digsy_mtc/digsy_mtc.c (100%)
 rename board/{ => intercontrol}/digsy_mtc/eeprom.h (100%)
 rename board/{ => intercontrol}/digsy_mtc/is42s16800a-7t.h (100%)
 rename board/{ => intercontrol}/digsy_mtc/is45s16800a2.h (100%)
 create mode 100644 tools/logos/intercontrol.bmp

diff --git a/board/digsy_mtc/Makefile b/board/intercontrol/digsy_mtc/Makefile
similarity index 100%
rename from board/digsy_mtc/Makefile
rename to board/intercontrol/digsy_mtc/Makefile
diff --git a/board/digsy_mtc/cmd_disp.c b/board/intercontrol/digsy_mtc/cmd_disp.c
similarity index 100%
rename from board/digsy_mtc/cmd_disp.c
rename to board/intercontrol/digsy_mtc/cmd_disp.c
diff --git a/board/digsy_mtc/cmd_mtc.c b/board/intercontrol/digsy_mtc/cmd_mtc.c
similarity index 100%
rename from board/digsy_mtc/cmd_mtc.c
rename to board/intercontrol/digsy_mtc/cmd_mtc.c
diff --git a/board/digsy_mtc/cmd_mtc.h b/board/intercontrol/digsy_mtc/cmd_mtc.h
similarity index 100%
rename from board/digsy_mtc/cmd_mtc.h
rename to board/intercontrol/digsy_mtc/cmd_mtc.h
diff --git a/board/digsy_mtc/digsy_mtc.c b/board/intercontrol/digsy_mtc/digsy_mtc.c
similarity index 100%
rename from board/digsy_mtc/digsy_mtc.c
rename to board/intercontrol/digsy_mtc/digsy_mtc.c
diff --git a/board/digsy_mtc/eeprom.h b/board/intercontrol/digsy_mtc/eeprom.h
similarity index 100%
rename from board/digsy_mtc/eeprom.h
rename to board/intercontrol/digsy_mtc/eeprom.h
diff --git a/board/digsy_mtc/is42s16800a-7t.h b/board/intercontrol/digsy_mtc/is42s16800a-7t.h
similarity index 100%
rename from board/digsy_mtc/is42s16800a-7t.h
rename to board/intercontrol/digsy_mtc/is42s16800a-7t.h
diff --git a/board/digsy_mtc/is45s16800a2.h b/board/intercontrol/digsy_mtc/is45s16800a2.h
similarity index 100%
rename from board/digsy_mtc/is45s16800a2.h
rename to board/intercontrol/digsy_mtc/is45s16800a2.h
diff --git a/boards.cfg b/boards.cfg
index 4522ea7..3e3d428 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -317,10 +317,10 @@ a4m072                       powerpc     mpc5xxx     a4m072
 BC3450                       powerpc     mpc5xxx     bc3450
 canmb                        powerpc     mpc5xxx
 cm5200                       powerpc     mpc5xxx
-digsy_mtc                    powerpc     mpc5xxx     digsy_mtc
-digsy_mtc_RAMBOOT            powerpc     mpc5xxx     digsy_mtc           -              -           digsy_mtc:SYS_TEXT_BASE=0x00100000
-digsy_mtc_rev5               powerpc     mpc5xxx     digsy_mtc           -              -           digsy_mtc:DIGSY_REV5
-digsy_mtc_rev5_RAMBOOT       powerpc     mpc5xxx     digsy_mtc           -              -           digsy_mtc:SYS_TEXT_BASE=0x00100000,DIGSY_REV5
+digsy_mtc                    powerpc     mpc5xxx     digsy_mtc           intercontrol
+digsy_mtc_RAMBOOT            powerpc     mpc5xxx     digsy_mtc           intercontrol   -           digsy_mtc:SYS_TEXT_BASE=0x00100000
+digsy_mtc_rev5               powerpc     mpc5xxx     digsy_mtc           intercontrol   -           digsy_mtc:DIGSY_REV5
+digsy_mtc_rev5_RAMBOOT       powerpc     mpc5xxx     digsy_mtc           intercontrol   -           digsy_mtc:SYS_TEXT_BASE=0x00100000,DIGSY_REV5
 galaxy5200                   powerpc     mpc5xxx     galaxy5200          -              -           galaxy5200:galaxy5200
 galaxy5200_LOWBOOT           powerpc     mpc5xxx     galaxy5200          -              -           galaxy5200:galaxy5200_LOWBOOT
 icecube_5200                 powerpc     mpc5xxx     icecube             -              -           IceCube
diff --git a/include/configs/digsy_mtc.h b/include/configs/digsy_mtc.h
index c2b642c..ba3097d 100644
--- a/include/configs/digsy_mtc.h
+++ b/include/configs/digsy_mtc.h
@@ -97,6 +97,7 @@
 #define CONFIG_VIDEO_CORALP
 #define CONFIG_CFB_CONSOLE
 #define CONFIG_VIDEO_LOGO
+#define CONFIG_VIDEO_BMP_LOGO
 #define CONFIG_VIDEO_SW_CURSOR
 #define CONFIG_VGA_AS_SINGLE_DEVICE
 #define CONFIG_SYS_CONSOLE_IS_IN_ENV
diff --git a/tools/Makefile b/tools/Makefile
index 97f83f8..de96e34 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -129,6 +129,9 @@ endif
 ifeq ($(VENDOR),syteco)
 LOGO_BMP= logos/syteco.bmp
 endif
+ifeq ($(VENDOR),intercontrol)
+LOGO_BMP= logos/intercontrol.bmp
+endif
 
 # now $(obj) is defined
 HOSTSRCS += $(addprefix $(SRCTREE)/,$(EXT_OBJ_FILES-y:.o=.c))
diff --git a/tools/logos/intercontrol.bmp b/tools/logos/intercontrol.bmp
new file mode 100644
index 0000000000000000000000000000000000000000..cf2a884b2df9e6fd63d89f929b64724d0fa10426
GIT binary patch
literal 4998
zcmeHJEsQEj5dLmME}LNXIJ1(VP!}XYkyDt<ATg65$tcL2K%!m{Cy*nNNF;LQO616q
zNF?&Us_O0;va|0XIo^BXb+)?xzWV8+cV_<l>&x%Z_3IPRrSuP}P5K4T+=10^)c-L0
zo4SxK`k$Zq_k!map;x>Jy$ZGQD%5VHt<*)k+eNqAL$}vMuh&Pf-$!3*i2iVhq0$J$
z(Fh}@G4mWT8jmqnnlRsylw&-ZFmH|t`D8L>Zpzasrlf8!C!b+Do3TcY8F^p%oOP(r
z=a`d*qnv!nTI5UeagHVVa=F5CwPK9|EAol*HCF32)=C at ZEU?~eup!On1 at jb?Gi<Vq
z@dYySEZZX6Zn0I`G4_P*Zik)H9=rV>ds3F2$PYLigx=^s;qXSjKjDphFZ}%- at 1(=w
zOn#)D{CLDsDW~m>JkO~MFOV0c{EULUIGxBZI0-)qC!NnYD_wB8T#)`;U!8!z at ijce
zna`;eMMSZx=}J(O^N6E_IMGF_FKn7ex2I;S)oSqH)~|s1R)R0w8YEgW9yGnlwcu5q
zL8)*eq7Y;@L93);6_*Eir@?KaiVd52no*i2(O at u$l5{a>m@#0!m7rx?Ng8*ogGPt4
zjmBCKfJn*}eWis{d#i%otPHM^-t7{J`e6x>tqe3wH_phk57<W=SiTWgTLGTjh^(~q
z7n%r)3bKVI7*!M;%#0N|7%QsUsvB_w*Gh}`rBx;=JE-CxDFe+kv8%%Sdo>^{>rbV;
zs=!~0avXXP4RgQ{qz5yjbJZNG91A*e8h_`xM5%wG_#aC;=W?B!;tZuiw<(0Fv&N++
zk8_HFYo;Q&B=OJM`d(_o9%AJ2V}GJgdl5jW?$77WD|Yp(-L~o|EUpat>RfK<CG_!F
z0f_x?#JgL0<W(l|*bd6<K)AcnBB|-crYpMyg;`$<s=0r1hbl|lECC%q4SqDZx1vj}
zNvx>su1H-|F2Jzv{@mO`0P<P4aL+nU=s)ISC2I!sfAzw5KxDaMFSyhn=JIJT?r7?#
zEIgd{c7ajh-Pm+5MfdEpB$i*ZtH@0pX08feb|?Yexg_%Xo1qacI-!y;>IxW>5&=<q
zoUz2**^1@7`j(2*#NJAl%8Hg1DLu3oRKGFP>u=1PdT|pltj*`%p%Cv6+=&(z9feo5
z=~unDpT-A~mp_(I=D0=QwU=p|9a;XJEoF2mz_skJNf{JAV#E{<rpjGyl%*=UE8-8`
V3!BqctLOhzzJDw~BYxls{0k2L>t6r>

literal 0
HcmV?d00001

-- 
1.7.1

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

* [U-Boot] [PATCH v2 4/5] mpc5200: digsy_mtc: add support for graphic extension board
  2011-05-30  7:16   ` [U-Boot] [PATCH v2 " Anatolij Gustschin
  2011-06-06  9:49     ` Detlev Zundel
@ 2011-07-27 21:26     ` Wolfgang Denk
  1 sibling, 0 replies; 35+ messages in thread
From: Wolfgang Denk @ 2011-07-27 21:26 UTC (permalink / raw)
  To: u-boot

Dear Anatolij Gustschin,

In message <1306739780-19781-1-git-send-email-agust@denx.de> you wrote:
> Add detection and initialisation for graphic extension board
> and support splash screen when booting. Enable "bmp" command
> in the board configuration and provide "disp" command to
> be able to switch the display on/off.
> 
> Signed-off-by: Anatolij Gustschin <agust@denx.de>
> ---
> v2:
>   - get rid of exbo.h header and put the needed defines into the .c file
>   - use accessors when reading/writing gpio registers
>   - correct GPIO_EE_DO, GPIO_EE_CTS and GPIO_USB1_9 macros for
>     settings in 8-bit wkup gpio registers
> 
>  board/digsy_mtc/Makefile    |    7 ++--
>  board/digsy_mtc/cmd_disp.c  |   57 +++++++++++++++++++++++++++++++++++++
>  board/digsy_mtc/digsy_mtc.c |   66 +++++++++++++++++++++++++++++++++++++++++++
>  include/configs/digsy_mtc.h |   27 +++++++++++++++++
>  4 files changed, 154 insertions(+), 3 deletions(-)
>  create mode 100644 board/digsy_mtc/cmd_disp.c

Applied, thanks.

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
Harrisberger's Fourth Law of the Lab:
	Experience is directly proportional to the
	amount of equipment ruined.

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

* [U-Boot] [PATCH v2 5/5] mpc5200: digsy_mtc: add support for writing 'appreg' value
  2011-05-30  7:18   ` [U-Boot] [PATCH v2 " Anatolij Gustschin
  2011-07-16 20:26     ` [U-Boot] [PATCH] digsy_mtc: move board into vendor dir and add vendor logo Anatolij Gustschin
@ 2011-07-27 21:26     ` Wolfgang Denk
  1 sibling, 0 replies; 35+ messages in thread
From: Wolfgang Denk @ 2011-07-27 21:26 UTC (permalink / raw)
  To: u-boot

Dear Anatolij Gustschin,

In message <1306739931-19890-1-git-send-email-agust@denx.de> you wrote:
> Up to now only reading 'appreg' value was implemented in the
> digsyMTC special 'mtc appreg' command. Extend the command to
> support writing appreg value, too.
> 
> Signed-off-by: Werner Pfister <Pfister_Werner@intercontrol.de>
> Signed-off-by: Anatolij Gustschin <agust@denx.de>
> Acked-by: Detlev Zundel <dzu@denx.de>
> ---
> v2:
>   - fix typo in error message
> 
>  board/digsy_mtc/cmd_mtc.c |   46 +++++++++++++++++++++++++++++++++++++++-----
>  1 files changed, 40 insertions(+), 6 deletions(-)

Applied, thanks.

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
I often quote myself; it adds spice to my conversation.  - G. B. Shaw

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

* [U-Boot] [PATCH] digsy_mtc: move board into vendor dir and add vendor logo
  2011-07-16 20:26     ` [U-Boot] [PATCH] digsy_mtc: move board into vendor dir and add vendor logo Anatolij Gustschin
@ 2011-07-27 21:27       ` Wolfgang Denk
  0 siblings, 0 replies; 35+ messages in thread
From: Wolfgang Denk @ 2011-07-27 21:27 UTC (permalink / raw)
  To: u-boot

Dear Anatolij Gustschin,

In message <1310848010-31271-1-git-send-email-agust@denx.de> you wrote:
> Signed-off-by: Anatolij Gustschin <agust@denx.de>
> ---
> Another digsy_mtc patch for this merge window.
> It applies on top of patch series
> [PATCH 0/5] mpc5200: digsy_mtc: update for next.
> 
>  board/{ => intercontrol}/digsy_mtc/Makefile        |    0
>  board/{ => intercontrol}/digsy_mtc/cmd_disp.c      |    0
>  board/{ => intercontrol}/digsy_mtc/cmd_mtc.c       |    0
>  board/{ => intercontrol}/digsy_mtc/cmd_mtc.h       |    0
>  board/{ => intercontrol}/digsy_mtc/digsy_mtc.c     |    0
>  board/{ => intercontrol}/digsy_mtc/eeprom.h        |    0
>  .../{ => intercontrol}/digsy_mtc/is42s16800a-7t.h  |    0
>  board/{ => intercontrol}/digsy_mtc/is45s16800a2.h  |    0
>  boards.cfg                                         |    8 ++++----
>  include/configs/digsy_mtc.h                        |    1 +
>  tools/Makefile                                     |    3 +++
>  tools/logos/intercontrol.bmp                       |  Bin 0 -> 4998 bytes
>  12 files changed, 8 insertions(+), 4 deletions(-)
>  rename board/{ => intercontrol}/digsy_mtc/Makefile (100%)
>  rename board/{ => intercontrol}/digsy_mtc/cmd_disp.c (100%)
>  rename board/{ => intercontrol}/digsy_mtc/cmd_mtc.c (100%)
>  rename board/{ => intercontrol}/digsy_mtc/cmd_mtc.h (100%)
>  rename board/{ => intercontrol}/digsy_mtc/digsy_mtc.c (100%)
>  rename board/{ => intercontrol}/digsy_mtc/eeprom.h (100%)
>  rename board/{ => intercontrol}/digsy_mtc/is42s16800a-7t.h (100%)
>  rename board/{ => intercontrol}/digsy_mtc/is45s16800a2.h (100%)
>  create mode 100644 tools/logos/intercontrol.bmp

Applied, thanks.

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
"We don't have to protect the environment -- the Second Coming is  at
hand."                                                   - James Watt

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

* [U-Boot] [PATCH 2/5] pci: option for configurable delay between pci reset and pci bus scan
  2011-05-30 14:10         ` Stefan Roese
@ 2011-10-11 15:16           ` Anatolij Gustschin
  2011-10-11 15:18           ` [U-Boot] [PATCH 1/1] pci: move pcidelay code to new location just before PCI " Anatolij Gustschin
  1 sibling, 0 replies; 35+ messages in thread
From: Anatolij Gustschin @ 2011-10-11 15:16 UTC (permalink / raw)
  To: u-boot

Hi Stefan,

On Mon, 30 May 2011 16:10:34 +0200
Stefan Roese <sr@denx.de> wrote:

> Hi Anatolij and Detlev,
> 
> On Monday 30 May 2011 09:45:08 Detlev Zundel wrote:
> > >> Hm, I'm not sure I understand the situation, so please correct me.  We
> > >> have a "pcidelay" variable, which is used to wait before
> > >> pci_board_init() (I'm not counting the semantically different usage in
> > >> the esd boards).  This does not fit your need, so you define
> > >> pci_scan_delay which is used _after_ pci_init_board(), correct?
> > > 
> > > yes, this is correct.
> > > 
> > >> If this is correct, then why don't you keep your new delay also in the
> > >> pci_init() function so that the delays are easily visible on code
> > >> inspection?  But wait, if this is only needed for this very board, then
> > >> why don't we put the delay into digsys pci_init_board?  Actually I think
> > >> this is the best way, as on this board we always need the delay as PCI
> > >> is not hotplug.
> > > 
> > > The reason for not keeping new delay in pci_init() is:
> > > pci_init_board() starts scanning the bus (calls pci_hose_scan()), so
> > > when pci_init_board() returns, it is too late, the scanning is
> > > already completed.
> 
> Right. With this PCI reset "design", the current "pcidelay" option won't work 
> for these platforms. Too bad.
> 
> But thinking more about it, couldn't your new code location supersede the old 
> one before pci_init_board()? If this really is the case (we would need to 
> check with users of this "pcidelay" env variable, Mattias?), then we could 
> remove the old code in pci_init() and only use your new version. We would need 
> to use the old env variable name "pcidelay" though, since there are boards in 
> the field already using this version.
> 
> Anatolij, what do you think?

This should work, I think. I'll send a patch moving pcidelay code to
new location.

> Matthias, could you do some tests on some esd boards with the new version when 
> available, to make sure that we don't break backwards compatibility?

Would be great if Matthias could test the patch. 

Thanks,
Anatolij

--
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office at denx.de

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

* [U-Boot] [PATCH 1/1] pci: move pcidelay code to new location just before PCI bus scan
  2011-05-30 14:10         ` Stefan Roese
  2011-10-11 15:16           ` Anatolij Gustschin
@ 2011-10-11 15:18           ` Anatolij Gustschin
  2011-10-12  6:58             ` Matthias Fuchs
  2011-10-12  8:44             ` [U-Boot] [PATCH v2 " Anatolij Gustschin
  1 sibling, 2 replies; 35+ messages in thread
From: Anatolij Gustschin @ 2011-10-11 15:18 UTC (permalink / raw)
  To: u-boot

PCI cards might need some time after reset to respond. On some
boards (mpc5200 or mpc8260 based) the PCI bus reset is deasserted
at pci_init_board() time, so we currently can not use available
"pcidelay" option for waiting before PCI bus scan since this
waiting takes place before calling pci_init_board(). By moving
the pcidelay code to the new location using of the "pcidelay"
option is possible on mpc5200 or mpc8260 based boards, too.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
 drivers/pci/pci.c |   26 +++++++++++++-------------
 1 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 1a0b14c..b65cdd1 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -695,6 +695,19 @@ int pci_hose_scan_bus(struct pci_controller *hose, int bus)
 
 int pci_hose_scan(struct pci_controller *hose)
 {
+#if defined(CONFIG_PCI_BOOTDELAY)
+	char *s;
+	int i;
+
+	/* wait "pcidelay" ms (if defined)... */
+	s = getenv("pcidelay");
+	if (s) {
+		int val = simple_strtoul(s, NULL, 10);
+		for (i = 0; i < val; i++)
+			udelay(1000);
+	}
+#endif /* CONFIG_PCI_BOOTDELAY */
+
 	/* Start scan at current_busno.
 	 * PCIe will start scan@first_busno+1.
 	 */
@@ -709,19 +722,6 @@ int pci_hose_scan(struct pci_controller *hose)
 
 void pci_init(void)
 {
-#if defined(CONFIG_PCI_BOOTDELAY)
-	char *s;
-	int i;
-
-	/* wait "pcidelay" ms (if defined)... */
-	s = getenv ("pcidelay");
-	if (s) {
-		int val = simple_strtoul (s, NULL, 10);
-		for (i=0; i<val; i++)
-			udelay (1000);
-	}
-#endif /* CONFIG_PCI_BOOTDELAY */
-
 	hose_head = NULL;
 
 	/* now call board specific pci_init()... */
-- 
1.7.1

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

* [U-Boot] [PATCH 1/1] pci: move pcidelay code to new location just before PCI bus scan
  2011-10-11 15:18           ` [U-Boot] [PATCH 1/1] pci: move pcidelay code to new location just before PCI " Anatolij Gustschin
@ 2011-10-12  6:58             ` Matthias Fuchs
  2011-10-12  8:44             ` [U-Boot] [PATCH v2 " Anatolij Gustschin
  1 sibling, 0 replies; 35+ messages in thread
From: Matthias Fuchs @ 2011-10-12  6:58 UTC (permalink / raw)
  To: u-boot

Hi Anatolij,

in general this is a good idea. It also fixes an issue on dual role
boards that can act as pci host and target like the PMC440 and PMC405DE.
When these boards are configured as target, the pcidelay variable
must be ignored or _target_ initialization must be done before the delay.

That's why I put my own pcidelay implementation in our board code.

But I see a problem on boards with more than one PCI bus/PCIe
rootcomplex like some 440 parts. In this case the delay is executed
multiple times.

So it might be a good idea to restrict pci_hose_scan to wait for only
during its initial call and to ignore pcidelay for any further call.

BTW, 4xx_pcie.c also implements an additional delay controlled by the
pciscandelay variable before calling pci_hose_scan() :-) I think this is
obsolete.

Matthias

On 11.10.2011 17:18, Anatolij Gustschin wrote:
> PCI cards might need some time after reset to respond. On some
> boards (mpc5200 or mpc8260 based) the PCI bus reset is deasserted
> at pci_init_board() time, so we currently can not use available
> "pcidelay" option for waiting before PCI bus scan since this
> waiting takes place before calling pci_init_board(). By moving
> the pcidelay code to the new location using of the "pcidelay"
> option is possible on mpc5200 or mpc8260 based boards, too.
> 
> Signed-off-by: Anatolij Gustschin <agust@denx.de>
> ---
>  drivers/pci/pci.c |   26 +++++++++++++-------------
>  1 files changed, 13 insertions(+), 13 deletions(-)
> 
> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
> index 1a0b14c..b65cdd1 100644
> --- a/drivers/pci/pci.c
> +++ b/drivers/pci/pci.c
> @@ -695,6 +695,19 @@ int pci_hose_scan_bus(struct pci_controller *hose, int bus)
>  
>  int pci_hose_scan(struct pci_controller *hose)
>  {
> +#if defined(CONFIG_PCI_BOOTDELAY)
> +	char *s;
> +	int i;
> +
> +	/* wait "pcidelay" ms (if defined)... */
> +	s = getenv("pcidelay");
> +	if (s) {
> +		int val = simple_strtoul(s, NULL, 10);
> +		for (i = 0; i < val; i++)
> +			udelay(1000);
> +	}
> +#endif /* CONFIG_PCI_BOOTDELAY */
> +
>  	/* Start scan at current_busno.
>  	 * PCIe will start scan at first_busno+1.
>  	 */
> @@ -709,19 +722,6 @@ int pci_hose_scan(struct pci_controller *hose)
>  
>  void pci_init(void)
>  {
> -#if defined(CONFIG_PCI_BOOTDELAY)
> -	char *s;
> -	int i;
> -
> -	/* wait "pcidelay" ms (if defined)... */
> -	s = getenv ("pcidelay");
> -	if (s) {
> -		int val = simple_strtoul (s, NULL, 10);
> -		for (i=0; i<val; i++)
> -			udelay (1000);
> -	}
> -#endif /* CONFIG_PCI_BOOTDELAY */
> -
>  	hose_head = NULL;
>  
>  	/* now call board specific pci_init()... */


-- 
------------------------------------------------------------------------
Dipl.-Ing. Matthias Fuchs
Head of System Design

esd electronic system design gmbh
Vahrenwalder Str. 207 - 30165 Hannover - GERMANY
Phone: +49-511-37298-0 - Fax: +49-511-37298-68
Please visit our homepage http://www.esd.eu
Quality Products - Made in Germany

Besuchen Sie uns auf der Hannover Messe 2011
in Halle 9, Stand D13 vom 04.-08. April 2011 in Hannover!
-------------------------------------------------------------------------
Gesch?ftsf?hrer: Klaus Detering
Amtsgericht Hannover HRB 51373 - VAT-ID DE 115672832
-------------------------------------------------------------------------

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

* [U-Boot] [PATCH v2 1/1] pci: move pcidelay code to new location just before PCI bus scan
  2011-10-11 15:18           ` [U-Boot] [PATCH 1/1] pci: move pcidelay code to new location just before PCI " Anatolij Gustschin
  2011-10-12  6:58             ` Matthias Fuchs
@ 2011-10-12  8:44             ` Anatolij Gustschin
  2011-10-12  9:42               ` Stefan Roese
                                 ` (2 more replies)
  1 sibling, 3 replies; 35+ messages in thread
From: Anatolij Gustschin @ 2011-10-12  8:44 UTC (permalink / raw)
  To: u-boot

PCI cards might need some time after reset to respond. On some
boards (mpc5200 or mpc8260 based) the PCI bus reset is deasserted
at pci_init_board() time, so we currently can not use available
"pcidelay" option for waiting before PCI bus scan since this
waiting takes place before calling pci_init_board(). By moving
the pcidelay code to the new location using of the "pcidelay"
option is possible on mpc5200 or mpc8260 based boards, too.

Since pci_hose_scan() could be called multiple times, restrict
the function to wait only during its first call and to ignore
pcidelay for any further call (as pointed out by Matthias).

Signed-off-by: Anatolij Gustschin <agust@denx.de>
Cc: Matthias Fuchs <matthias.fuchs@esd.eu>
---
Changes since first version:
 - extend to wait only during initial pci_hose_scan() call
   as pointed out by Matthias

 drivers/pci/pci.c |   30 +++++++++++++++++-------------
 1 files changed, 17 insertions(+), 13 deletions(-)

diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 1a0b14c..5f1f128 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -695,6 +695,23 @@ int pci_hose_scan_bus(struct pci_controller *hose, int bus)
 
 int pci_hose_scan(struct pci_controller *hose)
 {
+#if defined(CONFIG_PCI_BOOTDELAY)
+	static int pcidelay_done;
+	char *s;
+	int i;
+
+	if (!pcidelay_done) {
+		/* wait "pcidelay" ms (if defined)... */
+		s = getenv("pcidelay");
+		if (s) {
+			int val = simple_strtoul(s, NULL, 10);
+			for (i = 0; i < val; i++)
+				udelay(1000);
+		}
+		pcidelay_done = 1;
+	}
+#endif /* CONFIG_PCI_BOOTDELAY */
+
 	/* Start scan at current_busno.
 	 * PCIe will start scan@first_busno+1.
 	 */
@@ -709,19 +726,6 @@ int pci_hose_scan(struct pci_controller *hose)
 
 void pci_init(void)
 {
-#if defined(CONFIG_PCI_BOOTDELAY)
-	char *s;
-	int i;
-
-	/* wait "pcidelay" ms (if defined)... */
-	s = getenv ("pcidelay");
-	if (s) {
-		int val = simple_strtoul (s, NULL, 10);
-		for (i=0; i<val; i++)
-			udelay (1000);
-	}
-#endif /* CONFIG_PCI_BOOTDELAY */
-
 	hose_head = NULL;
 
 	/* now call board specific pci_init()... */
-- 
1.7.1

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

* [U-Boot] [PATCH v2 1/1] pci: move pcidelay code to new location just before PCI bus scan
  2011-10-12  8:44             ` [U-Boot] [PATCH v2 " Anatolij Gustschin
@ 2011-10-12  9:42               ` Stefan Roese
  2011-10-13 12:50               ` Matthias Fuchs
  2011-10-15 20:16               ` Wolfgang Denk
  2 siblings, 0 replies; 35+ messages in thread
From: Stefan Roese @ 2011-10-12  9:42 UTC (permalink / raw)
  To: u-boot

On Wednesday 12 October 2011 10:44:30 Anatolij Gustschin wrote:
> PCI cards might need some time after reset to respond. On some
> boards (mpc5200 or mpc8260 based) the PCI bus reset is deasserted
> at pci_init_board() time, so we currently can not use available
> "pcidelay" option for waiting before PCI bus scan since this
> waiting takes place before calling pci_init_board(). By moving
> the pcidelay code to the new location using of the "pcidelay"
> option is possible on mpc5200 or mpc8260 based boards, too.
> 
> Since pci_hose_scan() could be called multiple times, restrict
> the function to wait only during its first call and to ignore
> pcidelay for any further call (as pointed out by Matthias).
> 
> Signed-off-by: Anatolij Gustschin <agust@denx.de>
> Cc: Matthias Fuchs <matthias.fuchs@esd.eu>

Looks good, so:

Acked-by: Stefan Roese <sr@denx.de>

Thanks,
Stefan

--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-0 Fax: (+49)-8142-66989-80 Email: office at denx.de

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

* [U-Boot] [PATCH v2 1/1] pci: move pcidelay code to new location just before PCI bus scan
  2011-10-12  8:44             ` [U-Boot] [PATCH v2 " Anatolij Gustschin
  2011-10-12  9:42               ` Stefan Roese
@ 2011-10-13 12:50               ` Matthias Fuchs
  2011-10-13 13:03                 ` Stefan Roese
  2011-10-15 20:16               ` Wolfgang Denk
  2 siblings, 1 reply; 35+ messages in thread
From: Matthias Fuchs @ 2011-10-13 12:50 UTC (permalink / raw)
  To: u-boot

On 12.10.2011 10:44, Anatolij Gustschin wrote:
> PCI cards might need some time after reset to respond. On some
> boards (mpc5200 or mpc8260 based) the PCI bus reset is deasserted
> at pci_init_board() time, so we currently can not use available
> "pcidelay" option for waiting before PCI bus scan since this
> waiting takes place before calling pci_init_board(). By moving
> the pcidelay code to the new location using of the "pcidelay"
> option is possible on mpc5200 or mpc8260 based boards, too.
> 
> Since pci_hose_scan() could be called multiple times, restrict
> the function to wait only during its first call and to ignore
> pcidelay for any further call (as pointed out by Matthias).
> 
> Signed-off-by: Anatolij Gustschin <agust@denx.de>
> Cc: Matthias Fuchs <matthias.fuchs@esd.eu>
> ---
> Changes since first version:
>  - extend to wait only during initial pci_hose_scan() call
>    as pointed out by Matthias

Tested on PMC440. Works fine.

Acked-by: Matthias Fuchs <matthias.fuchs@esd.eu>


Matthias

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

* [U-Boot] [PATCH v2 1/1] pci: move pcidelay code to new location just before PCI bus scan
  2011-10-13 12:50               ` Matthias Fuchs
@ 2011-10-13 13:03                 ` Stefan Roese
  2011-10-13 13:08                   ` Matthias Fuchs
  0 siblings, 1 reply; 35+ messages in thread
From: Stefan Roese @ 2011-10-13 13:03 UTC (permalink / raw)
  To: u-boot

On Thursday 13 October 2011 14:50:02 Matthias Fuchs wrote:
> On 12.10.2011 10:44, Anatolij Gustschin wrote:
> > PCI cards might need some time after reset to respond. On some
> > boards (mpc5200 or mpc8260 based) the PCI bus reset is deasserted
> > at pci_init_board() time, so we currently can not use available
> > "pcidelay" option for waiting before PCI bus scan since this
> > waiting takes place before calling pci_init_board(). By moving
> > the pcidelay code to the new location using of the "pcidelay"
> > option is possible on mpc5200 or mpc8260 based boards, too.
> > 
> > Since pci_hose_scan() could be called multiple times, restrict
> > the function to wait only during its first call and to ignore
> > pcidelay for any further call (as pointed out by Matthias).
> > 
> > Signed-off-by: Anatolij Gustschin <agust@denx.de>
> > Cc: Matthias Fuchs <matthias.fuchs@esd.eu>
> > ---
> > 
> > Changes since first version:
> >  - extend to wait only during initial pci_hose_scan() call
> >  
> >    as pointed out by Matthias
> 
> Tested on PMC440. Works fine.
> 
> Acked-by: Matthias Fuchs <matthias.fuchs@esd.eu>

Thanks. In this case a:

Tested-by: ...

would be even better. :)

Thanks,
Stefan

--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-0 Fax: (+49)-8142-66989-80 Email: office at denx.de

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

* [U-Boot] [PATCH v2 1/1] pci: move pcidelay code to new location just before PCI bus scan
  2011-10-13 13:03                 ` Stefan Roese
@ 2011-10-13 13:08                   ` Matthias Fuchs
  0 siblings, 0 replies; 35+ messages in thread
From: Matthias Fuchs @ 2011-10-13 13:08 UTC (permalink / raw)
  To: u-boot

On 13.10.2011 15:03, Stefan Roese wrote:
>>
>> Tested on PMC440. Works fine.
>>
>> Acked-by: Matthias Fuchs <matthias.fuchs@esd.eu>
> 
> Thanks. In this case a:
> 
> Tested-by: ...
> 
> would be even better. :)
> 
Even both if you like :-)

Matthias

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

* [U-Boot] [PATCH] mpc5200: digsy_mtc: fix detection of Coral-PA
  2011-05-27 14:08 ` [U-Boot] [PATCH 3/5] mpc5200: digsy_mtc: enable pci_scan_delay option Anatolij Gustschin
  2011-05-27 15:28   ` Detlev Zundel
@ 2011-10-13 15:19   ` Anatolij Gustschin
  2011-10-14  8:19     ` Detlev Zundel
  2011-10-15 20:19     ` Wolfgang Denk
  1 sibling, 2 replies; 35+ messages in thread
From: Anatolij Gustschin @ 2011-10-13 15:19 UTC (permalink / raw)
  To: u-boot

A delay of approximately 250 ms after PCI bus reset in
pci_mpc5xxx_init() is needed to recognize the Coral-PA
controller on the graphic extention board.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
To make it actually work another patch
"pci: move pcidelay code to new location just before PCI bus scan"
is also required. It has been submitted earlier [1] and there is
already some positive feedback.

[1] http://patchwork.ozlabs.org/patch/119171/

 include/configs/digsy_mtc.h |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/include/configs/digsy_mtc.h b/include/configs/digsy_mtc.h
index 522ec57..d0d1eda 100644
--- a/include/configs/digsy_mtc.h
+++ b/include/configs/digsy_mtc.h
@@ -70,6 +70,7 @@
 #define CONFIG_PCI		1
 #define CONFIG_PCI_PNP		1
 #define CONFIG_PCI_SCAN_SHOW	1
+#define CONFIG_PCI_BOOTDELAY	250
 
 #define CONFIG_PCI_MEM_BUS	0x40000000
 #define CONFIG_PCI_MEM_PHYS	CONFIG_PCI_MEM_BUS
-- 
1.7.1

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

* [U-Boot] [PATCH] mpc5200: digsy_mtc: fix detection of Coral-PA
  2011-10-13 15:19   ` [U-Boot] [PATCH] mpc5200: digsy_mtc: fix detection of Coral-PA Anatolij Gustschin
@ 2011-10-14  8:19     ` Detlev Zundel
  2011-10-15 20:19     ` Wolfgang Denk
  1 sibling, 0 replies; 35+ messages in thread
From: Detlev Zundel @ 2011-10-14  8:19 UTC (permalink / raw)
  To: u-boot

Hi Anatolij,

> A delay of approximately 250 ms after PCI bus reset in
> pci_mpc5xxx_init() is needed to recognize the Coral-PA
> controller on the graphic extention board.
>
> Signed-off-by: Anatolij Gustschin <agust@denx.de>
> ---
> To make it actually work another patch
> "pci: move pcidelay code to new location just before PCI bus scan"
> is also required. It has been submitted earlier [1] and there is
> already some positive feedback.
>
> [1] http://patchwork.ozlabs.org/patch/119171/

Acked-by: Detlev Zundel <dzu@denx.de>

-- 
And like the software patent issue, I also don't necessarily like DRM myself,
but I still ended up feeling the same: I'm an "Oppenheimer", and I refuse to
play politics with Linux, and I think you can use Linux for whatever you want
to - which very much includes things I don't necessarily personally approve
of.                -- Linus Torvalds in lmkl
--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de

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

* [U-Boot] [PATCH v2 1/1] pci: move pcidelay code to new location just before PCI bus scan
  2011-10-12  8:44             ` [U-Boot] [PATCH v2 " Anatolij Gustschin
  2011-10-12  9:42               ` Stefan Roese
  2011-10-13 12:50               ` Matthias Fuchs
@ 2011-10-15 20:16               ` Wolfgang Denk
  2 siblings, 0 replies; 35+ messages in thread
From: Wolfgang Denk @ 2011-10-15 20:16 UTC (permalink / raw)
  To: u-boot

Dear Anatolij Gustschin,

In message <1318409070-11792-1-git-send-email-agust@denx.de> you wrote:
> PCI cards might need some time after reset to respond. On some
> boards (mpc5200 or mpc8260 based) the PCI bus reset is deasserted
> at pci_init_board() time, so we currently can not use available
> "pcidelay" option for waiting before PCI bus scan since this
> waiting takes place before calling pci_init_board(). By moving
> the pcidelay code to the new location using of the "pcidelay"
> option is possible on mpc5200 or mpc8260 based boards, too.
> 
> Since pci_hose_scan() could be called multiple times, restrict
> the function to wait only during its first call and to ignore
> pcidelay for any further call (as pointed out by Matthias).
> 
> Signed-off-by: Anatolij Gustschin <agust@denx.de>
> Cc: Matthias Fuchs <matthias.fuchs@esd.eu>
> ---
> Changes since first version:
>  - extend to wait only during initial pci_hose_scan() call
>    as pointed out by Matthias
> 
>  drivers/pci/pci.c |   30 +++++++++++++++++-------------
>  1 files changed, 17 insertions(+), 13 deletions(-)

Applied, thanks.

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
A Freudian slip is when you say one thing but mean your mother.

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

* [U-Boot] [PATCH] mpc5200: digsy_mtc: fix detection of Coral-PA
  2011-10-13 15:19   ` [U-Boot] [PATCH] mpc5200: digsy_mtc: fix detection of Coral-PA Anatolij Gustschin
  2011-10-14  8:19     ` Detlev Zundel
@ 2011-10-15 20:19     ` Wolfgang Denk
  1 sibling, 0 replies; 35+ messages in thread
From: Wolfgang Denk @ 2011-10-15 20:19 UTC (permalink / raw)
  To: u-boot

Dear Anatolij Gustschin,

In message <1318519157-4945-1-git-send-email-agust@denx.de> you wrote:
> A delay of approximately 250 ms after PCI bus reset in
> pci_mpc5xxx_init() is needed to recognize the Coral-PA
> controller on the graphic extention board.
> 
> Signed-off-by: Anatolij Gustschin <agust@denx.de>
> ---
> To make it actually work another patch
> "pci: move pcidelay code to new location just before PCI bus scan"
> is also required. It has been submitted earlier [1] and there is
> already some positive feedback.
> 
> [1] http://patchwork.ozlabs.org/patch/119171/
> 
>  include/configs/digsy_mtc.h |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)

Applied, thanks.

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
"Plan to throw one away.  You will anyway."
                              - Fred Brooks, "The Mythical Man Month"

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

end of thread, other threads:[~2011-10-15 20:19 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-05-27 14:08 [U-Boot] [PATCH 0/5] mpc5200: digsy_mtc: update for next Anatolij Gustschin
2011-05-27 14:08 ` [U-Boot] [PATCH 1/5] video: mb862xx: support Coral-PA controller Anatolij Gustschin
2011-07-04 22:32   ` Anatolij Gustschin
2011-05-27 14:08 ` [U-Boot] [PATCH 2/5] pci: option for configurable delay between pci reset and pci bus scan Anatolij Gustschin
2011-05-27 15:26   ` Detlev Zundel
2011-05-27 16:43     ` Anatolij Gustschin
2011-05-30  7:45       ` Detlev Zundel
2011-05-30 14:10         ` Stefan Roese
2011-10-11 15:16           ` Anatolij Gustschin
2011-10-11 15:18           ` [U-Boot] [PATCH 1/1] pci: move pcidelay code to new location just before PCI " Anatolij Gustschin
2011-10-12  6:58             ` Matthias Fuchs
2011-10-12  8:44             ` [U-Boot] [PATCH v2 " Anatolij Gustschin
2011-10-12  9:42               ` Stefan Roese
2011-10-13 12:50               ` Matthias Fuchs
2011-10-13 13:03                 ` Stefan Roese
2011-10-13 13:08                   ` Matthias Fuchs
2011-10-15 20:16               ` Wolfgang Denk
2011-05-27 14:08 ` [U-Boot] [PATCH 3/5] mpc5200: digsy_mtc: enable pci_scan_delay option Anatolij Gustschin
2011-05-27 15:28   ` Detlev Zundel
2011-10-13 15:19   ` [U-Boot] [PATCH] mpc5200: digsy_mtc: fix detection of Coral-PA Anatolij Gustschin
2011-10-14  8:19     ` Detlev Zundel
2011-10-15 20:19     ` Wolfgang Denk
2011-05-27 14:08 ` [U-Boot] [PATCH 4/5] mpc5200: digsy_mtc: add support for graphic extension board Anatolij Gustschin
2011-05-27 15:33   ` Detlev Zundel
2011-05-27 17:56     ` Anatolij Gustschin
2011-05-30  7:16   ` [U-Boot] [PATCH v2 " Anatolij Gustschin
2011-06-06  9:49     ` Detlev Zundel
2011-07-27 21:26     ` Wolfgang Denk
2011-05-27 14:08 ` [U-Boot] [PATCH 5/5] mpc5200: digsy_mtc: add support for writing 'appreg' value Anatolij Gustschin
2011-05-27 15:36   ` Detlev Zundel
2011-05-27 18:00     ` Anatolij Gustschin
2011-05-30  7:18   ` [U-Boot] [PATCH v2 " Anatolij Gustschin
2011-07-16 20:26     ` [U-Boot] [PATCH] digsy_mtc: move board into vendor dir and add vendor logo Anatolij Gustschin
2011-07-27 21:27       ` Wolfgang Denk
2011-07-27 21:26     ` [U-Boot] [PATCH v2 5/5] mpc5200: digsy_mtc: add support for writing 'appreg' value Wolfgang Denk

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.