Shao Miller
2009-Jul-31 05:39 UTC
[PATCH] [memdisk] Additional EDD Device Parameter Table fields
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--
Miller, Shao
2009-Jul-31 06:02 UTC
[syslinux] [PATCH] [memdisk] Additional EDD Device Parameter Table fields
>From 2454bb2c28476e2c7868e965fab114e8be326fa2 Mon Sep 17 00:00:00 2001From: Shao Miller <shao.miller at yrdsb.edu.on.ca> Date: Fri, 31 Jul 2009 01:39:56 -0400 Subject: [PATCH] [memdisk] Additional EDD Device Parameter Table fields 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) %endif 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 */ }; struct patch_area { -- 1.5.6.3 -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001--memdisk-Additional-EDD-Device-Parameter-Table-fiel.patch Type: application/octet-stream Size: 2131 bytes Desc: 0001--memdisk-Additional-EDD-Device-Parameter-Table-fiel.patch URL: <http://www.zytor.com/pipermail/syslinux/attachments/20090731/b80f4c77/attachment.obj>