CY7C67300
Errata Document
Document #: 38-17022 Rev. *B
Revised October 18, 2006
6
3. Add the new susb1.s to the included assembly source files in the make file.
For example : ASM_SRC := startup.s isrs.s susb1.s
4. Add usb_init somewhere in the startup code. This will likely be in fwxmain.c as demonstrated below:
void fwx_program_init(void)
{
void usb_init();/* define the prototype */
usb_init();
fwx_init();/* Initialize everything in the base framework. */
}
5. Build the project using the modified make file.
• FIX STATUS
No silicon revision planned, use workaround.
11. Data toggle corruption issue
• PROBLEM DEFINITION
When an SIE is configured as a peripheral, data toggle corruption as specified in the USB 2.0 spec, section
8.6.4, does not work as specified.
• PARAMETERS AFFECTED
SIEx Endpoint x Interrupt (Interrupt 32-47).
• TRIGGER CONDITIONS
This issue is seen when an SIE is configured as a peripheral and the host sends an incorrect data toggle.
According to the USB specification, when an incorrect data toggle is seen from the host, the peripheral should
throw away the data but increment the data toggle bit to re-synchronize the data toggle bits. In the current
ROM BIOS, the SIEx Endpoint x Interrupt will ignore the data toggle error and accept the data.
• SCOPE OF IMPACT
All peripheral functions are susceptible to this as it is a normal occurrence with USB traffic.
• WORKAROUND
To fix this problem, the SIEx Endpoint x Interrupt must be replaced for any endpoint that is configured as an
OUT endpoint.
1. Acquire the file called susb1.s from Cypress Support or download a newer version of the frameworks that
has this included.
2. Modify fwxcfg.h in your project to have the following flags and define/undef the fix for the endpoints you
are using:
#define FIX_USB1_EP1
#define FIX_USB1_EP2
#undef
FIX_USB1_EP3
#undef
FIX_USB1_EP4
#undef
FIX_USB1_EP5
#undef
FIX_USB1_EP6
#undef
FIX_USB1_EP7
#undef
FIX_USB2_EP1
#undef
FIX_USB2_EP2
#undef
FIX_USB2_EP3
#undef
FIX_USB2_EP4
#undef
FIX_USB2_EP5
#undef
FIX_USB2_EP6
#undef
FIX_USB2_EP7
3. Add the new susb1.s to the included assembly source files in the make file.
For example : ASM_SRC := startup.s isrs.s susb1.s