Jump to content

-Archive- Macefix86 2006 -Archive-


bofors
 Share

443 posts in this topic

Recommended Posts

This has almost nothing to do with the Microsoft Vista EFI bootloader.

 

I know what your trying to do, thats why I said don't think I'm retarded :D

 

I meant would we be able to see what that file dose and see if it could help you guys figure out what you need to do, use it just for example, to see how its written :D

 

If I'm talking out my ass, say so :D

 

It was just a thought :D

Link to comment
Share on other sites

Honestly, searching for the Signatures in RAM will probably be your best bet. Kiko and I had discussed this in a bit of detail, but as I don't have an EFI board im kinda stuck. If you can get to the RAM before it is over written, the signature should still be there even after an os is loaded. (most OSes will not write 0s to ram on bootup.)

 

the EFI_SYSTEM_TABLE_POINTER is a struckt made up of two uint64 and a uint32 the struct sits on a 4M boundary basically multiples of 0x400000 acording to the EFI spec section 16.4.2 or 3 you should do a search for the EFI_SYSTEM_TABLE_SIGNATURE to find it the signature is 0x5453595320494249 it is followed by the table pointer and then by a crc32 of the first two structures

 

With this info we know the boundarys we need to look at and its should start at the 4gig limit, 0xFFFFFFFF, for 32-bit systems and work backwards.

 

Like I said, don't have an EFI board otherwise I would try to find the address of this myself. Once we have the address of the Table we should be able to find the addresses needed to call the EFI shell and make it happy. Once the addresses are found a simple boot sector should be able to accomplish most of what we want.

Link to comment
Share on other sites

Honestly, searching for the Signatures in RAM will probably be your best bet.

I think that is the plan.

 

With this info we know the boundarys we need to look at and its should start at the 4gig limit, 0xFFFFFFFF, for 32-bit systems and work backwards.

When you say 32-bit systems, you mean 32-bit OS, right? I mean, my Pentium D has 64-bit extensions but OSx86 is effectively 32-bit, so I would still start searching at 0xFFFFFFFF.

 

I am thinking about a writing a simple C program to look for the signature.

 

Once the addresses are found a simple boot sector should be able to accomplish most of what we want.

 

Can you explain this? What about the ExitBootServices() issue?

Link to comment
Share on other sites

When is say 32-bit I mean not running in the 64-bit extended mode but also not in the 16-bit real mode. Basically 32-bit protected running with out physical address extentions (PAE). the first address possible should be 0xFF800000and just keep subtracting 0x400000 from that. the signature should line up on on off those addresses.

 

As far as what I was talking about with the boot loader, one could write an asembly boot block that gets the processor in to 32-bit protected, loads the registers on the Processor with the Table address, or what ever else was needed (I can't remember at this point) and do a jump into the correct section of EFI or load the EFI shell from a disk or even just embed the efi shell onto the said "boot disk".

Link to comment
Share on other sites

Ok well we have gotten some new ideas on flashing a intel board, we are going to make somemore chnages then we will be ready to flash it (Apple Firmware) to a real board, stay tuned for more news

Link to comment
Share on other sites

OMFG! The perfect mac clone is getting closer....

 

Someone will have to compile a semthex/mifki kernel with the EFI stuff restored :)

 

Once we can flash intel boards (and hopefully ATI cards too) the ONLY difference between our clones and the real thing will be the TPM, which artoo will take care of for us. Amazing stuff!

Link to comment
Share on other sites

lol,

 

and to munky, the 945 aint a problem ( I have a BadAxe, do you think im gonna let it drop that easily :)) its just that in a previous flash attempt all the hardware mapped to the wrng places, so we are now trying a different method that should work 100% (or 99.9%) support will be added for the other intel boards easily its just a mix and match situtaion (mixing the intel drivers witht he apple files and removign the intel csm), abcslayer, we already have fixed iflash for a revious flash attempt, (945 --> 915) it worked we got it bootign via boot.efi but a lot of things were mapped wrong so they didnt work (such as USB and Audio and a couple of ohter vital components)

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...