usbps
Vitis Drivers API Documentation
xusbps_ch9_storage.c File Reference

Overview

This file contains the implementation of the storage specific chapter 9 code for the example.

  MODIFICATION HISTORY:
  Ver   Who  Date     Changes


1.00a wgr 10/10/10 First release 2.5 pm 02/20/20 Added SetConfigurationApp and SetInterfaceHandler API to make ch9 common framework to all example. *

Functions

u32 XUsbPs_Ch9SetupDevDescReply (u8 *BufPtr, u32 BufLen)
 This function returns the device descriptor for the device. More...
 
u32 XUsbPs_Ch9SetupCfgDescReply (u8 *BufPtr, u32 BufLen)
 This function returns the configuration descriptor for the device. More...
 
u32 XUsbPs_Ch9SetupStrDescReply (u8 *BufPtr, u32 BufLen, u8 Index)
 This function returns a string descriptor for the given index. More...
 
void XUsbPs_SetConfiguration (XUsbPs *InstancePtr, int ConfigIdx)
 This function handles a "set configuration" request. More...
 
void XUsbPs_SetConfigurationApp (XUsbPs *InstancePtr, XUsbPs_SetupData *SetupData)
 This function is called by Chapter9 handler when SET_CONFIGURATION command is received from Host. More...
 
void XUsbPs_SetInterfaceHandler (XUsbPs *InstancePtr, XUsbPs_SetupData *SetupData)
 This function is called by Chapter9 handler when SET_CONFIGURATION command or SET_INTERFACE command is received from Host. More...
 

Function Documentation

u32 XUsbPs_Ch9SetupCfgDescReply ( u8 *  BufPtr,
u32  BufLen 
)

This function returns the configuration descriptor for the device.

Parameters
BufPtris the pointer to the buffer that is to be filled with the descriptor.
BufLenis the size of the provided buffer.
Returns
Length of the descriptor in the buffer on success. 0 on error.
u32 XUsbPs_Ch9SetupDevDescReply ( u8 *  BufPtr,
u32  BufLen 
)

This function returns the device descriptor for the device.

Parameters
BufPtris pointer to the buffer that is to be filled with the descriptor.
BufLenis the size of the provided buffer.
Returns
Length of the descriptor in the buffer on success. 0 on error.
u32 XUsbPs_Ch9SetupStrDescReply ( u8 *  BufPtr,
u32  BufLen,
u8  Index 
)

This function returns a string descriptor for the given index.

Parameters
BufPtris a pointer to the buffer that is to be filled with the descriptor.
BufLenis the size of the provided buffer.
Indexis the index of the string for which the descriptor is requested.
Returns
Length of the descriptor in the buffer on success. 0 on error.
void XUsbPs_SetConfiguration ( XUsbPs InstancePtr,
int  ConfigIdx 
)

This function handles a "set configuration" request.

Changes State of Core to USB configured State.

Parameters
InstancePtris a pointer to XUsbPs instance of the controller.
ConfigIdxis the Index of the desired configuration.
Returns
None

References XUSBPS_EP_DIRECTION_IN, XUSBPS_EP_DIRECTION_OUT, XUSBPS_EPCR1_OFFSET, XUSBPS_EPCR_RXR_MASK, XUSBPS_EPCR_RXT_BULK_MASK, XUSBPS_EPCR_TXR_MASK, XUSBPS_EPCR_TXT_BULK_MASK, XUsbPs_EpEnable, XUsbPs_EpPrime(), XUsbPs_SetBits, and XUsbPs_SetConfigDone().

void XUsbPs_SetConfigurationApp ( XUsbPs InstancePtr,
XUsbPs_SetupData SetupData 
)

This function is called by Chapter9 handler when SET_CONFIGURATION command is received from Host.

Parameters
InstancePtris pointer to XUsbPs instance of the controller.
SetupDatais the setup packet received from Host.
Returns
  • XST_SUCCESS if successful,
  • XST_FAILURE if unsuccessful.
Note
Non control endpoints must be enabled after SET_CONFIGURATION command since hardware clears all previously enabled endpoints except control endpoints when this command is received.

References XUsbPs_SetupData::wValue, XUSBPS_EP_DIRECTION_IN, XUSBPS_EP_DIRECTION_OUT, XUsbPs_EpDisable, and XUsbPs_SetConfigDone().

void XUsbPs_SetInterfaceHandler ( XUsbPs InstancePtr,
XUsbPs_SetupData SetupData 
)

This function is called by Chapter9 handler when SET_CONFIGURATION command or SET_INTERFACE command is received from Host.

Parameters
InstancePtris pointer to XUsbPs instance of the controller.
SetupDatais the setup packet received from Host.
Note

References XUsbPs_SetupData::wIndex, XUsbPs_SetupData::wValue, XUSBPS_EP_DIRECTION_IN, XUSBPS_EP_DIRECTION_OUT, and XUsbPs_EpDisable.