sata_dwc_460ex driver
Hello everyone,
I'm working on a SoC which embeds an IP block from Synopsys labeled Synopsys DesignWare Cores Serial ATA AHCI Core, aka DWC_ahsata (DWC SATA AHCI Host 6Gb/s AXI Interface).
Would the sata_dwc_460ex driver support this DWC_ahsata hardware?
I suppose I would also need to enable AHCI support, right?
What is the difference between SATA_AHCI and SATA_AHCI_PLATFORM ?
SATA_AHCI = 971db06e09231SATA_AHCI_PLATFORM = 1c2a49f61785e
If I understand correctly, SATA_AHCI is for platforms with a PCI bus, while SATA_AHCI_PLATFORM is for other platforms. I probably want the latter then?
On the analog side, the SATA PHY is also made by Synopsys. Do I need to enable a specific driver?
I didn't see anything relevant in drivers/phy
(The documentation mentions 11 registers for tweaking the controller, but maybe it's the boot-loader's job to set this up correctly?)
Regards.
Quoted 19 lines · Mason
Hello everyone,
I'm working on a SoC which embeds an IP block from Synopsys labeled Synopsys DesignWare Cores Serial ATA AHCI Core, aka
DWC_ahsata(DWC SATA AHCI Host 6Gb/s AXI Interface).Would the
sata_dwc_460exdriver support thisDWC_ahsatahardware?I suppose I would also need to enable AHCI support, right?
What is the difference between
SATA_AHCIandSATA_AHCI_PLATFORM?
SATA_AHCI=971db06e09231SATA_AHCI_PLATFORM=1c2a49f61785eIf I understand correctly,
SATA_AHCIis for platforms with a PCI bus, whileSATA_AHCI_PLATFORMis for other platforms. I probably want the latter then?
Quoted 6 lines
On the analog side, the SATA PHY is also made by Synopsys. Do I need to enable a specific driver?
I didn't see anything relevant indrivers/phy(The documentation mentions 11 registers for tweaking the controller, but maybe it's the boot-loader's job to set this up correctly?)
The sata_dwc_460ex driver can be made to work with the tango3/4 chips. You need a dmaengine driver (I've written one for tango3, needs slight tweaking for tango4) and some additions to the SATA driver to handle the DMA glue logic (I have unpublished code for this as well). There are a bunch of fixes for the SATA driver currently in linux-next, and I was planning to take another look at supporting tango3/4 once these hit mainline (4.7-rc1 most likely).
A driver for the PHY is probably a good idea, even if the boot loader does some configuration, since this allows it to be powered down when not in use.
Signature · 1 line
Måns Rullgård
Quoted 19 lines · Måns Rullgård
Quoted 17 lines · Mason
I'm working on a SoC which embeds an IP block from Synopsys labeled Synopsys DesignWare Cores Serial ATA AHCI Core, aka
DWC_ahsata(DWC SATA AHCI Host 6Gb/s AXI Interface).Would the
sata_dwc_460exdriver support thisDWC_ahsatahardware?I suppose I would also need to enable AHCI support, right?
What is the difference between
SATA_AHCIandSATA_AHCI_PLATFORM?
SATA_AHCI=971db06e09231SATA_AHCI_PLATFORM=1c2a49f61785eIf I understand correctly,
SATA_AHCIis for platforms with a PCI bus, whileSATA_AHCI_PLATFORMis for other platforms. I probably want the latter then?
Quoted 8 lines
Quoted 6 lines
On the analog side, the SATA PHY is also made by Synopsys. Do I need to enable a specific driver?
I didn't see anything relevant indrivers/phy(The documentation mentions 11 registers for tweaking the controller, but maybe it's the boot-loader's job to set this up correctly?)
The
sata_dwc_460exdriver can be made to work with the tango3/4 chips.
I'm talking about tango5. It's not the same controller as tango3/4. (They use different Synopsys DesignWare controllers.)
Quoted 6 lines
You need a dmaengine driver (I've written one for tango3, needs slight tweaking for tango4) and some additions to the SATA driver to handle the DMA glue logic (I have unpublished code for this as well). There are a bunch of fixes for the SATA driver currently in linux-next, and I was planning to take another look at supporting tango3/4 once these hit mainline (4.7-rc1 most likely).
FWIW, it seems like tango4 is low-priority internally ATM.
Quoted 3 lines
A driver for the PHY is probably a good idea, even if the boot loader does some configuration, since this allows it to be powered down when not in use.
How come there are so few phy drivers in drivers/phy if most devices would typically require one?
Regards.
Quoted 4 lines · Christian Lamparter
As far as I know, the ahci dwc core can be supported via the libahci of.
The binding is already present.
See http://lxr.free-electrons.com/source/Documentation/devicetree/bindings/ata/ahci-platform.txt
(snps,dwc-ahci). TheSATA_dwc_460exis not necessary in this case.
Hello Christian,
Thanks for the information.
By the way, I see no difference between using "snps,dwc-ahci" and "generic-ahci" compatible strings, correct?
Note: I've added linux-ide back to the mix ;-)
Regards.
Quoted 40 lines · Mason
Quoted 19 lines · Måns Rullgård
Quoted 17 lines · Mason
I'm working on a SoC which embeds an IP block from Synopsys labeled Synopsys DesignWare Cores Serial ATA AHCI Core, aka
DWC_ahsata(DWC SATA AHCI Host 6Gb/s AXI Interface).Would the
sata_dwc_460exdriver support thisDWC_ahsatahardware?I suppose I would also need to enable AHCI support, right?
What is the difference between
SATA_AHCIandSATA_AHCI_PLATFORM?
SATA_AHCI=971db06e09231SATA_AHCI_PLATFORM=1c2a49f61785eIf I understand correctly,
SATA_AHCIis for platforms with a PCI bus, whileSATA_AHCI_PLATFORMis for other platforms. I probably want the latter then?Quoted 8 lines
Quoted 6 lines
On the analog side, the SATA PHY is also made by Synopsys. Do I need to enable a specific driver?
I didn't see anything relevant indrivers/phy(The documentation mentions 11 registers for tweaking the controller, but maybe it's the boot-loader's job to set this up correctly?)
The
sata_dwc_460exdriver can be made to work with the tango3/4 chips.I'm talking about tango5. It's not the same controller as tango3/4. (They use different Synopsys DesignWare controllers.)
Quoted 6 lines
You need a dmaengine driver (I've written one for tango3, needs slight tweaking for tango4) and some additions to the SATA driver to handle the DMA glue logic (I have unpublished code for this as well). There are a bunch of fixes for the SATA driver currently in linux-next, and I was planning to take another look at supporting tango3/4 once these hit mainline (4.7-rc1 most likely).
Quoted 8 lines
FWIW, it seems like tango4 is low-priority internally ATM.
Quoted 3 lines
A driver for the PHY is probably a good idea, even if the boot loader does some configuration, since this allows it to be powered down when not in use.
How come there are so few phy drivers in
drivers/phyif most devices would typically require one?
Short answer is that the generic phy framework is fairly recent (~3 years old). A lot of phys are stuck off in other places like drivers/usb/phy. At least that's my take on it.
Regards,
Andy Gross
Quoted 8 lines · Andy Gross
Quoted 2 lines · Mason
How come there are so few phy drivers in
drivers/phyif most devices would typically require one?Short answer is that the generic phy framework is fairly recent (~3 years old). A lot of phys are stuck off in other places like
drivers/usb/phy. At least that's my take on it.
<confused> Where did the SATA phy drivers use to live?
$ find -name phy ./drivers/usb/phy ./drivers/phy ./drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy ./drivers/net/phy ./drivers/gpu/drm/msm/dsi/phy ./include/linux/phy ./include/dt-bindings/phy ./Documentation/devicetree/bindings/phy ./Documentation/phy
drivers/ata/ahci.h mentions SATA phy registers.
Is AHCI standardized to the point that platform-specific PHYs are not required?
Regards.
Quoted 24 lines · Mason
Quoted 8 lines · Andy Gross
Quoted 2 lines · Mason
How come there are so few phy drivers in
drivers/phyif most devices would typically require one?Short answer is that the generic phy framework is fairly recent (~3 years old). A lot of phys are stuck off in other places like
drivers/usb/phy. At least that's my take on it.<confused> Where did the SATA phy drivers use to live?
$ find -name phy ./drivers/usb/phy ./drivers/phy ./drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy ./drivers/net/phy ./drivers/gpu/drm/msm/dsi/phy ./include/linux/phy ./include/dt-bindings/phy ./Documentation/devicetree/bindings/phy ./Documentation/phy
Quoted 3 lines
drivers/ata/ahci.hmentions SATA phy registers.
Is AHCI standardized to the point that platform-specific PHYs are not required?
A lot of hardware, especially older, doesn't need PHY drivers since the PHY either has no settings or is configured by platform firmware. In some other cases, the PHY is tightly coupled to the SATA/USB/whatever controller and handled directly by its driver.
Signature · 1 line
Måns Rullgård