Lightweight Boot Protocol Stack for USB Software Upgrades

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing electronic devices, such as modems, face limitations in software upgrades during booting operations due to the large size of complete protocol stack codes, which are not suitable for flash memory, and the risk of device inoperability during software downloads to flash memory.

Innovation Solution

Implementing a lightweight protocol stack code for the boot code that includes a subset of the complete protocol stack, allowing software upgrades during booting via interfaces like USB and Ethernet, with specific support for BOOTP, UDP, and IP protocols, and using endpoints for controlled data transmission.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a complete protocol stack code is used in the boot code, then the device can perform all operations during booting, but the flash memory size becomes too large

Engineering Contradiction:
Improveprotocol functionalityVSAvoidflash memory size
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The protocol stack is segmented into two parts: a lightweight protocol stack in the boot code for basic booting operations, and a complete protocol stack in the operational software for full functionality. This segmentation allows the boot code to be small while still providing necessary booting capabilities, and the complete protocol stack is loaded only when needed during normal operation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The essential protocol handling code is extracted from the complete protocol stack and placed in the boot code, while the remaining extensive protocol code is kept in the operational software. This extraction ensures that the boot code contains only the minimum necessary code to perform booting operations, significantly reducing flash memory requirements.

Inventive Principle:
Principle #2Taking out (Extraction)

2Adaptability or versatility

If software is downloaded to flash memory during operational mode, then software upgrades can be performed, but the device may become inoperable if a failure occurs

Engineering Contradiction:
Improvesoftware upgrade capabilityVSAvoiddevice operability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The boot code is designed to perform preliminary actions by downloading software to the SDRAM (volatile memory) first during the booting operation, before attempting to write to the flash memory. This preliminary action allows the device to have a functional software image in volatile memory even if the flash memory write fails, preventing the device from becoming inoperable.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system prepares a backup software image in the SDRAM during booting, which acts as a cushion against potential flash memory write failures. If the flash memory write fails, the device can fall back to the software image in volatile memory, ensuring continuous operation and preventing complete device failure.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

3Adaptability or versatility

If a USB interface with complete protocol stack is used during booting, then software upgrades are possible, but the protocol stack size is too large for flash memory

Engineering Contradiction:
Improveupgrade optionsVSAvoidprotocol stack size
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The USB protocol stack is segmented into a lightweight version for booting operations and a complete version for normal operation. The lightweight protocol stack in the boot code includes only the essential code for USB communication during booting, while the complete protocol stack is available in the operational software, allowing full upgrade capabilities when needed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically loads the complete protocol stack into memory during normal operation, rather than having it permanently resident in flash memory. This dynamic approach allows the device to use a small lightweight protocol stack during booting and then load the complete protocol stack only when software upgrades are needed, optimizing memory usage at all times.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS7272706B2Software upgrade over a USB connection
Publication Date: 2007.09.18 INTERDIGITAL CE PATENT HOLDINGS SAS
  • US7272706B2 patent drawing
  • US7272706B2 patent drawing
  • US7272706B2 patent drawing

AI summary

The present invention is related to an electronics device, such as a modem, having an interface operable with a complete protocol stack code in normal operation, and comprising a non-volatile memory, such as a flash memory containing a code for booting said device. The device is characterized in that software of said device is upgradable during a booting operation of said device via said interface, wherein said boot code comprises a lightweight protocol stack code for said interface, said lightweight protocol stack comprising a subset of the layers of the complete protocol stack.