Posts: 81
Threads: 0
Joined: Jun 2012
Reputation:
11
01-27-2015, 06:31 PM
(This post was last modified: 01-27-2015, 06:51 PM by Brabbelbla.)
@follow_me
The way you describe it would be best. However, in my experience adding a new driver doesn't work, and replacing existing GUIDs, for instance the flash part driver, could fulfill our purpose, although it is not ideal and there is the risk of drivers getting picked up too early. On the other hand, if nothing checks those specific GUIDs/image handles, which would be nasty code IMHO, it should be fine. An alternative might be changing the GUID, but I haven't ever really seriously tried that. Maybe those things work with the latest PhoenixTool version, but haven't tried that yet. On topic of loading the RAID driver, it seems to work like the following in the AMI code:
- DXE dependency of the RAID driver published what is named an execution GUID;
- SBDxe checks policies, settings, etc., if those are good to go, it uses InstallProtocolInterface with the RAID driver's execution GUID.
I am not really familiar with the concept 'protocol', and with the install function even more so, maybe you are more familiar with that. Does installing that execution protocol interface mean the driver gets processed/loaded/'run'? If it does, it would allow for a very compact code replacing the PlatformPci GUID to first install the RAID driver execution protocol interface and have it run, and then use the same procedure for passing control to the actual PlatformPci. If not, I guess StartImage could be used for the latter, while the first could be left to the DXE dispatcher or whatever, just like it is done in AMI's implementation.
Then I think you are right about the existing OROM, in my earlier experiment it ran alongside the UEFI driver. In AMI's code, there exists a protocol called CSM_OPROM_POLICY, in both their 7 series code with the SataDriver, and their older code. This protocol is registered in SBDxe, so the SbCheckOprom function gets called whenever an event is registered on it. In the 7 series code, this function then specifically checks whether it is the RAID OROM and whether it is desired for it to run, and pushes the result back to CSM_OPROM_POLICY. I think a similar protocol should exist in our BIOSes (seeing http://wiki.phoenix.com/wiki/index.php/E..._HOOK_MODE) that we could use to do the same, but then we need to know its GUID and usage.
Posts: 88
Threads: 0
Joined: Feb 2013
Reputation:
6
01-28-2015, 03:19 AM
(This post was last modified: 01-28-2015, 03:20 AM by follow_me.)
(01-27-2015, 06:31 PM)Brabbelbla Wrote: I am not really familiar with the concept 'protocol', and with the install function even more so, maybe you are more familiar with that. Does installing that execution protocol interface mean the driver gets processed/loaded/'run'? If it does, it would allow for a very compact code replacing the PlatformPci GUID to first install the RAID driver execution protocol interface and have it run, and then use the same procedure for passing control to the actual PlatformPci. If not, I guess StartImage could be used for the latter, while the first could be left to the DXE dispatcher or whatever, just like it is done in AMI's implementation.
Then I think you are right about the existing OROM, in my earlier experiment it ran alongside the UEFI driver. In AMI's code, there exists a protocol called CSM_OPROM_POLICY, in both their 7 series code with the SataDriver, and their older code. This protocol is registered in SBDxe, so the SbCheckOprom function gets called whenever an event is registered on it. In the 7 series code, this function then specifically checks whether it is the RAID OROM and whether it is desired for it to run, and pushes the result back to CSM_OPROM_POLICY. I think a similar protocol should exist in our BIOSes (seeing http://wiki.phoenix.com/wiki/index.php/E..._HOOK_MODE) that we could use to do the same, but then we need to know its GUID and usage. @Brabbelbla
"Protocol" is a set of function pointers tied to GUID. "Installing" means placing this pointers into system tables. It is possible to hook any protocol to custom one , and it's easy, just replacing original pointer into custom one. It can be replaced by some proxy functions like "do the stuff and route arguments back to the original function". The only issue here is timing - proxy driver should run ASAP , idealy it should be the first one module loaded , hooked for example "load" protocol , and make custom dispatching, and some logging
I think we should make an app to digg inside the boot process , find out load sequence, replace earliest driver loaded we can and then rule whole process
Posts: 24
Threads: 1
Joined: Jan 2014
Reputation:
0
Hi guys, just to let you know, I tryed to get info on fernandos forum... Not much, but strange enought he couldnt find option rom...
Anyway here is the answer:
I am sorry, but I cannot help you with this sort of BIOS modding.
The AMI Aptio MMTool v4.50.0.23 is able to open both files, but doesn't show the Option ROM modules.
Then I extracted the contents of both BIOS files by using the PhoenixTool, but I don't have the needed experience with that tool.
Posts: 24
Threads: 1
Joined: Jan 2014
Reputation:
0
02-07-2015, 08:07 PM
(This post was last modified: 02-08-2015, 12:22 PM by determo13.)
Hi guys you are silent these days.
Kasar are you still up to perform crazy tests with your l502x? 
If yes, could you flash your bios with that modded bios from l702x
then, in RAID mode, boot the shell, and use the 'dh -b' command to see if device is there?
They guy from other forum said:
"I am not willing to support your plan to get RAID support into a sytem, which obviously not even has an operable on-board RAID Controller."
That at least going to proof that l502x RAID controller works....
Posts: 2
Threads: 0
Joined: Feb 2015
Reputation:
0
02-20-2015, 05:47 AM
(This post was last modified: 02-20-2015, 05:49 AM by cutecool.)
hi i am new to this forum n this is my first post. i have dell xps15z with bios A12 original, i was trying to install linux on win8.1 and was having various difficulties, i came across this forum and page, and 188 pages are a lot to read but it looks friendly community, well ill try the OP stuff and revert..
IS there any step by step guide
Posts: 81
Threads: 0
Joined: Jun 2012
Reputation:
11
02-23-2015, 03:20 PM
(This post was last modified: 02-24-2015, 09:11 AM by Brabbelbla.)
@cutecool
Hi  A guide for what?
@determo13
Point is that how easy porting "every module related to RAID etc." may sound, me being (actually in the process of becoming) a scientist, vagueness in general is something I hate to work with. I'd like to help you, but to do what you say would make me manually sort out the differences between the L502X and the L702X for every module. If you want to get that done, I encourage you to do it, and I will try to help you in using the results. Seeing AMI's sources, different parts needed for RAID functionality are implemented in different modules, so to do anything I believe in I like to have an overview of the differences.
Posts: 24
Threads: 1
Joined: Jan 2014
Reputation:
0
@Brabbelbla
Sounds great! I would love to try compare things if it can solve the problem.
I have phonenix tool and going to compare 2 bioses like this:
So what exactly I need to provide you from here? names of not similar modules?
Posts: 2
Threads: 0
Joined: Feb 2015
Reputation:
0
03-01-2015, 06:55 AM
(This post was last modified: 03-01-2015, 06:58 AM by cutecool.)
(02-23-2015, 03:20 PM)Brabbelbla Wrote: @cutecool
Hi A guide for what?
@determo13
Point is that how easy porting "every module related to RAID etc." may sound, me being (actually in the process of becoming) a scientist, vagueness in general is something I hate to work with. I'd like to help you, but to do what you say would make me manually sort out the differences between the L502X and the L702X for every module. If you want to get that done, I encourage you to do it, and I will try to help you in using the results. Seeing AMI's sources, different parts needed for RAID functionality are implemented in different modules, so to do anything I believe in I like to have an overview of the differences.
wow u guys are really amazing, was reading few pages, i was just wondering do i have to read all the pages or else, by directly flashing the file in OP will help.
i have dell xps 15z i7.
i was getting same out put as mentioned in OP, i think my n OP machine are same.
( Do a HEX search to find the desired files in the DUMP folder to view/patch. In my case I was looking for my VBIOS, so I searched for NVIDIA and voila! my VBIOS rom appears in the file 8C8BAE9C-4AEB-44DF-AB67-1E4D8242E964_1_xxx.ROM. ) this is what i meant.
i stopped in between thinking if i go work anywhere i might brick my Laptop, so i was wondering if there is any easier procedure.
i am sorry if i am sounding lazy, but i really adore your hard work team..
Posts: 21
Threads: 0
Joined: Oct 2012
Reputation:
1
Does the 15z have an SATA 3 controller or SATA 2?
I was thinking of picking up an SSD (Crucial MX100), and I know it'll work regardless, but I'm curious if the drive write speed will be limited (if the system only has SATA 2).
Posts: 88
Threads: 0
Joined: Feb 2013
Reputation:
6
@cutecool - you can test your changes with recovery procedure (at least that your laptop is able to boot with moded firmware, which means you are guaranteed be able to flash stock bios back). You can find details about recovery procedure somewhere here in a
thread (use search  )
@thorbsd - AFAIK it has SATA-3 controller which has 2 ports SATA-3 and 2 ports SATA-2 - internal drive port is SATA- 3 , optical drive port is SATA-2
|