ProjectOSX

Welcome Guest!

Returning User? Login here.

Want membership privileges? Register here.

7 Pages V  « < 5 6 7  
Start a new topic Add Reply
> Iboot Source Released, http://iboot-efi.svn.sourceforge.net/viewvc/iboot-efi/
гык-sse2
post May 21 2011, 05:28 PM
Post #121
QUOTE (OS_Ninja @ May 21 2011, 02:57 AM) *
Hmmm... I haven't had a KP with Lion or Snow Leo when booting them thru iBoot, unless i wrote some very experimental code that the OS didn't like...lol

I assume you are using an Atom processor?

If so, I should have more Atom compatible code going into iBoot source fairly soon.

What causes the KP?

Something causes KP when booting even on Core 2 Duo using iboot.efi running on top of duet or clover or no iboot at all.
And if you don't give the source, could you give a 32-bit build of your Efildr20?

/*but it is not recent version, I have really negative amount of free time now - too many exams and "War and peace"*/

This post has been edited by гык-sse2: May 21 2011, 05:34 PM
UEFI is a great way to get the best of the best in the world of imagination and creativity. ©Google Scribe
Slice
post May 21 2011, 08:15 PM
Post #122
I can confirm, memory leak KP occured with and without iBoot. The problem is in Efildr20.
i3-2120 GA-H61M-S1 UEFI, Radeon HD6670-UEFI, ALC887(VoodooHDA 2.8.6), OS⌘10.9.4, OS⌘ 10.7.5 Clover FakeSMC_plugins_3.3.1 Realtek LAN v3.1.2
OS_Ninja
post May 22 2011, 02:08 AM
Post #123
QUOTE (Slice @ May 21 2011, 04:15 PM) *
I can confirm, memory leak KP occured with and without iBoot. The problem is in Efildr20.


Right... Alot of mod's have been placed and left out with clover. Edk2 is resourceful without hacks...

Did you read the iBOOT O&G text? This does not pertain to me "not" releaasing my edk2 source... My edk2 source is stock with minor mods to USB and user timeout functions. Clover needs original source code with iboot overlay. Need to work on iBOOT!
I'm here to set the record straight!
Kabyl
post May 22 2011, 03:09 AM
Post #124
QUOTE (OS_Ninja @ May 22 2011, 03:08 AM) *
Did you read the iBOOT O&G text? This does not pertain to me "not" releaasing my edk2 source... My edk2 source is stock with minor mods to USB and user timeout functions. Clover needs original source code with iboot overlay. Need to work on iBOOT!

Why are you making it so hard then? What's stopping you from releasing the changes? People are trying to help get iBOOT's O&G done and you're being a bit inconsistent!

Slice
post May 22 2011, 10:22 AM
Post #125
QUOTE (OS_Ninja @ May 22 2011, 06:08 AM) *
Right... Alot of mod's have been placed and left out with clover. Edk2 is resourceful without hacks...

Did you read the iBOOT O&G text? This does not pertain to me "not" releaasing my edk2 source... My edk2 source is stock with minor mods to USB and user timeout functions. Clover needs original source code with iboot overlay. Need to work on iBOOT!

Clear EDK2 gives us the same KP. Hardware dependency or EFI32 incompatibilities with Apple.
What we change in Clover compared to Duet?
1. Exclude debug outputs to serial port because I have no it.
2. Adopt to HFS+
3. FAT binary support. Can be moved to iBoot.
4. SMBIOS patch. Can be moved to iBoot.
5. ACPI patch. Can be moved to iBoot.
6. AppleSim. Can be moved to iBoot.
7. IDE/SATA drivers for more hardware.
8. CD joilet file system support.
But with 3-6 I can use Clover without iBoot. For example with REFIT.
Modules 2-6 is separate .efi modules and can be placed into the folder /efi/modules so don't need it to copy into main iBoot module.
i3-2120 GA-H61M-S1 UEFI, Radeon HD6670-UEFI, ALC887(VoodooHDA 2.8.6), OS⌘10.9.4, OS⌘ 10.7.5 Clover FakeSMC_plugins_3.3.1 Realtek LAN v3.1.2
OS_Ninja
post May 22 2011, 03:01 PM
Post #126
QUOTE (Slice @ May 22 2011, 06:22 AM) *
Clear EDK2 gives us the same KP. Hardware dependency or EFI32 incompatibilities with Apple.
What we change in Clover compared to Duet?
1. Exclude debug outputs to serial port because I have no it.
2. Adopt to HFS+
3. FAT binary support. Can be moved to iBoot.
4. SMBIOS patch. Can be moved to iBoot.
5. ACPI patch. Can be moved to iBoot.
6. AppleSim. Can be moved to iBoot.
7. IDE/SATA drivers for more hardware.
8. CD joilet file system support.
But with 3-6 I can use Clover without iBoot. For example with REFIT.
Modules 2-6 is separate .efi modules and can be placed into the folder /efi/modules so don't need it to copy into main iBoot module.


Very Nice report Slice biggrin.gif

As a side note, look at my iboot branch, I moved FAT binary code from my EDK2 sources to iboot sources. File name is LoadFATBinary.c..

On Smbios Patching, I tried moving the functions from clover to iboot but the code hangs the loader. I narrowed the cause down to being the LogSmbiosData() function.. How to work around this part of the code?

Lastly, I think its really good idea to put any driver or module in /efi/modules so we aren't so dependant on a given Efildr20. The less dependant we are, the more compatability we will have on some newer mobo's with full UEFI implementations.

This post has been edited by OS_Ninja: May 22 2011, 03:04 PM
I'm here to set the record straight!
Slice
post May 22 2011, 04:30 PM
Post #127
QUOTE (OS_Ninja @ May 22 2011, 07:01 PM) *
Very Nice report Slice biggrin.gif

As a side note, look at my iboot branch, I moved FAT binary code from my EDK2 sources to iboot sources. File name is LoadFATBinary.c..
I saw but module VBoxPECoff do the work fine. Dunno why I need something else.
QUOTE
On Smbios Patching, I tried moving the functions from clover to iboot but the code hangs the loader. I narrowed the cause down to being the LogSmbiosData() function.. How to work around this part of the code?
I had no any problem here. May be you do not make it exactly as me? Before log you should allocate memory and copy old table into the new place.
QUOTE
Lastly, I think its really good idea to put any driver or module in /efi/modules so we aren't so dependant on a given Efildr20. The less dependant we are, the more compatability we will have on some newer mobo's with full UEFI implementations.

At last! You should also understand that SmbiosGenDxe may be placed into /efi/modules and no need to rewrite it.
May be you make additional patch from menu settings and from smbios.plist. At present patch from menu works. Or no?
i3-2120 GA-H61M-S1 UEFI, Radeon HD6670-UEFI, ALC887(VoodooHDA 2.8.6), OS⌘10.9.4, OS⌘ 10.7.5 Clover FakeSMC_plugins_3.3.1 Realtek LAN v3.1.2
OS_Ninja
post May 23 2011, 12:20 AM
Post #128
QUOTE (Slice @ May 22 2011, 12:30 PM) *
I saw but module VBoxPECoff do the work fine. Dunno why I need something else.


The FAT Binary code in iboot is very lite and quite elegant, I might be able to slim the code down a bit more..

QUOTE (Slice @ May 22 2011, 12:30 PM) *
I had no any problem here. May be you do not make it exactly as me? Before log you should allocate memory and copy old table into the new place.


If I try to compile your SmbiosGenDxe the compiler complains about the Allocation code with errors. I think LogSmbiosData() make's the loader hang because of the Add() function.

QUOTE (Slice @ May 22 2011, 12:30 PM) *
At last! You should also understand that SmbiosGenDxe may be placed into /efi/modules and no need to rewrite it.
May be you make additional patch from menu settings and from smbios.plist. At present patch from menu works. Or no?


The only benefit to using a plist file instead of a .bin file is the format of a .bin file can become corrupt from just reading it in a hex editor or text edit. It is very finiky vs. using a plist, but then adding plist code for this can become quite lengthy.. And yes, using the data from the system menu does work when patching smbios data.

My approach with patching smbios is I first copy the old table string to a buffer and allocate space for it within the buffer, then I patch the string within the buffer with the data from the menu and then I patch the original string inside the original smbios table with the new buffer data. It works on most genuine Intel mobo's and some gigabyte mobo's but thats about it. I know its out of bounds when trying to patch the original OEM data in the OEM smbios table, but if I setup a new smbios table for each table how would I point the new smbios table to os x?

I'm not a huge fan of re-inventing wheels, especially if someone has something working 100% of the time already, but if I can't get the clover smbiosgendxe to compile, I need to take a different route... By all means, feel free to compile smbiosgendxe and send me the module in 64bit form so I can test it from /efi/modules biggrin.gif

If it works great, we can def use it in module form but I would like to have the capability to compile it at some stage of the game, ya know?

Also, can you make a list of modules we can use from clover and what the functions of the modules are exactly so I can slim down the bootloader code?
I'm here to set the record straight!
Slice
post May 23 2011, 08:12 AM
Post #129
Try this 64bits compiled. I can't say that they work.
Attached File  SmbiosGenDxe.efi.zip ( 30.94K ) Number of downloads: 19

Some others.
Attached File  Modules.zip ( 106.93K ) Number of downloads: 32


PS. SmbiosGen depends on HOB, so it may not works from iBoot. Only from Efildr20. So it will be good to make the patch twice: preliminary and final.
Nontheless check it.
i3-2120 GA-H61M-S1 UEFI, Radeon HD6670-UEFI, ALC887(VoodooHDA 2.8.6), OS⌘10.9.4, OS⌘ 10.7.5 Clover FakeSMC_plugins_3.3.1 Realtek LAN v3.1.2
OS_Ninja
post May 23 2011, 05:12 PM
Post #130
QUOTE (Slice @ May 23 2011, 04:12 AM) *
Try this 64bits compiled. I can't say that they work.
Attached File  SmbiosGenDxe.efi.zip ( 30.94K ) Number of downloads: 19

Some others.
Attached File  Modules.zip ( 106.93K ) Number of downloads: 32


PS. SmbiosGen depends on HOB, so it may not works from iBoot. Only from Efildr20. So it will be good to make the patch twice: preliminary and final.
Nontheless check it.


It doesnt work from /efi/modules.


I'm here to set the record straight!
Slice
post May 23 2011, 06:20 PM
Post #131
QUOTE (OS_Ninja @ May 23 2011, 09:12 PM) *
It doesnt work from /efi/modules.

So dependencies.
i3-2120 GA-H61M-S1 UEFI, Radeon HD6670-UEFI, ALC887(VoodooHDA 2.8.6), OS⌘10.9.4, OS⌘ 10.7.5 Clover FakeSMC_plugins_3.3.1 Realtek LAN v3.1.2
OS_Ninja
post May 23 2011, 07:33 PM
Post #132
QUOTE (Slice @ May 23 2011, 02:20 PM) *
So dependencies.


Why not try to implement an smbios patching function in iBoot source?

BTW thx for the modules, I moved them from Efildr20 into /efi/modules and they all work like a charm smile.gif

The only thing iBoot needs is a stable smbios patching function and it is a perfect bootloader.. Then I can focus on a few other features, like "BootNext" variable and function. I'll also be looking into some gui transitions. Ujen made a comment that he was working on this, but I have yet to see anything in the works....
I'm here to set the record straight!
Slice
post Jun 6 2011, 08:59 AM
Post #133
QUOTE (OS_Ninja @ May 19 2011, 12:00 AM) *
CODE

EFI_MEMORY_DESCRIPTOR* memDescriptor = NULL;

// Set 10.7 bootArgs
if((bootArgsNew->Revision==0) && bootArgsNew->Version==2){
// set MemoryMap values
bootArgsNew->MemoryMapDescriptorVersion = EFI_MEMORY_DESCRIPTOR_VERSION;
memDescriptor->Attribute = EFI_MEMORY_RUNTIME;
// adjust devtree length
bootArgsNew->deviceTreeLength+=GetKextCount()*sizeof(KextMemoryMapEntry);
// set Kernel values
bootArgsNew->kaddr = KERNEL_ADDR;
bootArgsNew->ksize = KERNEL_LEN;
// set RuntimeServices values
bootArgsNew->efiRuntimeServicesPageStart = (UINT32)memDescriptor->PhysicalStart;
bootArgsNew->efiRuntimeServicesPageCount = (UINT32)memDescriptor->NumberOfPages;
bootArgsNew->efiRuntimeServicesVirtualPageStart = (UINT64)memDescriptor->VirtualStart;
// set SystemTable
bootArgsNew->efiSystemTable = (UINT32)gSystemTable;
// Set 10.4 - 10.6.x bootArgs
} else if((bootArgs->Revision==6 || bootArgs->Revision==5 || bootArgs->Revision==4) && bootArgs->Version==1){
// set MemoryMap values
bootArgs->MemoryMapDescriptorVersion = EFI_MEMORY_DESCRIPTOR_VERSION;
memDescriptor->Attribute = EFI_MEMORY_RUNTIME;
// adjust devtree length
bootArgs->deviceTreeLength+=GetKextCount()*sizeof(KextMemoryMapEntry);
// set Kernel values
bootArgs->kaddr = KERNEL_ADDR;
bootArgs->ksize = KERNEL_LEN;
// set RuntimeServices values
bootArgs->efiRuntimeServicesPageStart = (UINT32)memDescriptor->PhysicalStart;
bootArgs->efiRuntimeServicesPageCount = (UINT32)memDescriptor->NumberOfPages;
bootArgs->efiRuntimeServicesVirtualPageStart = (UINTN)memDescriptor->VirtualStart;
// set SystemTable
bootArgs->efiSystemTable = (UINT32)gSystemTable;
}

It does matter for kernel
CODE
    boot_args * args = (boot_args *) PE_state.bootArgs;

    cpu_datap(0)->cpu_hibernate = 1;
    header->processorFlags = 0;

    header->runtimePages     = args->efiRuntimeServicesPageStart;
    header->runtimePageCount = args->efiRuntimeServicesPageCount;
    header->runtimeVirtualPages = args->efiRuntimeServicesVirtualPageStart;
    if (args->Version == kBootArgsVersion1 && args->Revision >= kBootArgsRevision1_6) {
        header->performanceDataStart = args->performanceDataStart;
        header->performanceDataSize = args->performanceDataSize;
    } else {
        header->performanceDataStart = 0;
        header->performanceDataSize = 0;
    }
i3-2120 GA-H61M-S1 UEFI, Radeon HD6670-UEFI, ALC887(VoodooHDA 2.8.6), OS⌘10.9.4, OS⌘ 10.7.5 Clover FakeSMC_plugins_3.3.1 Realtek LAN v3.1.2

7 Pages V  « < 5 6 7
Add Reply Start a new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members: