
Hello list,
The ZFS support in U-boot is in need of updating, so I have done so now. Which enables support for feature pools, LZ4 and raidz.
One thing that raidz support does, is iterate all the devices looking for the other devices needed to read the raid set. Currently I put in the code:
debug("Iterating for devices\n"); for ( uclass_first_device(UCLASS_BLK, &dev); dev; uclass_next_device(&dev) ) { struct blk_desc *desc = dev_get_uclass_platdata(dev);
debug(" testing device %d: type 0x%x vendor '%s' product '%s'\n", desc->devnum, desc->if_type, desc->vendor, desc->product);
if (part_get_info_whole_disk(desc, &info) == 0) {
debug(" testing whole disk: %p\n", desc->bdev->ops->read); dev.part_info = &info; err = scan_disk(&dev, data, 0, &inserted);
But to my surprise, fs_devread() of any device other than the one given on command line, will fail. Most likely because blk_dread() ops->read is NULL? Maybe?
Am I using the API wrong, or do I simply need to call a probe function first?
Thanks,
Lund