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 --- arch/x86/mach-i386/Kconfig | 4 ++++ arch/x86/mach-i386/Makefile | 2 ++ arch/x86/mach-i386/generic.c | 38 ++++++++++++++++++++++++++++++++++++++ arch/x86/mach-i386/reset.c | 34 ++++++++++++++++++++++++++++++++++ 4 files changed, 78 insertions(+) Index: u-boot-v2/arch/x86/mach-i386/Kconfig =================================================================== --- /dev/null +++ u-boot-v2/arch/x86/mach-i386/Kconfig @@ -0,0 +1,4 @@ + +menu "Board specific settings " + +endmenu Index: u-boot-v2/arch/x86/mach-i386/Makefile =================================================================== --- /dev/null +++ u-boot-v2/arch/x86/mach-i386/Makefile @@ -0,0 +1,2 @@ +obj-y += generic.o +obj-y += reset.o Index: u-boot-v2/arch/x86/mach-i386/generic.c =================================================================== --- /dev/null +++ u-boot-v2/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 + +/** 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); +} Index: u-boot-v2/arch/x86/mach-i386/reset.c =================================================================== --- /dev/null +++ u-boot-v2/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 + +void reset_cpu(ulong addr) +{ + /** How to reset the machine? */ + while(1) + ; +} +EXPORT_SYMBOL(reset_cpu); --