KR20170017713A - 부트 로더 업데이트 펌웨어, 및 부트 로더 업데이트 방법 - Google Patents

부트 로더 업데이트 펌웨어, 및 부트 로더 업데이트 방법 Download PDF

Info

Publication number
KR20170017713A
KR20170017713A KR1020160073277A KR20160073277A KR20170017713A KR 20170017713 A KR20170017713 A KR 20170017713A KR 1020160073277 A KR1020160073277 A KR 1020160073277A KR 20160073277 A KR20160073277 A KR 20160073277A KR 20170017713 A KR20170017713 A KR 20170017713A
Authority
KR
South Korea
Prior art keywords
boot loader
firmware
update firmware
volatile memory
module
Prior art date
Application number
KR1020160073277A
Other languages
English (en)
Other versions
KR102358470B1 (ko
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 KR20170017713A publication Critical patent/KR20170017713A/ko
Application granted granted Critical
Publication of KR102358470B1 publication Critical patent/KR102358470B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

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

Abstract

본 발명의 실시 예들은 장치의 부트 로더 모듈을 업데이트하기 위한 부트 로더 업데이트 펌웨어, 부트 로더 업데이트 펌웨어를 제공하기 위한 방법 및 시스템, 부트 로더 업데이트 펌웨어를 사용하기 위한 방법을 포함한다. 부트 로더 업데이트 펌웨어는 불휘발성 메모리에 펌웨어를 설치하는 로직을 포함할 수 있다. 펌웨어는 업데이트된 부트 로더 모듈의 바이너리 이미지를 포함할 수 있다. 장치가 재부팅될 경우, 펌웨어가 활성화되어 불휘발성 메모리로 바이너리 이미지를 복사할 수 있다. 장치가 다시 재부팅될 때, 업데이트된 부트 로더 모듈이 활성화된다.

Description

부트 로더 업데이트 펌웨어, 및 부트 로더 업데이트 방법{BOOT LOADER UPDATE FIRMWARE, METHOD FOR UPDATING BOOT LOADER}
본 발명은 장치 업데이트에 관한 것으로써, 더욱 상세하게는 장치 내의 부트 로더를 업데이트하는 것에 관한 것이다.
부트 로더(boot loader)는 마이크로프로세서/컨트롤러 기반의 전자 장치들 내의 펌웨어의 상대적으로 작은 부분이다. 부트 로더는 플랫폼을 초기화하고, 장치 펌웨어를 프로세서들로 로드하고, 프로세서들을 실행하여 로드된 펌웨어와 함께 구동한다. 부트 로더는 일반적으로 생산 시설에서 EEPROM(Electrically Erasable Programmable Read-Only Memory)과 같은 영구 메모리(persistent memory)에 저장되고, 잦은 업데이트들 또는 필드 업데이트들이 계획되지 않는다.
가끔, 필드 사용 동안 문제들이 발견된 경우, 부트 로더를 업데이트하는 것이 필요할 수 있다. 예를 들어, 장치가 새로운 기능(new feature)을 지원할 수 있다. 그러나 이러한 새로운 기능들은 장치에 설치된 새로운 부트 로더를 요구한다. 또는 부트 로더의 교체를 필요하게 하는 에러가 이전의 부트 로더에서 발견될 수 있다. 일반적으로, 부트 로더를 업데이트하는 것은 중요한 프로세스이기 때문에, 부트 로더를 업데이트하는 것은 장치를 서비스 시설 또는 생산 시설로 배송하는 것을 요구한다. 부트 로더 교체가 수행되지 않고, 적절하게 모니터링되지 않는 경우, 장치가 완벽하게 동작하지 않는 벽돌(brick)이 될 수 있다. 더욱이 장치 제조자들은 비밀인 부트 로더를 업데이트하는데 사용되는 방법들을 종종 고려하고, 장치 부트 로더를 갱신하는 방법을 다른 업체들이 학습하는 것을 원하지 안는다.
장치 부트 로더들을 갱신하는 방법을 개선하기 위한 방식들에 대한 요구가 남아있다.
본 발명의 목적은 상술된 문제점을 해결하기 위한 것으로, 감소된 비용을 갖는 부트 로더 업데이트 방법 및 시스템을 제공하는데 있다.
본 발명의 실시 예에 따른 부트 로더 업데이트 펌웨어는 장치의 제1 불휘발성 메모리에 제1 펌웨어를 설치하도록 구성된 제1 로직, 및 부트 로더 모듈의 바이너리 이미지를 포함하고, 상기 제1 펌웨어는 상기 바이너리 이미지를 상기 장치의 제2 불휘발성 메모리에 저장하도록 구성된다.
본 발명의 실시 예에 따른 장치의 부트 로더 업데이트 방법은 상기 장치를 위한 부트 로더 모듈을 구성하는 단계, 상기 부트 로더 모듈의 바이너리 이미지를 생성하는 단계, 및 상기 바이너리 이미지 및 제1 펌웨어를 조합하여 부트 로더 업데이트 펌웨어를 형성하는 단계를 포함하고, 상기 부트 로더 업데이트 펌웨어는 상기 부트 로더 모듈을 상기 장치의 불휘발성 메모리로 복사하도록 구성된다.
본 발명의 실시 예에 따른 장치의 부트 로더 업데이트 방법은 상기 장치의 제1 불휘발성 메모리로 부트 로더 업데이트 펌웨어를 복사하는 단계, 상기 부트 로더 업데이트 펌웨어를 활성화하는 단계, 상기 부트 로더 업데이트 펌웨어를 사용하여 부트 로더 모듈의 바이너리 이미지가 상기 장치의 제2 불휘발성 메모리로 복사하는 단계, 및 상기 장치를 재부팅하여 상기 부트 로더 모듈을 사용하는 단계를 포함한다.
본 발명의 실시 예들은 장치의 부트 로더 모듈을 업데이트하기 위한 부트 로더 업데이트 펌웨어, 부트 로더 업데이트 펌웨어를 제공하기 위한 방법 및 시스템, 부트 로더 업데이트 펌웨어를 사용하기 위한 방법을 포함한다. 본 발명의 실시 예에 따르면, 감소된 비용으로 부트 로더 모듈이 업데이트될 수 있다.
도 1은 본 발명의 실시 예에 따른 부트 로더를 업데이트하는 장비를 갖춘 장치를 보여준다.
도 2는 본 발명의 다른 실시 예들에 따른 업데이트된 부트 로더들을 포함할 수 있는 다른 장치들을 보여준다.
도 3은 본 발명의 실시 예에 따른 도 1 및 도 2의 장치들에서 사용될 수 있는 부트 로더 업데이트 펌웨어의 상세도를 보여준다.
도 4는 본 발명의 실시 예에 따른 도 1의 장치에서 도 3의 부트 로더 업데이트 펌웨어의 동작의 결과를 개시하는 도 1의 모니터를 보여준다.
도 5는 본 발명의 실시 예에 따른 도 1 및 도 2의 장치들에서 사용하기 위한 도 3의 부트 로더 업데이트 펌웨어를 생성할 수 있는 부트 로더 펌웨어 이미지 빌드 도구를 보여준다.
도 6은 본 발명의 실시 예에 따른 도 3의 부트 로더 업데이트 펌웨어를 생성하기 위한 도 5의 부트 로더 펌웨어 이미지 빌드 도구를 사용하는 절차의 순서도를 보여준다.
도 7a 내지 도 7d는 본 발명의 실시 예에 따른 도 1 및 도 2의 장치들의 부트 로더를 업데이트하기 위한 도 3의 부트 로더 업데이트 펌웨어를 사용하는 절차의 순서도를 보여준다.
도 8은 도 1 내지 도 7을 참조하여 설명된 바와 같이 부트 로더의 필드 업데이트가 수행될 수 있는 장치를 보여준다.
본 발명의 기술적 사상이 첨부된 도면들을 참조하여 상세히 설명된다. 아래의 상세한 설명에서, 다양한 구체적이고 상세한 설명이 본 발명의 기술적 사상을 이해하는 데 도움을 주기 위하여 제공된다. 그러나 이 분야에서 숙련된 자들은 이러한 구체적인 상세한 설명 없이도 본 발명의 기술적 사상을 실시할 수 있다. 다른 예로서, 잘 알려진 방법들, 절차들, 구성 요소들, 회로들 및 네트워크들은 본 발명의 실시 예들을 불필요하게 모호하게 하지 않도록 상세하게 설명되지 않을 것이다.
제1, 제2 등의 용어들이 다양한 구성 요소들을 설명하기 위하여 사용되지만, 이러한 구성 요소들은 용어들에 의해 한정되지 않음은 자명하다. 이러한 용어들은 하나의 구성 요소들 다른 구성 요소와 식별하기 위해서만 사용된다. 예를 들어, 본 발명의 기술적 사상의 범위로부터 벗어나지 않으면서, 제1 모듈은 제2 모듈로 명명될 수 있으며, 마찬가지로 제2 모듈은 제1 모듈로 명명될 수 있다.
본 발명의 기술적 사상의 설명에서 사용되는 용어는 구체적인 실시 예들을 설명하기 위한 목적으로만 사용되며, 본 발명의 기술적 사상을 한정하는 것을 의도하지 않는다. 본 발명의 본문 및 첨부된 특허청구범위에서 사용되는 바와 같이, 단수 용어들은 다르게 명확하게 지칭되지 않는 한 복수 형태를 포함하는 것으로 의도된다. 본 발명의 기술적 사상의 설명에서 사용되는 "및/또는"의 용어는 연관된 아이템들의 하나 또는 그 이상의 어떠한 그리고 모든 가능한 조합들을 포함한다. 상세한 설명에서 사용되는 "포함한다"는 용어는 언급된 특성, 수, 단계들, 동작들, 및/또는 구성 요소들의 존재를 명시하며, 하나 또는 그 이상의 다른 특성, 수, 단계들, 동작들, 구성 요소들, 및/또는 이들의 그룹들의 존재 또는 추가를 배제하지 않는다. 도면들의 특징들 및 구성들은 필수적으로 계측되어 도시되지 않는다.
본 발명의 실시 예들은 소비자에 의해 필드에서 부트 로더를 업데이트하는 실행 가능한 옵션을 제공한다. 소비자는 일반적인 장치 펌웨어 업그레이드 방식을 사용하여 스페셜 펌웨어(special firmware)를 다운로드할 수 있다. (본문에서, "다운로드(download)"는 인터넷에서 웹사이트로부터 컨텐츠를 다운로드하거나, USB 키, CD-ROM, 또는 DVD-ROM과 같은 다른 소스로부터 컨텐츠를 액세스하거나, 또는 컨텐츠를 액세스하는 다른 방식을 가리킬 수 있다.) 스페셜 펌웨어는 부트 로더 업데이트(boot loader update)를 수행하고, 프로세스를 모니터링할 수 있다. 이러한 프로세스는 펌웨어에 의해 수행되기 때문에, 부트 로더 이미지 뿐만 아니라, 업데이트 방법 또한 감춰질 수 있다.
부트 로더 이미지는 스페셜 펌웨어에 내장될 수 있다. 스페셜 펌웨어는 부트 로더 업데이트 펌웨어라 불리며, 부트 로더를 업데이트하고 프로세스를 모니터링하기 위한 추가적인 정보를 포함할 수 있다. 모놀리식 펌웨어 이미지(monolithic firmware image)는 보안을 위한 인증키(authentication key)를 사용하여 서명될 수 있다. 펌웨어 이미지는 펌웨어 업데이트 절차를 사용하여 장치 펌웨어 파티션으로 업데이트될 수 있다. 장치의 재부팅은 부트 로더 업데이트 펌웨어가 실행되도록 할 수 있다. 부트 로더 업데이트 펌웨어는 부트 로더 이미지를 펌웨어 파티션으로부터 읽고, 불휘발성 메모리 내의 이전 부트 로더 이미지(old boot loader image)를 교체하고, 상태(status)를 개시할 수 있다. 만약 필요하다면, 장치 펌웨어는 펌웨어 업데이트 절차를 사용하여 어떤 적절한 버젼으로 업그레이드될 수 있다.
도 1은 본 발명의 실시 예에 따른 부트 로더를 업데이트하는 장비를 갖춘 장치를 보여준다. 도 1에서, 컴퓨터 시스템(105)이 도시된다. 컴퓨터 시스템(105)은 컴퓨터(110), 모니터(115), 키보드(120), 및 마우스(125)를 포함하는 것으로 도시된다. 그러나 당업자는 컴퓨터 시스템(105)이, 예를 들어, 프린터와 같은 다른 입력/출력 장치들과 같은 도시되지 않은 다른 구성들을 포함할 수 있음을 이해할 것이다. 더욱이, 컴퓨터 시스템(105)은 하나 또는 그 이상의 중앙 처리 유닛들(130), 메모리(135), 네트워크 어댑터(140) 등과 같은 일반적인 내부 구성들을 포함할 수 있다. 네트워크 어댑터(140)는 네트워크(미도시)와 연결하는데 사용될 수 있고, 부트 로더 업데이트 펌웨어를 다운로드할 수 있다. 당업자는 컴퓨터 시스템(105)이 직접적으로 또는 네트워크의 다른 타입들 중 어느 하나를 통해 다른 서버들 및/또는 컴퓨터 시스템들과 상호작용할 수 있음을 이해할 것이다. 네트워크의 다른 타입들은 LAN(Local Area Network), WAN(Wide Area Network), VPN(Virtual Private Network), 또는 인터넷을 포함한다. 이러한 네트워크 상에서 통신을 실행하기 위하여, 컴퓨터 시스템(105)은 데이터를 송신하고 수신하는 송신기/수신기(도 1에서 미도시)를 포함할 수 있다.
비록 도 1이 일반적인 컴퓨터 시스템으로써 컴퓨터 시스템(105)을 보여주고 있으나, 당업자는 컴퓨터 시스템(105)이, 예를 들어, 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨터, 개인용 디지털 단말기(PDA; personal digital assistant), 또는 스마트폰, 다른 가능한 것들과 같은 머신 또는 장치의 어떤 타입일 수 있음을 이해할 것이다. 도 2는 본 발명의 다른 실시 예에 따른 업데이트된 부트 로더들을 포함할 수 있는 다른 장치들을 예시적으로 보여준다. 도 2에서, 예시적인 다른 장치들은 스마트폰일 수 있는 휴대 전화기(205), 의료 장치(210), 및/또는 텔레비전(215)을 포함할 수 있다. 의료 장치(210)는 다른 가능한 것들 중 사람의 온도, 혈압, 맥박, 및/또는 산소 포화도, 심전도(ECG 또는 EKG), 또는 뇌전도(EEG)를 측정할 수 있는 의료 장치일 수 있다. 텔레비전(215)은 부트 로더 모듈의 필드 업데이트를 지원할 수 있는 다양한 텔레비전일 수 있다. 업데이트 가능한 부트 로더 모듈들을 포함할 수 있는 다른 장치들은 블루레이 디스크 플레이어와 같은 다른 개인 전자 장치들을 포함할 수 있다. 블루레이는 블루레이 협회의 상표이다.
도 1을 다시 참조하면, 컴퓨터(110)는 프로세서(130) 및 메모리(135)와 같은 일반적인 내부 구성요소들을 포함할 수 있다. 컴퓨터(110)는 CPU 시스템 버스, PCI 및/또는 다른 도터보드 슬롯들(daughterboard slots) 등과 같은 도 1에 도시되지 않은 다른 일반적인 구성들을 더 포함할 수 있다. 컴퓨터(110)는 불휘발성 메모리들(145, 150)을 더 포함할 수 있다. 불휘발성 메모리들(145, 150)은 펌웨어(155) 및 부트 로더(160)를 각각 저장할 수 있다. 비록 도 1이 불휘발성 메모리들(145, 150)을 별도의 요소들로써 도시하고 있으나, 본 발명의 실시 예들은 동일한 불휘발성 메모리를 사용하여 펌웨어(155) 및 부트 로더(160)를 모두 저장할 수 있다. 불휘발성 메모리들(145, 150)은 다른 가능한 것들 중 PROM(Programmable Read-Only Memory), EPROM(Erasable Programmable Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시 메모리, FRAM(ferroelectric Random Access Memory), PRAM(phase-change memory), 및 MRAM(magneto-resistive Random Access Memory)를 포함하는 불휘발성 메모리의 적절한 형태일 수 있다.
도 3은 본 발명의 실시 예에 따른 도 1 및 도 2의 장치들에서 사용될 수 있는 부트 로더 업데이트 펌웨어를 상세하게 보여준다. 도 3에서, 부트 로더 업데이트 펌웨어(305)가 도시된다. 부트 로더 업데이트 펌웨어(305)는 도 1의 부트 로더(160)를 새로운 부트 로더로 업데이트하는데 사용될 수 있는 펌웨어를 나타낸다. 이러한 결과를 달성하기 위하여, 부트 로더 업데이트 펌웨어(305)는 제1 로직(310)을 포함할 수 있다. 부트 로더 업데이트 펌웨어(305)가 사용자에 의해 실행될 경우, 제1 로직(310)은 제1 펌웨어(315)를 도 1의 불휘발성 메모리(145)에 설치할 수 있다. 제1 펌웨어(315)가 도 1의 불휘발성 메모리(145)에 설치되고, 컴퓨터 시스템(105)이 새로운 펌웨어를 로드하기 위하여 재부팅되는 경우, 제1 펌웨어(315)는 컴퓨터 시스템(105)에 의해 실행되어 새로운 부트 로더의 설치를 완료할 수 있다. 일반적으로, 펌웨어(155)는 컴퓨터 시스템(105)이 콜드-부팅된 이후에 불휘발성 메모리(145)로부터 읽어진다. 그러나, 요구되는 모든 것은 불휘발성 메모리(145)로부터 읽어지고 실행될 제1 펌웨어(315)를 위한 것이기 때문에, 제1 펌웨어(315)가 다른 과정에서 불휘발성 메모리(145)로부터 읽어지는 경우, 컴퓨터 시스템(105)의 콜드-부팅은 요구되지 않을 수 있다.
제1 펌웨어(315)는 부트 로더 바이너리 이미지(320)를 포함할 수 있다. 부트 로더 바이너리 이미지(320)는 새로운 부트 로더 모듈의 바이너리 이미지일 수 있다. 제1 펌웨어(315)가 실행될 경우, 제1 펌웨어(315)는 부트 로더 바이너리 이미지(320)를 도 1의 불휘발성 메모리(150)로 복사함으로써, 도 1의 부트 로더(160)를 교체한다. 도 1의 컴퓨터 시스템(105)이 도 1의 불휘발성 메모리(150)로부터 도 1의 부트 로더(160)를 읽는 방식으로 부팅되는 경우, (즉, 일반으로 컴퓨터 시스템(105)의 콜드-부팅을 통해, 그러나, 다른 상황들은 부트 로더(160)가 도 1의 불휘발성 메모리(150)로부터 읽어지는 것을 발생시키기에 충분할 수 있다.) 새로운 부트 로더가 실행될 수 있다. 부트 로더 바이너리 이미지(320)가 바이너리 이미지이기 때문에, 부트 로더 모듈의 컨텐츠는 부트 로더 모듈 비밀의 코드를 유지하여 비정기적인 검사(casual inspection)로부터 보호된다.
제1 펌웨어(315)는 서명(325) 및 버전(330)과 같은 다른 정보를 더 포함할 수 있다. 서명(325)은 정확한 부트 로더 업데이트 펌웨어(305)가 사용된 것을 검증하기 위하여 사용될 수 있다. 예를 들어, 서명(325)은 제3 자가 도 1의 불휘발성 메모리(150)로 그들의 부트 로더 모듈들을 설치하는 것을 방지하기 위하여, 도 1의 컴퓨터(110)의 제조업체의 특정한 인증키를 사용하여 생성될 수 있다. 서명(325)은 더욱 특정한 인증키들로부터 생성될 수 있다. 예를 들어, 서명(325)을 생성하는데 사용되는 인증키는 도 1의 컴퓨터 시스템(105)을 소유하는 사용자에 특정할 수 있다. 본 발명의 이러한 실시 예에서, 다른 클라이언트를 위해 생성된 부트 로더 업데이트 펌웨어(305)는 도 1의 불휘발성 메모리(150)에 부트 로더 모듈을 설치할 수 없을 것이다.
버전(330)은 도 1의 부트 로더 모듈(160)의 정확한 버전이 도 1의 불휘발성 메모리(150)에 설치되었는지 검증하기 위하여 사용될 수 있다. 버전(330)의 사용은 도 7a 내지 도 7d를 참조하여 이하에서 상세하게 설명된다.
본 발명의 일부 실시 예들에서, 부트 로더 업데이트 펌웨어(305)는 제2 로직(335)을 더 포함할 수 있다. 제2 로직(335)은 부트 로더 모듈의 인증된 버전이 도 1의 컴퓨터 시스템(105)의 도 1의 불휘발성 메모리(150)에 설치되는 것을 검증하기 위하여 서명(325)과 함께 사용될 수 있다. 이러한 결과를 달성하기 위하여, 제2 로직(335)은 인증키(340)를 포함할 수 있다. 예를 들어, 제2 로직(335)은 인증키(340)를 사용하여 제2 서명을 생성하고, 제2 서명 및 서명(325)을 비교할 수 있다. 두 서명들이 일치하는 경우, 서명(325)은 정확하고, 부트 로더 바이너리 이미지(320)의 설치가 수행될 수 있다. 이와 다른 경우, 서명(325)은 부적절하며, 부트 로더 바이너리 이미지(320)의 설치는 중단될 수 있다. 도 3이 제1 로직(310)으로부터 구분된 것으로 제2 로직(335)을 보여주나, 본 발명의 일부 실시 예들에서, 제1 로직(310) 및 제2 로직(335)은 단일 로직으로 조합될 수 있다.
본 발명의 일부 실시 예들에서, 부트 로더 업데이트 펌웨어(305)는 제3 로직(345)을 더 포함할 수 있다. 제3 로직(345)은, 제1 펌웨어(315)가 도 1의 불휘발성 메모리(150)에 부트 로더 바이너리 이미지(320)를 복사한 이후에, 도 1의 불휘발성 메모리(145)에 저장될 제2 펌웨어(350)를 더 포함할 수 있다. 도 1의 펌웨어(155)는 제1 펌웨어(315)로 교체되어 도 1의 부트 로더(160)의 갱신이 수행될 수 있다. 본 발명의 다른 실시 예들에서, 제3 로직(345)은 제조업체로부터 제2 펌웨어(350)를 다운로드할 수 있다. 제2 펌웨어(350)는 도 1의 불휘발성 메모리(145)에 설치될 수 있다.
도 4는 본 발명의 실시 예에 따른 도 1의 장치 상의 도 3의 부트 로더 업데이트 펌웨어(305)의 동작의 결과의 예시적인 메시지를 개시하는 도 1의 모니터(115)를 보여준다. 도 4에서, 결과(405)는 컴퓨터(110)의 부트 로더가 버전 1.4로 성공적으로 업데이트되었음을 보여준다. 다른 예시적인 메시지들은 클라이언트에게 부트 로더 업데이터가 실패하였으며, 클라이언트가 도움을 위하여 컴퓨터(110)의 제조업자에게 연락할 수 있음을 알리는 것을 포함할 수 있다.
도 4는 도 1의 컴퓨터(105)의 부트 로더의 업데이트를 위한 결과(405)를 표시하는 도 1의 모니터(115)를 보여주고 있으나, 장치는 이러한 메시지를 지원할 수 있는 경우, 결과(405)를 직접 표시할 수 있다. 예를 들어, 도 2의 장치(210)는 결과(405)와 같은 정보가 표시될 수 있는 빌트-인 디스플레이를 포함할 수 있다. 디스플레이 기능이 없는 장치들에 대하여, 결과(405)를 표시하는 것이 가능하지 않거나 또는 결과(405)는 텍스쳐 디스플레이 대신에 코드를 사용하는 것을 요구할 수 있다. 예를 들어, 장치는 결과(405)를 가리키기 위하여 깜빡일 수 있는 (백라이트 버튼과 같은) 빛을 포함할 수 있다. 이러한 장치가 결과를 가리킬 수 있는 하나의 방법은 부트 로더 업데이트가 성공한 경우 아무 동작을 수행하지 않고, 부트 로더 업데이트가 성공하지 않았음을 가리키기 위하여 특정 횟수만큼 빛을 깜빡이는 것이다.
도 5는 본 발명의 실시 예에 따른, 도 1 및 도 2의 장치들에서 사용을 위한 도 3의 부트 로더 업데이트 펌웨어(305)를 생성할 수 있는 부트 로더 이미지 빌드 도구을 보여준다. 도 5에서, 부트 로더 펌웨어 이미지 빌드 도구(505)는 부트 로더 바이너리 이미지(320), 제1 펌웨어(315), 및 인증키(340)(사용되는 경우)와 같은 요구되는 정보를 입력으로써 수신할 수 있다. 부트 로더 펌웨어 이미지 빌드 도구(505)는 이러한 요소들을 조합하여 부트 로더 업데이트 펌웨어(305)를 생성하기 위하여 컴파일러(510)를 사용할 수 있다. 예를 들어, 부트 로더 펌웨어 이미지 빌드 도구(505)는 인증키(340)를 사용하여 부트 로더 바이너리 이미지(320)에 대한 서명을 생성하고, 부트 로더 바이너리 이미지(320) 및 인증키(340)를 제1 펌웨어(315)(또는 서명의 검증이 별도의 로직에 의해 관리되는 경우, 제2 펌웨어(340) 내의 적절한 장소에 저장할 수 있고, 결과적으로, 부트 로더 업데이트 펌웨어(305)를 생성할 수 있다.
도 6은 본 발명의 실시 예에 따른 도 5의 부트 로더 펌웨어 이미지 빌드 도구(505)를 사용하여 도 3의 부트 로더 업데이트 펌웨어(305)를 생성하는 예시적인 절차의 순서도를 보여준다. 블록 605에서, 도 1의 부트 로더 모듈(160)이 구성될 수 있다. 본 발명의 다른 실시 예들에서, 다른 업체들은 도 1의 부트 로더 모듈(160)을 구성하는데 책임이 있을 수 있다. 본 발명의 다른 실시 예들에서, 도 1의 부트 로더 모듈(160)은 프로그래머에 의해 프로그램될 수 있다. 본 발명의 다른 실시 예들에서, 부트 로더 모듈(160)은 자동화 소프트웨어를 사용하여 개발될 수 있다. 자동화 소프트웨어는 문제의 장치에 대한 데이터를 사용하여 개발자들에 의해 준비된 데이터에 의해 가이드될 수 있다. 블록 610에서, 도 1의 부트 로더 모듈(160)의 도 3의 바이너리 이미지(320)가 생성될 수 있다. 바이너리 이미지(320)는 적절한 방식으로, 예를 들어, 소스 코드로부터 실행 가능한 코드를 생성함으로써 생성될 수 있다. 블록 615에서, 바이너리 이미지(320)는 제1 펌웨어(315)와 조합되어 도 3의 부트 로더 업데이트 펌웨어(305)를 생성할 수 있다. 블록 620에서, 도 3의 부트 로더 업데이트 펌웨어(305)는 도 3의 인증키(340)를 사용하여 서명될 수 있다. 블록 625에서, 도 3의 부트 로더 업데이트 펌웨어(305)는 도 1의 부트 로더 모듈(160)이 업데이트된 이후에, 업데이트된 펌웨어를 설치하도록 구성될 수 있다. 본 발명의 일부 실시 예들에서, 이러한 펌웨어 업데이트는 업데이트된 펌웨어를 다운로딩하고, 도 1의 부트 로더 모듈(160)이 업데이트된 이후에 도 1의 불휘발성 메모리(145)에 다운로드된 업데이트 펌웨어을 저장하는 도 1의 펌웨어(315)에 의해 달성될 수 있다. 본 발명의 다른 실시 예들에서, 도 3의 부트 로더 업데이트 펌웨어(305)는 도 3의 제3 로직(345)을 포함할 수 있다. 제3 로직(345)은 도 1의 부트 로더 모듈(160)이 업데이트된 이후에 도 3의 제2 펌웨어(350)를 설치할 수 있다. 블록 625는 점선(630)에 도시된 바와 같이 생략될 수 있다.
도 6(그리고 이하의 다른 순서도들)에서 본 발명의 일 실시 예가 도시된다. 그러나 당업자는 본 발명의 다른 실시 예들이 블록들의 순서를 변경하거나, 블록들을 생략하거나, 또는 도면에 도시되지 않은 연결들을 포함하는 것이 가능함을 이해할 것이다. 순서도들의 모든 변형들은 명확히 설명되든 되지 않든, 본 발명의 실시 예들인 것으로 고려된다.
도 7a 내지 도 7d는 본 발명의 실시 예에 따른 도 3의 부트 로더 업데이트 펌웨어(305)를 사용하여 도 1 및 도 2의 장치들의 도 1의 부트 로더 모듈(160)을 업데이트하는 예시적인 절차의 순서도를 보여준다. 도 7a을 참조하면, 블록 705에서, 도 1 및 도 2의 장치들(110, 205, 210, 215)은 도 3의 부트 로더 업데이트 펌웨어(305)를 다운로드할 수 있다. 예를 들어, 클라이언트의 명령에 의해 다운로드가 수행될 수 있다. 블록 710에서, 도 1 및 도 2의 장치들(110, 205, 210, 및 215)은 도 3의 부트 로더 업데이트 펌웨어(305)를 도 1의 불휘발성 메모리(145)로 복사할 수 있다. 블록 715에서, 도 1 및 도 2의 장치들(110, 205, 210, 215)은 클라이언트의 명령에 의해 재부팅될 수 있다. 블록(715)은 점선(720)에 도시된 바와 같이 생략될 수 있다. 도 1 및 도 2의 장치들(110, 205, 210, 215)의 구성에 따라, 도 1 및 도 2의 장치들(110, 205, 210, 215)은 웜 리부팅(warm reboot) 또는 콜드 리부팅(cold rebooting)을 요구할 수 있다. 블록 725에서, 도 1 및 도 2의 장치들(110, 205, 210, 215)은 도 1의 불휘발성 메모리(145)로부터 도 3의 부트 로더 업데이트 펌웨어(305)를 활성화할 수 있다.
블록 730(도 7b)에서, 도 3의 부트 로더 업데이트 펌웨어(305)는 도 3의 부트 로더 업데이트 펌웨어(305)가 서명되었는지 판별할 수 있다. 블록 735에서, 도 3의 부트 로더 업데이트 펌웨어(305)는 도 3의 부트 로더 업데이트 펌웨어(305)는 도 3의 서명(325)이 도 3의 인증키(340)를 사용하여 생성되었는지 판별할 수 있다. 둘 중 어느 하나에서, 테스트가 만족하지 않은 경우, 블록 740에서, 부트 로더 업데이트 펌웨어(305)는 도 1의 부트 로더 모듈(160)의 업데이트를 중단하고, 절차가 종료된다. 두 가지 경우 모두에서, 테스트들이 만족된 경우, 블록 745에서, 도 3의 부트 로더 업데이트 펌웨어(305)는 도 3의 바이너리 이미지(320)를 도 1의 불휘발성 메모리(150)로 복사할 수 있고, 이로 인하여, 도 1의 부트 로더 모듈(160)가 업데이트된다.
블록 750(도 7c)에서, 도 3의 부트 로더 업데이트 펌웨어(305)는 도 3의 바이너리 이미지(320)의 도 1의 불휘발성 메모리(150)로의 설치를 모니터링할 수 있다. 블록 755에서, 도 3의 부트 로더 업데이트 펌웨어(305)는 도 3의 바이너리 이미지(320)의 도 1의 불휘발성 메모리(150)의 설치가 성공했는지 판별할 수 있다.
도 3의 바이너리 이미지(320)의 설치가 성공하지 않은 경우, 고려될 수 있는 다른 대체적인 방법(alternatively approaches)이 존재한다. 일 예로써, 블록(760)에서, 도 3의 부트 로더 업데이트 펌웨어(305)는 도 3의 바이너리 이미지(320)를 도 1의 불휘발성 메모리(150)의 다른 어드레스에 저장하는 것을 시도할 수 있다. 그 이후에, 절차는 블록 755로 돌아간다. 도 1의 불휘발성 메모리(150)가, 예를 들어, 도 1의 불휘발성 메모리(150)가 플래시 메모리인 경우 발생할 수 있는 랜덤 액세스를 지원하는 경우, 도 1의 불휘발성 메모리(150)의 다른 어드레스에 도 3의 바이너리 이미지(320)를 저장하는 것을 시도하는 것이 유용할 수 있다. 다른 예에서, 블록 765에서, 도 3의 부트 로더 업데이트 펌웨어(305)는 클라이언트에게 도 1의 부트 로더 모듈(160)의 업데이트가 성공하지 않았음을 알리고, 이후에 절차가 종료된다.
반면에, 도 3의 바이너리 이미지(320)의 설치가 성공한 경우, 블록 770에서, 도 3의 부트 로더 업데이트 펌웨어(305)는 도 1의 부트 로더 모듈(160)의 버전(330)(업데이트 이후의)이 도 1의 부트 로더 모듈(160)의 정확한 버전인지 판별할 수 있다. 만약 아니라면, 절차는 블록 765에서, 클라이언트에게 도 1의 부트 로더 모듈(160)의 업데이터가 성공하지 못했음을 알릴 수 있다.
블록 775(도 7d)에서, 도 3의 부트 로더 업데이트 펌웨어(305)는 클라이언트에서 도 4의 결과(405)를 개시할 수 있다. 블록 780에서, 도 3의 부트 로더 업데이트 펌웨어(305)는 도 1 및 도 2의 장치들(110, 205, 210, 215)을 재부팅할 수 있다. 도 7a의 블록 715과 마찬가지로, 도 1 및 도 2의 장치들(110, 205, 210, 215)의 재부팅은 장치들(110, 205, 210, 215)에 따라 콜드 부팅 또는 웜 부팅일 수 있다. 이러한 재부팅은 도 1의 업데이트된 부트 로더 모듈(160)을 활성화할 수 있다. 블록 785에서, 도 1 및 도 2의 장치들(110, 205, 210, 215)은 도 1의 펌웨어(155)를 업데이트하기 위하여 제2 펌웨어를 다운로드할 수 있다. 블록 790에서, 도 1 및 도 2의 장치들(110, 205, 210, 215)은 다운로드된 제2 펌웨어를 도 1의 불휘발성 메모리(145)로 복사할 수 있다. 블록 795에서, 도 3의 부트 로더 업데이트 펌웨어(305)는 도 1 및 도 2의 장치들(110, 205, 210, 215)을 재부팅할 수 있다. 도 7a 및 도 7d의 블록 715 및 블록 780과 마찬가지로, 도 1 및 도 2의 장치들(110, 205, 210, 215)의 재부팅은 장치들(110, 205, 210, 215)에 따라 콜드 부팅 또는 웜 부팅일 수 있다. 이러한 재부팅은 도 1의 업데이트된 펌웨어(155)를 활성화할 수 있다.
본 발명의 실시 예들은 도 1의 부트 로더 모듈(160)을 업데이트하는 이전의 방법들보다 다양한 이점들을 갖는다. 클라이언트는 도 1의 부트 로더(160)를 업데이트하기 위한 새로운 도구 및 방법을 학습하지 않아도 된다. 도 1의 부트 로더 모듈(160)의 업데이트를 자동화함으로써, 인적 오류들(human errors)이 감소되고, 부트 로더 업데이트가 좀 더 신뢰성을 갖는다. 더욱이, 부트 로더 모듈(160)의 업데이트는 클라이언트 측에서 수행될 수 있고, 장치들(110, 205, 210, 215)을 제조업체 또는 서비스 시설로 배송하기 위한 시간 및 비용을 감소시킬 수 있다.
본 발명의 실시 예들은 펌웨어를 업데이트하는 현존하는 기법들을 활용할 수 있다. 다시, 클라이언트가 도 1의 부트 로더 모듈(160)을 업데이트하기 위한 새로운 기법을 학습하지 않아도 되기 때문에, 현존하는 기법들을 사용하는 것은 도 1의 부트 로더 모듈(160)의 업데이트를 단순화한다.
마지막으로, 도 1의 부트 로더 모듈(160)을 업데이트하는 방법 및 컨텐츠들이 객체 코드(object code)를 사용하여 자동적으로 수행되기 때문에, 본 발명의 실시 예들은 클라이언트에게 기밀의 정보를 공개하는 것을 방지한다.
이하의 설명은 본 발명의 특정 사상들이 구현될 수 있는 머신들 또는 적절한 머신의 개략적이고 일반적인 설명을 제공하기 위한 것이다. 도 8을 참조하면, 일반적으로, 머신 또는 머신들(105, 205, 210, 215)은 시스템 버스(805)를 포함한다. 시스템 버스(805)는 하나 또는 그 이상의 프로세서들(130), 메모리(135)(예를 들어, RAM, ROM, 또는 다른 상태 저장 매체), 메모리 컨트롤러(810), 스토리지 장치들(815), 사용자 인터페이스(820), 및 입력/출력 인터페이스 포트들과 연결된다. 입력/출력 포트들은 입력/출력 엔진(825)을 사용하여 관리될 수 있다. 머신 또는 머신들(105, 205, 210, 215)은 네트워크 커넥터(140)를 포함할 수 있다. 예를 들어, 네트워크 커넥터(140)는 이더넷 커넥터(Ethernet connector)일 수 있다. 클럭(830)은 시스템 버스(805)와 연결된 구성들의 동작을 조직화하기 위하여 사용될 수 있다.
머신 또는 머신들은 키보드, 마이크 등과 같은 종래의 입력 장치들로부터의 입력에 의해, 뿐만 아니라, 다른 머신들로부터 수신된 명령들, 가상 현실 환경과의 상효 작용, 생체 측정의 피드백, 또는 다른 입력 신호들에 의해, 적어도 일부에서, 제어될 수 있다. 본문에서 사용되는 바와 같이, "머신(machine)"의 용어는 단일 머신, 가상 머신, 또는 통신적으로 연결된 머신들, 가상 머신들, 또는 함께 동작하는 장치들의 시스템을 넓게 포함하는 것으로 간주된다. 예시적인 머신들은 개인용 컴퓨터들, 워크스테이션들, 서버들, 휴대용 컴퓨터들, 핸드헬드 장치들, 전화기들, 태블릿들 등과 같은 컴퓨팅 장치들뿐만 아니라 개인 또는 공공 운송(예를 들어, 자동차, 열차, 택시 등)과 같은 수송 장치들을 포함한다.
머신 또는 머신들은 프로그램 가능하거나 또는 프로그램 불가능한 로직 장치들 또는 어레이들, ASICs(Application Specific Integrated Circuits), 임베디드 컴퓨터들, 스마트 카드들, 등과 같은 임베디드 컨트롤러들을 포함할 수 있다. 머신 또는 머신들은 하나 이상의 원격 머신들과 네트워크 인터페이스, 모뎀, 또는 다른 통신 연결 수단들을 통하는 것과 같은 하나 이상의 연결들을 사용할 수 있다. 머신들은 물리적 및/또는 인트라넷, 인터넷, LAN(local area network), WAN(wide area network) 등과 같은 논리 네트워크의 방식에 의해 상호 연결될 수 있다. 당업자는 네트워크 통신이 다양한 유선 및/또는 RF(radio frequency), 위성, 초단파, IEEE(Institute of Electrical and Electronics Engineers) 802.11, Bluetooth®, 광학, 적외선, 케이블, 레이저 등을 포함하는 무선 단거리 또는 장거리 반송파 및 프로토콜들을 사용할 수 있음을 알 수 있을 것이다.
본 발명의 실시 예들은 기능들, 절차들, 데이터 구조들, 어플리케이션 프로그램들 등을 참조하거나 또는 그것들과 함께 설명될 수 있다. 연관된 데이터는 머신에 의해 액세스될 때, 로우-레벨 하드웨어 컨텍스트들 또는 요약 데이터 타입들을 정의하거나 또는 작업들을 수행하는 머신을 야기할 수 있다. 연관된 데이터는 예를 들어, RAM, ROM, 등과 같은 휘발성 및/또는 불휘발성 메모리, 또는 다른 저장 매체들에 저장될 수 있고 그리고 하드-드라이브들, 플로피 디스크들, 광학 저장 매체, 테이프들, 플래시 메모리, 메모리 스틱들, 디지털 비디오 디스크들, 생물학적 저장 매체 등을 포함하는 그것들의 연관된 저장 매체에 저장될 수 있다. 연관된 데이터는 물리적 및/또는 논리적 네트워크, 패킷의 형태, 직렬 데이터, 병렬 데이터, 전파 신호들 등을 포함하는 전송 환경을 통해 전달될 수 있고 그리고 압축되거나 또는 암호화된 포맷에서 사용될 수 있다. 연관된 데이터는 분산 환경에서 사용될 수 있고 그리고 기계 액세스를 위해 로컬 및/또는 원격으로 저장될 수 있다.
본 발명의 실시 예들은 하는 또는 그 이상의 프로세서들에 의해 실행 가능한 명령어들을 포함하는 유형의 비-일시적인 머신 판독 가능한 매체(tangible, non-transitory machine-readable medium)를 포함할 수 있다. 명령어들은 본문에 기재된 본 발명의 요소들을 수행하기 위한 명령어들을 포함한다.
도식화된 실시 예들을 참조하여 본 발명의 원리들이 설명되고 그리고 도식화 되었지만, 도식화된 실시 예들이 그와 같은 원리들을 벗어나지 않고 배열 및 구체적인 항목에서 수정될 수 있고, 어떠한 원하는 방식으로 조합될 수 있음을 알 수 있을 것이다. 그리고 비록 상술한 논의가 특정한 실시 예들에 초점을 맞추었지만, 다른 구성들도 고려될 수 있다. 특히, 본 명세서에서 "본 발명의 실시 예에 따른"이라는 표현 또는 그와 유사한 표현이 사용되었지만, 이러한 구는 일반적으로 가능한 참조 실시 예를 의미하는 것이지 본 발명을 특정한 실시 예의 구성들로 한정하고자 하는 것은 아니다. 본 명세서에서 사용된 바와 같이, 이러한 용어들은 다른 실시 예들로 조합될 수 있는 동일 또는 다른 실시 예들을 참조할 수 있다.
상술한 도식적인 실시 예들은 본 발명의 컨셉을 제한하는 것으로 이해되어서는 안된다. 비록 몇몇 실시 예들이 설명되었지만, 기술 분야에서 통상의 기술자는 본 발명의 이점들 및 새로운 시사를 벗어나지 않고 이러한 실시 예들이 가능한 다양한 수정들을 쉽게 알 수 있을 것이다. 따라서, 모든 그와 같은 수정들은 청구항에 의해 정의되는 본 발명의 컨셉의 범위 내에 포함될 것이다.
본 발명의 실시 예들은 한정 없이 이하의 스테이트먼트들로 확장될 수 있다.
스테이트먼트 1. 본 발명의 실시 예는 부트 로더 업데이트 펌웨어(305)를 포함한다. 상기 부트 로더 업데이트 펌웨어(305)는 장치(110, 205, 210, 215)의 제1 불휘발성 메모리(145)에 제1 펌웨어(315)를 설치하도록 구성되는 제1 로직(310); 및 부트 로더 모듈(160)의 바이너리 이미지(320)를 포함한다. 제1 펌웨어(315)는 상기 부트 로더 모듈(160)의 상기 바이너리 이미지(320)를 상기 장치(110, 205, 210, 215)의 제2 불휘발성 메모리(150)에 설치하도록 구성된다.
스테이트먼트 2. 본 발명의 실시 예는 스테이트먼트 1에 따른 상기 부트 로더 업데이트 펌웨어(305)를 포함한다. 상기 제1 펌웨어(315)는 상기 부트 로더 모듈(160)의 바이너리 이미지(320)를 포함한다.
스테이트먼트 3. 본 발명의 실시 예는 스테이트먼트 1에 따른 상기 부트 로더 업데이트 펌웨어(305)를 포함하고, 상기 부트 로더 업데이트 펌웨어(305)는 인증키(340)를 사용하여 상기 부트 로더 업데이트 펌웨어(305)에 적용되는 서명(325)을 인증하도록 구성되는 제2 로직(335)을 더 포함한다.
스테이트먼트 4. 본 발명의 실시 예는 스테이트먼트 3에 따른 상기 부트 로더 업데이트 펌웨어(305)를 포함한다. 상기 제2 로직(335)이 상기 서명(325)을 인증할 수 없는 경우, 상기 제2 로직(335)은 상기 부트 로더 업데이트 펌웨어(305)를 중단하도록 구성된다.
스테이트먼트 5. 본 발명의 실시 예는 스테이트먼트 3에 따른 상기 부트 로더 업데이트 펌웨어(305)를 포함한다. 상기 인증키(340)는 상기 장치(110, 205, 210, 215)를 소유한 클라이언트에 대하여 유일하다.
스테이트먼트 6. 본 발명의 실시 예는 스테이트먼트 1에 따른 부트 로더 업데이트 펌웨어(305)를 포함하고, 상기 부트 로더 업데이트 펌웨어(305)는 상기 제1 불휘발성 메모리(145)에 제2 펌웨어(350)를 저장하도록 구성되는 제3 로직(345)을 더 포함한다.
스테이트먼트 7. 본 발명의 실시 예는 스테이트먼트 6에 따른 상기 부트 로더 업데이트 펌웨어(305)를 포함한다. 상기 제3 로직(345)은 제2 펌웨어(350)가 상기 제1 불휘발성 메모리(145)에 설치된 이후에, 상기 장치(110, 205, 210, 215)를 재부팅하도록 구성된다.
스테이트먼트 8. 본 발명의 실시 예는 스테이트먼트 1에 따른 상기 부트 로더 업데이트 펌웨어(305)를 포함한다. 상기 제1 로직(310)은 상기 제1 펌웨어(315)를 설치한 이후에 상기 장치(110, 205, 210, 215)를 재부팅하도록 구성된다.
스테이트먼트 9. 본 발명의 실시 예는 스테이트먼트 1에 따른 상기 부트 로더 업데이트 펌웨어(305)를 포함한다. 상기 제1 로직(310)은 상기 장치(110, 205, 210, 215)의 상기 제2 불휘발성 메모리(150)의 상기 부트 로더 모듈(160)의 상기 바이너리 이미지(320)의 설치의 결과(405)를 개시하도록 구성된다.
스테이트먼트 11. 본 발명의 실시 예는 스테이트먼트 1에 따른 상기 부트 로더 업데이트 펌웨어(305)를 포함한다. 상기 제1 불휘발성 메모리(145) 및 상기 제2 불휘발성 메모리(150)는 동일한 불휘발성 메모리(145, 150)이다.
스테이트먼트 12. 본 발명의 실시 예는 부트 로더 펌웨어 이미지 빌드 도구(505)를 포함한다. 부트 로더 펌웨어 이미지 빌드 도구(505)는 부트 로더 모듈(160)의 바이너리 이미지(320); 장치(110, 205, 210, 215)의 불휘발성 메모리에 상기 부트 로더 모듈(160)을 설치하도록 구성되는 펌웨어(315) 로직; 상기 펌웨어(315) 로직 및 상기 부트 로더 모듈(160)의 바이너리 이미지(320)를 조합하여 부트 로더 업데이트 펌웨어(305)를 생성하도록 구성되는 컴파일러(510)를 포함한다.
스테이트먼트 13. 본 발명의 실시 예는 스테이트먼트 12에 따른 상기 부트 로더 펌웨어 이미지 빌드 도구(505)를 포함한다. 상기 컴파일러(510)는 상기 펌웨어(315) 내의 상기 부트 로더 모듈(160)의 상기 바이너리 이미지(320)를 포함하도록 구성된다.
스테이트먼트 14. 본 발명의 실시 예는 스테이트먼트 12에 따른 상기 부트 로더 펌웨어 이미지 빌드 도구(505)를 포함한다. 상기 부트 로더 펌웨어 이미지 빌드 도구(505)는 인증 키(340)를 더 포함한다. 상기 컴파일러(510)는 상기 인증키(340)를 사용하여 상기 부트 로더 업데이트 펌웨어를 서명하도록 구성된다.
스테이트먼트 15. 본 발명의 실시 예는 스테이트먼트 14에 따른 상기 부트 로더 펌웨어 이미지 빌드 도구(505)를 포함한다. 상기 인증키(340)는 상기 장치(110, 205, 210, 215)를 소유하는 클라이언트에 대해 유일하다.
스테이트먼트 16. 본 발명의 실시 예는 방법을 포함한다. 상기 방법은 장치(110, 205, 210, 215)를 위한 부트 로더 모듈(160)을 구성하는 단계(605); 상기 부트 로더 모듈(160)의 바이너리 이미지(320)를 생성하는 단계(610); 및 부트 로더 업데이트 펌웨어(305)를 형성하기 위하여 상기 부트 로더 모듈(160)의 상기 바이너리 이미지(320) 및 제1 펌웨어(315)를 조합하는 단계(615)를 포함한다. 상기 부트 로더 업데이트 펌웨어(305)는 상기 부트 로더 모듈(160)을 상기 장치(110, 205, 210, 215)d의 불휘발성 메모리로 복사하도록 구성된다.
스테이트먼트 17. 본 발명의 실시 예는 스테이트먼트 16에 따른 상기 방법을 포함하고, 상기 방법은 인증키(340)를 사용하여 상기 부트 로더 업데이트 펌웨어(305)를 서명하는 단계(620)를 더 포함한다.
스테이트먼트 18. 본 발명의 실시 예는 스테이트먼트 17에 따른 상기 방법을 포함하고, 인증키(340)를 사용하여 상기 부트 로더 업데이트 펌웨어(305)를 서명하는 단계(620)는 인증키(340)를 포함하는 부트 로더 업데이트 펌웨어(305)를 서명하는 단계(620)를 포함하고, 상기 인증키(340)는 장치(110, 205, 210, 215)를 소유한 클라이언트에 대하여 유일하다.
스테이트먼트 19. 본 발명의 실시 예는 스테이트먼트 16에 따른 상기 방법을 포함하고, 부트 로더 업데이트 펌웨어(305)를 형성하기 위하여 상기 부트 로더 모듈(160)의 상기 바이너리 이미지(320) 및 제1 펌웨어(315)를 조합하는 단계(615)는, 상기 제1 펌웨어(315)를 포함하는 상기 부트 로더 모듈(160)의 바이너리 이미지(320) 및 제2 펌웨어(350)를 조합하는 단계(615)를 포함한다. 상기 부트 로더 업데이트 펌웨어(305)가 상기 부트 로더 모듈(160)을 상기 장치(110, 205, 210, 215)의 상기 불휘발성 메모리로 복사한 이후에, 상기 부트 로더 업데이트 펌웨어(305)는 상기 제2 펌웨어(350)를 상기 장치(110, 205, 210, 215)의 제2 불휘발성 메모리(150)에 복사하도록 구성된다.
스테이트먼트 20. 본 발명의 실시 예는 스테이트먼트 19에 따른 상기 방법을 포함하고, 상기 부트 로더 업데이트 펌웨어(305)는 상기 부트 로더 업데이트 펌웨어(305)가 상기 부트 로더 모듈(160)을 상기 장치(110, 205, 210, 215)의 상기 불휘발성 메모리로 복사한 이후에, 상기 장치(110, 205, 210, 215)를 위한 제2 펌웨어(350)를 다운로드하도록 구성된다.
스테이트먼트 21. 본 발명의 실시 예는 스테이트먼트 16에 따른 상기 방법을 포함하고, 상기 제1 펌웨어(315)는 상기 상기 부트 모듈(160)의 바이너리 이미지(320)가 상기 불휘발성 메모리로 복사되기 이전에 상기 부트 로더 모듈(160)의 버전(330)을 검증하도록 구성된다.
스테이트먼트 22. 본 발명의 실시 예는 방법을 포함하고, 상기 방법은 부트 로더 업데이트 펌웨어(305)를 장치(110, 205, 210, 215)의 제1 불휘발성 메모리(145)로 복사하는 단계(710); 상기 부트 로더 업데이트 펌에어(305)를 활성화하는 단계; 부트 로더 모듈(160)의 바이너리 이미지(320)를 제2 불휘발성 메모리(150)로 복사하기 위하여 상기 부트 로더 업데이트 펌웨어(305)를 사용하는 단계(745); 및 상기 장치(110, 205, 210, 215)를 재부팅하여 상기 부트 로더 모듈(160)을 사용하는 단계(780)를 포함한다.
스테이트먼트 23. 본 발명의 실시 예는 스테이트먼트 22에 따른 상기 방법을 포함하고, 상기 방법은 상기 부트 로더 업데이트 펌웨어(305)를 상기 장치(110, 205, 210, 215)로 다운로드하는 단계(705)를 더 포함한다.
스테이트먼트 24. 본 발명의 실시 예는 스테이트먼트 22에 따른 상기 방법을 포함하고, 상기 부트 로더 업데이트 펌웨어(305)를 활성화하는 단계(725)는 상기 장치(110, 205, 210, 215)를 재부팅하는 단계를 포함한다.
스테이트먼트 25. 본 발명의 실시 예는 스테이트먼트 24에 따른 상기 방법을 포함하고, 상기 장치(110, 205, 210, 215)를 재부팅하는 단계는 상기 장치(110, 205, 210, 215)를 콜드 부팅하는 단계(715)를 포함한다.
스테이트먼트 26. 본 발명의 실시 예는 스테이트먼트 22에 따른 상기 방법을 포함하고, 상기 부트 로더 업데이트 펌웨어(305)를 사용하는 단계(745)는 상기 부트 로더 업데이트 펌웨어(305)가 인식된 인증키(340)를 사용하여 서명된 것을 검증하는 단계(730, 735)를 포함한다.
스테이트먼트 27. 본 발명의 실시 예는 스테이트먼트 26에 따른 상기 방법을 포함하고, 상기 방법은 상기 부트 로더 업데이트 펌웨어(305)가 상기 인식된 인증키(340)를 사용하여 서명되지 않은 경우, 상기 부트 로더 업데이트 펌웨어(305)의 실행을 중단하는 단계(740)를 포함한다.
스테이트먼트 28. 본 발명의 실시 예는 스테이트먼트 22에 따른 상기 방법을 포함하고, 부트 로더 모듈(160)의 바이너리 이미지(320)를 제2 불휘발성 메모리(150)로 복사하기 위하여 상기 부트 로더 업데이트 펌웨어(305)를 사용하는 단계(745)는, 상기 부트 로더 모듈(160)의 상기 바이너리 이미지(320)가 상기 제2 불휘발성 메모리(150)로 복사되기 이전에 상기 부트 로더 모듈(160)의 버전(330)을 검증하는 단계(770)를 포함한다.
스테이트먼트 29. 본 발명의 실시 예는 스테이트먼트 22에 따른 상기 방법을 포함하고, 부트 로더 모듈(160)의 바이너리 이미지(320)를 제2 불휘발성 메모리(150)로 복사하기 위하여 상기 부트 로더 업데이트 펌웨어(305)를 사용하는 단계(745)는, 상기 제2 불휘발성 메모리(150) 내의 상기 부트 로더 모듈(160)의 설치를 모니터링하는 단계(750)를 포함한다.
스테이트먼트 30. 본 발명의 실시 예는 스테이트먼트 29에 따른 상기 방법을 포함하고, 상기 제2 불휘발성 메모리(150) 내의 상기 부트 로더 모듈(160)의 설치를 모니터링하는 단계(750)는, 상기 제2 불휘발성 메모리(150) 내의 상기 부트 로더 모듈(160)의 상기 설치가 실패한 경우, 에러 조건을 사용자에게 알리는 단계(765)를 포함한다.
스테이트먼트 31. 본 발명의 실시 예는 스테이트먼트 29에 따른 상기 방법을 포함하고, 상기 제2 불휘발성 메모리(150) 내의 상기 부트 로더 모듈(160)의 설치를 모니터링하는 단계(750)는, 상기 제2 불휘발성 메모리(150)에 설치 이후에, 상기 부트 로더 모듈(160)의 버전(330)을 검증하는 단계(770)를 포함한다.
스테이트먼트 32. 본 발명의 실시 예는 스테이트먼트 29에 따른 상기 방법을 포함하고, 상기 제2 불휘발성 메모리(150) 내의 상기 부트 로더 모듈(160)의 설치를 모니터링하는 단계(750)는, 상기 제2 불휘발성 메모리(150)에 상기 부트 로더 모듈(160)의 저장 어드레스를 변경하는 단계(760)를 포함한다.
스테이트먼트 33. 본 발명의 실시 예는 스테이트먼트 29에 따른 상기 방법을 포함하고, 상기 제2 불휘발성 메모리(150) 내의 상기 부트 로더 모듈(160)의 설치를 모니터링하는 단계(750)는, 상기 제2 불휘발성 메모리(150)에 상기 부트 로더 모듈(160)의 설치의 결과를 개시하는 단계(775)를 포함한다.
스테이트먼트 34. 본 발명의 실시 예는 스테이트먼트 22에 따른 상기 방법을 포함하고, 상기 방법은, 상기 장치(110, 205, 210, 215)의 상기 제1 불휘발성 메모리(145)로 펌웨어(315)를 복사하는 단계; 및 상기 펌웨어(315)를 사용하기 위하여 상기 장치(110, 205, 210, 215)를 재부팅하는 단계(795)를 더 포함한다.
스테이트먼트 35. 본 발명의 실시 예는 스테이트먼트 34에 따른 상기 방법을 포함하고, 상기 방법은 상기 장치(110, 205, 210, 215)로 상기 펌웨어(315)를 다운로드하는 단계(785)를 더 포함한다.
스테이트먼트 36. 본 발명의 실시 예는 스테이트먼트 34에 따른 상기 방법을 포함하고, 상기 장치(110, 205, 210, 215)를 두 번째 재부팅하는 단계(795)는 상기 장치(110, 205, 210, 215)를 콜드-부팅하는 단계(795)를 포함한다.
스테이트먼트 37. 본 발명의 실시 예는 스테이트먼트 34에 따른 상기 방법을 포함하고, 상기 부트 로더 모듈(160)을 사용하기 위하여 상기 장치(110, 205, 210, 215)를 재부팅하는 단계는 상기 펌웨어(315)를 사용하기 위하여 상기 장치(110, 205, 210, 215)를 재부팅하는 단계(795)를 포함한다.
스테이트먼트 38. 본 발명의 실시 예는 스테이트먼트 22에 따른 상기 방법을 포함하고, 부트 로더 모듈(160)의 바이너리 이미지(320)를 제2 불휘발성 메모리(150)로 복사하기 위하여 상기 부트 로더 업데이트 펌웨어(305)를 사용하는 단계(745)는 상기 부트 로더 모듈(160)의 상기 바이너리 이미지(320)를 상기 제1 불휘발성 메모리(150)로 복사하기 위하여 상기 부트 로더 업데이트 펌웨어(305)를 사용하는 단계(745)를 포함한다.
결과적으로, 본문에 기재된 실시 예들의 다양한 변형의 관점에서, 첨부된 내용 및 상세한 설명은 오직 실시 예를 보여주는 것으로 의도되며, 본 발명의 기술적 사상이 이에 한정되어서는 안될 것이다. 그러므로, 본 발명의 기술적 사상은 이하의 첨부된 특허청구범위 및 그것과 동등한 것의 사상 및 범위 내의 모든 변형을 포함한다.
110, 205, 210, 215: 장치
160: 부트 로더 모듈
155: 펌웨어
305: 부트 로더 업데이트 펌웨어
310: 제1 로직
315: 제1 펌웨어
320: 부트 로더 바이너리 이미지
325: 서명
330: 버전
335: 제2 로직
340: 인증키
345: 제3 로직
350: 제2 펌웨어

Claims (10)

  1. 장치의 부트 로더 업데이트 방법에 있어서,
    상기 장치를 위한 부트 로더 모듈을 구성하는 단계;
    상기 부트 로더 모듈의 바이너리 이미지를 생성하는 단계; 및
    상기 바이너리 이미지 및 제1 펌웨어를 조합하여 부트 로더 업데이트 펌웨어를 형성하는 단계를 포함하고,
    상기 부트 로더 업데이트 펌웨어는 상기 부트 로더 모듈을 상기 장치의 불휘발성 메모리로 복사하도록 구성되는 방법.
  2. 제 1 항에 있어서,
    인증키를 사용하여 상기 부트 로더 업데이트 펌웨어를 서명하는 단계를 더 포함하는 방법.
  3. 제 2 항에 있어서,
    인증키를 사용하여 상기 부트 로더 업데이트 펌웨어를 서명하는 단계는 상기 인증키를 포함하는 부트 로더 업데이트 펌웨어를 서명하는 단계를 포함하고,
    상기 인증키는 상기 장치를 소유한 클라이언트에 대하여 유일한 방법.
  4. 제 1 항에 있어서,
    상기 바이너리 이미지 및 제1 펌웨어를 조합하여 부트 로더 업데이트 펌웨어를 형성하는 단계는, 상기 바이너리 이미지와 상기 제1 펌웨어 및 제2 펌웨어를 조합하는 단계를 포함하고,
    상기 부트 로더 업데이트 펌웨어가 상기 불휘발성 메모리로 상기 부트 로더 모듈을 복사한 이후에, 상기 부트 로더 업데이트 펌웨어는 상기 제2 펌웨어를 상기 장치의 제2 불휘발성 메모리로 복사하도록 구성되는 방법.
  5. 제 4 항에 있어서,
    상기 부트 로더 업데이트 펌웨어가 상기 부트 로더 모듈을 상기 불휘발성 메모리로 복사한 이후에, 상기 부트 로더 업데이트 펌웨어는 상기 제2 펌웨어를 다운로드하도록 구성되는 방법.
  6. 제 1 항에 있어서,
    상기 제1 펌웨어는 상기 바이너리 이미지가 상기 불휘발성 메모리로 복사되기 이전에 상기 부트 로더 모듈의 버전을 검증하도록 구성되는 방법.
  7. 장치의 부트 로더 업데이트 방법에 있어서,
    상기 장치의 제1 불휘발성 메모리로 부트 로더 업데이트 펌웨어를 복사하는 단계;
    상기 부트 로더 업데이트 펌웨어를 활성화하는 단계;
    상기 부트 로더 업데이트 펌웨어를 사용하여 부트 로더 모듈의 바이너리 이미지가 상기 장치의 제2 불휘발성 메모리로 복사하는 단계; 및
    상기 장치를 재부팅하여 상기 부트 로더 모듈을 사용하는 단계를 포함하는 방법.
  8. 제 7 항에 있어서,
    상기 부트 로더 업데이트 펌웨어를 사용하여 부트 로더 모듈의 바이너리 이미지가 상기 장치의 제2 불휘발성 메모리로 복사하는 단계는 상기 부트 로더 업데이트 펌웨어가 인식된 인증키를 사용하여 서명된 것을 검증하는 단계를 포함하는 방법.
  9. 제 7 항에 있어서,
    상기 부트 로더 업데이트 펌웨어를 사용하여 부트 로더 모듈의 바이너리 이미지가 상기 장치의 제2 불휘발성 메모리로 복사하는 단계는 상기 제2 불휘발성 메모리에 상기 부트 로더 모듈을 설치하는 것을 모니터링하는 단계를 포함하는 방법.
  10. 제 9 항에 있어서,
    상기 제2 불휘발성 메모리에 상기 부트 로더 모듈을 설치하는 것을 모니터링하는 단계는 상기 제2 불휘발성 메모리에 상기 부트 로더 모듈을 설치하는 것이 실패한 경우, 에러 조건을 사용자에게 알리는 단계를 포함하는 방법.
KR1020160073277A 2015-08-05 2016-06-13 부트 로더 업데이트 펌웨어, 및 부트 로더 업데이트 방법 KR102358470B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562201550P 2015-08-05 2015-08-05
US62/201,550 2015-08-05
US14/932,956 2015-11-04
US14/932,956 US9959125B2 (en) 2015-08-05 2015-11-04 Field update of boot loader using regular device firmware update procedure

Publications (2)

Publication Number Publication Date
KR20170017713A true KR20170017713A (ko) 2017-02-15
KR102358470B1 KR102358470B1 (ko) 2022-02-04

Family

ID=58053859

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160073277A KR102358470B1 (ko) 2015-08-05 2016-06-13 부트 로더 업데이트 펌웨어, 및 부트 로더 업데이트 방법

Country Status (2)

Country Link
US (1) US9959125B2 (ko)
KR (1) KR102358470B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220078453A (ko) * 2020-12-03 2022-06-10 주식회사 팝콘사 오토사 어댑티브 플랫폼에서 다이나믹 소프트웨어 설치를 위한 시스템 및 방법
US11561785B2 (en) 2020-10-06 2023-01-24 SK Hynix Inc. Storage device and method of operating the same
US11874928B2 (en) 2020-01-30 2024-01-16 Samsung Electronics Co., Ltd. Security device, electronic device, secure boot management system, method for generating boot image, and method for executing boot chain

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10191811B2 (en) * 2015-08-13 2019-01-29 Quanta Computer Inc. Dual boot computer system
US20180184161A1 (en) * 2016-12-28 2018-06-28 Arris Enterprises Llc Method and system for set-top box platform transitions
US11301566B2 (en) * 2019-07-03 2022-04-12 Ati Technologies Ulc Firmware anti-rollback
US20220405392A1 (en) * 2019-10-30 2022-12-22 John A. Nix Secure and flexible boot firmware update for devices with a primary platform
US11222120B2 (en) * 2019-11-19 2022-01-11 Dell Products L.P. Storage device firmware bootloader recovery system and method therefor
US11922170B2 (en) 2021-06-28 2024-03-05 Samsung Electronics Co., Ltd. Systems and method for bootup activation of firmware images
TWI797932B (zh) * 2021-12-30 2023-04-01 新唐科技股份有限公司 韌體驗證系統及韌體驗證方法
US11775284B2 (en) * 2022-01-27 2023-10-03 Realtek Singapore Private Limited Electronic device and code patching method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120021210A (ko) * 2010-08-31 2012-03-08 애플 인크. 불휘발성 메모리로부터의 디바이스 부트업 동안 에러들의 핸들링
US20130201015A1 (en) * 2012-02-06 2013-08-08 Tyco Safety Products Canada Ltd. Robust alarm system with auxiliary processing sub-system
KR20140123143A (ko) * 2013-04-10 2014-10-22 주식회사 팬택 모바일 단말의 펌웨어 업그레이드 장치 및 방법
US20140351569A1 (en) * 2010-11-08 2014-11-27 Gemalto Sa Software updating process for an embedded device

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7203940B2 (en) * 2002-04-29 2007-04-10 Hewlett-Packard Development Company, Lp. Automated installation of an application
US7206971B2 (en) 2003-04-07 2007-04-17 Lsi Logic Corporation Selectable and updatable computer boot memory
WO2005004160A2 (de) * 2003-06-24 2005-01-13 Robert Bosch Gmbh Verfahren zur durchführung eines software-updates eines elektronischen steuergerätes durch eine flash-programmierung über eine serielle schnittstelle und ein entsprechender zustandsautomat
KR100506203B1 (ko) * 2003-09-17 2005-08-05 삼성전자주식회사 부팅 및 부트 코드 업데이트 방법 및 시스템
US20050102669A1 (en) * 2003-10-15 2005-05-12 Siemens Medical Solutions Usa, Inc. Software installation file verification media and methods for medical equipment
TWI237761B (en) * 2004-04-09 2005-08-11 Mediatek Inc Method for updating a firmware code stored in a non-volatile memory and related device
WO2006124357A2 (en) * 2005-05-11 2006-11-23 Bigfoot Networks, Inc. Distributed processing system and method
WO2007005790A2 (en) * 2005-06-30 2007-01-11 Sling Media, Inc. Firmware update for consumer electronic device
US7886141B2 (en) 2007-10-27 2011-02-08 Asix Electronics Corporation Method and systems for advanced reprogrammable boot codes and in-application programming of embedded microprocessor systems
US8719585B2 (en) 2008-02-11 2014-05-06 Nvidia Corporation Secure update of boot image without knowledge of secure key
US8813066B2 (en) * 2008-05-06 2014-08-19 International Business Machines Corporation Multi-component software application installation facility
US8589302B2 (en) 2009-11-30 2013-11-19 Intel Corporation Automated modular and secure boot firmware update
US8713559B2 (en) * 2010-11-15 2014-04-29 Schneider Electric It Corporation System and method for updating firmware
KR20120092222A (ko) * 2011-02-11 2012-08-21 삼성전자주식회사 보안 부팅 방법 및 보안 부트 이미지 생성 방법
KR20130029995A (ko) * 2011-09-16 2013-03-26 삼성전자주식회사 화상형성장치 및 펌웨어 업그레이드 방법
KR20140060912A (ko) 2012-11-13 2014-05-21 한국전자통신연구원 부트로더를 업데이트하는 방법 및 장치
KR101427755B1 (ko) * 2013-04-26 2014-08-07 주식회사 코아로직 Usb를 이용한 펌웨어 업그레이드 장치 및 방법
US20150169837A1 (en) * 2013-12-18 2015-06-18 Lifescan Scotland Limited Externally powered test meter firmware upgrade
US20160085538A1 (en) * 2014-09-22 2016-03-24 Qualcomm Technologies International, Ltd. Over-the-air updates for ble devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120021210A (ko) * 2010-08-31 2012-03-08 애플 인크. 불휘발성 메모리로부터의 디바이스 부트업 동안 에러들의 핸들링
US20140351569A1 (en) * 2010-11-08 2014-11-27 Gemalto Sa Software updating process for an embedded device
US20130201015A1 (en) * 2012-02-06 2013-08-08 Tyco Safety Products Canada Ltd. Robust alarm system with auxiliary processing sub-system
KR20140123143A (ko) * 2013-04-10 2014-10-22 주식회사 팬택 모바일 단말의 펌웨어 업그레이드 장치 및 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11874928B2 (en) 2020-01-30 2024-01-16 Samsung Electronics Co., Ltd. Security device, electronic device, secure boot management system, method for generating boot image, and method for executing boot chain
US11561785B2 (en) 2020-10-06 2023-01-24 SK Hynix Inc. Storage device and method of operating the same
US11861359B2 (en) 2020-10-06 2024-01-02 SK Hynix Inc. Storage device and method of operating the same
KR20220078453A (ko) * 2020-12-03 2022-06-10 주식회사 팝콘사 오토사 어댑티브 플랫폼에서 다이나믹 소프트웨어 설치를 위한 시스템 및 방법

Also Published As

Publication number Publication date
US9959125B2 (en) 2018-05-01
US20170039053A1 (en) 2017-02-09
KR102358470B1 (ko) 2022-02-04

Similar Documents

Publication Publication Date Title
KR102358470B1 (ko) 부트 로더 업데이트 펌웨어, 및 부트 로더 업데이트 방법
US10395039B2 (en) Customer-owned trust of device firmware
US10445106B2 (en) Persistent enrollment of a computing device using a BIOS
US10656936B2 (en) Systems and methods for software integrity validation using blockchain
CN108845812B (zh) 插件更新方法、装置、计算机设备和存储介质
US10635819B2 (en) Persistent enrollment of a computing device based on a temporary user
KR101066727B1 (ko) 컴퓨팅 장치의 보안 부팅
US9916574B2 (en) Secure computing device and method
US9110679B1 (en) Pre-boot management of drivers and programs
US20190042754A1 (en) Authenticating a boot path update
JP5940159B2 (ja) 非トラステッド・ユーザ端末にオペレーティング・システム・イメージをプロビジョニングするための方法、コンピュータ・プログラム、デバイス、装置
US9582262B2 (en) Systems and methods for installing upgraded software on electronic devices
TWI601068B (zh) 用於接取網路之設備及方法、以及電腦可讀媒體
US9768952B1 (en) Removable circuit for unlocking self-encrypting data storage devices
WO2016062146A1 (zh) 序列号信息的更新方法、装置及终端
US9690944B2 (en) System and method updating disk encryption software and performing pre-boot compatibility verification
US20180276003A1 (en) Internet recovery of a windows configuration
JP2016539405A (ja) 読み出し専用のシステムイメージ内のシステムレベルサービスを更新するためのシステム及び方法
CN110874467A (zh) 信息处理方法、装置、***以及处理器、存储介质
WO2008107254A1 (en) System and method for trans-vendor license registration and recovery
JP2011150499A (ja) シンクライアントシステム、シンクライアント端末およびシンクライアントプログラム
TWI581187B (zh) 傳送用以安裝作業系統之資料影像的技術
CN110362333A (zh) 一种客户端升级阻碍的快速解决方法、装置和电子设备
US20130254127A1 (en) Authentication method and authentication system of electronic product
US11416619B1 (en) Trusted boot-loader authentication

Legal Events

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