[Arm64-baikalm] Perf counters with Alt kernel
Alexey Sheplyakov
asheplyakov на basealt.ru
Чт Окт 21 12:38:33 MSK 2021
On 21.10.2021 12:53, Andrey Slepuhin wrote:
>> Потому что в device tree не написано, что они есть. Не хватает примерно
>> такого:
>>
>> pmu {
>> compatible = "arm,cortex-a57-pmu";
>> interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
>> };
>>
> Это я понимаю. Я, собственно, скачал сорцы альтовского ядра, но я там
> вообще dts для Байкала не вижу.
Потому что их там нет. По нескольким причинам:
1) Штатно ядро получает dtb от прошивки (UEFI)
2) Кроме TF307 есть и другие платы, и есть разные версии TF307
3) firmware (ARM-TF и UEFI) тоже использует dtb (тот же, что передаёт ядру).
Если ядро и прошивка будут использовать разные dtb - не факт, что это заработает.
Пример - если сказать ядру, что к lvds что-то подключено, а UEFI - нет,
то ядро пытается проинициализировать lvds и вскоре намертво зависает.
(См. https://github.com/edelweiss-tech/kernel/issues/1)
Так что в общем случае вопрос "какой dtb нужен для этой платы" достаточно
сложный. И поэтому лучше использовать тот dtb, который выдаёт UEFI.
> Кто-то может поделиться описанием процедуры, как именно альтовское ядро для
> Байкала правильно собирать?
Вы не с того немного начинаете. Первый вопрос должен быть - "а что у меня за
плата, и какой для неё нужен device tree?" А второй - "а как передать этот
device tree ядру?" А ещё - "а что будет, если я передам ядру не тот dtb?"
И тут всё немного печально.
1. В альте пока нет штатных механизмов для того, чтобы подложить ядру dtb.
Можно, конечно, вручную вписать в /boot/grub.cfg
devicetree /boot/my-blob.dtb
Но при первом же обновлении ядра/grub/make-initrd/и т.п. будет создан новый
grub.cfg (уже без директивы "devicetree").
2. Поддержка dtb в grub весьма на зачаточном уровне. Он не умеет передать кусочек
(overlay), как raspberry pi
3. В Linux тоже нет dtb overlay (потому что Линус упёрся, и сказал, что это не нужно)
Потому лично я dtb прошиваю прямо в firmware, как описано здесь:
https://github.com/edelweiss-tech/spi_builder/blob/master/tf307_flashing.md
Подробная информация о списке рассылки Arm64-baikalm