From 76906786a0e17af1a10eecd50e86f1173d885712 Mon Sep 17 00:00:00 2001 From: Shao Miller Date: Fri, 31 Jul 2009 01:27:05 -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 | 9 +++++++++ 2 files changed, 20 insertions(+) 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..958f601 100644 --- a/memdisk/setup.c +++ b/memdisk/setup.c @@ -80,6 +80,15 @@ 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 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 { -- 2.7.4