OTG-Host BIOS handling standard requests | Cypress Semiconductor
Support & Community
OTG-Host BIOS handling standard requests
Does the BIOS handle all of the Chapter 9 type requests, and if not what needs to be done?
The BIOS will handle the chapter 9 standard requests and all you really need to do is point to the descriptor information before doing the sie_init. This is described in chapter 4 of the BIOS User Manual (Slave Support Module Firmware). To describe this a little more I'll use our frameworks code as an example. For this discussion we can talk about design example 1, which is our OTG example and thus can be a host or slave. In app.c you will see the app_pre_init function, which is done before the SIE is turned on. This calls sie1_install_descriptor, which is found in sie1.c. Here is what it looks like:
/* Set OTG-Host device descriptor pointer to point at our device descriptor. */
WRITE_REGISTER( SUSB1_DEV_DESC_VEC, &device_descriptor );
/* Set OTG-Host config descriptor pointer. */
WRITE_REGISTER( SUSB1_CONFIG_DESC_VEC, &sie1_descriptors.config_descriptor );
#if NUM_STRING_DESCRIPTORS > 0
/* If we have some string descriptors, set string descriptor pointer. */
WRITE_REGISTER( SUSB1_STRING_DESC_VEC, &sie1_string_descriptor );
/* Put the device on the bus. */
Here you see that we write the descriptor pointers to their software interrupt vectors, which are mapped in the cy7C67200_300.h file found in the common directory. For more information regarding interrupt vectors refer to the BIOS User manual. Once the SIE is enabled the BIOS should take care of all of this including sending the correct status.