From df2322b51c6ffd9e4a05b225c5c4ba44b09d3e75 Mon Sep 17 00:00:00 2001 From: hpa Date: Wed, 26 Nov 2003 05:42:33 +0000 Subject: Add a bootstrap chainloading API, and include a sample program for it. --- comboot.doc | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'comboot.doc') diff --git a/comboot.doc b/comboot.doc index 5d1a9547..768bf3c3 100644 --- a/comboot.doc +++ b/comboot.doc @@ -439,7 +439,7 @@ AX=000Ch Perform final cleanup MAKE SURE TO DISABLE INTERRUPTS, AND INSTALL NEW GDT AND IDTS BEFORE OVERWRITING THESE MEMORY AREAS. - The permissible values for DX are as follows: + The permissible values for DX is an OR of these values: SYSLINUX: 0000h Normal cleanup @@ -450,3 +450,28 @@ AX=000Ch Perform final cleanup All other values are undefined, and may have different meanings in future versions of SYSLINUX. + + +AX=000Dh Cleanup and replace bootstrap code + Input: AX 000Ch + DX derivative-specific flags (see previous function) + EDI bootstrap code (linear address, can be in high memory) + ECX bootstrap code length in bytes (max + EBX(!) initial value of EDX after bootstrap + ESI initial value of ESI after bootstrap + DS initial value of DS after bootstrap + Output: None + + This routine performs final cleanup, then takes a piece of + code, copies it over the primary bootstrap at address 7C00h, + and jumps to it. This can be used to chainload boot sectors, + MBRs, bootstraps, etc. + + Normal boot sectors expect DL to contain the drive number, + and, for hard drives (DL >= 80h) DS:SI to contain a pointer to + the 16-byte partition table entry. The memory between + 600h-7FFh is available to put the partition table entry in. + + For PXELINUX, if the PXE stack is not unloaded, all registers + (except DS, ESI and EDX) and the stack will be set up as they + were set up by the PXE ROM. -- cgit v1.2.1