+ .probe = ide_blk_probe,
+};
+
+static int ide_probe(struct udevice *udev)
+{
+ struct udevice *blk_dev;
+ char name[20];
+ int blksz;
+ lbaint_t size;
+ int i;
+ int ret;
+
+ for (i = 0; i < CONFIG_SYS_IDE_MAXDEVICE; i++) {
+ if (ide_dev_desc[i].type != DEV_TYPE_UNKNOWN) {
+ sprintf(name, "blk#%d", i);
+
+ blksz = ide_dev_desc[i].blksz;
+ size = blksz * ide_dev_desc[i].lba;
+
+ /*
+ * With CDROM, if there is no CD inserted, blksz will
+ * be zero, don't bother to create IDE block device.
+ */
+ if (!blksz)
+ continue;
+ ret = blk_create_devicef(udev, "ide_blk", name,
+ IF_TYPE_IDE, i,
+ blksz, size, &blk_dev);
+ if (ret)
+ return ret;
+ }
+ }
+
+ return 0;
+}
+
+U_BOOT_DRIVER(ide) = {
+ .name = "ide",
+ .id = UCLASS_IDE,
+ .probe = ide_probe,
+};
+
+struct pci_device_id ide_supported[] = {
+ { PCI_DEVICE_CLASS(PCI_CLASS_STORAGE_IDE << 8, 0xffff00) },
+ { }
+};
+
+U_BOOT_PCI_DEVICE(ide, ide_supported);
+
+UCLASS_DRIVER(ide) = {
+ .name = "ide",
+ .id = UCLASS_IDE,