Здравствуйте. Необходимо собрать ядро для embedded-устройства из исходников, располагающихся по адресу: https://github.com/linux4sam/linux-at91 В устройстве установлен процессор AT91SAM9G45
В результате, после загрузки ядра на устройство с помощью u-boot и при попытке запуска ядра возникает сообщение:
Error: unrecognized/unsupported machine ID (r1 = 0x000008a4).
Available machine support:
ID (hex) NAME
ffffffff Generic DT based system
ffffffff Atmel AT91SAM9
Please check your kernel config and/or bootloader.
Насколько я понял, u-boot сообщает, что требуется ядро с machine id = 0x000008a4, но в kernel определен machine id = 0xffffffff
Само ядро сконфигурировано с опцией CONFIG_SOC_AT91SAM9: Описание опции:
Select this if you are using one of those Atmel SoC:
AT91SAM9260,
AT91SAM9261,
AT91SAM9263,
AT91SAM9G15,
AT91SAM9G20,
AT91SAM9G25,
AT91SAM9G35,
AT91SAM9G45,
AT91SAM9G46,
AT91SAM9M10,
AT91SAM9M11,
AT91SAM9N12,
AT91SAM9RL,
AT91SAM9X25,
AT91SAM9X35,
AT91SAM9XE
Т. е. сама опция уже включает в себя поддержку AT91SAM9G45, но при этом u-boot не хочет запускать ядро, скомпилированное с этой опцией. Если в u-boot задать setenv machid=0xffffffff, то ядро просто не запустится.
Каким образом можно решить эту проблему? Насколько я знаю, из ядра убрали поддержку конкретно процессора AT91SAM9G45. Можно ли как-нибудь (патчами, или м. б. существуют форки исходников) добавить ее снова?