Ядро Linux не будет загружаться под отладчиком JTAG

#linux-kernel #gdb #embedded-linux #jtag

Вопрос:

Наличие оборудования под управлением Linux (OpenWRT), работающего как заклинание. Процессор — это IMX6ULL от NXP. Этот процессор имеет интерфейс JTAG и поддерживается отладчиком J-Link. Получил хорошую загрузку U-boot под отладчиком JTAG, но возникли проблемы с ядром Linux. Используя vmlinux скомпилированный с CONFIG_DEBUG_INFO=y и CONFIG_DEBUG_KERNEL=y .

Вот точка входа в запуск ядра введите описание изображения здесь

Я могу шаг за шагом просматривать код, пока __не включу функцию_mmu. Вот четыре шага перед выполнением stucks: введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

e.g. on execution

 mcr p15, 0, r4, c2, c0, 0       @ load page table pointer
 

line of code it stucks. Registers state on each step shown on the right side of screenshot. Don’t know anything about assembler so can’t understand what is wrong.
Because of facing such issue under debugging I am pretty sure that something not initialized properly.
Some things to be initialized by u-boot during production flow, e.g. on booting kernel after U-boot initialized and passes execution to the kernel.
Trying to find what is page table pointer, trying to understand what register should store what value without luck.
Could someone please give me a hint how can I handle that issue?
Probably how to initialize page table pointer properly?