NetBSD-Bugs archive

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

Re: port-i386/52266: Double fault early in boot with Transmeta Crusoe CPU



Kimihiro Nonaka wrote:

> Could you send a dmesg and a result of cpuctl identify 0 with old kernel?

I get the same problem on my Soekris net4801 with the following cpu:

	cpu0: highest basic info 00000002
	cpu0: highest extended info 80000005
	cpu0: "Geode(TM) Integrated Processor by National Semi"
	cpu0: National Semiconductor Geode GX1 (586-class)
	cpu0: family 0x5 model 0x4 stepping 0 (id 0x540)
	cpu0: features 0x808131<FPU,TSC,MSR,CX8,CMOV,MMX>
	cpu0: ITLB 1 4KB entries 112-way
	cpu0: Initial APIC ID 0

If I change lapic_is_x2apic() to unconditionally return false, my
Soekris boots (at least to single user mode).

I tried to get lapic_is_x2apic() to store the value of the MSR it
reads by changing that function to:

	uint64_t x2apic_msr;

	bool
	lapic_is_x2apic(void)
	{
		x2apic_msr = rdmsr(MSR_APICBASE);
		return false;
	}

but that just faulted/paniced too, but slightly differently:

	> boot net8 -s
	17730720+696076+839124 [776736+802655]=0x13e1cbc
	fatal protection faufatal double fault in supervisor mode
	trap type 13 code 0xc0118298 eip 0x8 cs 0x246 eflags 0xc054bbf6 cr2 0 ilevel 0x8 esp 0xc11ea760
	curlwp 0xc125f360 pid 0 lid 1 lowest kstack 0xc14e32c0
	kernel: user trap double fault, code=0
	Stopped in pid 0.1 (system) at  8:      invalid address
	db{0}> 

The chopped off "fatal protection fau" is new.  Could the rdmsr() itself
be faulting then??

Is there any further info I get to help?

Cheers,
Simon.


Home | Main Index | Thread Index | Old Index