Michael Brown
2cfe0dee1f
Don't trash the %ecx value returned by relocate(). This was causing
us to round down the size for the relocation copy to the nearest 64kB
(+0x10 bytes); this just happened to work on most machines because the
last 64kB of the image is all-zeroes anyway (it's the .bss).
il y a 17 ans
Michael Brown
c94cdf2b7d
Move .zinfo to libprefix.S; it doesn't belong with the decompression code.
il y a 17 ans
Michael Brown
048bbeeebc
Compressed ROM images now work.
il y a 17 ans
Michael Brown
ab859a5355
Use a single _payload_offset linker-defined variable to locate the
start of the non-prefix blocks in the loaded image, and rely on the
image ordering. This should make introducing compression much easier.
il y a 17 ans
Michael Brown
dca369ddc3
Call hide_etherboot() from startup(), rather than requiring the prefix to
do it.
il y a 18 ans
Michael Brown
86171c53f4
Damn Broadcom and their damned incorrect assumptions about x86 memory
allocation.
il y a 18 ans
Michael Brown
6abfaa153b
Towards making KEEP_IT_REAL work again.
Fix bug that caused over-allocation of .text16 and .data16 memory areas
by a factor of 16.
il y a 18 ans
Michael Brown
e7eca7b7cb
Code segment may not be writable; create the temporary pointer to the GDT
on the stack.
il y a 18 ans
Michael Brown
041a04335e
Fixed assembly on old versions of gas
il y a 18 ans
Michael Brown
89da833c5d
init_librm() and prot_call() are now real-mode far calls.
install() now calls relocate(), moves the protected-mode code to the new
location, and calls hide_etherboot().
il y a 18 ans
Michael Brown
832807726a
Add infrastructure to support access to .data16 (and .text16) variables
from protected-mode code.
Set up %ds to point to .data16 in prot_to_real, so that code specified
via REAL_EXEC() and friends can access variables in .data16.
Move most real-mode librm variables from .text16 to .data16.
il y a 18 ans
Michael Brown
cc23057b59
Typo
il y a 18 ans
Michael Brown
10c28a51bd
Create two easy-to-use entry points in libprefix: install and
install_prealloc. I *think* these will suffice for all the 16-bit
prefixes.
il y a 18 ans
Michael Brown
5463169c1a
Verified as working
il y a 18 ans
Michael Brown
d081d65d48
This should be much more elegant: we use flat real mode for the
highmem data, so decompress16 will be able to unpack blocks bigger
than 64kB.
il y a 18 ans
Michael Brown
cc8821a443
Checking in because I don't want to lose this rather neat code for
running the decompresser in 16:16 protected mode using the real-mode
stack. However, there's an even simpler way to do it...
il y a 18 ans