diff options
author | rsun3 <rsun3@6f19259b-4bc3-4df7-8a09-765794883524> | 2011-11-16 09:38:12 +0000 |
---|---|---|
committer | rsun3 <rsun3@6f19259b-4bc3-4df7-8a09-765794883524> | 2011-11-16 09:38:12 +0000 |
commit | 3a4b9eba07e5cd1866842b0173fac93ffdb931e9 (patch) | |
tree | 537a5a505365b1b5fa680801a96c31be3cb4c2cc /DuetPkg/BootSector | |
parent | 4a6876b72f2d654c168bfe7e3a80da7b98fff8b5 (diff) | |
download | edk2-3a4b9eba07e5cd1866842b0173fac93ffdb931e9.tar.gz edk2-3a4b9eba07e5cd1866842b0173fac93ffdb931e9.tar.bz2 edk2-3a4b9eba07e5cd1866842b0173fac93ffdb931e9.zip |
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/BootSector')
-rw-r--r-- | DuetPkg/BootSector/BootSector.inf | 18 | ||||
-rw-r--r-- | DuetPkg/BootSector/bin/Start.com | bin | 4096 -> 4096 bytes | |||
-rw-r--r-- | DuetPkg/BootSector/bin/Start16.com | bin | 4096 -> 4096 bytes | |||
-rw-r--r-- | DuetPkg/BootSector/bin/Start32.com | bin | 4096 -> 4096 bytes | |||
-rw-r--r-- | DuetPkg/BootSector/bin/efi32.com | bin | 139264 -> 139264 bytes | |||
-rw-r--r-- | DuetPkg/BootSector/bin/efi32.com2 | bin | 4096 -> 4096 bytes | |||
-rw-r--r-- | DuetPkg/BootSector/efi32.S | 3 | ||||
-rw-r--r-- | DuetPkg/BootSector/efi32.asm | 3 | ||||
-rw-r--r-- | DuetPkg/BootSector/start.S | 8 | ||||
-rw-r--r-- | DuetPkg/BootSector/start.asm | 9 | ||||
-rw-r--r-- | DuetPkg/BootSector/start16.S | 9 | ||||
-rw-r--r-- | DuetPkg/BootSector/start16.asm | 9 | ||||
-rw-r--r-- | DuetPkg/BootSector/start32.S | 9 | ||||
-rw-r--r-- | DuetPkg/BootSector/start32.asm | 9 |
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 Binary files differindex adc5a3d0cf..0fd19a14a9 100644 --- a/DuetPkg/BootSector/bin/Start.com +++ b/DuetPkg/BootSector/bin/Start.com diff --git a/DuetPkg/BootSector/bin/Start16.com b/DuetPkg/BootSector/bin/Start16.com Binary files differindex 34e5dca6db..b2d77c1262 100644 --- a/DuetPkg/BootSector/bin/Start16.com +++ b/DuetPkg/BootSector/bin/Start16.com diff --git a/DuetPkg/BootSector/bin/Start32.com b/DuetPkg/BootSector/bin/Start32.com Binary files differindex 47f2f5d435..ac0e3cb20b 100644 --- a/DuetPkg/BootSector/bin/Start32.com +++ b/DuetPkg/BootSector/bin/Start32.com diff --git a/DuetPkg/BootSector/bin/efi32.com b/DuetPkg/BootSector/bin/efi32.com Binary files differindex 7c982e0ba7..4bcd83e2ac 100644 --- a/DuetPkg/BootSector/bin/efi32.com +++ b/DuetPkg/BootSector/bin/efi32.com diff --git a/DuetPkg/BootSector/bin/efi32.com2 b/DuetPkg/BootSector/bin/efi32.com2 Binary files differindex d4bae935cb..05522eccc5 100644 --- a/DuetPkg/BootSector/bin/efi32.com2 +++ b/DuetPkg/BootSector/bin/efi32.com2 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
|