Single-board computer software development discussions
 help / color / mirror / Atom feed
From: "Alexey V. Vissarionov" <gremlin@altlinux.org>
To: Single-board computer software development discussions
	<devel-sbc@lists.altlinux.org>
Subject: Re: [devel-sbc] UEFI и Raspberry Pi
Date: Mon, 11 May 2020 13:53:38 +0300
Message-ID: <20200511105337.GL24180@altlinux.org> (raw)
In-Reply-To: <CAGvFrt3-2OrietggQ_b8uKhLVrV_Uhxx4_oMCELwcSm92TcONA@mail.gmail.com>

On 2020-05-11 11:48:36 +0300, Aleksey Novodvorsky wrote:

 >> Через u-boot можно загрузиться только с SD-карты. Через edk2
 >> можно загрузиться только через USB.
 >>
 >> Это совершенно разные загрузчики. u-boot предоставляет
 >> минимальную совместимость с UEFI, только чтобы grub-efi
 >> загрузить.
 >> edk2 - это полноценный UEFI, который позволяет грузить с
 >> флешки гибридные ISO-образы. А это полноценные live,
 >> инсталляторы, rescue.

Все эти "полноценные live, инсталляторы, rescue" можно сделать
просто на базе USB-флешки, безо всяких ISO-образов. Но тут, как
всегда, "есть нюансы".

 >> Чем и интересен.

 > +1

-1

Вероятность того, что кто-то подключит сидюк к мелкому компутеру,
пренебрежимо мала (хотя на том же BPi-R1 есть SATA прямо на плате).
Вероятность того, что этот сидюк будет использоваться в качестве
загрузочного накопителя - еще меньше.

Даже на писюшатине они практически вымерли. Вот захожу я по адресу
https://www.citilink.ru/catalog/mobile/notebooks/ и среди параметров
поиска вижу прекрасное соотношение вариантов:

  Оптический привод: DVD - 73, без привода 1020.

Крупный ретейлер что-то знает о предпочтениях покупателей? :-)

Это именно ноутбучная категория, причем есть еще две: ультрабуки
и трансформеры (у которых сидюков не бывает в принципе).

Поэтому остаются флешки - как SD/MMC, так и USB. И тут начинается
самое интересное.

 > Честно говоря, загрузка с USB мне кажется плюсом. Это серьезный
 > шаг к унификации и пользовательских свойств, и технологии
 > разработки/сборки. Вопрос только в выравнивания сборки RPI 4
 > по багам.

Далеко не только.

Дело в процессе загрузки. Когда процессор стартует, ему доступны
только те устройства, которые есть у него на борту (процессоров как
таковых уже давно нет, они все в той или иной мере SoC, System on
Chip) - это немного ПЗУ, немного ОЗУ (килобайты), интерфейсы I2C и
SPI, ногодрыжество (GPIO)... и все. Про внешние устройства ничего
не известно, и как с ними работать - в общем случае непонятно.

Однако "есть один нюанс", который сильно упрощает жизнь: почти все
современные ПЗУ умеют работать по SPI, а реализовать его предельно
просто - по одному проводу отправляем (или, наоборот, принимаем)
синхроимпульс, по второму передаем один бит данных, по третьему
принимаем один бит встречных данных. Провода и сигналы называются,
соответственно, SCK (clock), SDO (data out; также MOSI) и SDI
(data in; также MISO); добавляем питание (VCC), общий (GND) и выбор
устройства (CS, chip select) - все, можно работать. А самое главное,
в таком режиме умеют работать и SD/MMC-флешки: пусть медленно, зато
единообразно. В общем, есть место, где хранится информация о том,
что у нас есть и как с ним работать.

А вот USB-хосты унифицированы только с одной стороны - той, куда
подключается периферия. Там все хорошо: более 20 лет существует
стандарт https://www.usb.org/sites/default/files/usbmassbulk_10.pdf
Но нам-то интересна та часть, которая находится со стороны SoC... и
там полнейший зоопарк.

Соответственно, для EFI-загрузки с USB нужна унификация содержимого
ПЗУ на платах (пусть хотя бы на уровне "найти USB-флешку, найти на
ней активный раздел с типом 0xEF и файловой системой FAT32, прочитать
в память файл EFI/Boot/bootaa64.efi и передать ему управление"). Кто
этим будет заниматься - я не знаю: производителям железяк это не
нужно, производителям SoC тем более.


-- 
Alexey V. Vissarionov
gremlin ПРИ altlinux ТЧК org; +vii-cmiii-ccxxix-lxxix-xlii
GPG: 0D92F19E1C0DC36E27F61A29CD17E2B43D879005 @ hkp://keys.gnupg.net


  parent reply	other threads:[~2020-05-11 10:53 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-08 16:07 ` Антон Мидюков
2020-05-08 17:20   ` Сергей Бессонов
2020-05-11  8:01     ` Антон Мидюков
2020-05-11  8:07       ` Сергей Бессонов
2020-05-11  8:19         ` Антон Мидюков
2020-05-11 10:53             ` Alexey V. Vissarionov [this message]
2020-05-11 11:24               ` Антон Мидюков
2020-05-12 13:51                 ` Alexey V. Vissarionov
2020-05-12 14:31                   ` Антон Мидюков
2020-05-11  7:50   ` Антон Мидюков
2020-05-11  8:23       ` Антон Мидюков
2020-05-11  8:53           ` Alexey V. Vissarionov
2020-05-11  9:12           ` Антон Мидюков
2020-05-11 10:10               ` Дмитрий Терехин
2020-05-11 11:11                 ` Alexey V. Vissarionov
2020-05-11 10:16               ` Антон Мидюков
2020-05-11 20:25                   ` Сергей Бессонов
2020-05-12  8:39                       ` Сергей Бессонов
2020-05-12  8:23                   ` Антон Мидюков
2020-05-12 14:14                   ` Alexey V. Vissarionov
2020-05-11 11:07               ` Alexey V. Vissarionov
2020-05-11  9:01     ` Denis Pynkin
2020-05-11  9:16       ` Антон Мидюков

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200511105337.GL24180@altlinux.org \
    --to=gremlin@altlinux.org \
    --cc=devel-sbc@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Single-board computer software development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel-sbc/0 devel-sbc/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel-sbc devel-sbc/ http://lore.altlinux.org/devel-sbc \
		devel-sbc@lists.altlinux.org devel-sbc@lists.altlinux.ru devel-sbc@lists.altlinux.com
	public-inbox-index devel-sbc

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel-sbc


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git