Hi all,
Last week I tagged v1.0-rc1 of EBBR. The release .pdf can be found here:
https://github.com/ARM-software/ebbr/releases
It should represent the content we've discussed in the regular meetings
for a baseline v1.0 EBBR. Please review and comment. If there are no
major objections I intend to release v1.0 final on Friday this week
ahead of Linaro Connect.
g.
Hi all,
Yesterday I tagged EBBR v0.8 in the git repo and published a new pdf.
Please go review and comment.
https://github.com/ARM-software/ebbr/releases/tag/v0.8
We're nearing the end of the v1.0 process. I would like to tag a v1.0
release before the end of March. Feedback comments from v0.6 and v0.7
have been incorporated. Presuming no major objections, I will tag a
v1.0-rc1 on Monday 18 March 2019, to be followed by a final v1.0 on
Friday 29 March,
There is one more outstanding change that didn't make it into v0.8, but
will be in the next release. The UEFI requirements appendix has been
removed as it merely duplicates requirements already listed in the UEFI
specification.
Thanks,
g.
Nothing in the UEFI Requirements appendix is valuable.
The table of required boot services is unnecessary because it is an
exact duplicate of the UEFI boot services list in the UEFI spec (and it
also happens to be slightly incorrect) (UEFI 2.6.1). It is providing no
value to include in EBBR as all UEFI implementations are required to
implement the full set.
The tables of required core protocols are already specified in the UEFI
spec (UEFI 2.6.1)
The table of required media i/o protocols are already required if the
device supports booting from a disk device (UEFI 2.6.2).
The table of console protocols is similarly already required if a
console device is present.
It isn't clear that HII protocols need to be required. U-Boot does
implement them, but it doesn't appear to be a critical requirement on
whether or not an OSV can support the platform.
The tables of optional UEFI protocols isn't adding any value because it
doesn't require anything of implementers, and it doesn't provide any
commentary on when the protocols should be included. This is just
additional text.
Remove the lot to simplify the spec.
Signed-off-by: Grant Likely <grant.likely(a)arm.com>
---
source/appendix-a-uefi-features.rst | 203 ------------------------------------
source/chapter2-uefi.rst | 4 -
source/index.rst | 1 -
3 files changed, 208 deletions(-)
delete mode 100644 source/appendix-a-uefi-features.rst
diff --git a/source/appendix-a-uefi-features.rst b/source/appendix-a-uefi-features.rst
deleted file mode 100644
index bb74ca5..0000000
--- a/source/appendix-a-uefi-features.rst
+++ /dev/null
@@ -1,203 +0,0 @@
-.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. _appendix-uefi-requirements:
-
-#############################################
-APPENDIX A - UEFI Implementation Requirements
-#############################################
-
-Required Boot Services
-**********************
-
-========================================== ======
-Service UEFI §
-========================================== ======
-EFI_RAISE_TPL 7.1
-EFI_RESTORE_TPL 7.1
-EFI_ALLOCATE_PAGES 7.2
-EFI_FREE_PAGES 7.2
-EFI_GET_MEMORY_MAP 7.2
-EFI_ALLOCATE_POOL 7.2
-EFI_FREE_POOL 7.2
-EFI_CREATE_EVENT 7.1
-EFI_SET_TIMER 7.1
-EFI_WAIT_FOR_EVENT 7.1
-EFI_SIGNAL_EVENT 7.1
-EFI_CLOSE_EVENT 7.1
-EFI_INSTALL_PROTOCOL_INTERFACE 7.3
-EFI_REINSTALL_PROTOCOL_INTERFACE 7.3
-EFI_UNINSTALL_PROTOCOL_INTERFACE 7.3
-EFI_HANDLE_PROTOCOL 7.3
-EFI_REGISTER_PROTOCOL_NOTIFY 7.3
-EFI_LOCATE_HANDLE 7.3
-EFI_LOCATE_PROTOCOL 7.3
-EFI_LOCATE_DEVICE_PATH 7.3
-EFI_INSTALL_CONFIGURATION_TABLE 7.3
-EFI_IMAGE_LOAD 7.4
-EFI_IMAGE_START 7.4
-EFI_EXIT 7.4
-EFI_IMAGE_UNLOAD 7.4
-EFI_EXIT_BOOT_SERVICES 7.4
-EFI_GET_NEXT_MONOTONIC_COUNT 7.5
-EFI_STALL 7.5
-EFI_SET_WATCHDOG_TIMER 7.5
-EFI_CONNECT_CONTROLLER 7.3
-EFI_DISCONNECT_CONTROLLER 7.3
-EFI_OPEN_PROTOCOL 7.3
-EFI_CLOSE_PROTOCOL 7.3
-EFI_OPEN_PROTOCOL_INFORMATION 7.3
-EFI_PROTOCOLS_PER_HANDLE 7.3
-EFI_LOCATE_HANDLE_BUFFER 7.3
-EFI_LOCATE_PROTOCOL 7.3
-EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES 7.3
-EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES 7.3
-EFI_CALCULATE_CRC32 7.5
-EFI_COPY_MEM 7.5
-EFI_SET_MEM 7.5
-EFI_CREATE_EVENT_EX 7.5
-========================================== ======
-
-Required UEFI Protocols
-***********************
-
-Core UEFI Protocols
-===================
-
-========================================== ======
-Service UEFI §
-========================================== ======
-EFI_LOADED_IMAGE_PROTOCOL 9.1
-EFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL 9.2
-EFI_DECOMPRESS_PROTOCOL 19.5
-EFI_DEVICE_PATH_PROTOCOL 10.2
-EFI_DEVICE_PATH_UTILITIES_PROTOCOL 10.3
-========================================== ======
-
-Media I/O Protocols
-===================
-
-========================================== ======
-Service UEFI §
-========================================== ======
-EFI_LOAD_FILE2_PROTOCOL 13.2
-EFI_SIMPLE_FILE_SYSTEM_PROTOCOL 13.4
-EFI_FILE_PROTOCOL 13.5
-========================================== ======
-
-Console Protocols
-=================
-
-========================================== ======
-Service UEFI §
-========================================== ======
-EFI_SIMPLE_TEXT_INPUT_PROTOCOL 12.2
-EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL 12.3
-EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL 12.4
-========================================== ======
-
-Driver Configuration Protocols
-==============================
-
-========================================== ======
-Service UEFI §
-========================================== ======
-EFI_HII_DATABASE_PROTOCOL 33.4
-EFI_HII_STRING_PROTOCOL 33.4
-EFI_HII_CONFIG_ROUTING_PROTOCOL 33.4
-EFI_HII_CONFIG_ACCESS_PROTOCOL 33.4
-========================================== ======
-
-Optional UEFI Protocols
-***********************
-
-Basic Networking Support
-========================
-
-============================================ ======
-Service UEFI §
-============================================ ======
-EFI_SIMPLE_NETWORK_PROTOCOL 24.1
-EFI_MANAGED_NETWORK_PROTOCOL 25.1
-EFI_MANAGED_NETWORK_SERVICE_BINDING_PROTOCOL 25.1
-============================================ ======
-
-.. note:: Networking services are optional on platforms that do not support
- networking.
-
-Network Boot Protocols
-======================
-
-========================================== ======
-Service UEFI §
-========================================== ======
-EFI_PXE_BASE_CODE_PROTOCOL 24.3
-EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL 24.4
-EFI_BIS_PROTOCOL 24.5
-EFI_MTFTP4_PROTOCOL 30.3
-EFI_MTFTP6_PROTOCOL 30.4
-========================================== ======
-
-.. note:: EFI_BIS_PROTOCOL is optional on machines that do not support Secure
- Boot.
-
-IPV4 Network Support
-====================
-
-========================================== ======
-Service UEFI §
-========================================== ======
-EFI_ARP_PROTOCOL 29.1
-EFI_ARP_SERVICE_BINDING_PROTOCOL 29.1
-EFI_DHCP4_SERVICE_BINDING_PROTOCOL 29.2
-EFI_DHCP4_PROTOCOL 29.2
-EFI_TCP4_PROTOCOL 28.1.2
-EFI_TCP4_SERVICE_BINDING_PROTOCOL 28.1.1
-EFI_IP4_SERVICE_BINDING_PROTOCOL 28.3.1
-EFI_IP4_CONFIG2_PROTOCOL 28.5
-EFI_UDP4_PROTOCOL 30.1.2
-EFI_UDP4_SERVICE_BINDING_PROTOCOL 30.1.1
-========================================== ======
-
-.. note:: Networking services are optional on platforms that do not support
- networking.
-
-IPV6 Network Support
-====================
-
-========================================== ======
-Service UEFI §
-========================================== ======
-EFI_DHCP6_PROTOCOL 29.3.2
-EFI_DHCP6_SERVICE_BINDING_PROTOCOL 29.3.1
-EFI_TCP6_PROTOCOL 28.2.2
-EFI_TCP6_SERVICE_BINDING_PROTOCOL 28.2.1
-EFI_IP6_SERVICE_BINDING_PROTOCOL 28.6.1
-EFI_IP6_CONFIG_PROTOCOL 28.7
-EFI_UDP6_PROTOCOL 30.2.2
-EFI_UDP6_SERVICE_BINDING_PROTOCOL 30.2.1
-========================================== ======
-
-.. note:: Networking services are optional on platforms that do not support
- networking.
-
-VLAN Protocols
-==============
-
-========================================== ======
-Service UEFI §
-========================================== ======
-EFI_VLAN_CONFIG_PROTOCOL 27.1
-========================================== ======
-
-iSCSI Protocols
-===============
-
-========================================== ======
-Service UEFI §
-========================================== ======
-EFI_ISCSI_INITIATOR_NAME_PROTOCOL 16.2
-========================================== ======
-
-.. note:: Support for iSCSI is only required on machines that lack persistent
- storage, such as a, HDD. This configuration is intended for thin clients and
- compute-only nodes
-
diff --git a/source/chapter2-uefi.rst b/source/chapter2-uefi.rst
index a8fe3a3..f6a5802 100644
--- a/source/chapter2-uefi.rst
+++ b/source/chapter2-uefi.rst
@@ -17,10 +17,6 @@ UEFI Compliance
EBBR compliant platforms shall conform to the requirements in [UEFI]_ § 2.6,
except where explicit exemptions are provided by this document.
-EBBR compliant platforms shall also implement the UEFI services and
-protocols that are listed in :ref:`appendix-uefi-requirements` of this
-document.
-
Block device partitioning
-------------------------
diff --git a/source/index.rst b/source/index.rst
index 8722694..186498f 100644
--- a/source/index.rst
+++ b/source/index.rst
@@ -51,5 +51,4 @@ Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
chapter2-uefi
chapter3-secureworld
chapter4-firmware-media
- appendix-a-uefi-features
references
--
2.13.0
Hi all,
I've created a new series of EBBR meetings; this time biweekly on the 2nd and 4th Tuesday of each month based on the feedback I received on the Doodle poll.
First meeting today and the one topic on the agenda is pickup up from where things were left off in December.
Here are the dial-in details:
- Online meeting: https://arm-onsite.webex.com/meet/gralik01
- Phone
- Access code: 809 053 990
- 1-408-792-6300 Call-in toll number (US/Canada)
- 1-877-668-4490 Call-in toll-free number (US/Canada)
- 44-203-478-5285 Call-in toll number (UK)
- 08-002061177 Call-in toll-free (UK)
More access numbers:
https://arm-onsite.webex.com/cmp3300/webcomponents/widget/globalcallin/glob…
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
I've made the following changes to EBBR to prepare for the v1.0 release.
Most of these are editorial. The biggest change is the SetVariable()
language which has already been discussed.
Cheers,
g.
Hi Grant!
[ Re-adding the CC to the list, I guess you dropped that by mistake ]
On Thu, Feb 28, 2019 at 05:22:10PM +0000, Grant Likely wrote:
>On 28/02/2019 17:12, Steve McIntyre wrote:
>>
>> I'm now looking at updating our logic on armhf/arm64 to do something
>> like:
>>
>> if (booted via UEFI); then
>> if (booted using U-Boot); then
>> echo MBR
>> else
>> echo GPT
>> fi
>> else
>> echo MBR
>> fi
>>
>> but I'll need to find a sane way to detect U-Boot->UEFI boot. For now
>> I'm looking at parsing dmesg output to look for something like
>>
>> [ 0.000000] efi: EFI v2.70 by Das U-Boot
>>
>> but I'm hoping for a better solution. This is also somewhat assuming
>> that detecting U-Boot in the boot chain is a valid indicator for
>> "unsafe location for firmware", but I'm not sure of a better way!
>
>I really want to avoid installers checking for specific firmware
>implementations. The interface is UEFI regardless of U-Boot or tianocore
>as the implementation.
>
>It also isn't actually about U-Boot. It's a limitation of the boot
>masked ROM in the SoC that do not respect partitioning schemes. In these
>cases both Tianocore and U-Boot have the same problem, and
>repartitioning the device will blow away the bootloader.
ACK - I've acknowledged that above. I've personally seen very few
devices with Tianocore firmware at arbitrary locations, but lots with
U-Boot. That seems to be the pattern. Do you have any common
examples for Tianocore?
>Perhaps there should be a property in the DT that lists the reserved
>blocks on the SD or eMMC device.
Maybe, but that bird has already flown surely? I'm talking about
existing devices that vendors are not updating.
>Or, maybe, we can define an information block that has an
>identifiable header+checksum which can tell the OS which blocks are
>occupied by firmware. If it exists somewhere within the first few
>blocks then the partitioning tool could scan for it before
>repartitioning. It could also be embedded into the firmware image
>that gets dd'ed onto the media.
Maybe we can scan the first few sectors of a disk to see if it has any
other recognisable strings, then. I'm trying to work out a safe(!) yet
also reasonably easy way for partitioning to work. Our existing code
isn't working, and we are already over-writing firmware stored in dumb
places. :-(
Cheers,
--
Steve McIntyre steve.mcintyre(a)linaro.org
<http://www.linaro.org/> Linaro.org | Open source software for ARM SoCs
I accidentally deleted the old series of EBBR meetings. However, that's
okay since other meetings have moved around and it is time to review the
meeting time anyway.
I think we should switch to bi-weekly meetings alternating with the
LEDGE SC meeting. Here is a doodle poll for a new meeting time:
https://doodle.com/poll/359273ngta74rqut
I'll set up a new meeting series about this time next week. Please let
me know what times work for you.
Thanks,
g.