Method for updating firmware of a computer peripheral device
First Claim
1. A method for updating program code contained in non-volatile memory for a microcontroller which controls the operation of an optical disk drive connected to a host computer, the method comprising the steps of:
- providing in a protected non-erasable area of the non-volatile memory, first program code for performing an integrity check of second program code in an unprotected rewritable area of the non-volatile memory and requesting and receiving updated second program code from the host computer;
providing in a read only memory (ROM) contained in the microcontroller, third program code for erasing data from and writing data to the unprotected rewritable area of the non-volatile memory;
checking the integrity of the second program code, and if the integrity check fails then;
requesting the host computer to supply updated second program code;
receiving the updated second program code into random access memory (RAM) within the disc drive;
erasing second program code from at least a selected portion of the unprotected area of the non-volatile memory; and
writing the updated second program code from the RAM into at least the selected portion of the unprotected rewritable area of non-volatile memory.
4 Assignments
0 Petitions
Accused Products
Abstract
An optical disc drive includes a system controller in the form of a microcontroller and a FLASH memory which holds program code for the micro controller. The FLASH memory is formed in two areas, the first being a protected area in which the code cannot be changed and the second being an unprotected area in which the micro controller can write updated program code. The updated code is received from a host computer over an interface (28). The code in the protected area and in the micro controller ROM is sufficient to enable the basic functions of requesting and receiving program code from the host computer and writing the received program code into the unprotected area of the FLASH memory to be performed. This enables recovery of the drive if the code in the unprotected area becomes corrupted, for example if a power supply failure occurs during transfer of the code.
132 Citations
19 Claims
-
1. A method for updating program code contained in non-volatile memory for a microcontroller which controls the operation of an optical disk drive connected to a host computer, the method comprising the steps of:
-
providing in a protected non-erasable area of the non-volatile memory, first program code for performing an integrity check of second program code in an unprotected rewritable area of the non-volatile memory and requesting and receiving updated second program code from the host computer;
providing in a read only memory (ROM) contained in the microcontroller, third program code for erasing data from and writing data to the unprotected rewritable area of the non-volatile memory;
checking the integrity of the second program code, and if the integrity check fails then;
requesting the host computer to supply updated second program code;
receiving the updated second program code into random access memory (RAM) within the disc drive;
erasing second program code from at least a selected portion of the unprotected area of the non-volatile memory; and
writing the updated second program code from the RAM into at least the selected portion of the unprotected rewritable area of non-volatile memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
the integrity is checked after each interruption of power;
the integrity is checked after each writing to the second non-protected area;
the method further comprises the steps of activating a visible and/or audible indication if the integrity check fails;
the non volatile memory includes FLASH memory;
the method further comprises the step of reading a CD ROM or DVD ROM formatted disk depending on the updated second program code; and
the method further comprises the step of writing to the disk depending on the updated second program code.
-
-
10. An optical disc drive comprising:
-
a micro controller for controlling the operation of the disc drive in response to program code;
non volatile memory for storing program code, the non volatile memory including a first protected area where code is protected from erasure and a second non-protected area where code can be rewritten under the control of the micro controller, the first area containing program code to enable the micro controller to verify the integrity of the program code in the second area;
means for checking the integrity of the program code in the second area;
means for requesting updated program code from a host computer to which the disc drive is connected when the integrity check fails; and
means for receiving the updated program code into a random access memory (RAM);
and wherein;
the micro controller includes program code stored in read only memory for erasing the second area of non-volatile memory and writing updated program code from the RAM into the second area of non-volatile memory. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
the drive further comprises means to initiate checking program code integrity in the second non-protected area after each interruption of power;
the drive further comprises means to initiate checking program code integrity in the second non-protected area after each writing of updated program code into the second area;
the drive further comprises means to provide a visible and/or audible indication if the integrity check fails;
the RAM includes RAM associated with block decoder means for temporarily storing data read from an optical disc before transfer to the host computer;
the non-volatile memory includes FLASH memory;
the drive further comprises means for reading from an optical disc according to the CD ROM or DVD ROM formats depending on the program code in the second non-protected area; and
the drive further comprises means for writing to an optical disk depending on the program code in the second non-protected area.
-
-
19. A computer peripheral device connected to a host computer, comprising:
-
a micro controller for controlling the operation of the peripheral device in response to program code;
non volatile memory for storing program code, the non volatile memory including a first protected area where code is protected from erasure and a second non-protected area where code can be rewritten under the control of the micro controller, the first area containing program code to enable the micro controller to verify the integrity of the program code in the second area;
means for checking the integrity of the program code in the second area;
means for requesting updated program code from a host computer to which the disc drive is connected when the integrity check fails; and
means for receiving the updated program code into a random access memory (RAM);
and wherein;
the micro controller includes program code stored in read only memory for erasing the second area of non-volatile memory and writing updated program code from the RAM into the second area of non-volatile memory.
-
Specification