The boot-up firmware is typically stored in some form of non-volatile memory and allows a central processing unit (???CPU???) to perform tasks such as initialization, diagnostics, loading the operating system kernel from mass storage, and routine input/output (???I/O???) functions.