Carrier partnumber in ids in plugin-manager


I am designing my own carrier for Xavier. I am looking into plugin-manager in linux device-tree and how cboot handles it.

When I was looking at the linux device-tree plugin-manager sections, I found many ids = 2822-0000-XXXX.

  1. I saw 2822-0000-200, 2822-0000-300, 2822-0000-400, and 2822-0000-500 in plugin-manager. My xavier-devkit shows /proc/device-tree/chosen/plugin-manager/ids/2822-0000-600 which doesn’t fit into any of plugin-manager. What are these variations of 2822-0000-XXX carriers for? I couldn’t find any document for it.

  2. After looking at cboot code, if my understating is correct, cboot is the one read EEPROMs on SoM and carrier (and camera board if has one), and applies override nodes for the matched “ids” in plugin-manager. cboot also read odm-data, and applies override nodes in plugin-manager according to the bits in odm-data. Correct?

  3. What are the special characters (e.g. <, <=, and *) meaning in “ids = ” in device-tree. I saw "ids = <2822-0000-200";, ids = "<=2822-0000-300"; and ids = "3333-*";



“p2822” is the carrier board ID. We have lots of kind of carrier board internally and they are not public. So there will be no document for such board.

And your understanding in (2) is correct.

Generally “<” means the id earlier than. For example, 2822-0000-200 < 2822-0000-300.
And 3333 is generally the id from a camera module.

Hi @WayneWWW

Thanks for your reply.

My xavier-devkit carrier is showing 2822-0000-600. Am I correct that all public devkit carrier are >= 2822-0000-600? And for the ones that are < 2822-0000-600 are your internal carriers for NVIDIA’s internal use?


Why do you have to worry about the ID on the carrier board?

I cannot guarantee what would be the the ID of carrier board in future.

Because I am customizing device-tree for my carrier, which I am not sure whether I need devkit carrier specific plugin-manager override or not.

For example, in tegra194-plugin-manager-p2822-0000.dtsi, the override invert pwm fan polarity, make p2822_vdd_5v_sata active low, disable ufshci on ids <2822-0000-400 which I don’t think I need any of them.

Even pcie plugin-manager - tegra194-p2888-p2822-pcie-plugin-manager.dtsi defines lots of override for id < 2822-0000-200/300/400 where I don’t think I need any of them either.

I am only worrying about the old IDs (200/300/400). My thought is that all overrides for id < 2822-0000-200/300/400 are for internal devkit carrier (or old revisions) where they may have issue in hw (e.g. pwm polarity) that needs workaround in plugin-manager override. But I am not sure on this.

I think my best practice is adding a new ID for my own carrier (write this ID in eeprom on my carrier) for plugin-manager, so that I can customize as per my needs.


You don’t need to care about how NV publishes the carrier board. Just make sure the device tree can match your carrier board…

Plugin-manager is actually for our internal use since we have more carrier boards here. And each kind of carrier board has its own setting. Public users who made own carrier board like you should no need to worry about that…

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.