Re: ACPI on Compaq 6715b - BIOS from the wrong end of the planet

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thomas Renninger wrote:
On Wed, 2008-04-30 at 11:23 +0100, Richard wrote:
Thomas Renninger wrote:
On Tue, 2008-04-29 at 16:36 -0700, H. Peter Anvin wrote:
Thomas Renninger wrote:
Thanks a Million..
noapictimer works perfectly ... BUT .. only on 64Bit. acpi_pm is not present on 32bit as a clocksource and it defaulted to jiffies. (tsc was marked as imreliable)

I am really surprised that this Sempron notebook actually had 64Bit CPU compatibility :D
This one helps for my Turion.
AFAIK, another Turion (very similar) does not need this, but I do not
know for sure.

Is the common denominator here the Turion (and if so, what model number), or is it the mainboard or BIOS? If the latter, it should be keyed on a DMI signature instead of the CPU.
noapictimer is needed on machines with C1E (when all cores issue C1, the
BIOS may decide to shut down more things, like the apic timer...).
Therefore the checking for C1E (in arch/x86/setup_64.c
amd_apic_timer_broken(..)). The check for C1E is done for K8 RevF, K10
and K11. I now expect it simply has been forgotten that K8 RevE CPUs
may also have C1E (maybe only mobile Turion and Semprons, could the
check below be enhanced to only check mobile CPUs?)?

This patch should also check for RevE with more than one core. It's
untested, but should compile. Does this one work for you Richard?


Also check for broken apic timer for RevE multi core machines

Signed-off-by: Thomas Renninger <trenn@xxxxxxx>

Index: linux-2.6/arch/x86/kernel/setup_64.c
===================================================================
--- linux-2.6.orig/arch/x86/kernel/setup_64.c
+++ linux-2.6/arch/x86/kernel/setup_64.c
@@ -686,7 +686,7 @@ static void __cpuinit early_init_amd_mc(
 #define CPUID_XFAM_10H		0x00100000
 #define CPUID_XFAM_11H		0x00200000
 #define CPUID_XMOD		0x000f0000
-#define CPUID_XMOD_REV_F	0x00040000
+#define CPUID_XMOD_REV_E	0x00020000
/* AMD systems with C1E don't have a working lAPIC timer. Check for that. */
 static __cpuinit int amd_apic_timer_broken(void)
@@ -695,7 +695,9 @@ static __cpuinit int amd_apic_timer_brok
switch (eax & CPUID_XFAM) {
 	case CPUID_XFAM_K8:
-		if ((eax & CPUID_XMOD) < CPUID_XMOD_REV_F)
+		if ((eax & CPUID_XMOD) < CPUID_XMOD_REV_E)
{                         printk("RevD or lower\n");
+			break;
}
+		if (num_online_cpus() < 2)
{                         printk("Only detected %d online CPUs\n",
                          num_online_cpus());
 			break;
}
 	case CPUID_XFAM_10H:
 	case CPUID_XFAM_11H:
Also something at the C1E check which should come here then, does it
match?
Maybe it really is a RevE and the second CPU is not brought up yet?
Hi there,

The results are in.. and the patch done nothing on my notebook. The symptoms are exactly the same as before. Kernel loads, INIT starts and then the machine shuts down a few seconds later. noapictimer still fixes it tho'

Googled this:
Sempron 3600+ (CN),256K,rev.F2,62W,SocketAM2    ALL  0107
So this Sempron probably is RevF already but the C1E check does not
work?
Hope you still have the kernel compiled flying around?
Could you add a lot printks at the place (some examples above) where it
is checked for broken apic timer.
Maybe you can also just return that it's broken to check whether setting
noapictimer variable at this place generally works for you...

Thanks,

    Thomas



PS: That i386 does not boot sounds related to:

Mobile AMD Sempron(tm) Processor 3500+ does not boot with i386 kernel
https://bugzilla.novell.com/show_bug.cgi?id=331960

If you don't mind you could post the timer things you found out there
and eventually we could have a look how to get the machine going with
i386, the reporter has handed over the machine to his girl friend,
therefore the bug got stuck...



Built and run.... only One CPU and no message about revision.. so I take that its an E or above revision.

32bit is a bit of a nightmare now :-) unless I can install a minimal kernel on a USB stick... I'll give that a bash.

Regards,
Richard

--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux