summaryrefslogtreecommitdiffstats
path: root/arch/x86/mach-i386
diff options
context:
space:
mode:
authorJuergen Beisert <jbe@pengutronix.de>2010-01-12 11:15:39 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2010-01-14 10:06:15 +0100
commitc7f2adaf7dfd9b752972a5ebf48baf30684106cc (patch)
treedd48c2316bba9803e67e26104798ecce71b1b0f6 /arch/x86/mach-i386
parentacd2bf6bc0ee81a6a890fe7d07c6db54daacd515 (diff)
downloadbarebox-c7f2adaf7dfd9b752972a5ebf48baf30684106cc.tar.gz
barebox-c7f2adaf7dfd9b752972a5ebf48baf30684106cc.tar.xz
Bring in the first x86 specific code
Add some generic required code to make barebox work on x86. Note: Resetting the CPU is unfinished yet. I need some ideas how to reset this kind of architecture gracefully. Signed-off-by: Juergen Beisert <jbe@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/x86/mach-i386')
-rw-r--r--arch/x86/mach-i386/Kconfig29
-rw-r--r--arch/x86/mach-i386/Makefile2
-rw-r--r--arch/x86/mach-i386/generic.c38
-rw-r--r--arch/x86/mach-i386/reset.c34
4 files changed, 103 insertions, 0 deletions
diff --git a/arch/x86/mach-i386/Kconfig b/arch/x86/mach-i386/Kconfig
new file mode 100644
index 0000000000..11f6aa679a
--- /dev/null
+++ b/arch/x86/mach-i386/Kconfig
@@ -0,0 +1,29 @@
+
+menu "Board specific settings "
+
+if X86_BOOTLOADER
+
+config X86_GENERIC_HAS_ISA
+ bool "ISA support"
+ help
+ Say Y here if the target supports a ISA bus
+
+config X86_GENERIC_HAS_PCI
+ bool "PCI support"
+ select HAS_PCI
+ help
+ Say Y here if the target supports a PCI bus
+
+config X86_GENERIC_HAS_VIDEO
+ bool "video support"
+ help
+ Say Y here if the target supports a video output
+
+config X86_GENERIC_HAS_USB
+ bool "USB support"
+ help
+ Say Y here if the target supports a USB interface
+
+endif
+
+endmenu
diff --git a/arch/x86/mach-i386/Makefile b/arch/x86/mach-i386/Makefile
new file mode 100644
index 0000000000..49ed10ff54
--- /dev/null
+++ b/arch/x86/mach-i386/Makefile
@@ -0,0 +1,2 @@
+obj-y += generic.o
+obj-y += reset.o
diff --git a/arch/x86/mach-i386/generic.c b/arch/x86/mach-i386/generic.c
new file mode 100644
index 0000000000..edeacc4275
--- /dev/null
+++ b/arch/x86/mach-i386/generic.c
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2009 Juergen Beisert, Pengutronix
+ *
+ * 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
+ *
+ */
+
+/**
+ * @file
+ * @brief x86 Architecture Initialization routines
+ */
+
+#include <asm/io.h>
+
+/** to work with the 8250 UART driver implementation we need this function */
+unsigned int x86_uart_read(unsigned long base, unsigned char reg_idx)
+{
+ return inb(base + reg_idx);
+}
+
+/** to work with the 8250 UART driver implementation we need this function */
+void x86_uart_write(unsigned int val, unsigned long base, unsigned char reg_idx)
+{
+ outb(val, base + reg_idx);
+}
diff --git a/arch/x86/mach-i386/reset.c b/arch/x86/mach-i386/reset.c
new file mode 100644
index 0000000000..a4eb364870
--- /dev/null
+++ b/arch/x86/mach-i386/reset.c
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2009 Juergen Beisert, Pengutronix
+ *
+ * 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
+ *
+ */
+
+/**
+ * @file
+ * @brief Resetting an x86 CPU
+ */
+
+#include <common.h>
+
+void reset_cpu(ulong addr)
+{
+ /** How to reset the machine? */
+ while(1)
+ ;
+}
+EXPORT_SYMBOL(reset_cpu);