http://git.etherboot.org
/
people
/
pcmattman
/
gpxe.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[prefix] Add .hrom prefix for a ROM that loads high under PCI3 without PMM
[people/pcmattman/gpxe.git]
/
src
/
arch
/
i386
/
prefix
/
romprefix.S
diff --git
a/src/arch/i386/prefix/romprefix.S
b/src/arch/i386/prefix/romprefix.S
index
cb474e8
..
d695fd9
100644
(file)
--- a/
src/arch/i386/prefix/romprefix.S
+++ b/
src/arch/i386/prefix/romprefix.S
@@
-351,6
+351,7
@@
got_pmm: /* PMM allocation succeeded */
call print_character
movw %si, %ax
call print_hex_byte
call print_character
movw %si, %ax
call print_hex_byte
+pmm_copy:
/* Copy ROM to PMM block */
xorw %ax, %ax
movw %ax, %es
/* Copy ROM to PMM block */
xorw %ax, %ax
movw %ax, %es
@@
-362,7
+363,19
@@
got_pmm: /* PMM allocation succeeded */
movl %edi, decompress_to
/* Shrink ROM */
movb $_prefix_memsz_sect, romheader_size
movl %edi, decompress_to
/* Shrink ROM */
movb $_prefix_memsz_sect, romheader_size
+#ifdef SHRINK_WITHOUT_PMM
+ jmp pmm_done
pmm_fail:
pmm_fail:
+ /* Print marker and copy ourselves to high memory */
+ movl $HIGHMEM_LOADPOINT, image_source
+ xorw %di, %di
+ movb $( '!' ), %al
+ call print_character
+ jmp pmm_copy
+pmm_done:
+#else
+pmm_fail:
+#endif
/* Restore upper register halves */
popal
no_pmm:
/* Restore upper register halves */
popal
no_pmm: