Daniel Verkamp
aa28544373
[librm] Add rm stack copying functions
16 년 전
Daniel Verkamp
2539f5fa4a
[librm] Make rm_sp and rm_ss globals again
16 년 전
Stefan Hajnoczi
04bc50f025
[GDB] Add GDB stub for remote debugging
See http://etherboot.org/wiki/dev/gdbstub for documentation.
16 년 전
Michael Brown
1949641d10
Fix compiler warnings that appear only on OpenBSD.
17 년 전
Michael Brown
881dd8e102
Switch rm_ss and rm_sp back to being words; it'll make it less
confusing to read the code.
17 년 전
Michael Brown
42d96bcb07
Don't use the "rep ss movsb" trick to copy the RM stack to the PM
stack; it breaks vmxassist.
17 년 전
Michael Brown
0ed066bc50
rm_ss, rm_sp, and pm_esp don't need to be accessed from anywhere
outside of librm.S.
17 년 전
Michael Brown
013d381e3c
Real-mode code might set the direction flag, which would cause carnage.
17 년 전
Michael Brown
a9369bb503
Leave protected-mode return address on PM stack when issuing a
real_call(), rather than moving it to the RM stack and back again.
This allows the real-mode function to completely destroy the stack
contents, provided that it manages to return to real_call().
18 년 전
Michael Brown
290c5ee779
Don't automatically call gateA20_set() when returning from a real-mode
call.
18 년 전
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.
18 년 전
Michael Brown
35b04b1514
Tidy up comment
18 년 전
Michael Brown
041a04335e
Fixed assembly on old versions of gas
18 년 전
Michael Brown
29340d7728
Documented the fact that the prefix can prot_call(main) without
worrying about its stack being destroyed during the Etherboot run.
18 년 전
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().
18 년 전
Michael Brown
02cf755f3f
Removed REAL_EXEC(); there is no longer any code using it.
18 년 전
Michael Brown
83d80d9e79
Remove references to obsoleted REAL_CALL from documentation.
18 년 전
Michael Brown
5080668704
Provide access to rm_cs and rm_ds from protected-mode code.
18 년 전
Michael Brown
f7b963da51
(Redoing check-in lost by SourceForge's failure.)
Use .text16.data section with "aw" attributes, to avoid section type
conflicts when placing both code and data into .text16.
Add __from_{text16,data16}.
18 년 전
Michael Brown
fdb983d473
Preserve the whole of %esp across prot_call(). We have to split this
between the low half stored in the static variable rm_sp, and the high
half stored on the prot_call() stack, because:
Just using the stack would screw up when a prot_call()ed routine
executes a real_call(); it would have no way to find the current top of
the RM stack.
Extending rm_sp to rm_esp would not be safe, because the guarantee that
rm_sp must return to the correct value by the time an external
real-mode call returns applies only to %sp, not to %esp.
18 년 전
Michael Brown
c10d1aa9d7
Preserve GDT across prot_call().
18 년 전
Michael Brown
dcc1b0054e
This line should not have been checked in
18 년 전
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.
18 년 전
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.
18 년 전
Michael Brown
9fcded3d23
Towards a(nother) new real-mode infrastructure, in which we take
advantage of the fact that we have to have a permanently-resident block
in base memory.
18 년 전
Michael Brown
352bf1bda2
Move init.h to gpxe/init.h.
18 년 전
Michael Brown
4c4e4de18f
(librm_base-1b) is already an offset; no need to apply OFFSET().
Doing so, in fact, seems to expose an assembler bug; (a-b-0) is
apparently not the same as (a-b). Go figure.
18 년 전
Michael Brown
d3dec7c331
Update to cope with changes in registers.h
19 년 전
Michael Brown
378c1b500c
Cleaner separation of functionality between post_reloc and
initialise_via_librm.
19 년 전
Michael Brown
34a0b5f16f
initialise() doesn't take regs
19 년 전
Michael Brown
87508aa0b2
arch_initialise() is now sufficiently generic that we may as well just
call it initialise() and place it in main.c. :)
19 년 전
Michael Brown
560027899e
Heading towards a sane set of control functions
19 년 전
Michael Brown
04a99841e6
Make prot_call() able to transparently return via the newly installed copy
of librm.
19 년 전
Michael Brown
2fa14f2f1d
lgdt needs data32 prefix, otherwise it loads only 24 bits. (sgdt
always saves 32 bits).
19 년 전
Michael Brown
6a4ac358f3
Add INIT_FNs to make sure that librm gets reallocated when needed.
19 년 전
Michael Brown
1f6dfd7047
Allow ourselves to be freed by basemem.c without being damaged.
19 년 전
Michael Brown
a800e9657d
PM function called by prot_call() should be allowed to modifying
registers returned to RM code.
19 년 전
Michael Brown
0ff80b477d
Merged mcb30-realmode-redesign back to HEAD
19 년 전