This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

66AK2H14: Where is the Hyperlink Kernel driver for Linux?

Guru* 84110 points
Part Number: 66AK2H14

In the “Keystone Multicore DSP.” training video Introduction to EVMK2H, there is a reference to the Hyperlink Kernel driver for Linux? Where can that driver be found?


Is there documentation on the use of the Hyperlink module from within Linux? How to mount or open or enable it, how to configure it, and such?

Regards,
RandyP

  • Hi Randy,

    I checked the ti-processor-sdk-linux-k2hk-evm-03.02.00.05 (kernel 4.4.32), and the only reference I found to the hyperlink, when grepping the sources was in k2hk-uio.dtsi:
    uio_hyperlink0: hyperlink0
    uio_hyperlink1: hyperlink1

    There was no other reference in the kernel sources, or the extra-drivers in the officially released SDK package. From git.ti.com I could only find the
    keystone-rtos -> hyplnk-lld repository.

    Best Regards,
    Yordan
  • Hi,

    In the MCSDK BIOS 3.1.X release, Look at arch/arm/boot/dts/k2hk-evm.dts (showed for port 0 for brevity):

    thuio_hyperlink0: hyperlink0 {

                           compatible = "ti,uio-module-drv";

                           mem = <0x21400000 0x00000100

                                   0x40000000 0x10000000

                                   0x0231a000 0x00002000>;

                           clocks = <&clkhyperlink0>;

                           interrupts     = <0 387 0x101>;

                           label = "hyperlink0";

                           cfg-params

                           {

                                   ti,serdes_refclk_khz = <312500>;

                                   ti,serdes_maxserrate_khz = <6250000>;

                                   ti,serdes_lanerate = "half";

                                   ti,serdes_c1 = <4>;

                                   ti,serdes_c2 = <0>;

                                   ti,serdes_cm = <3>;

                                   ti,serdes_tx_att = <6>;

                                   ti,serdes_tx_vreg_lev = <4>;

                           };

                   };

    This showed how the Hyperlink is configured at Serdes level. How to test (open, transfer data, close): you can refer to the wiki  

    Please note this MPM transport API is intended for internal use. Customer can refer to those to develop their own applications. On top of the MPM transport is the OpenMPI layer, that is where we recommend customer to use.

    Those info is based on the BIOS MCSDK 3.x usage, things may change a bit in the Processor SDK Linux. I asked our Linux expert to comment here.

    Regards, Eric

     

     

  • Eric,

    Thank you for the information here. This is great.

    We have recommended the customer move to the Processor SDK but have seen that a lot of the documentation is like your information, still referring to the MCSDK. Should users stay with MCSDK or move to Processor SDK for the best support?

    Regards,
    RandyP
  • Hi, Randy,

    Linux does not have hyperlink driver, therefore, there isn't any documentation for it. The documentation will be in RTOS ProcSDK.

    Eric pretty much summarized how it works. In Linux, it only exposes the Hyperlink through UIO to configure the Serdes and memory areas. The Hyperlink has UIO API to LLD library. Hope this is clear.

    OpenMPI
    MPM_Transport
    LLD Library
    UiO_Hyperlink

    Rex
  • Randy,

    Here is the link to the ProcSDK Hyperlink document, processors.wiki.ti.com/.../Processor_SDK_RTOS_HYPLNK

    Rex
  • Randy,

    It is good to use the Processor SDK, since it is the latest.

    Regards, Eric