Method and system for programming firmware over a computer...

Data processing: software development – installation – and managem – Software program development tool – Translation of code

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C717S152000, C717S152000

Reexamination Certificate

active

06199194

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates generally to computer systems and associated hardware that are connected to a network, and particularly to methods and apparatuses for programming firmware of the associated hardware over the network.
2. Description of the Related Art
Computer systems can incorporate various components, including a central processing unit (CPU), random access memory (RAM), a hard drive, and peripheral devices. Computer systems can also incorporate hardware devices, such as host adapter cards (also known as controllers) that have host adapter integrated circuit (IC) chips and that have programmable read-only memory (ROM) circuitry, collectively termed a ROM. Such ROMs can be set, or programmed, through the use of software that is external to the ROM, such that the ROM then performs in a particular desired way, like hardware. Once so programmed, the ROM functions as would hardware, but because it can be deprogrammed and/or reprogrammed, it is considered to be firmware. As is well known in the art, particular forms of ROM include programmable ROM (PROM), electrically programmable ROM (EPROM), and electrically erasable and programmable ROM (EEPROM) which are sometimes referred to as flash memory. The firmware programming can define operational characteristics of the hardware device, such as a BIOS of a SCSI adapter card. Information regarding the use of flash memory and firmware upgrading can be found in “ASUS PCI-DA2100—PCI to SCSI Disk Array Controller User's Manual—Hardware Installation,” ASUSTeK Computer, Inc., 1996, which is incorporated herein by reference.
The programming of such devices is performed by sending particular signals, according to a programming file, to the hardware device, thereby setting particular electrical pathways and configuring particular functionalities within the ROM. The particular signals may be in the form of operational commands, or data bits. Before distribution to consumers or incorporation into a user's local computer system, a hardware device provider can program the ROM, which can be accomplished on a special programming board or by other typical methods known to those skilled in the art. Alternatively, the initial programming of the firmware can be performed after it is installed with the user's local computer system. In addition, while some ROMs can be programmed only once, other hardware devices have reprogrammable ROMs, allowing the user to incorporate new revisions, bugfixes, or updates into the hardware device.
Understanding the programming of a ROM is facilitated by the depiction of a typical local computer system
102
in FIG.
1
. Whether programmed for the first time or subsequently, or before or after incorporation with the user's local computer system
102
, the ROM
104
of a local hardware device
106
(e.g., a host adapter card) is typically programmed using a programming file that is resident on the same computer system as where the firmware is incorporated. Specifically, the programming file is downloaded from a storage media
108
to some form of memory
110
within the user's local computer system
102
, such as random access memory (RAM). A programming application, also downloaded to the user's local computer system memory
110
, then uses the programming file to program or reprogram the ROM
104
. The storage media
108
, can be a readable data storage device such as a floppy disk, compact disc (CD), optical disk, or tape, among others. Alternatively, the programming file and/or application can be downloaded from a remote computer system to which the user's local computer system is connected through a network.
Unfortunately, such programming methods that are typically available to the user may be time consuming and difficult to utilize. For example, if a storage media
108
is used, the user must obtain the storage media itself by either physically procuring or by ordering and then waiting for delivery of the storage media that contains the programming file and programming application. Further, such a method requires that the user's computer system have a device
112
that is capable of reading the storage media. If, on the other hand, the user downloads the file from a remote system through a network, such a download may take a large amount of time.
Additionally, whether using storage media or downloading across a network, a particular programming file and/or programming application may be needed to accommodate the current configuration of the user's local computer system. Therefore, the user must accurately determine various aspects of the current configuration. Such aspects may include the type of operating system (OS) being used on the user's local computer system, or the revision number of the current firmware on a local hardware device that is to be reprogrammed. In addition to the time required to communicate this information, the correct information may not be readily available to the user, and therefore the user may be significantly delayed in programming the local hardware device while the user determines the correct information. Furthermore, any errors in the configuration information used by the user to select a programming file and/or programming application can result in no programming or incorrect programming of the local hardware device, which could render the local hardware device at least temporarily unusable.
Therefore, there is a need for improved techniques for programming programmable hardware devices. In particular, a method and apparatus for more efficiently, more quickly, and more accurately programming programmable hardware devices is needed.
SUMMARY OF THE INVENTION
Broadly speaking, the present invention fills these needs by providing a method and apparatus for programming a programmable hardware device of a local computer system that is connected to a network, by using a programming file that is resident on a remote system which is also connected to the same network. It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, a method, or a computer readable medium. Several inventive embodiments of the present invention are described below.
In one embodiment, a method for facilitating programming of a programmable hardware device that is associated with a local system that has a particular computer operating system (OS) is disclosed. The method includes providing a Java-language program that is capable of accessing a programming file having data, providing a Java Native Interface (JNI) implementation that is capable of facilitating a sending of data from the programming file to the programmable hardware device, and providing a Java Native Interface that facilitates communication between the Java-language program and the JNI implementation.
In another embodiment, a method for user programming of a programmable hardware device that is associated with a local system that has a particular computer operating system (OS) includes accessing a programming file having data and located on a computer system that is remote from the local system and connected to the local system through a network, using a Java program. The method also includes retrieving the data from the programming file and sending the retrieved data to the programmable hardware device, such that the retrieving and sending are facilitated by using a particular Java Native Interface (JNI) and a particular JNI implementation.
In yet another embodiment, a computer readable media, containing program instructions for modifying a hardware device that is associated with a computer system that is remote from the computer readable media, includes program instructions for accessing a particular programming file and program instructions for programming the hardware device using data from the particular programming file. In addition, the computer readable media can further include program instructions, in Java program language, for automatically detecting

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method and system for programming firmware over a computer... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method and system for programming firmware over a computer..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and system for programming firmware over a computer... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2510864

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.