Browse Prior Art Database

Method for Flash Update Via Structures

IP.com Disclosure Number: IPCOM000124376D
Original Publication Date: 2005-Apr-18
Included in the Prior Art Database: 2005-Apr-18
Document File: 2 page(s) / 28K

Publishing Venue

IBM

Abstract

A method to maintain data about redundant multi-image flash storage using a multilevel structure.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 52% of the total text.

Page 1 of 2

Method for Flash Update Via Structures

A program is disclosed that maintains a multilevel structure about all flash images in a multi-flash image system. This data includes the current code level, the presence of corruption in the image, and other data useful in the determination of whether each individual code image needs to be replaced. To do this requires an interface between the low level, kernel code that resides in the flash, and an external process in charge of organizing and completing the update/recovery of the flash code. This design involves the use of binary image status (BIS) registers and a global flash image status structure. This data, in combination with data about the current flash situation (i.e. adapter brought up with primary image vs. recovery image), is used to reprogram the flash when needed. In addition, this data is used to determine if the situation requires that the adapter be hanged/rebooted.

In a redundant flash image system, there exist two cases that need to be considered for adapter bringup: 1) the adapter's primary image is able to boot the adapter on its own, and 2) the adapter's primary image is corrupted and the recovery image is used.

Case 1:

The kernel code, upon examining the binaries for corruption, records data about the image in BIS registers. These registers hold data on a per binary basis that includes the current code level, the presence of corruption in the image, and other data useful in the determination of whether each individual code image needs to be replaced. This data is examined by an external process that has access to these shared registers. It is responsible for maintaining a global flash status structure. This structure retains this BIS data, once again on a binary by binary basis, and examines the Adapter's Functional Code Package for information about the presence of new flash code. Should the binary need updating, whether to recover from corruption or due to a new level of code that needs to be programmed, a note is made in the global structure. The global structure also gives the recovery engine the ability to designate the reprogramming as a foreground process or a background process. The decision to mark for burn can be made as complex as the situation demands; for example, if the system demands that a minimal amount of programming take place, then the external process can decide to NOT mark the structure field for binaries where there is still a usable copy in the primary image. This flexibility ensures that only "necessary" reprogramming takes place (i.e. no reprogr...