Software Archive
Read-only legacy content
17061 Discussions

UEFI driver

mangesh_g_
Beginner
3,910 Views

Hi,

i have custom board similar to minnow board max with added peripheral in that and i am using intel firmware engine for generating firmware image so my question is that is this sdk is capable generating full image is there any need to add extra driver before flash this image to board ?  i found one option in component list this sdk browse uefi driver so how add this driver from outside and how to generate this ? can someone tell me it fast

remember i want to add linux os in my board so do i need to any prior setting in board before flashing this firmware image..

0 Kudos
1 Solution
BrianRichardson
Employee
3,910 Views

This question combines a few issues, so I want to separate them so the answer is clear ...

Booting to Linux OS - UEFI firmware supports booting to a variety of operating systems. This includes Microsoft Windows 8/8.1/10, Windows 10 IoT Core, Linux (most distros, including Yocto), Android and FreeBSD. Even if you build UEFI firmware in a Windows environment, the resulting binary image will boot any supported OS.

Compiling UEFI code - the EDK II project for UEFI will compile on Windows, Linux & OSX. Multiple compilers are supported. More info: https://github.com/tianocore/tianocore.github.io/wiki/Getting%20Started%20with%20EDK%20II

UEFI Driver Wizard: this tool helps build new UEFI drivers. It is written in Python and runs under Windows, Linux & OSX. More info: https://github.com/tianocore/tianocore.github.io/wiki/UEFI-Driver-Wizard 

Intel Firmware Engine SDK: this has tools similar to the UEFI Driver Wizard, designed to make it easier to develop packages for Intel Firmware Engine. Since Intel Firmware Engine is currently only supported in Windows, the SDK also only runs in Windows. However, as noted above, firmware built under Windows will still allow boot to another UEFI compliant OS. More info: https://firmware.intel.com/learn/intel-firmware-engine/downloads 

View solution in original post

0 Kudos
19 Replies
BrianRichardson
Employee
3,910 Views

Yes, but the driver type depends on the device type (Storage, Network, etc.), and if you need to boot to this device or just reserve some resources for the OS in ACPI. Please describe the devices you want to add, and I will find someone at Intel that can describe how to get started with the Intel Firmware Engine SDK to build the right driver package. Thanks.

0 Kudos
mangesh_g_
Beginner
3,910 Views

Hi Brian,

Thanks for replay, i want to add wifi,bluetooth,Xbee,3G,....such devices for such device which connection i have to made in Intel Firmware Engine many component is not there in component list one more question after booting wil it directly gave me uefi shell on monitor  ?    after that only need to attached boot media to it right ? so after on os top will it ask for any driver like whatever component would have there in image ?  Again thanks for supporting Brian.

0 Kudos
BrianRichardson
Employee
3,910 Views

You only need to describe devices in Intel Firmware Engine that have some impact on the boot firmware. I recommend starting without making any UEFI drivers or Intel Firmware Engine packages for the WiFi, Bluetooth, Xbee and 3G devices. If the OS can boot and OS device driver loads, then there is no need for firmware changes.

If you run into issues with these devices at the OS level, then you may need to make a minimal firmware driver to reserve some I/O or memory resources for the device. Please do this experiment first, then we can address any specific cases you have. Without this data, I can't make any better recommendations. Thanks.

0 Kudos
mangesh_g_
Beginner
3,910 Views

hi Brian ,

I have one query about uefi wazard tool for generating uefi driver , see i want to boot linux on my board now i am trying to generate uefi driver through this wazard tool but it is window based so wil it support linux os also ?

again i am trying to generate uefi driver though this warard tool it need udk2014 setup on host pc for that it need visual studio 2008 command promt that is not going to run udk2014 setup so how to solve this query ?

0 Kudos
BrianRichardson
Employee
3,911 Views

This question combines a few issues, so I want to separate them so the answer is clear ...

Booting to Linux OS - UEFI firmware supports booting to a variety of operating systems. This includes Microsoft Windows 8/8.1/10, Windows 10 IoT Core, Linux (most distros, including Yocto), Android and FreeBSD. Even if you build UEFI firmware in a Windows environment, the resulting binary image will boot any supported OS.

Compiling UEFI code - the EDK II project for UEFI will compile on Windows, Linux & OSX. Multiple compilers are supported. More info: https://github.com/tianocore/tianocore.github.io/wiki/Getting%20Started%20with%20EDK%20II

UEFI Driver Wizard: this tool helps build new UEFI drivers. It is written in Python and runs under Windows, Linux & OSX. More info: https://github.com/tianocore/tianocore.github.io/wiki/UEFI-Driver-Wizard 

Intel Firmware Engine SDK: this has tools similar to the UEFI Driver Wizard, designed to make it easier to develop packages for Intel Firmware Engine. Since Intel Firmware Engine is currently only supported in Windows, the SDK also only runs in Windows. However, as noted above, firmware built under Windows will still allow boot to another UEFI compliant OS. More info: https://firmware.intel.com/learn/intel-firmware-engine/downloads 

0 Kudos
mangesh_g_
Beginner
3,910 Views

facing problem while adding driver .inf file in  firmware engine it is generated by uefi wizard tool upon adding this file it prompting me 'unable to add file.the specified uefi driver has an invalid INF file' so tell me how to overcome this ..

again for generating uefi driver is there any extra setting has do except that uefi wizard manual ?

0 Kudos
Jarlstrom_Intel
Employee
3,910 Views

Hi,

Are you using the Components -> Drivers -> UEFI Driver from source  Menu?  If so which .DSC file did you use to add your driver to the [Components] section?

Also in your .INF file what is the INF_VERSION  in the [Defines] Section?

Thanks,

Laurie

0 Kudos
mangesh_g_
Beginner
3,910 Views

Hi,

thaks, see using uefi wizard tool i am generating driver , .DSC file from NT32 project used for it attaching detail also

.INF file detail

[Defines]
  INF_VERSION               = 0x00010005
  BASE_NAME                 = driver1
  FILE_GUID                 = 01269a2e-9c07-11e6-b190-d4bed914abba
  MODULE_TYPE               = UEFI_DRIVER
  VERSION_STRING            = 3.0
  ENTRY_POINT               = driver1DriverEntryPoint
  UNLOAD_IMAGE              = driver1Unload
  UEFI_HII_RESOURCE_SECTION = TRUE

.DSC file detail

[Defines]
  PLATFORM_NAME                  = NT32
  PLATFORM_GUID                  = EB216561-961F-47EE-9EF9-CA426EF547C2
  PLATFORM_VERSION               = 0.4
  DSC_SPECIFICATION              = 0x00010005
  OUTPUT_DIRECTORY               = Build/NT32$(ARCH)
  SUPPORTED_ARCHITECTURES        = IA32|X64
  BUILD_TARGETS                  = DEBUG|RELEASE
  SKUID_IDENTIFIER               = DEFAULT
  FLASH_DEFINITION               = Nt32Pkg/Nt32Pkg.fdf

0 Kudos
Jarlstrom_Intel
Employee
3,910 Views

I do not see anything wrong with the INF.  Can you send a zip of the directory that got created with the UEFI Driver Wizard App?

0 Kudos
mangesh_g_
Beginner
3,910 Views

 Hi.

I have both .DSC file which is nt32 zip file & .INF file in driver2 zip file please find this

thanks528840528841

0 Kudos
Jarlstrom_Intel
Employee
3,910 Views

I have tried to reproduce the same issue with your "driver2.inf" but I am not getting an error when I add your driver from the Menu for "Drivers" > "UEFI driver from source build"   - I have attached screen captures of after adding and the driver2.inf and it is successfully added to the project.  

Are you using the version 2.1.1.112103 of the application?

 

 

 

0 Kudos
Jarlstrom_Intel
Employee
3,910 Views

Are you getting a build error code 19 ?

If so then there should be a log file to show where the error occurs. Can you attach this log file?

Also in order to build your .dsc file needs to have the driver2.inf file listed in the components section. I would recommend using the OvmfPkg .dsc file instead of Nt32Pkg since Nt32Pkg is a Windows Application.

I am able to recreate the Build error code 19 and I see this is an issue because the build is trying to find "nasm". This was an update to the Edk 2 project code for the build tools that needs to be added to the Intel Firmware Engine application.  I will generate a ticket on this issue.

Thank you

0 Kudos
mangesh_g_
Beginner
3,910 Views

yes i am getting error code 19 and this is happing with all recomended .dsc file . and also attached .dsc file , relevent log file, screen shot of error . OvmfPkgIa32X64.dsc i have add this file also same this happening.error19.PNG530100

0 Kudos
mangesh_g_
Beginner
3,910 Views

and also same version of firmware engine i am using , whatever screen capture u have attched same this i have tried with nt23.dsc file also and  ovmfpkg. dsc file

0 Kudos
mangesh_g_
Beginner
3,910 Views

sry previously i have attached wrong log file now i have attched right one please find error530103

0 Kudos
mangesh_g_
Beginner
3,910 Views

Hi Laurie ,

Now i got one error please review this i have attached log file 530290

0 Kudos
Jarlstrom_Intel
Employee
3,910 Views

Hi Mangesh,

You have found yet another issue with the add "UEFI driver from source build" option with the Intel Firmware Engine. This issue from the log file is that Microsoft Resource Compiler (RC.exe) is not found when trying to do the build operation for the .vfr HII files. I have also listed this as an issue for the Intel Firmware Engine project.

I would suggest a better way to add a your own driver would be to use the SDK: https://firmware.intel.com/learn/intel-firmware-engine/downloads Here is a link to download the application: https://firmware.intel.com/sites/default/files/Intel%C2%AE%20Firmware%20Engine%20SDK_R2.0.2.zip . Please follow the install and quick start guide.  There are sample UEFI drivers in the SDK\Samples directory. 

0 Kudos
mangesh_g_
Beginner
3,910 Views

HI Laurie,

where can i get sample uefi driver but could it support in intel firmware engine ? please tell me currect driver so that i dont have any error .

Thanks,

Mangesh

0 Kudos
Jarlstrom_Intel
Employee
3,910 Views

Mangesh,

A good example of a UEFI driver from the SDK is the Graphics driver example.  The sample can be found in the Samples directory: <Install Drive:>\SDK\Samples\SamplePkgFirmware\CustomGraphicsDriver.  To add this, you can follow the steps in the SDK document "Intel(R)_Firmware_Engine_SDK.PDF" section E.7.2 for adding this to the Intel Firmware Engine.

0 Kudos
Reply