arm64 efi stub support

Bug #1441876 reported by dann frazier
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Fix Released
Undecided
Unassigned
Trusty
Fix Released
Undecided
dann frazier

Bug Description

[Impact]
ARM64 systems that use UEFI cannot boot the Ubuntu 3.13 kernel shipped in 14.04. This is significant because the only LTS cloud images Ubuntu provides for ARM64/UEFI include this kernel.

[Test Case]
Attempt to boot a 14.04 arm64-efi cloud image in QEMU as described here:
  https://wiki.ubuntu.com/ARM64/QEMU
GRUB will fail, reporting that there is no EFI stub in the kernel.

[Regression Risk]
The proposed backport has been reworked to not require any changes that impact x86, other than new macros/functions that will not be used on x86. The biggest regression risk is therefore to other arm64 platforms that are currently supported by the 3.13 kernel. Luckily this list is small and can be tested.

CVE References

dann frazier (dannf)
Changed in linux (Ubuntu):
status: Confirmed → Fix Released
Changed in linux (Ubuntu Trusty):
status: New → Confirmed
assignee: nobody → dann frazier (dannf)
Changed in linux (Ubuntu):
assignee: dann frazier (dannf) → nobody
dann frazier (dannf)
Changed in linux (Ubuntu Trusty):
status: Confirmed → In Progress
Andy Whitcroft (apw)
Changed in linux (Ubuntu Trusty):
status: In Progress → Fix Committed
Revision history for this message
Luis Henriques (henrix) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-trusty' to 'verification-done-trusty'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-trusty
Revision history for this message
dann frazier (dannf) wrote :
Download full text (11.6 KiB)

I've verified that I can successfully boot a trusty cloud image in an EFI VM by upgrading it to proposed and manually adding console=ttyAMA0 to the kernel commandline (a separate issue):

EFI stub: Booting Linux Kernel...
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] Linux version 3.13.0-53-generic (buildd@auburn) (gcc version 4.8.2 (Ubuntu/Linaro 4.8.2-19ubuntu1) ) #87-Ubuntu SMP Thu May 7 14:43:55 UTC 2015 (Ubuntu 3.13.0-53.87-generic 3.13.11-ckt19)
[ 0.000000] CPU: AArch64 Processor [500f0000] revision 0
[ 0.000000] No earlyprintk arguments passed.
[ 0.000000] efi: Getting parameters from FDT:
[ 0.000000] EFI v2.40 by EDK II
[ 0.000000] efi:
[ 0.000000] psci: probing function IDs from device-tree
[ 0.000000] PERCPU: Embedded 11 pages/cpu @ffffffc03f9bb000 s16192 r8192 d20672 u45056
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 258560
[ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.13.0-53-generic root=UUID=1aaf7ff5-f468-46de-bca4-960eaf01a7b4 ro earlyprintk console=ttyAMA0
[ 0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[ 0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes)
[ 0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes)
[ 0.000000] software IO TLB [mem 0x73098000-0x77098000] (64MB) mapped at [ffffffc033098000-ffffffc037097fff]
[ 0.000000] Memory: 901200K/1048576K available (5750K kernel code, 587K rwdata, 2548K rodata, 315K init, 542K bss, 147376K reserved)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vmalloc : 0xffffff8000000000 - 0xffffffbbffff0000 (245759 MB)
[ 0.000000] vmemmap : 0xffffffbc00e00000 - 0xffffffbc01c00000 ( 14 MB)
[ 0.000000] modules : 0xffffffbffc000000 - 0xffffffc000000000 ( 64 MB)
[ 0.000000] memory : 0xffffffc000000000 - 0xffffffc040000000 ( 1024 MB)
[ 0.000000] .init : 0xffffffc00089c000 - 0xffffffc0008eaf40 ( 316 kB)
[ 0.000000] .text : 0xffffffc000080000 - 0xffffffc00089b9b4 ( 8303 kB)
[ 0.000000] .data : 0xffffffc0008eb000 - 0xffffffc00097df68 ( 588 kB)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] Hierarchical RCU implementation.
[ 0.000000] RCU dyntick-idle grace-period acceleration is enabled.
[ 0.000000] RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=1.
[ 0.000000] NR_IRQS:64 nr_irqs:64 0
[ 0.000000] Architected cp15 timer(s) running at 50.00MHz (virt).
[ 0.000000] sched_clock: 56 bits at 50MHz, resolution 20ns, wraps every 2748779069440ns
[ 0.000000] Console: colour dummy device 80x25
[ 0.000000] allocated 4194304 bytes of page_cgroup
[ 0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
[ 0.001040] Calibrating delay loop (skipped), value calculated using timer frequency.. 100.00 BogoMIPS (lpj=500000)
[ 0.001045] pid_max: default: 32768 minimum: 301
[ 0.001091] Security Framework initialized
[ 0.001122] AppArmor: AppArmor initialized
[...

tags: added: verification-done-trusty
removed: verification-needed-trusty
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (16.1 KiB)

This bug was fixed in the package linux - 3.13.0-53.88

---------------
linux (3.13.0-53.88) trusty; urgency=low

  [ Brad Figg ]

  * Release Tracking Bug
    - LP: #1454785

  [ Upstream Kernel Changes ]

  * mmc: card: Don't access RPMB partitions for normal read/write
    - LP: #1454013

linux (3.13.0-53.87) trusty; urgency=low

  [ Luis Henriques ]

  * Release Tracking Bug
    - LP: #1452736

  [ dann frazier ]

  * [Config] CONFIG_{EFI_PARAMS_FROM_FDT,GENERIC_EARLY_IOREMAP,LIBFDT}=y
    - LP: #1441876
  * Move get_dram_base to arm private file
    - LP: #1441876
  * arm64: Implement efi_enabled()
    - LP: #1441876
  * [Config] CONFIG_RTC_DRV_EFI=y on arm64
    - LP: #1441291

  [ Kamal Mostafa ]

  * Fix "mei: me: release hw from reset only during the reset flow"
    - LP: #1450813

  [ Stefan Bader ]

  * SAUCE: vesafb: Set mtrr:3 (write-combining) as default
    - LP: #1434581

  [ Upstream Kernel Changes ]

  * Revert "net: cx82310_eth: use common match macro"
    - LP: #1451900
  * netfilter: nf_conntrack: reserve two bytes for nf_ct_ext->len
    - LP: #1442080
    - CVE-2014-9715
  * add generic fixmap.h
    - LP: #1441876
  * mm: create generic early_ioremap() support
    - LP: #1441876
  * arm64: initialize pgprot info earlier in boot
    - LP: #1441876
  * arm64: add early_ioremap support
    - LP: #1441876
  * arm64: fixmap: fix missing sub-page offset for earlyprintk
    - LP: #1441876
  * efi: create memory map iteration helper
    - LP: #1441876
  * efi: Add get_dram_base() helper function
    - LP: #1441876
  * lib: add fdt_empty_tree.c
    - LP: #1441876
  * doc: efi-stub.txt updates for ARM
    - LP: #1441876
  * efi: add helper function to get UEFI params from FDT
    - LP: #1441876
  * arm64: Add function to create identity mappings
    - LP: #1441876
  * efi: Add shared FDT related functions for ARM/ARM64
    - LP: #1441876
  * arm64: add EFI runtime services
    - LP: #1441876
  * doc: arm: add UEFI support documentation
    - LP: #1441876
  * arm64: efi: add EFI stub
    - LP: #1441876
  * doc: arm64: add description of EFI stub support
    - LP: #1441876
  * efi/arm64: ignore dtb= when UEFI SecureBoot is enabled
    - LP: #1441876
  * arm64: efi: only attempt efi map setup if booting via EFI
    - LP: #1441876
  * PCI: Don't clear ASPM bits when the FADT declares it's unsupported
    - LP: #1441335
  * regmap: Skip read-only registers in regcache_sync()
    - LP: #1448830
  * rtc: ia64: allow other architectures to use EFI RTC
    - LP: #1441291
  * rtc: Disable EFI rtc for x86
    - LP: #1441291
  * mei: me: fix hw ready reset flow
    - LP: #1450813
  * Input: serio - add firmware_id sysfs attribute
    - LP: #1414930
  * Input: i8042 - add firmware_id support
    - LP: #1414930
  * Input: Add INPUT_PROP_TOPBUTTONPAD device property
    - LP: #1414930
  * Input: synaptics - report INPUT_PROP_TOPBUTTONPAD property
    - LP: #1414930
  * Input: synaptics - add a matches_pnp_id helper function
    - LP: #1414930
  * Input: synaptics - change min/max quirk table to pnp-id matching
    - LP: #1414930
  * Input: psmouse - add psmouse_matches_pnp_id helper function
    - LP: #1414930
  * Input: synaptics - split synapt...

Changed in linux (Ubuntu Trusty):
status: Fix Committed → Fix Released
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.