gemini: sl3516: Mainlining of NS 2502

Linus Walleij linus.walleij at linaro.org
Wed May 5 16:56:28 PDT 2021


Hi Corentin,

I will check the patches you posted too, sorry for being a bit busy
with some merge window and stuff.

On Wed, May 5, 2021 at 9:26 PM Corentin Labbe <clabbe.montjoie at gmail.com> wrote:

> It seems that USB is still a bit buggy, device are detected only if plugged before boot.

Yeah :/ I don't know that driver very well, only that others use it too
so there might be some people who can help. I haven't mainlined
that patch because there is something that seems wrong about it
but I'm not a USB guy.

> I hit a problem on the NS2502, sata drives does not work well:
(...)
> It seems a problem soon after driver probe (qc timeout and HPA error).
> Any idea ?
>
> The SATA works well on my other board (SSI1328)
> having one or two disk does not change the behavour.

Could be the SATA muxing, this thing in your device tree:

sata: sata at 46000000 {
    cortina,gemini-ata-muxmode = <0>;
    cortina,gemini-enable-sata-bridge;
    status = "okay";
};

cortina,gemini-ata-muxmode should be 3 for two harddisks
I think.

If that is correct then check if DMA is broken like on SQ201,
see drivers/ata/pata_ftide010.c and here:

/* This device has broken DMA, only PIO works */
if (of_machine_is_compatible("itian,sq201")) {
    pi->mwdma_mask = 0;
    pi->udma_mask = 0;
}

This had to be explicitly disabled for SQ201 to work and
I guess it must be broken electronics design (too long
leads, interference...) so try to put the compatible for your
board in there and see if the drive starts working. You should
be able to check the source code of the vendor tree to
see if they also turned off DMA, if they did then that is
a certain sign it has the same bug so you should make a
patch for it. Maybe it should rather be some "disable-dma"
flag in the DT node, the above is a bit ugly but works.

Yours,
Linus Walleij



More information about the linux-arm-kernel mailing list