Firmware updates will wipe your program. You should sign up for a Rockwell account if you don't already have one. You are looking for the "Product Compatibility and Download center". Get Connected Components Workbench if you don't already have it. You also might want to get ControlFlash Plus. It's really nice and will look online and download firmware kits for you.
Ethernet is generally the easiest way. Even if you need to get a dumb switch and connect right at the drive. The HIM has a copycat function - be aware that you need to use this for all peripherals. The IO board, the EENet, Port 0 (the actual drive), and the onboard devicelogix.
CCW is totally the best way. Make sure you can find your drive in RSLinx. Then make a new CCW project, add a device, in the top right, add an existing device. Then navigate to it in RSLinx. Then, upload the parameters from it. Save your project. Then, fire up controlflash plus and use RSLinx to navigate to your drive. Get the desired firmware revision, and you can go ahead and flash the drive.
Back in CCW, update your module definition to your new firmware, then do a download.
That should be it.
NOTE: If this drive is being controlled by a PLC, you will almost certainly have to perform a download if you upgrade firmware, so a lot of times its easier to just use controlflash or controlflash plus to flash the firmware DOWN to the current revision in the controller. Just turn off bootp, set the drive's IP, subnet mask and possibly gateway, reboot the drive, inhibit the drive in your PLC, then you can flash the drive and put the parameters on it.
EDIT: If you reset parameters via the HIM or CCW, your IP address will be lost and you have to go put it back in. If you flash the firmware with controlflash, the IP address will remain.