diff --git a/include/fru_utils.hpp b/include/fru_utils.hpp
index f1d8e94..d1784cd 100644
--- a/include/fru_utils.hpp
+++ b/include/fru_utils.hpp
@@ -123,7 +123,7 @@
     formatIPMIFRU(const std::vector<uint8_t>& fruBytes,
                   boost::container::flat_map<std::string, std::string>& result);
 
-std::vector<uint8_t>& getFRUInfo(const uint8_t& bus, const uint8_t& address);
+std::vector<uint8_t>& getFRUInfo(const uint16_t& bus, const uint8_t& address);
 
 uint8_t calculateChecksum(std::vector<uint8_t>::const_iterator iter,
                           std::vector<uint8_t>::const_iterator end);
diff --git a/src/fru_device.cpp b/src/fru_device.cpp
index d2af2a2..446d5c4 100644
--- a/src/fru_device.cpp
+++ b/src/fru_device.cpp
@@ -928,7 +928,7 @@
 }
 
 void rescanOneBus(
-    BusMap& busmap, uint8_t busNum,
+    BusMap& busmap, uint16_t busNum,
     boost::container::flat_map<
         std::pair<size_t, size_t>,
         std::shared_ptr<sdbusplus::asio::dbus_interface>>& dbusInterfaceMap,
@@ -1091,7 +1091,7 @@
     std::vector<uint8_t> fruData;
     try
     {
-        fruData = getFRUInfo(static_cast<uint8_t>(bus),
+        fruData = getFRUInfo(static_cast<uint16_t>(bus),
                              static_cast<uint8_t>(address));
     }
     catch (const std::invalid_argument& e)
@@ -1302,14 +1302,14 @@
                      objServer, systemBus);
     });
 
-    iface->register_method("ReScanBus", [&](uint8_t bus) {
+    iface->register_method("ReScanBus", [&](uint16_t bus) {
         rescanOneBus(busMap, bus, dbusInterfaceMap, true, unknownBusObjectCount,
                      powerIsOn, objServer, systemBus);
     });
 
     iface->register_method("GetRawFru", getFRUInfo);
 
-    iface->register_method("WriteFru", [&](const uint8_t bus,
+    iface->register_method("WriteFru", [&](const uint16_t bus,
                                            const uint8_t address,
                                            const std::vector<uint8_t>& data) {
         if (!writeFRU(bus, address, data))
@@ -1389,7 +1389,7 @@
                                           << "\n";
                                 continue;
                             }
-                            rescanOneBus(busMap, static_cast<uint8_t>(bus),
+                            rescanOneBus(busMap, static_cast<uint16_t>(bus),
                                          dbusInterfaceMap, false,
                                          unknownBusObjectCount, powerIsOn,
                                          objServer, systemBus);
diff --git a/src/fru_utils.cpp b/src/fru_utils.cpp
index e030ac8..4199439 100644
--- a/src/fru_utils.cpp
+++ b/src/fru_utils.cpp
@@ -768,7 +768,7 @@
     return static_cast<unsigned int>(area) + 1;
 }
 
-std::vector<uint8_t>& getFRUInfo(const uint8_t& bus, const uint8_t& address)
+std::vector<uint8_t>& getFRUInfo(const uint16_t& bus, const uint8_t& address)
 {
     auto deviceMap = busMap.find(bus);
     if (deviceMap == busMap.end())
