Bootable USB Mass Storage
Background
Universal Serial Bus (USB) is a standard for connecting system devices that meets the growing industry requirements for higher bus speeds and simplified connectivity between the motherboard and peripherals. It has taken several years for the PC industry to fully embrace USB, but now virtually all new PC's, from servers to notebooks, ship USB enabled. The embedded market has trailed the PC market in adopting USB, but that is changing as the embedded market is now embracing USB as one of the main bus standards.
Since USB has become a common serial bus, more and more manufactur-ers are producing devices/peripherals that support USB. The latest de-vices/peripherals to support USB is Mass Storage, these devices include among others:
- Floppy drives
- Iomega Zip drives
- SuperDisk (LS-120) drives
- CD-ROM drives
- Hard Drives
Why would storage devices support USB?
The initial driving factor that led removable mass storage devices to support USB was the arrival of the new thin line notebooks. These new thin line designs didn't have the space for an internal floppy drive, let alone other removable mass storage devices. Therefore, the first device to support the USB interface was the floppy drive with other removable mass storage devices quickly following suit.
Another factor driving the need for removable USB mass storage devices is system maintenance. Due to the easy accessibility of USB ports and the capacity of these devices, technicians can now quickly hook up these devices to a system and run the required diagnostics to get a system up and running.
Phoenix Support for USB Mass Storage
One of the problems with the introduction of a new class of devices is the standardization of how these devices are implemented, which directly translates to how they are supported. USB mass storage has not escaped this problem, but Phoenix has already taken steps to help the industry standardize these devices.
Working with the developers of USB, Phoenix has helped to author two industry specifications:
- The Mass Storage Device Class Specification - defines how devices such as external CD-ROMs, floppy drives and external removable drives can be supported in a hot-pluggable USB environment.
- The USB PC Legacy Compatibility Specification - defines how USB mouse and keyboard devices are supported at boot time. It also defines how the BIOS and USB-enabled operating systems like Windows' 98 coexist.
Phoenix USB firmware extensions enable OEMs to implement the bus architec-ture, host silicon, devices, and software required by USB. These firmware extensions configure USB keyboards, mice, hubs, and mass storage devices for system setup and option ROM-based configuration programs during POST. The extensions also provide USB mass storage boot support for system setup, configuration, and maintenance. The Phoenix USB firmware extensions include support for the following:
- USB mass storage devices
- USB HID-compliant keyboard and mouse
- Universal HCI and Open HCI
- USB mass storage, keyboard, and mouse hot-plugging
- User selectable boot ordering for all boot devices, MultiBoot
System Startup and Legacy Operating System Support
To address end-user needs for USB system startup and legacy operating system support, Phoenix has designed a non-SMI-based architecture that emulates mass storage, keyboard, and mice functions. The Phoenix USB firmware extensions support legacy USB devices under all operating systems, which includes support for USB mass storage, keyboards, mice, and hubs in non-USB enabled operat-ing systems. The Phoenix architecture for USB mass storage, shown below, provides new support for USB mass storage devices while maintaining compatibility with legacy mass storage devices.
The Phoenix USB firmware extensions include support for both of the USB protocols, Open HCI and Universal HCI, which control frame sequencing and command scheduling to devices like the USB floppy. The USB extensions also support the Host Controller Services module, which is responsible for runtime activities like re-enumeration of the bus when a new USB device is hot-plugged or removed. Finally, enhancements to the Mass Storage component have been made to provide support for USB mass storage device enumeration and autotyping and inclusion into the MultiBoot table. MultiBoot support provides users the ability to select which boot device to boot from at run-time and the ability to set the boot order of all boot devices.
Phoenix Technologies Ltd., 411 East Plumeria Drive, San Jose, CA 95134. Tel: 408-570-1000; Fax: 408-570-1001.