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