GetTime runtime service call causes kernel Oops

Bug #1302671 reported by Mark Salter
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Linaro UEFI
Confirmed
High
Leif Lindholm

Bug Description

Using FVP base model, the following Oops occurs when calling GetTime runtime service.
The failing address 0x1c170000 is an I/O address for RTC but UEFI is not creating a
memory mapped I/O entry for this device in the memmap. This call is being made before
SetVirtualMemoryMap() but kernel doesn't know to create an identity mapping for this
address because there is no runtime mmio memmap entry. Also, looking at the RTC driver,
there is no handler for the SetVirtualMemoryMap event so even if the memmap entry were
present, GetTime() would fail after SetVirtualMemoryMap() because RTC driver would still
be using the physical address.

[ 0.000000] Unable to handle kernel paging request at virtual address 1c170000
[ 0.000000] pgd = ffffffc00007d000
[ 0.000000] [1c170000] *pgd=00000000fcc0e003, *pmd=0000000000000000
[ 0.000000] Internal error: Oops: 96000005 [#1] SMP
[ 0.000000] Modules linked in:
[ 0.000000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.13.0-rc7+ #1
[ 0.000000] task: ffffffc000938960 ti: ffffffc00092c000 task.ti: ffffffc00092c000
[ 0.000000] PC is at 0xf71bb2a8
[ 0.000000] LR is at 0xf71bb278
[ 0.000000] pc : [<00000000f71bb2a8>] lr : [<00000000f71bb278>] pstate: 600002c5
[ 0.000000] sp : ffffffc00092fe40
[ 0.000000] x29: ffffffc00092fed0 x28: 0000000080080320
[ 0.000000] x27: ffffffc000080508 x26: 000000008007d000
[ 0.000000] x25: 000000008007b000 x24: 0000000080000000
[ 0.000000] x23: ffffffc07f1f5c00 x22: ffffffc0009156a8
[ 0.000000] x21: ffffffc0009156a8 x20: 0000000000000001
[ 0.000000] x19: 00000000000002c0 x18: 0000000000001bbf
[ 0.000000] x17: 000000000000377f x16: 0000000000000006
[ 0.000000] x15: 0000000000000046 x14: 0000000000000000
[ 0.000000] x13: 0000000000001df0 x12: ffffffc0008dc8b4
[ 0.000000] x11: 0000000000000002 x10: 0000000000000000
[ 0.000000] x9 : ffffffffffffffff x8 : 0000000000000001
[ 0.000000] x7 : ffffffffffffffff x6 : 0000000000000000
[ 0.000000] x5 : 000000000000001c x4 : 000000000000000f
[ 0.000000] x3 : 00000000f71b2694 x2 : ffffffc0009bc1e8
[ 0.000000] x1 : 8000000000000003 x0 : 000000001c170000
[ 0.000000]
[ 0.000000] Process swapper/0 (pid: 0, stack limit = 0xffffffc00092c058)
[ 0.000000] Stack: (0xffffffc00092fe40 to 0xffffffc000930000)
[ 0.000000] fe40: f71b54fc 00000000 7f009380 ffffffc0 00924a00 00000000 00000000 ffffffc0
[ 0.000000] fe60: 1c170000 00000000 0092fe88 ffffffc0 f71b26b0 00000000 00000000 ffffff80
[ 0.000000] fe80: 00000003 80000000 00002000 ffffff80 00000000 00000000 00120011 ffffffc0
[ 0.000000] fea0: 8092ff20 00000000 00000000 00000000 008dc96c ffffffc0 000002c0 00000000
[ 0.000000] fec0: 8092ff20 00000000 00000000 00000000 0092ff00 ffffffc0 0008ccc8 ffffffc0
[ 0.000000] fee0: 0092ff90 ffffffc0 00a10000 ffffffc0 00000000 00000000 8092ff20 00000000
[ 0.000000] ff00: 0092ff30 ffffffc0 00086734 ffffffc0 009bc000 ffffffc0 00000001 00000000
[ 0.000000] ff20: 0092ff30 ffffffc0 006472dc ffffffc0 0092ff40 ffffffc0 008e2d20 ffffffc0
[ 0.000000] ff40: 0092ffa0 ffffffc0 008d8698 ffffffc0 009bc000 ffffffc0 00000001 00000000
[ 0.000000] ff60: 009156a8 ffffffc0 008d8694 ffffffc0 009bc000 ffffffc0 00000001 00000000
[ 0.000000] ff80: 009156a8 ffffffc0 009156a8 ffffffc0 7f1f5c00 ffffffc0 00000001 00000000
[ 0.000000] ffa0: 00000000 00000000 80080320 00000000 f6bc4e88 00000000 00000e12 00000000
[ 0.000000] ffc0: 9fe00000 00000000 410fd0f0 00000000 8093a000 00000000 00000000 00000000
[ 0.000000] ffe0: 009156a8 ffffffc0 00000000 00000000 00000000 00000000 00000000 00000000
[ 0.000000] Call trace:
[ 0.000000] [<00000000f71bb2a8>] 0xf71bb2a8
[ 0.000000] [<ffffffc00008ccc8>] efi_get_time+0x24/0x9c
[ 0.000000] [<ffffffc000086734>] read_persistent_clock+0x18/0x20
[ 0.000000] [<ffffffc0008e2d20>] timekeeping_init+0x18/0x1c4
[ 0.000000] [<ffffffc0008d8698>] start_kernel+0x200/0x370
[ 0.000000] Code: 58000182 d2802ba1 97ffddb2 f94013e0 (b9400000)
[ 0.000000] ---[ end trace 3406ff24bd97382e ]---
[

Changed in linaro-uefi:
assignee: nobody → Leif Lindholm (leif-lindholm)
status: New → Confirmed
importance: Undecided → High
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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