-
Posts
51 -
Joined
-
Last visited
dutchcow's Achievements
Sergeant (6/17)
0
Reputation
-
Well after long a rigerous testing with EMlyDinEsH it is possible to enable AHCI with a DSDT patch, but not in OSX. I'm too clueless to explain the details, but I think OSX is somehow blocking it. Maybe EMlyDinEsH can explain some details here. For anyone who still wants to get this to work you should look into chainloading into chameleon via grub/grub4dos and use grub or dos commands to set the pci stuff and then boot OSX. However I havent gotten this to work, when I do I will share the image here. It will be Linux or Freedos based.
-
D820 KP when booting in to OSX or installer with -f
dutchcow replied to dutchcow's topic in The Archive
I ran into this a couple of more time. Things to check; modules chameleon loads, the /boot file, 2172 seems to work really well while some newer 218x builds fail hard when booting into OSX. I've also noticed that playing around with setpci stuff in Linux and doing a normal reboot will make OSX very unhappy So when things get weird here I make sure I have the 2172 /boot file, ran a full myfix, have a good hot cup of coffee and do a proper turning it off and on again to fix most things. I'm currently modding a Lion installer so it can be used as utility stick/disk, basically I just removed all packages and put on some nice applications. But I guess it would be illegal to share it. It's simple enough to make and nice to have. Or a SuperDuper! live usb disk ofcourse (but I like to create a tiny rescue thingy for my hackingtoshes). -
I would create a folder and collect the kexts from /E/E and other places that work for you, create your own Extra or one with your own Extensions folder and then install those via myHack. There's also an option of using the OLD EDP installers. I'm not sure if the management likes if I attach those to my post. I have both Lion and SL old EDP installers. They may just get you a working system and then you can upgrade kexts where needed. I have a D820 myself which works very smoothly, if you need anything from me let me know. I do have the Intel version though.
-
You could download the bootpack and decompile the DSDT.aml file. It also has some but not all kexts, to see those check out the svn, or browse it online.
-
And sugar too, I know it is bad, but it is so good.
-
If served with free coffee and chocolate chip cookies.
-
dsdt.aml.zipI did some testing under Linux and the speed difference with normal drives can be upto 5-10MB/s once AHCI is enabled. I think the legacy IDE mode limits the bus speed or something.
-
@Herve Interesting, I will try that on my D630. I will also try the other suggestions. A Chameleon module or a kext (if possible) would be sweet too. @Bronxteck I linked to that on page 1 According to DiffMerge the DSDTs are identical from the D630 AHCI and IDE modes. D630_DSDT_IDE_VS_AHCI.zip
-
If anything it has to be done from the RAM or something. I can toggle the interface in the grub menu, but I can't boot in to the OS. However if I make the changes from a USB grub install the system doesn't crash but I'm unable to access any drives (I think this has to do with memory space/mapping but is far above my level). The best method would be via BIOS/DSDT and if that fails some other way like you said with a module that gets loaded into the RAM before boot. I also have no idea if my disk names stay the same when switch mode. On my D630 switching AHCI on or off still makes OSX boot fine. So I don't think that should be a problem. If only I can find the old free version of DIY ViDOck bootdisk. I know that can change pci registers and then use grub4dos to chainload into anything. But I'm not willing to pay to test it, there will be no refund if it doesn't work on my system. If anyone has an old version laying around let me know so I can test it.
-
Oh right, I did a diff and it a showed a lot but I think thats due to the headers being different and so all the line numbers too, oops. I read somewhere there can be differences, oh well. Lets hope something can figured out.
-
There seems to be more code in the BIOS one. @Bronxteck That won't work until OSX can access TRIM and NCQ without AHCI enabled, Windows can do it. Linux has a bootflag to switch the controller in to AHCI mode. It's just OSX unfortunatly. There is no new firmware for my drive. I'm using a V300 Kingston in the D820, there are no updates yet. It has build in garbage collection, so TRIM is not really my first worry. The lack of NCQ and having the controller in legacy mode is what's costing speed, a lot of it. Ideally Dell would release a new BIOS with a switch for AHCI mode. But even on a lot of ICH8-M notebooks the option is nowhere to be found. This fix applies to that chipset too.
-
Many people also succeed though. I mean if I can toggle the thing into SATA mode with some simple commands, surely there must be a way to either put the fixes in the DSDT or create some ramdisk that can execute them without crashing as is the case now, even when booting from external media, the system freezes. This can also have todo by the lack of AHCI address space, which need to put in the DTST or via setpci commands too. The speed increase right now is a lot already but with NCQ and TRIM it will be faster and better for the lifetime of my SSD. For the record I'm attaching my Linux and BIOS extracted unmodified DSDT to this post. Linux_BIOS_DSDT.zip
-
Some more 'technical' information on this 'patch'. http://tlasd.wordpress.com/2009/11/06/intel-sata-chipsets-and-ahci/ http://mjg59.livejournal.com/76062.html I really think we need a DSDT wizard to make this work. I'm def. willing to chip in some money as this will not only benefit me but anyone with a ICH7/8-M chipset without AHCI mode in the BIOS. The speed gain even with normal drives can be quite a lot. Let alone SSDs. Getting NCQ to work will be a major boost, TRIM would be super sweet for us SSD users. The "quirks.ich_force_ahci=1" kernel flag for Linux is very interesting and I wonder if its possible to port that, or create a very tiny loader that loads a linux kernel, sets the sata mode and then boots into chameleon.
-
Hrm.. When executing "setpci -s 00:1f.2 90.b=40" from the grub prompt and then doing a lspci shows the controller in sata mode, but I can't see any disks. When I boot the system freezes, ctrl-alt-del can reboot though, previously I had to hold down the power button. Any command inside grub that requires loading files from the grub folder on the hdd results in a freeze too, like the help command.
-
Yeah, I think my best bet is to make a grub .img file that can execute the setpci commands and then chainload chameleon. That bootdisk found inside that $25 software can actually do it, but I'm not paying money for a suite of software I only need to use 1% of. I've tried looking everywhere for the old free version of it. It would be a perfect solution, could install grub in the EFI, which sets the controller in sata mode and then loads chameleon or an installer if I need to reinstall. Making a chainloading mini grub isn't the problem, the dos apps they use to change the pci registers are very hard to find. Another option is to figure out how Windows gets access to TRIM and NCQ, because I checked the device id in windows and its also still on *4 and not *5 (sata mode) yet TRIM and NCQ work, verified with fstool. But figuring that out isn't my strong point. I'm a unix guy really. I don't know if this is helpful for DSDT modding, but this is what they do to make AHCI work on ICH7-M: ahci.bat: :: Based off Coreboot i82801gx AHCI SATA code http://tiny.cc/cbahci :: :: Enable BARs setpci -s 0:1f.2 4.w=0007 :: Allow both Legacy and Native mode setpci -s 0:1f.2 9.b=8f :: set interrupt line.Interrupt Pin is set by D31IP.PIP setpci -s 0:1f.2 3c.b=a :: set timings setpci -s 0:1f.2 40.w=A307 setpci -s 0:1f.2 42.w=A303 :: sync DMA setpci -s 0:1f.2 48.b=1 setpci -s 0:1f.2 4a.b=1 :: Set IDE I/O Configuration setpci -s 0:1f.2 54.l=3002 :: Set Sata Controller Mode. setpci -s 0:1f.2 90.b=40 :: Port 0 and 4 enable setpci -s 0:1f.2 92.b=1011 :: SATA initialisation register setpci -s 0:1f.2 94.l=4a000180 :: SATA initialisation sequence setpci -s 0:1f.2 a0.b=40 setpci -s 0:1f.2 a6.b=22 setpci -s 0:1f.2 a0.b=78 setpci -s 0:1f.2 a6.b=22 setpci -s 0:1f.2 a0.b=88 setpci -s 0:1f.2 a4.l=1b1b1212 setpci -s 0:1f.2 a0.b=8c setpci -s 0:1f.2 a4.l=121212AA setpci -s 0:1f.2 a0.b=0 setpci -s 0:1f.2 3c=0 setpci -s 0:1f.2 94.l=c4a000180 autoexec.bat: echo off echo ICH7M/ICH8M: 27c48086/28288086 = IDE, 27c58086/27298086 = AHCI echo ICH7M/ICH8M: original sata PCI ID. Visually confirm it is 27c48086/28288086 (IDE) setpci -s 0:1f.2 0.l :: setup PCI Configuration space. You'll need to find free space in PCI Configuration Space to allocate to :: Use PCI Scope Trial to easily identify free space :: register 4, bit 1: Memory space enable (for AHCI) :: Must be done while in IDE mode (register 90=0) setpci -s 0:1f.2 4.b=2:2 :: Register 90: 0x00=IDE, 0x40=AHCI, 0x80=RAID. Set it to AHCI + non-combined. setpci -s 0:1f.2 90.b=40 call ahcipci.bat :: Register 94: set the SCRAE bit 9 :: setpci -s 0:1f.2 94.w=200:200 :: Register 9: set pci_class_prog=0x01 setpci -s 0:1f.2 9.b=1 :: Register a: set pci_class_device=0x06 setpci -s 0:1f.2 a.b=6 :: Switch off, then on the sata port setpci -s 0:1f.2 92.w=0000 setpci -s 0:1f.2 92.w=1011 echo Visually inspect output below. Want a "1" on the left side to indicate a device was found setpci -s 0:1f.2 92.w echo ICH7M/ICH8M AHCI FIX APPLIED echo ICH7M/ICH8M new sata PCI ID. Visually confirm it is 27c58086/27298086 (AHCI) setpci -s 0:1f.2 0.l :: quirk: Required a hardset to enable AHCI memory space setpci -s 0:1f.2 4.b=7 :: rescan pci-bus lspci > nul :: Chainload operating system :: grub --config-file="menu.xp" :: Or for Vista/Win7 :: grub --config-file="menu.w7"