Linux/TMS320C6678: Unable to use EP mode chip in "supervisory mode"

Part Number: TMS320C6678

Tool/software: Linux

We've been using the TMS320C6678 Reset Controller to trigger Soft Reset of a device in legacy EP mode behind a PEX8748 (can provide a more detailed block diagram if useful). This procedure works smoothly for us in Linux 3.12 (SLES 12 SP1) but fails us in Linux 4.4 (SLES 12 SP3).

We've been configuring "master transaction mode" via PRIORITY[MST_PRIV] before trying to write any register in the PLL Controller.  We are able to read and write RSTCTRL in Linux 3.12 in "master mode" but read all 1's in Linux 4.4.

Anyone else having mode switch problems in Linux 4.x? It is certainly necessary to be in "supervisory mode" in order to access the PLL Controller but our driver might be missing an event of some kind triggered by the mode switch.

We can provide lots more context including driver source code. Wanted to start with the high-level question in case it rings a bell.

11 Replies

  • In reply to lding:

    Hi Eric,

    Thanks for checking back with us. We've been pulled away on a different task but will return to this one asap.

    We did try setting MSI_PRIV from generic sysfs entries for PCI (e.g. /sys/devices/pci0000:00/*) instead of using memory mapped by our driver. Initial testing was promising but we didn't follow-up with a full soft-reset cycle. That will be our next experiment. If we find positive correlation with our driver then that will help narrow the problem to something in our direct control. We don't have that confirmation yet but will keep you posted on both CCS/JTAG and this experiment with our driver.

    Best, Chad