About machine ID while kernel boot process.
Typically, while building the Linux kernel the board model is specified. Each type of boards has its own configuration files with hardware description of the board components (kernel_src/arch).
Each file has a structure of that type (usually this is at the very bottom of the file):
MACHINE_START(DB88F6281_BP, "Mrv Development Board") .atag_offset = 0x100, .init_machine = db88f6281_init, .map_io = kirkwood_map_io, .init_early = kirkwood_init_early, .init_irq = kirkwood_init_irq, .timer = &kirkwood_timer, .restart = kirkwood_restart, MACHINE_END
The point is that during configuration of the kernel several types of boards can be chosen for building. But at startup, the kernel should choose the system configuration for which the kernel is running .
It is choosen using the uBoot variable arcNumber. It means that the uBoot variable arcNumber is passed to the kernel and compared with the value DB88F6281_BP. In case of matching this configuration is being download. If there is no matching of the variable arcNumber with all existing configurations we can see the following massage on the screen:
Error: unrecognized/unsupported machine ID (r1 = 0x00000d54). Available machine support: ID (hex) NAME 0000089b LaCie d2 Network v2 0000089e LaCie 5Big Network v2 0000089c LaCie 2Big Network v2 00000b1e HP t5325 Thin Client Please check your kernel config and/or bootloader.