(04-30-2014, 09:14 AM)Brabbelbla Wrote: When I added the boot option. It's so simple, can't think of what was wrong:
bcfg boot add a [firmare volume]:\C57[blablabla...].efi "Internal Shell"
I know what's wrong - dmazar's shell thinks that internal image is not executable
Other shells do not have bcfg command built in, so we were tied up to dmazar's shell. I've decided to fix this issue
I've built bcfg as standalone app , and now we can use any shell to add boot records
It deppends on UnicodeCollate interface , so you need to get one , because we dont have any installed , and I built one for English language. It should be loaded prior using bcfg
Posts: 81
Threads: 0
Joined: Jun 2012
Reputation:
11
05-03-2014, 03:14 PM (This post was last modified: 05-03-2014, 03:25 PM by Brabbelbla.)
Nice one
Btw, I took a look at a UEFI RAID driver. I highly doubt the one from win-raid will work, but I was mistaken in my previous post. It was not some Lenovo machine, it was the Inspiron 7720 that has a module called RaidEfiRom in it, which, given it comes from Dell from an SCT firmware (UEFI 2.31 though), I give higher chances of working. There were two GOP drivers present, too, and a UEFI driver for the ethernet NIC. I gave RaidEfiRom a first try, but it didn't load. If you are interested, the FFS structure is attached.
Posts: 88
Threads: 0
Joined: Feb 2013
Reputation:
6
05-03-2014, 03:37 PM (This post was last modified: 05-03-2014, 03:41 PM by follow_me.)
(05-03-2014, 03:14 PM)Brabbelbla Wrote: Nice one
Btw, I took a look at a UEFI RAID driver. I highly doubt the one from win-raid will work, but I was mistaken in my previous post. It was not some Lenovo machine, it was the Inspiron 7720 that has a module called RaidEfiRom in it, which, given it comes from Dell from an SCT firmware (UEFI 2.31 though), I give higher chances of working. There were two GOP drivers present, too, and a UEFI driver for the ethernet NIC. I gave RaidEfiRom a first try, but it didn't load. If you are interested, the FFS structure is attached.
how about to take a look at alienware's m17x r3 firmware - it has almost identical hardware and RAID enabled from the box
Tested bcfg with ffs driver - it can'not add boot entry because it cant get the path for it
will try to patch bcfg
Posts: 81
Threads: 0
Joined: Jun 2012
Reputation:
11
05-03-2014, 03:57 PM (This post was last modified: 05-04-2014, 10:44 AM by Brabbelbla.)
M17x R3 has Insyde firmware, and RAID is handled by the Intel OROM. I immediately tried to add a driver entry with BcfgApp, it hanged. It is not really important, maybe our firmware version lacks support for it, but I thought I'd tell.
Right, messed a bit with RaidEfiRom. I replaced SystemIsaFloppy with it, but had to sacrifice the DXE dependency section that belongs to RaidEfiRom. SystemIsaFloppy has no such section, and adding it would prevent the driver to load entirely.
The effects are strange but vaguely promising. I enabled RAID mode per the usual setting. Now, however, the OROM does not run immediately at boot. I can boot the UEFI shell without it having run. There the hard drives still report as SATA devices, instead of SCSI with the OROM, but with a changed adress. What used to be Sata(0xN,0x0,0x0) now is Sata(0xN,0x8000,0x0) and the optical drive has become Sata(0x20,0x8000,0x0) instead of Sata(0x5,0x0,0x0). When I want to enter setup or the boot menu, the OROM does run. What happens next depends whether SATA port 5 (optical drive) is enabled or not. When it is, the system hangs and I have to reset CMOS to get in again. When it isn't, I can enter them. Then, despite never seeing any new tab appear anywhere, when I choose save settings in the setup, I get an error popup:
Quote:Intel® Rapid Storage Technology
Failed to save storage: RstHiiConfig. Status: 0x3
Press ENTER to continue
So, things to try:
Destroy the OROM, see what the UEFI driver does
Find a module to replace which has a DXE dependency section
Get to know more about variable stores and how the RAID settings are accessed on an Inspiron 7720
Enough for today. Any thoughts?
ADDITION: The RaidEfiRom from the Inspiron 7720 is just the Intel® RST 11.6.0.1702 SATA Driver, which is posted identically at Win-RAID. So that road is open.
I managed to identify some blank settings on the Advanced page. Looking at the unicode strings between after Express charge there are four settings between that option and the references to the unlocked advanced menus. The first of these settings controls the Wireless toggle, with eight options. All the blank settings have no options, but the first one after Express Charge has a default value of 0x7, indicating (at least) eight options. It was kind of a guess, but it was correct.
So, these settings allow one to control the behaviour of the Wireless toggle and enable/disable the Bluetooth, WLAN and WWAN devices at firmware level. At first sight, setting the Wireless toggle to none might 'solve' that problem with UEFI boot. I don't have a WWAN device, disabling it (also) disables the Ethernet controller. The Bluetooth setting depends on the WLAN setting, Bluetooth cannot be enabled with WLAN disabled. The reverse does work.
Posts: 88
Threads: 0
Joined: Feb 2013
Reputation:
6
05-04-2014, 12:17 PM (This post was last modified: 05-04-2014, 01:26 PM by follow_me.)
Looks very promising !
My thoughts :
About driver loading - I'm working on a dxe driver which will load other drivers from firmware, and it will solve dependency and inserting multiple drivers problems
I'm currently working on utility that enables to add any built in image to boot menu
UPDATED:
I did it ! It works !!!! I've added internal shell into boot menu ! And now we can boot any image from firmware
I need couple more days to rewrite as driver and embedd into firmware
next step is to load internall drivers. My plan is - get rid of diagnostics orom , to free up some space, embedd additional drivers , load this drivers at start
about UefiRaid driver I suppose it is required to unload SataDriver (or not to load it)
@brabbelbla as you requested, next I will try to patch video driver to load native resolution (I have base driver sourcess and it seems like easy to do, but as usual, it's not )
How about OS X built in patches (Acpi Tables , Powermanagement , etc) ?
Posts: 81
Threads: 0
Joined: Jun 2012
Reputation:
11
Good job I am waiting for it, I am getting sick of inserted drivers not loading for apparently no reason.
Some tiny progress with the UEFI RAID driver. It seems it is not necessary to unload the original drivers. I did destroy the legacy OROM though, and now I can enter setup and the boot menu with the optical drive enabled. Functionality is much the same, but I managed to create a reference to the Intel RST formset from within the Advanced form. That works, but so far it ends there. When I follow any of the references on that screen, the form browser / setup utility crashes. I have to say I haven't managed to initiate any legacy boot procedure so far with this driver, I could get into UEFI Clover though. OS X refuses to boot as the boot device can't be found, as is the case with the legacy OROM, too, so something is happening for sure.
About the resolution, maybe I was wrong to ask. I don't know what you were planning, but I noticed that entering setup or the boot menu causes a resolution change, I guess from 800x600 to 640x480. So I guess regardless of what resolution you make it run in at boot, it will be changed anyway to something lower. Anyway, I think replacing the VBIOS with the GOP drivers from the Inspiron 7720 (PhxGopDxe and SnbGopDriver) would be nice. I tried replacing some useless flash device drivers with them, but they wouldn't load. Maybe the key for the resolution problem lies in some other module. The formbrowser, the setup module, I don't know, no obvious finds there.
Posts: 88
Threads: 0
Joined: Feb 2013
Reputation:
6
05-04-2014, 05:59 PM (This post was last modified: 05-05-2014, 09:37 AM by Brabbelbla.)
Hmmm, I'd think the UEFI RAID driver does not control the way the system boots. The hard drives remain reported as SATA devices, which are legacy bootable on AHCI mode. But we will just see.
I am interested in those sources for sure, taking a look never does any harm. My programming skills are... cough... limited, though
For with the older version of the UEFI RAID driver, I could get an error message that the RstHiiConfig could not be saved, I thought that might be the case this time, too. Dumping NVRAM reveals that indeed RstHiiConfig is not there. RstSataV and RstSataF do exist though and belong to the same driver. Is there any way to check NVRAM capacity? Could it be full? If I am counting somewhat correctly, the used space is well on it's way to 16MB. As the BIOS chip is 32MB, of which 4MB is used for the BIOS image, there should be more...
EDIT: It shouldn't be full. The shell creates an enormous amount of variables, way more than what RstHiiConfig should be (113 bytes, decimal). And besides, I forgot some orders of magnitude. Used space is well on its way to 16kB, not 16MB.
Posts: 88
Threads: 0
Joined: Feb 2013
Reputation:
6
05-05-2014, 08:55 AM (This post was last modified: 05-05-2014, 09:19 AM by follow_me.)
(05-04-2014, 05:59 PM)Brabbelbla Wrote: Hmmm, I'd think the UEFI RAID driver does not control the way the system boots. The hard drives remain reported as SATA devices, which are legacy bootable on AHCI mode.
It was not about the "control the boot process" , the driver must create legacy visible device and emulate it as if it was bios
Intel's reference sourcess
05-05-2014, 09:29 AM (This post was last modified: 05-05-2014, 11:16 AM by Brabbelbla.)
Those are from AMI, not Intel. Anyway only the newest version there uses a UEFI RAID (they say SATA) driver, but the actual Intel driver is there only in compiled format.
The problem certainly isn't NVRAM capacity. I manually created the RstHiiConfig variable store, initially with all zeroes. The data doesn't get changed, though, and the problem persists. I can enter for instance the Create Volume submenu, by creating a reference to it from some other page. There, however, the fun stops. There are many variable checks there for suppress statements, which with only zero in the store all evaluate to zero, or more likely it doesn't access the store at all.