Well, I show you "Big picture" as you asked for.
Actors:
User
PC with preinstalled OS: RedHat from 2010year
Network Interface Card (let's call it "NIC") produced in 2011year
Usage model:
1. User plugs NIC to PCIe bus in PC
2. User turns on PC
3. User has got an internet connection
Do you got the idea? Just plug and play - no drivers, no additional installations, etc.
Of course - there are some limitations I tell about later.
If user wants to install regular drivers - he download it from vendor site and install.
- how is it possible?
There is known UEFI API for NIC before NIC is released to the market and even before silicon is created
- how many adapters it is dedicated for?
For now it is only one specific adapter model (it may changes in future).
- what functionality is to be implemented?
Only very basic options like: send packet, receive packet, obtain IP address from DHCP. It even does not has to run at full speed.
- how much resources are to do that?
It is about 8 months, few engineers
- has user to use UEFI machine?
No - he can use UEFI based machine or BIOS one
If you have another questions I try to answer but for sure I cannot tell all the details because of copyrights, and other law-connected things.
Now I have to create demos and propositions to solve some problems to set way of doing all the work (and discuss it with other people).
I show you some scenarios (at this moment I do not know exactly how UEFI Emulator presented by fpmurphy works):
1.
Actors:
RedHat with preinstalled MyLinuxDriver
NIC with UEFI Driver
On boot MyLinuxDriver copies UEFI Driver from NIC's flash to HDD/RAM
After that all calls to MyLinuxDriver are translated through UEFI Emulator to UEFI Driver.
2.
Actors:
RedHat with preinstalled MyLinuxDriver
NIC with UEFI Driver
On boot MyLinuxDriver copies UEFI Driver from NIC's flash to HDD/RAM and at the same time UEFI Emulator translates it to linux-understandable format.
All calls to MyLinuxDriver are redirected to UEFI TRANSLATED Driver.
What I need to know:
- how to load UEFI Driver from NIC's flash? (for demo purposes it could be 'how to load whatever from whenever', just to show that such operation is possible)
- where to load that driver? (RAM/HDD)
- when translate UEFI Driver to linux-understandable format (on boot, or on each call)
Thank you very much for your attention and useful information. I really apreciate your help guys!
PS.
Quote:
Originally Posted by fpmurphy
I still cannot see why you are trying to load a UEFI driver binary into a Linux kernel.
I am not trying to do that - I am trying to find proper way to solve my problem described above.