[PATCH 2/2] Add a generic board
franck.jullien at gmail.com
franck.jullien at gmail.com
Tue Dec 20 17:11:37 EST 2011
From: Franck Jullien <franck.jullien at gmail.com>
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 at gmail.com>
---
arch/openrisc/boards/generic/Makefile | 1 +
arch/openrisc/boards/generic/config.h | 28 ++++++++++++++++++++++++++++
arch/openrisc/boards/generic/env/config | 20 ++++++++++++++++++++
arch/openrisc/boards/generic/generic.c | 19 +++++++++++++++++++
4 files changed, 68 insertions(+), 0 deletions(-)
create mode 100644 arch/openrisc/boards/generic/Makefile
create mode 100644 arch/openrisc/boards/generic/config.h
create mode 100644 arch/openrisc/boards/generic/env/config
create mode 100644 arch/openrisc/boards/generic/generic.c
diff --git a/arch/openrisc/boards/generic/Makefile b/arch/openrisc/boards/generic/Makefile
new file mode 100644
index 0000000..d8a3d7f
--- /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 0000000..88d2929
--- /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 0000000..9dee8d9
--- /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 0000000..6a9ce5b
--- /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);
--
1.7.7
More information about the barebox
mailing list