@@ -303,4 +303,137 @@ LZT_TEST_F(
303
303
}
304
304
}
305
305
306
+ LZT_TEST_F (
307
+ FIRMWARE_TEST,
308
+ GivenValidFirmwareHandleWhenFlashingGfxFirmwareThenExpectFirmwareFlashingSuccess) {
309
+ auto fwDirEnv = getenv (" ZE_LZT_FIRMWARE_DIRECTORY" );
310
+ if (nullptr == fwDirEnv) {
311
+ LOG_INFO << " Skipping test as ZE_LZT_FIRMWARE_DIRECTORY not set" ;
312
+ GTEST_SKIP ();
313
+ }
314
+ std::vector<char > testFwImage;
315
+ std::string fwDir (fwDirEnv);
316
+
317
+ for (auto device : devices) {
318
+ uint32_t count = 0 ;
319
+ auto firmware_handles = lzt::get_firmware_handles (device, count);
320
+ if (count == 0 ) {
321
+ FAIL () << " No handles found: "
322
+ << _ze_result_t (ZE_RESULT_ERROR_UNSUPPORTED_FEATURE);
323
+ }
324
+
325
+ for (auto firmware_handle : firmware_handles) {
326
+ ASSERT_NE (nullptr , firmware_handle);
327
+ auto propFw = lzt::get_firmware_properties (firmware_handle);
328
+
329
+ if (propFw.canControl == true &&
330
+ std::string (reinterpret_cast <char *>(propFw.name )) == " GFX" ) {
331
+ std::string fwName (reinterpret_cast <char *>(propFw.name ));
332
+ std::string fwToLoad = fwDir + " /" + fwName + " .bin" ;
333
+ LOG_INFO << " Firmware Name: " << fwName;
334
+ LOG_INFO << " Firmware Path: " << fwToLoad;
335
+ std::ifstream inFileStream (fwToLoad, std::ios::binary | std::ios::ate);
336
+ if (!inFileStream.is_open ()) {
337
+ LOG_INFO << " Skipping test as firmware image not found" ;
338
+ GTEST_SKIP ();
339
+ }
340
+ testFwImage.resize (inFileStream.tellg ());
341
+ inFileStream.seekg (0 , inFileStream.beg );
342
+ inFileStream.read (testFwImage.data (), testFwImage.size ());
343
+ lzt::flash_firmware (firmware_handle,
344
+ static_cast <void *>(testFwImage.data ()),
345
+ testFwImage.size ());
346
+ }
347
+ }
348
+ }
349
+ }
350
+
351
+ LZT_TEST_F (
352
+ FIRMWARE_TEST,
353
+ GivenValidFirmwareHandleWhenFlashingOptionRomDataThenExpectFirmwareFlashingSuccess) {
354
+ auto fwDirEnv = getenv (" ZE_LZT_FIRMWARE_DIRECTORY" );
355
+ if (nullptr == fwDirEnv) {
356
+ LOG_INFO << " Skipping test as ZE_LZT_FIRMWARE_DIRECTORY not set" ;
357
+ GTEST_SKIP ();
358
+ }
359
+ std::vector<char > testFwImage;
360
+ std::string fwDir (fwDirEnv);
361
+
362
+ for (auto device : devices) {
363
+ uint32_t count = 0 ;
364
+ auto firmware_handles = lzt::get_firmware_handles (device, count);
365
+ if (count == 0 ) {
366
+ FAIL () << " No handles found: "
367
+ << _ze_result_t (ZE_RESULT_ERROR_UNSUPPORTED_FEATURE);
368
+ }
369
+
370
+ for (auto firmware_handle : firmware_handles) {
371
+ ASSERT_NE (nullptr , firmware_handle);
372
+ auto propFw = lzt::get_firmware_properties (firmware_handle);
373
+ if (propFw.canControl == true &&
374
+ std::string (reinterpret_cast <char *>(propFw.name )) == " OptionROM" ) {
375
+ std::string fwName (reinterpret_cast <char *>(propFw.name ));
376
+ std::string fwToLoad = fwDir + " /" + fwName + " .bin" ;
377
+ LOG_INFO << " Firmware Name: " << fwName;
378
+ LOG_INFO << " Firmware Path: " << fwToLoad;
379
+ std::ifstream inFileStream (fwToLoad, std::ios::binary | std::ios::ate);
380
+ if (!inFileStream.is_open ()) {
381
+ LOG_INFO << " Skipping test as firmware image not found" ;
382
+ GTEST_SKIP ();
383
+ }
384
+ testFwImage.resize (inFileStream.tellg ());
385
+ inFileStream.seekg (0 , inFileStream.beg );
386
+ inFileStream.read (testFwImage.data (), testFwImage.size ());
387
+ lzt::flash_firmware (firmware_handle,
388
+ static_cast <void *>(testFwImage.data ()),
389
+ testFwImage.size ());
390
+ }
391
+ }
392
+ }
393
+ }
394
+
395
+ LZT_TEST_F (
396
+ FIRMWARE_TEST,
397
+ GivenValidFirmwareHandleWhenFlashingOptionRomCodeThenExpectFirmwareFlashingSuccess) {
398
+ auto fwDirEnv = getenv (" ZE_LZT_FIRMWARE_DIRECTORY" );
399
+ if (nullptr == fwDirEnv) {
400
+ LOG_INFO << " Skipping test as ZE_LZT_FIRMWARE_DIRECTORY not set" ;
401
+ GTEST_SKIP ();
402
+ }
403
+ std::vector<char > testFwImage;
404
+ std::string fwDir (fwDirEnv);
405
+
406
+ for (auto device : devices) {
407
+ uint32_t count = 0 ;
408
+ auto firmware_handles = lzt::get_firmware_handles (device, count);
409
+ if (count == 0 ) {
410
+ FAIL () << " No handles found: "
411
+ << _ze_result_t (ZE_RESULT_ERROR_UNSUPPORTED_FEATURE);
412
+ }
413
+ for (auto firmware_handle : firmware_handles) {
414
+ ASSERT_NE (nullptr , firmware_handle);
415
+ auto propFw = lzt::get_firmware_properties (firmware_handle);
416
+ if (propFw.canControl == true &&
417
+ std::string (reinterpret_cast <char *>(propFw.name )) == " OptionROM" ) {
418
+ std::string fwName (reinterpret_cast <char *>(propFw.name ));
419
+ std::string fwToLoad = fwDir + " /" + fwName + " .bin" ;
420
+ LOG_INFO << " Firmware Name: " << fwName;
421
+ LOG_INFO << " Firmware Path: " << fwToLoad;
422
+ std::ifstream inFileStream (fwToLoad, std::ios::binary | std::ios::ate);
423
+ if (!inFileStream.is_open ()) {
424
+ LOG_INFO << " Skipping test as firmware image not found" ;
425
+ GTEST_SKIP ();
426
+ }
427
+ testFwImage.resize (inFileStream.tellg ());
428
+ inFileStream.seekg (0 , inFileStream.beg );
429
+ inFileStream.read (testFwImage.data (), testFwImage.size ());
430
+ lzt::flash_firmware (firmware_handle,
431
+ static_cast <void *>(testFwImage.data ()),
432
+ testFwImage.size ());
433
+ track_firmware_flash (firmware_handle);
434
+ }
435
+ }
436
+ }
437
+ }
438
+
306
439
} // namespace
0 commit comments