Is there a memory map available for the Jetson Orin Nano? I am working on a device tree overlay file for a mipi camera device driver, and there are lots of “magic” numbers in the .dts and .dtsi files for other cameras(“reference” sensors). Is there a way to know what these addresses should be aside from guessing?
Hi,
You may share what magic numbers you see in device tree. Not sure which numbers you are referring to.
If you follow camera driver programming guide it is supposed to work fine:
Sensor Software Driver Programming — NVIDIA Jetson Linux Developer Guide
When I say “magic numbers” it is in the sense a software engineer would use the term - a number that comes from somewhere, but it is not clear from where; numbers such as the address 3180000 which is clearly a valid i2c address on a particular piece of hardware. Which one? I have been unable to find this information. I have read the Sensor Software Driver Programming Guide many times over. It does not provide this information. I realize that it is “supposed to work just fine”, but it isn’t, or I would not be posting any questions. It is frustrating to read responses to specific questions on this forum only to find that the answer is a tersely-worded instruction to RTFM.
You can check the TRM for the memory base address of the bus/functions
Thanks
Thank you! That’s pretty funny right there. Well, I would, of course, be happy to read the manual if I could find it. From inside your website a search for Jetson Orin Nano Technical Reference Manual (I assume that is what you mean by TRM) produces no Technical Reference Manual. A search engine from outside your website produces a link to a request for the same with a broken link to the TX1 reference manual, repeatedly asserted to be good enough, since it is the same as the Jetson Orin Nano? But, hey! A clue! Now I search for “TX1 Technical Reference Manual” (on docs.nvidia.com), and I find a reference to this manual in a section of a document that seems to be targeted to “l4t-3276” (not certain what to make of that, but you have to infer what version a document is for from the path in the link, or you will go down a rabbit hole looking for a directory in the linux source that was moved in the newer version, but you are looking at the old (unlabeled) version of the documentation) that is labeled “Tegra X1 (SoC) Technical Reference Manual”. The actual link for the document is
https://developer.nvidia.com/embedded/dlc/tegra-x1-technical-reference-manual
I don’t yet see the memory address mentioned above (3180000), but, as this is a 2,977 - page document, I will be a minute taking a closer look.
Now, I do see the 3180000 from /proc/iomem, but how do I know that this is the address associated with the i2c on CAM1? (The camera is a 4-lane, so cannot connect to CAM0). I probably should have started there, but I have not done much kernel programming yet.
If you are using devkit you just reference to imx219/imx477 if not you need follow your HW design for the connection.
BTW, the MIPI lanes and i2c is independent.
Thank you for the response! I assume this to mean that the addresses used by the imx219/imx477 cameras are the correct ones for my case, and further that the i2c address is the same for both CAM0 and CAM1.
Yes, CAM0/CAM1 use the same i2c bus on Orin Nano devkit.
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.