The invention relates to the field of electronic devices and more particularly to a method of providing firmware to a processor based electronic device.
Microprocessor controlled electronic devices are ubiquitous. Some examples include personal computers, laptop computers, Personal Digital Assistants, cellular telephones, audio-visual players such as MP3 or DVD, gaming consoles including portable devices, cameras, portable memory storage devices, and video recorders. Typically, each of these electronic products includes a microprocessor, a read-only memory (ROM) that has firmware stored therein and random access memory (RAM). When the device is powered up the microprocessor loads the firmware from the ROM into a memory store internal to the microprocessor for execution. In many instances once the firmware is loaded, the ROM is not accessed again until the device is powered up again because the ROM's sole purpose is providing the firmware to the processor. In other instances, typically portable systems and microcontroller applications, the firmware instructions are fetched directly from ROM as required without loading a firmware image into RAM. In these latter systems the ROM is generally mapped to the microcontroller memory space. Once the firmware is executed the electronic product provides functionality and interfaces as defined by the firmware in conjunction with the hardware.
The firmware plays an important role in today's electronic products in respect of not only their functionality, but the ability to correct defects and modify performance after product release. It is not uncommon for manufacturers to identify subsequent failings in their firmware as released, or to seek to provide users with improvements to firmware. In such instances the manufacturer typically places firmware upgrades onto their website, but they do not communicate the existence of these to the owners of the electronic products affected.
In other instances it may be advantageous to provide an electronic product with two or more firmware loads, such as for example an MP3 player wherein a “child” firmware load provides only the ability to play or shuffle music and an “adult” firmware load that provides additional features such as uploading new music, deleting music, and allowing playback of music with an “explicit” rating. Such functionality is not supported today within electronic products that have single firmware loads.
It would be advantageous to provide a method and system for firmware management that overcomes at least some of the above-mentioned limitations of the prior art.
In accordance with an aspect of the invention there is provided a method of modifying the functionality of an electronic product comprising:
In accordance with an aspect of the invention there is provided a method of configuring an electronic product comprising transferring a firmware load stored on a memory card to a volatile memory of an electronic product via an interface in communication with the volatile memory, the volatile memory for storing a firmware load for execution by a microprocessor forming part of the electronic product.
In accordance with an aspect of the invention there is provided a method of configuring an electronic product comprising:
Exemplary embodiments of the invention will now be described in conjunction with the following drawings, in which:
The invention is described below in reference to
It will be apparent that combinations other than the above-mentioned, non-limiting examples are within the scope of the instant invention, such as for instance multiple firmware options of which a predetermined portion of the firmware options are encrypted and the remainder are non-encrypted. Whilst not explicitly addressed, it will nevertheless be apparent to one skilled in the art from the exemplary embodiments how such combinations may be provisioned and implemented.
Single Firmware: Referring to
In practice, a SD memory card 140 is coupled with the secondary interface 130 and the portable memory storage device 100 is then coupled with a host system, not shown for clarity. The portable memory storage device 100 is compliant with a Universal Serial Bus standard, for example USB 1.1 or USB 2.0, operating at 5±0.25 volts and drawing power from the host system. On connection to the host system the portable memory storage device 100 powers itself up, at which point the processor 110 retrieves firmware from within the flash memory of the SD memory card 140, and stores it in the volatile memory 112 of processor 110. The firmware is then executed and causes the memory storage device 100 to operate according to the design thereof. Thus, the memory card 140 has the firmware stored therein and insertion of an alternate memory card 145 into second interface results in the processor 110 loading and executing different firmware. For example, a function similar to a firmware upgrade is provided by providing a new alternate memory card 145. In this embodiment the firmware is not “upgraded” in the conventional sense as it is not copied and stored in a non-volatile memory 114 associated with the processor 110. Rather the removable alternate memory card 145 has new firmware written thereto.
Single Encrypted Firmware: Referring to
In practice, a SD memory card 240 is coupled with the second interface 230 and the portable memory storage device 200 is then coupled with a host system, not shown for clarity. The portable memory storage device 200 is compliant with a Universal Serial Bus standard, for example USB 1.1 or USB 2.0, operates at 5±0.25 volts and draws power from the host system. On connection to the host system the portable memory storage device 200 powers itself up, at which point the processor 210 retrieves secured firmware from within the flash memory that forms the memory of the SD memory card 240 that is inserted into secondary interface 230. Processor 210 then deciphers the secured firmware, and stores the deciphered firmware in volatile memory 212 associated with processor 210. The deciphered firmware is then executed and causes the peripheral memory storage device 200 to operate according to the design thereof. Thus, the memory card 240 has the secured firmware stored therein and insertion of different memory cards 245 into the secondary interface 230 results in the processor 210 loading and executing different encrypted firmware. For example, a firmware upgrade is provided by providing a new memory card 245. Alternatively, the memory card 245 has new firmware written thereto supporting different functionality of the portable memory storage device 200, such as encrypting all data transferred, or an alternate configuration of the portable memory storage device 200. Alternatively, some firmware is encrypted and other firmware is other than encrypted.
In this latter manner, for example, the portable memory storage device 200 is established to function in several modes of operation according to the memory card 240 or alternate memory cards 245. In a first mode, upon loading first firmware from memory card 240, the portable memory storage device 200 appears to operate as a conventional secure memory storage device, allowing storage, deleting and transfer of files in a normal course of operation to first memory block 200A, providing a storage capacity of one gigabyte (1 GB). However, unbeknownst to the user, each entry within the field allocation table (FAT) of the apparent 1 GB memory of first memory block 200A is also written to a second FAT associated with a second memory block 200B having a larger capacity, for example 4 GB. When files are deleted, they are in fact removed only from the FAT associated with the 1 GB storage area, namely first memory block 200A and are not removed from the second memory block 200B.
In a second mode of operation, a supervisor retrieves the portable memory storage device 200, provides an alternate memory card 245 to the portable memory storage device 200 thereby loading supervisory firmware thereon to the portable memory storage device 200. This supervisory firmware allows the supervisor to not only open encrypted files stored within the user accessible 1 GB first memory block 200A, but to also access data within the additional 4 GB of second memory block 200B. In this manner the supervisor is provided access to files the user of the portable memory storage device 200 has transferred to and deleted from the user accessible 1 GB memory storage area visible to them when using the portable memory storage device 200. In this manner the supervisory firmware allows the supervisor the ability to monitor the transfer activities of the employees and optionally ensures that any transferred information, whilst encrypted as per the operating requirements of the business, is accessible to the supervisor. Such a two mode portable memory storage device allows for auditing of employee and contractor activities and for monitoring compliance with corporate policies.
Optionally, the supervisory firmware performs the firmware loading in multiple steps, such as for example a two step load wherein the first step executes an authentification step requiring the supervisor to provide authentication input data that is authenticated against data stored within the alternate memory card 245 prior to loading the main firmware in the second step that provides the supervisory access functions to the first memory block 200A and the second memory block 200B.
Multiple Firmwares: Referring to
In practice, a SD memory card 340 is coupled with the secondary interface 330 and the portable memory storage device 300 is then coupled with a host system, not shown for clarity. The portable memory storage device 300 is compliant with a Universal Serial Bus standard, for example USB 1.1 and USB 2.0, operates at 5±0.25 volts and draws power from the host system. On connection to the host system the portable memory storage device 300 powers itself up and retrieves an indication of available firmware loads 341-343 stored within the memory card 340 memory and provides a user of the portable memory storage device 300 with an option to select from the available firmware loads 341-343. The user indicates a selected firmware, for example firmware load 342, and that selected firmware is retrieved and stored in a volatile memory 315 associated with processor 310. Alternatively, the user is expected to select from available firmware without being prompted. For example, a default firmware is loaded unless a predetermined key or key sequence is provided.
The selected firmware is then executed and causes the peripheral memory storage device 300 to operate according to the design thereof. Thus, the memory card 340 has the available firmware loads 341-343 stored therein and insertion of different memory cards 340 into the secondary interface 330 results in the processor 310 either loading and executing different firmware, or having available to load and execute different firmware. Advantageously, a same memory card is useful for different firmware versions of the portable device.
Multiple Encrypted Firmware: Referring to
In practice, a SD memory card 440 is coupled with the secondary interface 430 and the portable memory storage device 400 is then coupled with a host system, not shown for clarity. The portable memory storage device 400 is compliant with a Universal Serial Bus standard, for example USB 1.1 and USB 2.0, operates at 5±0.25 volts and draws power from the host system. On connection to the host system the portable memory storage device 400 powers itself up and retrieves an indication of available secured firmware loads 441-443 stored within the memory card 140 memory and provides a user of the portable memory storage device 100 with an option to select from the available secured firmware loads 441-443. The user indicates a selected secured firmware, for example firmware load 442, and the selected secured firmware load 442 is retrieved, deciphered, and stored it in a memory associated with processor 410. Alternatively, the user is expected to select from available ciphered firmware without being prompted. For example, a default ciphered firmware is loaded unless a predetermined key or key sequence is provided. Further alternatively, some firmware is encrypted and other firmware is other than encrypted.
The selected deciphered firmware is then executed and causes the peripheral memory storage device 400 to operate according to the design thereof. Thus, the memory card 440 has the available secured firmware loads 441-443 stored therein and tampering with the secured firmware is difficult and/or unlikely. In addition to
Referring to
For example, a first user inserts a memory card 580 into the multi-purpose hardware device 500, and upon completion of the loading and execution of the firmware has available the functions of audio recording, via microphone 510, audio playback via audio output port 520 and display of available audio tracks on display 530. Additionally, the user is blocked from deleting information stored within the multimedia memory 590, including audio tracks they have recorded, and the USB interface 570 is disabled preventing the multi-purpose hardware device 500 from interfacing to other electronic devices for transferring data to or from the multimedia memory 590.
A second user inserts a second memory card 585 in order to use the multi-purpose hardware device 500. Loading and executing of firmware from the second memory card 585 provides a wider range of functions. The second user is able to access and display audio-visual content stored within the multimedia memory 590, download new content onto the multi-purpose hardware device 500 via the USB interface 570, and execute a word processing function with entry via data entry port 550 with the word processing application displayed on the display 530 and generated text files stored within the multimedia memory 590.
Optionally, a third user has a third memory card 587 having firmware stored therein allowing display of audio-visual information stored within the multimedia memory 590 and providing a filtering block for content such that some content is not listed as available to the user. Optionally, the firmware in allowing the user to download files from the USB interface port 570 blocks downloading of content that does not contain a valid digital rights certificate or that is filtered by the filter block, thereby preventing the user from downloading illegal copies of music tracks, albums, videos, etc. Alternatively, the firmware loads for both first memory card 580 and second memory card 585 are stored within the same physical memory card, as described supra in respect of
Alternatively in addition to firmware being retrieved the memory card, such as first memory card 580 additionally stores information such as personalized information, for example additional content specific to the user, content specified by the user, or encryption keys, passwords, etc. that are bound to the user and only released via the authentication.
Optionally, the multi-purpose hardware device 500 is supplied with memory card 580 comprising in addition to the firmware load itself information relating to the multi-purpose hardware device 500, such as for example product description, product owners manual, product type, and manufacturers serial number, and information relating to the memory itself, such as for example memory manufacturer, memory type, and personal identity. The personal identity for example being a serial number. Subsequently a user wishes to upgrade the firmware of the of the multi-purpose hardware device 500, and accesses a website associated with a vendor of firmware for the of the multi-purpose hardware device 500. This vendor is optionally the manufacturer, a value added partner, or a third party developing firmware. Upon accessing the website and inserting the memory card 580 into a memory card reader the personal identity of the memory card 580 and serial number of the multi-purpose hardware device 500 are uploaded to the website. The user then selects a firmware upgrade to acquire; this firmware upgrade is prepared for downloading to the memory card 580. The preparation for example includes ‘personalizing’ the memory upgrade with the serial number of the multi-purpose hardware device 500 and the personal identity of the memory card 580. Optionally, ‘personalizing’ limits the firmware upgrade to the memory card 580 and the multi-purpose hardware device 500 when the firmware seeks verification of each during loading and execution of the firmware load and prevents execution or limits execution in dependence upon failed verification.
Now referring to
A second user, inserting a second other memory card 670, is granted only “wireless” access such that now all data traffic is directed through the wireless interface 640, and the Ethernet interface 660 is disabled. Optionally a third user inserting a third memory card 670 having third firmware stored therein is provided both “wired” and “wireless” access such that both wireless interface 640 and Ethernet interface 660 are enabled. Optionally, the firmware loaded from the memory card 670 limits the network or networks they are allowed to connect to, or limits the content they are permitted to access. Optionally, the memory card 670 has stored therein several of the multiple firmware loads, and hence access rights, and selection of the firmware load is via user selection which further optionally includes provision of appropriate user related authentication information to validate the user as having sufficient rights to access selected firmware.
Referring to
A first user wishing to use the gaming console 700 provides a first memory card 770 into the memory card interface 730, and turns on the gaming console 700 whereupon the processor 720 transfers firmware from the memory card 770 to volatile memory associated with the processor 720 and executes the firmware. The gaming console 720 with this first memory card interfaced thereto operates as a conventional gaming console providing the user with the ability to select a game, retrieve the game from memory 740 and play using controller 780. The first user is also able to access an online service, for example XBOX LIVE™, and play within a multi-player game or massively multi-player online role playing game (MMPORG).
A second user accessing the gaming console 700 provides a second memory card 770 having firmware stored therein that defines the gaming console 700 as an Internet Protocol Television (IPTV) set-top box such that the second user is able to select one of the many IPTV channels available from a service provider interconnected to the gaming console via the Internet and the Ethernet port 760. In this manner the gaming console disables access to the memory 740 and controllers 780 and supports bidirectional commands across the SCART interface. A third user accessing the gaming console 700 provides a further other firmware load which establishes the gaming console 700 as a reduced function personal computer executing a Linux operating system and supporting a USB hub, not shown for clarity, interconnected to the USB interface port 710 which allows interconnection of a keyboard and pointing device. Using the reduced function personal computer the third user is able to access the Internet via the Ethernet port 760, perform online financial services etc, and utilize word processing, spreadsheet or graphics applications which are stored optionally within the memory card 770 or have been downloaded into the memory 740 of the gaming console.
Alternative configurations for the gaming console 700 using different firmware on memory card 740 include those outlined in respect of previous
Alternatively, other consumer electronic devices are operated in accordance with the above-described embodiments. Further alternatively, the firmware is loadable at times other than power up. Optionally, the consumer electronic device is one or more of removable memory storage devices, memory storage devices, multimedia players, cameras, computer security devices, computers, gaming consoles, cellular telephones, personal digital assistants, multimedia recorders, telephones, visual display devices, facsimile machines, photocopiers, scanners, digital set-top boxes, modems, and analog set-top boxes.
Alternatively, for any embodiment described herein above wherein the firmware is not describe as encrypted, the firmware is encrypted. Optionally, encryption of firmware also enables a diversification by device such that the same firmware is “personalized” to the specific device thereby preventing software piracy via copying to other memory cards of software and distributing it. “Personalizing” firmware or software to a specific device alleviates this as other physical memory is not a same specific device. Alternatively, specific functionality may be embedded into the firmware for example to allow a limited number of copying operations, each copying operation to another memory card incorporating a “personalization” operation.
Numerous other embodiments may be envisaged without departing from the spirit or scope of the invention.
Number | Date | Country | |
---|---|---|---|
60960571 | Oct 2007 | US |