Lines 337-351
Link Here
|
337 |
|
337 |
|
338 |
ide_ofpath() |
338 |
ide_ofpath() |
339 |
{ |
339 |
{ |
340 |
if [ ! -L "/proc/ide/$DEVNODE" ] ; then |
340 |
if [ ! -L "/proc/ide/$DEVNODE" ] && [ ! -e "/sys/block/$DEVNODE" ] ; then |
341 |
echo 1>&2 "$PRG: /dev/$DEVNODE: Device not configured" |
341 |
echo 1>&2 "$PRG: /dev/$DEVNODE: Device not configured" |
342 |
return 1 |
342 |
return 1 |
343 |
fi |
343 |
fi |
344 |
|
344 |
|
345 |
local IDEBUS="$(v=`readlink /proc/ide/$DEVNODE` ; echo ${v%%/*} )" |
345 |
if [ -L "/proc/ide/$DEVNODE" ] ; then |
346 |
if [ -z "$IDEBUS" ] ; then |
346 |
local USE_OLD_PROC=1 |
347 |
echo 1>&2 "$PRG: BUG: IDEBUS == NULL" |
347 |
local IDEBUS="$(v=`readlink /proc/ide/$DEVNODE` ; echo ${v%%/*} )" |
348 |
return 1 |
348 |
if [ -z "$IDEBUS" ] ; then |
|
|
349 |
echo 1>&2 "$PRG: BUG: IDEBUS == NULL" |
350 |
return 1 |
351 |
fi |
349 |
fi |
352 |
fi |
350 |
|
353 |
|
351 |
case "$(uname -r)" in |
354 |
case "$(uname -r)" in |
Lines 363-369
Link Here
|
363 |
echo 1>&2 "$PRG: Unable to determine sysfs mountpoint" |
366 |
echo 1>&2 "$PRG: Unable to determine sysfs mountpoint" |
364 |
return 1 |
367 |
return 1 |
365 |
fi |
368 |
fi |
366 |
local OF1275IDE="${SYS}/block/${DEVNODE}/device/../../devspec" |
369 |
local OF1275IDE=$(cd -P "${SYS}/block/${DEVNODE}/device" && pwd) |
|
|
370 |
OF1275IDE="${OF1275IDE}/../../devspec" |
367 |
;; |
371 |
;; |
368 |
*) |
372 |
*) |
369 |
local OF1275IDE="/proc/ide/$IDEBUS/devspec" |
373 |
local OF1275IDE="/proc/ide/$IDEBUS/devspec" |
Lines 402-435
Link Here
|
402 |
return 1 |
406 |
return 1 |
403 |
fi |
407 |
fi |
404 |
|
408 |
|
405 |
if [ ! -f "/proc/ide/${IDEBUS}/channel" ] ; then |
409 |
|
406 |
echo 1>&2 "$PRG: KERNEL BUG: /proc/ide/${IDEBUS}/channel does not exist" |
410 |
if [ "${USE_OLD_PROC}" = "1" ] ; then |
407 |
return 1 |
411 |
if [ ! -f "/proc/ide/${IDEBUS}/channel" ] ; then |
408 |
fi |
412 |
echo 1>&2 "$PRG: KERNEL BUG: /proc/ide/${IDEBUS}/channel does not exist" |
409 |
|
413 |
return 1 |
410 |
case "$(cat /proc/device-tree${DEVSPEC}/device_type 2> /dev/null)" in |
414 |
fi |
411 |
ide|ata) |
|
|
412 |
local MASTER="/disk@0" |
413 |
local SLAVE="/disk@1" |
414 |
;; |
415 |
pci-ide|pci-ata) |
416 |
local MASTER="/@$(cat /proc/ide/${IDEBUS}/channel)/disk@0" |
417 |
local SLAVE="/@$(cat /proc/ide/${IDEBUS}/channel)/disk@1" |
418 |
;; |
419 |
scsi) ## some lame controllers pretend they are scsi, hopefully all kludges are created equal. |
420 |
local MASTER="/@$(($(cat /proc/ide/${IDEBUS}/channel) * 2 + 0))" |
421 |
local SLAVE="/@$(($(cat /proc/ide/${IDEBUS}/channel) * 2 + 1))" |
422 |
;; |
423 |
spi) |
424 |
local MASTER="/disk@$(cat /proc/ide/${IDEBUS}/channel),0" |
425 |
local SLAVE="/disk@$(cat /proc/ide/${IDEBUS}/channel),1" |
426 |
;; |
427 |
*) |
428 |
echo 1>&2 "$PRG: Unsupported IDE device type: \"$(cat /proc/device-tree${DEVSPEC}/device_type 2> /dev/null)\"" |
429 |
return 1 |
430 |
;; |
431 |
esac |
432 |
|
415 |
|
|
|
416 |
case "$(cat /proc/device-tree${DEVSPEC}/device_type 2> /dev/null)" in |
417 |
ide|ata) |
418 |
local MASTER="/disk@0" |
419 |
local SLAVE="/disk@1" |
420 |
;; |
421 |
pci-ide|pci-ata) |
422 |
local MASTER="/@$(cat /proc/ide/${IDEBUS}/channel)/disk@0" |
423 |
local SLAVE="/@$(cat /proc/ide/${IDEBUS}/channel)/disk@1" |
424 |
;; |
425 |
scsi) ## some lame controllers pretend they are scsi, hopefully all kludges are created equal. |
426 |
local MASTER="/@$(($(cat /proc/ide/${IDEBUS}/channel) * 2 + 0))" |
427 |
local SLAVE="/@$(($(cat /proc/ide/${IDEBUS}/channel) * 2 + 1))" |
428 |
;; |
429 |
spi) |
430 |
local MASTER="/disk@$(cat /proc/ide/${IDEBUS}/channel),0" |
431 |
local SLAVE="/disk@$(cat /proc/ide/${IDEBUS}/channel),1" |
432 |
;; |
433 |
*) |
434 |
echo 1>&2 "$PRG: Unsupported IDE device type: \"$(cat /proc/device-tree${DEVSPEC}/device_type 2> /dev/null)\"" |
435 |
return 1 |
436 |
;; |
437 |
esac |
438 |
else |
439 |
### I don't know what other disks would look like... FIXME |
440 |
local MASTER="/disk@0" |
441 |
local SLAVE="/disk@1" |
442 |
fi |
443 |
|
433 |
case "$DEVNODE" in |
444 |
case "$DEVNODE" in |
434 |
hda|hdc|hde|hdg|hdi|hdk|hdm|hdo) |
445 |
hda|hdc|hde|hdg|hdi|hdk|hdm|hdo) |
435 |
echo "${DEVSPEC}${MASTER}:$PARTITION" |
446 |
echo "${DEVSPEC}${MASTER}:$PARTITION" |