Ядро Linux зависает при запуске ядра …

Я успешно включил Secure Boot на встроенном устройстве. Проблема в том, что когда я загружаюсь в этом режиме, процесс, похоже, застревает сразу после строки:

Starting kernel ...

как только U-boot скопировал ядро ​​в память и выдал команду bootm .

В отладчике я могу зафиксировать, что ПК застрял в команде с yield а затем присваивается pc = pc-4 – так по существу цикл.

Я никогда не поднимал linux на этом низком уровне раньше, поэтому я не уверен, с чего начать искать. Тем не менее, я заметил, что мне удалось успешно загрузить образ ядра, когда он не находится в защищенном режиме, поэтому это может быть более подходящим вопросом для поставщика.

1) В общем, где я могу найти диагностическую информацию U-boot относительно стадии передачи исполнения?

2) В какой момент полностью выполняется ядро? т.е. когда U-boot не функционирует?

Возможно, вы можете сбросить память ранних распечаток linux, используя следующую процедуру. Причиной может быть, ядро ​​загружается, но оно зависло перед консолью init. Также поместите отпечатки в точку входа ядра в uboot и подтверждение управления передается ядру.

Найдите файл System.map . Используйте команду ниже для идентификации адреса log_buf :

 grep __log_buf System.map 

Это даст что-то вроде

 c0352d88 B __log_buf 

Теплая загрузка платы (содержимое в ОЗУ не должно быть удалено).

В Uboot выгрузите память __log_buf (c0352d88). Он выгрузит отпечатки консоли Kernel. Таким образом, вы можете определить, где происходит то, что произошло.