Unfortunately it seems Asus neglected to implement any firmware drivers for the integrated flash card reader on my U56E model laptop. A Sandybridge dual-core i5 drives my U56E’s HM65 Express based board and I’m running Asus’s latest 1/2012 U56E revision 213 to AMI’s Aptio UEFI 2.0 BIOS as found here.
Aside from allowing me to “Lock/UnLock” access to the card reader in Aptio’s Security tab, the firmware offers no other interface to the device and does not recognize any inserted media as a boot option. In fact, all pre-OS attempts to access it have failed when tried with reFind, CloverEFI, TianoCore UEFI Shell v1, and PLoP. The same SD card that will boot from BIOS in an older Nforce2 based laptop without issue will go unacknowledged in my U56E. Post kernel (Linux or Windows) the card reader is a perfectly behaved device and mounts, reads, and writes as expected.
My user manual tells me that the reader is “faster than most … because it utilizes the internal high-bandwidth PCI bus.” But lsusb tells me my Alcor card reader is sitting on the same USB bus as my integrated Alcor webcam.
1 2 3 4 5
# lsusb Bus 002 Device 004: ID 058f:6366 Alcor Micro Corp. Multi Flash Reader Bus 002 Device 003: ID 058f:a014 Alcor Micro Corp. Asus Integrated Webcam Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
When I asked Asus how I could boot from an SD card in the reader they told me I couldn't. I was resigned almost to accept it when I stumbled upon this website and began to hope a little. Is this the kind of functionality that can be achieved by means of a RAID/AHCI/SATA ROM upgrade? I've browsed for hours but have yet to find mention of it one way or another.
If it is not, can boot from firmware direct to built-in SD card be achieved another way? Is there another type of oprom that could help?
P.S. Though it has inexplicably rendered the output as some kind of bytecode, if they're any use you can find the results of the following UEFI Shell commands here.
Now to your questions: I haven’t yet seen any PCI ROM module for any flash card reader. So I doubt, that there is any “OPROM” module for the card reader within the BIOS of your notebook. Since neither the flash card reader itself nor the related Firmware has been produced and will be supported by ASUS, I recommend to ask the manufacturer (Alcor?) of the card reader chip for a solution of your problem.
Well… Ok. My suspicion is that most of the necessary drivers are actually already there. For instance, I have no difficulty booting from a USB thumb drive, and, from what I can gather, Alcor is the name of the company from whom pretty much everyone licenses USB-based flash reading technology because they have some patents on the concept. So if I can somehow map the drivers that are already working for my USB thumbdrive to the PCI registers for the card reader’s USB hub I might be in luck. It’s just, well, I don’t really know how…
If you want to get the card reader bootable, you will not only nead a card reader Firmware, which is capable to support this feature, but additionally a customization of the system BIOS module. Otherweise you will not be able to select the card reader as first bootable device from within the BIOS BOOT section.
I understand that. A little more research and I think I’m developing a plan, though it probably won’t work. I have some questions for you if you’ll humor me.
Ok, so my BIOS image is 2.6mbs uncompressed, but I believe my BIOS flash chip should be 4mbs. Some googling has shown me that this seems at least to be the case for Lenovo and Sony laptops as well. How come? There must be a limiting factor I don’t understand that would compel different manufacturers to constrain themselves to the same apparently unnecessarily small 2.6mb firmware image.
Oh, and also, how I can be sure of the 4mb size? Is there some check I can do?