From: Brandon K. <bdk...@gm...> - 2008-02-01 05:52:13
|
I realize that AHCI is possible for the macbook (ICH7M), but I'm wondering of AHCI is possible for the macbook pro 3,1(ICH8M). I have CONFIG_SATA_AHCI=y and a vanilla 2.6.24 kernel with mactel-linux patches applied. Unfortunately as of this moment, ata_piix takes over automatically. I attempted to force enable AHCI by adding the PCIID (0x2828) to drivers/ata/ahci.c; however, this created a kernel panic. In the kernel's current state is is possible to get AHCI with a macbook pro? |
From: Brandon K. <bdk...@gm...> - 2008-02-01 20:27:04
|
Alexandre Boeglin. Would you happen to remember exactly where you found the patch. I did a google search for "AHCI bit flip 0x90 patch" but nothing of any use came up. I also noticed that there was a specific entry for apple in ata_piix. This is the code: ata_piix.c: /* Mobile SATA Controller IDE (ICH8M) */ { 0x8086, 0x2828, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_ahci }, /* Mobile SATA Controller IDE (ICH8M), Apple */ { 0x8086, 0x2828, 0x106b, 0x00a0, 0, 0, ich8m_apple_sata_ahci }, (line 131) ich8_sata_ahci, (line 133) ich8m_apple_sata_ahci, /* locks up on second port enable */ static const struct piix_map_db ich8_2port_map_db = { .mask = 0x3, .port_enable = 0x3, .map = { /* PM PS SM SS MAP */ { P0, NA, P1, NA }, /* 00b */ { RV, RV, RV, RV }, /* 01b */ { RV, RV, RV, RV }, /* 10b */ { RV, RV, RV, RV }, }, }; static const struct piix_map_db ich8m_apple_map_db = { .mask = 0x3, .port_enable = 0x1, .map = { /* PM PS SM SS MAP */ { P0, NA, NA, NA }, /* 00b */ { RV, RV, RV, RV }, { P0, P2, IDE, IDE }, /* 10b */ { RV, RV, RV, RV }, }, ** Seems that "locks up on second port enable" Is it possible that this needs to be implemented for the ahci driver. (Hope that I'm not way off here) |
From: Brandon K. <bdk...@gm...> - 2008-02-04 20:57:26
|
Alexandre Boeglin. Would you happen to remember exactly where you found the patch. I did a google search for "AHCI bit flip 0x90 patch" but nothing of any use came up. I also noticed that there was a specific entry for apple in ata_piix. This is the code: ata_piix.c: /* Mobile SATA Controller IDE (ICH8M) */ { 0x8086, 0x2828, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_ahci }, /* Mobile SATA Controller IDE (ICH8M), Apple */ { 0x8086, 0x2828, 0x106b, 0x00a0, 0, 0, ich8m_apple_sata_ahci }, (line 131) ich8_sata_ahci, (line 133) ich8m_apple_sata_ahci, /* locks up on second port enable */ static const struct piix_map_db ich8_2port_map_db = { .mask = 0x3, .port_enable = 0x3, .map = { /* PM PS SM SS MAP */ { P0, NA, P1, NA }, /* 00b */ { RV, RV, RV, RV }, /* 01b */ { RV, RV, RV, RV }, /* 10b */ { RV, RV, RV, RV }, }, }; static const struct piix_map_db ich8m_apple_map_db = { .mask = 0x3, .port_enable = 0x1, .map = { /* PM PS SM SS MAP */ { P0, NA, NA, NA }, /* 00b */ { RV, RV, RV, RV }, { P0, P2, IDE, IDE }, /* 10b */ { RV, RV, RV, RV }, }, ** Seems that "locks up on second port enable" Is it possible that this needs to be implemented for the ahci driver. (Hope that I'm not way off here) (Sorry as well for posting this more than once, I didn't realize how to reply to a previous topic, if this is going to be removed as well, can someone please let me know what I am doing wrong? Sorry I'm new to mailing lists.) Thank You |
From: Alexandre B. <al...@bo...> - 2008-02-04 21:05:46
|
Le lun 04 fév 2008 à 13:57:22 -0700, Brandon Koepke a écrit : > Alexandre Boeglin. Would you happen to remember exactly where > you found the patch. I did a google search for "AHCI bit flip 0x90 patch" I'm sorry, I couldn't find it, and I don't think I kept it. It should be something like this in the init: pci_write_config_word(pdev, 0x90, 0x40); Actually, I used another approach on my Mac Pro, making the bootloader switch the device to AHCI. You can find info here: http://boeglin.org/blog/index.php?entry=entry071218-212838 http://forum.onmac.net/showthread.php?t=2739 Regards, Alex |
From: Alexandre B. <al...@bo...> - 2008-02-04 22:30:32
|
Le lun 04 fév 2008 à 23:11:06 +0100, Sven Anders a écrit : > I found the following mail on the mactel-linux-devel list: This patch only adds pci ids, which seems is not sufficient in this case. Alex |
From: Sven A. <an...@an...> - 2008-02-04 22:11:50
Attachments:
signature.asc
anders.vcf
|
Alexandre Boeglin schrieb: > Le lun 04 fév 2008 à 13:57:22 -0700, Brandon Koepke a écrit : >> Alexandre Boeglin. Would you happen to remember exactly where >> you found the patch. I did a google search for "AHCI bit flip 0x90 patch" > > I'm sorry, I couldn't find it, and I don't think I kept it. > > It should be something like this in the init: > pci_write_config_word(pdev, 0x90, 0x40); I found the following mail on the mactel-linux-devel list: > Matteo <roo...@ya...> wrote on 06.05.2007: > > Hi, what about enabling AHCI mode for the controller with this patch: > > http://teknoraver.campuslife.it/software/mac-ahci.diff > > and get noticeable speed improvements like these? > > http://teknoraver.campuslife.it/bench/ata_piix_vs_ahci.pdf > > Cheers, > Matteo Mit freundlichen Grüßen Sven Anders -- Sven Anders <an...@an...> () Ascii Ribbon Campaign /\ Support plain text e-mail ANDURAS service solutions AG Innstraße 71 - 94036 Passau - Germany Web: www.anduras.de - Tel: +49 (0)851-4 90 50-0 - Fax: +49 (0)851-4 90 50-55 Rechtsform: Aktiengesellschaft - Sitz: Passau - Amtsgericht Passau HRB 6032 Mitglieder des Vorstands: Sven Anders, Marcus Junker Vorsitzender des Aufsichtsrats: Dr. Thomas Träger |
From: Sven A. <an...@an...> - 2008-02-04 22:56:40
Attachments:
signature.asc
anders.vcf
|
Alexandre Boeglin schrieb: > Le lun 04 fév 2008 à 23:11:06 +0100, Sven Anders a écrit : >> I found the following mail on the mactel-linux-devel list: > > This patch only adds pci ids, which seems is not sufficient in this case. I don't know the complete drivers structure, but it removes the PCI IDs from the ata_piix drivers and adds them to the ahci driver. I could be sufficient, but you have to take a look at the driver itself. Regards Sven -- Sven Anders <an...@an...> () Ascii Ribbon Campaign /\ Support plain text e-mail ANDURAS service solutions AG Innstraße 71 - 94036 Passau - Germany Web: www.anduras.de - Tel: +49 (0)851-4 90 50-0 - Fax: +49 (0)851-4 90 50-55 Rechtsform: Aktiengesellschaft - Sitz: Passau - Amtsgericht Passau HRB 6032 Mitglieder des Vorstands: Sven Anders, Marcus Junker Vorsitzender des Aufsichtsrats: Dr. Thomas Träger |
From: Soeren S. <mac...@nn...> - 2008-02-04 23:09:14
|
On Mon, 2008-02-04 at 23:56 +0100, Sven Anders wrote: > Alexandre Boeglin schrieb: > > Le lun 04 fév 2008 à 23:11:06 +0100, Sven Anders a écrit : > >> I found the following mail on the mactel-linux-devel list: > > > > This patch only adds pci ids, which seems is not sufficient in this case. > > I don't know the complete drivers structure, but it removes the PCI IDs from > the ata_piix drivers and adds them to the ahci driver. > I could be sufficient, but you have to take a look at the driver itself. It works on my mbp1,1 but neither do I see speedups nor does the ALPM stuff work (no reduce of power consumption by 0.5W) Soeren |
From: Brandon K. <bdk...@gm...> - 2008-02-06 05:49:15
|
Hey, thanks for all the posts. I have downloaded the patch and also applied the quirks.c patch (searched google for macbook ICH quirk). It seems like this is still not working. I'm also not sure which file to put the pci_write_config_word(pdev, 0x90, 0x40); (I searched the ahci.c file as well as drivers/* for init.c) however, I did not find an appropriate place to put the patch. Also the grub patch is here: + /* mac pro hack*/ + push %edx + mov $0x8000fa90, %eax /* is this correct for the macbook pro santa rosa PCIID? */ + mov $0xcf8, %dx + out %eax, (%dx) + mov $0x40, %al + mov $0xcfc, %dx + out %al, (%dx) + pop %edx + + /* set up %ds and %ss as offset from 0 */ + xorl %eax, %eax + movw %ax, %ds + movw %ax, %ss Sorry, I only know very little about assembly code. So far none of this has been successful. However, no more kernel panic, but the driver still doesn't register. I am also positive that 0x2828 is correct (lspci -vvn). Thanks in advance. |
From: Alexandre B. <al...@bo...> - 2008-02-06 12:15:37
|
Le mar 05 fév 2008 à 22:49:11 -0700, Brandon Koepke a écrit : > Hey, thanks for all the posts. I have downloaded the patch and also > applied the quirks.c patch (searched google for macbook ICH quirk). > It seems like this is still not working. Which one are you referring to ? The one I found definitely looked wrong, as it's trying to write to read only bytes. That's where you could try "pci_write_config_word(pdev, 0x90, 0x40)" instead. > Also the grub patch is here: > + /* mac pro hack*/ > + push %edx > + mov $0x8000fa90, %eax /* is this correct for the macbook pro santa > rosa PCIID? */ According to Intel's specs for ICH8 & ICH8M, the device address in the pci space is the same, so it should still work. > Sorry, I only know very little about assembly code. > So far none of this has been successful. However, no more kernel panic, > but the driver still doesn't register. > I am also positive that 0x2828 is correct (lspci -vvn). 0x2828 is for legacy ide mode. Once switched to AHCI mode, it should report 0x2829 (according to Intel specs). I don't know how adding a pci quirk will deal with this "renumbering", though. Alex |
From: Brandon K. <bdk...@gm...> - 2008-02-07 16:17:07
|
Here is the patch that works (the grub patch still didn't work for me) (It is definitely using the stage1, so I know the patch was active): 890a891,932 > static void __devinit quirk_ahci_sata(struct pci_dev *pdev) > { > u32 ahci_bar; > /* can't map regions in pci_early, read AHCI BAR value directly*/ > pci_read_config_dword(pdev, 0x24,&ahci_bar); > > pci_write_config_word(pdev, 0x90, 0x40); > > if (!ahci_bar) { > u8 map; > u16 pci_cmd; > u32 sir; > printk (KERN_INFO "AHCI BAR not set - try to enable\n"); > /* Check for SCRAE */ > pci_read_config_dword(pdev, 0x94,&sir); > if(!sir&(1<<9)) { > printk(KERN_INFO "SCR Access Enable is not set\n"); > return; > } > /* Memory Space Enable */ > pci_read_config_word(pdev, PCI_COMMAND, &pci_cmd); > pci_cmd |= 0x1; > pci_write_config_word(pdev, PCI_COMMAND, pci_cmd); > /* Address MAP Register */ > pci_read_config_byte(pdev, 0x90, &map); > map |= 0x40;/* ahci mode */ > map &= ~0x3;/* Map Value = 0 */ > pci_write_config_byte(pdev, 0x90, map); > } > > /* Set PCI_CLASS_STORAGE_SATA */ > if ((pdev->class >> 8) == PCI_CLASS_STORAGE_IDE) { > pci_write_config_byte(pdev, PCI_CLASS_PROG, 0x01); > pci_write_config_byte(pdev, PCI_CLASS_DEVICE, 0x06); > } > pdev->class = PCI_CLASS_STORAGE_SATA_AHCI; > printk (KERN_INFO "Quirked PIIX device to AHCI mode\n"); > } > > DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2828, quirk_ahci_sata); ( This is against the 2.6.24 kernel) I'm pretty sure that most of the patch is useless. Could someone help me clean this up? Thank you in advance. |
From: Alexandre B. <al...@bo...> - 2008-02-07 17:04:29
|
Le jeu 07 fév 2008 à 09:17:03 -0700, Brandon Koepke a écrit : > Here is the patch that works (the grub patch still didn't work for me) > (It is definitely using the stage1, so I know the patch was active): Hi, It seems that's the original one I was referring to (which I couldn't find anylonger). In this case, you don't need to add the "pci_write_config_byte(pdev, 0x90, 0x40)" to it, it's already done in the patch in a lightly cleaner way a few lines below. Alex |
From: cyberdork33 <cyb...@gm...> - 2008-02-01 16:44:59
|
Intel says that ICH8M supports AHCI http://www.intel.com/design/chipsets/datashts/313056.htm Brandon Koepke wrote: > I realize that AHCI is possible for the macbook (ICH7M), but I'm > wondering of AHCI is possible for the macbook pro 3,1(ICH8M). I have > CONFIG_SATA_AHCI=y and a vanilla 2.6.24 kernel with mactel-linux patches > applied. Unfortunately as of this moment, ata_piix takes over > automatically. I attempted to force enable AHCI by adding the PCIID > (0x2828) to drivers/ata/ahci.c; however, this created a kernel panic. In > the kernel's current state is is possible to get AHCI with a macbook > pro? > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Mactel-linux-users mailing list > Mac...@li... > https://lists.sourceforge.net/lists/listinfo/mactel-linux-users > |
From: Alexandre B. <al...@bo...> - 2008-02-01 18:36:46
|
Le jeu 31 jan 2008 à 21:51:46 -0800, Brandon Koepke a écrit : > I attempted to force enable AHCI by adding the PCIID > (0x2828) to drivers/ata/ahci.c; however, this created a kernel panic. Hi, I think you also need to flip a bit in offset 0x90 of the PCI config space of this device. I remember seeing a patch somewhere that does this. Alex |