diff options
author | jakub <jakub> | 1999-10-12 13:11:42 +0000 |
---|---|---|
committer | jakub <jakub> | 1999-10-12 13:11:42 +0000 |
commit | 2133a9964040934e0aaaaf5b294a8a83e1a5a35d (patch) | |
tree | 7267ea1a80032262217195db550a5e2cd103e128 | |
parent | 1c5e4865148312383973d61b815eed693a672f2d (diff) | |
download | anaconda-2133a9964040934e0aaaaf5b294a8a83e1a5a35d.tar.gz anaconda-2133a9964040934e0aaaaf5b294a8a83e1a5a35d.tar.xz anaconda-2133a9964040934e0aaaaf5b294a8a83e1a5a35d.zip |
I was told v0 units really go through the sd-targets translation table.
Can anyone test this to make sure? It just means trying to install
on old sun4c with v0 PROM to disk with SCSI id 3.
-rw-r--r-- | isys/silo.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/isys/silo.c b/isys/silo.c index c6cc99d8e..14d1a8fb3 100644 --- a/isys/silo.c +++ b/isys/silo.c @@ -33,6 +33,7 @@ static int hasaliases; static char *promdev = "/dev/openprom"; static int promfd; +static char sd_targets[10] = "31204567"; static int p1275 = 0; static int prom_root_node, prom_current_node; static int promvers; @@ -290,8 +291,15 @@ scan_walk_callback(int node) { if (!prop) prop = ((struct openpromio *)buf)->oprom_array; sprintf (prop, "/%s@%x,%x", name, hd[disk].mid, hd[disk].lo); - } else - sprintf (prop, "sd(%d,%d,", v0ctrl, hd[disk].mid); + } else { + int i; + for (i = 0; sd_targets[i]; i++) + if (sd_targets[i] == '0' + hd[disk].mid) + break; + if (!sd_targets[i]) + i = hd[disk].mid; + sprintf (prop, "sd(%d,%d,", v0ctrl, i); + } break; case SDSK_TYPE_PLN: prop = ((struct openpromio *)buf)->oprom_array; @@ -552,6 +560,12 @@ static int get_prom_ver(void) } fclose(f); } + if (!ver) { + int len; + p = prom_getopt("sd-targets", &len); + if (p && len > 0 && len <= 8) + strcpy(sd_targets, p); + } return ver; } |