2.1.78 MCA fails boot w/ ESDI, initrd (RAM disk) & floppy

Brad Allen (ulmo@Q.Net)
09 Jan 1998 10:18:30 -0500


This message is readable without MIME too.

----Security_Multipart0(Fri_Jan__9_10:17:27_1998_179)--
Content-Type: Multipart/Mixed;
boundary="--Next_Part(Fri_Jan__9_10:17:27_1998_41)--"
Content-Transfer-Encoding: 7bit

----Next_Part(Fri_Jan__9_10:17:27_1998_41)--
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

I tried compiling 2.1.78 with MCA for my IBM PS/2 Model 55SX with ESDI
hard drive and Kingston KTM-DC16/85 memory expansion and disk drive
card. So far, I've had luck booting off of a downloaded MCA Slackware
boot disk, and setting up my ESDI hard drive from there. However,
I run into these difficulties:

* I have not yet been able to figure any way to access the Kingston
Winchester Hard Drive; the default settings (changeable via the
IBM Reference Disk) for this drive are IO Address 8020-803f,
BIOS PROM address D4000h, and Interrupt Level "Interrupt 15".
I suspect that it is the "Drive 1" being mentioned below.

The card itself has a lot of SMD chips with just numbers. There
is one big one, reading Kingston 1115012 HG62F43S16FL 9305,
but I somehow doubt those numbers are of great use.

* Errors when booting from a kernel installed with lilo-20 (typed):

PS/2 ESDI: integrated ESDI adapter found in slot 4
PS/2 ESDI: DMA arbitration level : 5
PS/2 ESDI: hard reset...
PS/2 ESDI: Attention error. interrupt status : 0F
PS/2 ESDI: status: 08
PS/2 ESDI: reset interrupt after 1547 jiffies, 15.47 secs
PS/2 ESDI: Drive 0
PS/2 ESDI: Device Configuration Status for drive 0
PS/2 ESDI: Spares/cyls: 2Config bits: Zero Defect, Skewed Format, Non-Removable, Retries
PS/2 ESDI: Number of RBA's: 59392
PS/2 ESDI: Physical number of cylinders: 933, Sectors/Track: 33, Heads: 2
PS/2 ESDI: Drive 1
PS/2 ESDI: Attention error. interrupt status: 2F
PS/2 ESDI: Device not available
PS/2 ESDI: ps2esdi_out_cmd timed out while sending command (status=00)
Partition check:
eda: eda1 eda2

Then the big problem starts: we have a few variations, since I've
tried to get past this problem, but each fails with some sort of
error:

VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 24k freed
Kernel panic: No init found. Try passing init= option to kernel.

-or- (with appropriate floppy reactions)

VFS: Insert root floppy and press ENTER
Kernel panic: VFS: Unable to mount root fs on 02:00

-or-

I've tried initrd as well, to no avail; it says it cannot find
a filesystem at address 0 or something like that.

I've tried all sane values of init=, both via lilo & the command line
(when booting with lilo). Furthermore, I've made sure there was
something in every possible default init position.

It's as if the filesystem portion of 2.1.78 is refusing to work.

Special note: The Linux 2.0.7 boot disk gets the following instead of
above, for drive 0 (which ends up working):

PS/2 ESDI: Attention error. interrupt status : EF

* I have not been able to access glycerine.itsmm.uni.edu, thus URL
ftp://glycerine.itsmm.uni.edu/pub/Patches/patch-2.0.29-mca-18Dec1997.gz
isn't working out for me; Archie turns up no other sources, either.
Can someone please point me at a mirror of ftp://glycerine.itsmm.uni.edu
or at least that one file? Thanks. Without it, I cannot test the
2.0.33 or 2.0.29 kernels to see if getting out of 2.1 works.

* Putting the MCA Slackware boot floppy's vmlinuz onto the primary HD works.
It doesn't have PPP (and I don't know about SMC Ethernet), so it isn't that
useful to me!

I've included my 2.1.78 .config in a MIME part.

P.S. I find this code segment in drivers/block/ps2esdi.c (line 390/1179)
distasteful; it ought to have a for/while loop, rather than repeating
some code; I offer an example below it.

__initfunc(static void ps2esdi_get_device_cfg(void))
{
u_short cmd_blk[TYPE_0_CMD_BLK_LENGTH];

/*BA */ printk("%s: Drive 0\n", DEVICE_NAME);
current_int_handler = ps2esdi_geometry_int_handler;
cmd_blk[0] = CMD_GET_DEV_CONFIG | 0x600;
cmd_blk[1] = 0;
no_int_yet = TRUE;
ps2esdi_out_cmd_blk(cmd_blk);
if (no_int_yet)
sleep_on(&ps2esdi_int);

if (ps2esdi_drives > 1) {
printk("%s: Drive 1\n", DEVICE_NAME); /*BA */
cmd_blk[0] = CMD_GET_DEV_CONFIG | (1 << 5) | 0x600;
cmd_blk[1] = 0;
no_int_yet = TRUE;
ps2esdi_out_cmd_blk(cmd_blk);
if (no_int_yet)
sleep_on(&ps2esdi_int);
} /* if second physical drive is present */
return;
}

My example:

__initfunc(static void ps2esdi_get_device_cfg(void))
{
u_short cmd_blk[TYPE_0_CMD_BLK_LENGTH];
u_int drive_num;

current_int_handler = ps2esdi_geometry_int_handler;
for(drive_num=0;drive_num<ps2esdi_drives;++drive_num) {
printk("%s: Drive %d\n", DEVICE_NAME,drive_num);
cmd_blk[0] = CMD_GET_DEV_CONFIG | (drive_num << 5) | 0x600;
cmd_blk[1] = 0;
no_int_yet = TRUE;
ps2esdi_out_cmd_blk(cmd_blk);
if (no_int_yet)
sleep_on(&ps2esdi_int);
}

return;
}

----Next_Part(Fri_Jan__9_10:17:27_1998_41)--
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

#
# Automatically generated by make menuconfig: don't edit
#

#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y

#
# Processor type and features
#
CONFIG_M386=y
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M686 is not set
CONFIG_MATH_EMULATION=y

#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODVERSIONS=y
CONFIG_KERNELD=y

#
# General setup
#
CONFIG_NET=y
# CONFIG_PCI is not set
CONFIG_MCA=y
CONFIG_SYSVIPC=y
CONFIG_SYSCTL=y
CONFIG_BINFMT_AOUT=y
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_MISC=y
# CONFIG_BINFMT_JAVA is not set
CONFIG_VIDEO_SELECT=y
CONFIG_PARPORT=m
CONFIG_PARPORT_PC=m

#
# Plug and Play support
#
# CONFIG_PNP is not set

#
# Floppy, IDE, and other block devices
#
CONFIG_BLK_DEV_FD=y
# CONFIG_BLK_DEV_IDE is not set
# CONFIG_BLK_DEV_HD_ONLY is not set
CONFIG_BLK_DEV_PS2=y
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_MD is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_INITRD=y
# CONFIG_BLK_DEV_XD is not set
CONFIG_PARIDE_PARPORT=m
# CONFIG_PARIDE is not set
# CONFIG_BLK_DEV_HD is not set

#
# Networking options
#
CONFIG_PACKET=y
CONFIG_NETLINK=y
CONFIG_RTNETLINK=y
# CONFIG_NETLINK_DEV is not set
# CONFIG_FIREWALL is not set
# CONFIG_NET_ALIAS is not set
# CONFIG_FILTER is not set
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
# CONFIG_IP_ADVANCED_ROUTER is not set
# CONFIG_IP_PNP is not set
# CONFIG_IP_ACCT is not set
# CONFIG_IP_MASQUERADE is not set
# CONFIG_IP_ROUTER is not set
CONFIG_NET_IPIP=m
CONFIG_NET_IPGRE=m
CONFIG_NET_IPGRE_BROADCAST=y
CONFIG_IP_MROUTE=y
# CONFIG_IP_PIMSM_V1 is not set
# CONFIG_IP_PIMSM_V2 is not set
CONFIG_IP_ALIAS=m
# CONFIG_ARPD is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_INET_RARP is not set
# CONFIG_IP_NOSR is not set
# CONFIG_SKB_LARGE is not set
CONFIG_IPV6=m
CONFIG_IPV6_EUI64=y
# CONFIG_IPV6_NO_PB is not set
CONFIG_IPX=m
# CONFIG_IPX_INTERN is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_BRIDGE is not set
# CONFIG_LLC is not set
# CONFIG_WAN_ROUTER is not set
CONFIG_CPU_IS_SLOW=y
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_CSZ=m
CONFIG_NET_SCH_HFQ=m
CONFIG_NET_SCH_RED=m
CONFIG_NET_SCH_SFQ=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_PFIFO=m
CONFIG_NET_SCH_PRIO=m

#
# SCSI support
#
# CONFIG_SCSI is not set

#
# Network device support
#
CONFIG_NETDEVICES=y
# CONFIG_ARCNET is not set
CONFIG_DUMMY=m
# CONFIG_EQUALIZER is not set
CONFIG_NET_ETHERNET=y
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_LANCE is not set
# CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_VENDOR_RACAL is not set
CONFIG_NET_ISA=y
# CONFIG_AT1700 is not set
# CONFIG_E2100 is not set
# CONFIG_DEPCA is not set
# CONFIG_EWRK3 is not set
# CONFIG_EEXPRESS is not set
# CONFIG_EEXPRESS_PRO is not set
# CONFIG_FMV18X is not set
# CONFIG_HPLAN_PLUS is not set
# CONFIG_HPLAN is not set
# CONFIG_HP100 is not set
# CONFIG_ETH16I is not set
# CONFIG_NE2000 is not set
# CONFIG_SEEQ8005 is not set
# CONFIG_SK_G16 is not set
CONFIG_NET_EISA=y
# CONFIG_PCNET32 is not set
# CONFIG_AC3200 is not set
# CONFIG_APRICOT is not set
# CONFIG_CS89x0 is not set
# CONFIG_DE4X5 is not set
# CONFIG_DEC_ELCP is not set
# CONFIG_DGRS is not set
# CONFIG_EEXPRESS_PRO100 is not set
# CONFIG_TLAN is not set
# CONFIG_ES3210 is not set
# CONFIG_ZNET is not set
# CONFIG_NET_POCKET is not set
# CONFIG_FDDI is not set
# CONFIG_DLCI is not set
CONFIG_PLIP=m
CONFIG_PPP=m
# CONFIG_SLIP is not set
# CONFIG_NET_RADIO is not set
# CONFIG_TR is not set
# CONFIG_SHAPER is not set

#
# Amateur Radio support
#
# CONFIG_HAMRADIO is not set

#
# ISDN subsystem
#
# CONFIG_ISDN is not set

#
# CD-ROM drivers (not for SCSI or IDE/ATAPI drives)
#
# CONFIG_CD_NO_IDESCSI is not set
# CONFIG_CDROM is not set

#
# Filesystems
#
# CONFIG_QUOTA is not set
CONFIG_MINIX_FS=m
CONFIG_EXT2_FS=y
CONFIG_ISO9660_FS=m
# CONFIG_JOLIET is not set
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
# CONFIG_UMSDOS_FS is not set
CONFIG_VFAT_FS=m
CONFIG_PROC_FS=y
CONFIG_NFS_FS=m
CONFIG_NFSD=m
CONFIG_SUNRPC=m
CONFIG_LOCKD=m
# CONFIG_CODA_FS is not set
# CONFIG_SMB_FS is not set
# CONFIG_NCP_FS is not set
CONFIG_HPFS_FS=m
# CONFIG_NTFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_AUTOFS_FS=m
# CONFIG_UFS_FS is not set
# CONFIG_MAC_PARTITION is not set
CONFIG_NLS=y

#
# Native Language Support
#
# CONFIG_NLS_CODEPAGE_437 is not set
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_1 is not set
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_KOI8_R is not set

#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_SERIAL=y
# CONFIG_SERIAL_CONSOLE is not set
# CONFIG_SERIAL_EXTENDED is not set
# CONFIG_SERIAL_NONSTANDARD is not set
CONFIG_PRINTER=m
# CONFIG_PRINTER_READBACK is not set
CONFIG_MOUSE=y
# CONFIG_ATIXL_BUSMOUSE is not set
# CONFIG_BUSMOUSE is not set
# CONFIG_MS_BUSMOUSE is not set
CONFIG_PSMOUSE=y
# CONFIG_82C710_MOUSE is not set
# CONFIG_PC110_PAD is not set
# CONFIG_UMISC is not set
# CONFIG_QIC02_TAPE is not set
# CONFIG_APM is not set
# CONFIG_WATCHDOG is not set
# CONFIG_RTC is not set
# CONFIG_VIDEO_DEV is not set
# CONFIG_VIDEO_BT848 is not set
# CONFIG_VIDEO_BWQCAM is not set
# CONFIG_VIDEO_PMS is not set
CONFIG_NVRAM=y
# CONFIG_JOYSTICK is not set
# CONFIG_MISC_RADIO is not set

#
# Ftape, the floppy tape device driver
#
# CONFIG_FTAPE is not set

#
# Sound
#
# CONFIG_SOUND is not set

#
# Kernel hacking
#
# CONFIG_PROFILE is not set
# CONFIG_MAGIC_SYSRQ is not set
CONFIG_VGA_CONSOLE=y

----Next_Part(Fri_Jan__9_10:17:27_1998_41)----

----Security_Multipart0(Fri_Jan__9_10:17:27_1998_179)--
Content-Type: Application/Pgp-Signature
Content-Transfer-Encoding: 7bit

-----BEGIN PGP MESSAGE-----
Version: 2.6.2

iQEVAwUANLY/jZxWhFYc6x9VAQGlbgf/dHRG0lKp65hm5NxWJmXoNQ5fyoFw7jIe
hsxuuZk5dYZPKk7uzjOUU9l8azCnGv6YxtSl4OZRG2rurpSCCAh1GYwI0sNsPENL
lmrtGXUFnPiNlmUwCI8Vwb/myGLUK3nOPA8Y54fXjGUlZxdBtChickFvoE5I4Ow6
0wNm1bHN+5cEhvjW07fRPFyptka4JkV9R310Jq24SMYCC7WCmxRfCzUmqiD7PtT4
l+k3bbMlyoGXv/UPfO8bk9Ms0e7z2VNLsAt/kRvEvZXXzJJW3Iche3ZRpISkayqJ
uOOMw+WTYT3247Bdut1Ws0Nrp/eQHzaxdQ6uzosxTYp6pRYhKoc0/A==
=XX2h
-----END PGP MESSAGE-----

----Security_Multipart0(Fri_Jan__9_10:17:27_1998_179)----