KR20040034540A - 대용량 저장 디바이스로 부터 펌웨어의 신뢰성 있고안전한 업데이트와 복구 - Google Patents

대용량 저장 디바이스로 부터 펌웨어의 신뢰성 있고안전한 업데이트와 복구 Download PDF

Info

Publication number
KR20040034540A
KR20040034540A KR1020030072970A KR20030072970A KR20040034540A KR 20040034540 A KR20040034540 A KR 20040034540A KR 1020030072970 A KR1020030072970 A KR 1020030072970A KR 20030072970 A KR20030072970 A KR 20030072970A KR 20040034540 A KR20040034540 A KR 20040034540A
Authority
KR
South Korea
Prior art keywords
bios
firmware
embedded controller
code
computer system
Prior art date
Application number
KR1020030072970A
Other languages
English (en)
Inventor
보울스다니엘에이.
데밍다오비.
레인크레이그
Original Assignee
피닉스 테크놀로지 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 피닉스 테크놀로지 리미티드 filed Critical 피닉스 테크놀로지 리미티드
Publication of KR20040034540A publication Critical patent/KR20040034540A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

대용량 저장 디바이스의 보호 영역으로 부터 작동하는 유틸리티를 사용하는 컴퓨터 시스템의 시스템 펌웨어(BIOS)를 업데이트하거나 복구하는 시스템, 방법, 및 소프트웨어. 이것은 표준 운영 시스템 환경을 회피하고 필요한 파일의 탬퍼링이나 삭제 가능성을 제거한다. 시스템 이이피롬이나 플래시롬에 기록하기 위한 펌웨어 업데이트 유틸리티 및 시스템 펌웨어(BIOS)의 복사본을 포함하는 파일은 대용량 저장 디바이스에 전달된다. 파일이 전달되면, 이 파일을 포함하는 대용량 저장 디바이스상의 영역은 예컨대, 호스트 보호 영역에서 보호된다. 대용량 저장 디바이스의 이 영역을 보호하거나 로킹한 후에, 시스템 펌웨어 또는 부트 유틸리티는 표준 운영 시스템을 부팅하거나 펌웨어가 오류가 있으면 복구 모드에서 호스트 보호 영역으로 부터 펌웨어 업데이트 유틸리티를 작동한다. 이것은 펌웨어 업데이트 유틸리티가 컴퓨터 시스템의 표준 운영 환경과 독립한 외부 환경에서 작동할 수 있게한다. 엔드 유저가 시스템 펌웨어를 업데이트할 필요가 있는 경우, 새로운 펌웨어 이미지를 가진 펌웨어 업데이트 유틸리티를 제공하는 애플리케이션이 사용된다. 그때 이 애플리케이션은 시스템이 다음 부트상에서 업데이트 유틸리티를 부팅하는 것을 필요로한다.

Description

대용량 저장 디바이스로 부터 펌웨어의 신뢰성 있고 안전한 업데이트와 복구{RELIABLE AND SECURE UPDATING AND RECOVERY OF FIRMWARE FROM A MASS STORAGE DEVICE}
본 발명은 대체로 컴퓨터 시스템과 관련 방법에 관한것이고, 보다 상세하게는, 대용량 저장 디바이스로 부터 시스템 펌웨어를 신뢰성있고 안전하게 업데이트하고 복구하는 시스템, 방법, 및 소프트웨어에 관한 것이다.
시스템 환경에서 주 운영 시스템을 작동시키는 비보호 디스크 영역으로 부터 퍼스널 컴퓨터의 시스템 펌웨어를 업데이트하는 많은 유틸리티가 있다. 그러한 유틸리티는 DOS를 포함하는 플로피 드라이브로 부터 작동될 수 있다. 그러나, 이것은 엔드 유저가 부팅가능한 플로피 드라이브를 생성할 수 있을것을 필요로한다.
"부트 블록"은 업데이트되지 않은 주 시스템 펌웨어(BIOS)의 일부이다. 부트 블록의 목적은 시스템 펌웨어(BIOS)의 기타 부분이 오류가 있는지의 여부를 판정하는 것이다. 시스템 펌웨어가 OK라고 판정된 후에는, 부트 블록은 POST(Power On Self Test) 초기화의 나머지를 위하여 주 시스템 펌웨어에 컨트롤을 통과시킨다. 한편, 시스템의 펌웨어가 오류가 있으면, 부트 블록은 저장 매체나 플로피 디바이스의 몇몇 형태로 부터 필요한 유틸리티와 파일을 로딩함으로써 시스템 펌웨어를 알려진 작업 버전으로 복구하기 위한 메커니즘을 제공한다.
보호 영역 런타임 확장 서비스 표준(ANSI BSR NCITS-346)은 하드 디스크 드라이브상에서 서비스 영역이라 불리는 프라이비트 영역에 데이터를 저장하기 위한 메커니즘을 제공한다. 이 표준은 또한 서비스 영역으로 부터 운영 시스템을 부팅하기 위한 방법을 제공한다.
알려진 종래 기술에 의하여 나타난 많은 결점이 있다. 예컨대, 시스템 펌웨어를 EEPROM이나 플래시롬에 프로그래밍하는 프로세스가 조기에 인터럽트되거나 중단되면 시스템은 특별한 상태로 될 수 있다. 이러한 두가지 사건중 하나를 일으킬 수 있는 가능성이 높다.
현재의 유틸리티는 태스크 스위칭을 방지하는데 충분한 컨트롤을 가질 수 없는 주 운영 시스템 환경에서 실행해야한다. 이것은 EEPROM이나 플래시롬 디바이스를 프로그래밍할 필요있는 타임 크리티컬한 사건을 방해할 수 있다. 또다른 발생가능한 문제는 운영 시스템이 시스템 전력이상의 컨트롤을 가지고 있다는 것이다.운영 시스템 전력 관리 계획이 시스템을 슬립상태로 하거나 턴오프할 필요가 있다고 결정하면, 그것은 조기에 전력을 제거하여 프로그래밍 프로세스를 중단할 수 있다.
대부분의 위기 복구 방안은 사용자가 필요한 복구 파일과 유틸리티를 포함하는 플로피 디스크를 미리 생성해놓을 필요가 있다. 플로피 디바이스는 비교적 작은 양의 공간을 가지고 있고 펌웨어 이미지는 그것만으로 플로피 디스크의 사이즈에 근접하고 있다. 이것은 미래의 확장을 위한 공간의 여지가 거의 없다.
주 운영 시스템의 파일 시스템은 시스템이 제조될때는 알려지지 않을 수 있고, 또는 시스템이 배송된 후에 변경될 수 있으므로, 위기 복구 파일이 하드 디스크 드라이브상에 있는지를 확신할 수 없다. 심지어 파일 시스템이 알려지더라도, 그 복잡함은 EEPROM이나 플래시롬의 부트 블록에 적합한 것 보다 많은 코드를 필요로 할 수 있다.
또한, 다른 운영 시스템의 파일 시스템들은 거기에 접속하기 위한 코드가 부트 블록내에 포함된다면 라이센스를 얻어야하는 지적 재산권을 포함할 수 있다.
따라서 본 발명의 목적은 대용량 저장 디바이스로 부터 펌웨어를 신뢰성있고 안전하게 업데이트하고 복구하기 위한 시스템, 방법, 및 소프트웨어를 제공하는 것이다.
도 1은 대용량 디바이스로 부터 시스템 펌웨어를 신뢰성있고 안전하게 업데이트하고 복구하는 본 발명의 원리에 따른 방법을 구체화하는 전형적인 퍼스널 컴퓨터 시스템을 나타내는 블록도,
도 2는 본 발명의 원리에 따른 전형적인 방법 및 소프트웨어 코드를 나타내는 플로우차트.
상기한 및 기타 목적을 달성하기 위하여, 본 발명은 예컨대, 하드 디스크 드라이버와 같은 대용량 또는 비휘발성 저장 디바이스의 보호 영역으로 부터 작동하는 유틸리티를 사용하여 퍼스널 컴퓨터와 같은 컴퓨터 시스템의 시스템 펌웨어(BIOS)를 업그레이드하거나 복구하기 위한 시스템, 방법, 및 소프트웨어를 제공한다. 이것은 표준 운영 시스템 환경을 피하고 필요한 파일의 변경이나 삭제의 가능성을 제거한다. 펌웨어가 오류가 발생하면, 컴퓨터 시스템은 복구 모드로 전환되고 유틸리티는 시스템 펌웨어의 알려진 작업 버전을 복구하기 위하여 보호 영역으로 부터 작동된다.
본 발명은 이하와 같이 구현될 수 있다. 컴퓨터 시스템의 제조시, 시스템 펌웨어(BIOS)의 복사본 및 시스템 EEPROM이나 플래시롬에 기록하기 위한 펌웨어 업데이트 유틸리티를 포함하는 파일은 대용량 저장 디바이스나 하드 디스크 드라이브로 전달된다. 파일이 전달되면, 이러한 파일을 포함하는 하드 디스크상의 영역은 ATA스펙의 "호스트 보호 영역" 기능 세트(feature set)나 다른 이용가능한 메커니즘을 사용하는 것과 같은 것으로서 보호될 수 있다.
이러한 하드 디스크 드라이브의 영역을 보호하거나 로킹한후에, 시스템 펌웨어나 부트 유틸리티는 표준 운영 시스템을 부팅하거나 호스트 보호 영역으로 부터 펌웨어 업데이트 유틸리티를 작동시킨다. 이것은 펌웨어 업그레이드 유틸리티가 컴퓨터 시스템의 표준 운영 환경에서 벗어나서 독립적인 환경에서 작동할 수 있도록 한다.
엔드 유저가 시스템 펌웨어를 업그레이드할 필요가 있는 경우, 새로운 펌웨어 이미지를 가진 펌웨어 업그레이드 유틸리티를 제공하는 애플리케이션이 사용된다. 그 때 이 애플리케이션은 시스템이 다음 부트에서 업데이트 유틸리트를 부팅하도록 요청한다.
(상세한 설명)
본 발명의 다양한 특징과 이점은 첨부 도면과 결합하여 상세히 기술되는 이하의 상세한 설명에 의하여 보다 잘 이해될 것이다.
도 1을 참조하면, 도 1은 2차 비휘발성 저장 디바이스(20)을 포함하는 대량 저장 디바이스(20)로 부터 시스템 펌웨어를 신뢰성있고 안전하게 업데이트하고 복구하는 방법을 구체화하는 퍼스널 컴퓨터 시스템(10)같은, 전형적인 컴퓨터 시스템(10)을 나타내는 블록도이다. 컴퓨터 시스템(10)은 크리티컬한 비휘발성 저장 디바이스(12)에 연결되는 중앙 처리 장치(CPU)(11)를 포함한다. 크리티컬한 비휘발성 저장 장치(12)는 플래시 메모리, 롬(ROM : read only memory), 피롬(PROM : programmable read only memory), 이이피롬(EEPROM : erasable programmable read only memory), 또는 CPU(11)가 초기 지시 세트를 수행하도록 사용할 수 있는 기타의 디바이스나 테크놀러지일 수 있다.
CPU(11)는 또한 랜덤 액세스 메모리(13)와 같은 시스템 메모리(13)에 연결된다. CPU(11)는 예컨대, PCI(Peripheral Component Interconnect)와 같은 시스템 버스(14)에 의하여 2차 비휘발성 저장 디바이스(20)에 연결될 수 있다. 2차 비휘발성 저장 디바이스(20)는 하드 디스크 드라이브, 컴팩트 디스크(CD)드라이브, 디지털 비디오 디스크(DVD), 플로피 디스크 드라이브, Zip드라이브, 슈퍼디스크 드라이브, 자기광학 디스크 드라이브, Jazz드라이브, 고밀도 플로피 디스크(HiFD), 플래시 메모리, 롬, 피롬, 이피롬, 이이피롬, 또는 파워오프시 데이터를 보존할 수 있는 임의의 다른 디바이스나 테크놀러지일 수 있다.
크리티컬한 비휘발성 저장 디바이스(12)의 제 1 부분은 CPU(11)와 시스템 메모리(13)를 초기화하는 초기화 코드를 저장한다. 크리티컬한 비휘발성 저장 디바이스(12)의 제 2 부분은 태스크목록을 포함하는 디스패치 매니저를 저장하고, 이것은 컴퓨터 시스템(10)을 완전히 초기화하도록 수행해야한다. 디스패치 매니저는 컴퓨터의 완전한 초기화에 관한 많은 태스크를 선택적으로 로딩하고 반복적으로 수행한다.
동작에서, 컴퓨터 시스템(10)이 턴온되면, 초기화 코드가 CPU(11)와 시스템 메모리(13)를 초기화하기 위하여 작동된다. 그 다음에 디스패치 매니저가 시스템 메모리(13)에 로딩된다. 디스패치 매니저는 모든 필요한 펌웨어(BIOS모듈)가 시스템 메모리(13)에 로딩될 수 있게 그 내부에 포함된 태스크목록을 수행하고 수행되어야 한다.
디스패치 매니저는 각각의 필요한 BIOS모듈이 시스템 메모리(13)에 있는지 여부를 판정하고, 없다면, 각각의 필요한 BIOS를 발견하고, 로딩하고, 수행한다. BIOS모듈은 크리티컬한 비휘발성 저장 디바이스(12)(플래시 메모리)에 위치될 수 있고 또는 상기와 일치하는 임의의 크리티컬한 또는 2차 비휘발성 저장 디바이스(20)를 포함하는, 2차 비휘발성 저장 디바이스(20)에 위치될 수 있다.
도 2를 참조하면, 본 발명의 원리에 따른 전형적인 방법(30) 및 소프트웨어 코드를 나타내는 상세한 플로우 다이어그램이 나타난다.
컴퓨터 시스템(10)이 부팅되고 부트 블록은 CPU(11)를 제어한다. 펌웨어가 오류가 있는지 여부의 판정(32)이 수행된다. 펌웨어가 오류가 없다면(No), 정상 POST(Power On Self Test) 프로시져가 작동된다(33). 그 다음에, 펌웨어 업데이트 유틸리티를 부팅하라고 요청된다(34). 펌웨어 업데이트 유틸리티가 작동되지 않으면(No)(34), 운영 시스템은 부팅되고(35) 새로운 펌웨어 이미지가 업데이트 유틸리티에 이용될 수 있다(36). 시스템이 컴퓨터 시스템(10)의 다음 부트상에서 펌웨어 업데이트 유틸리티를 부팅하도록 요청된다(37).
펌웨어가 오류가 없는것으로 판정되면(Yes), 펌웨어 위기 복구 모드로 들어간다(41). 펌웨어 업데이트 유틸리티는 보호 영역으로 부터 론칭된다(42). 펌웨어는 알려진 이전 작업 이미지로 복구된다(43). 그 다음에 컴퓨터 시스템은 리셋된다(38).
펌웨어 업데이트 유틸리티가 작동되면(Yes)(34), 펌웨어 업데이트 유틸리티는 보호 영역으로 부터 론칭된다(45). 펌웨어는 새로운 펌웨어 이미지로 업데이트된다(46). 그 다음에 컴퓨터 시스템은 리셋된다(38).
따라서, 컴퓨터 시스템(10)의 제조동안, 시스템 펌웨어(BIOS)의 복사본과 시스템 EEPROM이나 플래시롬에 기록하기 위한 펌웨어 업데이트 유틸리티를 포함하는 파일이 하드 디스크 드라이브(20)에 전달된다. 파일이 전달되면, 이 파일을 포함하고 있는 하드 디스크 드라이브(20)상의 영역은 ATA스펙의 세트"호스트 보호 영역" 기능 세트, 또는 기타의 메커니즘을 사용하는 것과 같은 것에 의하여 보호된다. 하드 디스크 드라이브(20)의 이러한 영역을 보호하거나 로킹한후에, 시스템펌웨어나 부트 유틸리티는 표준 운영 시스템을 부팅하거나 호스트 보호 영역으로 부터 펌웨어 업데이트 유틸리티를 작동시킨다. 이것은 유틸리티가 퍼스널 컴퓨터(10)의 표준 운영 환경외의 환경하에서 독립적으로 작동시킬 수 있도록 한다.
엔드 유저가 시스템 펌웨어를 업데이트할 경우, 새로운 펌웨어 이미지를 가진 업데이트 펌웨어 업데이트 유틸리티를 제공하는 애플리케이션이 사용된다. 그때 이 애플리케이션은 시스템이 다음 부트상에서 업데이트 유틸리티를 부팅하는 것을 필요로한다. 본 발명은 이것을 구현한다.
하드 디스크 드라이브(20)의 보호 영역으로 부터 시스템의 펌웨어를 업데이트하거나 복구하는 몇가지 이점이 있다.
하드 디스크 드라이브(20)의 보호 영역으로 부터 작동할수 있는 펌웨어 업데이트 유틸리티는 업데이트하기 전에 새로운 시스템 화일을 탬퍼링하거나 오류발생을 방지할 수 있다. 또한, 위기 복구 플로피는 미리 생성되어 유지될 필요가 없다. 이것은 복구 프로세스가 엔드 유저를 위하여 보다 신뢰성있고 간편하도록 한다.
시스템 펌웨어를 업데이트하는 본 방법은 업데이트를 실패하게 하고 시스템에 이상을 일으킬 수 있는 정상 운영 시스템 태스크 스와핑 및/또는 전력 관리 인터럽션이 없는 운영 환경을 제공한다. 이 제어된 환경은 이이피롬이나 플래시롬 프로그래밍 프로세서의 중요한 타이밍에서 훨씬 큰 컨트롤을 제공한다.
하드 디스크의 보호 영역은 일반적으로 엔드 유저와 주 운영 시스템에 의하여 액세스가 불가하기 때문에, 파일은 삭제나 탬퍼링없이 필요할때 레이아웃될 수 있고, 이것은 필요한 파일이 하드디스크상의 어디에 있는지 미리 정확히 알 수 있으므로 펌웨어 업데이트 유틸리티의 복잡성을 감소시킬 수 있다. 이것은 부트 블록을 위해 제공되는 비교적 적은 양의 이이피롬이나 플래시롬 공간으로 부터 발생하는 감소된 성능때문에 유용하다.
본 발명의 확실한 특징은 새롭고 신규하다고 믿어진다. 예컨대, 본 발명은 펌웨어 업데이트 프로세스가 엔드 유저나 악의적인 소프트웨어에 의하여 삭제되거나 탬퍼링되는 것으로 부터 운영 시스템 및 필요한 파일에 의해 인터럽트되는 것으로 부터 보호한다. 본 발명은 또한 위기 복구 플로피 디스크를 생성하고 유지할 필요가 없기때문에, 엔드 유저를 위하여 보다 간편한 펌웨어 복구를 위한 메커니즘을 제공한다.
본 발명은 또한 주 운영 시스템의 파일 시스템에 존재시키는 것 보다 부트 블록에 의하여 액세스하기가 보다 간편한 방식으로, 펌웨어와 유틸리티 파일이 하드 디스크 드라이브(20)상에 레이아웃될 수 있게한다. 이것은 복구 코드가 보다 간편하도록 한다. 오늘날 오류있는 롬으로부터의 복구는 마이크로소프트사에서 개발한 윈도우 NT운영 시스템을 위한 파일 시스템인 NT파일 시스템(NTFS)와 같은 것으로부터 조차 가능하지 않다.
따라서, 임베디드 컨트롤러 펌웨어 업데이팅을 구현하는 시스템, 방법 및 소프트웨어가 개시되었다. 상기 실시예는 단순히본 발명의 원리의 응용을 나타내는 많은 특정 실시예중 일부를 나타낸다. 확실히, 본 발명의 범위에서 벗어남이없이당업자에 의하여 많은 다른 변형이 고안될 수 있다.
본 발명은 대용량 저장 디바이스로 부터 펌웨어를 신뢰성있고 안전하게 업데이트하고 복구하기 위한 시스템, 방법, 및 소프트웨어를 제공할 수 있다.

Claims (6)

  1. 임베디드 컨트롤러 펌웨어 업데이팅을 위하여 제공되는 시스템에 있어서,
    (1) 중앙 처리 장치(CPU),
    (2) CPU에 연결된 시스템 메모리,
    (3) CPU를 초기화하는 기초 입출력 시스템(BIOS) 및 시스템 메모리 및 컴퓨터 시스템의 완전 초기화를 실행하는 태스크 리스트를 포함하고, 상기 컴퓨터 시스템의 초기화와 관련된 많은 태스크를 선택적으로 로딩하고 반복적으로 실행하는 디스패치 매니저를 포함하는 초기화 코드를 저장하고 상기 CPU에 연결된 크리티컬한 비휘발성 저장 디바이스,
    (4) 파워오프의 경우에 데이터를 보존하고 CPU에 연결된 이차 비휘발성 저장 디바이스,
    (5) 임베디드 컨트롤러 펌웨어를 포함하는 코드 섹션,
    플래시 유틸리티를 포함하는 BIOS의 일부인 코드 섹션,
    상기 컴퓨터 시스템을 부팅하는 코드 섹션,
    새로운 펌웨어 이미지 및 임베디드 컨트롤러 업데이트 알고리즘 또는 프로시져를 상기 컴퓨터 시스템의 시스템 BIOS 저장 영역에 기록하기 위하여 상기 컴퓨터 시스템의 부팅동안 플래시 유틸리티를 작동시키는 코드 섹션,
    상기 컴퓨터 시스템을 재부팅하는 코드 섹션, 및
    상기 시스템 BIOS가 상기 컴퓨터 시스템의 재부팅동안, 새로운 펌웨어 이미지를 상기 컴퓨터 시스템의 임베디드 컨트롤러 펌웨어 저장 영역에 기록하는 업데이트 알고리즘 또는 프로시져를 작동하게 하는 코드 섹션을 포함하는 임베디드 컨트롤러 펌웨어 업데이팅을 제공하는 상기 크리티컬한 비휘발성 저장 디바이스에 배치된 소프트웨어를 포함하는 것을 특징으로 하는 시스템.
  2. 제 1 항에 있어서, 상기 플래시 유틸리티는 윈도우 운영 시스템하에서 작동하는 플래시 유틸리티를 포함하는 것을 특징으로 하는 시스템.
  3. 임베디드 컨트롤러 펌웨어 업데이팅을 제공하는 운영 시스템 및 기초 입출력 시스템(BIOS)를 구비한 컴퓨터 시스템으로 이용하기 위한 방법에 있어서,
    BIOS의 일부로서 임베디드 컨트롤러 펌웨어를 제공하는 단계,
    BIOS의 일부로서 플래시 유틸리티를 제공하는 단계,
    부팅동안, 상기 플래시 유틸리티가 새로운 펌웨어 이미지 및 임베디드 컨트롤러 업데이트 알고리즘을 상기 퍼스널 컴퓨터 시스템의 시스템 BIOS 저장 영역에 기록하도록 하는 단계,
    상기 퍼스널 컴퓨터 시스템을 재부팅하는 단계,
    재부팅 동안, 상기 시스템 BIOS가 상기 업데이트 알고리즘을 작동하게 하는 단계, 및
    상기 업데이트 알고리즘이 상기 새로운 펌웨어 이미지가 상기 퍼스널 컴퓨터 시스템의 임베디드 컨트롤러 펌웨어 저장 영역에 기록하도록 하는 단계를 포함하는것을 특징으로 하는 방법.
  4. 제 2 항에 있어서, 상기 운영 시스템은 윈도우 운영 시스템이고, 상기 플래시 유틸리티는 윈도우 운영 시스템중에서 작동하는것중 하나인 것을 특징으로 하는 방법.
  5. 임베디드 컨트롤러 펌웨어 업데이팅을 제공하는 운영 시스템 및 기초 입출력 시스템(BIOS)를 구비한 컴퓨터로 사용하기 위한 소프트웨어에 있어서,
    임베디드 컨트롤러 펌웨어를 포함한 코드 섹션,
    플래시 유틸리티를 포함하는 BIOS의 일부인 코드 섹션,
    상기 컴퓨터를 부팅하는 코드 섹션,
    새로운 펌웨어 이미지와 임베디드 컨트롤러 업데이트 알고리즘 또는 프로시져를 상기 컴퓨터의 시스템 BIOS 저장 영역에 기록하기 위하여 상기 컴퓨터의 부팅동안 상기 플래시 유틸리티를 작동하는 코드 섹션,
    상기 컴퓨터를 재부팅하는 코드 섹션, 및
    상기 시스템 BIOS가 상기 컴퓨터의 재부팅동안, 상기 새로운 펌웨어 이미지를 상기 컴퓨터의 임베디드 컨트롤러 펌웨어 저장 영역에 기로가는 업데이트 알고리즘 또는 프로시져를 작동하게 하는 코드 섹션을 포함하는 것을 특징으로 하는 소프트웨어.
  6. 제 5 항에 있어서, 상기 운영 시스템은 윈도우 운영 시스템이고, 상기 플래시 유틸리티는 윈도우 운영 시스템에서 작동하는것 중 하나인 것을 특징으로 하는 소프트웨어.
KR1020030072970A 2002-10-21 2003-10-20 대용량 저장 디바이스로 부터 펌웨어의 신뢰성 있고안전한 업데이트와 복구 KR20040034540A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/274,759 US20040076043A1 (en) 2002-10-21 2002-10-21 Reliable and secure updating and recovery of firmware from a mass storage device
US10/274,759 2002-10-21

Publications (1)

Publication Number Publication Date
KR20040034540A true KR20040034540A (ko) 2004-04-28

Family

ID=32093130

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030072970A KR20040034540A (ko) 2002-10-21 2003-10-20 대용량 저장 디바이스로 부터 펌웨어의 신뢰성 있고안전한 업데이트와 복구

Country Status (6)

Country Link
US (1) US20040076043A1 (ko)
JP (1) JP2004145886A (ko)
KR (1) KR20040034540A (ko)
CN (1) CN1506813A (ko)
TW (1) TW200428196A (ko)
WO (1) WO2004038561A2 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100729091B1 (ko) * 2005-12-01 2007-06-14 주식회사 대우일렉트로닉스 콤보 시스템의 롬 커렉션 방법
KR100729090B1 (ko) * 2005-12-01 2007-06-14 주식회사 대우일렉트로닉스 콤보 시스템의 롬 커렉션 방법
KR100748206B1 (ko) * 2006-01-24 2007-08-09 주식회사 렛스비전 임베디드장치의 펌웨어 업그레이드 방법
KR100758292B1 (ko) * 2003-05-06 2007-09-13 레노보(베이징)리미티드 컴퓨터 오퍼레이팅 시스템의 복구방법
KR100775887B1 (ko) * 2007-07-31 2007-11-13 주식회사 셀런 임베디드시스템에서 하드디스크를 이용한 운영체계 로딩 및업데이트 방법
KR100957095B1 (ko) * 2007-12-13 2010-05-13 현대자동차주식회사 플래시 메모리를 복구하는 임베디드 시스템 및 그 방법

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7246266B2 (en) * 2002-11-21 2007-07-17 Chris Sneed Method and apparatus for firmware restoration in modems
US8095783B2 (en) 2003-05-12 2012-01-10 Phoenix Technologies Ltd. Media boot loader
US7080243B2 (en) * 2003-05-15 2006-07-18 Hewlett-Packard Development Company, L.P. Method and system for comparing firmware images
US8001348B2 (en) * 2003-12-24 2011-08-16 Intel Corporation Method to qualify access to a block storage device via augmentation of the device's controller and firmware flow
KR100987628B1 (ko) * 2004-02-07 2010-10-13 엘지전자 주식회사 엠비디드 컨트롤러의 펌웨어 갱신방법 및 갱신용 펌웨어저장매체
US7376870B2 (en) * 2004-09-30 2008-05-20 Intel Corporation Self-monitoring and updating of firmware over a network
US7210033B1 (en) * 2004-10-15 2007-04-24 American Megatrends, Inc. Method, system, and computer-readable medium for enabling multi-segmented recovery of basic input output system program code in a computer system
JP2006260058A (ja) * 2005-03-16 2006-09-28 Fujitsu Ltd 計算機サーバ・システムにおけるファームウェアアップデート方法
US7426633B2 (en) * 2005-05-12 2008-09-16 Hewlett-Packard Development Company, L.P. System and method for reflashing disk drive firmware
KR100778293B1 (ko) * 2005-10-10 2007-11-22 삼성전자주식회사 디지털방송처리장치 및 디지털방송처리장치 부트로더의업그레이드 방법
TWI287743B (en) 2005-10-17 2007-10-01 Asustek Comp Inc Method for initiating a display chip
US7814479B2 (en) * 2005-12-14 2010-10-12 International Business Machines Corporation Simultaneous download to multiple targets
CN100424643C (zh) * 2005-12-20 2008-10-08 英业达股份有限公司 韧体加载装置
CN101093446B (zh) * 2006-06-21 2011-06-22 鸿富锦精密工业(深圳)有限公司 操作系统引导装置、方法及其应用的电脑系统
US7702896B1 (en) * 2006-10-03 2010-04-20 American Megatrends, Inc. Interactive firmware recovery
US7962736B1 (en) * 2006-10-03 2011-06-14 American Megatrends, Inc. Interactive pre-OS firmware update with repeated disabling of interrupts
KR100847560B1 (ko) * 2006-12-11 2008-07-21 삼성전자주식회사 다운로드되는 펌웨어의 오류 정정을 위한 회로 및 방법
US8271968B2 (en) * 2006-12-12 2012-09-18 Dell Products L.P. System and method for transparent hard disk drive update
US7761734B2 (en) * 2007-04-13 2010-07-20 International Business Machines Corporation Automated firmware restoration to a peer programmable hardware device
US7761735B2 (en) * 2007-04-13 2010-07-20 International Business Machines Corporation Automated firmware restoration to a peer programmable hardware device
US9069965B2 (en) * 2008-08-26 2015-06-30 Dell Products L.P. System and method for secure information handling system flash memory access
US8140837B2 (en) * 2008-11-05 2012-03-20 International Business Machines Corporation Automatically making selective changes to firmware or configuration settings
CN101739262A (zh) * 2008-11-11 2010-06-16 英业达股份有限公司 固件更新方法及应用其的电子装置
EP2427845B1 (en) * 2009-05-04 2020-01-01 Nokia Solutions and Networks Oy Mechanism for updating software
US9128799B2 (en) * 2009-11-09 2015-09-08 Bank Of America Corporation Programmatic creation of task sequences from manifests
US8972974B2 (en) * 2009-11-09 2015-03-03 Bank Of America Corporation Multiple invocation points in software build task sequence
US8584113B2 (en) * 2009-11-09 2013-11-12 Bank Of America Corporation Cross-updating of software between self-service financial transaction machines
US8671402B2 (en) * 2009-11-09 2014-03-11 Bank Of America Corporation Network-enhanced control of software updates received via removable computer-readable medium
US9176898B2 (en) * 2009-11-09 2015-11-03 Bank Of America Corporation Software stack building using logically protected region of computer-readable medium
US20110113226A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Distribution Of Software Updates
US8397230B2 (en) * 2009-11-09 2013-03-12 Bank Of America Corporation Software updates using delta patching
US8589302B2 (en) * 2009-11-30 2013-11-19 Intel Corporation Automated modular and secure boot firmware update
WO2011075139A1 (en) 2009-12-18 2011-06-23 Hewlett-Packard Development Company, L.P. Methods and devices for updating firmware of a component using a firmware update application
US20110238572A1 (en) * 2010-03-25 2011-09-29 Bank Of America Corporation Remote Control Of Self-Service Terminal
US8522322B2 (en) * 2010-09-22 2013-08-27 Intel Corporation Platform firmware armoring technology
CN102097133B (zh) * 2010-12-31 2012-11-21 中国人民解放军装备指挥技术学院 一种海量存储系统的可靠性测试系统及测试方法
GB2478505B (en) * 2011-01-17 2012-02-15 Ido Schwartzman Method and system for secure firmware updates in programmable devices
US8707019B2 (en) 2011-07-02 2014-04-22 Intel Corporation Component update using management engine
US8819330B1 (en) 2011-09-20 2014-08-26 Google Inc. System and method for updating a locally stored recovery image
US9880862B2 (en) 2012-03-31 2018-01-30 Intel Corporation Method and system for verifying proper operation of a computing device after a system change
KR20140099757A (ko) * 2013-02-04 2014-08-13 삼성전자주식회사 전자장치 및 전자장치의 펌웨어 업그레이드 방법
CN105122261B (zh) 2013-04-23 2020-04-24 惠普发展公司,有限责任合伙企业 从遭到破坏的系统启动代码中恢复的方法以及计算装置
WO2014175867A1 (en) 2013-04-23 2014-10-30 Hewlett-Packard Development Company, L.P. Verifying controller code and system boot code
CN103399520B (zh) * 2013-07-22 2015-12-23 深圳市汇川控制技术有限公司 用于可编程逻辑控制器系统的掉电数据存取方法及装置
EP3164796B1 (en) * 2014-07-02 2022-02-09 Hewlett-Packard Development Company, L.P. Firmware update
CN104573487B (zh) * 2014-09-10 2017-08-01 中电科技(北京)有限公司 一种基于uefi的终端实时定位系统和方法
CN104573500A (zh) * 2014-09-10 2015-04-29 中电科技(北京)有限公司 一种基于uefi的软件实时保护系统和方法
TWI515660B (zh) * 2014-12-17 2016-01-01 緯創資通股份有限公司 韌體變量更新方法
CN105988829A (zh) * 2015-01-30 2016-10-05 联想(北京)有限公司 一种bios管理方法、电子设备和系统
CN105988887A (zh) * 2015-01-31 2016-10-05 深圳市硅格半导体有限公司 存储卡数据处理系统及方法
US9740473B2 (en) 2015-08-26 2017-08-22 Bank Of America Corporation Software and associated hardware regression and compatibility testing system
GB2545010B (en) 2015-12-03 2018-01-03 Garrison Tech Ltd Secure boot device
CN105573877B (zh) * 2015-12-14 2019-09-24 联想(北京)有限公司 一种信息处理方法及电子设备
CN107577472B (zh) * 2017-07-28 2020-05-08 深圳市海邻科信息技术有限公司 软件安装方法、装置及计算机可读存储介质
CN109840095A (zh) * 2017-11-28 2019-06-04 比亚迪股份有限公司 储能系统的启动方法、储能设备及存储介质
CN110045971B (zh) * 2018-01-16 2023-03-24 浙江宇视科技有限公司 系统升级恢复方法及装置
US10437557B2 (en) * 2018-01-31 2019-10-08 Micron Technology, Inc. Determination of a match between data values stored by several arrays
US10776493B2 (en) 2018-10-12 2020-09-15 Hewlett Packard Enterprise Development Lp Secure management and execution of computing code including firmware
DE102018217969A1 (de) * 2018-10-19 2020-04-23 Robert Bosch Gmbh Recheneinrichtung und Betriebsverfahren hierfür
US11418335B2 (en) 2019-02-01 2022-08-16 Hewlett-Packard Development Company, L.P. Security credential derivation
US10963592B2 (en) 2019-02-05 2021-03-30 Western Digital Technologies, Inc. Method to unlock a secure digital memory device locked in a secure digital operational mode
WO2020167283A1 (en) 2019-02-11 2020-08-20 Hewlett-Packard Development Company, L.P. Recovery from corruption
US11580226B2 (en) 2019-02-21 2023-02-14 Cisco Technology, Inc. Hybrid firmware code protection
US11232210B2 (en) 2019-03-26 2022-01-25 Western Digital Technologies, Inc. Secure firmware booting
US11169819B2 (en) * 2019-05-01 2021-11-09 Dell Products L.P. Information handling system (IHS) and method to proactively restore firmware components to a computer readable storage device of an IHS
EP3742295A1 (en) * 2019-05-23 2020-11-25 NXP USA, Inc. Automatic firmware rollback
US11016755B2 (en) * 2019-07-31 2021-05-25 Dell Products L.P. System and method to secure embedded controller flashing process
US10997297B1 (en) 2019-12-06 2021-05-04 Western Digital Technologies, Inc. Validating firmware for data storage devices
US10809944B1 (en) 2020-01-22 2020-10-20 Cypress Semiconductor Corporation Memory device resilient to cyber-attacks and malfunction

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1254937B (it) * 1991-05-06 1995-10-11 Aggiornamento dinamico di memoria non volatile in un sistema informatico
US5878256A (en) * 1991-10-16 1999-03-02 International Business Machine Corp. Method and apparatus for providing updated firmware in a data processing system
GB2290890B (en) * 1994-06-29 1999-03-24 Mitsubishi Electric Corp Information processing system
US6282647B1 (en) * 1999-06-02 2001-08-28 Adaptec, Inc. Method for flashing a read only memory (ROM) chip of a host adapter with updated option ROM bios code
US6658563B1 (en) * 2000-05-18 2003-12-02 International Business Machines Corporation Virtual floppy diskette image within a primary partition in a hard disk drive and method for booting system with virtual diskette
US7055148B2 (en) * 2000-12-07 2006-05-30 Hewlett-Packard Development Company, L.P. System and method for updating firmware
JP2002244874A (ja) * 2001-02-15 2002-08-30 Toshiba Corp 情報処理装置およびファームウェア更新方法
US7069431B2 (en) * 2001-07-31 2006-06-27 Lenovo ( Singapore) Pte Ltd. Recovery of a BIOS image
US7243347B2 (en) * 2002-06-21 2007-07-10 International Business Machines Corporation Method and system for maintaining firmware versions in a data processing system
US7143275B2 (en) * 2002-08-01 2006-11-28 Hewlett-Packard Development Company, L.P. System firmware back-up using a BIOS-accessible pre-boot partition
US20040030877A1 (en) * 2002-08-06 2004-02-12 Aleksandr Frid Using system BIOS to update embedded controller firmware

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100758292B1 (ko) * 2003-05-06 2007-09-13 레노보(베이징)리미티드 컴퓨터 오퍼레이팅 시스템의 복구방법
KR100729091B1 (ko) * 2005-12-01 2007-06-14 주식회사 대우일렉트로닉스 콤보 시스템의 롬 커렉션 방법
KR100729090B1 (ko) * 2005-12-01 2007-06-14 주식회사 대우일렉트로닉스 콤보 시스템의 롬 커렉션 방법
KR100748206B1 (ko) * 2006-01-24 2007-08-09 주식회사 렛스비전 임베디드장치의 펌웨어 업그레이드 방법
KR100775887B1 (ko) * 2007-07-31 2007-11-13 주식회사 셀런 임베디드시스템에서 하드디스크를 이용한 운영체계 로딩 및업데이트 방법
KR100957095B1 (ko) * 2007-12-13 2010-05-13 현대자동차주식회사 플래시 메모리를 복구하는 임베디드 시스템 및 그 방법

Also Published As

Publication number Publication date
US20040076043A1 (en) 2004-04-22
CN1506813A (zh) 2004-06-23
WO2004038561A3 (en) 2004-12-23
TW200428196A (en) 2004-12-16
JP2004145886A (ja) 2004-05-20
WO2004038561A2 (en) 2004-05-06

Similar Documents

Publication Publication Date Title
KR20040034540A (ko) 대용량 저장 디바이스로 부터 펌웨어의 신뢰성 있고안전한 업데이트와 복구
US20040030877A1 (en) Using system BIOS to update embedded controller firmware
US8271833B2 (en) Method, system and article of manufacture for system recovery
US6711675B1 (en) Protected boot flow
EP2638466B1 (en) Software updating process for an embedded device
US7827376B2 (en) System and method for protecting hidden protected area of HDD during operation
US6308265B1 (en) Protection of boot block code while allowing write accesses to the boot block
US7519806B2 (en) Virtual partition for recording and restoring computer data files
EP1434135B1 (en) Method for backing up and recovering data in the hard disk of a computer
JP5889933B2 (ja) コンピュータの動作不良を防止する方法、コンピュータ・プログラムおよびコンピュータ
US5426775A (en) Method and a device for booting a computer at a programmed time
US7017004B1 (en) System and method for updating contents of a flash ROM
TWI390410B (zh) 不須執行電力開啟自我測試之操作系統傳送及啟動
US20010056518A1 (en) Data-processing apparatus and method of controlling the rewriting of a nonvolatile storage device
EP1634168A1 (en) Booting from non-volatile memory
US7069445B2 (en) System and method for migration of a version of a bootable program
TWI813869B (zh) 資料儲存裝置及維持資料儲存裝置正常開機運作的方法
CN102043662A (zh) 多操作系统的数据修改方法
KR20020097344A (ko) 컴퓨터 하드디스크 내 자료 복구 방법
US20060168440A1 (en) OS selection methods and computer systems utilizing the same
KR200258404Y1 (ko) 컴퓨터용하드디스크내자료보호및복원장치
US7080243B2 (en) Method and system for comparing firmware images
KR19990027843A (ko) 플래쉬롬 제어장치를 구비한 개인용 컴퓨터시스템 및 그 제어방법
JP3702233B2 (ja) 情報処理システムおよびプログラム実行モード制御方法
KR19990077915A (ko) 이중 운영 시스템을 가지는 컴퓨터 시스템

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application