mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-22 15:11:33 +00:00
x86: Set cold/warm boot flag
This commit is contained in:
parent
161b3589ea
commit
c81b26beb8
3 changed files with 13 additions and 16 deletions
|
@ -51,7 +51,7 @@ _i386boot_start:
|
||||||
wbinvd
|
wbinvd
|
||||||
|
|
||||||
/* Tell 32-bit code it is being entered from an in-RAM copy */
|
/* Tell 32-bit code it is being entered from an in-RAM copy */
|
||||||
movw $0x0000, %bx
|
movw $GD_FLG_WARM_BOOT, %bx
|
||||||
_start:
|
_start:
|
||||||
/* This is the 32-bit cold-reset entry point */
|
/* This is the 32-bit cold-reset entry point */
|
||||||
|
|
||||||
|
@ -66,18 +66,10 @@ _start:
|
||||||
/* Clear the interupt vectors */
|
/* Clear the interupt vectors */
|
||||||
lidt blank_idt_ptr
|
lidt blank_idt_ptr
|
||||||
|
|
||||||
/*
|
/* Skip low-level initialization if not starting from cold-reset */
|
||||||
* Skip low-level board and memory initialization if not starting
|
movl %ebx, %ecx
|
||||||
* from cold-reset. This allows us to do a fail safe boot-strap
|
andl $GD_FLG_COLD_BOOT, %ecx
|
||||||
* into a new build of U-Boot from a known-good boot flash
|
jz skip_mem_init
|
||||||
*/
|
|
||||||
movw $0x0001, %ax
|
|
||||||
cmpw %ax, %bx
|
|
||||||
jne mem_init_ret
|
|
||||||
|
|
||||||
/* We call a few functions in the board support package
|
|
||||||
* since we have no stack yet we'll have to use %ebp
|
|
||||||
* to store the return address */
|
|
||||||
|
|
||||||
/* Early platform init (setup gpio, etc ) */
|
/* Early platform init (setup gpio, etc ) */
|
||||||
jmp early_board_init
|
jmp early_board_init
|
||||||
|
@ -89,6 +81,7 @@ early_board_init_ret:
|
||||||
.globl mem_init_ret
|
.globl mem_init_ret
|
||||||
mem_init_ret:
|
mem_init_ret:
|
||||||
|
|
||||||
|
skip_mem_init:
|
||||||
/* fetch memory size (into %eax) */
|
/* fetch memory size (into %eax) */
|
||||||
jmp get_mem_size
|
jmp get_mem_size
|
||||||
.globl get_mem_size_ret
|
.globl get_mem_size_ret
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
* MA 02111-1307 USA
|
* MA 02111-1307 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <asm/global_data.h>
|
||||||
|
|
||||||
#define BOOT_SEG 0xffff0000 /* linear segment of boot code */
|
#define BOOT_SEG 0xffff0000 /* linear segment of boot code */
|
||||||
#define a32 .byte 0x67;
|
#define a32 .byte 0x67;
|
||||||
|
@ -31,6 +32,9 @@
|
||||||
.code16
|
.code16
|
||||||
.globl start16
|
.globl start16
|
||||||
start16:
|
start16:
|
||||||
|
/* Set the Cold Boot / Hard Reset flag */
|
||||||
|
movl $GD_FLG_COLD_BOOT, %ebx
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* First we let the BSP do some early initialization
|
* First we let the BSP do some early initialization
|
||||||
* this code have to map the flash to its final position
|
* this code have to map the flash to its final position
|
||||||
|
@ -57,9 +61,6 @@ o32 cs lgdt gdt_ptr
|
||||||
/* Flush the prefetch queue */
|
/* Flush the prefetch queue */
|
||||||
jmp ff
|
jmp ff
|
||||||
ff:
|
ff:
|
||||||
/* Tell 32-bit code it is being entered from hard-reset */
|
|
||||||
movw $0x0001, %bx
|
|
||||||
|
|
||||||
/* Finally jump to the 32bit initialization code */
|
/* Finally jump to the 32bit initialization code */
|
||||||
movw $code32start, %ax
|
movw $code32start, %ax
|
||||||
movw %ax, %bp
|
movw %ax, %bp
|
||||||
|
|
|
@ -82,6 +82,9 @@ extern gd_t *gd;
|
||||||
#define GD_FLG_LOGINIT 0x00020 /* Log Buffer has been initialized */
|
#define GD_FLG_LOGINIT 0x00020 /* Log Buffer has been initialized */
|
||||||
#define GD_FLG_DISABLE_CONSOLE 0x00040 /* Disable console (in & out) */
|
#define GD_FLG_DISABLE_CONSOLE 0x00040 /* Disable console (in & out) */
|
||||||
#define GD_FLG_ENV_READY 0x00080 /* Environment imported into hash table */
|
#define GD_FLG_ENV_READY 0x00080 /* Environment imported into hash table */
|
||||||
|
#define GD_FLG_COLD_BOOT 0x00100 /* Cold Boot */
|
||||||
|
#define GD_FLG_WARM_BOOT 0x00200 /* Warm Boot */
|
||||||
|
|
||||||
|
|
||||||
#define DECLARE_GLOBAL_DATA_PTR
|
#define DECLARE_GLOBAL_DATA_PTR
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue