On Fri, 7 May 2010 13:21:39 -0700 Ben Niccum <be...@bendtel.com> wrote:

> > Also, is there a setting for USB mode in the BIOS?
> > 
> > Sometimes listed as USB Drive emulation, or similar.
> 
> There is a USB Emulation mode. If I turn USB Emulation off, then all
> the problems of the USB drives freezing the system go away, but it
> still leaves me with the first issue of the bootable device. Without
> USB emulation on, it actually won't boot from any USB devices.

It often depends on the *type* of emulation, and sometimes the USB
Emulation/Mode setting must be used in conjunction with specific boot
device settings.

Depending on vendor, the USB Emulation Mode can be set to silly names
like "Auto" or "Removable" or "HDD" or "FDD" or "Floppy" or whatever.
With some systems, when set to "Auto" USB flash drives that are less
than 530 MB in size are automatically emulated as floppy disk drives,
while USB flash drives larger than 530 MB in size will be treated like
hard disk drives. Needless to say, the "530 MB" cut-off can vary
depending on vendor/chipset/whatever, but however it's done, it can
cause a whole lot of headaches.

Your emulation mode seems to be stuck on "Auto" without any way to
change it that I've found.

In your case, the "USB Emulation" mentioned in your BIOS settings is
basically *misnamed* since this setting actually defines "Legacy Mode"
for all attached USB devices. It seems VIA defines "legacy mode" as
supporting legacy (read: ancient) USB keyboard, mouse and storage
devices under DOS, but what they actually mean by this statement is a
bit vague. Typically when support for Legacy Mode is "On" you can
support ancient USB devices that barf when used with newer modes, but
in doing so, you can be causing problems for newer (USB v1.1 and above)
devices, such as the newer bootable USB sticks you're probably trying
to use. ;)

Unless you have a damn good reason to force *ALL* USB devices to use
legacy mode, you should probably have this turned "Off" --If you're
using an ancient keyboard or mouse that *requires* legacy mode to work
properly, then try use the "KB/MS" setting.

Some systems and some USB devices refuse to be bootable or refuse to be
treated as "disks" when used in the ancient "Legacy Mode" since booting
to USB, and even USB storage itself, were invented long after USB was
first created. --My comprehension of early/ancient USB devices kinda
sucks because they were first released, I did everything I possibly
could to avoid them... To this day there are still unresolved problems
when using USB keyboards with debuggers.

As for the obvious question of, "WTF Is Legacy Mode?" sadly, there is
no single universal answer since it varies depending on chipset,
implementation and vendor whims. The closest thing to an answer you'll
find is, "Legacy Mode forces modern USB to work with ancient USB
devices," but the details of "how?" are a mystery. It might be
crippling the EHCI logic core (or "chip), or it may be disabling some
unknown portion of EHCI, or it may be forcing the UHCI logic core
(chip) to behave in certain ways, or any combination thereof.

Considering where you put the "It Dies Here" note in your posted dmesg
(thanks) and your subsequent successful boots with "USB Emulation" set
to "Off", it seems Legacy Mode is at least part of your problem, if not
the entire problem.

On Fri, 7 May 2010 13:57:32 -0700 Ben Niccum <be...@bendtel.com> wrote:
> On Fri, 7 May 2010 22:06:57 +0200
> Tobias Ulmer <tobi...@tmux.org> wrote:
>  
> > Try setting "Plug and play OS" in the BIOS to yes.
> 
> I was unable to find such a setting in the BIOS.

You obviously did not even bother to check...   RTFM!
(And I wonder why I bothered when you didn't?)

See page #51 of the VB7001 User Manual ("PNP" == "Plug and Play")
http://www.via.com.tw/servlet/downloadSvl?id=490&download_file_id=3693

If the manual is showing the default state ("No"), then it's wrong. You
should set it to "Yes" and you should also enable "Reset Configuration
Data" if you change hardware around.

Keep in mind there are two places in the system BIOS settings where you
control boot device selection. The first handles the typical stuff,
namely specific types of devices, specific devices, or specific sets of
devices. The second is where you define the priority of "sets" of
devices such as all the "hard drive" devices (including "USB-HDD" ==
"USB Hard Disk Drive" == your USB stick). 

With the BIOS on some x86 systems, you need to have the USB storage
device attached when you power up the system and change the BIOS
settings or else the options for booting to USB are either disabled, or
worse, not even visible in the BIOS. There are even some systems out
there that have absolutely no mention of being able to boot to USB
devices, but can still boot to them if you select the correct, but
painfully vague, setting typically named something like "Removable" or
similar. --In your case, you need to make sure to have USB-HDD0 through
whatever (USB-HDD3?) in your "Hard Disk" set.

Similar to the above, you may need to set "Reset Configuration Data" to
"Enabled" so the ESCD (Extended System Configuration Data) is reset and
the USB stick is "seen" by the system, otherwise, the system might not
be aware there is a USB stick attached.

Once you've got all of your BIOS settings correct, the system should
boot USB sticks without any further problems... --except if your USB
device is a piece of junk which is unfortunately *VERY* common. 


There are other issues you can hit, but they're typically found with
hardware older than your VIA VB7001.

Depending on *how* the vendor implemented USB, on some systems you need
to be careful about which physical USB port on the system you use. This
"different ports for different speeds" cluster muck is typically only
found in much older systems, but the trouble is, you just never know
how a particular vendor decided to cut particular corners to save money
and still claim to have support for "USB 2.0" --Similar is true for USB
device vendors (e.g. selling crappy USB 1.0 devices with BS marketing
claims of being "USB 2.0 Compatible" rather than "USB 2.0 Compliant").

If you have a USB 2.0 device and it does not attach to your EHCI, then
either the device is lying to you, or your system is lying to you about
it's capacities, or your system has an old/poor design and you need to
try a different physical USB port.


        jcr

-- 
The OpenBSD Journal - http://www.undeadly.org

Reply via email to