From owner-freebsd-mobile Wed Jul 17 09:36:17 1996 Return-Path: owner-mobile Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id JAA02152 for mobile-outgoing; Wed, 17 Jul 1996 09:36:17 -0700 (PDT) Received: from rocky.mt.sri.com (rocky.mt.sri.com [206.127.76.100]) by freefall.freebsd.org (8.7.5/8.7.3) with ESMTP id JAA02145; Wed, 17 Jul 1996 09:36:12 -0700 (PDT) Received: (from nate@localhost) by rocky.mt.sri.com (8.7.5/8.7.3) id KAA00491; Wed, 17 Jul 1996 10:35:51 -0600 (MDT) Date: Wed, 17 Jul 1996 10:35:51 -0600 (MDT) Message-Id: <199607171635.KAA00491@rocky.mt.sri.com> From: Nate Williams To: dave edmondson Cc: Nate Williams , mobile@freebsd.org, bde@freebsd.org, davidg@freebsd.org Subject: re: Possible fix for APM_DSVALUE_BUG In-Reply-To: <199607171527.QAA00438@zero-gravity.netlab.london.sco.com> References: <199607161832.MAA25236@rocky.mt.sri.com> <199607171527.QAA00438@zero-gravity.netlab.london.sco.com> Sender: owner-mobile@freebsd.org X-Loop: FreeBSD.org Precedence: bulk dave edmondson writes: > nate, thanks for the fix. things have improved (in some respects). > > with this latest fix my tp760 will now boot, apm 1.1 is detected and > apm mostly works (*). > * - there are some error messages when i resume after suspend, which > i'm looking into, but they don't seem to be related to the above > problem. Try doing this without any cards installed. It appears that the generic PCCARD suspend/resume code doesn't always work right. I want to get to it next, but I wanted to get the APM code working on everything first. > unfortunately, the ep driver doesn't work with > my 3c589 any more. with the `standard' pccard.conf card configuration > fails. setting the interrupt to 10 (or various other values) in > pccard.conf solves this, and the card is recognised and configuration > proceeds. Do you have IRQ 3 available in /etc/pccard.conf? If so, remove it since it's probably being used by the PCIC controller. Also, if you have a built-in sound-card then remove IRQ 5 as well. > during configuration, a single page of kernel text gets > filled with zero's. this happens during the call to dev_attach() from > ep_isa_registerdev() from ep_pccard_init() from allocate_driver(). Just for grins, comment out the call to ep_isa_registerdev() and see if that does anything. The function isn't essential to the working of the driver and used for statistics. > the page that gets zero'd is always the same - that surrounding the > kdc_npx structure in i386/isa/npx.c. the instruction that causes it > to happen is a movl which corresponds to: > kdc->kdc_next->kdc_rlink = &kdc->kdc_next > in dev_attach(). i guess it's always the same page because npx is > always first on my dc_list. Hmm.... *Shot in the dark* In the patch I sent out, I had some code that rounded it down to the correct page that was ifdef'd out with 'unsure_if_needed' or somesuch. Try enabling that code and disabling the code below and see if helps. Also, does using the option APM_DSVALUE_BUG work on your box at all? > stopping the kernel (using the debugger) before the offending > instruction and writing to the same location myself doesn't cause the > same behaviour. i presume that something is messing up the page > descriptor for this page and the vm system is demand filling it with > zero's (will it do that whilst i'm single stepping in the debugger ?). Bruce would be able to answer that better. > this page being zero filled causes a panic on the next exec, because > npxinit() gets called (and now starts with addb %al, 0(%eax) where > %eax has some completely useless value (0x8zzzzzzz something). > > at this point i'm stumped - vm stuff always does have me banging my > head. > > as an aside, my usrobotics xj2288 modem works just fine ! Great! Let me know if any of the above suggestions work. Nate