News: 0000829052

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Walleij: How the ARM32 kernel starts

([Kernel] Aug 19, 2020 13:47 UTC (Wed) (corbet))


Linus Walleij [1]continues his exploration of the boot process for the 32-bit Arm kernel. " BAM! The MMU is on. The next instruction (which is incidentally an instruction cache flush) will be executed from virtual memory. We don’t notice anything at first, but we are executing in virtual memory. When we return by jumping to the address passed in r13 , we enter __mmap_switched at the virtual memory address of this function, somewhere below PAGE_OFFSET (typically 0xC0nnnnnn ). We can now facilitate absolute addressing: the kernel is executing as intended. "



[1] https://people.kernel.org/linusw/how-the-arm32-kernel-starts

"Yacc" owes much to a most stimulating collection of users, who have
goaded me beyond my inclination, and frequently beyond my ability in
their endless search for "one more feature." Their irritating
unwillingness to learn how to do things my way has usually led to my
doing things their way; most of the time, they have been right.
-- S. C. Johnson, "Yacc guide acknowledgements"