Forum Discussion

RubenPadial's avatar
RubenPadial
Icon for Contributor rankContributor
2 years ago

Intel Arria 10 SoC - HPS Ethernet and FPGA

Hello,

I need to receive some data with the HPS Ethernet with TCP/IP protocol, process them and share with the FPGA.

Is there any example or AN?

What are the steps to get a program to process the data in the SoC and share with the FPGA?

Thank you in advance.

11 Replies

  • KennyT_altera's avatar
    KennyT_altera
    Icon for Super Contributor rankSuper Contributor

    Hi,


    Kindly take note that they will be some slowness on the first reply due to the public holiday, we will get back to you as soon as possible.

    Thanks


  • Jeet14's avatar
    Jeet14
    Icon for Frequent Contributor rankFrequent Contributor

    Hi,


    Which one you are targeting the baremetal application or Linux or MicroC/OS II ?


    Regards

    Tiwari


  • Jeet14's avatar
    Jeet14
    Icon for Frequent Contributor rankFrequent Contributor

    Hi,


    In linux you need to write the socket programming to build the TCP/IP application over ethernet for server or client on board.

    It is generic way of writing the linux TCP/IP app. For reference you can refer below link

    https://www.geeksforgeeks.org/tcp-server-client-implementation-in-c/


    For HPS & FPGA data transfer, please refer the below link. Same need to be implemented for Arria 10.

    https://github.com/robertofem/CycloneVSoC-examples/tree/master/Linux-modules/DMA_PL330_LKM_basic


    Regards

    Tiwari


    • RubenPadial's avatar
      RubenPadial
      Icon for Contributor rankContributor

      Hello @Jeet14,

      Thank you for this information.

      If I'm not wrong, the example you sent me about DMA is to manage data between HPS and FPGA memories once data is received by an Linux client application in the HPS. That's very useful but it will be very helpful if you could give more details about how to build/run the client app for the Arria 10 HPS.

      Thank you in advance

  • Jeet14's avatar
    Jeet14
    Icon for Frequent Contributor rankFrequent Contributor

    Hi,


    Let me know if you have any other query on this matter.


    Regards

    Tiwari


  • Jeet14's avatar
    Jeet14
    Icon for Frequent Contributor rankFrequent Contributor

    Hi,


    In linux you need to write the socket programming to build the TCP/IP application over ethernet for server or client on board.

    It is generic way of writing the linux TCP/IP app. For reference you can refer below link

    https://www.geeksforgeeks.org/tcp-server-client-implementation-in-c/


    For your reference, you can follow steps as hello world application.

    Add yocto application and compile using meta-bake.py script

    $cd meta-intel-fpga-refdes/

    $mkdir recipe-example

    $mkdir helloworld

    $cd helloworld

    Add the .c & .h files and create the helloworld.bb file in helloworld directory. Snapshot from the helloworld.bb file.


    $nano helloworld.bb

    SUMMARY = "Example hello world" DESCRIPTION = "helloworld in HPS"

    AUTHOR = "Test_engineer"

    LICENSE = "BSD-3-Clause"

    LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9"

    inherit systemd pkgconfig

    SRC_URI = "file://helloworld.c"

    S = "${WORKDIR}"

    do_compile() {

    ${CC} ${CFLAGS} ${LDFLAGS} helloworld.c -o helloworld

    }

    do_install() {

    install -d ${D}${bindir}

    install -m 0755 helloworld ${D}${bindir}

    }



    Regards

    Tiwari


    • RubenPadial's avatar
      RubenPadial
      Icon for Contributor rankContributor

      Hello @Jeet14

      Thanks for the information.

      Is EDS needed to create the TCP/IP client application or the application to transfer data from HPS to FPGA memory?

      Is it necessary to create a linux yocto with the custom applications/recipes?

      Is there any detailed guide?

  • Jeet14's avatar
    Jeet14
    Icon for Frequent Contributor rankFrequent Contributor

    Hi,


    You need to use the EDS for creating the preloader or uboot.


    For creating the linux userspace application, you need to use the host linux machine where you need to use the intel cross compiler or yocto application method.


    please refer the create your project with timer example for arria 10. ethernet TCP/IP not availble but you are try the previous links and follow the same steps.

    https://www.intel.in/content/www/in/en/support/programmable/support-resources/design-guidance/linux-developer.html

    https://www.rocketboards.org/foswiki/Documentation/UsingYoctoExtendibleSdkForApplicationDevelopment


    Regards

    Tiwari




  • Jeet14's avatar
    Jeet14
    Icon for Frequent Contributor rankFrequent Contributor

    Hi,


    Let me know if you have any query on this.


    Regards

    Tiwari



  • Jeet14's avatar
    Jeet14
    Icon for Frequent Contributor rankFrequent Contributor

    Hi,


    I believe your enqury has been answered. With that, I now transition this thread to community support.

    Thank you.

    Best Regards,

    Tiwari

    p/s: If any answer from the community or Intel Support are helpful, please feel free to give best answer or rate 4/5 survey.