How to program the ATMEGA 16U2 Chip on my own board

Hi, I would like to know how to program the ATMEGA 16U2 Chip. I have an ATMEGA 16U2 and I would like to know how to do serial communication. Is there a firmware from arduino to flash it in?