KR102107843B1 - 펌웨어 업데이트 방법 및 이를 사용한 전자 기기 - Google Patents

펌웨어 업데이트 방법 및 이를 사용한 전자 기기 Download PDF

Info

Publication number
KR102107843B1
KR102107843B1 KR1020180160327A KR20180160327A KR102107843B1 KR 102107843 B1 KR102107843 B1 KR 102107843B1 KR 1020180160327 A KR1020180160327 A KR 1020180160327A KR 20180160327 A KR20180160327 A KR 20180160327A KR 102107843 B1 KR102107843 B1 KR 102107843B1
Authority
KR
South Korea
Prior art keywords
firmware
block
partition
auxiliary
electronic device
Prior art date
Application number
KR1020180160327A
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 페가트론 코포레이션
Application granted granted Critical
Publication of KR102107843B1 publication Critical patent/KR102107843B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Human Computer Interaction (AREA)

Abstract

전자 기기에 적용 가능한 펌웨어 업데이트 방법이 제공된다. 상기 전자 기기는 비휘발성 메모리를 포함하고, 상기 비휘발성 메모리는 펌웨어 파티션 및 예비 파티션을 포함한다. 상기 펌웨어 업데이트 방법은, 보조 펌웨어를 실행하는 단계 - 상기 펌웨어 파티션이 제1 블록 및 제2 블록을 포함하고, 상기 보조 펌웨어가 상기 제1 블록에 내재하며, 상기 비휘발성 메모리의 디스크 파티션 테이블을 포함함 -; 상기 전자 기기의 시스템 펌웨어에 상응하는 시스템 업데이트 파일을 수신하는 단계; 및 상기 시스템 펌웨어가 요구하는 저장 공간이 이용 가능한 저장 공간보다 클 경우, 상기 디스크 파티션 테이블 및 상기 시스템 업데이트 파일에 따라 상기 시스템 펌웨어를 상기 펌웨어 파티션의 제2 블록 및 상기 예비 파티션의 예비 블록 내에 기록하는 단계; 를 포함한다.

Description

펌웨어 업데이트 방법 및 이를 사용한 전자 기기{Firmware updating method and electronic device using the same}
관련 출원에 대한 상호 참조
본원은 2018년 1월 26일자 출원된 대만 특허출원 제107102820호를 기초로 우선권을 주장한 것이다. 위에 언급한 특허출원은 이로써 인용에 의해 본원에 보완되고 본원 명세서의 일부를 이룬다.
기술분야
본 개시내용은 펌웨어 업데이트 방법 및 이를 이용한 전자 기기에 관한 것이다.
통상적으로, 시스템 펌웨어가 업데이트될 때, 새로운 시스템 펌웨어의 크기가 원래 메모리에 시스템 펌웨어용으로 예약된 메모리 파티션 공간을 초과하면, 시스템 펌웨어용으로 예약된 메모리 파티션 공간을 확장시키기 위해 디스크 파티션 테이블이 조정되어야 한다. 디스크 파티션 테이블을 조정하기 위해서는, 부트로더(bootloader)가 업데이트되어야 한다. 그러나 부트로더를 업데이트하는 과정 동안에, 일단 정전(停電)과 같은 불확실한 요인이 발생하여 업데이트되고 있는 부트로더가 아직 완전하게 기록되지 않게 하는 경우 시스템이 제대로 부팅되지 않게 된다. 그러므로 사용자가 원격지에서 시스템 펌웨어 업데이트를 수행할 때 부트로더를 업데이트하는 것이 극히 위험할 수 있다. 그러한 위험은 새로운 시스템 펌웨어의 크기를 제한하는 것과 동일하고, 이는 일반적으로 시스템 실무자에게 상당한 불편함을 야기한다.
본 개시내용은 부트로더를 업데이트하지 않고 사용되지 않은 디스크 공간을 최대한 활용하게 하는 펌웨어 업데이트 방법 및 이를 이용한 전자 기기에 관한 것이다.
본 개시내용의 한 실시 예는 전자 기기에 적용 가능한 펌웨어 업데이트 방법을 제공하는 것이다. 전자 기기는 비휘발성 메모리를 포함하고, 비휘발성 메모리는 펌웨어 파티션 및 예비 파티션을 포함한다. 상기 펌웨어 업데이트 방법은 보조 펌웨어를 실행하는 단계 - 상기 펌웨어 파티션이 제1 블록 및 제2 블록을 포함하고, 상기 보조 펌웨어가 상기 제1 블록에 내재하며, 상기 비휘발성 메모리의 디스크 파티션 테이블을 포함함 -; 상기 전자 기기의 시스템 펌웨어에 상응하는 시스템 업데이트 파일을 수신하는 단계; 및 상기 시스템 펌웨어가 요구하는 저장 공간이 상기 제2 블록의 이용 가능한 저장 공간보다 클 경우, 상기 디스크 파티션 테이블 및 상기 시스템 업데이트 파일에 따라 상기 시스템 펌웨어를 상기 펌웨어 파티션의 제2 블록 및 상기 예비 파티션의 예비 블록 내에 기록하는 단계; 를 포함한다.
본 개시내용의 한 실시 예는 통신 요소, 비휘발성 메모리 및 제어기를 포함하는 전자 기기를 제공하는 것이다. 통신 요소는 데이터를 송신 및 수신하도록 구성된다. 비휘발성 메모리는 펌웨어 파티션 및 예비 파티션을 포함하며, 펌웨어 파티션은 제1 블록 및 제2 블록을 포함하고, 제1 블록은 보조 펌웨어를 포함하며, 보조 펌웨어는 비휘발성 메모리의 디스크 파티션 테이블을 포함한다. 제어기는 통신 요소 및 비휘발성 메모리에 연결되고, 보조 펌웨어를 실행하도록 구성되며, 시스템 펌웨어에 상응하는 시스템 업데이트 파일을 수신하도록 구성되고, 시스템 펌웨어가 요구하는 저장 공간이 제2 블록의 이용 가능한 저장 공간보다 클 경우, 상기 디스크 파티션 테이블 및 상기 시스템 업데이트 파일에 따라 상기 시스템 펌웨어를 상기 펌웨어 파티션의 제2 블록 및 상기 예비 파티션의 예비 블록 내에 기록하도록 구성된다.
위의 내용에 의하면, 본 개시내용의 실시 예들에 의해 제공되는 펌웨어 업데이트 방법 및 전자 기기에서는, 크기가 작은 보조 펌웨어가 메모리 파티션들 중 한 메모리 파티션에 설치되고, 보조 펌웨어를 사용하여 메모리 파티션들을 가로질러 스트라이딩(striding)함으로써 데이터 판독 및 기록이 수행된다. 이러한 방식으로, 부트 파티션의 부트로더를 업데이트하지 않고 메모리 파티션들 각각의 상이한 블록들을 유연하게 사용하여 메모리 사용 효율을 높이도록 이루어진다.
본 개시내용의 위에서 언급한 특징들 및 이점들 그리고 다른 특징들 및 이점들을 이해하기 쉽게 하기 위해, 이하에서는 도면들을 수반하는 몇몇 대표적인 실시 예가 구체적으로 설명된다.
첨부도면들은 본 발명의 이해를 돕기 위해 포함된 것이며 본원 명세서에 보완되어 본원 명세서의 일부가 된다. 첨부도면들은 본 발명의 실시 예들을 보여주고 있으며, 그 내용과 함께 본 발명의 원리를 설명하는 역할을 한다.
도 1은 본 발명의 한 실시 예에 따른 전자 기기의 개략적인 블록도이다.
도 2 내지 도 4는 본 발명의 한 실시 예에 따른 비휘발성 메모리를 개략적으로 보여주는 도면들이다.
도 5 내지 도 7은 본 발명의 한 실시 예에 따른 펌웨어 업데이트 방법을 보여주는 흐름도들이다.
(청구범위를 포함하는) 본 개시내용 전반에 사용된 "연결"이라는 용어는 임의의 직접적이고 간접적인 접속을 나타내는 것이다. 예를 들어, 제1 기기가 제2 기기에 연결되도록 기재된 경우에는, 제1 기기가 제2 기기에 직접 연결될 수도 있고 제1 기기가 다른 기기들 또는 접속 수단을 통해 제2 기기에 간접적으로 연결될 수도 있는 것으로 해석된다. 또한, 가능하면 어디서든, 도면들 및 설명에서 동일한 참조번호들을 사용하는 구성요소들/부재들/단계들은 동일하거나 유사한 부분들을 나타낸다. 다른 실시 예들에서 동일한 참조번호들을 사용하거나 동일한 용어들을 사용하는 구성요소들/부재들/단계들은 관련 설명들을 상호참조할 수 있다.
본 발명의 한 실시 예의 펌웨어 업데이트 방법에서는, 기능이 적고 공간 점유가 적은 보조 펌웨어가 설계되고 시스템 펌웨어용으로 예약된 메모리 파티션에 설치된다. 보조 펌웨어는 전체 메모리의 메모리 파티션 테이블을 포함하고, 그럼으로써 보조 펌웨어가 로드된 후, 보조 펌웨어의 메모리 파티션 테이블을 사용하여 전체 메모리의 메모리 파티션들 각각이 액세스될 수 있다. 이러한 방식으로, 시스템 펌웨어가 다운로드 된 후에, 시스템 펌웨어용으로 예약된 메모리 파티션의 공간이 불충분하지 않음이 발견되더라도, 보조 펌웨어에 따라 파티션들을 가로질러 스트라이딩(striding)함으로써 시스템 펌웨어를 설치하고 파티션들을 가로질러 스트라이딩함으로써 시스템 펌웨어를 로드하는데 메모리의 다른 파티션들이 사용될 수 있다. 특히, 본 발명의 한 실시 예의 보조 펌웨어는 외부 호스트와의 접속을 이루어서 보조 펌웨어가 단독으로 실행될 때 데이터가 송신 및 수신될 수 있게 하는 기능을 지닐 수 있다.
도 1은 본 발명의 한 실시 예에 따른 전자 기기의 개략적인 블록도이다. 도 1을 참조하면, 상기 실시 예의 전자 기기(100)는 통신 요소(110), 비휘발성 메모리(120) 및 제어기(130)를 포함하며, 제어기(130)는 통신 요소(110) 및 비휘발성 메모리(120)에 연결된다. 이하의 실시 예에서는, 전자 기기(100)가 예를 들어 케이블 모뎀이지만, 본 발명은 이에 국한되지 않는다. 다른 실시 예들에서, 전자 기기(100)는 또한, 스마트폰, 태블릿 PC, PDA(Personal Digital Assistant) 등과 같은 펌웨어를 설치하기 위한 비휘발성 메모리를 지니는 전자 기기일 수 있다.
상기 실시 예에서, 통신 요소(110)는 양방향 동축 케이블을 통해 외부 호스트(예를 들어, 펌웨어를 업데이트하도록 펌웨어 업데이트 파일을 전자 기기에 제공하기 위해 사용되는 원격 호스트)와의 접속을 확립하여 데이터를 송신 및 수신하도록 구성된다. 그러나 본 발명은 이에 국한되지 않는다. 다른 실시 예들에서, 통신 요소(110)는 또한, 유선 전화선, 광섬유 또는 무선 Wi-Fi, 블루투스 등을 통해 외부 호스트와의 접속을 확립할 수 있다.
상기 실시 예에서, 비휘발성 메모리(120)는 예를 들어 데이터의 저장용으로 사용되는 플래시 메모리이다. 이하에는 상기 실시 예의 비휘발성 메모리(120)의 메모리 파티션들 각각 및 그 사용 방법이 구체적으로 설명된다. 그러나 본 발명의 비휘발성 메모리(120)는 플래시 메모리인 것에 국한되지 않고, 통상의 기술자라면 실제 요구사항에 따라 비휘발성 메모리(120)를 구현할 수 있으며, 이는 반복해서 설명되지 않는다.
상기 실시 예에서, 제어기(130)는 전자 기기(100)의 전반적인 동작을 제어하도록 구성되고, 제어기(130)는 예를 들어 중앙 처리 장치(CPU), 또는 프로그램가능 범용 또는 전용 마이크로프로세서, DSP(Digital Signal Processor), 프로그램가능 제어기, ASIC(Application Specific Integrated Circuits), PLD(Programmable Logic Device) 또는 다른 유사한 기기 또는 상기 기기들의 조합이다(하지만 이에 국한되지 않는다).
도 2 내지 도 4는 본 발명의 한 실시 예에 따른 비휘발성 메모리를 개략적으로 보여주는 도면들이다. 도 2 내지 도 4를 참조하면, 상기 실시 예에서, 간결함을 위해, 비휘발성 메모리(120)는 비휘발성 메모리들(120a, 120b, 120c, 120d)로서 도시되어 있으며, 이들 각각은 본 발명의 펌웨어 업데이트 방법에서 비휘발성 메모리(120)의 상이한 상태들을 나타내기 위해 사용된다. 이하에서는 본 발명의 펌웨어 업데이트 방법이 비휘발성 메모리들(120a, 120b, 120c, 120d)을 참조하여 소개된다.
도 2를 참조하면, 한 실시 예에서, 펌웨어 업데이트 명령어가 수신되기 전에, 전자 기기(100)의 비휘발성 메모리(120)는 비휘발성 메모리(120a)의 상태에서 동작한다. 비휘발성 메모리(120a)는 서로 오버랩(overlap)되지 않는 부트 파티션(PTN0), 적어도 하나의 펌웨어 파티션(PTN1) 및 적어도 하나의 예비 파티션(spare partition)을 포함한다.
부트 파티션(PTN0)에는 부트로더가 기록되고 부트로더에는 디스크 파티션 테이블이 기록된다. 디스크 파티션 테이블은 예를 들어, 전자 기기에 의해 메모리 파티션들 각각에 액세스하는 기능을 제공하는데 사용된다. 전자 기기(100)가 부팅되거나 재부팅된 후에, 부트로더는 메모리 파티션들 중 하나로부터 펌웨어를 로드하고 디스크 파티션 테이블에 따라 상기 펌웨어를 실행하도록 로드된다. 이러한 방식으로, 전자 기기(100)가 정상적으로 부팅될 수 있다.
펌웨어 파티션(PTN1)은 원래 시스템 펌웨어용으로 예약된 비휘발성 메모리(120)의 메모리 파티션(예를 들어, 부트로더가 펌웨어를 로드할 것을 제어기(130)에 지시하는 메모리 파티션이지만 이에 국한되지 않음)이다. 일반적으로, 전자 기기(100)가 부팅되거나 재부팅된 후에, 부트로더는 펌웨어 파티션(PTN1)을 선택하여 내부에 기록된 시스템 펌웨어를 로드하고 이를 실행할 것을 지시할 수 있다. 이러한 방식으로, 전자 기기(100)가 부팅 후에 정상적으로 (예를 들어, 외부 호스트와의 접속을 확립하기 위해) 동작할 수 있다.
예비 파티션(PTN2)은 예를 들어 고정 데이터 블록 및 예비 블록을 포함한다(하지만 이에 국한되지는 않는다). 고정 데이터 블록은, 본 발명에 의해 국한되지 않는 데이터 또는 전자 기기(100) 자체의 하드웨어 정보 등을 전송하기 위해 전자 기기(100)에 의해 요구되는 검증 정보를 기록하는데 사용된다. 예비 블록은 예를 들어 예약되고 사용되지 않은 블록이다.
도 3을 참조하면, 한 실시 예에서, 전자 기기(100)가 시스템 펌웨어를 실행하는 과정 동안, 전자 기기(100)가 예를 들어 외부 호스트로부터 펌웨어 업데이트 명령어를 수신하고, 보조 펌웨어에 상응하는 보조 펌웨어 업데이트 파일을 수신한다. 그러므로 전자 기기(100)의 제어기(130)는 수신된 보조 펌웨어 업데이트 파일에 따라 보조 펌웨어를 펌웨어 파티션(PTN1) 내에 기록하고, 그 후에 전자 기기(100)를 재부팅한다. 여기서, 비휘발성 메모리(120)의 상태는 도 3의 비휘발성 메모리(120b)로서 도시되고, 펌웨어 파티션(PTN1)의 원래 시스템 펌웨어는 보조 펌웨어에 의해 중복 기록되어 실행될 수 없다. 상기 실시 예에서는, 보조 펌웨어에 의해 점유되는 펌웨어 파티션(PTN1)의 일부가 제1 블록(PTN1-1)으로서 언급되고, 상기 펌웨어 파티션(PTN1)의 나머지 일부가 제2 블록(PTN1-2)으로서 언급된다.
여기서 유념해야 할 점은 다른 한 실시 예에서 전자 기기(100)의 제조자가 예를 들어, 전자 기기(100)의 배송 전에 부트로더를 부트 파티션(PTN0) 내에 기록하고, 보조 펌웨어를 펌웨어 파티션(PTN1) 내에 기록하고, 그럼으로써 전자 기기(100)가 배송 후에 이미 비휘발성 메모리(120b)의 상태에 있게 한다는 점이다.
특히, 본 발명의 실시 예에 의해 제공되는 보조 펌웨어는 전자 기기(100)가 데이터를 저장하는 메모리 파티션에 따라 데이터에 액세스하게 하는 디스크 파티션 테이블을 포함하며, 이는 상이한 메모리 파티션들을 가로질러 스트라이딩함으로써 데이터에 액세스하는 것을 포함한다. 또한, 보조 메모리는 DOCSIS(Data-Over-Cable Service Interface Specification)의 접속 기능을 부가적으로 지니며, 이는 DOCSIS 사양에 따라 외부 호스트와의 접속을 확립하여 데이터를 송신 및 수신하도록 이루어진다.
전자 기기(100)가 비휘발성 메모리(120b)의 상태에서 재부팅된 후에, 부트 파티션(PTN0)의 부트로더는 펌웨어 파티션(PTN1)을 선택하여 판독을 수행할 것을 지시할 수 있다. 상기 실시 예에서, 제1 블록(PTN1-1)의 보조 펌웨어는 로드되고 실행되고, 그럼으로써 전자 기기가 DOCSIS 사양을 통해 외부 호스트와의 접속을 확립하게 된다.
한 실시 예에서, 보조 펌웨어를 실행하는 과정 동안, 전자 기기(100)는 부가적으로 외부 호스트로부터 펌웨어 업데이트 명령어를 수신하고, 보조 펌웨어에 상응하는 보조 펌웨어 업데이트 파일을 수신할 수 있다. 이러한 방식으로, 전자 기기(100)의 제어기(130)는 수신된 보조 펌웨어 업데이트 파일에 따라 보조 펌웨어를 펌웨어 파티션(PTN1) 내에 기록하고 그럼으로써 보조 펌웨어를 중복 기록하여 이를 업데이트할 수 있고, 그 후에 전자 기기(100)를 재부팅할 수 있다.
여기서 유념해야 할 점은 보조 펌웨어의 기능들이 시스템 펌웨어의 기능보다 적고, 그럼으로써 보조 펌웨어에 의해 요구되는 저장 공간이 제1 블록(PTN1)의 이용 가능한 저장 공간보다 크지 않게 된다는 점이다.
도 4를 참조하면, 다른 한 실시 예에서, 보조 펌웨어를 실행하는 과정 동안, 전자 기기(100)는 부가적으로 외부 호스트로부터 펌웨어 업데이트 명령어를 수신하고, 전자 기기(100)의 시스템 펌웨어에 상응하는 시스템 업데이트 파일을 수신할 수 있다.
시스템 업데이트 파일에 상응하는 시스템 펌웨어에 의해 요구되는 저장 공간이 제2 블록(PTN1-2)의 이용 가능한 저장 공간보다 클 경우, 전자 기기(100)의 제어기(130)는 수신된 시스템 업데이트 파일에 기초한 시스템 업데이트 파일 및 보조 펌웨어의 디스크 파티션 테이블에 따라 시스템 펌웨어를 펌웨어 파티션(PTN1)의 제2 블록(PTN1-2) 및 예비 파티션(PTN2) 내에 기록할 수 있다. 시스템 펌웨어가 성공적으로 업데이트된 후에, 비휘발성 메모리(120)의 상태는 도 4의 비휘발성 메모리(120c)로서 도시된다. 한 실시 예에서, 시스템 펌웨어를 기록하기 위해 사용되는 예비 파티션(PTN2)의 일부는 예비 블록(PTN2-2)으로서 언급되고 예비 파티션(PTN2)의 나머지 일부는 고정 데이터 블록(PTN2-1)으로서 언급된다. 이러한 방식으로, 비휘발성 메모리(120)가 도 4의 비휘발성 메모리(120c)의 상태에 있을 때, 펌웨어 파티션(PTN1)의 제1 블록(PTN1-1)의 보조 펌웨어가 정상적으로 실행될 수 있다. 또한, 2개의 파티션을 가로질러 스트라이딩함으로써 기록되고 펌웨어 파티션(PTN1)의 제2 블록(PTN1-2) 및 예비 파티션(PTN2)의 예비 블록(PTN2-2) 양자 모두에 있는 시스템 펌웨어가 또한 정상적으로 실행될 수 있다.
한편, 시스템 업데이트 파일에 상응하는 시스템 펌웨어에 의해 요구되는 저장 공간이 제2 블록(PTN1-2)의 이용 가능한 저장 공간보다 크지 않을 경우, 전자 기기(100)의 제어기(130)는 수신된 시스템 업데이트 파일에 기초한 시스템 업데이트 파일 및 보조 펌웨어의 디스크 파티션 테이블에 따라 시스템 펌웨어를 펌웨어 파티션(PIN1)의 제2 블록(PIN1-2) 내에 기록할 수 있다. 시스템 펌웨어가 성공적으로 업데이트된 후에, 비휘발성 메모리(120)의 상태가 도 4의 비휘발성 메모리(120d)로서 도시된다. 이러한 방식으로, 비휘발성 메모리(120)가 도 4의 비휘발성 메모리(120d)의 상태에 있을 때, 펌웨어 파티션(PTN1)의 제1 블록(PTN1-1)의 보조 펌웨어가 정상적으로 실행될 수 있다. 또한, 펌웨어 파티션(PTN1)의 제2 블록(PTN1-2)의 시스템 펌웨어가 또한 정상적으로 실행될 수 있다.
여기서 유념해야 할 점은 시스템 펌웨어의 업데이트가 실패되더라도, 펌웨어 파티션(PTN1)의 제1 블록(PTN1-1)의 보조 펌웨어가 여전히 정상적으로 실행될 수 있기 때문에, 전자 기기(100)가 재부팅된 후에, 펌웨어 파티션(PTN1)의 제1 블록(PTN1-1)의 보조 펌웨어가, 외부 호스트와 다시 접속하고 시스템 업데이트 파일을 다시 다운로드하여 시스템 펌웨어를 다시 업데이트하도록 위에 언급한 흐름에 따라 여전히 실행될 수 있다.
한 실시 예에서, 고정 데이터 블록(PTN2-1)은 데이터, 또는 전자 기기(100) 자체의 하드웨어 정보를 전송하기 위해 전자 기기(100)에 의해 요구되는 검증 정보를 기록하는데 사용되지만, 본 발명은 이에 국한되지 않는다. 예를 들어, 전자 기기(100)가 DOCSIS를 통해 외부 호스트와의 접속을 확립할 때 요구되는 인증 기관(Certificate Authority; CA) 인증 코드, 케이블 모뎀(Cable Modem; CM) 인증 코드, CM 공개키 등과 같은 정보가 고정 데이터 블록(PTN2-1) 내에 기록될 수 있지만, 본 발명은 이에 국한되지 않는다.
여기서 유념해야 할 점은 한 실시 예에서, 외부 호스트에 의해 제공된 시스템 업데이트 파일에 상응하는 시스템 펌웨어가 정상 시스템 펌웨어의 기능들을 지니는 것 외에, 상기 시스템 펌웨어가 디스크 파티션 테이블을 또 포함하고, 그럼으로써 전자 기기(100)가 상기 시스템 펌웨어를 수행할 때 데이터가 위치한 메모리 파티션들에 따라 전자 기기(100)가 데이터에 액세스할 수 있게 해 주고, 상기 디스크 파티션 테이블이 상이한 메모리 파티션들을 가로질러 스트라이딩함으로써 데이터에 액세스하는 것을 또 포함한다는 점이다. 또한, 외부 호스트에 의해 제공되는 시스템 업데이트 파일에 상응하는 시스템 펌웨어는 DOCSIS 접속 기능을 또 지니며, 이는 DOCSIS 사양을 통해 외부 호스트와의 접속을 확립하여 데이터를 송신 및 수신하도록 이루어진다. 이러한 방식으로, 비휘발성 메모리(120)가 복수 개의 유사한 펌웨어 파티션들(PTN1)을 지닐 경우에, 전자 기기(100)는 또한 펌웨어 파티션들(PTN1) 중 하나의 펌웨어 파티션 및 하나의 예비 파티션(PTN2)을 선택해 실행 중인 시스템 펌웨어의 디스크 파티션 테이블을 통해 시스템 펌웨어를 업데이트하여, 시스템 펌웨어를 선택된 펌웨어 파티션(PTN1) 및 예비 파티션(PTN2)에 기록 또는 설치할 수 있다.
도 5 내지 도 7은 본 발명의 한 실시 예에 따른 펌웨어 업데이트 방법을 보여주는 흐름도들이다. 도 5 내지 도 7에 제각기 도시된 흐름들 S100, S200 및 S300에 포함된 다양한 단계가 도 1 내지 도 4에 도시된 전자 기기(100)의 다양한 구성요소에 적용되고, 이하에서는 그의 세부내용이 도 1 내지 도 4에 도시된 다양한 구성요소 및 이들의 참조번호들을 참조하여 설명된다. 여기서 유념해야 할 점은 위에서 설명한 단계들 각각의 구현 세부내용이 이하의 내용에서 반복해서 설명되지 않는다는 점이다.
한 실시 예에서, 전자 기기(100)의 비휘발성 메모리(120)는 예를 들어, 보조 펌웨어를 기록하지 않고, 그 후 도 6의 흐름 S200이 보조 펌웨어를 펌웨어 파티션(PTN1)의 제1 블록(PTN1-1) 내에 기록하도록 먼저 실행된다.
도 6을 참조하면, 단계 S210에서, 전자 기기(100)는 통신 요소(110)를 통해 보조 펌웨어에 상응하는 보조 펌웨어 업데이트 파일을 수신한다. 예를 들어, 전자 기기(100)는 초기에 기존의 시스템 펌웨어를 실행하고 DOCSIS 사양을 통해 외부 호스트로부터의 보조 펌웨어에 상응하는 보조 펌웨어 업데이트 파일을 수신한다. 그리고 나서, 단계 S220에서, 제어기(130)는 보조 펌웨어 업데이트 파일에 따라 보조 펌웨어를 펌웨어 파티션(PTN1)의 제1 블록(PTN1-1) 내에 기록한다. 한 실시 예에서, 제어기(130)는 예를 들어, 보조 펌웨어에 의해 요구되는 공간에 따라 먼저 펌웨어 파티션(PTN1)을 제1 블록(PTN-1) 및 제2 블록(PTN1-2)으로 정의하고, 그 후 보조 펌웨어 업데이트 파일에 따라 보조 펌웨어를 제1 블록(PTN1-1) 내에 기록한다. 보조 펌웨어 업데이트 파일은 예를 들어, 보조 펌웨어를 설치하는데 요구되는 데이터 및 보조 펌웨어를 설치하는데 사용되는 메모리 파티션 등과 같은 정보를 포함하지만, 본 발명은 이에 국한되지 않는다.
한 실시 예에서, 펌웨어 파티션(PTN1)은 예를 들어, 전자 기기(100)에 의해 현재 실행되는 시스템 펌웨어를 기록하는데 사용되는 메모리 파티션이다. 다른 한 실시 예에서, 전자 기기(100)에 의해 현재 실행되는 시스템 펌웨어를 기록하는 메모리 파티션은 또한, 펌웨어 파티션(PTN1)과는 상이한 메모리 파티션일 수 있다. 보조 펌웨어가 펌웨어 파티션(PTN1)의 제1 블록(PTN1-1) 내에 기록된 후에, 도 5의 흐름 S100이 실행된다.
다른 한 실시 예에서, 전자 기기(100)의 비휘발성 메모리(120b)의 펌웨어 파티션(PTN1)의 제1 블록(PTN1-1)에는 이미 보조 펌웨어가 기록되어 있고, 그럼으로써 흐름 S100이 흐름 S200을 실행하지 않고 개시될 수 있다.
도 5를 참조하면, 제어기(130)가 전자 기기(100)를 부팅 또는 재부팅한 후에, 단계 S110에서, 제어기(130)가 보조 펌웨어를 실행한다. 한 실시 예에서, 제어기(130)는 흐름 S200이 종료된 후에 전자 기기(100)를 재부팅할 수 있고, 전자 기기(100)가 재부팅된 후에, 제어기(130)는 먼저 부트로더를 부트 파티션(PTN0) 내에 로드하고, 부트로더는 펌웨어 파티션(PTN1)의 제1 블록(PTN1-1) 내에 보조 펌웨어를 로드하고 이를 실행할 것을 지시할 수 있다. 다른 한 실시 예에서, 전자 기기(100)의 비휘발성 메모리(120b)의 펌웨어 파티션(PTN1)의 제1 블록(PTN1-1)에는 보조 펌웨어가 이미 기록되어 있고, 그럼으로써 전자 기기(100)가 부팅된 후에, 부트 파티션(PTN0) 내에 부트로더가 또 로드되고, 부트로더는 펌웨어 파티션(PTN1)의 제1 블록(PTN1-1) 내에 보조 펌웨어를 로드하고 이를 실행할 것을 지시할 수 있다.
단계 S120에서, 제어기(130)는 펌웨어 파티션의 제2 블록 및 예비 파티션의 예비 블록이 디스크 파티션 테이블에 따른 유효한 시스템 펌웨어를 포함하는지 여부를 결정한다. 상기 실시 예에서, 보조 펌웨어의 디스크 파티션 테이블은 디스크 파티션 테이블이 위치한 제1 블록(PIN-1), 시스템 펌웨어가 위치한 제2 블록(PTN1-2) 및 예비 블록(PTN2-2)을 나타낸다. 따라서, 제어기(130)는 제2 블록(PTN1-2) 및 예비 블록(PTN2-2)을 검사하여 유효한 시스템 펌웨어가 내부에 기록되어 있는지 여부를 결정할 수 있다. 한 실시 예에서, 시스템 펌웨어는 제2 블록(PTN1-2) 및 예비 블록(PTN2-2)에 기록되고 그럼으로써, 제어기(130)가 제2 블록(PTN1-2) 및 예비 블록(PTN2-2)을 검사하여 유효한 시스템 펌웨어가 내부에 기록되어 있는지 여부를 결정할 수 있다. 다른 한 실시 예에서, 시스템 펌웨어는 제2 블록(PTN1-2) 내에만 기록되고, 그럼으로써 제어기(130)가 제2 블록(PTN1-2)을 검사하여 유효한 시스템 펌웨어가 내부에 기록되어 있는지 여부를 결정할 수 있다. 그 검사 방법은 예를 들어, 체크섬(checksum)을 사용하는 것이지만, 본 발명은 이에 국한되지 않고, 통상의 기술자라면 실제 요구사항에 따라 검사 방법을 구현할 수 있다.
제2 블록(PTN1-2) 및 예비 블록(PTN2-2)이 유효한 시스템 펌웨어를 기록하는 경우(즉, 제2 블록(PTN1-2) 및 예비 블록(PTN2-2)이 시스템 펌웨어를 공동으로 기록하거나 제2 블록(PTN1-2)만이 시스템 펌웨어를 기록하는 경우, 단계 S130에서, 제어기(130)가 시스템 펌웨어를 실행하고, 단계 140에서 시스템 펌웨어를 통해 외부 호스트와 접속한다. 한 실시 예에서, 제어기(130)는 보조 펌웨어의 디스크 파티션 테이블에 따라 2개의 메모리 파티션을 가로질러 스트라이딩함으로써 펌웨어 파티션(PTN1)의 제2 블록(PTN1-2) 및 예비 파티션(PTN2)의 예비 블록(PTN2-2) 내에 기록된 시스템 펌웨어를 로드하거나, 또는 펌웨어 파티션(PTN1)의 제2 블록(PTN1-2)에만 기록된 시스템 펌웨어를 로드하고, 시스템 펌웨어를 실행할 수 있다. 그 후에, 제어기(130)는 예를 들어, 시스템 펌웨어의 DOCSIS 접속 기능에 기초한 DOCSIS 사양을 통해 외부 호스트와 접속된다.
제2 블록(PTN1-2) 및 예비 블록(PTN2-2)이 유효한 시스템 펌웨어를 기록하고 있지 않는 경우, 단계 S150에서, 제어기(130)는 보조 펌웨어를 통해 외부 호스트와 접속될 수 있다. 한 실시 예에서, 제어기(130)는 보조 펌웨어의 DOCSIS 접속 기능에 기초한 DOCSIS 사양을 통해 외부 호스트와 직접 접속될 수 있다.
상기 실시 예에서, 일단 전자 기기(100)가 DOCSIS 사양을 통해 외부 호스트와 접속되면, 전자 기기(100)는 외부 호스트로부터 업데이트 파일을 수신하여 도 7의 흐름 S300으로서 도시된 전자 기기의 펌웨어를 다운로드 및 업데이트 또는 설치할 수 있다.
도 7을 참조하면, 단계 S310에서, 전자 기기(100)는 통신 요소(110)를 통해 업데이트 파일을 수신한다. 한 실시 예에서, 전자 기기(100)는 예를 들어 DOCSIS 사양을 통해 외부 호스트로부터 펌웨어 업데이트 명령어 및 업데이트 파일을 수신한다. 수신된 펌웨어 업데이트 명령어 및 업데이트 파일은 예를 들어, 업데이트될 펌웨어 유형, 기록될 메모리 파티션 등을 포함하지만, 본 발명은 이에 국한되지 않는다.
단계 S320에서, 전자 기기(100)는 수신된 업데이트 파일이 전자 기기(100)의 시스템 펌웨어에 상응하는 시스템 업데이트 파일인지 보조 펌웨어 업데이트 파일인지 여부를 결정한다. 한 실시 예에서, 펌웨어 업데이트 명령어는 예를 들어, 업데이트 파일이 보조 펌웨어 업데이트 파일이거나 또는 시스템 업데이트 파일임을 직접 나타낸다. 다른 한 실시 예에서, 제어기(130)는 또한, 업데이트 파일의 헤드 파일을 검사하여 업데이트 파일이 보조 펌웨어 업데이트 파일인지 시스템 업데이트 파일인지 여부를 결정할 수 있다. 다시 말하면, 수신된 업데이트 파일이 보조 펌웨어 업데이트 파일인지 시스템 업데이트 파일인지 여부를 어떠한 방식으로 제어기(130)가 결정하는가는 본 발명에 의해 국한되지 않는다.
수신된 업데이트 파일이 보조 펌웨어 업데이트 파일이라고 제어기(130)가 결정하는 경우, 단계 S330에서, 제어기(130)는 디스크 파티션 테이블에 따라 펌웨어 파티션의 제1 블록의 보조 펌웨어를 업데이트한다. 이와는 달리, 수신된 업데이트 파일이 전자 기기(100)의 시스템 펌웨어에 상응하는 시스템 업데이트 파일이라고 제어기(130)가 결정하는 경우, 단계 S340에서, 제어기(130)는 수신된 시스템 업데이트 파일에 상응하는 시스템 펌웨어에 의해 요구되는 저장 공간을 펌웨어 파티션의 제2 블록의 이용 가능한 저장 공간과 비교한다. 시스템 펌웨어에 의해 요구되는 저장 공간이 제2 블록의 이용 가능한 저장 공간보다 클 경우, 단계 S350에서, 제어기(130)는 디스크 파티션 테이블에 따라 시스템 펌웨어를 펌웨어 파티션의 제2 블록 및 예비 파티션의 예비 블록 내에 기록한다. 이와는 달리, 시스템 펌웨어에 의해 요구되는 저장 공간이 제2 블록의 이용 가능한 저장 공간보다 크지 않을 경우, 단계 S360에서, 제어기(130)는 디스크 파티션 테이블에 따라 시스템 펌웨어를 펌웨어 파티션의 제2 블록 내에 기록한다. 보조 펌웨어의 업데이트 및 시스템 펌웨어의 기록에 대한 세부 내용은 위에서 설명하였고, 그럼으로써 이는 반복해서 설명되지 않는다. 일단 펌웨어(예를 들어, 보조 펌웨어 또는 시스템 펌웨어)의 업데이트가 완료되면, 제어기(130)는 전자 기기(100)를 재부팅하고 실행 및 접속을 위해 도 6의 흐름 S200으로 복귀할 수 있다.
전자 기기(100)의 비휘발성 메모리(120)(예를 들어, 비휘발성 메모리(120a, 120b, 120c 또는 120d))의 상태에 관계없이, 그리고 외부 호스트와의 접속이 DOCSIS 사양을 통해 확립되는 동안, 전자 기기(100)에 의해 현재 실행되는 보조 펌웨어 또는 시스템 펌웨어에 관계없이, 도 5 내지 도 7의 실시 예들에서 소개한 흐름들 S100, S200 및 S300에 기초하여, 업데이터 파일이 수신된 후에는, 펌웨어 업데이트가 수신된 업데이트 파일에 따라 성공적으로 수행될 수 있다.
여기서 유념해야 할 점은 본 발명의 실시 예들에서, 전자 기기(100)가 부팅되거나 재부팅된 후에, 부트로더가 여전히 로드되어 평소대로 실행되도록 부트 파티션(PTN0) 내의 부트로더를 변경하는 것이 불필요하다는 점이다. 특히, 본 발명의 실시 예들에서 원래의 메모리 파티션 할당 하에서 보조 펌웨어를 사용함으로써, 메모리 파티션들 각각 내의 상이한 블록들이 메모리 사용 효율을 높이기 위해 유연하게 사용된다.
요약하면, 본 발명의 실시 예들에 의해 제공되는 펌웨어 업데이트 방법 및 전자 기기에서, 크기가 작은 보조 펌웨어는 메모리 파티션들 중 한 메모리 파티션 내에 설치되고, 보조 펌웨어를 사용하여 메모리 파티션들을 가로질러 스트라이딩함으로써 데이터의 판독 및 기록이 수행된다. 이러한 방식으로, 메모리 파티션들의 원래의 할당이 변경되지 않는 경우, 메모리 파티션들 각각 내의 상이한 블록들이 메모리 사용 효율을 높이기 위해 유연하게 사용된다. 또한, 본 발명의 실시 예들에서는 부트 파티션 내의 부트로더가 변경되지 않고 보조 펌웨어 및 업데이트된 시스템 펌웨어 모두가 접속 기능을 지니기 때문에, 펌웨어 업데이트의 위험이 크게 감소된다.
본 발명의 범위 또는 사상을 벗어나지 않고 본 발명의 구조에 다양한 수정 및 변형이 이루어질 수 있음은 통상의 기술자에게 명백할 것이다. 위 내용의 견지에서, 본 발명의 수정 및 변형이 이하의 청구항들 및 그 등가물들의 범위 내에 있다면 본 발명이 본 발명의 수정 및 변형을 포함하고자 한 것이다.

Claims (14)

  1. 전자 기기에 적용 가능한 펌웨어 업데이트 방법으로서, 상기 전자 기기는 비휘발성 메모리를 포함하고, 상기 비휘발성 메모리는 펌웨어 파티션 및 예비 파티션을 포함하는, 펌웨어 업데이트 방법에 있어서,
    상기 펌웨어 업데이트 방법은,
    보조 펌웨어를 실행하는 단계 - 상기 펌웨어 파티션이 제1 블록 및 제2 블록을 포함하고, 상기 보조 펌웨어가 상기 제1 블록에 내재하며, 상기 비휘발성 메모리의 디스크 파티션 테이블을 포함함 -;
    상기 전자 기기의 시스템 펌웨어에 상응하는 시스템 업데이트 파일을 수신하는 단계; 및
    상기 시스템 펌웨어가 요구하는 저장 공간이 상기 제2 블록의 이용 가능한 저장 공간보다 클 경우, 상기 디스크 파티션 테이블 및 상기 시스템 업데이트 파일에 따라 상기 시스템 펌웨어를 상기 펌웨어 파티션의 제2 블록 및 상기 예비 파티션의 예비 블록 내에 기록하는 단계;
    를 포함하는, 펌웨어 업데이트 방법.
  2. 제1항에 있어서, 상기 저장 공간이 상기 이용 가능한 저장 공간보다 작거나 같을 경우, 상기 시스템 펌웨어가 상기 디스크 파티션 테이블 및 상기 시스템 업데이트 파일에 따라 상기 펌웨어 파티션의 제2 블록 내에 기록되는, 펌웨어 업데이트 방법.
  3. 제1항에 있어서, 상기 펌웨어 업데이트 방법은,
    상기 보조 펌웨어를 실행하는 단계 후에,
    상기 디스크 파티션 테이블에 따라 상기 펌웨어 파티션의 제2 블록 및 상기 예비 파티션의 예비 블록으로부터 상기 시스템 펌웨어를 로드하고 상기 시스템 펌웨어를 실행하는 단계;
    를 부가적으로 포함하는, 펌웨어 업데이트 방법.
  4. 제1항에 있어서, 상기 시스템 펌웨어는 상기 디스크 파티션 테이블을 포함하는, 펌웨어 업데이트 방법.
  5. 제1항에 있어서, 상기 펌웨어 업데이트 방법은,
    상기 보조 펌웨어에 상응하는 보조 펌웨어 업데이트 파일을 수신하는 단계; 및
    상기 보조 펌웨어 업데이트 파일에 따라 상기 보조 펌웨어를 상기 펌웨어 파티션의 제1 블록 내에 기록하는 단계;
    를 부가적으로 포함하는, 펌웨어 업데이트 방법.
  6. 제1항에 있어서, 상기 전자 기기는 케이블 모뎀이고, 상기 보조 펌웨어는 DOCSIS(Data-Over-Cable Service Interface Specification) 접속 기능을 포함하며, 상기 시스템 업데이트 파일은 상기 DOCSIS 접속 기능을 통해 수신되는, 펌웨어 업데이트 방법.
  7. 제1항에 있어서, 상기 펌웨어 파티션 및 상기 예비 파티션은 서로 오버랩(overlap)되지 않으며, 상기 제1 블록 및 상기 제2 블록은 서로 오버랩되지 않는, 펌웨어 업데이트 방법.
  8. 전자 기기에 있어서,
    상기 전자 기기는,
    데이터를 송신 및 수신하도록 구성된 통신 요소;
    펌웨어 파티션 및 예비 파티션을 포함하는 비휘발성 메모리 - 상기 펌웨어 파티션은 제1 블록 및 제2 블록을 포함하고, 상기 제1 블록은 보조 펌웨어를 포함하며, 상기 보조 펌웨어는 비휘발성 메모리의 디스크 파티션 테이블을 포함함 -;

    상기 통신 요소 및 상기 비휘발성 메모리에 연결된 제어기;
    를 포함하며,
    상기 제어기는,
    상기 보조 펌웨어를 실행하도록 구성되고,
    시스템 펌웨어에 상응하는 시스템 업데이트 파일을 수신하도록 구성되며,
    상기 시스템 펌웨어가 요구하는 저장 공간이 상기 제2 블록의 이용 가능한 저장 공간보다 클 경우, 상기 디스크 파티션 테이블 및 상기 시스템 업데이트 파일에 따라 상기 시스템 펌웨어를 상기 펌웨어 파티션의 제2 블록 및 상기 예비 파티션의 예비 블록 내에 기록하도록 구성되는, 전자 기기.
  9. 제8항에 있어서, 상기 저장 공간은 상기 이용 가능한 저장 공간보다 작거나 같을 경우, 상기 제어기는 상기 디스크 파티션 테이블 및 상기 시스템 업데이트 파일에 따라 상기 시스템 펌웨어를 상기 펌웨어 파티션의 제2 블록 내에 기록하도록 구성되는, 전자 기기.
  10. 제8항에 있어서, 상기 제어기가 상기 보조 펌웨어를 실행한 후에,
    상기 제어기는,
    상기 디스크 파티션 테이블에 따라 상기 펌웨어 파티션의 제2 블록 및 상기 예비 파티션의 예비 블록으로부터 상기 시스템 펌웨어를 로드하고 상기 시스템 펌웨어를 실행하도록 부가적으로 구성되는, 전자 기기.
  11. 제8항에 있어서, 상기 시스템 펌웨어는 상기 디스크 파티션 테이블을 포함하는, 전자 기기.
  12. 제8항에 있어서, 상기 제어기는 부가적으로,
    상기 보조 펌웨어에 상응하는 보조 펌웨어 업데이트 파일을 수신하도록 구성되고,
    상기 보조 펌웨어 업데이트 파일에 따라 상기 보조 펌웨어를 상기 펌웨어 파티션의 제1 블록 내에 기록하도록 구성되는, 전자 기기.
  13. 제8항에 있어서, 상기 전자 기기는 케이블 모뎀이고, 상기 보조 펌웨어는 DOCSIS(Data-Over-Cable Service Interface Specification) 접속 기능을 포함하며, 상기 제어기는 상기 DOCSIS 접속 기능을 통해 상기 시스템 업데이트 파일을 수신하는, 전자 기기.
  14. 제8항에 있어서, 상기 펌웨어 파티션 및 상기 예비 파티션은 서로 오버랩되지 않으며, 상기 제1 블록 및 상기 제2 블록은 서로 오버랩되지 않는, 전자 기기.
KR1020180160327A 2018-01-26 2018-12-12 펌웨어 업데이트 방법 및 이를 사용한 전자 기기 KR102107843B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW107102820 2018-01-26
TW107102820A TWI722269B (zh) 2018-01-26 2018-01-26 韌體更新方法及使用此方法的電子裝置

Publications (1)

Publication Number Publication Date
KR102107843B1 true KR102107843B1 (ko) 2020-05-29

Family

ID=64564569

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180160327A KR102107843B1 (ko) 2018-01-26 2018-12-12 펌웨어 업데이트 방법 및 이를 사용한 전자 기기

Country Status (6)

Country Link
US (1) US11042365B2 (ko)
EP (1) EP3518097B1 (ko)
JP (1) JP6752863B2 (ko)
KR (1) KR102107843B1 (ko)
CN (1) CN110083380A (ko)
TW (1) TWI722269B (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10860307B2 (en) * 2019-04-24 2020-12-08 Dell Products, L.P. Fragmented firmware storage system and method therefor
CN110780890B (zh) * 2019-10-24 2023-06-06 百度在线网络技术(北京)有限公司 系统升级方法、装置、电子设备和介质
TWI726477B (zh) * 2019-11-06 2021-05-01 神雲科技股份有限公司 伺服器裝置及其可程式化邏輯單元之避免韌體更新失敗後無法再次更新之方法
TWI736074B (zh) * 2019-12-20 2021-08-11 瑞昱半導體股份有限公司 周邊裝置及其驗證更新方法
US11216269B2 (en) * 2020-01-09 2022-01-04 Dell Products L.P. Systems and methods for update of storage resource firmware
CN111522566B (zh) * 2020-04-23 2023-08-01 Oppo(重庆)智能科技有限公司 一种系统升级方法、终端及存储介质
CN113703816B (zh) * 2020-05-19 2023-06-06 佛山市顺德区顺达电脑厂有限公司 服务器装置及其避免韧体无法再次更新之方法
CN112199109B (zh) * 2020-10-16 2022-07-19 杭州觅睿科技股份有限公司 一种固件升级方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110121678A (ko) * 2009-01-05 2011-11-08 쌘디스크 코포레이션 비휘발성 메모리에서 예비 블록 관리 방법
KR20130055936A (ko) * 2011-11-21 2013-05-29 웹싱크 주식회사 펌웨어 업데이트 방법 및 이를 위한 장치
KR20160089329A (ko) * 2014-12-22 2016-07-27 시아오미 아이엔씨. 펌웨어 복원 방법, 장치, 단말기, 프로그램 및 기록매체

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5317706A (en) * 1989-11-15 1994-05-31 Ncr Corporation Memory expansion method and apparatus in a virtual memory system
CA2357382A1 (en) * 2001-09-17 2003-03-17 Soma Networks, Inc. Software update method, apparatus and system
US7231504B2 (en) * 2004-05-13 2007-06-12 International Business Machines Corporation Dynamic memory management of unallocated memory in a logical partitioned data processing system
GB2418751A (en) * 2004-10-02 2006-04-05 Hewlett Packard Development Co Managing memory across a plurality of partitions
WO2007117514A1 (en) * 2006-03-31 2007-10-18 Hewlett-Packard Company Mobile device capable of multiple updates
US7783763B2 (en) * 2006-06-06 2010-08-24 International Business Machines Corporation Managing stateful data in a partitioned application server environment
JP2008217202A (ja) * 2007-03-01 2008-09-18 Nec Corp ディスクアレイ装置及びファームウェア更新方法
US8479208B2 (en) * 2007-03-30 2013-07-02 Intel Corporation System partitioning to present software as platform level functionality including mode logic to maintain and enforce partitioning in first and configure partitioning in second mode
US20080263348A1 (en) * 2007-04-17 2008-10-23 Texas Instruments Incorporated Dynamic asymmetric partitioning of program code memory in network connected devices
US8850154B2 (en) * 2007-09-11 2014-09-30 2236008 Ontario Inc. Processing system having memory partitioning
US8539471B2 (en) * 2007-12-13 2013-09-17 Telefonaktiebolaget L M Ericsson (Publ) Updating firmware of an electronic device
WO2009156615A1 (fr) * 2008-06-02 2009-12-30 Awox Procede et dispositif de mise a jour d'application informatique
JP5342302B2 (ja) * 2009-03-30 2013-11-13 株式会社日立ソリューションズ ファームウェア更新システム、ファームウェア配信サーバ、及びプログラム
TW201102924A (en) * 2009-07-03 2011-01-16 Inventec Appliances Corp Embedded electronic device and method for updating firmware thereof
TW201118731A (en) * 2009-11-18 2011-06-01 Inventec Corp Method for upadating firmware of embedded system
US8589302B2 (en) * 2009-11-30 2013-11-19 Intel Corporation Automated modular and secure boot firmware update
US9003157B1 (en) * 2010-06-30 2015-04-07 Emc Corporation Techniques for dynamic data storage configuration in accordance with an allocation policy
US20120054734A1 (en) * 2010-08-31 2012-03-01 Apple Inc. Device software upgrade using a dynamically sized partition
US8566546B1 (en) * 2010-09-27 2013-10-22 Emc Corporation Techniques for enforcing capacity restrictions of an allocation policy
WO2012127266A1 (en) * 2011-03-23 2012-09-27 Sandisk Il Ltd. Storage device and method for updating data in a partition of the storage device
US8990548B2 (en) * 2011-04-11 2015-03-24 Intel Corporation Apparatuses for configuring programmable logic devices from BIOS PROM
DE102011102425A1 (de) * 2011-05-24 2012-11-29 Heidelberger Druckmaschinen Ag Simultanes Softwareupdate
EP2761476B1 (en) * 2011-09-30 2017-10-25 Intel Corporation Apparatus, method and system that stores bios in non-volatile random access memory
TWI537735B (zh) * 2011-12-16 2016-06-11 祥碩科技股份有限公司 電子裝置及其基本輸入輸出系統的更新裝置
US8924952B1 (en) * 2012-06-27 2014-12-30 Amazon Technologies, Inc. Updating software utilizing multiple partitions
US9274839B2 (en) * 2012-09-27 2016-03-01 Intel Corporation Techniques for dynamic physical memory partitioning
CN103118198B (zh) * 2013-02-05 2016-04-13 惠州Tcl移动通信有限公司 移动终端的固件升级方法及系统
US20140297714A1 (en) * 2013-04-01 2014-10-02 Gainspan Corporation Providing binary images customized for different users in memory space constrained environments
TW201504937A (zh) * 2013-07-31 2015-02-01 Ibm 由實體儲存裝置中所選分區所構成的虛擬儲存裝置
US8910868B1 (en) * 2013-11-27 2014-12-16 Square, Inc. Firmware management
WO2016076880A1 (en) * 2014-11-14 2016-05-19 Hewlett Packard Enterprise Development Lp Secure update of firmware and software
CN105701019A (zh) * 2014-11-25 2016-06-22 阿里巴巴集团控股有限公司 一种内存管理方法以及装置
US9729698B2 (en) * 2015-03-09 2017-08-08 Verizon Patent And Licensing Inc. Increasing user memory space on end-of-life mobile user devices
CN106708548A (zh) * 2015-11-13 2017-05-24 阿里巴巴集团控股有限公司 程序升级方法和终端设备
CN105843656B (zh) * 2016-04-22 2020-12-01 Tcl科技集团股份有限公司 磁盘空间不足的系统升级方法、终端设备及服务器
JP6753257B2 (ja) * 2016-10-04 2020-09-09 富士通株式会社 情報処理装置、情報処理システム、情報処理装置の制御方法および情報処理装置の制御プログラム
JP6696414B2 (ja) * 2016-12-05 2020-05-20 京セラドキュメントソリューションズ株式会社 画像処理装置
US10915331B2 (en) * 2017-08-04 2021-02-09 Qualcomm Incorporated Partitioning flash and enabling flexible boot with image upgrade capabilities

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110121678A (ko) * 2009-01-05 2011-11-08 쌘디스크 코포레이션 비휘발성 메모리에서 예비 블록 관리 방법
KR20130055936A (ko) * 2011-11-21 2013-05-29 웹싱크 주식회사 펌웨어 업데이트 방법 및 이를 위한 장치
KR20160089329A (ko) * 2014-12-22 2016-07-27 시아오미 아이엔씨. 펌웨어 복원 방법, 장치, 단말기, 프로그램 및 기록매체

Also Published As

Publication number Publication date
JP6752863B2 (ja) 2020-09-09
TWI722269B (zh) 2021-03-21
CN110083380A (zh) 2019-08-02
US20190235853A1 (en) 2019-08-01
EP3518097A3 (en) 2019-08-07
JP2019128946A (ja) 2019-08-01
EP3518097B1 (en) 2020-08-12
TW201933094A (zh) 2019-08-16
EP3518097A2 (en) 2019-07-31
US11042365B2 (en) 2021-06-22

Similar Documents

Publication Publication Date Title
KR102107843B1 (ko) 펌웨어 업데이트 방법 및 이를 사용한 전자 기기
JP5173818B2 (ja) 組込みコントローラを介するフラッシュストレージの初期化
US7391237B2 (en) Robust and economic solution for FPGA bitfile upgrade
US20040243992A1 (en) Update system capable of updating software across multiple FLASH chips
US8136108B2 (en) Updating firmware with multiple processors
CN104123153A (zh) 用于使用usb升级固件的装置与方法
CN110096300B (zh) 一种fpga程序文件备份管理系统、运行方法及升级方法
KR20200090010A (ko) 펌웨어 업데이트 방법, 이를 위한 전자 장치 및 저장 매체
EP2372565A1 (en) Method for managing USB devices
US7099967B2 (en) System and method for storing an image file in a computer system
WO2000067132A1 (en) Combination ata/linear flash memory device
KR100860402B1 (ko) 2단계 부트로더를 이용한 시스템 업그레이드 장치 및 방법
US20210326125A1 (en) Installing application program code on a vehicle control system
KR100734303B1 (ko) 시스템 프로그램 다운로드 방법
US7103687B2 (en) System and method for providing an image file in a computer system
KR101113342B1 (ko) 이동통신 단말기의 부트로더 버전 관리 방법
KR100753277B1 (ko) 이동통신 단말기의 프로그램 파일 병렬 다운로드 방법
KR101188711B1 (ko) 트렁크 브이오아이피 게이트웨이 시스템에서 멀티 이미지 구동 장치 및 이를 이용한 구동방법
CN114879995A (zh) 固件更新的方法和装置
CN114691539A (zh) 电子设备启动方法及电子设备
CN114020306A (zh) 一种硬盘固件的更新方法、装置、电子设备及存储介质
JP2018147285A (ja) 電子機器、起動方法およびプログラム
TW201303728A (zh) 軟體更新方法
KR20060115014A (ko) 낸드플래쉬와 그의 쓰기 제어방법

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant