How does updating firmware work?