Jump to content

Clover on real mac


Jief_Machak
 Share

132 posts in this topic

Recommended Posts

To be sure I understood :

  when Clover is booted through EFI, the whole DUET package that emulate UEFI 2.x isn't loaded at all. Am I right ?

Yes. DUET is loaded first by legacy boot from Master Boot record.

Link to comment
Share on other sites

When DUET is loaded, does that mean that pieces of EFI code stays in memory the whole time the os is running ?

Not sure. DUET occupies low memory that modern system will not touch because it is legacy area.

In the case of Mac boot.efi puts all data into DeviceTree and loads kernel(cache). No more EFI code used except GetVariable() and SetVariable() which loaded into special memory area. So called Runtime Services.

In the case of Windows UEFI I don't know methods of work. I just know it works with my legacy Clover booting.

Link to comment
Share on other sites

And DUET can only be loaded by legacy boot, or it could be an efi application.

I mean : is it possible that an efi firmware loads DUET to partially or completely replace it ?

One should write a efi application to load DUET binary to address 0xE000 and jump there in real mode. Or may be in protected mode but performing initialization like boot sector did. All this is open sourcered.

Jumping in Real Mode you can switch from EFI32 to DUET EFI64.

 

This also can be a small code snippet in Clover as it has legacy boot in real mode. Just tell him what to do.

Link to comment
Share on other sites

Jief_Machak, so correct me if I am wrong but from what I read on this thread is that you are booting Clover as legacy mode and able to get a boot screen on a real mac with a normal PC graphics card?

Link to comment
Share on other sites

One should write a efi application to load DUET binary to address 0xE000 and jump there in real mode. Or may be in protected mode but performing initialization like boot sector did. All this is open sourcered.

Jumping in Real Mode you can switch from EFI32 to DUET EFI64.

 

This also can be a small code snippet in Clover as it has legacy boot in real mode. Just tell him what to do.

 

Actually not a bad idea, as hardware is already initialized by the time DUET executes... that also means SEC and PEI are pretty much redundant, so maybe catch the HOBs and call DUET DxeIpl with them? Probably would have to convert platform UEFI memory map to PEI HOB memory map format. Maybe ExitBootServices() first to make sure Platform UEFI is terminated?

Link to comment
Share on other sites

@Pavo : now I've flashed my PC card with GOP, I can have graphic in EFI mode. But there is still a problem with Apple EFI which is not UEFI 2.x, needed to boot windows. Of course, I can still boot Clover legacy when I want Window and Clover EFI when I want Os X.

 

I would be very neat to be able to boot DUET from Clover EFI. It would bring UEFI 2 to old mac. There is also new PC EFI only. No doubt there will be buggy implementation and that would be also nice to have DUET, I guess.

 

So yes, if it's possible that EFI launch DUET who take over and bring missing functionality, that would be best of both world ?

 

Download-Fritz, I have to read more about HOBs ?

Link to comment
Share on other sites

HOBs are data structures passed from PEI to DXE - they continue at least a description of the permanent memory (usually DRAM), but may contain more.

Regarding your Windows issue - again, did you try booting it directly? As in having it set as default boot option (risky as you may have a hard time changing back) or launching from EFI Shell (Shell would need to be default, please not Clover -> Shell -> Windows).

Link to comment
Share on other sites

How could I launch a shell if I don't boot Clover ?

From what I read, Apple EFI cannot boot Windows EFI. Something about EFI 1.x vs EFI 2.x. My understanding (quite little, I agree) is that if DUET isn't loaded, Windows EFI cannot be launched. Something's missing in EFI 1. A protocol ?

Link to comment
Share on other sites

Apple has been implementing UEFI 2.0 features ever since thex went x64, though never really complied to either EFI or UEFI spec to full extent. And you would launch Shell the same way you would launch Clover, both are UEFI apps.

Link to comment
Share on other sites

It seems not on a Mac Pro 3,1. MacPro 3,1 is EFI 64 bits. Clover report "Apple EFI 1.1". The more recent one have been updated.

 

For shell, console mode doesn't work. Only graphic so far. It only works if I boot legacy. Something in egInitScreen ? I didn't have a look.

Link to comment
Share on other sites

You can't decide what features a firmware has by the name string it outputs... Apple supported GOP for quite a while now (2nd Choice) and it was introduced with UEFI 2.0.

 

Regarding text mode: Idk, Never had an Intel Mac.

Link to comment
Share on other sites

How do you know? Your firmware may support GOP consumption, but prefer the AppleGraphicsPolicy protocols, as Mac Pro is the only platform I know which still exposes them.

Also, EFI 1.10 doesn't have X64 support in its specification... so, there we go EFI 1.10. :)

It's Apple EFI and there is no way you can say which version of (U)EFI it conforms to, because it doesn't fully to any.

Link to comment
Share on other sites

I agree. Everywhere I read that Apple made his own EFI for MacPro 3,1 (and others) adding some but not all from UEFI 2.x.

The sure thing is, My MacPro can't boot Windows EFI. DUET can. My MacPro doesn't initialise my graphics card. Clover or Refind (i submitted a patch) can.

 

If there is a way to add missing feature to Apple "EFI" firmware of my MacPro, it would be nice.

Link to comment
Share on other sites

I don't know if that EFI version supports GOP... if it does, it could be easy as removing the AppleGraphicsPolicy protocols when installed. Get a dump of your ROM (either from Apple website or via a flash tool) and search for GOP's GUID with UEFITool, then we'll know. ;)

Link to comment
Share on other sites

  • 2 months later...
  • 1 month later...

So today, I've added the screen initialisation that Clover does to rEFInd. Great, I can directly boot to rEFInd, thus eliminating the first step.

 

Hi Jief,

 

Do you know if your submitted patch has been added yet, and if not, is there a way I can implement your patch myself? There are many of us using Mac Pros that would like boot screens using PC cards, and rEFInd would be a more fitting solution for a real Mac than Clover.

 

Edit: I found what I think is your submitted fork on SourceForge. Thanks.

Link to comment
Share on other sites

  • 4 weeks later...

Hi Jief,

 

Do you know if your submitted patch has been added yet, and if not, is there a way I can implement your patch myself? There are many of us using Mac Pros that would like boot screens using PC cards, and rEFInd would be a more fitting solution for a real Mac than Clover.

 

Edit: I found what I think is your submitted fork on SourceForge. Thanks.

Can u give me the link for his fork plz

Link to comment
Share on other sites

 Share

×
×
  • Create New...