1 /* 2 * Copyright (C) 2020-2021 Intel Corporation 3 * 4 * SPDX-License-Identifier: MIT 5 * 6 */ 7 8 #pragma once 9 #include "shared/source/helpers/non_copyable_or_moveable.h" 10 11 #include "sysman/firmware/firmware_imp.h" 12 #include "sysman/firmware/os_firmware.h" 13 #include "sysman/linux/os_sysman_imp.h" 14 15 namespace L0 { 16 17 class LinuxFirmwareImp : public OsFirmware, NEO::NonCopyableOrMovableClass { 18 public: 19 bool isFirmwareSupported(void) override; 20 void osGetFwProperties(zes_firmware_properties_t *pProperties) override; 21 ze_result_t osFirmwareFlash(void *pImage, uint32_t size) override; 22 ze_result_t getFirmwareVersion(std::string fwType, zes_firmware_properties_t *pProperties); 23 LinuxFirmwareImp() = default; 24 LinuxFirmwareImp(OsSysman *pOsSysman, const std::string &fwType); 25 ~LinuxFirmwareImp() override = default; 26 27 protected: 28 FirmwareUtil *pFwInterface = nullptr; 29 SysfsAccess *pSysfsAccess = nullptr; 30 bool isFWInitalized = false; 31 std::string osFwType; 32 }; 33 34 } // namespace L0 35