summaryrefslogtreecommitdiff
path: root/DuetPkg
diff options
context:
space:
mode:
authorrsun3 <rsun3@6f19259b-4bc3-4df7-8a09-765794883524>2011-11-16 09:38:12 +0000
committerrsun3 <rsun3@6f19259b-4bc3-4df7-8a09-765794883524>2011-11-16 09:38:12 +0000
commit3a4b9eba07e5cd1866842b0173fac93ffdb931e9 (patch)
tree537a5a505365b1b5fa680801a96c31be3cb4c2cc /DuetPkg
parent4a6876b72f2d654c168bfe7e3a80da7b98fff8b5 (diff)
downloadedk2-platforms-3a4b9eba07e5cd1866842b0173fac93ffdb931e9.tar.xz
DuetPkg BootSector:
Update start.asm(S)/start16.asm(S)/start32.asm(S)/efi32.asm(S) under DuetPkg\BootSector to follow the IA32 recommendations on switching to protected mode: Immediately following the MOV CR0 instruction, execute a far JMP or far CALL instruction. (This operation is typically a far jump or call to the next instruction in the instruction stream.) Signed-off-by: rsun3 Reviewed-by: niruiyu git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12723 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'DuetPkg')
-rw-r--r--DuetPkg/BootSector/BootSector.inf18
-rw-r--r--DuetPkg/BootSector/bin/Start.combin4096 -> 4096 bytes
-rw-r--r--DuetPkg/BootSector/bin/Start16.combin4096 -> 4096 bytes
-rw-r--r--DuetPkg/BootSector/bin/Start32.combin4096 -> 4096 bytes
-rw-r--r--DuetPkg/BootSector/bin/efi32.combin139264 -> 139264 bytes
-rw-r--r--DuetPkg/BootSector/bin/efi32.com2bin4096 -> 4096 bytes
-rw-r--r--DuetPkg/BootSector/efi32.S3
-rw-r--r--DuetPkg/BootSector/efi32.asm3
-rw-r--r--DuetPkg/BootSector/start.S8
-rw-r--r--DuetPkg/BootSector/start.asm9
-rw-r--r--DuetPkg/BootSector/start16.S9
-rw-r--r--DuetPkg/BootSector/start16.asm9
-rw-r--r--DuetPkg/BootSector/start32.S9
-rw-r--r--DuetPkg/BootSector/start32.asm9
14 files changed, 33 insertions, 44 deletions
diff --git a/DuetPkg/BootSector/BootSector.inf b/DuetPkg/BootSector/BootSector.inf
index c443ebb6ef..49f69eb66e 100644
--- a/DuetPkg/BootSector/BootSector.inf
+++ b/DuetPkg/BootSector/BootSector.inf
@@ -1,6 +1,6 @@
## @file
#
-# Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
@@ -61,3 +61,19 @@
efi32.asm | MSFT
efi32.S | GCC
+ start64.asm | INTEL
+ start64.asm | MSFT
+ start64.S | GCC
+
+ st16_64.asm | INTEL
+ st16_64.asm | MSFT
+ st16_64.S | GCC
+
+ st32_64.asm | INTEL
+ st32_64.asm | MSFT
+ st32_64.S | GCC
+
+ efi64.asm | INTEL
+ efi64.asm | MSFT
+ efi64.S | GCC
+
diff --git a/DuetPkg/BootSector/bin/Start.com b/DuetPkg/BootSector/bin/Start.com
index adc5a3d0cf..0fd19a14a9 100644
--- a/DuetPkg/BootSector/bin/Start.com
+++ b/DuetPkg/BootSector/bin/Start.com
Binary files differ
diff --git a/DuetPkg/BootSector/bin/Start16.com b/DuetPkg/BootSector/bin/Start16.com
index 34e5dca6db..b2d77c1262 100644
--- a/DuetPkg/BootSector/bin/Start16.com
+++ b/DuetPkg/BootSector/bin/Start16.com
Binary files differ
diff --git a/DuetPkg/BootSector/bin/Start32.com b/DuetPkg/BootSector/bin/Start32.com
index 47f2f5d435..ac0e3cb20b 100644
--- a/DuetPkg/BootSector/bin/Start32.com
+++ b/DuetPkg/BootSector/bin/Start32.com
Binary files differ
diff --git a/DuetPkg/BootSector/bin/efi32.com b/DuetPkg/BootSector/bin/efi32.com
index 7c982e0ba7..4bcd83e2ac 100644
--- a/DuetPkg/BootSector/bin/efi32.com
+++ b/DuetPkg/BootSector/bin/efi32.com
Binary files differ
diff --git a/DuetPkg/BootSector/bin/efi32.com2 b/DuetPkg/BootSector/bin/efi32.com2
index d4bae935cb..05522eccc5 100644
--- a/DuetPkg/BootSector/bin/efi32.com2
+++ b/DuetPkg/BootSector/bin/efi32.com2
Binary files differ
diff --git a/DuetPkg/BootSector/efi32.S b/DuetPkg/BootSector/efi32.S
index 391590a856..ebbc450950 100644
--- a/DuetPkg/BootSector/efi32.S
+++ b/DuetPkg/BootSector/efi32.S
@@ -1,6 +1,6 @@
#------------------------------------------------------------------------------
#*
-#* Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
+#* Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
#* This program and the accompanying materials
#* are licensed and made available under the terms and conditions of the BSD License
#* which accompanies this distribution. The full text of the license may be found at
@@ -37,6 +37,7 @@ _start:
.endm
Start:
+ movw %bx, %ax
movw %ax, %ds
movw %ax, %es
movw %ax, %fs
diff --git a/DuetPkg/BootSector/efi32.asm b/DuetPkg/BootSector/efi32.asm
index 471b4807bc..7ccf86f0eb 100644
--- a/DuetPkg/BootSector/efi32.asm
+++ b/DuetPkg/BootSector/efi32.asm
@@ -1,6 +1,6 @@
;------------------------------------------------------------------------------
;*
-;* Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
+;* Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
;* This program and the accompanying materials
;* are licensed and made available under the terms and conditions of the BSD License
;* which accompanies this distribution. The full text of the license may be found at
@@ -39,6 +39,7 @@ endm
Start:
+ mov ax,bx ; flat data descriptor in BX
mov ds,ax
mov es,ax
mov fs,ax
diff --git a/DuetPkg/BootSector/start.S b/DuetPkg/BootSector/start.S
index b9a34db081..f96d06e144 100644
--- a/DuetPkg/BootSector/start.S
+++ b/DuetPkg/BootSector/start.S
@@ -1,6 +1,6 @@
#------------------------------------------------------------------------------
#*
-#* Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved.<BR>
+#* Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
#* This program and the accompanying materials
#* are licensed and made available under the terms and conditions of the BSD License
#* which accompanies this distribution. The full text of the license may be found at
@@ -404,6 +404,7 @@ Timeout8042:
A20GateEnabled:
+ movw $0x0008, %bx # Flat data descriptor
#
# DISABLE INTERRUPTS - Entering Protected Mode
@@ -425,11 +426,6 @@ A20GateEnabled:
movl %cr0, %eax
orb $1, %al
movl %eax, %cr0
-
- movl $0x008, %eax # Flat data descriptor
- movl $0x00400000, %ebp # Destination of EFILDR32
- movl $0x00070000, %ebx # Length of copy
-
JUMP:
# jmp far 0010:00020000
.byte 0x66
diff --git a/DuetPkg/BootSector/start.asm b/DuetPkg/BootSector/start.asm
index 2674d1cd8a..9cc05ff5ca 100644
--- a/DuetPkg/BootSector/start.asm
+++ b/DuetPkg/BootSector/start.asm
@@ -1,6 +1,6 @@
;------------------------------------------------------------------------------
;*
-;* Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved.<BR>
+;* Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
;* This program and the accompanying materials
;* are licensed and made available under the terms and conditions of the BSD License
;* which accompanies this distribution. The full text of the license may be found at
@@ -400,7 +400,7 @@ Timeout8042:
A20GateEnabled:
-
+ mov bx,0008h ; Flat data descriptor
;
; DISABLE INTERRUPTS - Entering Protected Mode
;
@@ -421,11 +421,6 @@ A20GateEnabled:
mov eax,cr0
or al,1
mov cr0,eax
-
- mov eax,0008h ; Flat data descriptor
- mov ebp,000400000h ; Destination of EFILDR32
- mov ebx,000070000h ; Length of copy
-
JUMP:
; jmp far 0010:00020000
db 066h
diff --git a/DuetPkg/BootSector/start16.S b/DuetPkg/BootSector/start16.S
index be525b6f30..053a0eeb91 100644
--- a/DuetPkg/BootSector/start16.S
+++ b/DuetPkg/BootSector/start16.S
@@ -1,6 +1,6 @@
#------------------------------------------------------------------------------
#*
-#* Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved.<BR>
+#* Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
#* This program and the accompanying materials
#* are licensed and made available under the terms and conditions of the BSD License
#* which accompanies this distribution. The full text of the license may be found at
@@ -398,7 +398,7 @@ Timeout8042:
A20GateEnabled:
-
+ movw $0x0008, %bx # Flat data descriptor
#
# DISABLE INTERRUPTS - Entering Protected Mode
#
@@ -419,11 +419,6 @@ A20GateEnabled:
movl %cr0, %eax
orb $1, %al
movl %eax, %cr0
-
- movl $0x008, %eax # Flat data descriptor
- movl $0x00400000, %ebp # Destination of EFILDR32
- movl $0x00070000, %ebx # Length of copy
-
JUMP:
# jmp far 0010:00020000
.byte 0x66
diff --git a/DuetPkg/BootSector/start16.asm b/DuetPkg/BootSector/start16.asm
index 036726d83d..05d0b2d1e5 100644
--- a/DuetPkg/BootSector/start16.asm
+++ b/DuetPkg/BootSector/start16.asm
@@ -1,6 +1,6 @@
;------------------------------------------------------------------------------
;*
-;* Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved.<BR>
+;* Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
;* This program and the accompanying materials
;* are licensed and made available under the terms and conditions of the BSD License
;* which accompanies this distribution. The full text of the license may be found at
@@ -393,7 +393,7 @@ Timeout8042:
A20GateEnabled:
-
+ mov bx,0008h ; Flat data descriptor
;
; DISABLE INTERRUPTS - Entering Protected Mode
;
@@ -414,11 +414,6 @@ A20GateEnabled:
mov eax,cr0
or al,1
mov cr0,eax
-
- mov eax,0008h ; Flat data descriptor
- mov ebp,000400000h ; Destination of EFILDR32
- mov ebx,000070000h ; Length of copy
-
JUMP:
; jmp far 0010:00020000
db 066h
diff --git a/DuetPkg/BootSector/start32.S b/DuetPkg/BootSector/start32.S
index c47f92763d..6ce225612f 100644
--- a/DuetPkg/BootSector/start32.S
+++ b/DuetPkg/BootSector/start32.S
@@ -1,6 +1,6 @@
#------------------------------------------------------------------------------
#*
-#* Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved.<BR>
+#* Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
#* This program and the accompanying materials
#* are licensed and made available under the terms and conditions of the BSD License
#* which accompanies this distribution. The full text of the license may be found at
@@ -413,7 +413,7 @@ Timeout8042:
A20GateEnabled:
-
+ movw $0x0008, %bx # Flat data descriptor
#
# DISABLE INTERRUPTS - Entering Protected Mode
#
@@ -434,11 +434,6 @@ A20GateEnabled:
movl %cr0, %eax
orb $1, %al
movl %eax, %cr0
-
- movl $0x008, %eax # Flat data descriptor
- movl $0x00400000, %ebp # Destination of EFILDR32
- movl $0x00070000, %ebx # Length of copy
-
JUMP:
# jmp far 0010:00020000
.byte 0x66
diff --git a/DuetPkg/BootSector/start32.asm b/DuetPkg/BootSector/start32.asm
index 2cc5640cd8..aaf04b86bc 100644
--- a/DuetPkg/BootSector/start32.asm
+++ b/DuetPkg/BootSector/start32.asm
@@ -1,6 +1,6 @@
;------------------------------------------------------------------------------
;*
-;* Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved.<BR>
+;* Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
;* This program and the accompanying materials
;* are licensed and made available under the terms and conditions of the BSD License
;* which accompanies this distribution. The full text of the license may be found at
@@ -408,7 +408,7 @@ Timeout8042:
A20GateEnabled:
-
+ mov bx,0008h ; Flat data descriptor
;
; DISABLE INTERRUPTS - Entering Protected Mode
;
@@ -429,11 +429,6 @@ A20GateEnabled:
mov eax,cr0
or al,1
mov cr0,eax
-
- mov eax,0008h ; Flat data descriptor
- mov ebp,000400000h ; Destination of EFILDR32
- mov ebx,000070000h ; Length of copy
-
JUMP:
; jmp far 0010:00020000
db 066h