public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] This patch adds support for Fujitsu MB86R01 'JADE' SOC
@ 2009-06-30 13:21 Matthias Weisser
  2009-06-30 13:21 ` [U-Boot] [PATCH] Add suport for the graphic controller included in the JADE SOC Matthias Weisser
  2009-07-19 20:12 ` [U-Boot] [PATCH] This patch adds support for Fujitsu MB86R01 'JADE' SOC Wolfgang Denk
  0 siblings, 2 replies; 11+ messages in thread
From: Matthias Weisser @ 2009-06-30 13:21 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Matthias Weisser <matthias.weisser@graf-syteco.de>
---
 cpu/arm926ejs/jade/Makefile          |   47 +++++++++
 cpu/arm926ejs/jade/timer.c           |  129 ++++++++++++++++++++++++
 include/asm-arm/arch-jade/hardware.h |   31 ++++++
 include/asm-arm/arch-jade/jade.h     |  182 ++++++++++++++++++++++++++++++++++
 4 files changed, 389 insertions(+), 0 deletions(-)
 create mode 100755 cpu/arm926ejs/jade/Makefile
 create mode 100755 cpu/arm926ejs/jade/timer.c
 create mode 100755 include/asm-arm/arch-jade/hardware.h
 create mode 100755 include/asm-arm/arch-jade/jade.h

diff --git a/cpu/arm926ejs/jade/Makefile b/cpu/arm926ejs/jade/Makefile
new file mode 100755
index 0000000..7da9f40
--- /dev/null
+++ b/cpu/arm926ejs/jade/Makefile
@@ -0,0 +1,47 @@
+#
+# (C) Copyright 2000-2006
+# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+#
+# See file CREDITS for list of people who contributed to this
+# project.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+
+include $(TOPDIR)/config.mk
+
+LIB	= $(obj)lib$(SOC).a
+
+COBJS	= timer.o
+SOBJS	=
+
+SRCS	:= $(START:.o=.S) $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS	:= $(addprefix $(obj),$(COBJS) $(SOBJS))
+START	:= $(addprefix $(obj),$(START))
+
+all:	$(obj).depend $(LIB)
+
+$(LIB):	$(OBJS)
+	$(AR) $(ARFLAGS) $@ $(OBJS)
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
diff --git a/cpu/arm926ejs/jade/timer.c b/cpu/arm926ejs/jade/timer.c
new file mode 100755
index 0000000..59bef84
--- /dev/null
+++ b/cpu/arm926ejs/jade/timer.c
@@ -0,0 +1,129 @@
+/*
+ * (C) Copyright 2007-2008
+ * Stelian Pop <stelian.pop@leadtechdesign.com>
+ * Lead Tech Design <www.leadtechdesign.com>
+ *
+ * Matthias Weisser <matthias.weisser@graf-syteco.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 <div64.h>
+
+#define TIMER_LOAD_VAL 0xffffffff
+#define TIMER_BASE     0xfffe0000
+
+#define READ_TIMER (*(volatile ulong *)(TIMER_BASE+4))
+#define TIMER_FREQ     (CONFIG_JADE_IOCLK  / 16)
+
+static ulong timestamp;
+static ulong lastdec;
+
+static inline unsigned long long tick_to_time(unsigned long long tick)
+{
+	tick *= CONFIG_SYS_HZ;
+	do_div(tick, TIMER_FREQ);
+
+	return tick;
+}
+
+static inline unsigned long long usec_to_tick(unsigned long long usec)
+{
+	usec *= TIMER_FREQ;
+	do_div(usec, 1000000);
+
+	return usec;
+}
+
+/* nothing really to do with interrupts, just starts up a counter. */
+int timer_init(void)
+{
+	*(volatile ulong *)(TIMER_BASE + 0) = TIMER_LOAD_VAL; 
+	*(volatile ulong *)(TIMER_BASE + 8) = 0x86; 
+	
+	reset_timer_masked();
+
+	return 0;
+}
+
+/*
+ * timer without interrupts
+ */
+unsigned long long get_ticks(void)
+{
+	ulong now = READ_TIMER;
+
+	if (now <= lastdec)	/* normal mode (non roll) */
+		/* move stamp forward with absolut diff ticks */
+		timestamp += (lastdec - now);
+	else			/* we have rollover of incrementer */
+		timestamp += lastdec + TIMER_LOAD_VAL - now;
+	lastdec = now;
+	return timestamp;
+}
+
+void reset_timer_masked(void)
+{
+	/* reset time */
+	lastdec = READ_TIMER; /* capture current decrement value time */
+	timestamp = 0; /* start "advancing" time stamp from 0 */
+}
+
+ulong get_timer_masked(void)
+{
+	return tick_to_time(get_ticks());
+}
+
+void udelay(unsigned long usec)
+{
+	unsigned long long tmp;
+	ulong tmo;
+
+	tmo = usec_to_tick(usec);
+	tmp = get_ticks() + tmo;	/* get current timestamp */
+
+	while (get_ticks() < tmp)   /* loop till event */
+		 /*NOP*/;
+}
+
+void reset_timer(void)
+{
+	reset_timer_masked();
+}
+
+ulong get_timer(ulong base)
+{
+	return get_timer_masked () - base;
+}
+
+/*
+ * This function is derived from PowerPC code (timebase clock frequency).
+ * On ARM it returns the number of timer ticks per second.
+ */
+ulong get_tbclk(void)
+{
+	ulong tbclk;
+
+	tbclk = CONFIG_SYS_HZ;
+	return tbclk;
+}
+
+
+
diff --git a/include/asm-arm/arch-jade/hardware.h b/include/asm-arm/arch-jade/hardware.h
new file mode 100755
index 0000000..8546216
--- /dev/null
+++ b/include/asm-arm/arch-jade/hardware.h
@@ -0,0 +1,31 @@
+/*
+ * (C) Copyright 2007
+ *
+ * Author : Carsten Schneider, mycable GmbH 
+ *          <cs@mycable.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
+ */
+#ifndef __ASM_ARCH_HARDWARE_H
+#define __ASM_ARCH_HARDWARE_H
+
+#include <asm/sizes.h>
+#include <asm/arch/jade.h>
+
+#endif 
diff --git a/include/asm-arm/arch-jade/jade.h b/include/asm-arm/arch-jade/jade.h
new file mode 100755
index 0000000..0ab96e1
--- /dev/null
+++ b/include/asm-arm/arch-jade/jade.h
@@ -0,0 +1,182 @@
+/*
+ * (C) Copyright 2007
+ *
+ * jade definitions
+ *
+ * Author : Carsten Schneider, mycable GmbH
+ *          <cs@mycable.de>
+ *
+ * (c) 2009 Graf-Syteco, Matthias Weisser 
+ * <matthias.weisser@graf-syteco.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
+ */
+
+#ifndef JADE_H
+#define JADE_H
+
+typedef	volatile unsigned int	JREG;	/* Hardware register definition */
+
+/*
+ * Physical Address Defines
+ */
+#define JADE_GDC_PHYS_BASE	0xf1fc0000		/* GDC phys */
+#define JADE_GDC_PHYS_DISP_BASE	0xf1fd0000		/* GDC DisplayBase phys */
+#define JADE_CCNT_PHYS_BASE	0xfff42000		/* Chip Control Module */
+#define JADE_CAN0_PHYS_BASE	0xfff54000		/* CAN 0 phys */
+#define JADE_CAN1_PHYS_BASE	0xfff55000		/* CAN 1 phys */
+#define JADE_I2C0_PHYS_BASE	0xfff56000		/* I2C 0 phys */
+#define JADE_I2C1_PHYS_BASE	0xfff57000		/* I2C 1 phys */
+#define JADE_EHCI_PHYS_BASE	0xfff80000		/* EHCI phys */
+#define JADE_OHCI_PHYS_BASE	0xfff81000		/* OHCI phys */
+#define JADE_IRC1_PHYS_BASE	0xfffb0000		/* Jade cascaded Interrupt Controller phys */
+#define JADE_TIMER_PHYS_BASE	0xfffe0000		/* Counter/Timers JADE phys */
+#define JADE_UART0_PHYS_BASE	0xfffe1000		/* UART 0 phys */
+#define JADE_UART1_PHYS_BASE	0xfffe2000		/* UART 1 phys */
+#define JADE_IRCE_PHYS_BASE	0xfffe4000		/* Extended Interrupt Controller */
+#define JADE_CRG_PHYS_BASE	0xfffe7000		/* Clock Reset Generator */
+#define JADE_IRC0_PHYS_BASE	0xfffe8000		/* Jade Interrupt Controller phys */
+#define JADE_GPIO_PHYS_BASE	0xfffe9000		/* GPIO phys */
+
+
+/* -------- DRAMC_DRIC : (DRAMC Offset: 0x0) DRAM Controller Mode Register --------  */
+
+/********************************************************************************
+ *              REGISTER ADDRESS DEFINITION FOR DRAMC PERIPHERAL                *
+ ********************************************************************************/
+#define JREGC_DRAMC_DRIC	((JREG *) 0xF3000000)	/* DRAM Controller Initialization control register */
+#define	JREGC_DRAMC_DRIC1	((JREG *) 0xF3000002)	/* DRAM Controller Init control command register 1 */
+#define	JREGC_DRAMC_DRIC2	((JREG *) 0xF3000004)	/* DRAM Controller Init control command register 2 */
+#define	JREGC_DRAMC_DRCA	((JREG *) 0xF3000006)	/* DRAM Controller Address control register */
+#define	JREGC_DRAMC_DRCM 	((JREG *) 0xF3000008)	/* DRAM Controller Modal control register */
+#define	JREGC_DRAMC_DRCST1	((JREG *) 0xF300000A)	/* DRAM Controller Timing setting register 1 */
+#define	JREGC_DRAMC_DRCST2	((JREG *) 0xF300000C)	/* DRAM Controller Timing setting register 2 */
+#define	JREGC_DRAMC_DRCR	((JREG *) 0xF300000E)	/* DRAM Controller Refresh control register */
+#define JREGC_DRAMC_DRCS	((JREG *) 0xF3000020)	/* DRAM Controller Status control register */
+#define JREGC_DRAMC_DRASR	((JREG *) 0xF3000030)	/* DRAM Controller AXI operation setting register */
+#define JREGC_DRAMC_DRIMS1	((JREG *) 0xF3000042)	/* DRAM Controller IF control register 1 */
+#define JREGC_DRAMC_DRIMS2A1	((JREG *) 0xF3000044)	/* DRAM Controller IF control register 2 */
+#define JREGC_DRAMC_DRIMS3A2	((JREG *) 0xF3000046)	/* DRAM Controller IF control register 3 */
+#define JREGC_DRAMC_DRIMS4	((JREG *) 0xF3000048)	/* DRAM Controller IF control register 4 */
+#define JREGC_DRAMC_DRIMS5	((JREG *) 0xF300004A)	/* DRAM Controller IF control register 5 */
+#define JREGC_DRAMC_DRIMS6	((JREG *) 0xF300004C)	/* DRAM Controller IF control register 6 */
+#define JREGC_DRAMC_DRIMS7D1	((JREG *) 0xF300004E)	/* DRAM Controller IF control register 7 */
+#define JREGC_DRAMC_DRIMS8D2	((JREG *) 0xF3000050)	/* DRAM Controller IF control register 8 */
+#define JREGC_DRAMC_DRIMS9T1	((JREG *) 0xF3000052)	/* DRAM Controller IF control register 9 */
+#define JREGC_DRAMC_DRIMSS10T2	((JREG *) 0xF3000054)	/* DRAM Controller IF control register 10 */
+#define JREGC_DRAMC_DROS	((JREG *) 0xF3000060)	/* DRAM Controller ODT setting register */
+#define JREGC_DRAMC_DRIBSLI	((JREG *) 0xF3000062)	/* DRAM Controller IO LOOPBACK setting register */
+#define JREGC_DRAMC_DRIBSODT1	((JREG *) 0xF3000064)	/* DRAM Controller IO ODT1 setting register */
+#define JREGC_DRAMC_DRIBSOCD	((JREG *) 0xF3000066)	/* DRAM Controller IO OCD setting register */
+#define JREGC_DRAMC_DRIBSOCD2	((JREG *) 0xF3000068)	/* DRAM Controller IO OCD2 setting register */
+#define JREGC_DRAMC_DROABA	((JREG *) 0xF3000070)	/* DRAM Controller ODT bias self adjustment register */
+#define JREGC_DRAMC_DROBV	((JREG *) 0xF3000080)	/* DRAM Controller ODT bias value register */
+#define JREGC_DRAMC_DROBS	((JREG *) 0xF3000084)	/* DRAM Controller ODT bias selection register */
+#define JREGC_DRAMC_DROBSR1	((JREG *) 0xF3000086)	/* DRAM Controller ODT bias setting register 1 */
+#define JREGC_DRAMC_DROBSR2	((JREG *) 0xF3000088)	/* DRAM Controller ODT bias setting register 2 */
+#define JREGC_DRAMC_DROBSR3	((JREG *) 0xF300008A)	/* DRAM Controller ODT bias setting register 3 */
+#define JREGC_DRAMC_DROBSR4	((JREG *) 0xF300008C)	/* DRAM Controller ODT bias setting register 4 */
+#define JREGC_DRAMC_DRIMR1	((JREG *) 0xF3000090)	/* DRAM Controller IO monitor register 1 */
+#define JREGC_DRAMC_DRIMR2	((JREG *) 0xF3000092)	/* DRAM Controller IO monitor register 2 */
+#define JREGC_DRAMC_DRIMR3	((JREG *) 0xF3000094)	/* DRAM Controller IO monitor register 3 */
+#define JREGC_DRAMC_DRIMR4	((JREG *) 0xF3000096)	/* DRAM Controller IO monitor register 4 */
+#define JREGC_DRAMC_DROISR1	((JREG *) 0xF3000098)	/* DRAM Controller OCD impedance setting register 1 */
+#define JREGC_DRAMC_DROISR2	((JREG *) 0xF300009A)	/* DRAM Controller OCD impedance setting register 2 */
+
+
+
+/******************************************************************************
+ *              REGISTER ADDRESS DEFINITION FOR GPIO PERIPHERAL               *
+ ******************************************************************************/
+/* GPIO Port data register */
+#define GPIO_PORT_DATA		0x00
+/* GPIO Data Direction */
+#define GPIO_DIRECTION		0x10
+
+/* GPIO Block Defines */
+#define GPIO_BLOCK_0		0x00
+#define GPIO_BLOCK_1		0x04
+#define GPIO_BLOCK_2		0x08
+
+/* ------------------------------------------------------------------------
+ *  JADE Chip Control Module
+ * ------------------------------------------------------------------------
+ */
+
+#define CCNT_CGPIO_IST	0x18	/* GPIO interrupt status register */
+#define CCNT_CGPIO_ISTM	0x1c	/* GPIO interrupt status mask register */
+#define CCNT_CGPIO_IP	0x20	/* GPIO interrupt polarity setting register */
+#define CCNT_CGPIO_IM	0x24	/* GPIO interrupt mode setting register */
+#define CCNT_CMUX_MD	0x30	/* MultiplexMode setting register */
+
+/********************************************************************************
+ *              REGISTER ADDRESS DEFINITION FOR UART0 PERIPHERAL                *
+ ********************************************************************************/
+#define JREGC_UART0_URT0RFR	((JREG *) 0xFFFE1000)	/* UART0 Reception FIFO register */
+#define JREGC_UART0_URT0TFR	((JREG *) 0xFFFE1000)	/* UART0 Transmission register */
+#define JREGC_UART0_URT0DLL	((JREG *) 0xFFFE1000)	/* UART0 Dividing value */
+#define JREGC_UART0_URT0IER	((JREG *) 0xFFFE1004)	/* UART0 DLAB=0: Interrupt enable register */
+#define JREGC_UART0_URT0DLM	((JREG *) 0xFFFE1004)	/* UART0 DLAB=1: Dividing value (upper byte) */
+#define JREGC_UART0_URT0IIR	((JREG *) 0xFFFE1008)	/* UART0 Interrupt ID register (read only) */
+#define JREGC_UART0_URT0FCR	((JREG *) 0xFFFE1008)	/* UART0 FIFO control register (write only) */
+#define JREGC_UART0_URT0LCR	((JREG *) 0xFFFE100C)	/* UART0 Line control register */
+#define JREGC_UART0_URT0MCR	((JREG *) 0xFFFE1010)	/* UART0 Modem control register */
+#define JREGC_UART0_URT0LSR	((JREG *) 0xFFFE1014)	/* UART0 Line status register */
+#define JREGC_UART0_URT0MSR	((JREG *) 0xFFFE1018)	/* UART0 Modem status register */
+#define JREGC_UART0_URT0SCR	((JREG *) 0xFFFE101C)	/* UART0 Scratch register (At DLAB=0) */
+
+/********************************************************************************
+ *              REGISTER ADDRESS DEFINITION FOR UART1 PERIPHERAL                *
+ ********************************************************************************/
+#define JREGC_UART1_URT1RFR	((JREG *) 0xFFFE2000)	/* UART1 Reception FIFO register */
+#define JREGC_UART1_URT1TFR	((JREG *) 0xFFFE2000)	/* UART1 Transmission register */
+#define JREGC_UART1_URT1DLL	((JREG *) 0xFFFE2000)	/* UART1 Dividing value */
+#define JREGC_UART1_URT1IER	((JREG *) 0xFFFE2004)	/* UART1 DLAB=0: Interrupt enable register */
+#define JREGC_UART1_URT1DLM	((JREG *) 0xFFFE2004)	/* UART1 DLAB=1: Dividing value (upper byte) */
+#define JREGC_UART1_URT1IIR	((JREG *) 0xFFFE2008)	/* UART1 Interrupt ID register (read only) */
+#define JREGC_UART1_URT1FCR	((JREG *) 0xFFFE2008)	/* UART1 FIFO control register (write only) */
+#define JREGC_UART1_URT1LCR	((JREG *) 0xFFFE200C)	/* UART1 Line control register */
+#define JREGC_UART1_URT1MCR	((JREG *) 0xFFFE2010)	/* UART1 Modem control register */
+#define JREGC_UART1_URT1LSR	((JREG *) 0xFFFE2014)	/* UART1 Line status register */
+#define JREGC_UART1_URT1MSR	((JREG *) 0xFFFE2018)	/* UART1 Modem status register */
+#define JREGC_UART1_URT1SCR	((JREG *) 0xFFFE201C)	/* UART1 Scratch register (At DLAB=0) */
+
+/********************************************************************************
+ *              REGISTER ADDRESS DEFINITION FOR CLOCK/RESET INTERFACE           *
+ ********************************************************************************/
+#define JREGC_CRG_CRPR		((JREG *) 0xFFFE7000)	/* CRG PLL control register */
+#define JREGC_CRG_CRWR		((JREG *) 0xFFFE7008)	/* CRG Watchdog timer control register */
+#define JREGC_CRG_CRSR		((JREG *) 0xFFFE700C)	/* CRG Reset/standby control register */
+#define JREGC_CRG_CRDA		((JREG *) 0xFFFE7010)	/* CRG Clock divider control register A */
+#define JREGC_CRG_CRDB		((JREG *) 0xFFFE7014)	/* CRG Clock divider control register B */
+#define JREGC_CRG_CRHA		((JREG *) 0xFFFE7018)	/* CRG (AHB(A) bus) bus clock gate control register */
+#define JREGC_CRG_CRPA		((JREG *) 0xFFFE701C)	/* CRG (APB(A) bus) bus clock gate control register */
+#define JREGC_CRG_CRPB		((JREG *) 0xFFFE7020)	/* CRG (APB(B) bus) bus clock gate control register */
+#define JREGC_CRG_CRHB		((JREG *) 0xFFFE7024)	/* CRG (AHB(B) bus) bus clock gate control register */
+#define JREGC_CRG_CRAM		((JREG *) 0xFFFE7028)	/* CRG ARM core clock gate control register */
+
+/********************************************************************************
+ *              REGISTER BASE ADDRESS DEFINITION FOR PERIPHERAL                 *
+ ********************************************************************************/
+#define JREGC_BASE_DRAM		((JREGPS_DRAMC)	0xF3000000)	/* (DRAMC) Base Address */
+#define JREGC_BASE_GPIO		((JREGPS_GPIO)  0xFFFE9000)	/* (GPIO)  Base Address */
+#define JREGC_BASE_UART0	((JREGPS_UART0) 0xFFFE1000)	/* (UART0)  Base Address */
+#define JREGC_BASE_UART1	((JREGPS_UART1) 0xFFFE2000)	/* (UART1)  Base Address */
+
+#endif /* jade_H */
-- 
1.5.6.3

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

* [U-Boot] [PATCH] Add suport for the graphic controller included in the JADE SOC
  2009-06-30 13:21 [U-Boot] [PATCH] This patch adds support for Fujitsu MB86R01 'JADE' SOC Matthias Weisser
@ 2009-06-30 13:21 ` Matthias Weisser
  2009-06-30 13:21   ` [U-Boot] [PATCH] Added support for splash screen positioning adding by adding Matthias Weisser
  2009-07-01 13:40   ` [U-Boot] [PATCH] Add suport for the graphic controller included in the JADE SOC Anatolij Gustschin
  2009-07-19 20:12 ` [U-Boot] [PATCH] This patch adds support for Fujitsu MB86R01 'JADE' SOC Wolfgang Denk
  1 sibling, 2 replies; 11+ messages in thread
From: Matthias Weisser @ 2009-06-30 13:21 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Matthias Weisser <matthias.weisser@graf-syteco.de>
---
 drivers/video/jadegdc.c |  205 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 205 insertions(+), 0 deletions(-)
 create mode 100755 drivers/video/jadegdc.c

diff --git a/drivers/video/jadegdc.c b/drivers/video/jadegdc.c
new file mode 100755
index 0000000..88b71b7
--- /dev/null
+++ b/drivers/video/jadegdc.c
@@ -0,0 +1,205 @@
+/*
+ * (C) Copyright 2007
+ * DENX Software Engineering, Anatolij Gustschin, agust at denx.de
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * jade.c - Graphic interface for Fujitsu Jade integrated graphic 
+ * controller. Derived from mb862xx.c 
+ */
+
+#include <common.h>
+
+#if defined(CONFIG_VIDEO_JADEGDC)
+
+#include <malloc.h>
+#include <asm/io.h>
+#include <video_fb.h>
+#include "videomodes.h"
+
+#if defined(CONFIG_POST)
+#include <post.h>
+#endif
+
+/*
+ * 4MB (at the end of system RAM)
+ */
+#define VIDEO_MEM_SIZE		0x400000
+
+#define GDC_HOST_BASE		0xF1FC0000
+#define GDC_DSP0_BASE		0xF1FD0000
+#define GDC_DSP1_BASE		0xF1FD2000
+
+/*
+ * Graphic Device
+ */
+GraphicDevice jadegdc;
+
+void *video_hw_init (void)
+{
+	GraphicDevice *pGD = (GraphicDevice *)&jadegdc;
+	struct ctfb_res_modes var_mode[2];
+	unsigned long * vid;
+	unsigned long div;
+	unsigned long dspBase[2];
+	char *penv;
+	int bpp;
+	int i, j;
+	
+	memset (pGD, 0, sizeof (GraphicDevice));
+	
+	dspBase[0] = GDC_DSP0_BASE;
+	dspBase[1] = GDC_DSP1_BASE;
+	
+	/* Preliminary init of the onboard graphic controller,
+	   retrieve base address */
+	if ((pGD->frameAdrs = GDC_HOST_BASE) == 0) {
+		printf ("Controller not found!\n");
+		return (NULL);
+	}
+	
+	pGD->gdfIndex = GDF_15BIT_555RGB;
+	pGD->gdfBytesPP = 2;
+	
+	pGD->memSize   = VIDEO_MEM_SIZE;
+	pGD->frameAdrs = PHYS_SDRAM + PHYS_SDRAM_SIZE - VIDEO_MEM_SIZE;
+	vid = (unsigned long *)pGD->frameAdrs;
+	
+	for(i = 0; i < 2; i++)
+	{
+		char varName[32];
+		u32 dcm1, dcm2, dcm3;
+		u16 htp, hdp, hdb, hsp, vtr, vsp, vdp;
+		u8 hsw, vsw;
+		u32 l2m, l2em, l2oa0, l2da0, l2oa1, l2da1;
+		u16 l2dx, l2dy, l2wx, l2wy, l2ww, l2wh;
+		
+		sprintf(varName, "gs_dsp_%d_param", i);
+		
+		if(NULL == (penv = getenv (varName)))
+			if(NULL == (penv = getenv ("videomode")))
+				continue;
+
+		bpp = 0;
+		bpp = video_get_params (&var_mode[i], penv);
+		
+		if(0 == bpp){
+			var_mode[i].xres = 640;
+			var_mode[i].yres = 480;
+			var_mode[i].pixclock = 39721; /* 25MHz */
+			var_mode[i].left_margin = 48;
+			var_mode[i].right_margin = 16;
+			var_mode[i].upper_margin = 33;
+			var_mode[i].lower_margin = 10;
+			var_mode[i].hsync_len = 96;
+			var_mode[i].vsync_len = 2;
+			var_mode[i].sync = 0;
+			var_mode[i].vmode = 0;
+		}
+		
+		for(j = 0; j < var_mode[i].xres * var_mode[i].yres / 2; j++)
+		{
+			*vid++ = 0xFFFFFFFF;
+		}
+		
+		pGD->winSizeX = var_mode[i].xres;
+		pGD->winSizeY = var_mode[i].yres;
+		
+		/* LCD base clock is ~ 660MHZ. We do calculations in kHz */
+		div = 660000 / (1000000000L / var_mode[i].pixclock);
+		if(div > 64)
+			div = 64;
+			
+		dcm1 = div << 8;
+		dcm2 = 0x00000000;
+		dcm3 = 0x00000000;
+		
+		htp = var_mode[i].left_margin + var_mode[i].xres + var_mode[i].hsync_len + var_mode[i].right_margin;
+		hdp = var_mode[i].xres;
+		hdb = var_mode[i].xres;
+		hsp = var_mode[i].xres + var_mode[i].right_margin;
+		hsw = var_mode[i].hsync_len;
+		
+		vsw = var_mode[i].vsync_len;
+		vtr = var_mode[i].upper_margin + var_mode[i].yres + var_mode[i].vsync_len + var_mode[i].lower_margin;
+		vsp = var_mode[i].yres + var_mode[i].lower_margin;
+		vdp = var_mode[i].yres; 
+		
+		l2m =	(       (var_mode[i].yres-1) << ( 0)) |
+				(((var_mode[i].xres * 2)/64) << (16)) |
+				(                        (1) << (31));
+				
+		l2em =	(1<<0) | (1 <<1);
+
+		l2oa0 = pGD->frameAdrs;
+		l2da0 = pGD->frameAdrs;
+		l2oa1 = pGD->frameAdrs;
+		l2da1 = pGD->frameAdrs;
+		l2dx = 0; 
+		l2dy = 0; 
+		l2wx = 0; 
+		l2wy = 0; 
+		l2ww = var_mode[i].xres;
+		l2wh = var_mode[i].yres - 1;
+		
+		writel(dcm1, dspBase[i] + 0x100);
+		writel(dcm2, dspBase[i] + 0x104);
+		writel(dcm3, dspBase[i] + 0x108);
+		
+		writew(htp, dspBase[i] + 0x006); 
+		writew(hdp, dspBase[i] + 0x008);
+		writew(hdb, dspBase[i] + 0x00A);
+		writew(hsp, dspBase[i] + 0x00C);
+		writeb(hsw, dspBase[i] + 0x00E);
+		
+		writeb(vsw, dspBase[i] + 0x00F);
+		writew(vtr, dspBase[i] + 0x012);
+		writew(vsp, dspBase[i] + 0x014);
+		writew(vdp, dspBase[i] + 0x016);
+		
+		writel(  l2m, dspBase[i] + 0x040);
+		writel( l2em, dspBase[i] + 0x130);
+		writel(l2oa0, dspBase[i] + 0x044);
+		writel(l2da0, dspBase[i] + 0x048);
+		writel(l2oa1, dspBase[i] + 0x04C);
+		writel(l2da1, dspBase[i] + 0x050);
+		writew( l2dx, dspBase[i] + 0x054);
+		writew( l2dy, dspBase[i] + 0x056);
+		writew( l2wx, dspBase[i] + 0x134);
+		writew( l2wy, dspBase[i] + 0x136);
+		writew( l2ww, dspBase[i] + 0x138);
+		writew( l2wh, dspBase[i] + 0x13A);
+		
+		writel(dcm1 | (1<<18) | (1<<31), dspBase[i] + 0x100);
+	}
+
+	return pGD;
+}
+
+/*
+ * Set a RGB color in the LUT
+ */
+void video_set_lut (unsigned int index, unsigned char r, unsigned char g, unsigned char b)
+{
+
+}
+
+#endif /* CONFIG_VIDEO_JADEGDC */
-- 
1.5.6.3

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

* [U-Boot] [PATCH] Added support for splash screen positioning adding by adding
  2009-06-30 13:21 ` [U-Boot] [PATCH] Add suport for the graphic controller included in the JADE SOC Matthias Weisser
@ 2009-06-30 13:21   ` Matthias Weisser
  2009-06-30 13:21     ` [U-Boot] [PATCH] Added support for jadecpu board using the MB86R01 'Jade' SOC from Fujitsu Matthias Weisser
  2009-07-01  9:18     ` [U-Boot] [PATCH] Added support for splash screen positioning adding by adding Anatolij Gustschin
  2009-07-01 13:40   ` [U-Boot] [PATCH] Add suport for the graphic controller included in the JADE SOC Anatolij Gustschin
  1 sibling, 2 replies; 11+ messages in thread
From: Matthias Weisser @ 2009-06-30 13:21 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Matthias Weisser <matthias.weisser@graf-syteco.de>
---
 drivers/video/cfb_console.c |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)
 mode change 100644 => 100755 drivers/video/cfb_console.c

diff --git a/drivers/video/cfb_console.c b/drivers/video/cfb_console.c
old mode 100644
new mode 100755
index bcafb27..15b99cb
--- a/drivers/video/cfb_console.c
+++ b/drivers/video/cfb_console.c
@@ -314,7 +314,7 @@ void	console_cursor (int state);
 #else
 #define SWAP16(x)	 (x)
 #define SWAP32(x)	 (x)
-#if defined(VIDEO_FB_16BPP_PIXEL_SWAP)
+#if defined(VIDEO_FB_16BPP_PIXEL_SWAP) || defined (CONFIG_VIDEO_JADEGDC)
 #define SHORTSWAP32(x)	 ( ((x) >> 16) | ((x) << 16) )
 #else
 #define SHORTSWAP32(x)	 (x)
@@ -1188,9 +1188,17 @@ static void *video_logo (void)
 	ulong addr;
 
 	if ((s = getenv ("splashimage")) != NULL) {
+		int x = 0, y = 0;
+		
 		addr = simple_strtoul (s, NULL, 16);
 
-		if (video_display_bitmap (addr, 0, 0) == 0) {
+		if ((s = strchr (s, ' ')) != NULL) {
+				x = simple_strtoul (s + 1, NULL, 0);
+			if ((s = strchr (s + 1, ' ')) != NULL) 
+				y = simple_strtoul (s + 1, NULL, 0);
+		}
+		
+		if (video_display_bitmap (addr, x, y) == 0) {
 			return ((void *) (video_fb_address));
 		}
 	}
-- 
1.5.6.3

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

* [U-Boot] [PATCH] Added support for jadecpu board using the MB86R01 'Jade' SOC from Fujitsu
  2009-06-30 13:21   ` [U-Boot] [PATCH] Added support for splash screen positioning adding by adding Matthias Weisser
@ 2009-06-30 13:21     ` Matthias Weisser
  2009-07-01  9:18     ` [U-Boot] [PATCH] Added support for splash screen positioning adding by adding Anatolij Gustschin
  1 sibling, 0 replies; 11+ messages in thread
From: Matthias Weisser @ 2009-06-30 13:21 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Matthias Weisser <matthias.weisser@graf-syteco.de>
---
 MAINTAINERS                          |    3 +
 MAKEALL                              |    1 +
 Makefile                             |    7 +
 board/syteco/jadecpu/Makefile        |   55 ++++++
 board/syteco/jadecpu/config.mk       |    1 +
 board/syteco/jadecpu/jadecpu.c       |   99 ++++++++++
 board/syteco/jadecpu/lowlevel_init.S |  337 ++++++++++++++++++++++++++++++++++
 include/configs/jadecpu.h            |  173 +++++++++++++++++
 tools/Makefile                       |    3 +
 tools/logos/syteco.bmp               |  Bin 0 -> 12278 bytes
 10 files changed, 679 insertions(+), 0 deletions(-)
 mode change 100644 => 100755 MAINTAINERS
 mode change 100644 => 100755 Makefile
 create mode 100755 board/syteco/jadecpu/Makefile
 create mode 100755 board/syteco/jadecpu/config.mk
 create mode 100755 board/syteco/jadecpu/jadecpu.c
 create mode 100755 board/syteco/jadecpu/lowlevel_init.S
 create mode 100755 include/configs/jadecpu.h
 mode change 100644 => 100755 tools/Makefile
 create mode 100755 tools/logos/syteco.bmp

diff --git a/MAINTAINERS b/MAINTAINERS
old mode 100644
new mode 100755
index 9379c7e..c2e0223
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -671,6 +671,9 @@ Sergey Lapin <slapin@ossfans.org>
 
 	afeb9260	ARM926EJS (AT91SAM9260 SoC)
 
+Matthias Weisser <matthias.weisser@graf-syteco.de>
+
+	jadecpu		ARM926EJS (MB86R01 'Jade' SoC)
 -------------------------------------------------------------------------
 
 Unknown / orphaned boards:
diff --git a/MAKEALL b/MAKEALL
index f4599d6..841c3d6 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -533,6 +533,7 @@ LIST_ARM9="			\
 	davinci_sffsdr		\
 	davinci_sonata		\
 	davinci_dm355evm	\
+	jadecpu				\
 "
 
 #########################################################################
diff --git a/Makefile b/Makefile
old mode 100644
new mode 100755
index bcc81c9..ef19740
--- a/Makefile
+++ b/Makefile
@@ -2785,6 +2785,13 @@ at91sam9rlek_config	:	unconfig
 pm9263_config	:	unconfig
 	@$(MKCONFIG) $(@:_config=) arm arm926ejs pm9263 ronetix at91
 
+#########################################################################
+## ARM926EJ-S Systems from multiple vendors
+#########################################################################
+
+jadecpu_config	:	unconfig
+	@$(MKCONFIG) $(@:_config=) arm arm926ejs jadecpu syteco jade
+
 ########################################################################
 ## ARM Integrator boards - see doc/README-integrator for more info.
 integratorap_config	\
diff --git a/board/syteco/jadecpu/Makefile b/board/syteco/jadecpu/Makefile
new file mode 100755
index 0000000..87d2234
--- /dev/null
+++ b/board/syteco/jadecpu/Makefile
@@ -0,0 +1,55 @@
+#
+# (C) Copyright 2003-2008
+# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+#
+# (C) Copyright 2008
+# Stelian Pop <stelian.pop@leadtechdesign.com>
+# Lead Tech Design <www.leadtechdesign.com>
+#
+# See file CREDITS for list of people who contributed to this
+# project.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+
+include $(TOPDIR)/config.mk
+
+LIB	= $(obj)lib$(BOARD).a
+
+COBJS-y	+= jadecpu.o
+SOBJS	:= lowlevel_init.o
+
+SRCS	:= $(SOBJS:.o=.S) $(COBJS-y:.o=.c)
+OBJS	:= $(addprefix $(obj),$(COBJS-y))
+SOBJS	:= $(addprefix $(obj),$(SOBJS))
+
+$(LIB):	$(obj).depend $(OBJS) $(SOBJS)
+	$(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+
+clean:
+	rm -f $(SOBJS) $(OBJS)
+
+distclean:	clean
+	rm -f $(LIB) core *.bak $(obj).depend
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
diff --git a/board/syteco/jadecpu/config.mk b/board/syteco/jadecpu/config.mk
new file mode 100755
index 0000000..c661f0b
--- /dev/null
+++ b/board/syteco/jadecpu/config.mk
@@ -0,0 +1 @@
+TEXT_BASE = 0x46000000
diff --git a/board/syteco/jadecpu/jadecpu.c b/board/syteco/jadecpu/jadecpu.c
new file mode 100755
index 0000000..533d44b
--- /dev/null
+++ b/board/syteco/jadecpu/jadecpu.c
@@ -0,0 +1,99 @@
+/*
+ * (c) 2009 Graf-Syteco, Matthias Weisser 
+ * <matthias.weisser@graf-syteco.de>
+ *
+ * (C) Copyright 2007, mycable GmbH
+ * Carsten Schneider <cs@mycable.de>, Alexander Bigga <ab@mycable.de>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+#include <asm/arch/jade.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+void multiplex_group_init(void);
+void gpio_init(void);
+
+#if defined(CONFIG_SHOW_BOOT_PROGRESS)
+void show_boot_progress(int progress)
+{
+    printf("Boot reached stage %d\n", progress);
+}
+#endif
+
+static inline void delay (unsigned long loops)
+{
+	__asm__ volatile ("1:\n"
+		"subs %0, %1, #1\n"
+		"bne 1b":"=r" (loops):"0" (loops));
+}
+
+/*
+ * Miscellaneous platform dependent initialisations
+ */
+
+int board_init (void)
+{
+	/* arch number of Versatile Board */
+	gd->bd->bi_arch_number = 0/*MACH_TYPE_GSJADECPU*/;
+	/* adress of boot parameters */
+	gd->bd->bi_boot_params = 0x47000000;
+
+	gd->flags = 0;
+
+	icache_enable ();
+
+	/* set Multiplex Group */
+	multiplex_group_init();
+
+	/* init GPIOs */
+	gpio_init();
+
+	return 0;
+}
+
+int misc_init_r (void)
+{
+	setenv("verify", "n");
+	return (0);
+}
+
+/*
+ * DRAM configuration
+ */
+int dram_init (void)
+{
+	gd->bd->bi_dram[0].start = PHYS_SDRAM;
+	gd->bd->bi_dram[0].size  = PHYS_SDRAM_SIZE;
+
+	return 0;
+}
+
+/*
+ * Initial the Pin Multiplex Groups
+ */
+void multiplex_group_init(void)
+{
+
+}
+
+void gpio_init(void)
+{
+
+}
+
diff --git a/board/syteco/jadecpu/lowlevel_init.S b/board/syteco/jadecpu/lowlevel_init.S
new file mode 100755
index 0000000..727eda5
--- /dev/null
+++ b/board/syteco/jadecpu/lowlevel_init.S
@@ -0,0 +1,337 @@
+/*
+ * Board specific setup info
+ *
+ * (C) Copyright 2007, mycable GmbH
+ * Carsten Schneider <cs@mycable.de>, Alexander Bigga <ab@mycable.de>
+ *
+ * (C) Copyright 2007, mycable GmbH
+ * Carsten Schneider <cs@mycable.de>, Alexander Bigga <ab@mycable.de>
+ *
+ * (C) Copyright 2003, ARM Ltd.
+ * Philippe Robin, <philippe.robin@arm.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software/* you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation/* either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY/* without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program/* if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <config.h>
+#include <version.h>
+
+/* Set up the platform, once the cpu has been initialized */
+.globl lowlevel_init
+lowlevel_init:
+/*------------------------------------------------------------------------------*/
+/*  Initialize Clock Reset Generator (CRG)                                      */
+/*------------------------------------------------------------------------------*/
+
+		ldr		r0, =0xfffe7000			/* CRG base address */
+
+		/* Not change the initial value that is set by external pin.*/
+1:		ldr		r2, [r0, #0x00]			/* Wait for PLLREADY */
+		tst		r2, #0x00000100
+		beq		1b
+
+		/* Set clock gate control */
+		ldr		r1, =0x0000ffff			/* Open */
+		str		r1, [r0, #0x18]			/* CRHA: AHB clock */
+		ldr		r1, =0x0000ffff			/* Open */
+		str		r1, [r0, #0x1c]			/* CRPA: APB-A clock */
+		ldr		r1, =0xfffffffe			/* Close */
+		str		r1, [r0, #0x20]			/* CRPA: APB-B clock */
+		ldr		r1, =0x0000ffff			/* Open */
+		str		r1, [r0, #0x24]			/* CRHB: ExtAHB clock */
+		ldr		r1, =0xffffffef			/* Open ARM926EJ-S only */
+		str		r1, [r0, #0x28]			/* CRAM: ARM core clock */
+
+/*------------------------------------------------------------------------------*/
+/*  Initialize External Bus Interface                                           */
+/*------------------------------------------------------------------------------*/
+#define MEMC_BASE	0xfffc0000
+
+		ldr		r0, =MEMC_BASE		/* MEMC base address */
+
+		/* SRAM/flash _mode_ registers (XCS4 is set by external pin)
+			XCS0: Ethernet Controller
+			XCS2: not used (?)
+			XCS4: Flash
+		*/
+		ldr		r1, =0x00000001		/* XCS0: 16bit */
+		str		r1, [r0, #0x00]
+		ldr		r1, =0x00000001		/* XCS2: 16bit */
+		str		r1, [r0, #0x08]
+		ldr		r1, =0x00000021		/* XCS4: 16bit, */
+		str		r1, [r0, #0x10]
+
+		/* SRAM/flash _timing_ registers (HCLK=83.3/80MHz) */
+		ldr		r1, =0x055ff00f		/* XCS0: */
+		str		r1, [r0, #0x20]
+		ldr		r1, =0x03061008		/* XCS2: not used */
+		str		r1, [r0, #0x28]
+		ldr		r1, =0x03061804		/* XCS4: FLASH ROM, reviewed by ab at mycable.de */
+		str		r1, [r0, #0x30]
+
+		/* SRAM/flash _area_ registers (address of XCS4 is set by external pin) */
+		ldr		r1, =0x00000020
+		str		r1, [r0, #0x40]
+		ldr		r1, =0x00000050		/* XCS2: 0x05000000/2MB */
+		str		r1, [r0, #0x48]
+		ldr		r1, =0x001f0000		/* XCS4: 32 MB */
+		str		r1, [r0, #0x50]
+
+/*------------------------------------------------------------------------------*/
+/*  GPIO Settings                                                               */
+/*------------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------- */
+/*  Initialize DDR2 Controller                                                  */
+/*----------------------------------------------------------------------------- */
+#define CCNT_BASE		0xfff42000
+#define CDEBUG1			0xec
+
+#define DDR2C_BASE		0xf3000000
+#define DRIC			0x00
+#define DRIC1			0x02
+#define DRIC2			0x04
+#define DRCA			0x06
+#define DRCM			0x08
+#define DRCST1			0x0a
+#define DRCST2			0x0c
+#define DRCR			0x0e
+#define DRCF			0x20
+#define DRASR			0x30
+#define DRIMS			0x50
+#define DROS			0x60
+#define DRIBSLI			0x62
+#define DRIBSODT1		0x64
+#define DRIBSOCD		0x66
+#define DRIBSOCD2		0x68
+#define DROABA			0x70
+#define DROBV			0x80
+#define DROBS			0x84
+#define DROBSR1			0x86
+#define DROBSR2			0x88
+#define DROBSR3			0x8a
+#define DROBSR4			0x8c
+#define DRIMR1			0x90
+#define DRIMR2			0x92
+#define DRIMR3			0x94
+#define DRIMR4			0x96
+#define DROISR1			0x98
+#define DROISR2			0x9a
+
+		.macro wait, count
+		mov		r4, #\count
+3:
+		subs	r4, r4, #0x1
+		bne		3b
+
+		.endm
+
+		/* Wait for PLL LOCK up time or more */
+		wait	20
+
+	/* ----------------------- */
+	/* (2) Initialize DDRIF */
+	/* ----------------------- */
+		ldr		r0, =DDR2C_BASE			/* DDR2C base address */
+		ldr		r1, =0x5555
+		strh	r1, [r0, #DRIMS]
+
+	/* ----------------------- */
+	/* (3) Wait for 20MCKPs(120nsec) or more */
+	/* ----------------------- */
+		wait	20
+
+	/* ----------------------- */
+	/* (4) IRESET/IUSRRST release */
+	/* ----------------------- */
+		ldr		r0, =CCNT_BASE			/* CCNT base address */
+		ldr		r1, =0x00000002
+		str		r1, [r0, #CDEBUG1]
+
+	/* ----------------------- */
+	/* (5) Wait for 20MCKPs(120nsec) or more */
+	/* ----------------------- */
+		wait	20
+
+	/* ----------------------- */
+	/* (6) IDLLRST release */
+	/* ----------------------- */
+		ldr		r0, =CCNT_BASE			/* CCNT base address */
+		ldr		r1, =0x00000003
+		str		r1, [r0, #CDEBUG1]
+
+	/* ----------------------- */
+	/* (7+8) Wait for 200us(=200000ns) or more (DDR2 Spec) */
+	/* ----------------------- */
+	wait 33536
+
+	/* ----------------------- */
+	/* (9) MCKE ON */
+	/* ----------------------- */
+		ldr		r0, =DDR2C_BASE			/* DDR2C base address */
+		ldr		r1, =0x003f
+		strh	r1, [r0, #DRIC1]
+		ldr		r1, =0x0000
+		strh	r1, [r0, #DRIC2]
+		ldr		r1, =0xc124				/* 512Mbit DDR2SDRAM x 2 */
+		strh	r1, [r0, #DRCA]
+		ldr		r1, =0xc000
+		strh	r1, [r0, #DRIC]
+
+	/* ----------------------- */
+	/* (10) Initialize SDRAM  */
+	/* ----------------------- */
+		ldr		r0, =DDR2C_BASE			/* DDR2C base address */
+		ldr		r1, =0xc001				/* NOP Command */
+		strh	r1, [r0, #DRIC]
+
+		wait	67						/* 400ns wait */
+
+		ldr		r1, =0x0017				/* PALL Command */
+		strh	r1, [r0, #DRIC1]
+		ldr		r1, =0x0400
+		strh	r1, [r0, #DRIC2]
+		ldr		r1, =0xc001
+		strh	r1, [r0, #DRIC]
+
+		ldr		r1, =0x0006				/* EMR(2) command */
+		strh	r1, [r0, #DRIC1]
+		ldr		r1, =0x0000
+		strh	r1, [r0, #DRIC2]
+		ldr		r1, =0xc001
+		strh	r1, [r0, #DRIC]
+
+		ldr		r1, =0x0007				/* EMR(3) command */
+		strh	r1, [r0, #DRIC1]
+		ldr		r1, =0x0000
+		strh	r1, [r0, #DRIC2]
+		ldr		r1, =0xc001
+		strh	r1, [r0, #DRIC]
+
+		ldr		r1, =0x0005				/* EMR(1) command */
+		strh	r1, [r0, #DRIC1]
+		ldr		r1, =0x0000			/* Extended Mode Register 1 clear*/
+		strh	r1, [r0, #DRIC2]
+		ldr		r1, =0xc001
+		strh	r1, [r0, #DRIC]
+
+		ldr		r1, =0x0004				/* MRS command */
+		strh	r1, [r0, #DRIC1]
+		ldr		r1, =0x0532			/* Mode Register */
+		strh	r1, [r0, #DRIC2]
+		ldr		r1, =0xc001
+		strh	r1, [r0, #DRIC]
+
+	wait 200
+
+		ldr		r1, =0x0017				/* PALL command */
+		strh	r1, [r0, #DRIC1]
+		ldr		r1, =0x0400
+		strh	r1, [r0, #DRIC2]
+		ldr		r1, =0xc001
+		strh	r1, [r0, #DRIC]
+
+		ldr		r1, =0x000f				/* REF command 1 */
+		strh	r1, [r0, #DRIC1]
+		ldr		r1, =0x0000				/* (changed) */
+		strh	r1, [r0, #DRIC2]
+		ldr		r1, =0xc001
+		strh	r1, [r0, #DRIC]
+
+		wait    18						 /* 105ns wait */
+
+		ldr		r1, =0x0004				/* MRS command */
+		strh	r1, [r0, #DRIC1]
+		ldr		r1, =0x0432
+		strh	r1, [r0, #DRIC2]
+		ldr		r1, =0xc001
+		strh	r1, [r0, #DRIC]
+
+		wait    200						/* MRS to OCD: 200clock */
+
+		ldr		r1, =0x0005				/* EMR(1) command */
+		strh	r1, [r0, #DRIC1]
+		ldr		r1, =0x0380				/* Extended Mode Register 1 set OCD */
+		strh	r1, [r0, #DRIC2]
+		ldr		r1, =0xc001
+		strh	r1, [r0, #DRIC]
+
+		ldr		r1, =0x0005				/* EMR(1) command */
+		strh	r1, [r0, #DRIC1]
+		/* ldr  r1, =0x0044 */
+		ldr		r1, =0x0002				/* Extended Mode Register 1 set reduced strength */
+		strh	r1, [r0, #DRIC2]
+		ldr		r1, =0xc001
+		strh	r1, [r0, #DRIC]
+
+		ldr		r1, =0x0032				/* Set BT, AL, CL, BL */
+		strh	r1, [r0, #DRCM]
+
+		ldr	r1, =0x3418			/* Set tRCD, tRAS, tRP, tRC */
+		strh	r1, [r0, #DRCST1]
+
+		/* ldr  r1, =0x2e22 */			/* Set tRFC, tRRD, tWR */
+		ldr		r1, =0x6e32
+		strh	r1, [r0, #DRCST2]
+
+		/* ldr		r1, =0x0051 */		/* Set CNTL, REF_CNT*/
+		ldr		r1, =0x0141			/* (changed) */
+		strh	r1, [r0, #DRCR]
+
+		ldr		r1, =0x0002			/* Set Address FIFO (8 steps) */
+		strh	r1, [r0, #DRCF]
+
+		ldr		r1, =0x0001				/* Enable AXI Cache */
+		strh	r1, [r0, #DRASR]
+
+	/* ----------------------- */
+	/* (11) ODT setting		*/
+	/* ----------------------- */
+		ldr		r0, =DDR2C_BASE				 /* DDR2C base address */
+		ldr		r1, =0x0001
+		strh	r1, [r0, #DROBS]
+		ldr		r1, =0x0103			/* ODT auto adjustment on */
+		strh	r1, [r0, #DROABA]
+		ldr		r1, =0x003F			/* Set ODT to on 50/100 Ohm */
+		strh	r1, [r0, #DRIBSODT1]
+
+	/* ----------------------- */
+	/* (12) Shift to ODTCONT ON (SDRAM side) and DDR2C usual operation mode */
+	/* ----------------------- */
+		ldr		r0, =DDR2C_BASE				 /* DDR2C base address */
+		ldr		r1, =0x0001
+		strh	r1, [r0, #DROS]
+		ldr		r1, =0x4000
+		strh	r1, [r0, #DRIC]
+
+		mov pc, lr
+
+/*------------------------------------------------------------------------------*/
+/*  Reset CPU by writing SWRSTREQ to CRSR-register */
+/*------------------------------------------------------------------------------*/
+.globl reset_cpu
+reset_cpu:
+		ldr		r0, =0xfffe7000/* CRG Base address */
+
+		ldr		r2, =0x00000002		/* SWRSTREQ */
+		str		r2, [r0, #0x0c]
+
+_loop_forever:
+		b		_loop_forever
+
diff --git a/include/configs/jadecpu.h b/include/configs/jadecpu.h
new file mode 100755
index 0000000..7350f7b
--- /dev/null
+++ b/include/configs/jadecpu.h
@@ -0,0 +1,173 @@
+/*
+ * (C) Copyright 2007-2008
+ * Matthias Weisser <matthias.weisser@graf-syteco.de>
+ *
+ * Configuation settings for the AT91SAM9260EK & AT91SAM9G20EK boards.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+#define CONFIG_SHOW_BOOT_PROGRESS 1
+
+#define CONFIG_SYS_HZ			1000
+#define CONFIG_JADE_IOCLK		(41500000)
+#define CONFIG_SYS_TIMERBASE	0xfffe0000
+
+#define CONFIG_ARM926EJS	1	/* This is an ARM926EJS Core	*/
+#undef CONFIG_USE_IRQ			/* we don't need IRQ/FIQ stuff	*/
+
+#define CONFIG_CMDLINE_TAG	1	/* enable passing of ATAGs	*/
+#define CONFIG_SETUP_MEMORY_TAGS 1
+#define CONFIG_INITRD_TAG	1
+
+/*
+#define CONFIG_EXTRA_ENV_SETTINGS			\
+	"ethaddr=66:15:00:87:02:00\0"			\
+	"ipaddr=192.168.1.105\0"				\
+	"serverip=192.168.1.19\0"				\
+	"bootcmd=tftpboot 0x40100000 jade.ifs; go 0x40100000\0"	\
+	""
+*/
+
+/*
+ * Hardware drivers
+ */
+ 
+/*
+ * Serial
+ */
+#define CONFIG_SYS_NS16550
+#define CONFIG_SYS_NS16550_SERIAL
+#define CONFIG_SYS_NS16550_REG_SIZE		(-4)
+#define CONFIG_SYS_NS16550_CLK			CONFIG_JADE_IOCLK
+#define CONFIG_SYS_NS16550_COM1			0xfffe1000
+#define CONFIG_SYS_NS16550_COM2			0xfffe2000
+
+#define CONFIG_CONS_INDEX               1
+
+/*
+ * Ethernet
+ */
+#define CONFIG_DRIVER_SMC911X   1
+#define CONFIG_DRIVER_SMC911X_BASE  0x02000000
+#define CONFIG_DRIVER_SMC911X_16_BIT
+
+/*
+ * Video
+ */
+#define CONFIG_VIDEO
+#define CONFIG_VIDEO_JADEGDC
+#define CONFIG_CFB_CONSOLE
+#define CONFIG_SYS_CONSOLE_IS_IN_ENV
+#define CONFIG_VIDEO_LOGO
+#define CONFIG_SPLASH_SCREEN
+#define CONFIG_VIDEO_BMP_LOGO
+#define VIDEO_KBD_INIT_FCT		0
+#define VIDEO_TSTC_FCT			serial_tstc
+#define VIDEO_GETC_FCT			serial_getc
+#define CONSOLE_BG_COL			0xFF
+#define CONSOLE_FG_COL			0x00
+
+
+/*
+ * BOOTP options
+ */
+#define CONFIG_BOOTP_BOOTFILESIZE	1
+#define CONFIG_BOOTP_BOOTPATH		1
+#define CONFIG_BOOTP_GATEWAY		1
+#define CONFIG_BOOTP_HOSTNAME		1
+
+/*
+ * Command line configuration.
+ */
+#include <config_cmd_default.h>
+#undef CONFIG_CMD_BDI
+#undef CONFIG_CMD_FPGA
+#undef CONFIG_CMD_IMI
+#undef CONFIG_CMD_IMLS
+#undef CONFIG_CMD_LOADS
+#undef CONFIG_CMD_SOURCE
+
+#define CONFIG_CMD_IMI		1
+#define CONFIG_CMD_ELF		1
+#define CONFIG_CMD_PING		1
+#define CONFIG_CMD_DHCP		1
+#define CONFIG_CMD_BMP      1
+//#define CONFIG_CMD_USB		1
+
+/* SDRAM */
+#define CONFIG_NR_DRAM_BANKS	1
+#define PHYS_SDRAM				0x40000000  /* Start address of DDRRAM */
+#define PHYS_SDRAM_SIZE			0x08000000	/* 128 megs */
+
+/*-----------------------------------------------------------------------
+ * FLASH and environment organization
+ */
+#define CONFIG_SYS_FLASH_BASE		0x10000000  /* Start address of flash */
+#define CONFIG_SYS_MAX_FLASH_BANKS	1           /* max number of memory banks */
+#define CONFIG_SYS_MAX_FLASH_SECT	256	     	/* max number of sectors on one chip */
+#define CONFIG_SYS_MONITOR_BASE		CONFIG_SYS_FLASH_BASE /* Monitor at beginning of flash */
+
+#define CONFIG_ENV_ADDR				(CONFIG_SYS_FLASH_BASE + 0x00040000)	/* 256k for uboot */
+#define	CONFIG_ENV_IS_IN_FLASH		1
+#define CONFIG_ENV_SECT_SIZE		(128 * 1024)
+#define CONFIG_ENV_SIZE				(128 * 1024)
+
+/*-----------------------------------------------------------------------
+ * CFI FLASH driver setup
+ */
+#define CONFIG_SYS_FLASH_CFI		1	/* Flash memory is CFI compliant */
+#define CONFIG_FLASH_CFI_DRIVER		1	/* Use drivers/cfi_flash.c */
+#define CONFIG_SYS_FLASH_USE_BUFFER_WRITE 1	/* Use buffered writes (~10x faster) */
+//#define CONFIG_SYS_FLASH_PROTECTION	1	/* Use hardware sector protection */
+
+#define CONFIG_SYS_LOAD_ADDR			0x40000000	/* load address */
+
+#define CONFIG_SYS_MEMTEST_START		PHYS_SDRAM + (512*1024)
+#define CONFIG_SYS_MEMTEST_END			PHYS_SDRAM + PHYS_SDRAM_SIZE
+
+#define CONFIG_BAUDRATE		115200
+#define CONFIG_SYS_BAUDRATE_TABLE	{115200 , 19200, 38400, 57600, 9600 }
+
+#define CONFIG_SYS_PROMPT		"jade> "
+#define CONFIG_SYS_CBSIZE		256
+#define CONFIG_SYS_MAXARGS		16
+#define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
+#define CONFIG_SYS_LONGHELP		1
+#define CONFIG_CMDLINE_EDITING	1
+#define CONFIG_BOOTDELAY		2
+
+#define ROUND(A, B)		(((A) + (B)) & ~((B) - 1))
+/*
+ * Size of malloc() pool
+ */
+#define CONFIG_SYS_MALLOC_LEN		ROUND(3 * CONFIG_ENV_SIZE + 128*1024, 0x1000)
+#define CONFIG_SYS_GBL_DATA_SIZE	128	/* 128 bytes for initial data */
+
+#define CONFIG_STACKSIZE	(32*1024)	/* regular stack */
+
+#ifdef CONFIG_USE_IRQ
+#error CONFIG_USE_IRQ not supported
+#endif
+
+#endif	/* __CONFIG_H */
+
diff --git a/tools/Makefile b/tools/Makefile
old mode 100644
new mode 100755
index 43c284c..456e9dd
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -125,6 +125,9 @@ endif
 ifeq ($(VENDOR),ronetix)
 LOGO_BMP= logos/ronetix.bmp
 endif
+ifeq ($(VENDOR),syteco)
+LOGO_BMP= logos/syteco.bmp
+endif
 
 # now $(obj) is defined
 SRCS	+= $(addprefix $(SRCTREE)/,$(EXT_OBJ_FILES-y:.o=.c))
diff --git a/tools/logos/syteco.bmp b/tools/logos/syteco.bmp
new file mode 100755
index 0000000000000000000000000000000000000000..141ee8e10edd85caa52b9501e3a4381b81fe772d
GIT binary patch
literal 12278
zcmeI0TdvbE5Qg2PNJwmiH{MtP??`Ncopb>#s;lC)jN^<mx5VSvEtQTf72hWQzx=+$
zhaW%xehW+behuL(l>Wf)7yK^a^U at yw`TZsRu;KA|g!}yt)yLX&3%A>CEstzCFdP^T
zd`t(f&J=<Se1cz6Vz2%xn8}kC7#8>(XPCrZWxxz)aQVUR*)s#%*H9UWBXrEA1QO&t
zYstvm(XSvSGDIqb%bIEx at j1x-j~>EAlo=D;a@~oAc7b6ib0rJDLd at MXyUuWw7M5lh
zfih3b_~Yq<Q0mM4sm&RQGEdX7KJAq(ZPTPs8d(~qNu#u~oQ5$_npsY+84IPE<=mPv
zQ97`kn5KBBu^pKzRr@FeV}ujV0E-%key8+JPwjR%PSg-fL+v?Zuuzm~N*8k07B$EL
zgOci{u%n!(&w*xPvQV*M3>M{ZnIT6kFp5Q@?7&zo5+*A-3K2%KXp{&O|B7Qh)*L|?
zpC$*w76J<5c_x at E8fJ%u!)!vHl9NR{v&%xA at eq(0pD%ivp1}fG^iANr-ANEg*UW!q
z5!3Wi7BY`!(b&_ei5$V^gNKdw934IaoiAk}Vud1NtB)*p`12iK3IL=Vr3MQz1&YHL
z?g!T5(G$}<te52r@ir{UnfLG|IrA<o(V5;X`SwN+d0eDBdHS-))l0rbu^5}`5<7SE
zRg$sjdj!8hEd8L`mjx~<>uXXIGz-iLz0M#^oeMge`4T14zy+4)zzCKVrZ7jqYdS;U
zK)-geMY1HAGK&er_EJ$=1t^vU#=&C1z*A)XDyd=veR|!7ux30g3PzkUMQIhlSTc-@
zMZgG@*7F4qsH=~K!AO*L798Qkj$n(W{oIW!FU?{FOAaOLb{j}7ih~CEHp_s~Z*R(>
z0tFpD&{ka*OeKq?NOh&;XfR-ESl~bKOcsZ-5uyjHVwp at 9L&w#mVCq;V!xxvX86;tv
zS at 1$`sudaqOe;&gcN7#4x;acE%W?(k1=GfoP<lDj#DXX-Fy!*w!m^>X!E6i4`vtgM
zK%4GqiqZ>a!!mBRTo7yU$TR*rpd^+A%JbZc6eD%0s`up(SQ{|tgv^IC(h;nGKxaB^
J$T5U;;2&8xIXwUX

literal 0
HcmV?d00001

-- 
1.5.6.3

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

* [U-Boot] [PATCH] Added support for splash screen positioning adding by adding
  2009-06-30 13:21   ` [U-Boot] [PATCH] Added support for splash screen positioning adding by adding Matthias Weisser
  2009-06-30 13:21     ` [U-Boot] [PATCH] Added support for jadecpu board using the MB86R01 'Jade' SOC from Fujitsu Matthias Weisser
@ 2009-07-01  9:18     ` Anatolij Gustschin
  1 sibling, 0 replies; 11+ messages in thread
From: Anatolij Gustschin @ 2009-07-01  9:18 UTC (permalink / raw)
  To: u-boot

Dear Matthias,

Thanks for this patch, some comments however. Please use short
patch subject, e.g. "[PATCH] Add support for splash screen positioning"
is enough. And than please add more descriptive patch commit message
above your "Signed-off-by" line. In this commit message you can shortly
explain how it is done (e.g. what you mean with "adding by adding").

This is a new feature and also we should document it in the README
where the original "splashimage" environment variable is documented.
But if this feature will be documented, we also have to support it
in other places, it is used in "common/lcd.c".
Also please see other comments below.

Matthias Weisser wrote:
> Signed-off-by: Matthias Weisser <matthias.weisser@graf-syteco.de>
> ---
>  drivers/video/cfb_console.c |   12 ++++++++++--
>  1 files changed, 10 insertions(+), 2 deletions(-)
>  mode change 100644 => 100755 drivers/video/cfb_console.c
> 
> diff --git a/drivers/video/cfb_console.c b/drivers/video/cfb_console.c
> old mode 100644
> new mode 100755
> index bcafb27..15b99cb
> --- a/drivers/video/cfb_console.c
> +++ b/drivers/video/cfb_console.c
> @@ -314,7 +314,7 @@ void	console_cursor (int state);
>  #else
>  #define SWAP16(x)	 (x)
>  #define SWAP32(x)	 (x)
> -#if defined(VIDEO_FB_16BPP_PIXEL_SWAP)
> +#if defined(VIDEO_FB_16BPP_PIXEL_SWAP) || defined (CONFIG_VIDEO_JADEGDC)

Here you added CONFIG_VIDEO_JADEGDC case. Please do this in your
other patch where you add support for JADE GDC. This patch addresses
extension of "splashimage" and should do only this logical change.

>  #define SHORTSWAP32(x)	 ( ((x) >> 16) | ((x) << 16) )
>  #else
>  #define SHORTSWAP32(x)	 (x)
> @@ -1188,9 +1188,17 @@ static void *video_logo (void)
>  	ulong addr;
>  
>  	if ((s = getenv ("splashimage")) != NULL) {
> +		int x = 0, y = 0;
> +		
----^^^^^^^^^^^^
please remove tabs in the empty line above.

>  		addr = simple_strtoul (s, NULL, 16);
>  
> -		if (video_display_bitmap (addr, 0, 0) == 0) {
> +		if ((s = strchr (s, ' ')) != NULL) {
> +				x = simple_strtoul (s + 1, NULL, 0);
> +			if ((s = strchr (s + 1, ' ')) != NULL) 
------------------------------------------------------------^^^^
remove trailing white space here, please.

> +				y = simple_strtoul (s + 1, NULL, 0);
> +		}
> +		
-----^^^^^^^^^^^
please remove tabs here, too.

> +		if (video_display_bitmap (addr, x, y) == 0) {
>  			return ((void *) (video_fb_address));
>  		}
>  	}

Please fix and resubmit, thanks!
Anatolij

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

* [U-Boot] [PATCH] Add suport for the graphic controller included in the JADE SOC
  2009-06-30 13:21 ` [U-Boot] [PATCH] Add suport for the graphic controller included in the JADE SOC Matthias Weisser
  2009-06-30 13:21   ` [U-Boot] [PATCH] Added support for splash screen positioning adding by adding Matthias Weisser
@ 2009-07-01 13:40   ` Anatolij Gustschin
  2009-07-02  6:02     ` [U-Boot] Antw: " Matthias Weisser
  1 sibling, 1 reply; 11+ messages in thread
From: Anatolij Gustschin @ 2009-07-01 13:40 UTC (permalink / raw)
  To: u-boot

Dear Matthias,

Thanks for this patch! Please see some comments/issues below which we
should resolve before committing the driver.

Matthias Weisser wrote:
> Signed-off-by: Matthias Weisser <matthias.weisser@graf-syteco.de>
> ---
>  drivers/video/jadegdc.c |  205 +++++++++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 205 insertions(+), 0 deletions(-)
>  create mode 100755 drivers/video/jadegdc.c
> 
> diff --git a/drivers/video/jadegdc.c b/drivers/video/jadegdc.c
> new file mode 100755
> index 0000000..88b71b7
> --- /dev/null
> +++ b/drivers/video/jadegdc.c
> @@ -0,0 +1,205 @@
> +/*
> + * (C) Copyright 2007
> + * DENX Software Engineering, Anatolij Gustschin, agust at denx.de

Please use your copyright here, as this driver for JADE GDC is mostly
your work.

> + *
> + * 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
-----------------------------------------------------------^^^^^
please replace tab by space here.

> + * 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
> + */
> +
> +/*
> + * jade.c - Graphic interface for Fujitsu Jade integrated graphic 
------------------------------------------------------------------^^^^^
and remove trailing white space here.

> + * controller. Derived from mb862xx.c 

same here, trailing white space in the line above, please remove.

> + */
> +
> +#include <common.h>
> +
> +#if defined(CONFIG_VIDEO_JADEGDC)

drop this ifdef and add "COBJS-$(CONFIG_VIDEO_JADEGDC) += jadegdc.o"
line to drivers/video/Makefile instead.

> +
> +#include <malloc.h>
> +#include <asm/io.h>
> +#include <video_fb.h>
> +#include "videomodes.h"
> +
> +#if defined(CONFIG_POST)
> +#include <post.h>
> +#endif

I think, this CONFIG_POST ifdef is not needed here, please
remove it. Or am I missing something?

> +
> +/*
> + * 4MB (at the end of system RAM)
> + */
> +#define VIDEO_MEM_SIZE		0x400000
> +
> +#define GDC_HOST_BASE		0xF1FC0000
> +#define GDC_DSP0_BASE		0xF1FD0000
> +#define GDC_DSP1_BASE		0xF1FD2000
> +
> +/*
> + * Graphic Device
> + */
> +GraphicDevice jadegdc;
> +
> +void *video_hw_init (void)
> +{
> +	GraphicDevice *pGD = (GraphicDevice *)&jadegdc;
> +	struct ctfb_res_modes var_mode[2];
> +	unsigned long * vid;
> +	unsigned long div;
> +	unsigned long dspBase[2];
> +	char *penv;
> +	int bpp;
> +	int i, j;
> +	
----^^^
please remove tab in the line above.

> +	memset (pGD, 0, sizeof (GraphicDevice));
> +	
same here, remove tab.

> +	dspBase[0] = GDC_DSP0_BASE;
> +	dspBase[1] = GDC_DSP1_BASE;
> +	
----^^^
same here.

> +	/* Preliminary init of the onboard graphic controller,
> +	   retrieve base address */
> +	if ((pGD->frameAdrs = GDC_HOST_BASE) == 0) {
> +		printf ("Controller not found!\n");
> +		return (NULL);
> +	}

please replace above 4 lines by

	pGD->frameAdrs = GDC_HOST_BASE;

and for multi line comments we now use following style

/*
 * Multi line
 * comment
 */

please use it here too.

> +	
> +	pGD->gdfIndex = GDF_15BIT_555RGB;
> +	pGD->gdfBytesPP = 2;
> +	
> +	pGD->memSize   = VIDEO_MEM_SIZE;
> +	pGD->frameAdrs = PHYS_SDRAM + PHYS_SDRAM_SIZE - VIDEO_MEM_SIZE;
> +	vid = (unsigned long *)pGD->frameAdrs;
> +	

remove tabs in empty lines above, please.

> +	for(i = 0; i < 2; i++)
> +	{

please use the following coding style:

	for (i = 0; i < 2; i++) {

> +		char varName[32];
> +		u32 dcm1, dcm2, dcm3;
> +		u16 htp, hdp, hdb, hsp, vtr, vsp, vdp;
> +		u8 hsw, vsw;
> +		u32 l2m, l2em, l2oa0, l2da0, l2oa1, l2da1;
> +		u16 l2dx, l2dy, l2wx, l2wy, l2ww, l2wh;
> +		
-----^^^^^^^^^^^^
tabs again, please drop.

> +		sprintf(varName, "gs_dsp_%d_param", i);

please add a space between function name and open parenthesis as you seem to
use this style in other places too. Use either

	function (...);
or
	function(...);

style throughout the file an do not intermix.

> +		
> +		if(NULL == (penv = getenv (varName)))
> +			if(NULL == (penv = getenv ("videomode")))
> +				continue;

please add a space between if and open parenthesis and remove tabs
in the line above if statement.

> +
> +		bpp = 0;
> +		bpp = video_get_params (&var_mode[i], penv);
> +		
------^^^
please remove.

> +		if(0 == bpp){

if (bpp == 0) {

> +			var_mode[i].xres = 640;
> +			var_mode[i].yres = 480;
> +			var_mode[i].pixclock = 39721; /* 25MHz */
> +			var_mode[i].left_margin = 48;
> +			var_mode[i].right_margin = 16;
> +			var_mode[i].upper_margin = 33;
> +			var_mode[i].lower_margin = 10;
> +			var_mode[i].hsync_len = 96;
> +			var_mode[i].vsync_len = 2;
> +			var_mode[i].sync = 0;
> +			var_mode[i].vmode = 0;
> +		}
> +		
------^^^^^
please remove.

> +		for(j = 0; j < var_mode[i].xres * var_mode[i].yres / 2; j++)
> +		{
> +			*vid++ = 0xFFFFFFFF;
> +		}

fix the coding style here, please:

	for (...)
		one line statement;

	for (...) {
		statement1;
		statement2;
		...
	}


> +		
tabs here, too, please check for tabs in empty lines throughout
the file and remove them.

> +		pGD->winSizeX = var_mode[i].xres;
> +		pGD->winSizeY = var_mode[i].yres;
> +		
> +		/* LCD base clock is ~ 660MHZ. We do calculations in kHz */
> +		div = 660000 / (1000000000L / var_mode[i].pixclock);
> +		if(div > 64)
> +			div = 64;

please add space between if and open parenthesis.

> +			
> +		dcm1 = div << 8;
> +		dcm2 = 0x00000000;
> +		dcm3 = 0x00000000;
> +		
> +		htp = var_mode[i].left_margin + var_mode[i].xres + var_mode[i].hsync_len + var_mode[i].right_margin;

line to long, max. 80 chars allowed.

> +		hdp = var_mode[i].xres;
> +		hdb = var_mode[i].xres;
> +		hsp = var_mode[i].xres + var_mode[i].right_margin;
> +		hsw = var_mode[i].hsync_len;
> +		
> +		vsw = var_mode[i].vsync_len;
> +		vtr = var_mode[i].upper_margin + var_mode[i].yres + var_mode[i].vsync_len + var_mode[i].lower_margin;

here too.

> +		vsp = var_mode[i].yres + var_mode[i].lower_margin;
> +		vdp = var_mode[i].yres; 

remove trailing white space in the line above.

> +		
> +		l2m =	(       (var_mode[i].yres-1) << ( 0)) |
> +				(((var_mode[i].xres * 2)/64) << (16)) |
> +				(                        (1) << (31));
> +				
> +		l2em =	(1<<0) | (1 <<1);

please add spaces around "<<", "-", "/" in the lines above. Also
use this coding style elsewhere in the file.

> +
> +		l2oa0 = pGD->frameAdrs;
> +		l2da0 = pGD->frameAdrs;
> +		l2oa1 = pGD->frameAdrs;
> +		l2da1 = pGD->frameAdrs;
> +		l2dx = 0; 
> +		l2dy = 0; 
> +		l2wx = 0; 
> +		l2wy = 0; 

trailing white space in 4 lines above, please remove.

> +		l2ww = var_mode[i].xres;
> +		l2wh = var_mode[i].yres - 1;
> +		
> +		writel(dcm1, dspBase[i] + 0x100);
> +		writel(dcm2, dspBase[i] + 0x104);
> +		writel(dcm3, dspBase[i] + 0x108);
> +		
> +		writew(htp, dspBase[i] + 0x006); 

trailing white space in the line above.

> +		writew(hdp, dspBase[i] + 0x008);
> +		writew(hdb, dspBase[i] + 0x00A);
> +		writew(hsp, dspBase[i] + 0x00C);
> +		writeb(hsw, dspBase[i] + 0x00E);
> +		
> +		writeb(vsw, dspBase[i] + 0x00F);
> +		writew(vtr, dspBase[i] + 0x012);
> +		writew(vsp, dspBase[i] + 0x014);
> +		writew(vdp, dspBase[i] + 0x016);
> +		
> +		writel(  l2m, dspBase[i] + 0x040);
> +		writel( l2em, dspBase[i] + 0x130);
> +		writel(l2oa0, dspBase[i] + 0x044);
> +		writel(l2da0, dspBase[i] + 0x048);
> +		writel(l2oa1, dspBase[i] + 0x04C);
> +		writel(l2da1, dspBase[i] + 0x050);
> +		writew( l2dx, dspBase[i] + 0x054);
> +		writew( l2dy, dspBase[i] + 0x056);
> +		writew( l2wx, dspBase[i] + 0x134);
> +		writew( l2wy, dspBase[i] + 0x136);
> +		writew( l2ww, dspBase[i] + 0x138);
> +		writew( l2wh, dspBase[i] + 0x13A);
> +		
> +		writel(dcm1 | (1<<18) | (1<<31), dspBase[i] + 0x100);
> +	}
> +
> +	return pGD;
> +}
> +
> +/*
> + * Set a RGB color in the LUT
> + */
> +void video_set_lut (unsigned int index, unsigned char r, unsigned char g, unsigned char b)

line too long, please fix.

> +{
> +
> +}
> +
> +#endif /* CONFIG_VIDEO_JADEGDC */

We also should use macros for register offsets, I think. Can we
coordinate efforts for fixing this in mb862xx driver also?
I know that mb862xx driver has similar style issues and I'm willing
to fix them soon. For new patches the policy is to resolve issues
before inclusion.

Thanks,
Anatolij

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

* [U-Boot] Antw: Re: [PATCH] Add suport for the graphic controller included in the JADE SOC
  2009-07-01 13:40   ` [U-Boot] [PATCH] Add suport for the graphic controller included in the JADE SOC Anatolij Gustschin
@ 2009-07-02  6:02     ` Matthias Weisser
  2009-07-02  9:27       ` [U-Boot] " Anatolij Gustschin
  0 siblings, 1 reply; 11+ messages in thread
From: Matthias Weisser @ 2009-07-02  6:02 UTC (permalink / raw)
  To: u-boot

>>> Anatolij Gustschin <agust@denx.de> schrieb am 01.07.2009 um 15:40:
> Dear Matthias,
> 
> Thanks for this patch! Please see some comments/issues below which
we
> should resolve before committing the driver.

First of all thanks for your detailed comments. I fix them all before 
resending the patch. Please see some additional comments at some
points.

>> +		if(0 == bpp){
> 
> if (bpp == 0) {

The spaces are OK but why turn around the comparison? I always use 
this style to prevent from unwanted assignments. Well, GCC warns 
about assignments in ifs and as u-boot is GCC only I can do that.

> We also should use macros for register offsets, I think. Can we
> coordinate efforts for fixing this in mb862xx driver also?

As the graphic controller in the jade soc is only a slight evolution
of
the coral graphic chip (additional display output/video input) I think

we may even merge the two drivers into one with some #ifdefs to deal
with the differences.

When I started to implement the driver I decided against that idea
because I don't have any hardware here to test the "non-jade" case.

But a common include file with the register offsets seems to be a
good idea to me.

Thanks for your time,
Matthias

------------------------------------ 
Amtsgericht Freiburg HRA 602707
Ust. ID-Nr.: DE232464428

Gesch?ftsf?hrer: 
Dipl. Ing. (FH) Martin Graf 
Dipl. Ing. (FH) David Graf 
Dipl. Inf. Fabian Graf
 
Komplement?rin:
GRAF-SYTECO Verwaltungs-GmbH
Amtsgericht Freiburg HRB 602868 
------------------------------------

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

* [U-Boot] [PATCH] Add suport for the graphic controller included in the JADE SOC
  2009-07-02  6:02     ` [U-Boot] Antw: " Matthias Weisser
@ 2009-07-02  9:27       ` Anatolij Gustschin
  2009-07-04 23:30         ` Wolfgang Denk
  2009-07-07 12:29         ` Anatolij Gustschin
  0 siblings, 2 replies; 11+ messages in thread
From: Anatolij Gustschin @ 2009-07-02  9:27 UTC (permalink / raw)
  To: u-boot

Matthias Weisser wrote:
>>>> Anatolij Gustschin <agust@denx.de> schrieb am 01.07.2009 um 15:40:
>> Dear Matthias,
>>
>> Thanks for this patch! Please see some comments/issues below which
> we
>> should resolve before committing the driver.
> 
> First of all thanks for your detailed comments. I fix them all before 
> resending the patch. Please see some additional comments at some
> points.
> 
>>> +		if(0 == bpp){
>> if (bpp == 0) {
> 
> The spaces are OK but why turn around the comparison? I always use 
> this style to prevent from unwanted assignments. Well, GCC warns 
> about assignments in ifs and as u-boot is GCC only I can do that.

it is a matter of personal preference. "if (0 == bpp) {" is OK for
me, too.

>> We also should use macros for register offsets, I think. Can we
>> coordinate efforts for fixing this in mb862xx driver also?
> 
> As the graphic controller in the jade soc is only a slight evolution
> of
> the coral graphic chip (additional display output/video input) I think
> 
> we may even merge the two drivers into one with some #ifdefs to deal
> with the differences.
> 
> When I started to implement the driver I decided against that idea
> because I don't have any hardware here to test the "non-jade" case.

if you want to use the existing driver, it shouldn't be too complicated.
To use the mb862xx driver you can implement "board_video_init()" in your
board code in which you initialize both display controllers, set
"GraphicDevice mb862xx" structure fields winSizeX, etc. and return
the video RAM base. Then additionally implement "board_get_regs()" in
your board code, e.g.

#include <mb862xx.h>

static const gdc_regs init_regs [] =
{
	{0, 0}
}

const gdc_regs *board_get_regs (void)
{
        return init_regs;
}

and define CONFIG_VIDEO_MB862xx in the board config file.

see e.g. the appropriate code in "board/lwmon5/lwmon5.c".
It does the display controller initialization differently and
therefore my suggestion to do the display controller init in
custom "board_video_init()".

We have to fix some register access macros in the mb862xx driver
for JADE and it should work. I can try to provide a patch for
this fix in mb862xx.c.

> But a common include file with the register offsets seems to be a
> good idea to me.

I'will prepare a list of register offset defines for "include/mb862xx.h"
and send a patch so that you can use them in your code.

Thanks,
Anatolij

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

* [U-Boot] [PATCH] Add suport for the graphic controller included in the JADE SOC
  2009-07-02  9:27       ` [U-Boot] " Anatolij Gustschin
@ 2009-07-04 23:30         ` Wolfgang Denk
  2009-07-07 12:29         ` Anatolij Gustschin
  1 sibling, 0 replies; 11+ messages in thread
From: Wolfgang Denk @ 2009-07-04 23:30 UTC (permalink / raw)
  To: u-boot

Dear Anatolij & Matthias,

in message <4A4C7D73.1080502@denx.de> you wrote:
>
> >>> +		if(0 == bpp){
> >> if (bpp == 0) {
> > 
> > The spaces are OK but why turn around the comparison? I always use 

Because "0 == bpp" is ugly.

> > this style to prevent from unwanted assignments. Well, GCC warns 
> > about assignments in ifs and as u-boot is GCC only I can do that.
> 
> it is a matter of personal preference. "if (0 == bpp) {" is OK for
> me, too.

NAK for me. Matthias, please do as Anatolij suggested.

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
If a packet hits a pocket on a socket on a port,
And the bus is interrupted as a very last resort,
And the address of the memory makes your floppy disk abort,
Then the socket packet pocket has an error to report! - Ken Burchill?

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

* [U-Boot] [PATCH] Add suport for the graphic controller included in the JADE SOC
  2009-07-02  9:27       ` [U-Boot] " Anatolij Gustschin
  2009-07-04 23:30         ` Wolfgang Denk
@ 2009-07-07 12:29         ` Anatolij Gustschin
  1 sibling, 0 replies; 11+ messages in thread
From: Anatolij Gustschin @ 2009-07-07 12:29 UTC (permalink / raw)
  To: u-boot

Anatolij Gustschin wrote:
>> But a common include file with the register offsets seems to be a
>> good idea to me.
> 
> I'will prepare a list of register offset defines for "include/mb862xx.h"
> and send a patch so that you can use them in your code.

now the patch is out:
http://lists.denx.de/pipermail/u-boot/2009-July/055582.html

you can use the register offsets from "include/mb862xx.h" in your
code for JADE SOC.

Thanks,
Anatolij

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

* [U-Boot] [PATCH] This patch adds support for Fujitsu MB86R01 'JADE' SOC
  2009-06-30 13:21 [U-Boot] [PATCH] This patch adds support for Fujitsu MB86R01 'JADE' SOC Matthias Weisser
  2009-06-30 13:21 ` [U-Boot] [PATCH] Add suport for the graphic controller included in the JADE SOC Matthias Weisser
@ 2009-07-19 20:12 ` Wolfgang Denk
  1 sibling, 0 replies; 11+ messages in thread
From: Wolfgang Denk @ 2009-07-19 20:12 UTC (permalink / raw)
  To: u-boot

Dear Matthias Weisser,

In message <1246368064-4957-1-git-send-email-matthias.weisser@graf-syteco.de> you wrote:
> Signed-off-by: Matthias Weisser <matthias.weisser@graf-syteco.de>
> ---
>  cpu/arm926ejs/jade/Makefile          |   47 +++++++++
>  cpu/arm926ejs/jade/timer.c           |  129 ++++++++++++++++++++++++
>  include/asm-arm/arch-jade/hardware.h |   31 ++++++
>  include/asm-arm/arch-jade/jade.h     |  182 ++++++++++++++++++++++++++++++++++
>  4 files changed, 389 insertions(+), 0 deletions(-)
>  create mode 100755 cpu/arm926ejs/jade/Makefile
>  create mode 100755 cpu/arm926ejs/jade/timer.c
>  create mode 100755 include/asm-arm/arch-jade/hardware.h
>  create mode 100755 include/asm-arm/arch-jade/jade.h

Entries to MAKEALL and MAINTAINERS are missing.

> diff --git a/include/asm-arm/arch-jade/jade.h b/include/asm-arm/arch-jade/jade.h
> new file mode 100755
> index 0000000..0ab96e1
> --- /dev/null
> +++ b/include/asm-arm/arch-jade/jade.h
...
> +typedef	volatile unsigned int	JREG;	/* Hardware register definition */

You don't need this. We don't use register accesses, but I/O accessor
functions.

> +/*
> + * Physical Address Defines
> + */
> +#define JADE_GDC_PHYS_BASE	0xf1fc0000		/* GDC phys */
> +#define JADE_GDC_PHYS_DISP_BASE	0xf1fd0000		/* GDC DisplayBase phys */
> +#define JADE_CCNT_PHYS_BASE	0xfff42000		/* Chip Control Module */
> +#define JADE_CAN0_PHYS_BASE	0xfff54000		/* CAN 0 phys */
> +#define JADE_CAN1_PHYS_BASE	0xfff55000		/* CAN 1 phys */
> +#define JADE_I2C0_PHYS_BASE	0xfff56000		/* I2C 0 phys */
> +#define JADE_I2C1_PHYS_BASE	0xfff57000		/* I2C 1 phys */
> +#define JADE_EHCI_PHYS_BASE	0xfff80000		/* EHCI phys */
> +#define JADE_OHCI_PHYS_BASE	0xfff81000		/* OHCI phys */
> +#define JADE_IRC1_PHYS_BASE	0xfffb0000		/* Jade cascaded Interrupt Controller phys */
> +#define JADE_TIMER_PHYS_BASE	0xfffe0000		/* Counter/Timers JADE phys */
> +#define JADE_UART0_PHYS_BASE	0xfffe1000		/* UART 0 phys */
> +#define JADE_UART1_PHYS_BASE	0xfffe2000		/* UART 1 phys */
> +#define JADE_IRCE_PHYS_BASE	0xfffe4000		/* Extended Interrupt Controller */
> +#define JADE_CRG_PHYS_BASE	0xfffe7000		/* Clock Reset Generator */
> +#define JADE_IRC0_PHYS_BASE	0xfffe8000		/* Jade Interrupt Controller phys */
> +#define JADE_GPIO_PHYS_BASE	0xfffe9000		/* GPIO phys */
> +
> +
> +/* -------- DRAMC_DRIC : (DRAMC Offset: 0x0) DRAM Controller Mode Register --------  */
> +
> +/********************************************************************************
> + *              REGISTER ADDRESS DEFINITION FOR DRAMC PERIPHERAL                *
> + ********************************************************************************/
> +#define JREGC_DRAMC_DRIC	((JREG *) 0xF3000000)	/* DRAM Controller Initialization control register */
> +#define	JREGC_DRAMC_DRIC1	((JREG *) 0xF3000002)	/* DRAM Controller Init control command register 1 */
> +#define	JREGC_DRAMC_DRIC2	((JREG *) 0xF3000004)	/* DRAM Controller Init control command register 2 */
> +#define	JREGC_DRAMC_DRCA	((JREG *) 0xF3000006)	/* DRAM Controller Address control register */
> +#define	JREGC_DRAMC_DRCM 	((JREG *) 0xF3000008)	/* DRAM Controller Modal control register */
> +#define	JREGC_DRAMC_DRCST1	((JREG *) 0xF300000A)	/* DRAM Controller Timing setting register 1 */
> +#define	JREGC_DRAMC_DRCST2	((JREG *) 0xF300000C)	/* DRAM Controller Timing setting register 2 */
> +#define	JREGC_DRAMC_DRCR	((JREG *) 0xF300000E)	/* DRAM Controller Refresh control register */
> +#define JREGC_DRAMC_DRCS	((JREG *) 0xF3000020)	/* DRAM Controller Status control register */
> +#define JREGC_DRAMC_DRASR	((JREG *) 0xF3000030)	/* DRAM Controller AXI operation setting register */
> +#define JREGC_DRAMC_DRIMS1	((JREG *) 0xF3000042)	/* DRAM Controller IF control register 1 */
...

NAK.

We don't allow such a base address + offset approach. 

Please define C structs for the peripherals, and use I/O accessors.


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
All these theories, diverse as they are, have two things  in  common:
they explain the observed facts, and they are completeley and utterly
wrong.                       - Terry Pratchett, _The Light Fantastic_

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

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

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-06-30 13:21 [U-Boot] [PATCH] This patch adds support for Fujitsu MB86R01 'JADE' SOC Matthias Weisser
2009-06-30 13:21 ` [U-Boot] [PATCH] Add suport for the graphic controller included in the JADE SOC Matthias Weisser
2009-06-30 13:21   ` [U-Boot] [PATCH] Added support for splash screen positioning adding by adding Matthias Weisser
2009-06-30 13:21     ` [U-Boot] [PATCH] Added support for jadecpu board using the MB86R01 'Jade' SOC from Fujitsu Matthias Weisser
2009-07-01  9:18     ` [U-Boot] [PATCH] Added support for splash screen positioning adding by adding Anatolij Gustschin
2009-07-01 13:40   ` [U-Boot] [PATCH] Add suport for the graphic controller included in the JADE SOC Anatolij Gustschin
2009-07-02  6:02     ` [U-Boot] Antw: " Matthias Weisser
2009-07-02  9:27       ` [U-Boot] " Anatolij Gustschin
2009-07-04 23:30         ` Wolfgang Denk
2009-07-07 12:29         ` Anatolij Gustschin
2009-07-19 20:12 ` [U-Boot] [PATCH] This patch adds support for Fujitsu MB86R01 'JADE' SOC Wolfgang Denk

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