Is Machine ID required to boot ARM Board

Hello everybody,

We designed one custom board with TI’s OMAP processor similar to beagleboard.
we registered our board and got Machine ID, even i gave wrong machine ID (i.e., i tried different .dts accidentally IDs are different in each case), my kernel is booting.

In .dts, i made this entry

model = “CDAC OMAP3 WINGZ board”;
compatible = “CDAC,omap3-wingz”, “ti,omap3”;

I didn’t do any changes to the kernel with compatible entry for “CDAC, omap3-wingz”, but still kernel is booting without any problem.

What my question is

  1. Is it really required to pass Machine ID as a parameter to the linux kernel while booting ?
  2. How the kernel is booting even i gave “compatible” field which is not at all available as an entry in linux kernel?

Is only device tree is sufficient to boot the kernel on ARM boards?

Thanks & Regards,

Hello everybody,

We designed one custom board with TI’s OMAP processor similar to beagleboard.
we registered our board and got Machine ID, even i gave wrong machine ID (i.e., i tried different .dts accidentally IDs are different in each case), my kernel is booting.

In .dts, i made this entry

model = “CDAC OMAP3 WINGZ board”;
compatible = “CDAC,omap3-wingz”, “ti,omap3”;

I didn’t do any changes to the kernel with compatible entry for “CDAC, omap3-wingz”, but still kernel is booting without any problem.

What my question is

  1. Is it really required to pass Machine ID as a parameter to the linux kernel while booting ?
  2. How the kernel is booting even i gave “compatible” field which is not at all available as an entry in linux kernel?

That string is used to help differentiate your board in the kernel.

Example of some pdata qwerks that use that value.

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/mach-omap2/pdata-quirks.c?id=refs/tags/v3.19-rc1#n414

Hello everybody,

We designed one custom board with TI’s OMAP processor similar to beagleboard.
we registered our board and got Machine ID, even i gave wrong machine ID (i.e., i tried different .dts accidentally IDs are different in each case), my kernel is booting.

In .dts, i made this entry

model = “CDAC OMAP3 WINGZ board”;
compatible = “CDAC,omap3-wingz”, “ti,omap3”;

I didn’t do any changes to the kernel with compatible entry for “CDAC, omap3-wingz”, but still kernel is booting without any problem.

What my question is

  1. Is it really required to pass Machine ID as a parameter to the linux kernel while booting ?
  2. How the kernel is booting even i gave “compatible” field which is not at all available as an entry in linux kernel?

That string is used to help differentiate your board in the kernel.

Example of some pdata qwerks that use that value.

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/mach-omap2/pdata-quirks.c?id=refs/tags/v3.19-rc1#n414

Hi RobertCNelson,

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/mach-omap2/pdata-quirks.c?id=refs/tags/v3.19-rc1#n409

/*
 * Few boards still need to initialize some legacy devices with
 * platform data until the drivers support device tree. 

*/

From the above comment, i think it is not required to add compatible field for my board in kernel. Since my board is based on beagleboard, there is no legacy devices for beagleboard which required paltform data. Am i right?

If i gave any name in the compatible field in .dts it doesn’t matter for kernel i think.

What about the Machine ID ?

Thanks & Regards,
Rangineni Balasubramanyam

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/mach-omap2/pdata-quirks.c?id=refs/tags/v3.19-rc1#n409

/*
* Few boards still need to initialize some legacy devices with
* platform data until the drivers support device tree.

*/

From the above comment, i think it is not required to add compatible field
for my board in kernel. Since my board is based on beagleboard, there is no
legacy devices for beagleboard which required paltform data. Am i right?

If i gave any name in the compatible field in .dts it doesn't matter for
kernel i think.

This is better:

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/arm/omap/omap.txt

What about the Machine ID ?

Put whatever you want, it just has to be filled.

Regards,