Can you try this patch to see if it helps on your HP systems? ? acpipci.diff ? acpitz.c.fix ? condref ? msg ? passive.diff ? tzdiff ? xdiff Index: dsdt.c =================================================================== RCS file: /cvs/src/sys/dev/acpi/dsdt.c,v retrieving revision 1.157 diff -u -p -u -p -b -r1.157 dsdt.c --- dsdt.c 5 Dec 2009 02:38:11 -0000 1.157 +++ dsdt.c 19 Jun 2010 03:10:08 -0000 @@ -699,6 +699,11 @@ aml_delchildren(struct aml_node *node)
aml_delchildren(onode); + if (onode->value && onode->value->refcnt > 1) { + printf("MULTI: %s\n", aml_nodename(onode)); + onode->value->node = NULL; + } + /* Decrease reference count */ aml_xdelref(&onode->value, ""); @@ -976,6 +981,9 @@ aml_copyvalue(struct aml_value *lhs, str break; case AML_OBJTYPE_OBJREF: lhs->v_objref = rhs->v_objref; + aml_xaddref(lhs->v_objref.ref, ""); + printf("copy objref: %x %s\n", lhs->v_objref.type, + aml_nodename(lhs->v_objref.ref->node)); break; default: printf("copyvalue: %x", rhs->type); @@ -3626,11 +3634,11 @@ aml_xparse(struct aml_scope *scope, int /* CondRef: rr => I */ ival = 0; if (opargs[0]->node != NULL) { - aml_freevalue(opargs[1]); - /* Create Object Reference */ - _aml_setvalue(opargs[1], AML_OBJTYPE_OBJREF, opcode, opargs[0]); - aml_xaddref(opargs[1], "CondRef"); + opargs[2] = aml_allocvalue(AML_OBJTYPE_OBJREF, opcode, + opargs[0]); + aml_xaddref(opargs[0], "CondRef"); + aml_xstore(scope, opargs[1], 0, opargs[2]); /* Mark that we found it */ ival = -1; > > > On 01/24/10 02:00, Zoran IvaniD wrote: >> On Fri, Jan 22, 2010 at 02:04:23PM +0100, Jan Stary wrote: >> <snip> >>> correctly (?) recognizes the SpeedStep frequencies: >>> >>> cpu0: Enhanced SpeedStep 2528 MHz: speeds: 2534, 2533, 1600, 800 MHz >>> >>> The kernel without ACPI does not: >>> >>> cpu0: unknown Enhanced SpeedStep CPU, msr 0x0617492506004925 >>> cpu0: using only highest and lowest power states >>> cpu0: Enhanced SpeedStep 2528 MHz: speeds: 19467, 1600 MHz >>> >> <snip> >>> mtrr: Pentium Pro MTRR support >>> "RICOH, Bay8Controller" (manufacturer 0x0, product 0x0) at pcmcia0 >>> function 0 not configured >>> copyvalue: efff0021Store to default type! efff0021 >>> >>> 5c12 Called: \\_SB_.PCI0.LPCB.EC0_.RPPC >>> local0: 0xd2c14d04 cnt:01 stk:60 integer: 2 >>> local1: 0xd2c1d3c4 cnt:01 stk:61 integer: 0 >>> local2: 0xd2c34384 cnt:02 stk:62 objref: 0xd2c20044 index:0 >>> opcode:CondRef >>> uvm_fault(0xd08ad720, 0xefffe000, 0, 1) -> d >>> kernel: page fault trap, code=0 >>> Stopped at aml_nodename+0x1b: pushl 0(%ebx) >>> ddb{0}> rebooting... >>> >>> >> >> Hi! >> >> This looks same as problem on my hp 6930p. According to Jordan it's some >> reference counting bug somewhere. This makes it boot... >> >> >> Index: dsdt.c >> =================================================================== >> RCS file: /cvs/src/sys/dev/acpi/dsdt.c,v >> retrieving revision 1.157 >> diff -u -p -r1.157 dsdt.c >> --- dsdt.c 5 Dec 2009 02:38:11 -0000 1.157 >> +++ dsdt.c 23 Jan 2010 23:49:46 -0000 >> @@ -3629,7 +3629,7 @@ aml_xparse(struct aml_scope *scope, int >> aml_freevalue(opargs[1]); >> >> /* Create Object Reference */ >> - _aml_setvalue(opargs[1], AML_OBJTYPE_OBJREF, opcode, >> opargs[0]); >> + _aml_setvalue(opargs[1], AML_OBJTYPE_INTEGER, >> 0xDEADBEEF, >> opargs[0]); >> aml_xaddref(opargs[1], "CondRef"); >> >> /* Mark that we found it */ >> >> > > Looks like the same problem I have on my hp 6730b. The diff makes it > boot, but if I plug or unplug the ac I get the panic below and the only > way to leave ddb is hard reboot. > > Disabled acpiec makes it boot too and I've not seen any crashes yet. > acpidump -o output in a tar is attached. > > > panic: config_detach: forced detach of bge0 failed (45) > Stopped at Debugger+0x5: leave > RUN AT LEAST 'trace' AND 'ps' AND INCLUDE OUTPUT WHEN REPORTING THIS > PANIC! > IF RUNNING SMP, USE 'mach ddbcpu <#>' AND 'trace' ON OTHER PROCESSORS, > TOO. > DO NOT EVEN BOTHER REPORTING THIS WITHOUT INCLUDING THAT INFORMATION! > ddb{1}> trace > Debugger() at Debugger+0x5 > panic() at panic+0x122 > config_detach() at config_detach+0x27f > config_detach_children() at config_detach_children+0x45 > pci_detach_devices() at pci_detach_devices+0x19 > ppb_hotplug_remove() at ppb_hotplug_remove+0x25 > workq_thread() at workq_thread+0x33 > end trace frame: 0x0, count: -7 > ddb{1}> ps > PID PPID PGRP UID S FLAGS WAIT COMMAND > 3471 1 3471 0 3 0x2040180 select sendmail > 2064 1 2064 0 3 0x2004082 ttyin getty > 18842 1 18842 0 3 0x2004082 ttyin getty > 15817 1 15817 0 3 0x2004082 ttyin getty > 27825 1 27825 0 3 0x2004082 ttyin getty > 19379 1 19379 0 3 0x2004082 ttyin getty > 6143 1 6143 0 3 0x2004082 ttyin getty > 12058 1 12058 0 3 0x2000080 select cron > 26732 1 26732 0 3 0x2000180 select inetd > 27189 1 27189 0 3 0x2000080 select sshd > 168 25640 25640 74 3 0x2000180 bpf pflogd > 25640 1 25640 0 3 0x2000080 netio pflogd > 4164 11186 11186 73 3 0x2000180 poll syslogd > 11186 1 11186 0 3 0x2000088 netio syslogd > 30145 1 30145 77 3 0x2000180 poll dhclient > 14937 1 5441 0 3 0x2000082 poll dhclient > 21 0 0 0 3 0x2100200 bored crypto > 20 0 0 0 3 0x2100200 aiodoned aiodoned > 19 0 0 0 3 0x2100200 syncer update > 18 0 0 0 3 0x2100200 cleaner cleaner > 17 0 0 0 3 0x100200 reaper reaper > 16 0 0 0 3 0x2100200 pgdaemon pagedaemon > 15 0 0 0 3 0x2100200 pftm pfpurge > 14 0 0 0 3 0x2100200 usbevt usb7 > 13 0 0 0 3 0x2100200 usbevt usb6 > 12 0 0 0 3 0x2100200 usbevt usb5 > 11 0 0 0 3 0x2100200 usbevt usb4 > 10 0 0 0 3 0x2100200 usbevt usb3 > 9 0 0 0 3 0x2100200 usbevt usb2 > 8 0 0 0 3 0x2100200 usbevt usb1 > 7 0 0 0 3 0x2100200 usbtsk usbtask > 6 0 0 0 3 0x2100200 usbevt usb0 > 5 0 0 0 7 0x2100200 acpi0 > 4 0 0 0 3 0x40100200 idle1 > * 3 0 0 0 7 0x2100200 syswq > 2 0 0 0 3 0x40100200 idle0 > 1 0 1 0 3 0x2004080 wait init > 0 -1 0 0 3 0x2080200 scheduler swapper > ddb{1}> boot reboot > bge0: PHY read timed out > bge0: PHY read timed out > bge0: PHY read timed out > bge0: PHY read timed out > bge0: PHY read timed out > bge0: PHY read timed out > bge0: PHY read timed out > bge0: PHY read timed out > bge0: PHY read timed out > bge0: PHY read timed out > bge0: PHY read timed out > bge0: PHY read timed out > bge0: PHY read timed out > bge0: PHY read timed out > bge0: PHY read timed out > bge0: PHY read timed out > bge0: PHY read timed out > bge0: PHY read timed out