Jump to content

How to boost the OS X boot process...


1,027 posts in this topic

Recommended Posts

Rub it once more and you'll find out why we check for boot.efi and have a comment in boot.c related to the kernel cache. Just magic.

Lol.. I'll have a look when I get some free time, hopefully this evening.

 

And we will get even smarter later today :D

I like it when you say things like that :)

 

From what I've seen, you have done an excellent Job, You should add your name in it as well.

Thanks. Very kind of you to say so.

I'll spend more time tweaking it further and making it better. But first I think I need to look at your changes and combine the two versions. I'll hopefully have a look at that tomorrow evening and next week. I've lots to do at the moment.

Link to comment
Share on other sites

I tell you a French revolution is going on here! They are taking over everything. I even have to watch a movie or two with them tonight. Bah. I am so close to a new release and now this. Thanks mom!

 

BTW: I noticed that the number of CPU cores/threads is 8/16 (debug output of a dynamic CPU run) aka totally wrong. How can that be? Am I the only one seeing this?

 

Maybe a counter-revolution is in order! I get cores/threads 8/16 but these are correct values for i7 so I can't help much here I'm afraid.

Link to comment
Share on other sites

In that case I'd better Up the proper one, Based on your newer code.

With comments this time and credit where credit is due.

Thanks for that STLVNUB. It's good to know that we now both have the same version. I'll take a look.

 

I tell you a French revolution is going on here! They are taking over everything. I even have to watch a movie or two with them tonight. Bah. I am so close to a new release and now this. Thanks mom!

Lol.. pesky kids. :D

 

BTW: I noticed that the number of CPU cores/threads is 8/16 (debug output of a dynamic CPU run) aka totally wrong. How can that be? Am I the only one seeing this?

My static CPU static data, which I originally got from my debug with CPU set to dynamic, is set to 2/2 which is correct for my CPU. But I'll check again what the dynamic reading is with the latest build when I next reboot.

 

Update: Made a version of smbios/dynamic_data.h which injects four CPU data structures (kSMBTypeProcessorInformation) like Apple has, but that didn't stop the lapic.c error. Still need a mod-kernel for the HP.

 

There's one more thing to do... thanks to the Intel® 64 and IA-32 Architectures Software Developer’s Manuals, which is to relocate the registers :D

Keep up with the experiments. Some will work out and maybe some won't but you won't know until you try.

Link to comment
Share on other sites

Wow!. and thanks DHP.

You have fun too :D

 

EDIT:

Successfully compiled and booted from rev-646 :D

 

though I had to set #define OVERRIDE_DYNAMIC_PRODUCT_DETECTION to 0 otherwise I would get this compile error:

In file included from smbios/dynamic_data.h:23,
			 from smbios.c:84:
smbios/getters.h: In function ‘getOverrideString’:
smbios/getters.h:73: error: ‘defaults_MacPro’ undeclared (first use in this function)
smbios/getters.h:73: error: (Each undeclared identifier is reported only once
smbios/getters.h:73: error: for each function it appears in.)
make[2]: *** [smbios.o] Error 1
make[1]: *** [all] Error 2
make: *** [all] Error 2

 

Normally I have #define STATIC_SMBIOS_MODEL_ID set to MACPRO. So for now, I'm booting with the default iMac11,1.

 

Auto memory detection still populates my memory as 1066Mhz DDR3 which I know you explained why previously.

Here's a new pic of my SMBIOS debug:

post-331032-1298754228_thumb.jpg

 

EDIT2:

Thanks for the testing credits in the smbios source files.

 

My static CPU static data, which I originally got from my debug with CPU set to dynamic, is set to 2/2 which is correct for my CPU. But I'll check again what the dynamic reading is with the latest build when I next reboot.

Just to confirm this one, my dynamic debug CPU shows 2/2 for cores/threads as it always has. So this is fine for me.

post-331032-1298752631_thumb.jpg

 

EDIT:

I also see you've fixed the value shown for CPU: Type. :P

Link to comment
Share on other sites

model_data.h updated. Complies and works great now. Thanks DHP.

 

EDIT: just realised that with rev-646, I can now boot in to my OS X installation on HDD 1 from my HDD Revolution install on HDD 0. Another fine addition / fix. Good job and thank you.

No. I was wrong there. I still can't.

Link to comment
Share on other sites

Thanks for that STLVNUB. It's good to know that we now both have the same version. I'll take a look.

 

So can you post a full Zip with every thing in one place including some of the updated tools please. Else I have to read once more 5 pages of post to get every thing I need in one place :)

 

Great work on it so far from what I see it looks very good.

 

 

Time to have a quick look at Groot's work and then off to bed. Busy day with Field Hockey matches tomorrow.

 

Good night!

 

Unlike you I have not made any new posts, but what I have looks promising. I am following your advice to write all from scratch and to know why I do something, so it might take some time. I am the next 2 nights on night shift, so have hopefully some good time to work on it.

 

O and I am running on 646 :P

Link to comment
Share on other sites

Thank you! Must have been the family members flying in from seven different countries. That I tell you gave me the extra push because to be honest.. it was getting very very close at the end. Never smelled so bad LOL

errr. Smelly!.. Lol.. but well done :)

 

Back on topic now. I have decided to skip the memory detection patch.

..

I fixed the debug output of rootUUID in efi.c so that will be part of our next update.

Fair enough.. and cool. I like the sound of that one.

 

So can you post a full Zip with every thing in one place including some of the updated tools please. Else I have to read once more 5 pages of post to get every thing I need in one place :)

 

Great work on it so far from what I see it looks very good.

Hi Groot

 

Sorry I haven't responded sooner but I've been trying to join the ones who've successfully booted the Lion developer preview. :P

 

But to answer your request now, the easiest way is for you to take the project folder from post #1196 and replace the RevStart.command with the one from post #1211.

Link to comment
Share on other sites

But why wait so here it is :) Looking into that boot problem you have with HDD 0/1 Can you do a simple test? Open disk.c and search for _DISK_DEBUG_DUMP("Partition %d is a System Volume\n", gptID); There's a break below that. Please comment it out and let me know if that makes it work for you. Thanks.

Do I run this test before adding the new efi.c ?

Link to comment
Share on other sites

p.s. You probably need to uncomment this line in boot.c:

// gPlatform.RootVolume = rootVolume;

I'll have a look at that a bit later.

 

But for now, I've just tried booting with and without the break; commented out, alternating my default HDD in BIOS, but it makes no difference with the process always choosing to boot my installation on HDD 0.

 

Here a pic of booting with the break commented out, then without it commented out.

post-331032-1298832350_thumb.jpg post-331032-1298832355_thumb.jpg

 

So to recap, I can only boot my OS X installation on HDD1 from USB with the default HDD in BIOS set to 1.

 

I've got to pop out for a bit now. I'll have a look at the gPlatform.RootVolume section later.

Link to comment
Share on other sites

Hi DHP, et al

 

Quick question regarding my RAID setup.

Firstly I've just realised my error of setting: #define PRE_LINKED_KERNEL_SUPPORT 1

which I think you tried to point out to me earlier!

 

Now the question:

Should I be using -

#define EFI_BOOT_PARTITION_SUPPORT 1

As I'm booting from the RAID helper partitions? I can boot with this set to 0 or 1!

 

Also - day three with my lovely new MBP 13" i7 - quel beast!! :)

 

D

Link to comment
Share on other sites

Had four 40 minute matches today. Stopped a massive 153 shots on the goal. We won everything and I became pool champion for the third time. My mom was in tears, but dad must have known it because I got a new box... with the keys of my very own 2011 SLK 300 – guess who will be moving to the US of A this summer.

 

Planned on doing some work but the phone keeps ringing. London 2012 is a go!!!!!!

Now there is no cheers here, but these 3 will have to do. Congrats!!!

 

:D :D :D

Link to comment
Share on other sites

p.s. You probably need to uncomment this line in boot.c:

// gPlatform.RootVolume = rootVolume;

I've tried with making this change.

Note: this is with the break; in disk.c uncommented again, and the new efi.c file.

 

Booting from HDD0 with the default HDD in BIOS set to both 1 and 0, the boot process tries to load my OS X installation on HDD0 but fails at :

ACPI_SMC_PlatformPlugin::registerLPCDriver - failed to locate SMC driver

 

re-commenting the gPlatform.RootVolume = rootVolume; line, allows the boot process to continue.

Link to comment
Share on other sites

Had four 40 minute matches today. Stopped a massive 153 shots on the goal. We won everything and I became pool champion for the third time. My mom was in tears, but dad must have known it because I got a new box... with the keys of my very own 2011 SLK 300 – guess who will be moving to the US of A this summer.

 

Planned on doing some work but the phone keeps ringing. London 2012 is a go!!!!!!

 

Amazing! Good things come to those that work hard, congratulations. Just returned from a long weekend in London, there's building work going on all over the place probably prepping for the olympics.

 

Have caught up in the last half hour, 646 no problems for me.

 

Worn out with the weekend marathon around the capitol - never walked so far for many a year, so it's an early night for me a will catch up tomorrow evening.

Link to comment
Share on other sites

Hmm. That's a step forward. Now try this:

gPlatform.RootVolume = gPlatform.BootVolume = rootVolume;

 

Sorry for the slow response. Busy trying to fix the lapic.c boot error on Core i CPU's.

No problem with response times and there's no urgency here as I can always add the UUID for HHD1 in the kernel flags in com.apple.Boot.plist if I need, and I can still boot HHD1 by using USB anyhow.

 

As for the change above, I see no difference to my previous test in that it still tries to boot my HDD0 (and not HHD1 as I am after), and fails with failed to locate SMC driver.

 

Just returned from a long weekend in London, there's building work going on all over the place probably prepping for the olympics.

Hey DB1. I haven't been to London in a while so I do wonder how all the stadia work is coming along. I saw they finished the cycle dome thingy the other day. I'll have to search out some webcams / pics etc.

EDIT: found the webcams. Cool

Link to comment
Share on other sites

Had four 40 minute matches today. Stopped a massive 153 shots on the goal. We won everything and I became pool champion for the third time. My mom was in tears, but dad must have known it because I got a new box... with the keys of my very own 2011 SLK 300 – guess who will be moving to the US of A this summer.

 

Planned on doing some work but the phone keeps ringing. London 2012 is a go!!!!!!

 

Brilliant stuff. Congratulations DHP!!

Link to comment
Share on other sites

But maybe more importantly... we share all our source code, including our latest and greatest. Now look for the source code of say XPC and [url="http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/"]#####[/url]. Good luck with that!

Indeed. I was hoping for great things (& fun) with XPC a while ago, but needed a 32bit version (for another Atom based project with EFI firmware). Nada, so gave up.

 

What you are doing here, DHP, is totally awesome and as well as being both nice-fuzzy and in the spirit of open source, also gives us (far less) talented people an opportunity to learn some stuff and have a bit better appreciation of how the stuff works*; which just adds to the fun. Keep it up!

 

*Well, mostly an appreciation of how talented people such as yourself are!

(Most of the code is to me just like an alien language. Actually worse, as it's sort of in English so one can read it, but still not understand it - LOL).

Link to comment
Share on other sites

Hi DHP

 

I'm having this exact same problem. Boot stops/freezes at the same point (sorry no pics camera battery is flat but will post later.).

I've pinned it down to after the first shut down, prior to that sleep/wake and restart there is no problem. But after shutdown I then have to boot with X and can't restart normally until I've cleared caches, then I'm good again (with restart, sleep) until i shutdown.

 

This is the same for both SW RAID and single HDD install.

 

I'm using Release-646 with new efi.c but think I've had this problem all along (Just haven't shutdown much.).

 

// 

#define ACPI_10_SUPPORT	1

#define PATCH_ACPI_TABLE_DATA	1

#define USE_STATIC_ACPI_BASE_ADDRESS	0

#define STATIC_APIC_TABLE_INJECTION	1

#define STATIC_APIC2_TABLE_INJECTION	0

#define STATIC_DSDT_TABLE_INJECTION	1

#define STATIC_ECDS_TABLE_INJECTION	0

#define STATIC_FACS_TABLE_INJECTION	0

#define STATIC_HPET_TABLE_INJECTION	1

#define STATIC_SSDT_GPU_TABLE_INJECTION	0

#define STATIC_SSDT_PR_TABLE_INJECTION	0

#define STATIC_SSDT_SATA_TABLE_INJECTION	0

#define STATIC_SSDT_USB_TABLE_INJECTION	0

#define LOAD_DSDT_TABLE_FROM_EXTRA_ACPI	0

#define LOAD_SSDT_TABLE_FROM_EXTRA_ACPI	0


#define DROP_SSDT_TABLES	0

#define REPLACE_EXISTING_SSDT_TABLES	0

#define APPLE_STYLE_ACPI	1

#define DEBUG_ACPI	0

#if USE_STATIC_ACPI_BASE_ADDRESS
#define	STATIC_ACPI_BASE_ADDRESS		0x00000000
#endif


#define PRE_LINKED_KERNEL_SUPPORT	1

#define MUST_ENABLE_A20	0

#define SAFE_MALLOC	0

#define DEBUG_BOOT	1

#define DEBUG_DRIVERS	0


#define USE_STATIC_CPU_DATA	0

#define CPU_VENDOR_ID	CPU_VENDOR_INTEL // CPU_VENDOR_AMD

#define DEBUG_CPU	0


#define STATIC_CPU_Vendor	CPU_VENDOR_ID

#define STATIC_CPU_Signature	0

#define STATIC_CPU_Stepping	0

#define STATIC_CPU_Model	0

#define STATIC_CPU_Family	0

#define STATIC_CPU_ExtModel	0

#define STATIC_CPU_ExtFamily	0

#define STATIC_CPU_Type	0

#define STATIC_CPU_NumCores	0

#define STATIC_CPU_NumThreads	0

#define STATIC_CPU_Features	0

#define STATIC_CPU_CurrCoef	0

#define STATIC_CPU_MaxCoef	0

#define STATIC_CPU_CurrDiv	0

#define STATIC_CPU_MaxDiv	0

#define STATIC_CPU_TSCFrequency	0

#define STATIC_CPU_FSBFrequency	0

#define STATIC_CPU_CPUFrequency	0

#define STATIC_CPU_QPISpeed	0


#define EFI_BOOT_PARTITION_SUPPORT	0

#define LEGACY_BIOS_READ_SUPPORT	0

#define DEBUG_DISK	1


#define APPLE_STYLE_EFI	1

#define INJECT_EFI_DEVICE_PROPERTIES	1

#define EFI_64_BIT	1

#define DEBUG_EFI	0

#define STATIC_MODEL_NAME	{ 'i', 'M', 'a', 'c', '9', ',', '1' }

#define STATIC_SMSERIALNUMBER	"W87234JHYA4"

#define STATIC_SYSTEM_SERIAL_NUMBER	{ 'W', '8', '7', '2', '3', '4', 'J', 'H', 'Y', 'A', '4' }

#define STATIC_SYSTEM_ID	{ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}


#define STATIC_SCREEN_WIDTH	1920

#define STATIC_SCREEN_HEIGHT	1080


#define USE_STATIC_SMBIOS_DATA	1

#define OVERRIDE_DYNAMIC_MEMORY_DETECTION	0

#define OVERRIDE_DYNAMIC_PRODUCT_DETECTION	0

#if OVERRIDE_DYNAMIC_PRODUCT_DETECTION
#define STATIC_SMBIOS_MODEL_ID			MACPRO
#endif


#define DEBUG_SMBIOS	0


#define DEBUG_PLATFORM	0

#define STATIC_MAC_PRODUCT_NAME	"iMac9,1"

#if USE_STATIC_SMBIOS_DATA
// Do nothing.
#elif OVERRIDE_DYNAMIC_MEMORY_DETECTION

#define STATIC_RAM_SLOTS				4

#define STATIC_RAM_VENDORS				{ Vendor#1, Vendor#2, 0 }	

#define STATIC_RAM_TYPE					SMB_MEM_TYPE_DDR3	

#define USE_STATIC_RAM_SIZE				0

#if USE_STATIC_RAM_SIZE
#define STATIC_RAM_SIZE{ SMB_MEM_SIZE_2GB, SMB_MEM_SIZE_2GB, 0 }	
#endif

#define STATIC_RAM_SPEED				1066

#define STATIC_RAM_PART_NUMBERS			{ Part#1, Part#2, 0 }				

#define STATIC_RAM_SERIAL_NUMBERS		{ Serial#1, Serial#2, 0 .
#endif


 

EDIT - I'm using this fix for shutdown in DSDT:

 

    Method (_PTS, 1, NotSerialized)
   {
       [b][color="#ff0000"]If (LEqual (Arg0, 0x05)) {}
       Else
       {[/color][/b]
       Store (Arg0, DBG8)
       PTS (Arg0)
       Store (Zero, Index (WAKP, Zero))
       Store (Zero, Index (WAKP, One))
       If (LAnd (LEqual (Arg0, 0x04), LEqual (OSFL (), 0x02)))
       {
           Sleep (0x0BB8)
       }

       Store (ASSB, WSSB)
       Store (AOTB, WOTB)
       Store (AAXB, WAXB)
       Store (Arg0, ASSB)
       Store (OSFL (), AOTB)
       Store (OSYS (), OSTP)
       Store (Zero, AAXB)
       }
   }

 

Any more info' needed?

 

P.S. Thanks for commenting out the code in disk.c, makes it much easier to have it there :)

 

Cheers

 

 

 

 

I made a little step in finding solutions to my problem that to me it looks related to cpu configurations.

I deleted AppleIntelCPUPowerManagement.kext and I have no more the KP I had with that but instead I get another KP that i'll post asap about ACPI device driver not found for device iMac11,1

 

 

I have posted the static but i'm already booting with dinamic (and static are the same dinamic shows in debug) so that's why i thik they are not the correct one.

 

Here all the debug dump I can picture, this time same settings but no KP only the old hang... ??post-464373-1298495593_thumb.jpg

Link to comment
Share on other sites

But maybe more importantly... we share all our source code, including our latest and greatest. Now look for the source code of say XPC and [url="http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/"]#####[/url]. Good luck with that!

 

 

DHP, you're right there, XPC/[url="http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/"]#####[/url] source code is only available for citizens living ouside this solar system. Much prefer your open-source approach, seems to speed up development as more people are problem solving. Also, great result with the hockey, is there no stopping you?! :)

Link to comment
Share on other sites

 Share

×
×
  • Create New...