############################################################################################################
##
##  EFI ramdriver release notes
##
##

############################################################################################################
##
##  History:
##
##  0.1 - 03-06-03 initial version released to internal validation teams
##  1.0 - 03-25-03 changed name to unfloppy to avoid confusion with other intel tools
##        bump version to 1.0 to reflect first public release
##  1.1 - 04-01-03 changed name to ramdriver
##

############################################################################################################
##
##  Purpose:

Future SR870BN4 systems may not have an LS-240 drive.  This could prevent installation
of a third-party boot driver during Microsoft Windows OS installation.
This software is used to provide the boot driver image to the Microsoft Windows setup 
loader on EFI-based systems that do not have an IDE floppy device.

############################################################################################################
##
##  Usage:

The following materials are necessary to use the ramdriver:
 - this ramdriver EFI utility (ramdriver.efi)
 - OEM disk image with replacement Windows boot drivers
 - a means of providing the above materials to the EFI shell, such as a USB keyfob, USB floppy, or 
   an El-Torito formatted CD

Steps:
1 - Copy ramdriver.efi and the OS drivers  to the desired media (CD-ROM, USB floppy, etc.)
2 - Boot the system to EFI shell, do normal Windows installation preparation (format drive, configure RAID, etc.)
3 - Insert media containing ramdriver & drivers
4 - Load ramdriver, via the following command:
  
  fsX:\load ramdriver.efi

5 - Regenerate the EFI mapping table and look for the ramdriver block device and filesystem:

  Shell>map -r

  Device mapping table
    fs0  : VenMsg(06ED4DD0-FF78-11D3-BDC4-00A0C94053D1)               <--ramdriver FILESYSTEM
    fs1  : Acpi(PNP0A03,0)/Pci(1F|1)/Ata(Primary,Master)/CDROM(Entry0)
    blk0 : VenMsg(06ED4DD0-FF78-11D3-BDC4-00A0C94053D1)               <--ramdriver BLOCK DEVICE
    blk1 : Acpi(PNP0A03,0)/Pci(1F|1)/Ata(Primary,Master)
    blk2 : Acpi(PNP0A03,0)/Pci(1F|1)/Ata(Primary,Master)/CDROM(Entry0)
    blk3 : Acpi(PNP0A03,1)/Pci(1D|0)/Pci(1|1)/Scsi(Pun0,Lun0)

Note: If the block device is present but there is not a corresponding filesystem, run 
"mount blkX", where blkX is the ramdriver block device.  Regenerate the mapping table, and you should now see a filesystem for the ramdriver.

6 - Copy the OEM Windows driver files to the ramdriver:

  copy -r <source directory> <target filesystem>

7 - Remove media containing ramdriver & windows drivers
8 - Insert Windows installation media and execute setupldr.efi as normal.

Note: From here on no further user action is required.  Windows will silently pick up the supplementary 
drivers from the ramdriver.  You do NOT need to press "F6" to get windows to load the supplemental drivers.

############################################################################################################
## 
##  Additional Notes:

#########################
## Layout of txtsetup.oem

The txtsetup.oem file describes the layout of the driver files on the supplemental driver disk.  It includes 
a line that specifies a "default" device, this is for the case where a driver package contains multiple 
sub-packages (i.e. 32-bit, 64-bit).  In the traditional "F6" model the user is prompted to select from the 
available sub-packages, but in the ramdriver model the setup program will silently try to use the default package.
It is therefore imperative that the driver package specify the correct sub-package for your particular needs.

It is not possible to specifically describe the layout of txtsetup.oem since it will vary for each manufacturer.
A sample is given below that indicates what to look for and what to change:

  [Defaults]

  scsi = SCSIFOO_32             <-- this will cause a 64-bit machine to break, change to "SCSIFOO_64

  [scsi]

  SCSIFOO_32 = "Foo Corporation PCI SCSI Driver (XP 32-bit)",scsifoo
  SCSIFOO_64 = "Foo Corporation PCI SCSI Driver (XP 64-bit)",scsifoo


If you are unable to determine what changes to make please contact the adapter vendor for further assistance.


#################################
## disk image size limited to 3MB

Due to limitations within the Windows setup code, the ramdriver is limited in size to approximately 3MB.
If the driver package you wish to use exceeds this size then this procedure will fail.  You may try to locate
unnecessary files within the package (help files, drivers for other architectures) and remove them to lessen
the space requirements.  If you cannot obtain acceptable results in this manner then contact the adapter vendor
for further assistance.

############################################################################################################
##
##  Known Bugs:

No known bugs at this time
