Modification and use of configuration memory used during operation of a serial bus
First Claim
1. A method of communicating between a device driver and a bus driver in a computer, the method comprising steps of:
- providing, by the device driver to the bus driver, a new unit directory, representative of a newly-altered functionality of an existing device associated with the device driver, to be appended to a configuration memory;
responsive to the new unit directory, dynamically modifying, by the bus driver, the configuration memory to include a pointer to the new unit directory, wherein the pointer is added to a root directory forming a part of the configuration memory; and
providing, by the bus driver to the device driver, a notification that the configuration memory has been modified.
2 Assignments
0 Petitions
Accused Products
Abstract
Information stored in configuration memory of a first device coupled to a communication bus is exposed to other devices allowing the other devices to ascertain the functionality of the first device. A device driver corresponding to the device can, through an interface, cause a bus driver to alter the contents of the configuration memory thereby changing what information is exposed to other devices. When another device “enumerates” the now-altered configuration memory, the other device will learn of the new functionality and proceed in a normal fashion by loading those drivers necessary to use the newly-added functionality. Conversely, when a device and its corresponding device driver is removed, configuration memory is updated accordingly. The present invention may be beneficially applied to systems adhering to the IEEE 1394 Serial Bus standard.
-
Citations
21 Claims
-
1. A method of communicating between a device driver and a bus driver in a computer, the method comprising steps of:
-
providing, by the device driver to the bus driver, a new unit directory, representative of a newly-altered functionality of an existing device associated with the device driver, to be appended to a configuration memory;
responsive to the new unit directory, dynamically modifying, by the bus driver, the configuration memory to include a pointer to the new unit directory, wherein the pointer is added to a root directory forming a part of the configuration memory; and
providing, by the bus driver to the device driver, a notification that the configuration memory has been modified. - View Dependent Claims (2, 3, 4, 5)
re-parsing the configuration memory to include the new unit directory; and
re-calculating offsets within the root directory to include the new unit directory, thereby providing the pointer to the new unit directory.
-
-
3. The method of claim 1, further comprising a step of:
responsive to the notification that the configuration memory has been modified, providing, by the device driver to the bus driver, a bus reset request that causes the bus driver to initiate a bus reset procedure.
-
4. A method as recited in claim 1 for removing the new unit directory, further comprising steps of:
-
ascertaining that the device driver has been removed;
re-parsing the configuration memory to exclude the new unit directory; and
re-calculating offsets within the root directory to exclude the new unit directory.
-
-
5. The method of claim 1, wherein the bus driver is an IEEE 1394 Serial Bus compliant bus driver.
-
6. In a computer comprising a node residing on a communication bus, wherein a configuration memory is associated with the node, a method for exposing a newly-altered functionality of an existing device residing on the communication bus, the method comprising steps of:
-
providing a device driver and a new unit directory corresponding to the newly-altered functionality of the existing device;
dynamically modifying the configuration memory to include a pointer to the new unit directory in a root directory forming a part of the configuration memory, wherein the configuration memory is exposed to other nodes residing on the communication bus; and
initiating a bus reset procedure that causes the other nodes to enumerate the configuration memory to include the new unit directory. - View Dependent Claims (7, 8, 9, 10, 11)
re-parsing the configuration memory to include the new unit directory; and
re-calculating offsets within the root directory to include the new unit directory, thereby providing the pointer to the new unit directory.
-
-
8. The method of claim 6, further comprising a step, prior to the step of providing the device driver and the new unit directory, of:
creating an object, residing on the computer, representative of the device.
-
9. A method of claim 8, wherein the step of providing the device driver further comprises loading the device driver in the object representative of the device.
-
10. The method as recited in claim 8 for testing the device driver, further comprising a step, prior to the step of enumerating the external node, of:
providing, as the device, another computer that emulates functionality of the device.
-
11. A method as recited in claim 6 for removing the new unit directory, further comprising steps of:
-
ascertaining that the device driver has been removed;
re-parsing the configuration memory to exclude the new unit directory; and
re-calculating offsets within the root directory to exclude the new unit directory.
-
-
12. In a system comprising a communication bus, a computer coupled to the communication bus and at least one device coupled to the communication bus, wherein the computer and the at least one device each comprise a configuration memory that is exposed on the communication bus, a method for exposing a newly-altered functionality of the computer, the method comprising steps of:
-
providing, by the computer, a device driver and a new unit directory corresponding to the newly-altered functionality of the computer;
dynamically modifying, by the computer, the computer'"'"'s configuration memory to include a pointer to the new unit directory in a root directory forming a part of the computer'"'"'s configuration memory;
enumerating, by the at least one device, the computer'"'"'s configuration memory including the new unit directory; and
loading, by the at least one device and in response to the enumeration by the device of the computer'"'"'s configuration memory, another device driver corresponding to the newly-altered functionality of the computer. - View Dependent Claims (13, 14, 15, 16)
initiating, by the computer, a bus reset procedure that causes at least one device to enumerate at least the computer'"'"'s configuration memory.
-
-
14. The method of claim 12, further comprising a step of:
using, by the at least one device, the newly-altered functionality of the computer via the communication bus and the other bus driver.
-
15. The method of claim 12, further comprising steps of:
-
removing, by the computer, the new unit directory from the computer'"'"'s configuration memory; and
enumerating, by the at least one device, the computer'"'"'s configuration memory excluding the new unit directory.
-
-
16. The method of claim 12, wherein the at least one device comprises another computer.
-
17. A computer coupled to a communication bus and having a processor coupled to a memory, the memory storing computer-readable instructions that, when executed by the processor, cause the computer to comprise:
-
a device driver that provides a new unit directory corresponding to a newly-altered functionality of an existing device residing on the communication bus; and
a bus driver that controls communications between the computer and the communication bus, and that modifies a configuration memory, based on the new unit directory, to include a pointer to the new unit directory in a root directory forming a part of the configuration memory, wherein the configuration memory is exposed to other devices residing on the communication bus. - View Dependent Claims (18, 19, 20, 21)
another computer, coupled to the communication bus, as one of the other devices.
-
Specification