summaryrefslogtreecommitdiffstats
path: root/src/arch/i386/include
diff options
context:
space:
mode:
authorMichael Brown2012-09-04 02:26:48 +0200
committerMichael Brown2012-09-05 15:11:01 +0200
commite6427b7ee117ea4af0812bb13b57999bccd8e058 (patch)
treed92dd9b3ec03b78b77919dc5cd364b95d3cede4d /src/arch/i386/include
parent[ipoib] Expose Ethernet-compatible eIPoIB link-layer addresses and headers (diff)
downloadipxe-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.h39
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 */