No UEFI boot on Dell Precision M4500

Bug #635439 reported by Jaap-Jan van der Veen
20
This bug affects 3 people
Affects Status Importance Assigned to Milestone
casper (Ubuntu)
New
Undecided
Unassigned

Bug Description

Binary package hint: casper

I burned the Ubuntu 10.10 bèta to a CD-RW (and a DVD+-RW to rule out problems with media) and found out that the Ubuntu LiveCD won't boot. It gets to the grub prompt and then... Nothing. The thing I expected to see is (of course) the kernel loading and eventually the LiveCD environment.

The grub boot command for the installer is:
linux /casper/vmlinuz file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity quiet splash --
initrd /casper/initrd.lz

if I remove 'only-ubiquity quiet splash' and replace that with 'debug=' I get no text on the screen whatsoever. It stays blank and after a while the DVD-ROM station spins downs and nothing's happening, so there isn't any useful debug output to show.

I'm sorry I can't provide you with more information, I hope there is some way to debug this problem.

Revision history for this message
Colin Watson (cjwatson) wrote : Re: [Bug 635439] [NEW] No UEFI boot on Dell Precision M4500

I don't have the answer right now, but the good news is that I happen to
have the same model number as my test system for UEFI support, and it's
broken in the same way. I'm awaiting delivery of a docking station so
that I can debug this using a serial console.

Revision history for this message
Jaap-Jan van der Veen (jjvdveen) wrote :
Download full text (3.9 KiB)

Maybe this will shed some light on it. ;) I happen to have a suitable docking station for my Precision M4500.

The real problem is this:
============================================
[ 0.088777] BUG: unable to handle kernel paging request at ffffffffcccafed0
[ 0.095752] IP: [<ffffffffcccafed0>] 0xffffffffcccafed0
[ 0.100992] PGD 1a2c067 PUD 1a2d067 PMD 0
[ 0.105148] Oops: 0010 [#1] SMP
[ 0.108421] last sysfs file:
[ 0.111378] CPU 0
[ 0.113222] Modules linked in:
[ 0.116492]
[ 0.117984] Pid: 0, comm: swapper Not tainted 2.6.35-19-generic #28-Ubuntu 041WH1/Precision M4500
[ 0.126833] RIP: 0010:[<ffffffffcccafed0>] [<ffffffffcccafed0>] 0xffffffffcccafed0
[ 0.134488] RSP: 0000:ffffffff81a01e08 EFLAGS: 00010002
[ 0.139784] RAX: 00000000cf5de878 RBX: 0000000000004650 RCX: 00000000746e7665
[ 0.146913] RDX: 0000000000000000 RSI: 0000000000004650 RDI: 00000000cf65d280
[ 0.154046] RBP: ffffffff81a01f38 R08: 0000000000000001 R09: 0000000000048000
[ 0.161174] R10: 0000000000000000 R11: 0000000000048000 R12: 0000000000000030
[ 0.168301] R13: 0000000000048000 R14: 0000000000000001 R15: 0000000000046000
[ 0.175415] FS: 0000000000000000(0000) GS:ffff880001e00000(0000) knlGS:0000000000000000
[ 0.183491] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 0.189227] CR2: ffffffffcccafed0 CR3: 0000000001a2a000 CR4: 00000000000006b0
[ 0.196349] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 0.203472] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[ 0.210584] Process swapper (pid: 0, threadinfo ffffffff81a00000, task ffffffff81a32020)
[ 0.218653] Stack:
[ 0.220658] 00000000cf65d34b 00000000746e7665 0000000000000000 ffff88012fc046e0
[ 0.227924] <0> ffffffff81a01ec0 0000000000000000 8000000000000000 0000000000000200
[ 0.235672] <0> 00000000cf5de8a0 00000000cf5dee18 00000000cf5de878 0000000000000000
[ 0.243608] Call Trace:
[ 0.246050] [<ffffffff81031fd6>] ? efi_call4+0x46/0x80
[ 0.251271] [<ffffffff81afea91>] ? efi_enter_virtual_mode+0x15b/0x284
[ 0.257786] [<ffffffff81aedc26>] start_kernel+0x310/0x390
[ 0.263260] [<ffffffff81aed341>] x86_64_start_reservations+0x12c/0x130
[ 0.269857] [<ffffffff81aed43f>] x86_64_start_kernel+0xfa/0x109
[ 0.275854] Code: Bad RIP value.
[ 0.279212] RIP [<ffffffffcccafed0>] 0xffffffffcccafed0
[ 0.284526] RSP <ffffffff81a01e08>
[ 0.288009] CR2: ffffffffcccafed0
[ 0.291344] ---[ end trace a7919e7f17c0a725 ]---
[ 0.295958] Kernel panic - not syncing: Attempted to kill the idle task!
[ 0.302654] Pid: 0, comm: swapper Tainted: G D 2.6.35-19-generic #28-Ubuntu
[ 0.310382] Call Trace:
[ 0.312837] [<ffffffff815849e4>] panic+0x90/0x111
[ 0.317626] [<ffffffff8106437e>] do_exit+0x3be/0x3f0
[ 0.322660] [<ffffffff81588ce0>] oops_end+0xb0/0xf0
[ 0.327619] [<ffffffff8103d1dc>] no_context+0xfc/0x190
[ 0.332838] [<ffffffff8103d395>] __bad_area_nosemaphore+0x125/0x1e0
[ 0.339174] [<ffffffff8103d463>] bad_area_nosemaphore+0x13/0x20
[ 0.345172] [<ffffffff8158b5df>] do_page_fault+0x28f/0x350
[ 0.350738] [<ffffffff81587ff5>] page_fault+0x25/0x30
...

Read more...

Revision history for this message
Colin Watson (cjwatson) wrote :

On Sat, Sep 11, 2010 at 08:42:17PM -0000, Jaap-Jan van der Veen wrote:
> Maybe this will shed some light on it. ;) I happen to have a suitable
> docking station for my Precision M4500.
[...]
> [ 0.243608] Call Trace:
> [ 0.246050] [<ffffffff81031fd6>] ? efi_call4+0x46/0x80
> [ 0.251271] [<ffffffff81afea91>] ? efi_enter_virtual_mode+0x15b/0x284
> [ 0.257786] [<ffffffff81aedc26>] start_kernel+0x310/0x390
> [ 0.263260] [<ffffffff81aed341>] x86_64_start_reservations+0x12c/0x130
> [ 0.269857] [<ffffffff81aed43f>] x86_64_start_kernel+0xfa/0x109
> [ 0.275854] Code: Bad RIP value.
> [ 0.279212] RIP [<ffffffffcccafed0>] 0xffffffffcccafed0

Thanks, that's interesting. Sort of similar to what Mario found on a different machine, although the symptom is very slightly different.

I think it will be easiest to debug this when I can iteratively install new test kernels and GRUB images on my machine and observe the output. In the meantime, I can confirm that the fault is at arch/x86/kernel/efi.c:167, matching Mario's log:

        status = efi_call_phys4(efi_phys.set_virtual_address_map,
                                memory_map_size, descriptor_size,
                                descriptor_version, virtual_map);

It is interesting that 0xffffffffcccafed0 is way up in the kernel module mapping area, not in anything that seems a plausible physical address, and it doesn't match anything in the EFI memory map either (which seems to tentatively rule out the idea that GRUB might just be constructing the E820 map wrongly). I would have expected this function to be in one of the EfiRuntimeServicesCode ranges, namely:

[ 0.000000] EFI: mem355: type=5, attr=0x800000000000000f, range=[0x00000000cf5df000-0x00000000cf636000) (0MB)
[ 0.000000] EFI: mem356: type=5, attr=0x800000000000000f, range=[0x00000000cf636000-0x00000000cf65f000) (0MB)

I smell a rat, but as yet I'm not sure what kind. In-kernel memory corruption, or are we failing to mark the EFI system table as reserved so it gets overwritten? Or something else?

> Off-topic:
> I don't know if it's just my machine, but does yours also take a long
> time to show the boot menu when pressing F12? On my machine takes a
> second or 15 between the BIOS screen disappearing and (for now)
> Windows 7 boot screen appearing when booting normally. In between
> there seems to be some hard disk activity, as if the BIOS scans all
> partitions for boot loaders.

Yes, I suspect that's pretty much what it's doing. I haven't been worrying about it too much as yet ...

Revision history for this message
Colin Watson (cjwatson) wrote :

On my system, also labelled as a Dell Precision M4500 although it's a development system so could be a bit different, GRUB shows the set_virtual_address_map function as being at address 0xbb65d280. I wouldn't be surprised if my memory map was a bit different from yours, but this is still in the bottom 4GB of memory rather than way up at the top.

I notice this in your log, which is odd and suggests a problem:

[ 0.000000] Kernel-defined memdesc doesn't match the one from EFI!

I'll look into this more when I can.

Revision history for this message
Colin Watson (cjwatson) wrote :

I finally have a serial console and am investigating.

Revision history for this message
Jaap-Jan van der Veen (jjvdveen) wrote :

It's been a while and you might have other priorities, but still. Can you tell me if you're making any progress?

Revision history for this message
exactt (giesbert) wrote :
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.