On 16/07/2018 12:35, Neil Williams wrote:
On Mon, 16 Jul 2018 at 18:11, Daniel Thompson daniel.thompson@linaro.org wrote:
Hi Folks
Sorry if you have already seen this but for those that didn't, last Friday Grant pushed out version 0.6 of EBBR. Details below but the summary is that it is time for feedback.
This v0.6 release of EBBR is a pre-release document. The contents are not final. The purpose of this release is to raise awareness of the EBBR
project, and to solicit feedback on the current draft. Please do read and provide comments on the boot-architecture@lists.linaro.org mailing
list.
We had a training session at HKG18 looking at best practices for automating devices and there are aspects of any boot architecture which will make or break automation. Has any one considered adding to the EBBR based on the objectives of supporting automation of compliant devices?
http://connect.linaro.org/resource/hkg18/hkg18-tr10/ That session was based on this white paper: https://collaborate.linaro.org/display/CTT/Automation+and+hardware+design - but that URL is still restricted to people with a login on collaborate, so I blogged the content here: https://linux.codehelp.co.uk/automation-and-risk.html (It is a long read)
There is a lot of interest in automating testing of all parts of the boot process on a range of boards. Linaro has a lot of experience of automating a range of devices and ARM is building a similar data set using the same tools.
Useful. I'll read the blog post. Thanks.
Principle elements would be:
- Reliability -
- all identifiers are persistent across updates of the software, reboots
etc.
- Reliable reporting of errors.
- Outputting sensible, unique, strings when performing a CPU reset
- Uniqueness - all identifiers are unique and exposed to other parts of
the boot architecture, e.g. NIC needs to be visible to bootloaders like Grub.
- Scalability - avoid need for customised hardware to automate the device
- Deployment - consider how to deploy new software to the device under
automation.
EBBR talks about UEFI Reset but doesn't require that a reset is identifiable when it happens in automation - a simple string like the U-Boot support for "Resetting CPU ..." is enough for the automation to detect that the system we tried to deploy has not booted and what is about to happen is that something else may get booted in it's place.
It isn't something that has come up yet, but not I think for lack of interest. Much of the focus so far has been getting a baseline of functionality defined.
It would be easy to add requirements on boot messages. The process is completely open, so you can propose some language that you think would be suitable. When you do, keep in mind that there are implementation choices in terms of console output. Mostly likely the vast majority of EBBR platforms will use some form of serial port as the primary console, but that won't alwasy be the case. The proposed text should take into account platforms that use a graphical console instead of serial port, even it that just means you use language something like "if the primary console is a serial port, then the firmware shall..."
I would also take a look at the UEFI spec first to see if anything is prescribed there. EBBR is intended to inform reading of the UEFI spec. I don't want to take on content that should be in UEFI.
Runtime variable access plays into the need to ensure that the network PHY is exposed to UEFI applications (like grubaarch64.efi)
How EBBR talks about runtime variables still needs some work. There are three scenarios that need to be considered:
1) SetVariable() doesn't work at all -- rare 2) SetVariable() works at boot time, but not runtime -- many platforms 3) SetVariable() works as defined in UEFI.
UEFI doesn't say anything about #1 or #2. I think GetVariable() should work in all three cases, but SUSE currently assumes #2 if GetVariable() returns nothing at runtime. Text dealing with these scenarios needs to be written before v0.7 can be released.
Partitioning is a frequent problem when AOSP requires multiple partitions and OE testing requires fewer. Devices need to support switching partition tables without needing a full recovery deployment or the deployment of new bits of firmware.
Part of the goal of EBBR is to separate the firmware bits (partitions) from the OS bits. The intent is to be able to deploy firmware to a board regardless of the OS, and then be able to (re)install any OS without it disturbing the firmware partitions.
Thanks for the comments.
Cheers, g.
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.