[PATCH] [memdisk] Additional EDD Device Parameter Table fields

Shao Miller shao.miller at yrdsb.edu.on.ca
Thu Jul 30 22:39:56 PDT 2009


Some additional fields from the EDD-4 spec. draft for the Device
Parameter
Table have been added into the structure in setup.c and memdisk.inc.
These
were added in the hopes of resolving a FreeDOS MEMDISK bug on IBM
ThinkPads.
---
 memdisk/memdisk.inc |   11 +++++++++++
 memdisk/setup.c     |   10 ++++++++++
 2 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/memdisk/memdisk.inc b/memdisk/memdisk.inc
index 2699c34..b4d45c4 100644
--- a/memdisk/memdisk.inc
+++ b/memdisk/memdisk.inc
@@ -1008,6 +1008,17 @@ EDD_DPT:
 .totalsize	dd 0, 0			; Filled in by installer
 .bytespersec	dw SECTORSIZE
 .eddtable	dw -1, -1		; Invalid DPTE pointer
+.dpikey		dw 0			; Device Path Info magic
(not impl.)
+					; Would be 0beddh if implemented
+.dpilen		db 2ch			; DPI len
+.res1		db 0			; Reserved
+.res2		db 0			; Reserved
+.bustype	equ 'PCI '		; Host bus type (4 bytes, space
padded)
+.inttype	equ 'ATA     '		; Interface type (8 bytes, spc.
padded)
+.intpath	dd 0, 0			; Interface path
+.devpath	dd 0, 0, 0, 0		; Device path
+.res3		db 0			; Reserved
+.chksum		db 0			; DPI checksum (not
implemented)
=20
 %endif
=20
diff --git a/memdisk/setup.c b/memdisk/setup.c
index 98c4b69..b8efd8a 100644
--- a/memdisk/setup.c
+++ b/memdisk/setup.c
@@ -80,6 +80,16 @@ struct edd_dpt {
     uint64_t sectors;		/* Total sectors */
     uint16_t bytespersec;	/* Bytes/sector */
     uint16_t dpte_off, dpte_seg;	/* DPTE pointer */
+    uint16_t dpikey;		/* Device Path Info magic */
+    uint8_t  dpilen;		/* DPI length */
+    uint8_t  res1;		/* Reserved */
+    uint8_t  res2;		/* Reserved */
+    uint8_t  bustype[4];	/* Host bus type */
+    uint8_t  inttype[8];	/* Interface type */
+    uint64_t intpath;		/* Interface path */
+    uint64_t devpath[2];	/* Device path (double QuadWord!) */
+    uint8_t  res3;		/* Reserved */
+    uint8_t  chksum;		/* DPI checksum */
 };
=20
 struct patch_area {
--=20
1.5.6.3


------_=_NextPart_001_01CA11A5.1B50C173
Content-Type: application/octet-stream;
	name="0001--memdisk-Additional-EDD-Device-Parameter-Table-fiel.patch"
Content-Transfer-Encoding: base64
Content-Description: 0001--memdisk-Additional-EDD-Device-Parameter-Table-fiel.patch
Content-Disposition: attachment;
	filename="0001--memdisk-Additional-EDD-Device-Parameter-Table-fiel.patch"

RnJvbSAyNDU0YmIyYzI4NDc2ZTJjNzg2OGU5NjVmYWIxMTRlOGJlMzI2ZmEyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGFvIE1pbGxlciA8c2hhby5taWxsZXJAeXJkc2IuZWR1Lm9u
LmNhPgpEYXRlOiBGcmksIDMxIEp1bCAyMDA5IDAxOjM5OjU2IC0wNDAwClN1YmplY3Q6IFtQQVRD
SF0gW21lbWRpc2tdIEFkZGl0aW9uYWwgRUREIERldmljZSBQYXJhbWV0ZXIgVGFibGUgZmllbGRz
CgpTb21lIGFkZGl0aW9uYWwgZmllbGRzIGZyb20gdGhlIEVERC00IHNwZWMuIGRyYWZ0IGZvciB0
aGUgRGV2aWNlIFBhcmFtZXRlcgpUYWJsZSBoYXZlIGJlZW4gYWRkZWQgaW50byB0aGUgc3RydWN0
dXJlIGluIHNldHVwLmMgYW5kIG1lbWRpc2suaW5jLiAgVGhlc2UKd2VyZSBhZGRlZCBpbiB0aGUg
aG9wZXMgb2YgcmVzb2x2aW5nIGEgRnJlZURPUyBNRU1ESVNLIGJ1ZyBvbiBJQk0gVGhpbmtQYWRz
LgotLS0KIG1lbWRpc2svbWVtZGlzay5pbmMgfCAgIDExICsrKysrKysrKysrCiBtZW1kaXNrL3Nl
dHVwLmMgICAgIHwgICAxMCArKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlv
bnMoKyksIDAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbWVtZGlzay9tZW1kaXNrLmluYyBi
L21lbWRpc2svbWVtZGlzay5pbmMKaW5kZXggMjY5OWMzNC4uYjRkNDVjNCAxMDA2NDQKLS0tIGEv
bWVtZGlzay9tZW1kaXNrLmluYworKysgYi9tZW1kaXNrL21lbWRpc2suaW5jCkBAIC0xMDA4LDYg
KzEwMDgsMTcgQEAgRUREX0RQVDoKIC50b3RhbHNpemUJZGQgMCwgMAkJCTsgRmlsbGVkIGluIGJ5
IGluc3RhbGxlcgogLmJ5dGVzcGVyc2VjCWR3IFNFQ1RPUlNJWkUKIC5lZGR0YWJsZQlkdyAtMSwg
LTEJCTsgSW52YWxpZCBEUFRFIHBvaW50ZXIKKy5kcGlrZXkJCWR3IDAJCQk7IERldmljZSBQYXRo
IEluZm8gbWFnaWMgKG5vdCBpbXBsLikKKwkJCQkJOyBXb3VsZCBiZSAwYmVkZGggaWYgaW1wbGVt
ZW50ZWQKKy5kcGlsZW4JCWRiIDJjaAkJCTsgRFBJIGxlbgorLnJlczEJCWRiIDAJCQk7IFJlc2Vy
dmVkCisucmVzMgkJZGIgMAkJCTsgUmVzZXJ2ZWQKKy5idXN0eXBlCWVxdSAnUENJICcJCTsgSG9z
dCBidXMgdHlwZSAoNCBieXRlcywgc3BhY2UgcGFkZGVkKQorLmludHR5cGUJZXF1ICdBVEEgICAg
ICcJCTsgSW50ZXJmYWNlIHR5cGUgKDggYnl0ZXMsIHNwYy4gcGFkZGVkKQorLmludHBhdGgJZGQg
MCwgMAkJCTsgSW50ZXJmYWNlIHBhdGgKKy5kZXZwYXRoCWRkIDAsIDAsIDAsIDAJCTsgRGV2aWNl
IHBhdGgKKy5yZXMzCQlkYiAwCQkJOyBSZXNlcnZlZAorLmNoa3N1bQkJZGIgMAkJCTsgRFBJIGNo
ZWNrc3VtIChub3QgaW1wbGVtZW50ZWQpCiAKICVlbmRpZgogCmRpZmYgLS1naXQgYS9tZW1kaXNr
L3NldHVwLmMgYi9tZW1kaXNrL3NldHVwLmMKaW5kZXggOThjNGI2OS4uYjhlZmQ4YSAxMDA2NDQK
LS0tIGEvbWVtZGlzay9zZXR1cC5jCisrKyBiL21lbWRpc2svc2V0dXAuYwpAQCAtODAsNiArODAs
MTYgQEAgc3RydWN0IGVkZF9kcHQgewogICAgIHVpbnQ2NF90IHNlY3RvcnM7CQkvKiBUb3RhbCBz
ZWN0b3JzICovCiAgICAgdWludDE2X3QgYnl0ZXNwZXJzZWM7CS8qIEJ5dGVzL3NlY3RvciAqLwog
ICAgIHVpbnQxNl90IGRwdGVfb2ZmLCBkcHRlX3NlZzsJLyogRFBURSBwb2ludGVyICovCisgICAg
dWludDE2X3QgZHBpa2V5OwkJLyogRGV2aWNlIFBhdGggSW5mbyBtYWdpYyAqLworICAgIHVpbnQ4
X3QgIGRwaWxlbjsJCS8qIERQSSBsZW5ndGggKi8KKyAgICB1aW50OF90ICByZXMxOwkJLyogUmVz
ZXJ2ZWQgKi8KKyAgICB1aW50OF90ICByZXMyOwkJLyogUmVzZXJ2ZWQgKi8KKyAgICB1aW50OF90
ICBidXN0eXBlWzRdOwkvKiBIb3N0IGJ1cyB0eXBlICovCisgICAgdWludDhfdCAgaW50dHlwZVs4
XTsJLyogSW50ZXJmYWNlIHR5cGUgKi8KKyAgICB1aW50NjRfdCBpbnRwYXRoOwkJLyogSW50ZXJm
YWNlIHBhdGggKi8KKyAgICB1aW50NjRfdCBkZXZwYXRoWzJdOwkvKiBEZXZpY2UgcGF0aCAoZG91
YmxlIFF1YWRXb3JkISkgKi8KKyAgICB1aW50OF90ICByZXMzOwkJLyogUmVzZXJ2ZWQgKi8KKyAg
ICB1aW50OF90ICBjaGtzdW07CQkvKiBEUEkgY2hlY2tzdW0gKi8KIH07CiAKIHN0cnVjdCBwYXRj
aF9hcmVhIHsKLS0gCjEuNS42LjMKCg==

------_=_NextPart_001_01CA11A5.1B50C173--



More information about the Syslinux mailing list