Signed-off-by: Brian Cavagnolo <br...@cozybit.com>
Signed-off-by: Andrey Yurovsky <yurov...@gmail.com>
---
 Makefile               |    7 +++
 board/didj/Makefile    |   54 ++++++++++++++++++++++++
 board/didj/config.mk   |    1 +
 board/didj/didj.c      |  107 ++++++++++++++++++++++++++++++++++++++++++++++++
 include/configs/didj.h |   71 ++++++++++++++++++++++++++++++++
 5 files changed, 240 insertions(+), 0 deletions(-)
 create mode 100644 board/didj/Makefile
 create mode 100644 board/didj/config.mk
 create mode 100644 board/didj/didj.c
 create mode 100644 include/configs/didj.h

diff --git a/Makefile b/Makefile
index c26e491..04d47a6 100644
--- a/Makefile
+++ b/Makefile
@@ -3120,6 +3120,13 @@ voiceblue_config:        unconfig
        @$(MKCONFIG) $(@:_config=) arm arm925t voiceblue
 
 #########################################################################
+# pollux Systems
+#########################################################################
+
+didj_config    : unconfig
+       @$(MKCONFIG) $(@:_config=) arm arm926ejs didj NULL pollux
+
+#########################################################################
 ## S3C44B0 Systems
 #########################################################################
 
diff --git a/board/didj/Makefile b/board/didj/Makefile
new file mode 100644
index 0000000..d320e80
--- /dev/null
+++ b/board/didj/Makefile
@@ -0,0 +1,54 @@
+# (C) Copyright 2010 cozybit, Inc.
+# Brian Cavagnolo <br...@cozybit.com>
+#
+# Derived from versatile/Makefile:
+#
+# (C) Copyright 2000-2006
+# Wolfgang Denk, DENX Software Engineering, w...@denx.de.
+#
+# See file CREDITS for list of people who contributed to this
+# project.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+
+include $(TOPDIR)/config.mk
+
+LIB    = $(obj)lib$(BOARD).a
+
+COBJS  := didj.o
+
+SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS   := $(addprefix $(obj),$(COBJS))
+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/didj/config.mk b/board/didj/config.mk
new file mode 100644
index 0000000..245816f
--- /dev/null
+++ b/board/didj/config.mk
@@ -0,0 +1 @@
+TEXT_BASE = $(CONFIG_TEXT_BASE)
diff --git a/board/didj/didj.c b/board/didj/didj.c
new file mode 100644
index 0000000..35ba49b
--- /dev/null
+++ b/board/didj/didj.c
@@ -0,0 +1,107 @@
+/*
+ * (C) Copyright 2010 cozybit, Inc.
+ * Brian Cavagnolo, <br...@cozybit.com>
+ *
+ * (C) Copyright 2007 Leapfrog, Inc.
+ * Andrey Yurovsky" <yurov...@gmail.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+#include <asm/arch/clkpwr.h>
+#include <asm/arch/reg.h>
+#include <asm/arch/gpio.h>
+#include <asm/arch/timer.h>
+#include <asm/arch/uart.h>
+
+#if defined(CONFIG_SHOW_BOOT_PROGRESS)
+void show_boot_progress(int progress)
+{
+    printf("Boot reached stage %d\n", progress);
+}
+#endif
+
+/* Desired PLL1 frequency for SDRAM and UART */
+#define PLL1_FREQ      147000000
+
+/* UART clock divider calculated such that the default BRD of 1 corresponds to
+ * a baud rate of 115200bps.  This is required by the serial driver.  Note that
+ * we calculate the divider below with an extra bit of precision to ensure that
+ * we round to the most suitable divider value.
+ */
+#define DEFAULT_BRD    1
+#define UARTDIV                ((((PLL1_FREQ<<1)/(115200*(DEFAULT_BRD + 
1)*16)) + 1)>>1)
+
+int board_init (void)
+{
+
+       unsigned long tmp;
+
+       icache_enable();
+
+       /* Didj uses PLL0 for the CPU clock at 393216000 Hz */
+       REG32(PLLSETREG0) = PLL_REG(801, 55, 0);
+       /* PLL1 (bus clock) 147000000 Hz */
+       REG32(PLLSETREG1) = PLL_REG(196, 9, 2);
+
+       /* set bus and cpu clock source and dividers */
+       tmp = REG32(CLKMODEREG);
+       tmp &= ~((0x3<<CLKSELCPU0)|
+                (0xF<<CLKDIVCPU0)|
+                (0xF<<CLKDIV2CPU0)|
+                (0x3<<CLKSELBCLK)|
+                (0xF<<CLKDIV1BCLK));
+       tmp |= ((0<<CLKSELCPU0)|
+               (0<<CLKDIVCPU0)|
+               (2<<CLKDIV2CPU0)|
+               (0<<CLKSELBCLK)|
+               (2<<CLKDIV1BCLK));
+       REG32(CLKMODEREG) = tmp;
+
+       /* apply settings */
+       BIT_SET(REG32(PWRMODE), CHGPLL);
+
+       /* wait for PLLs to stabalize */
+       while(IS_SET(REG32(PWRMODE), CHGPLL));
+
+       /* timer runs on PLL0 divided down by 256 */
+       REG32(CONFIG_SYS_TIMERBASE + TMRCLKGEN) |=
+               ((256-1)<<TCLKDIV)|(0<<TCLKSRCSEL);
+
+       /* UART0 pins can either be a UART or GPIO.  We want UART.  For this we
+        * must configure GPIOA, pin 8 to be the UART TX, which is it's
+        * alternative function.
+        */
+       tmp = REG32(GPIOAALTFN0);
+       tmp &= ~(ALTFN0_PIN_MASK(8));
+       tmp |= ALTFN0_PIN_CFG(8, GPIO_ALT1);
+       REG32(GPIOAALTFN0) = tmp;
+
+       /* UART0 runs on PLL1. */
+       REG32(UART0_BASE + UARTCLKGEN) =
+               ((1<<UARTCLKSRCSEL)|((UARTDIV - 1)<<UARTCLKDIV));
+
+       return 0;
+}
+
+int dram_init (void)
+{
+       return 0;
+}
diff --git a/include/configs/didj.h b/include/configs/didj.h
new file mode 100644
index 0000000..848e99d
--- /dev/null
+++ b/include/configs/didj.h
@@ -0,0 +1,71 @@
+/*
+ * (C) Copyright 2010 cozybit, Inc.
+ * Brian Cavagnolo <br...@cozybit.com>
+ *
+ * (C) Copyright 2007 Leapfrog, Inc.
+ * Kosta Demirev, kdemi...@yahoo.com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+#include <asm/arch/uart.h>
+#include <asm/arch/timer.h>
+
+#define CONFIG_ARM926EJS
+
+/* didj has minimal support for now, so turn lots of stuff off */
+#define CONFIG_SYS_NO_FLASH
+#define CONFIG_ENV_IS_NOWHERE
+#define CONFIG_SKIP_RELOCATE_UBOOT
+#define CONFIG_SKIP_LOWLEVEL_INIT
+
+/* memory layout */
+#define CONFIG_NR_DRAM_BANKS           1
+#define PHYS_SDRAM_1                   0x00000000
+#define PHYS_SDRAM_1_SIZE              0x02000000
+#define CONFIG_SYS_GBL_DATA_SIZE       128
+#define CONFIG_ENV_SIZE                        8192
+#define CONFIG_SYS_MALLOC_LEN          (CONFIG_ENV_SIZE + 128 * 1024)
+#define CONFIG_STACKSIZE               (128 * 1024)
+#define CONFIG_TEXT_BASE               0x00100000
+#define CONFIG_SYS_LOAD_ADDR           0x00200000
+
+/* timer and clock set up */
+#define CONFIG_SYS_HZ                  (384000000/256)
+#define CONFIG_SYS_TIMERBASE           TIMER0_BASE
+
+/* serial port configuration */
+#define CONFIG_POLLUX_SERIAL
+#define CONFIG_CONSOLE_UART_BASE       UART0_BASE
+#define CONFIG_BAUDRATE                        115200
+#define CONFIG_SYS_BAUDRATE_TABLE      { 9600, 19200, 38400, 57600, 115200 }
+
+/* console/printing setup */
+#define CONFIG_SYS_PROMPT "=> "
+#define CONFIG_SYS_LONGHELP
+#define CONFIG_SYS_CBSIZE              256
+#define CONFIG_SYS_PBSIZE \
+       (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
+#define CONFIG_SYS_MAXARGS             16
+
+/* SUBJECT TO AUDIT */
+
+#define CONFIG_PL011_CLOCK     24000000
+
+#endif /* __CONFIG_H */
-- 
1.6.0.4

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to