Specifications
CY7C67200
Document Number: 38-08014 Rev. *J Page 90 of 93
■ Problem Definition
When a 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 a 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 by downloading 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
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
The ROM version of the BIOS will be updated during any future silicon rolls. No current roll of the part currently exists.










