nvidia-gpu: add gpu sensor app
The commit adds a dbus sensor app that uses MCTP VDM protocol to read
temperature sensor value from the gpu.
The MCTP VDM protocol is an extension of the OCP specification -
'''
https://www.opencompute.org/documents/ocp-gpu-accelerator-management-interfaces-v1-pdf
'''
Tested.
Copy the gpusensor app on gb200nvl-obmc machine and run it.
```
root@gb200nvl-obmc:~# ./nvidiagpusensor
```
The app runs without errors.
```
root@gb200nvl-obmc:~# busctl tree xyz.openbmc_project.GpuSensor
└─ /xyz
└─ /xyz/openbmc_project
└─ /xyz/openbmc_project/sensors
```
Change-Id: Iee7376a9116489052c690f2e3a1ca8d0f29564dd
Signed-off-by: Harshit Aghera <haghera@nvidia.com>
diff --git a/src/nvidia-gpu/NvidiaGpuSensorMain.cpp b/src/nvidia-gpu/NvidiaGpuSensorMain.cpp
new file mode 100644
index 0000000..85fec45
--- /dev/null
+++ b/src/nvidia-gpu/NvidiaGpuSensorMain.cpp
@@ -0,0 +1,23 @@
+/*
+ * SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION &
+ * AFFILIATES. All rights reserved. SPDX-License-Identifier: Apache-2.0
+ */
+
+#include <boost/asio/io_context.hpp>
+#include <sdbusplus/asio/connection.hpp>
+#include <sdbusplus/asio/object_server.hpp>
+
+#include <memory>
+#include <string>
+
+int main()
+{
+ boost::asio::io_context io;
+ auto systemBus = std::make_shared<sdbusplus::asio::connection>(io);
+ sdbusplus::asio::object_server objectServer(systemBus, true);
+ objectServer.add_manager("/xyz/openbmc_project/sensors");
+ systemBus->request_name("xyz.openbmc_project.GpuSensor");
+
+ io.run();
+ return 0;
+}