david/ipxe
Archived
1
0
Commit Graph

16 Commits

Author SHA1 Message Date
Michael Brown
13d09e6719 [i386] Simplify linker script and standardise linker-defined symbol names
Reduce the number of sections within the linker script to match the
number of practical sections within the output file.

Define _section, _msection, _esection, _section_filesz, _section_memsz,
and _section_lma for each section, replacing the mixture of symbols that
previously existed.

In particular, replace _text and _end with _textdata and _etextdata, to
make it explicit within code that uses these symbols that the .text and
.data sections are always treated as a single contiguous block.
2008-10-10 03:59:57 +01:00
Michael Brown
ca0b0f0616 [relocate] Guard against systems that report empty memory regions
If the INT 15,e820 memory map reports a region [0,0), this confuses
the "truncate to even megabytes" logic, which ends up rounding the
region 'down' to [0,fff00000).

Fix by ensuring that the region's end address is at least 1, before we
subtract 1 to obtain the "last byte in region" address.
2008-09-23 01:13:28 +01:00
Michael Brown
a6a1052096 Applied a modified version of holger's regparm patches. 2007-07-29 00:17:25 +01:00
Michael Brown
c980cdd0aa Move memmap.h out of arch/i386; it no longer contains anything
architecture-dependent and is needed by the ELF code.
2007-01-11 14:08:44 +00:00
Michael Brown
88e38fa148 We don't actually have a stdio.h header file. Our printf() functions are
defined in vsprintf.h.  (This may change, since vsprintf.h is a
non-standard name, but for now it's the one to use.)

There should be no need to include vsprintf.h just for DBG() statements,
since include/compiler.h forces it in for a debug build anyway.
2006-09-27 10:58:14 +00:00
Marty Connor
6ac78f6aff added stdio.h to includes for DBG compilation 2006-09-27 05:57:06 +00:00
Michael Brown
1966945a5d Update relocate() to work with get_memmap().
Change semantics; relocate() now just finds a suitable location; it
doesn't actually perform the relocation itself.  Code in libprefix does
the copy in flat real mode.
2006-05-25 00:04:13 +00:00
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.
2006-05-02 15:41:21 +00:00
Michael Brown
352bf1bda2 Move init.h to gpxe/init.h. 2006-04-30 01:08:52 +00:00
Michael Brown
b9e72856b6 Post-relocation functions use the generic table mechanism. 2005-04-27 12:10:24 +00:00
Michael Brown
44c7cc8c12 Standardised debug mechanism in place now. 2005-04-14 11:55:57 +00:00
Michael Brown
f06e8c9707 Added post-relocation function table. 2005-04-10 18:18:37 +00:00
Michael Brown
44eee81d11 Don't build relocate() under KEEP_IT_REAL 2005-04-09 17:05:35 +00:00
Michael Brown
29f43896aa Add relocate.h
Note that we can't make real-mode calls immediately after relocate_to().
2005-04-09 13:36:55 +00:00
Michael Brown
8039086ec8 Added a lot of explanatory comments.
Preserves alignment requested via _max_align parameter to linker.
2005-04-09 13:12:22 +00:00
Michael Brown
a4920c16bd Moved relocate.c to arch-specific dir, since it involves arch-specific
logic (e.g. avoiding memory regions with A20=0).
2005-04-09 10:49:26 +00:00