Updating firmware and software