static char *
build_pci_path(char *buf, int max, const char *devname, struct pci_device *pci)
{
static char *
build_pci_path(char *buf, int max, const char *devname, struct pci_device *pci)
{
- build_pci_path(desc, sizeof(desc), "*", find_pci(bdf));
+ build_pci_path(desc, sizeof(desc), "*", pci);
// support only pci machine for now
return -1;
// Find ata drive - for example: /pci@i0cf8/ide@1,1/drive@1/disk@0
char desc[256], *p;
// support only pci machine for now
return -1;
// Find ata drive - for example: /pci@i0cf8/ide@1,1/drive@1/disk@0
char desc[256], *p;
- p = build_pci_path(desc, sizeof(desc), "*", find_pci(bdf));
+ p = build_pci_path(desc, sizeof(desc), "*", pci);
snprintf(p, desc+sizeof(desc)-p, "/drive@%x/disk@%x", chanid, slave);
return find_prio(desc);
}
snprintf(p, desc+sizeof(desc)-p, "/drive@%x/disk@%x", chanid, slave);
return find_prio(desc);
}
- p = build_pci_path(desc, sizeof(desc), "isa", find_pci(bdf));
+ p = build_pci_path(desc, sizeof(desc), "isa", pci);
snprintf(p, desc+sizeof(desc)-p, "/fdc@%04x/floppy@%x", port, fdid);
return find_prio(desc);
}
snprintf(p, desc+sizeof(desc)-p, "/fdc@%04x/floppy@%x", port, fdid);
return find_prio(desc);
}
- p = build_pci_path(desc, sizeof(desc), "*", find_pci(bdf));
+ p = build_pci_path(desc, sizeof(desc), "*", pci);
if (instance)
snprintf(p, desc+sizeof(desc)-p, ":rom%d", instance);
return find_prio(desc);
if (instance)
snprintf(p, desc+sizeof(desc)-p, ":rom%d", instance);
return find_prio(desc);
- p = build_pci_path(desc, sizeof(desc), "usb", find_pci(bdf));
+ p = build_pci_path(desc, sizeof(desc), "usb", pci);
- p += snprintf(p, desc+sizeof(desc)-p, "/hub@%x", port);
+ p += snprintf(p, desc+sizeof(desc)-p, "/hub@%x", port+1);
- snprintf(p, desc+sizeof(desc)-p, "/*@%x", (u32)(path & 0xff));
+ snprintf(p, desc+sizeof(desc)-p, "/*@%x", (u32)(path & 0xff)+1);
void
boot_add_bcv(u16 seg, u16 ip, u16 desc, int prio)
{
void
boot_add_bcv(u16 seg, u16 ip, u16 desc, int prio)
{
// If nothing added a floppy/hd boot - add it manually.
add_bev(IPL_TYPE_FLOPPY, 0);
add_bev(IPL_TYPE_HARDDISK, 0);
// If nothing added a floppy/hd boot - add it manually.
add_bev(IPL_TYPE_FLOPPY, 0);
add_bev(IPL_TYPE_HARDDISK, 0);