A less supported way, but doesn't require deploying (which you should be doing for all things code related in my opinion), would be to use the AJAX Toolkit and use a JavaScript button.
It can get a little messy, however here is an example of what you could put into a Javascript function button:
{!REQUIRESCRIPT("/soap/ajax/29.0/connection.js")}
var parentRecord = new sforce.SObject("Parent__c");
parentRecord.Id = {!Child__c.Parent__c};
parentRecord.Firmware__c = {!Child__c.Firmware__c}
updParent = sforce.connection.update([parentRecord]);
if (updParent[0].getBoolean("success")) {
alert('Parent object Firmware__c has been updated to: {!Child__c.Firmware__c}');
window.parent.location.href = '/{!Child__c.Id}';
} else {
alert('Failed to update parent object');
}
The above isn't tested, has some fairly lousy error checking, but hopefully it gives you the right idea. For a bit of an explanation however, it creates a new sforce javascript object, which you specify the Id (no updates otherwise), and the field to update. It then calls the connection to run the update statement, which will return an error/success boolean value.
This also assumes the Parent relationship on your child record is called Parent__c
Also, for your consumption, you may want to look at the AJAX Toolkit here: AJAX Toolkit Reference
NOTE: There are some issues with referential URLS and communities that break these kind of buttons.