A fellow colleague posted a message on the same topic (see http://lists.freebsd.org/pipermail/freebsd-current/2004-March/023045.html), and I have spent some time investigating the same problem. In response to the original post, yes the machine boots fine with acpi enabled. I have traced the hang to one particular function : isa_probe_children. In this function it attempts a bus probe, then attempts to retrieve a pointer array to all the device's children. The children's device names (when booting with no acpi) are shown below: Note the names are retrieved using this function device_get_nameunit(child) isa_probe_children = 0 orm0 isa_probe_children = 1 pmtimer0 isa_probe_children = 2 adv0 ..... isa_probe_children = 24 vt0 and isa_probe_children = 25 (null) ... isa_probe_children = 42 (null) When acpi IS enabled, 25-42 disappear. The function continues through the first 2 for loops and goes to the for loop under this line printf("isa_probe_children: probing PnP devices\n"); Now devices 0-25 satisfy the following condition if (!TAILQ_FIRST(&idev->id_configs)) continue; and the rest of the devices try have resources assigned to them. This is where the problem occurs, in that the pointers and requested resources by the children are all incorrect (ie negative memory requests). Thus the allocate memory function loops forever. A quick "hackish" work around was to skip over the devices that requested to have resources assigned to them. Now my question is, how and where do these devices (specifically on isa0) get their children populated from? I cant seem to find that section of code. Moving forward, I would imagine there is a bug in that code which is incorrectly populating the isa0 device struct, and thus causing the hang. The machine itself is a SuperMicro X5DP8 with dual Xeon 2800s with a total of 4GB of memory. We have some other supermicro motherboards (such as X5DPR-8G2) which do not have the same problem. ThanksReceived on Mon Jul 05 2004 - 19:33:05 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:00 UTC