Re: gemini: sl3516: Mainlining of NS 2502

From: Linus Walleij
Date: Wed May 05 2021 - 20:00:58 EST


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@xxxxxxxxx> 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@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