From: Dr. Tom Blinn, 603-884-0646 [tpb@doctor.zk3.dec.com] Sent: Tuesday, July 13, 1999 4:20 PM To: jpfitz@fnal.gov Subject: Some more thoughts on your DEGPA driver problems.. My colleague says: ------- Forwarded Message FYI, here's the code in the configure routine that prints the message... /* * Allocate a controller structure. At config time, we allocate * only one controller struct. This allows the driver to becalled * at probe when the associated hardware unit is found. At probe, * another controller structure is created thereby allowinganother * unit to be probed. This has the effect that there'll always be * one more controller struct defined than devices you'll actually * have. */ if (alt_cfg_state == SUBSYSTEM_DYNAMICALLY_CONFIGURED) { /* * Subsytem is dynamically configured. We may create the * controller structure immediately, and, since we're * called pass the autoconfiguraiton point, we must call * the configure_driver interface to cause our new ctrlr's * probe routines to be called. */ if (alt_create_controller() != ESUCCESS) { printf("alt.mod: Cannot create controller structure\n"); return(EINVAL); } /* * Now configure the driver. */ i = configure_driver("alt", DRIVER_WILDNUM, "*", &altdriver); if (i != ESUCCESS) { printf("alt.mod: Cannot configure driver\n"); return(i); } } This code will only get executed for dynamically loaded drivers. You should never see this message from a kernel that has the 'pseudo-device' line in the conf file (since the cfg_state will be static).. The call to configure_driver will fail when the driver's probe routine fails. The if_alt.c driver will always print the reason for the failure. The call to configure_driver will also fail for reasons internal to configure_driver. These can be displayed by using the following /etc/sysconfigtab entry; cma_dd: hw_database_debug=1 This will dump alot of information to the console, but we're really only interested in the data that comes out after you attempt to dynamically load the driver. ------- End of Forwarded Message You can change the hw_database_debug attribute to 1 once you've booted the kernel (but before you try to load the alt driver) with this command: sysconfig -r cma_dd hw_database_debug=1 and then set it back to zero after you try to load the driver. This would provide a clue about why, on the one platform, the kernel seems unwilling to load the alt driver (since you didn't report any messages coming out of the alt driver itself, except the alt.mod: Cannot configure driver message). Adding the line pseudo-device alt at the end of the existing configuration file for that system and rebuilding the kernel SHOULD incorporate the "alt" driver into the kernel, and since it finds the hardware "dynamically" you shouldn't really need to do much else to get it working, if in fact all the software pieces got loaded correctly and the hardware is working. This *might* provide some more clues about what is going wrong. I'm going to also check into the DELAY() question, my colleague checked his 4100 system (which is a dual with 466MHz CPUs) and it definitely runs the realtime clock at the new "1200" value, if we've got a bug somewhere, it might be related, or it might not, I can't tell yet. Please let us know what progress (if any) you make, especially if you either can get any reason out of the hw_database_debug approach, or if manually adding the pseudo-device line gets the system to see the hardware. Tom Dr. Thomas P. Blinn + UNIX Software Group + Compaq Computer Corporation 110 Spit Brook Road, MS ZKO3-2/W17 Nashua, New Hampshire 03062-2698 Technology Partnership Engineering Phone: (603) 884-0646 Internet: tpb@zk3.dec.com Digital's Easynet: alpha::tpb ACM Member: tpblinn@acm.org PC@Home: tom@felines.mv.net Worry kills more people than work because more people worry than work. Keep your stick on the ice. -- Steve Smith ("Red Green") My favorite palindrome is: Satan, oscillate my metallic sonatas. -- Phil Agre, pagre@ucsd.edu Yesterday it worked / Today it is not working / UNIX is like that -- apologies to Margaret Segall Opinions expressed herein are my own, and do not necessarily represent those of my employer or anyone else, living or dead, real or imagined.