Integrate GPFI

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
MaMa_4520856
Level 4
Level 4
25 replies posted 25 sign-ins 10 replies posted

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

0 Likes
1 Solution

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

Regards,
Rashi

View solution in original post

0 Likes
11 Replies
MaMa_4520856
Level 4
Level 4
25 replies posted 25 sign-ins 10 replies posted

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

0 Likes

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

Regards,
Rashi
0 Likes

Hi RashiV_61​,

here is the the screenshots you asked for:

pastedImage_0.png

pastedImage_1.png

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

0 Likes
lock attach
Attachments are accessible only for community members.

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

0 Likes

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

Regards,
Rashi
0 Likes

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

0 Likes

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

Regards,
Rashi
0 Likes

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

0 Likes

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

Regards,
Rashi
0 Likes

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

0 Likes

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

Regards,
Rashi
0 Likes