![]() ![]() ![]() But when it comes to things that tend to change, for example the PCI/PCIe peripherals on a PC computer, it’s desirable to let the kernel learn about them in run-time. This is fine for everything that is usually fixed, such as the internal registers on an x86 processor, or the access of the BIOS on a PC. The straightforward solution is platform-specific boot routines in the kernel’s sources, which are enabled by kernel configuration parameters. But how? All these operations are carried out by writing to registers, but how does the Linux kernel know their addresses? How does it know how many cores it can run on? How much memory it can access? ![]() It needs to print something to the console. The kernel is now just like any bare-metal application running on a processor. It then jumps to the kernel’s entry point. Picture this: The bootloader has just copied the Linux kernel into the processor’s SDRAM. The examples assume that the Xillinux distribution for the Zedboard is used. This tutorial was written with Xilinx' Zynq-7000 EPP device in mind (an ARM Cortex-A9 combined with FPGA), but the general concepts apply for any Linux kernel using the device tree. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |