Slave USB Port of BBB

Need tp create custom USB driver for ARM Slave USB port. So when i connect to PC it should be mapped as composite device which is mass storage + custom device.

How can i modify USB descriptor of BBB device. Please help. Consider my knowledge of USB intermediate. In past Developed USB firmware/USB Driver/PC App (using USB) for Linux and Windows.

Have created custom USB firmware but never faced a situation where i had to to in Linux kernel to modify slave device.

Appreciate you for reading this post and will be thankful for help.