On Sun, Apr 13, 2008 at 11:18:31PM +0800, Bean wrote: > > /* OLPC / XO laptops have three kinds of storage devices: > > > > - NAND flash. These are accessible via OFW callbacks, but: > > - Follow strange semantics, imposed by hardware constraints. > > - Its ABI is undocumented, and not stable. > > They lack "device_type" property, which conveniently makes GRUB > > skip them. > > > > - USB drives. Not accessible, because OFW shuts down the > > controller > > in order to prevent collisions with applications accessing it > > directly. Even worse, attempts to access it will NOT return > > control to the caller, so we have to avoid probing them. > > > > - SD cards. These work fine. > > > > To avoid brekage, we only need to skip USB probing. However, > > since detecting SD cards is more reliable, we do that instead. > > */ > > > > grub_ieee1275_set_flag (GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY); > > } > > > > but your patch doesn't seem to disable the > > GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY > > hack. > > > > Also, I'm not sure how stable this will be. Perhaps it breaks in the > > future > > with firmware updates :-( > > nand access is different from normal disk, it uses pio-read to read a > page which is normally 2048 bytes. > > : pio-read ( adr len page# offset -- )
I see. As for the "strange semantics" I mentioned, IIRC they're applicable to write operations. It might turn out to produce funny effects when writing, but fortunately we don't do that too often :-) > as for GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY, perhaps we can rename it > GRUB_IEEE1275_FLAG_OLPC to indicate OLPC platform, we might need to > use it for other things. Using flags to describe specific problems has the advantage that if they're fixed in a more recent version of the firmware, we just need to check for that in grub_ieee1275_find_options() (the SmartFirmware check there is a nice example of how nasty it gets). -- Robert Millan <GPLv2> I know my rights; I want my phone call! <DRM> What use is a phone call… if you are unable to speak? (as seen on /.) _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel