Kernel notes == So much confusion indeed == On the "new project", finally. I returned the last piece of hardware, and now I'm fully on the new task, which is very generic, about providing a boards support package for ...well, the board. What board? The board does not exist quite yet, but we have a bunch of ways of simulating it. Nobody seems to know all the details, or maybe I didn't ask to the right people. One of these ways is a quite big SOC, that I finally collected today. Who to ask about it? One dude is working from home, another one is home sick. The board has a SD card, and I've got instructions on how to flash it. I got a clue on *what* to flash on it after lots of research, and asking around. I've got the SD card, I've got the software. But I've got only a micro-sd hole on my laptop, while this beast needs a regular SD. Where do I get an adapter, or a writer, or *anything*? Nobody knows. It looks like "nobody knows" is the new mantra. == Kernel == Exploring the kernel, with the goal of figuring out how the devtree ends up influencing the devices, and eventually results in /dev/uioX being available (in my case). - I did not yet find any explicit reference to this, but setup_arch seems to be the name of the generic entry point for architecture dependent initialization. It is implemented by all arch/*/kernel/setup.c - ARM: the device tree seems to come from a global pointer named __fdt_pointer. the pointer is marked as __initdata, which means that it ends up in the '.init.data' section (of the ELF). According to the comment, the section is freed after initialization. Clever. - Core functionalities found on my way (possibly interesting in future): - fixmap.h - compile-time virtual memory allocation - memblock.h - drivers/of - device tree and open-firmware support - drivers/of/fdt.c Flat device tree support, from open-firmware A global structure acts as a container for properties. The structure seems to be set read-only after a first initialization/fixup phase (which I think has to do with alignment). - on device tree the machine name is first sought as thee 'model' property, and then with 'compatible' It might be interesting to have a qemu run, with device tree scanning, erniched with some printfs!