[U-Boot] [PATCH 4/4] x86: Remove 16-bit reset code

Simon Glass sjg at chromium.org
Fri Feb 8 17:42:43 CET 2013


This code is not needed now, since we boot U-Boot from Coreboot on x86.

Signed-off-by: Simon Glass <sjg at chromium.org>
---
 Makefile                   |   4 --
 README                     |   4 --
 arch/x86/cpu/Makefile      |   1 -
 arch/x86/cpu/resetvec.S    |  38 ------------
 arch/x86/cpu/start16.S     | 146 ---------------------------------------------
 include/configs/coreboot.h |   1 -
 6 files changed, 194 deletions(-)
 delete mode 100644 arch/x86/cpu/resetvec.S
 delete mode 100644 arch/x86/cpu/start16.S

diff --git a/Makefile b/Makefile
index 51bd918..1924d4b 100644
--- a/Makefile
+++ b/Makefile
@@ -230,10 +230,6 @@ endif
 # U-Boot objects....order is important (i.e. start must be first)
 
 OBJS  = $(CPUDIR)/start.o
-ifeq ($(CPU),x86)
-RESET_OBJS-$(CONFIG_X86_NO_RESET_VECTOR) += $(CPUDIR)/start16.o
-RESET_OBJS-$(CONFIG_X86_NO_RESET_VECTOR) += $(CPUDIR)/resetvec.o
-endif
 ifeq ($(CPU),ppc4xx)
 OBJS += $(CPUDIR)/resetvec.o
 endif
diff --git a/README b/README
index 103036f..061898c 100644
--- a/README
+++ b/README
@@ -3816,10 +3816,6 @@ Low Level (hardware related) configuration options:
 		be used if available. These functions may be faster under some
 		conditions but may increase the binary size.
 
-- CONFIG_X86_NO_RESET_VECTOR
-		If defined, the x86 reset vector code is excluded. You will need
-		to do this when U-Boot is running from Coreboot.
-
 
 Freescale QE/FMAN Firmware Support:
 -----------------------------------
diff --git a/arch/x86/cpu/Makefile b/arch/x86/cpu/Makefile
index 57324b6..f27064f 100644
--- a/arch/x86/cpu/Makefile
+++ b/arch/x86/cpu/Makefile
@@ -29,7 +29,6 @@ include $(TOPDIR)/config.mk
 LIB	= $(obj)lib$(CPU).o
 
 START-y	= start.o
-RESET_OBJS-$(CONFIG_X86_NO_RESET_VECTOR) += resetvec.o start16.o
 COBJS	= interrupts.o cpu.o timer.o
 
 SRCS	:= $(START:.o=.S) $(SOBJS:.o=.S) $(COBJS:.o=.c)
diff --git a/arch/x86/cpu/resetvec.S b/arch/x86/cpu/resetvec.S
deleted file mode 100644
index 44aee5f..0000000
--- a/arch/x86/cpu/resetvec.S
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- *  U-boot - x86 Startup Code
- *
- * (C) Copyright 2002
- * Daniel Engström, Omicron Ceti AB, <daniel at omicron.se>
- *
- * 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
- */
-
-/* Reset vector, jumps to start16.S */
-
-.extern start16
-
-.section .resetvec, "ax"
-.code16
-reset_vector:
-	cli
-	cld
-	jmp start16
-
-	.org 0xf
-	nop
diff --git a/arch/x86/cpu/start16.S b/arch/x86/cpu/start16.S
deleted file mode 100644
index 603bf1d..0000000
--- a/arch/x86/cpu/start16.S
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- *  U-boot - x86 Startup Code
- *
- * (C) Copyright 2008-2011
- * Graeme Russ, <graeme.russ at gmail.com>
- *
- * (C) Copyright 2002,2003
- * Daniel Engström, Omicron Ceti AB, <daniel at omicron.se>
- *
- * 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 <asm/global_data.h>
-#include <asm/processor-flags.h>
-
-#define BOOT_SEG	0xffff0000	/* linear segment of boot code */
-#define a32		.byte 0x67;
-#define o32		.byte 0x66;
-
-.section .start16, "ax"
-.code16
-.globl start16
-start16:
-	/* Set the Cold Boot / Hard Reset flag */
-	movl	$GD_FLG_COLD_BOOT, %ebx
-
-	/*
-	 * First we let the BSP do some early initialization
-	 * this code have to map the flash to its final position
-	 */
-	jmp	board_init16
-.globl board_init16_ret
-board_init16_ret:
-
-	/* Turn of cache (this might require a 486-class CPU) */
-	movl	%cr0, %eax
-	orl	$(X86_CR0_NW | X86_CR0_CD), %eax
-	movl	%eax, %cr0
-	wbinvd
-
-	/* load the temporary Global Descriptor Table */
-o32 cs	lidt	idt_ptr
-o32 cs	lgdt	gdt_ptr
-
-	/* Now, we enter protected mode */
-	movl	%cr0, %eax
-	orl	$X86_CR0_PE, %eax
-	movl	%eax, %cr0
-
-	/* Flush the prefetch queue */
-	jmp	ff
-ff:
-	/* Finally jump to the 32bit initialization code */
-	movw	$code32start, %ax
-	movw	%ax, %bp
-o32 cs	ljmp	*(%bp)
-
-	/* 48-bit far pointer */
-code32start:
-	.long	_start		/* offset */
-	.word	0x10		/* segment */
-
-idt_ptr:
-	.word	0		/* limit */
-	.long	0		/* base */
-
-/*
- * The following Global Descriptor Table is just enough to get us into
- * 'Flat Protected Mode' - It will be discarded as soon as the final
- * GDT is setup in a safe location in RAM
- */
-gdt_ptr:
-	.word	0x20		/* limit (32 bytes = 4 GDT entries) */
-	.long	BOOT_SEG + gdt	/* base */
-
-/* Some CPUs are picky about GDT alignment... */
-.align 16
-gdt:
-	/*
-	 * The GDT table ...
-	 *
-	 *	 Selector	Type
-	 *	 0x00		NULL
-	 *	 0x08		Unused
-	 *	 0x10		32bit code
-	 *	 0x18		32bit data/stack
-	 */
-	/* The NULL Desciptor - Mandatory */
-	.word	0x0000		/* limit_low */
-	.word	0x0000		/* base_low */
-	.byte	0x00		/* base_middle */
-	.byte	0x00		/* access */
-	.byte	0x00		/* flags + limit_high */
-	.byte	0x00		/* base_high */
-
-	/* Unused Desciptor - (matches Linux) */
-	.word	0x0000		/* limit_low */
-	.word	0x0000		/* base_low */
-	.byte	0x00		/* base_middle */
-	.byte	0x00		/* access */
-	.byte	0x00		/* flags + limit_high */
-	.byte	0x00		/* base_high */
-
-	/*
-	 * The Code Segment Descriptor:
-	 * - Base   = 0x00000000
-	 * - Size   = 4GB
-	 * - Access = Present, Ring 0, Exec (Code), Readable
-	 * - Flags  = 4kB Granularity, 32-bit
-	 */
-	.word	0xffff		/* limit_low */
-	.word	0x0000		/* base_low */
-	.byte	0x00		/* base_middle */
-	.byte	0x9b		/* access */
-	.byte	0xcf		/* flags + limit_high */
-	.byte	0x00		/* base_high */
-
-	/*
-	 * The Data Segment Descriptor:
-	 * - Base   = 0x00000000
-	 * - Size   = 4GB
-	 * - Access = Present, Ring 0, Non-Exec (Data), Writable
-	 * - Flags  = 4kB Granularity, 32-bit
-	 */
-	.word	0xffff		/* limit_low */
-	.word	0x0000		/* base_low */
-	.byte	0x00		/* base_middle */
-	.byte	0x93		/* access */
-	.byte	0xcf		/* flags + limit_high */
-	.byte	0x00		/* base_high */
diff --git a/include/configs/coreboot.h b/include/configs/coreboot.h
index d8aabd4..c7f36ff 100644
--- a/include/configs/coreboot.h
+++ b/include/configs/coreboot.h
@@ -37,7 +37,6 @@
 #define CONFIG_SYS_COREBOOT
 #define CONFIG_SHOW_BOOT_PROGRESS
 #define CONFIG_LAST_STAGE_INIT
-#define CONFIG_X86_NO_RESET_VECTOR
 #define CONFIG_SYS_VSNPRINTF
 #define CONFIG_INTEL_CORE_ARCH	/* Sandy bridge and ivy bridge chipsets. */
 #define CONFIG_ZBOOT_32
-- 
1.8.1



More information about the U-Boot mailing list