11 Replies Latest reply on Mar 19, 2020 11:34 PM by RashiV_61

    Integrate GPFI

    MaMa_4520856

      Hi,

      I am trying to Integrate the header file from GPFI II Designer into EZ-USB FX3.

      In GPFI i used sync ADMux scheme the only thing i changed was RDY signal form GPIO to INT.

      When i run EZ-USB from the bootappgcc template and try to include header file from GPIF i run into several problems such as:

      1. There were missing header files such as: cyu3dma.h, cyu3os.h
      2. When i try to integrate files as shown in a GPIF II Designer - Quick Start Guide (chapter 7) code below
        • 1. Re: Integrate GPFI
          MaMa_4520856

          sorry for the truble but sometihng went worng when i was posing so I'll finish it there

           

          status = CyU3PGpifLoad(&SyncADMux_CyFxGpifConfig);

          if (status != CY_U3P_SUCESS)

                  return status;

          status = CyU3PGpifSMStart(SyncADMux_START, SyncADMux_ALPHA_START);

              if (status != CY_U3P_SUCESS)

                  return status;

          symbols SyncADMux_START, SyncADMux_ALPHA_START and SyncADMux_CyFxGpifConfig cannot be resolved

          as for the first topic i managed to find files in a fx3_sdk_1_3_4_src.zip file and i copied them into

          C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\firmware\boot_fw\include folder so they there

           

          pleas note that I'm new in this community and this is my first project

          If you need more information I will supply them

           

          Best Regards ,

          Mateusz

          • 2. Re: Integrate GPFI
            RashiV_61

            Hi Mateusz,

             

            From the description, i am able to understand that you are getting an error of  symbols cannot be resolved.

            Please let me know which state machine and the firmware are you using for your application so that i can find where the issue is.

            It seems that you have not added some library to you project. If possible can you share your project file.

             

            as for the first topic i managed to find files in a fx3_sdk_1_3_4_src.zip file and i copied them into

            C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\firmware\boot_fw\include folder so they there

            >> As per my understanding there is no need to copy the source code folder to that location.

             

            Also can you share this snippet of the properties of your project

            ssport.PNG

            Path: Right click on project>Properties>C/C++Build>Settings> Tool Settings

             

            Also confirm this

            path.PNG

             

            Please share the project file and GPIF state machine that you are using

             

            Regards,

            Rashi

            • 3. Re: Integrate GPFI
              MaMa_4520856

              Hi RashiV_61,

              here is the the screenshots you asked for:

               

               

              as for the firmware I use (probably 76405 - I want to use CyUSB3035 device to boot from USB and SPI) as for the state machine i don't know (I used template Synchronus admux template)

              pleas let me know where i can find them

              • 4. Re: Integrate GPFI
                MaMa_4520856

                Here you have my project file with GPFI II Designer project

                As an additional info I found that in my cyfxgpif2config.h there is no defined ALPHA_START (I used ALPHA_RESET instead witch is defined ) and START variable and there is no defined Cy_U3_SUCCESS variable

                And in my cyu3dma.h file i had problem with incomplete types variable lock and flags

                • 5. Re: Integrate GPFI
                  RashiV_61

                  Hello Mateusz,

                   

                  You are using the BootAppGcc firmware which is second stage boot loader and uses boot library and not the firmware library.

                  The GPIF state machine you are using is sync_admux.

                   

                  Please let me know your application so that i can help you better. You cannot directly integrate GPIF II state machine with second stage boot loader code. The header file generated by GPIF designer will include other header files which will be in fw_lib

                  For building firmware with dma.h you need to include fw_lib and not the boot_lib.

                   

                  As per the screen shot i shared in previous response the library included was fw_lib

                  path.PNG

                  So, please let me know the reason to use second stage boot loader with this sync_admux GPIF state machine

                   

                   

                  Regards,

                  Rashi

                  • 6. Re: Integrate GPFI
                    MaMa_4520856

                    Hi Rashi,

                    the point of my app i just want to enable booting from EEPROM memory using SPI bus (chose 0x1) and to enable boot from USB if posible,

                    form the Sync ADMux i have to make Sync ADMux with RDY signal of type INT#

                    and the type of transfer ill be using will be isochronous.

                     

                    As for the secound stage boot I don't need it I didn't know that it was second stage.

                    Could you pleas help me with choosing right firmware.

                     

                    Regrds,

                    Mateusz

                    • 7. Re: Integrate GPFI
                      RashiV_61

                      Hello Mateuz,

                       

                      Fx3  boots up based on the status of PMODE lines. Please refer to this application note https://www.cypress.com/documentation/application-notes/an76405-ez-usb-fx3-fx3s-boot-options

                       

                      Please let me know what are you planning to interface with FX3. I mean why do you use admux state machine

                       

                      Regards,

                      Rashi

                      • 8. Re: Integrate GPFI
                        MaMa_4520856

                        Hi Rashi,

                        as a part of a project I am supose to program p-port as admux (sync as I mention earlier) I don't really know for what purpose it will be used or if  it will be used later on.

                        I learned that it will be receiving data from the FPGA device.

                        Regards,

                        Mateusz

                        • 9. Re: Integrate GPFI
                          RashiV_61

                          Hello Mateusz,

                           

                          I would need more details of the project/ application to suggest a proper firmware for it.

                          Please provide the details of the project/application

                           

                          Regards,

                          Rashi

                          • 10. Re: Integrate GPFI
                            MaMa_4520856

                            Hi Rashi,

                            I have to design sycn admux interface with RDY signal (type INT#) wich will be signalling that date is ready to be received by FPGA (host)

                            and i have to write program (C language) that allows to boot from SPI bus (choosing 0x1) and from USB (if possible)

                            the peripheral controller I use is cyusb 3035, and the transfer type I will be using is isochronous.

                            Thats every detail I get

                             

                            Regards,

                            Mateusz

                            • 11. Re: Integrate GPFI
                              RashiV_61

                              Hello Mateusz,

                               

                              As per the details you shared you can use the slavefifosync example with AN65974.

                              This firmware can be used as the base of you application by replacing the gpif header file in default firmware with the syncadmux gpif state machine header.

                               

                              There are two DMA channel created in the default firmware PIB > USB (write to FX3) and  USB >PIB (read from FX3)

                              But the USB endpoint used in the firmware is BULK endpoint. cyfxslfifousbdscr.c file need to be changed to change the endpoint to isochronous. Also the epconfig ( epCfg.epType = CY_U3P_USB_EP_BULK;) in the cyfxslfifosync.c also needs to changed (epCfg.epType =CY_U3P_USB_EP_ISO )

                               

                              Thee address lines should be asserted as per the PIB sockets used in the firmware

                              For read (USB>PIB) address line's status should be 3 (as PIB socket used for this channel is CY_U3P_PIB_SOCKET_3)

                              For write (PIB>USB) address  line's status should be 0 (as PIB socket used for this channel is CY_U3P_PIB_SOCKET_0)

                               

                               

                              As CYUSB3035 has 16 bit GPIF interface the macro should be CY_FX_SLFIFO_GPIF_16_32BIT_CONF_SELECT == 0

                               

                              For booting CYUSB3035, PMODE lines need to be set accordingly

                              pmode.PNG

                               

                              Regards,

                              Rashi