| Summary: | Ampere eMAG efibootmgr stuck when creating a new entry | ||
|---|---|---|---|
| Product: | Base System | Reporter: | Emmanuel Vadot <manu> |
| Component: | arm | Assignee: | freebsd-arm (Nobody) <freebsd-arm> |
| Status: | Closed Works As Intended | ||
| Severity: | Affects Some People | CC: | emaste, joneill, tphan, tuexen |
| Priority: | --- | ||
| Version: | CURRENT | ||
| Hardware: | arm64 | ||
| OS: | Any | ||
|
Description
Emmanuel Vadot
2019-05-09 11:08:43 UTC
System hang when we call the runtime SetVariable, since it is a developement firmware and that getvariable/gettime works that could be it ... The bootservice setvariable works. From a loader compiled with ENABLE_UPDATES defined: OK efi-set 45cf35f6-0d6e-4d04-856a-0370a5b16f53 Blah Blih OK efi-show ... 45cf35f6-0d6e-4d04-856a-0370a5b16f53 NV,BS,RS Blah = Blih ... I found a bug in our UEFI FW that not map memory correctly during SetVariable service. The interesting part is FreeBSD using 1:1 mapping for EFI Runtime memory which trigger the bug while other OSs not using 1:1 mapping. So the latest FW for Packet should fix this issue. Great news Tuan, Could you send me the fw so I can update the Lenovo unit at Ed's office ? (In reply to Emmanuel Vadot from comment #4) I put the FW to https://1drv.ms/u/s!Ap60pRB5Jt2RiDRsRakEOxK_jB7T This is the developer build, thus it has no warranty or QS test cycle. Please make sure you can access BMC in case of something wrong. To upgrade: - Copy the CapsuleApp.efi and *.cap to EFI partition - Boot to EFI Shell. - Enter command: CapsuleApp.efi hve104idev_107.cap - Reboot. Please let me know how it going with this FW. Thanks, (In reply to Tuan Phan from comment #5) Trying to do this: tuexen@bsd6:~ % sudo mount -t msdosfs /dev/ada0p1 /mnt tuexen@bsd6:~ % cd /mnt/ tuexen@bsd6:/mnt % ls EFI tuexen@bsd6:~ % cd tuexen@bsd6:~ % ls -l total 17164 -rw-r--r-- 1 tuexen tuexen 61440 May 26 21:19 CapsuleApp.efi -rw-r--r-- 1 tuexen tuexen 3756 May 28 09:25 D20347.diff -rw-r--r-- 1 tuexen tuexen 2096 May 28 09:25 D20348.diff -rw-r--r-- 1 tuexen tuexen 896 May 28 09:25 D20349.diff -rw-r--r-- 1 tuexen tuexen 8734720 May 29 10:42 TestUEFIFW.tar drwxr-xr-x 25 tuexen tuexen 1024 May 28 16:32 head -rw-r--r-- 1 tuexen tuexen 8670936 May 26 21:20 hve104idev_107.cap tuexen@bsd6:~ % sudo cp CapsuleApp.efi hve104idev_107.cap /mnt/ tuexen@bsd6:~ % cd /mnt/ tuexen@bsd6:/mnt % ls -l total 8529 -rwxr-xr-x 1 root wheel 61440 May 29 10:43 CapsuleApp.efi drwxr-xr-x 1 root wheel 512 May 28 08:24 EFI -rwxr-xr-x 1 root wheel 8670936 May 29 10:43 hve104idev_107.cap tuexen@bsd6:~ % sudo umount /mnt tuexen@bsd6:~ % shutdown -r now After booting to the EFI Shell I get: Shell> CapsuleApp.efi hve104idev_107.cap CapsuleApp: capsule image (hve104idev_107.cap) is not found. What am I doing wrong? (In reply to Michael Tuexen from comment #6) I was missing that I have to switch to the disk... So doing Shell> fs0: fs0:\> CapsuleApp.efi hve104idev_107.cap works. Sorry for the noise. I confirm that 1.07 solve the efi_set_var problem. Thanks Tuan. I close this bug since it's not a FreeBSD issue. |