[U-Boot] Updating ZFS for U-boot

Jorgen Lundman lundman at lundman.net
Thu Dec 7 08:59:26 UTC 2017


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
-- 
Jorgen Lundman       | <lundman at lundman.net>
Unix Administrator   | +81 (0)90-5578-8500
Shibuya-ku, Tokyo    | Japan



More information about the U-Boot mailing list