Recently my angry post on Google+  got so many comments that it was
clear that it would be better to move to some mailing list with discussion.
As it is about boot loaders and Linaro has engineers from most of SoC
vendor companies I thought that this will be best one.
All started when I got Pine64 board (based on Allwinner A64 SoC) and had
same issue as on several boards in past - boot loader written in some
random place on SD card.
Days where people used Texas Instruments SoC chips were great - in-cpu
boot loader knew how to read MBR partition table and was able to load
1st stage boot loader (called MLO) from it as long it was FAT filesystem.
GPU used by Raspberry/Pi is able to read MBR, finds 1st partition and
reads firmware files from there as long it is FAT.
Chromebooks have some SPI flash to keep boot loaders and use GPT
partitioning to find where from load kernel (or another boot loader).
And then we have all those boards where vendors decided that SPI flash
for boot loader is too expensive so it will be read from SD card
instead. From any random place of course...
Then we have distributions. And instead of generating bunch of images
per board they want to make one clean image which will be able to handle
as much as possible.
If there are UEFI machines on a list of supported ones then GPT
partitioning will be used, boot loader will be stored in "EFI system
area" and it boots. This is how AArch64 SBSA/SBBR machines work.
But there are also all those U-Boot (or fastboot/redboot/whateverboot)
ones. They are usually handled by taking image from previous stage and
adding boot loader(s) by separate script. And this is where "fun" starts...
GPT takes first 17KB of storage media as it allow to store information
about 128 partitions. Sure, no one is using so many on such devices but
still space is reserved.
But most of chips expects boot loader(s) to be stored:
- right after MBR
- from 1KB
- from 8KB
- any other random place
So scripts start to be sets of magic written to handle all those SoCs...
Solution for existing SoCs is usually adding 1MB of SPI flash during
design phase of device and store boot loader(s) there. But it is so
expensive someone would say when it is in 10-30 cents range...
Even 96boards CE specification totally ignored that fact while it could
be a way of showing how to make popular board. Instead it became
yet-another-board-to-laugh (EE spec did not improve much).
Is there a way to get it improved? At least for new designs?
On 5 May 2016 at 20:08, Bill Gatliff <bgat(a)billgatliff.com> wrote:
> On Thu, May 5, 2016 at 11:50 AM Martin Stadtler <
> martin.stadtler(a)linaro.org> wrote:
>> I would add, that you need to draw a line in the sand between the
>> 'consumer' (don't flame me, I am just struggling to find a better term)
>> boards and those that are positioned for production/enterprise.
> One way to draw the line is whether the board is delivered to be used
> as-is, vs. with the expectation of further development activities that will
> change the work product that shipped with the board.
> In the first case, all you care is that it works when it leaves the dock.
> In the latter case, you care more that it can't be easily broken later.
> That's a pretty big difference in my experience.
> Bill Gatliff
> Embedded Linux training and consulting
> (309) 453-3421
Director, Enterprise Group
IRC: martinst@#linaro on irc.freenode.ne <http://irc.freenode.net/>t
Summary: Your SSH username on https://android-review.linaro.org will
now match Linaro username (first.last) after the next login. You local
repository clones need to be updated for new username.
https://android-review.linaro.org was the first Gerrit server in
Linaro, when there were no central LDAP user database yet. As a result,
there were free-form SSH usernames used, instead of the later standard
first.last as used on all the other Gerrit servers. This inconsistency
was a subject of background concern for Systems team, but of course not
something having enough priority to "fix". However, Gerrit 2.12.2
upgrade started tonight uncovered following issue: Gerrit tries to
synchronize its SSH username setting with LDAP, and fails, as Gerrits
own rules disallow changing of username. The symptom of this is error
"Authentication temporary unavailable" when a user with "old" SSH
username tries to login via browser.
While this can be classified as a Gerrit bug (and previous versions
were smart enough), we'll unlikely find any timely solution to keep
things as they are. So, it makes sense to take a chance of cleaning up
username and making this server follow standard username conventions.
1. All usernames which don't match "first.last" pattern are reset.
2. If you are affected, you won't be able to perform SSH operations
(like git clone/push) until you login via web interface.
3. On the next login via web interface, it will be set to LDAP's
4. You will need to update remotes of your existing git clones to new
username (or alternatively, re-clone).
5. If you already use "first.last" SSH username, you're unaffected.
The list of users affected is given below. While it seems long,
majority of enrties there are for people no longer at Linaro, or
for community accounts (which didn't work since we switched to LDAP
anyway). If you need further assistance, please open a ticket at
Linaro.org | Open source software for ARM SoCs
Follow Linaro: http://www.facebook.com/pages/Linarohttp://twitter.com/#!/linaroorg - http://www.linaro.org/linaro-blog
One of the goals of RPB is to follow that our changes go back
upstream. For the next RPB release, a more polished report is planned.
But to get things started, here's a sample - and to use as baseline to
compare progress for the 16.06 release. The list of packages is
collected from db410/alip image with distrodelta script. This lists
the packages that do not become from Debian (Jessie release) or Debian
New packages not in Debian:
* add UCM config file for HDMI and HiFi on DB410c
* add UCM config file for HDMI on IFC6410
* seccomp and namespace fixes
* patches to compile on arm64/armhf
* ti-connectivity (updates for HiKey):
- Include wl18xx-fw-4 firmware
- Add TIInit_11.8.32.bts for bluetooth support
* Reverting requirement for debhelper >= 9.20151220
* Upload to make it work with latest systemd:
* See kernel changes report (TBD)
 https://github.com/suihkulokki/distrodelta with command
distrodelta -o Debian 'Debian Backports'