diff options
| author | Michael Brown | 2012-09-04 02:26:48 +0200 |
|---|---|---|
| committer | Michael Brown | 2012-09-05 15:11:01 +0200 |
| commit | e6427b7ee117ea4af0812bb13b57999bccd8e058 (patch) | |
| tree | d92dd9b3ec03b78b77919dc5cd364b95d3cede4d /src/arch/i386/include | |
| parent | [ipoib] Expose Ethernet-compatible eIPoIB link-layer addresses and headers (diff) | |
| download | ipxe-e6427b7ee117ea4af0812bb13b57999bccd8e058.tar.gz ipxe-e6427b7ee117ea4af0812bb13b57999bccd8e058.tar.xz ipxe-e6427b7ee117ea4af0812bb13b57999bccd8e058.zip | |
[sdi] Add support for SDI images
Add support (disabled by default) for booting .sdi images as used by
Windows XP Embedded.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/arch/i386/include')
| -rw-r--r-- | src/arch/i386/include/sdi.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/arch/i386/include/sdi.h b/src/arch/i386/include/sdi.h new file mode 100644 index 000000000..fc486402d --- /dev/null +++ b/src/arch/i386/include/sdi.h @@ -0,0 +1,39 @@ +#ifndef _SDI_H +#define _SDI_H + +/** @file + * + * System Deployment Image (SDI) + * + */ + +FILE_LICENCE ( GPL2_OR_LATER ); + +/** SDI image header */ +struct sdi_header { + /** Signature */ + uint32_t magic; + /** Version (as an ASCII string) */ + uint32_t version; + /** Reserved */ + uint8_t reserved[8]; + /** Boot code offset */ + uint64_t boot_offset; + /** Boot code size */ + uint64_t boot_size; +} __attribute__ (( packed )); + +/** SDI image signature */ +#define SDI_MAGIC \ + ( ( '$' << 0 ) | ( 'S' << 8 ) | ( 'D' << 16 ) | ( 'I' << 24 ) ) + +/** SDI boot segment */ +#define SDI_BOOT_SEG 0x0000 + +/** SDI boot offset */ +#define SDI_BOOT_OFF 0x7c00 + +/** Constant to binary-OR with physical address of SDI image */ +#define SDI_WTF 0x41 + +#endif /* _SDI_H */ |
