summaryrefslogtreecommitdiffstats
path: root/arch/openrisc
diff options
context:
space:
mode:
authorFranck Jullien <franck.jullien@gmail.com>2011-12-20 23:11:37 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2012-01-02 12:50:57 +0100
commit0777a18c0f85369cfe479fe48a0510fe90e26b1f (patch)
tree0b5e2bb2a9cd8b9f4c267cb955b21520d474e513 /arch/openrisc
parent6fe9ee8eb4f85ff85b17024e25171d36c3f062ac (diff)
downloadbarebox-0777a18c0f85369cfe479fe48a0510fe90e26b1f.tar.gz
barebox-0777a18c0f85369cfe479fe48a0510fe90e26b1f.tar.xz
Add a generic board
In this generic configuration, the board can be run in the or1ksim simulator with the linux configuration file using the UART to print the console. Signed-off-by: Franck Jullien <franck.jullien@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/openrisc')
-rw-r--r--arch/openrisc/boards/generic/Makefile1
-rw-r--r--arch/openrisc/boards/generic/config.h28
-rw-r--r--arch/openrisc/boards/generic/env/config20
-rw-r--r--arch/openrisc/boards/generic/generic.c19
4 files changed, 68 insertions, 0 deletions
diff --git a/arch/openrisc/boards/generic/Makefile b/arch/openrisc/boards/generic/Makefile
new file mode 100644
index 0000000000..d8a3d7f2cc
--- /dev/null
+++ b/arch/openrisc/boards/generic/Makefile
@@ -0,0 +1 @@
+obj-y += generic.o
diff --git a/arch/openrisc/boards/generic/config.h b/arch/openrisc/boards/generic/config.h
new file mode 100644
index 0000000000..88d2929af5
--- /dev/null
+++ b/arch/openrisc/boards/generic/config.h
@@ -0,0 +1,28 @@
+#ifndef _GENERIC_NAMES_H_
+#define _GENERIC_NAMES_H_
+
+#define CONFIG_SYS_CLK_FREQ 20000000
+
+#define OPENRISC_TIMER_FREQ 20000000
+
+#define OPENRISC_SOPC_MEMORY_BASE 0x00000000
+#define OPENRISC_SOPC_MEMORY_SIZE 0x02000000
+
+#define OPENRISC_SOPC_UART_BASE 0x90000000
+#define CONFIG_SYS_UART_FREQ CONFIG_SYS_CLK_FREQ
+#define CONFIG_SYS_UART_BAUD 115200
+
+/* We reserve 256K for barebox */
+#define BAREBOX_RESERVED_SIZE 0x40000
+
+/* Barebox will be at top of main memory */
+#define OPENRISC_SOPC_TEXT_BASE (OPENRISC_SOPC_MEMORY_BASE + OPENRISC_SOPC_MEMORY_SIZE - BAREBOX_RESERVED_SIZE)
+
+/*
+* TEXT_BASE is defined here because STACK_BASE definition
+* in include/asm-generic/memory_layout.h uses this name
+*/
+
+#define TEXT_BASE OPENRISC_SOPC_TEXT_BASE
+
+#endif
diff --git a/arch/openrisc/boards/generic/env/config b/arch/openrisc/boards/generic/env/config
new file mode 100644
index 0000000000..9dee8d98b4
--- /dev/null
+++ b/arch/openrisc/boards/generic/env/config
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+# can be either 'net' or 'flash'
+kernel=flash
+root=flash
+
+kernel_loc=nor
+kernelimage_type=uimage
+
+# use 'dhcp' todo dhcp in barebox and in kernel
+ip=none
+
+autoboot_timeout=3
+
+nor_parts="256k(barebox),128k(env),4M(kernel),-(rootfs)"
+
+bootargs="console=ttyS0,9600"
+
+# set a fancy prompt (if support is compiled in)
+PS1="\e[1;33mbarebox@\e[1;32mor32:\w\e[0m "
diff --git a/arch/openrisc/boards/generic/generic.c b/arch/openrisc/boards/generic/generic.c
new file mode 100644
index 0000000000..6a9ce5b864
--- /dev/null
+++ b/arch/openrisc/boards/generic/generic.c
@@ -0,0 +1,19 @@
+#include <common.h>
+#include <init.h>
+#include <driver.h>
+#include <partition.h>
+#include <ns16550.h>
+
+static struct NS16550_plat serial_plat = {
+ .clock = 50000000, /* 48MHz (APLL96/2) */
+ .shift = 0,
+};
+
+static int openrisc_console_init(void)
+{
+ /* Register the serial port */
+ add_ns16550_device(-1, OPENRISC_SOPC_UART_BASE, 1024, IORESOURCE_MEM_8BIT, &serial_plat);
+ return 0;
+}
+
+console_initcall(openrisc_console_init);