BR112016005213B1 - método para atualização de um programa de inicializção de dispositivo multiprocessado. - Google Patents

método para atualização de um programa de inicializção de dispositivo multiprocessado. Download PDF

Info

Publication number
BR112016005213B1
BR112016005213B1 BR112016005213-7A BR112016005213A BR112016005213B1 BR 112016005213 B1 BR112016005213 B1 BR 112016005213B1 BR 112016005213 A BR112016005213 A BR 112016005213A BR 112016005213 B1 BR112016005213 B1 BR 112016005213B1
Authority
BR
Brazil
Prior art keywords
processor
initialization
program
boot
update
Prior art date
Application number
BR112016005213-7A
Other languages
English (en)
Inventor
Nicolas Dangy-Caye
Original Assignee
Sagemcom Broadband Sas
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 Sagemcom Broadband Sas filed Critical Sagemcom Broadband Sas
Publication of BR112016005213B1 publication Critical patent/BR112016005213B1/pt

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
    • G06F9/4406Loading of operating system
    • 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/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • 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
    • 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/1441Resetting or repowering
    • 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)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Power Sources (AREA)
  • Hardware Redundancy (AREA)
  • Retry When Errors Occur (AREA)
  • Multi Processors (AREA)

Abstract

PROCESSO DE ATUALIZAÇÃO DE UM PROGRAMA DE INICIALIZAÇÃO E DISPOSITIVO. A presente invenção refere-se a um dispositivo compreendendo um primeiro processador e um segundo processador, o primeiro processador sendo capaz de executar um programa de inicialização. O dispositivo executa uma fase de assegurar a inicialização em caso de uma falha elétrica que ocorre durante a atualização do programa de inicialização, a dita fase de assegurar a inicialização sendo realizada graças a uma fonte de alimentação de backup, proporcionando um relé de uma alimentação principal, a fase de assegurar a inicialização compreendendo as seguintes etapas: parar (203) a atualização durante um programa de inicialização; e desativar (205) o programa de inicialização. O dispositivo executa uma fase de inicialização retardada do segundo processador, permitindo iniciar o dispositivo em um modo de atualização do programa de inicialização, se o dito programa de inicialização armazenado for desativado.

Description

Campo da Invenção
[001] A presente invenção se refere a um processo de atualização de um programa de inicialização {boot loaded de um sistema multiprocessado e um sistema multiprocessado capaz de implementar o processo.
Antecedentes da Invenção
[002] Um grande número de dispositivos eletrônicos inclui programa. O programa destes dispositivos é frequentemente dividido em duas partes: de um lado, o programa de inicialização e, de outro lado, o programa de aplicativo.
[003] Nos dispositivos eletrônicos atuais, muitas vezes é possível atualizar o programa, em particular para produtos de comunicação conectados a uma rede. A atualização do programa de inicialização é uma fase crítica. Um indicador (display), durante essa atualização, de uma mensagem indicando para não cortar a alimentação do dispositivo eletrônico é bem conhecida, mas não fornece nenhuma segurança contra uma falha elétrica, tais como corte de energia acidental ou mal intencionada.
[004] Para isso, uma solução de dupla inicialização (Dual Boot) consiste em fornecer dois segmentos de memória regraváveis não voláteis, dentre os quais um primeiro segmento compreende um programa de inicialização corrente e um segundo segmento inclui um novo programa de inicialização. Depois de escrever na memória do novo programa de inicialização, uma verificação da integridade do programa escrito é realizada antes de alternar para o novo programa de inicialização. Este método requer duplicar substancial mente a capacidade da memória regravável não volátil, o que atinge o custo de tal produto.
[005] É importante notar que o documento de patente US 2009/094450 Al divulga um método para a atualização do programa de inicialização em uma memória não volátil que pode ser reescrita (memória compartilhada) de um dispositivo compreendendo dois processadores, dos quais um está apto a executar o programa de inicialização.
[006] É desejável superar os inconvenientes mencionados acima do estado da arte.
Descrição Resumida da Invenção
[007] A presente invenção se refere a um processo de atualização de um programa de inicialização armazenado em uma memória não volátil regravável de um dispositivo compreendendo um primeiro processador e um segundo processador, o primeiro processador sendo capaz de executar o programa de inicialização, o processo sendo implementado pelo dispositivo. O processo compreende uma fase de assegurar a inicialização, implementada em caso de falha elétrica que ocorre durante uma atualização do programa de inicialização, a fase de assegurar a inicialização sendo realizada graças a uma fonte de alimentação de backup proporcionando um relé de uma alimentação principal na presença da falha elétrica, a fase de assegurar a inicialização compreendendo as etapas a seguir de: parar a atualização do programa de inicialização; e desativar o programa de inicialização para o primeiro processador. O processo compreende, ainda, uma fase de inicialização retardada do segundo processador em comparação com a inicialização do primeiro processador permitindo, quando o programa de inicialização for inválido, iniciar o dispositivo em um modo de atualização do programa de inicialização. Assim, é possível executar uma atualização de programa de inicialização em um dispositivo tendo a memória não volátil regravável permitindo armazenar uma única cópia do programa de inicialização. Com esse processo, não há nenhum problema de reinicialização incontrolável após uma corrupção desta memória que ocorreu durante uma atualização de inicialização do programa, em particular por causa de uma interrupção da alimentação elétrica.
[008] De acordo com uma realização, o processo compreende uma etapa de atualização do programa de inicialização, implementada pelo segundo processador, compreendendo as etapas de: alternar o primeiro processador no modo de atualização do programa de inicialização; escrever um novo programa de inicialização na memória não volátil regravável; verificar se o novo programa de inicialização tal como escrito na memória não volátil regravável é válido; repetir a fase de atualização para a etapa que consiste em escrever o novo programa de inicialização, quando o novo programa inicialização como escrito for inválido; e alternar o primeiro processador em um modo de funcionamento convencional, quando o novo programa como escrito for válido. Assim, o programa de inicialização é atualizado.
[009] De acordo com uma realização, o processo compreende ainda as seguintes etapas, executadas pelo segundo processador, em uma inicialização do dito dispositivo: verificar se o primeiro processador está no estado de funcionamento normal capaz de se comunicar com o segundo processador; e abertura da fase de atualização do programa de inicialização, quando o primeiro processador não estiver no estado normal de funcionamento. Assim, a verificação permite efetuar uma inicialização, mesmo que o programa de inicialização seja desativado. Neste caso, o dispositivo inicia graças ao segundo processador para entrar no modo de atualização.
[0010] De acordo com uma realização, para verificar o estado de funcionamento do primeiro processador, o segundo processador executa os seguintes etapas: envio de uma primeira mensagem para o dito primeiro processador; considerar o estado de funcionamento do primeiro processador como normal, quando o segundo processador recebe uma segunda mensagem transportando a primeira mensagem em um tempo pré- definido; e considerar o estado de funcionamento do primeiro processador como anormal, quando o segundo processador não receber a segunda mensagem transportando a primeira mensagem no tempo pré-definido. Assim, a verificação é obtida por uma fase de sincronização entre o primeiro processador e o segundo processador. O estado de funcionamento do primeiro processador é considerado anormal se o primeiro processador não responder à mensagem do segundo processador perguntando se o primeiro processador está em um estado normal de funcionamento.
[0011] De acordo com uma realização, o processo compreende, ainda, durante a extinção do dispositivo, as seguintes etapas: verificar se o programa de inicialização armazenado na memória não volátil regravável é válido; e lançar, com o auxílio do segundo processador, a fase de atualização do programa de inicialização, quando o programa de inicialização armazenado na memória não volátil regravável for inválido. Assim, é possível detectar problemas de corrupção da memória não volátil regravável que ocorreu durante o funcionamento normal. Isto permite substituir o programa de inicialização corrompido e evitar mau funcionamento.
[0012] De acordo com uma realização, a fase de assegurar a inicialização do processo compreende ainda a etapa que consiste em parar, durante a fase de assegurar a inicialização, a alimentação elétrica de componentes secundários não essenciais para o funcionamento do primeiro processador e do segundo processador. Assim, apenas componentes indispensáveis para a desativação do programa de inicialização a ser atualizado são alimentados, de modo a minimizar o consumo elétrico do dispositivo durante esta fase. Assim, o dimensionamento da alimentação de backup em termos de autonomia para assegurar pode ser reduzido.
[0013] A presente invenção também se refere a um dispositivo compreendendo um primeiro processador e um segundo processador, o primeiro processador sendo capaz de executar um programa de inicialização armazenado em uma memória não volátil regravável, o dispositivo compreendendo meios de assegurar a inicialização implementada quando uma falha elétrica ocorre durante uma atualização do programa de inicialização, os meios de assegurar a inicialização sendo implementados graças a uma fonte de alimentação de backup fornecendo um relé de uma alimentação principal na presença de falha elétrica, os meios de assegurar a inicialização compreendendo meios para parar a atualização durante o programa de inicialização; e meios para invalidar o programa de inicialização para o primeiro processador. O dispositivo compreende ainda meios de inicialização retardada do segundo processador em comparação à inicialização do primeiro processador permitindo, quando o programa de inicialização for inválido, iniciar o dispositivo em um modo de atualização de programa de inicialização.
[0014] De acordo com uma realização, a fonte de alimentação de backup é selecionada a partir do grupo que compreende um condensador, um supercondensador, uma bateria elétrica e um acumulador. Assim, o custo de alimentação de backup é baixo. De acordo com uma realização, o dispositivo compreende os meios de monitorização da alimentação principal com base em um comparador tendo uma primeira entrada onde é injetado um valor de tensão de referência e uma segunda entrada onde é injetado um valor de tensão derivado da alimentação principal através de uma ponte divisora de tensão. Assim, a detecção de falha elétrica é realizada de forma simples.
[0015] De acordo com uma realização, o dispositivo compreende meios de monitorização da alimentação principal com base em um comparador e um conversor analógico-digital, o conversor analógico-digital sendo adaptado para converter para um valor digital a tensão de alimentação principal e o comparador sendo adaptado para comparar o dito valor digital a um limiar pré-definido.
Breve Descrição dos Desenhos
[0016] As características da presente invenção acima mencionadas, bem como outros, surgirão mais claramente na leitura da seguinte descrição de pelo menos uma realização exemplar, a dita descrição sendo feita em conjunto com os desenhos anexos, nos quais: - A Fig. 1 é uma vista esquemática de uma arquitetura material de um dispositivo biprocessador, de acordo com uma realização da presente invenção; - A Fig. 2 é uma ilustração esquemática de um algoritmo de atualização de um programa de inicialização, o algoritmo sendo executado por um processador do dispositivo da Fig. 1; - A Fig. 3 é uma ilustração esquemática de um algoritmo de inicialização do processador auxiliar da Fig. 1; - A Fig. 4 é uma ilustração esquemática de um algoritmo de gestão de uma interrupção durante uma perda de alimentação, de acordo com uma realização particular da presente invenção; - A Fig. 5 é uma ilustração esquemática de um algoritmo de extinção do dispositivo; - A Fig. 6 é uma ilustração esquemática de uma primeira sequência de inicialização do dispositivo; e - A Fig. 7 é uma ilustração esquemática de uma segunda sequência de inicialização do dispositivo.
Descrição Detalhada da Invenção
[0017] A descrição detalhada que se segue refere-se ao dispositivo que compreende um primeiro processador ou microprocessador, chamado de processador auxiliar, e um segundo processador ou microprocessador, chamado de processador principal. O processador auxiliar pode ser dedicado à gestão de inicialização e de monitoramento no modo de espera do dispositivo. O processador principal pode suportar a principal função executada pelo dispositivo. No entanto, isto é apenas um exemplo e o processador auxiliar pode igualmente suportar outras funções. A descrição detalhada abaixo se refere apenas as funcionalidades implementadas pelo processador auxiliar e o processador principal como parte de uma atualização de um programa de inicialização do dito processador auxiliar. A Fig. 1 ilustra esquematicamente uma arquitetura de um dispositivo biprocessador de acordo com uma realização da presente invenção. Essa arquitetura compreende um processador auxiliar (10) e um processador principal (50), sendo ambos eletricamente alimentados por uma alimentação (30), a dita alimentação principal.
[0018] O processador auxiliar (10) é ligado, por exemplo, através de um barramento, com uma memória viva RAM (11) (Random Access Memory), e uma memória não volátil regravável (12), tal como uma memória do tipo flash, e uma memória morta ROM (13) ("Read Only Memory" em inglês).
[0019] O processador principal (50) é conectado, por exemplo, através de uma RAM (51), com uma memória não volátil regravável (52), tal como uma memória de tipo flash, e uma unidade de armazenamento (53) fixa ou removível. A unidade de armazenamento (53) é, por exemplo, um disco rígido HDD ("Hard Disk Drive" em inglês), ou um leitor de cartão de memória removível. O processador principal (50) é ainda conectado a meios de comunicação externa (54) permitindo em particular receber atualizações de todo ou parte do programa do dispositivo. Estes meios de comunicação externa (54) podem ser uma porta de comunicação do tipo Ethernet, xDSL (sigla para designar as tecnologias do tipo "Digital Subscriber Line" em inglês) ou Wi-Fi, ou uma porta de comunicação do tipo USB ("Universal Serial Bus" em Inglês).
[0020] Além disso, o processador auxiliar (10) e o processador principal (50) são ligados por meios de comunicação interna (34) para a troca de dados na forma de mensagens ou sinais. Estes meios de comunicação interna (34) são, por exemplo, um barramento, tais como um barramento serial ou um barramento paralelo, portas de entrada/saída, utilizados isoladamente ou em conjunto.
[0021] Finalmente, a alimentação (30), alimenta o dispositivo biprocessador, alimenta os dois processadores através de uma linha de alimentação (31). Na linha de alimentação (31) estão presentes meios de monitorização (32) de uma falha elétrica que ocorre na alimentação (30). Os meios de monitorização (32) são preferencialmente adaptados para monitorar a tensão fornecida pela alimentação (30).
[0022] Os meios de monitorização (32) são, por exemplo, implementados graças a um comparador. Em uma primeira entrada do comparador é injetado um sinal de tensão contínua de referência, por exemplo, fixa à 1,8 V ou 3,3 V, obtida graças a um conversor DC-DC de tensão diminuindo a tensão conectada à linha de alimentação (31). Em uma segunda entrada do comparador é injetado o sinal de alimentação (30), por exemplo, fixado à 12 V, quando nenhuma falha elétrica foi relatada, após a passagem através de uma ponte divisora de tensão para reduzir a tensão a um valor substancialmente igual a dita tensão contínua de referência. O comparador é, portanto, adaptado para detectar quando a tensão de alimentação (30) cai devido a uma falha elétrica.
[0023] Em uma realização alternativa, os meios de monitorização (32) são, por exemplo, implementados graças a um comparador acoplado a um conversor analógico- digital. O conversor analógico-digital é adaptado para receber como entrada a tensão liberada pela alimentação (30). O comparador é então adaptado para comparar um valor digital representativo da tensão liberada pela alimentação (30) e um limiar pré-definido, por exemplo, fixo à 10 V quando a tensão esperada da alimentação (30) é de 12 V. Tal conversor analógico-digital pode ser integrado ao processador auxiliar (10) ou ao processador principal (50).
[0024] Na linha de alimentação (31) está também presente uma alimentação de backup (33) destinada a liberar, em caso de falha elétrica, pelo menos dois processadores e componentes necessários para o funcionamento de dois processadores. Os meios de monitorização (32) são adaptados para evitar o processador principal (50) se uma falha elétrica for experimentada pelo dispositivo. Esta falha elétrica pode, por exemplo, ser uma simples queda temporária de tensão. A falha elétrica também pode ser uma ruptura na alimentação elétrica (30).
[0025] A alimentação de backup (33) é, por exemplo, uma bateria, um acumulador, um condensador ou supercondensador. A capacidade de alimentação de backup (33) é escolhida para permitir o funcionamento de componentes vitais para um período de tempo para permitir que, se necessário, invalide o programa de inicialização, ou elimine toda ou parte da memória não volátil regravável (12). Os componentes vitais compreendem o processador principal (50) e o processador auxiliar (10) mais os componentes necessários aos seus respectivos funcionamentos para assegurar que a operação consista em apagar toda ou parte da memória não volátil regravável (12), ou em invalidar o programa de inicialização. Cada um dos processadores, o processador auxiliar (10) e o processador principal (50), são capazes de executar um conjunto de instruções para realizar todo ou parte dos algoritmos descritos abaixo. O processador auxiliar (10) é capaz de executar as instruções da memória não volátil regravável (12) e/ou a partir da RAM (11). O processador auxiliar (10) é adicionalmente capaz de executar instruções a partir da ROM (13), tipicamente após carregar a memória RAM (11). O processador principal (50) é capaz de executar as instruções da memória não volátil regravável (52) e/ou da RAM (51). O processador auxiliar (10) utiliza, por um lado, um programa de inicialização do dispositivo presente na memória não volátil regravável (12) em cada sequência de inicialização do dito dispositivo. Por outro lado, para a atualização do programa de inicialização, o processador auxiliar (10) tem a ROM (13), um programa de atualização (conhecido em inglês como "update software"). Este programa de atualização é capaz de apagar e escrever, na memória não volátil regravável (12), um novo programa de inicialização transmitido pelo processador principal (50) através dos meios de comunicação interna (34).
[0026] O processador principal (50) é capaz de executar uma aplicação de atualização do programa do processador auxiliar (10). Esta aplicação de atualização pode ser armazenada na memória não volátil regravável (52). O processador principal (50) é ainda adaptado para executar outros tipos de aplicações, armazenadas na memória não volátil regravável (52), ou na unidade de armazenamento (53).
[0027] Finalmente, o dispositivo é equipado com meios de sequenciamento (35) da inicialização entre o processador auxiliar (10) e o processador principal (50), chamada de sequenciador. O sequenciador (35) inicia a primeira partida de inicialização do processador auxiliar (10), em seguida o processador principal (50) retarda em comparação à inicialização do processador auxiliar (10). Em situação de inicialização normal, o processador auxiliar (10) executa o programa de inicialização. O dito programa de inicialização em seguida inicia o processador principal (50) e os dois processadores são sincronizados. A inicialização retardada é quando o programa de inicialização, usado pelo processador auxiliar (10), está corrompido. A inicialização retardada permite que o dispositivo se inicie parcialmente de qualquer maneira, para atualizar o programa de inicialização defeituoso.
[0028] De acordo com uma realização preferida, o processador auxiliar (10) é um microcontrolador incluindo a RAM (11), a memória não volátil regravável (12) e a ROM (13).
[0029] De acordo com uma variante, o processador auxiliar (10) e o processador principal (50) são integrados em um componente do tipo SoC (do inglês "System on Chip").
[0030] Alguns dos elementos representados, tais como o processador auxiliar (10), o processador principal (50) e o sequenciador (35), podem ser realizados em diferentes formas, de maneira unitária ou distribuída, através de componentes materiais, tais como os circuitos integrados específicos ASIC (do inglês "Application Specific Integrated Circuit") ou redes lógicas programáveis FPGA (do inglês " Field Programmable Gate Array "). Com referência às Figuras 2 e 3, será agora descrito um programa de inicialização do processador auxiliar (10). Antes desta atualização, o processador principal (50) recebeu um novo programa de inicialização através da comunicação externa (54). O novo programa de inicialização recebeu e foi verificado quanto à sua origem e integridade. Por exemplo, se o programa de inicialização recebe criptografados e assinados, o processador principal (50) verifica a impressão, também chamado de soma de verificação ("verificação" em inglês), e a descriptografia dos dados recebidos do componente de programa de inicialização. Os métodos de assinatura empregados são métodos conhecidos como assinaturas MD5, SHA. Da mesma forma, métodos para criptografar e descriptografar os dados, por criptografia simétrica, dita chave secreta ou assimétrica, dita chave pública, são conhecidos, tais como AES (em inglês "Advanced Encryption Standard") ou algoritmos DES (em inglês "Data Encryption standard") ou ainda RSA (autores com nomes "Rivest Shamir Adleman"). Uma fase de atualização (100) de um novo programa de inicialização se aplica depois de receber um novo programa de inicialização válido armazenado localmente, em um meio de armazenamento disponível para o processador principal (50), como a memória RAM (51), a memória não volátil regravável (52) ou a unidade de armazenamento (53). No caso de uso da RAM (51) para armazenar localmente o programa de inicialização, se ocorrer falta de alimentação durante a fase de atualização, o processador principal (50) recupera novamente o novo programa de inicialização, por exemplo, por um download.
[0031] Em um lançamento da fase de atualização (100) do programa de inicialização, o processador auxiliar (10) troca de modo de funcionamento. Com efeito, o dispositivo compreende vários modos de funcionamento, incluindo um modo de funcionamento usual e um modo de atualização. O modo de atualização permite substituir o programa de inicialização atual por um novo programa de inicialização. No modo de funcionamento normal, o dispositivo pode estar em dois estados de funcionamento, de um lado, um estado normal de funcionamento, de outro lado um estado anormal de funcionamento. O dispositivo está no estado anormal de funcionamento quando o programa de inicialização for desativado; caso contrário, o dispositivo está no estado normal de funcionamento.
[0032] Em uma etapa (101), o processador principal (50) alterna o processador auxiliar (10) em um modo de atualização. Para isso, o processador principal (50) utiliza os meios de comunicação internos (34). Em uma realização particular, os meios de comunicação internas (34) com base nas linhas de entrada/saída, o processador principal (50) fixo nas linhas de entrada/saída de um valor de vetor de saída dedicado, chamado de "valor modo de atualização", em seguida, inicia uma reinicialização do processador auxiliar (10), cujo comportamento é descrito abaixo com o auxílio da Fig. 3.
[0033] Uma vez que o processador auxiliar (10) é iniciado no modo de atualização, o processador principal (50) pode usar a funcionalidade de atualização fornecida pela atualização do processador auxiliar (10). As funcionalidades disponíveis incluem em particular as que permitem apagar, escrever ou ler a memória não volátil regravável (12). Em uma etapa (102), o processador principal (50) escreve, ou instrui o processador auxiliar (10) para escrever o novo programa de inicialização na memória não volátil regravável (12). Para isso, o processador principal (50) transfere os dados a partir do novo programa de inicialização com o auxílio de meios de comunicação interna (34). Em uma etapa (103), o processador principal (50) executa uma verificação de integridade dos dados presentes na memória regravável não volátil (12). Esta verificação pode ser realizada por diferentes meios, tais como o cálculo de uma soma de verificação dos dados escritos na memória não volátil regravável (12). Esta soma de verificação é então comparada com uma soma de verificação calculada sobre dados armazenados localmente na memória RAM (51) e que correspondem ao novo programa de inicialização tal como obtido pelo processador principal (50). Em alternativa, a verificação é alcançada através de uma releitura completa e uma comparação dos dados brutos na memória regravável não volátil (12), com os dados armazenados localmente na RAM (51) e que correspondem ao novo programa de inicialização tal como obtido pelo processador principal (50).
[0034] Na etapa (104), após a verificação, o processador principal (50) testa se o resultado da escrita é válido ou inválido, para identificar a presença na memória não volátil regravável (12) de dados errados. Se os dados estiverem incorretos, a etapa (102) de escrita de dados do novo programa de inicialização é repetida; de outra forma, isto significa que os dados são válidos e uma etapa (105) é executada.
[0035] Durante a etapa (105), o processador principal (50) alterna o processador auxiliar (10) em modo de funcionamento usual. Para isso, o processador principal (50) suprime o valor do vetor de modo de atualização sobre as linhas de entrada/saída dos meios de comunicação interna (34). Em seguida, o processador principal (50) reinicia o processador auxiliar (10), se necessário.
[0036] Finalmente, na etapa (106), a fase de atualização (100) termina, por exemplo, por uma reinicialização completa do dispositivo.
[0037] Para permitir a atualização do programa de inicialização, o processador principal (50) alterna o processador auxiliar (10) no modo de atualização. Fazendo referência à Figura 3, um algoritmo mostra a sequência (130) de inicialização do processador auxiliar (10).
[0038] Em uma etapa (131), o processador auxiliar (10) lê um valor presente sobre as linhas de entrada/saída dos meios de comunicação interna (34).
[0039] Em uma etapa (132), o processador auxiliar (10) verifica se o valor lido corresponde a um valor de vetor do tipo "valor de modo de atualização." Se o vetor corresponde ao valor "valor de modo atualização", o processador auxiliar (10) executa uma etapa 134. Caso contrário, o dispositivo é iniciado no modo de funcionamento normal e uma etapa (135) é executada.
[0040] Em uma etapa (135), o processador auxiliar (10) executa o programa de inicialização presente na memória não volátil regravável (12).
[0041] Em uma etapa (134), o processador auxiliar (10) executa o programa de atualização, por exemplo, por download do programa de atualização da ROM (13) na RAM e executa o programa de atualização da RAM (11). O processador auxiliar (10) permite então que o processador principal (50) acesse a memória não volátil regravável para executar as etapas de escrita ou de verificação lidas na fase de atualização descrita acima em relação à Fig. 2.
[0042] O modo de funcionamento normal pode ser contrariado, em particular, por uma falha de alimentação durante a fase de atualização (100), que é uma situação no caso de limites. Se ocorrer um evento como esse, a integralidade de funcionamento da atualização não é obtida e a memória não volátil regravável (12) contém apenas parte do novo programa de inicialização. O fato de que a quantidade de programa corretamente escrito não pode ser garantido, o comportamento deste programa parcialmente não é absolutamente determinante e pode em particular bloquear o dispositivo se a memória não volátil regravável (12) se mantém em estado, ou produz um comportamento errático. Para evitar esta situação no caso de limites é conveniente, em primeiro lugar, tornar inoperante o programa de inicialização presente na memória não volátil regravável (12) e, em segundo lugar, fornecer um mecanismo de inicialização de backup do dispositivo. Este mecanismo de backup deve permitir detectar esta situação no caso de limites e forçar uma nova atualização do programa de inicialização.
[0043] Com referência à Fig. 4, o comportamento do dispositivo em caso de falha de alimentação será apresentado com o procedimento correspondente. Este procedimento é um procedimento de interrupção desencadeado pela chegada de um evento externo recebido pelo processador principal (50). O evento, ou interrupção, é produzido pelos meios de monitorização (32) quando uma falha elétrica é detectada na alimentação (30). Em uma etapa (200), o procedimento de interromper o processador principal (50) é ativado após a recepção de uma interrupção.
[0044] Em uma etapa (201), o processador principal (50) verifica a origem da interrupção, a fim de garantir que a interrupção recebida esteja relacionada com uma falha elétrica. Quando a interrupção não corresponde a uma falha elétrica, esta interrupção é processada independentemente do algoritmo da Fig. 4. Em seguida, é encerrada no algoritmo em uma etapa (206). Caso contrário, quando uma falha elétrica é a causa da interrupção, uma etapa (202) é executada.
[0045] Na etapa 202, o processador principal (50) verifica se uma atualização do programa de inicialização está em curso. Se não houver nenhuma atualização em curso, é encerrado o algoritmo na etapa (206). Se ocorrer a interrupção durante a atualização, uma etapa (203) é executada.
[0046] Na etapa (203), a atualização de programa de inicialização é interrompida.
[0047] Em uma etapa (204) opcional, o dispositivo é alternado para um modo de economia de energia, interrompendo a alimentação elétrica dos componentes não vitais, isto é, componentes não essenciais para o funcionamento do processador auxiliar (10) e do processador principal (50).
[0048] Em uma etapa (205), o processador principal (50) envia ao processador auxiliar (10) uma ordem de desativar o programa de inicialização presente na memória não volátil regravável (12). As etapas (203) a (205), assim, formam uma fase de assegurar a inicialização do dispositivo. Em seguida, é finalizado o algoritmo na etapa (206).
[0049] A desativação do programa de inicialização pode ser realizada de diferentes maneiras. Simplesmente é importante que os dados presentes na memória não volátil regravável (12) não sejam interpretados pelo processador auxiliar (10) como instruções, para que o processador auxiliar (10) tenha um comportamento previsível. Por exemplo, as instruções podem ser escritas para o processador auxiliar (10) permanecer em um estado desligado executando estas instruções. Os dados escritos em vez do programa de inicialização podem ser quaisquer dados capazes de bloquear o processador auxiliar (10) durante a inicialização.
[0050] Alternativa mente, a invalidação do programa de inicialização pode ser alcançada através de instruções NOP (No Operation) de não fazer nada. Por exemplo, tal instrução é codificada por 0x4e71 bytes na família de microprocessadores Motorola (marca depositada) 680x0, ou ainda 0x00 para a família de microcontroladores Intel (marca depositada) 8051 e novamente 0x00000000 para a família ARM (marca depositada). Também é possível substituir o programa de inicialização com um loop infinito. Por exemplo, isto pode ser alcançado por uma simples instrução de ramificação incondicional que circula de volta sobre si mesma. Além disso, alguns processadores ou microcontroladores, em particular os que incorporam a memória não volátil regravável, disponibilizam uma função total de apagar a dita memória não volátil regravável, o que permite desativar o programa de inicialização.
[0051] Como já foi dito, a situação no caso de limites também requer um mecanismo de resgate de inicialização que pode substituir a inicialização normal do dispositivo em caso de problema de corrupção do programa de inicialização.
[0052] Assim, preferencialmente, o processador principal (50) verifica se o processador auxiliar (10) está no estado normal de funcionamento capaz de se comunicar com o processador principal (50), e inicia a fase de atualização do programa de inicialização, quando o processador auxiliar (10) não está em condições normais de funcionamento. O comportamento do dispositivo, mais particularmente do sequenciador (35), durante uma fase de inicialização, será agora descrito. Em primeiro lugar, com referência ao diagrama de sequências da Fig. 6, a descrição refere-se a um cenário em que o programa de inicialização é válido. Em uma segunda etapa, com referência ao diagrama de sequência da Fig. 7, a descrição é um cenário em que o programa de inicialização foi desativado. Um sequenciamento de inicialização é obtido utilizando temporizadores (timer), mas também pode ser alcançado com linhas de retardo ou outros meios de retardar a ação em detrimento de outro.
[0053] Para utilizar o dispositivo, o usuário executa uma ação para iniciar o dispositivo como, por exemplo, pressionar um botão início/parada do dispositivo ou conectando o dispositivo a uma tomada elétrica. Esta ação é detectada pelo dispositivo em uma etapa (310) e a informação representativa desta ação é comunicada ao sequenciador (35).
[0054] Em uma etapa (311), o sequenciador (35) aguarda que os componentes do dispositivo estejam operacionais. O sequenciador (35) lança normalmente uma temporização de duração pré-definida. Em particular, o sequenciador (35) aguarda a estabilização da fonte de alimentação (30), mas da mesma forma o sequenciador (35) aguarda, por exemplo, estabilizar os osciladores (não representados).
[0055] Em seguida, em uma etapa (312), o sequenciador (35) instrui o processador (10) para começar auxiliar e, em uma etapa (313), inicia uma inicialização retardada do processador principal (50) em um tempo pré-definido.
[0056] No modo de funcionamento normal, em uma etapa (314), o processador auxiliar (10) executa o programa de inicialização, em resposta à ordem recebida do sequenciador (35). O programa de inicialização, em uma etapa (315), dirige o processador principal (50) para iniciar e, em seguida, com o auxílio de um procedimento de sincronização, o processador principal (50) e o processador auxiliar (10) são sincronizados, validando assim a inicialização do dispositivo. Este procedimento de sincronização é, por exemplo, realizado por uma troca de mensagens utilizando com o auxílio de meios de comunicação interna (34). Para ilustrar esta troca, o processador principal (50), em uma etapa (316), envia uma primeira mensagem de sincronização para o processador auxiliar (10). Além disso, em uma etapa (317), o processador principal (50) ativa um cão de guarda ("watchdog" em inglês) para evitar ficar preso à espera de uma confirmação da primeira mensagem de sincronização. Em uma etapa (318), o processador auxiliar (10) está operacional (isto é, em estado de funcionamento normal), o processador auxiliar (10) responde por uma segunda mensagem, o reconhecimento da primeira mensagem, antes da expiração do cão guarda. A fase de inicialização do dispositivo está completa e o dispositivo está em estado normal de funcionamento.
[0057] Nesse caso de funcionamento normal, a inicialização retardada lançada em uma etapa (319) pelo sequenciador (35) não tem nenhum impacto sobre o funcionamento do dispositivo, o processador principal (50) já tendo sido iniciado.
[0058] Em uma realização alternativa, no caso de funcionamento normal, o programa de inicialização inclui instruções solicitando que o processador auxiliar (10) bloqueie o início do processador principal (50) por um tempo pré-definido, de modo que a inicialização retardada iniciada em uma etapa (319) pelo sequenciador (35) não tenha nenhum impacto sobre o funcionamento do dispositivo.
[0059] No caso de o programa de inicialização foi desativado, o processador auxiliar (10) não executa uma instrução válida para iniciar o processador principal (50). O dispositivo é iniciado no modo de funcionamento normal, mas o processador auxiliar (10) está no estado anormal de funcionamento. Esta situação é ilustrada pelo diagrama de sequência da Fig. 7.
[0060] Tal como o cenário de funcionamento normal, o usuário executa uma ação para iniciar o dispositivo. Esta ação é detectada pelo dispositivo na etapa (310) e a informação representativa desta ação é comunicada para o sequenciador (35). Em seguida, na etapa (311), o sequenciador (35) aguarda que os componentes do dispositivo estejam operacionais.
[0061] Em seguida, na etapa (312), o sequenciador de (35) tenta iniciar o processador auxiliar (10) e, na etapa (313), inicia a inicialização retardada do processador principal (50). No entanto, neste cenário, o processador auxiliar (10) permanece bloqueado por causa de programa de inicialização desativado.
[0062] A inicialização do processador principal (50) vem por ordem do sequenciador (35), na etapa (319), após o tempo pré-definido já mencionado. Este período é estabelecido de modo que o tempo decorrido desde a inicialização do processador auxiliar (10) pelo sequenciador (35) seja maior do que o tempo necessário, em estado normal de funcionamento, o processador auxiliar (10) sendo capaz de receber a primeira mensagem de sincronização transmitida pelo processador principal (50). Uma vez inicializado, na etapa (316), o processador principal (50) envia a primeira mensagem de sincronização ao processador auxiliar (10) e, na etapa (317) ativa o cão de guarda. No entanto, o processador auxiliar (10) não está no estado normal de funcionamento e não responde à primeira mensagem de sincronização. No fim do prazo estabelecido pelo mecanismo de cão de guarda, o processador principal (50), em uma etapa (320), verifica que o processador auxiliar (10) não está no estado normal de funcionamento, isto é, que o processador auxiliar (10) não está operacional. O processador principal (50), em uma etapa (321), em seguida, alterna o processador auxiliar (10) no modo de atualização, e procede-se à atualização do programa de inicialização, como já foi descrito em relação às Fig. 2 e Fig. 3.
[0063] O dispositivo cujo comportamento é descrito acima inclui mecanismos que permitem atualizar o programa de inicialização sem aumentar os recursos necessários do dispositivo e particularmente a capacidade da memória não volátil regravável usada para armazenar o programa de inicialização. Contudo, em uma corrupção de dados ou instruções armazenadas resta possível escrever um infortúnio na memória não volátil regravável (12). A fim de limitar este risco, é possível forçar uma verificação sistemática da integridade do programa de inicialização para cada extinção do dispositivo, que a extinção é completa e corresponde a um modo de "vigilância", com um consumo de energia reduzido. Pelo modo de "vigilância" entende-se, por exemplo, um modo em que apenas o processador auxiliar (10) funciona e os componentes não essenciais ao funcionamento do processador auxiliar (10) são então alimentados. Para efetuar esta verificação sistemática, o algoritmo da Fig. 5 mostra um procedimento de extinção (300). Em uma etapa (301), o processador principal (50) verifica a integridade do programa de inicialização presente na memória não volátil regravável (12).
[0064] Na etapa (302), o processador principal (50) testa o resultado da verificação. Se o teste de validade for positivo, uma etapa (305) é executada. Caso contrário, se o teste de validade for negativo, revelando assim uma corrupção do programa de inicialização presente na memória não volátil regravável (12), o processador principal (50) realiza uma etapa (303).
[0065] Na etapa (303), o processador principal (50) executa a fase de atualização do programa de inicialização, tal como já descrito em relação à Fig. 2, em seguida a etapa
[0066] (305) é executada.
[0067] Na etapa (305), o processador principal (50) desliga o dispositivo e é finalizado no algoritmo.

Claims (10)

1. Método para atualização de um programa de inicialização armazenado em uma memória não volátil regravável (12) de um dispositivo que compreende um primeiro processador (10) e um segundo processador (50), o primeiro processador sendo apto para executar o programa de inicialização, o método sendo implementado pelo dispositivo e compreendendo uma fase de assegurar a execução de inicialização implementada no caso em que ocorra uma falha elétrica durante uma atualização do programa de inicialização, a fase de assegurar a inicialização sendo realizada usando uma fonte de alimentação de backup (33) que fornece um relé de uma alimentação (30) principal na presença de falha elétrica, a fase de segurança de inicialização compreendendo as etapas de: - interromper (203) a atualização em progresso do programa de inicialização; e - desabilitar (205) o programa de inicialização para o primeiro processador de modo a desabilitar o primeiro processador na inicialização; caracterizado por o método compreender ainda uma fase de inicialização atrasada do segundo processador em relação à inicialização do primeiro processador, de modo que: - quando o programa de inicialização for inválido, o dispositivo iniciar em um modo de atualização do programa de inicialização; e - quando o programa de inicialização for válido, o dispositivo iniciar com a carga do software de inicialização de modo que o primeiro e o segundo processadores sejam sincronizados, pelo que, quando o software de inicialização for válido, o primeiro processador iniciar com o software de inicialização e a carga do software de inicialização solicitar ao primeiro processador para iniciar o segundo processador e sincronizar com o segundo processador através de trocas de mensagens, pelo que, quando o software de inicialização não for válido, o primeiro processador permaneça desabilitado devido ao software de inicialização ter sido invalidado, e pelo que o segundo processador verificar na inicialização se o primeiro processador realiza as trocas de mensagens para sincronizar o primeiro e o segundo processadores e, quando o segundo processador não receber uma mensagem do primeiro processador, o segundo processador acionar o modo de atualização do software de inicialização.
2. Método, de acordo com a reivindicação 1, caracterizado por compreender uma fase de atualização do programa de inicialização, implementado pelo segundo processador, compreendendo as etapas de: - mudar (101) o primeiro processador no modo de atualização do programa de inicialização; - escrever (102) um novo programa de inicialização na memória não volátil regravável; - verificar (103) se o novo programa de inicialização tal como escrito na memória não volátil regravável é válido; - repetir a fase de atualização na etapa que consiste em escrever o novo programa de inicialização, quando o novo programa de inicialização como escrito for inválido; e - colocar (105) o primeiro processador em um modo de funcionamento normal, quando o novo programa como escrito for válido.
3. Método, de acordo com a reivindicação 2, caracterizado por compreender ainda as seguintes etapas, executadas pelo segundo processador, durante uma inicialização de dito dispositivo: - verificar se o primeiro processador está no estado de funcionamento normal capaz de se comunicar com o segundo processador; e - abrir a fase (100) de atualização do programa de inicialização, quando o primeiro processador não estiver no estado de funcionamento normal.
4. Método, de acordo com a reivindicação 3, caracterizado por, a fim de verificar o estado de funcionamento do primeiro processador, o segundo processador executar as seguintes etapas: - enviar uma primeira mensagem para o dito primeiro processador; - considerar o estado de funcionamento do primeiro processador como normal, quando o segundo processador (50) receber uma segunda mensagem reconhecendo a primeira mensagem dentro de um intervalo de tempo pré-definido; e - considerar o estado de funcionamento do primeiro processador como anormal, quando o segundo processador (50) não receber a segunda mensagem reconhecendo a primeira mensagem dentro de um intervalo de tempo pré-definido.
5. Método, de acordo com qualquer uma das reivindicações de 2 a 4, caracterizado por compreender ainda, enquanto o dito dispositivo estiver desligado, as seguintes etapas de: - verificar (301) se o programa de inicialização armazenado na memória não volátil regravável é válido; e - lançar (303), com o auxílio do segundo processador, a fase de atualização do carregador do programa de inicialização, quando o programa de inicialização armazenado na memória não volátil regravável for inválido.
6. Método, de acordo com qualquer uma das reivindicações de 1 a 5, caracterizado por a fase de assegurar a inicialização compreender ainda a etapa que consiste em interromper (204) o fornecimento de energia dos componentes secundários não essenciais para o funcionamento do primeiro processador e do segundo processador.
7. Dispositivo, compreendendo um primeiro processador (10) e um segundo processador (50), o primeiro processador sendo capaz de executar um programa de inicialização armazenado em uma memória não volátil regravável, o dispositivo compreendendo meios para assegurar a inicialização implementada quando ocorrer uma falha elétrica durante uma atualização do programa de inicialização, os meios para assegurar a inicialização sendo implementados em virtude de uma fonte de alimentação de backup (33) que provê um relé de uma alimentação (30) principal na presença de falha elétrica, os meios para assegurar a inicialização compreendendo: - meios para interromper a atualização em andamento o programa de inicialização; e - meios para invalidar o programa de inicialização para o primeiro processador de forma a desabilitar o primeiro processador durante a inicialização; e caracterizado por o dispositivo compreender ainda meios de inicialização atrasada (35) do segundo processador em relação à inicialização do primeiro processador de modo que: - quando o programa de inicialização for inválido, o dispositivo inicia em um modo de atualização do programa de inicialização; e - quando o programa de inicialização for válido, o dispositivo inicializa com o carregador de programa de inicialização para que o primeiro e o segundo processadores sincronizem um com o outro, pelo que, quando a carda do programa de inicialização é válida, o primeiro processador inicializa com o carregador de programa de inicialização e o carregador de programa de inicialização pede ao primeiro processador para inicializar o segundo processador e sincronizar com o segundo processador por meio de trocas de mensagens, pelo que, quando o carregador de programa de inicialização não for válido, o primeiro processador permaneça desabilitado devido ao carregador de programa de inicialização ter sido invalidado, e pelo que o segundo processador verifica ao inicializar se o primeiro processador realiza as trocas de mensagens de modo a sincronizar o primeiro e o segundo processadores e, quando o segundo processador não receber nenhuma mensagem do primeiro processador, o segundo processador acionar o modo de atualização do carregador de programa de inicialização.
8. Dispositivo, de acordo com a reivindicação 7, caracterizado por a fonte de alimentação de backup ser selecionada a partir do grupo que compreende um capacitor, um supercapacitor, uma bateria elétrica e um acumulador.
9. Dispositivo, de acordo com qualquer uma das reivindicações 7 e 8, caracterizado por compreender os meios de monitoração (32) da alimentação principal, com base em um comparador que apresenta uma primeira entrada onde é injetado um valor de tensão de referência e uma segunda entrada onde é injetado um valor de tensão derivado da alimentação principal através de uma ponte divisora de tensão.
10. Dispositivo, de acordo com qualquer uma das reivindicações 7 e 8, caracterizado por compreender os meios de monitoração (32) da alimentação principal com base em um comparador e um conversor analógico-digital, o conversor analógico- digital sendo adaptado para converter a tensão de alimentação principal em um valor digital e o comparador sendo adaptado para comparar o dito valor digital com um limiar pré-definido
BR112016005213-7A 2013-09-10 2014-09-09 método para atualização de um programa de inicializção de dispositivo multiprocessado. BR112016005213B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1358710A FR3010553B1 (fr) 2013-09-10 2013-09-10 Procede de mise a jour d'un logiciel de demarrage d'un dispositif multiprocesseur
FR13/58710 2013-09-10
PCT/EP2014/069157 WO2015036388A1 (fr) 2013-09-10 2014-09-09 Procédé de mise à jour d'un logiciel de démarrage d'un dispositif multiprocesseur

Publications (1)

Publication Number Publication Date
BR112016005213B1 true BR112016005213B1 (pt) 2021-01-26

Family

ID=50023663

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112016005213-7A BR112016005213B1 (pt) 2013-09-10 2014-09-09 método para atualização de um programa de inicializção de dispositivo multiprocessado.

Country Status (6)

Country Link
US (2) US10289422B2 (pt)
EP (2) EP3540602B1 (pt)
CN (2) CN105683921B (pt)
BR (1) BR112016005213B1 (pt)
FR (1) FR3010553B1 (pt)
WO (1) WO2015036388A1 (pt)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017125172A1 (de) * 2017-10-26 2019-05-02 Schréder S.A. Verfahren zur Aktualisierung eines Bootloaders eines Controllers einer Leuchte
CN107704258B (zh) * 2017-10-27 2020-12-01 深圳市恒扬数据股份有限公司 Uboot升级方法、系统及终端设备
US10901479B1 (en) 2019-04-23 2021-01-26 Motorola Solutions, Inc. Method and apparatus for managing power-up of a portable communication device
US11374877B2 (en) * 2020-03-16 2022-06-28 Hewlett Packard Enterprise Development Lp Runtime schema for services in a switch
US11321077B1 (en) * 2020-06-05 2022-05-03 Amazon Technologies, Inc. Live updating of firmware behavior
US20220244966A1 (en) * 2021-02-03 2022-08-04 Ampere Computing Llc Multi-socket computing system employing a parallelized boot architecture with partially concurrent processor boot-up operations, and related methods
US11797679B2 (en) * 2021-07-28 2023-10-24 Dell Products, L.P. Trust verification system and method for a baseboard management controller (BMC)

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1475704A2 (en) * 2003-05-08 2004-11-10 Matsushita Electric Industrial Co., Ltd. Information processing apparatus
KR100506203B1 (ko) * 2003-09-17 2005-08-05 삼성전자주식회사 부팅 및 부트 코드 업데이트 방법 및 시스템
KR100987628B1 (ko) * 2004-02-07 2010-10-13 엘지전자 주식회사 엠비디드 컨트롤러의 펌웨어 갱신방법 및 갱신용 펌웨어저장매체
US7574590B2 (en) * 2005-10-26 2009-08-11 Sigmatel, Inc. Method for booting a system on a chip integrated circuit
US7600055B2 (en) * 2006-01-03 2009-10-06 International Business Machines Corporation Apparatus, system, and method for firmware update of redundant controllers
JP4868216B2 (ja) * 2006-01-19 2012-02-01 日本電気株式会社 ファームウェア更新回路およびファームウェア更新方法
JP2007206885A (ja) * 2006-01-31 2007-08-16 Toshiba Corp コンピュータシステム及びシステム起動方法
US7870379B2 (en) * 2006-10-10 2011-01-11 Exaflop Llc Updating a power supply microcontroller
US8320302B2 (en) * 2007-04-20 2012-11-27 Elster Electricity, Llc Over the air microcontroller flash memory updates
KR20120052406A (ko) * 2007-10-04 2012-05-23 오픈픽 인크. 펌웨어 이미지 갱신 및 관리
WO2009156615A1 (fr) * 2008-06-02 2009-12-30 Awox Procede et dispositif de mise a jour d'application informatique
CN101739270B (zh) * 2008-11-05 2013-04-03 英华达(上海)科技有限公司 电子装置及其系统更新方法
US20100131694A1 (en) * 2008-11-26 2010-05-27 Kelly Scott G Secure Boot ROM Emulation
US9077654B2 (en) * 2009-10-30 2015-07-07 Iii Holdings 2, Llc System and method for data center security enhancements leveraging managed server SOCs
US8417962B2 (en) * 2010-06-11 2013-04-09 Microsoft Corporation Device booting with an initial protection component
US8713559B2 (en) * 2010-11-15 2014-04-29 Schneider Electric It Corporation System and method for updating firmware
KR20130114672A (ko) * 2011-01-19 2013-10-17 인터내셔널 비지네스 머신즈 코포레이션 소프트웨어를 업데이트하는 장치 및 방법
KR20120092222A (ko) * 2011-02-11 2012-08-21 삼성전자주식회사 보안 부팅 방법 및 보안 부트 이미지 생성 방법
US8578362B2 (en) * 2011-03-18 2013-11-05 Hamilton Sundstrand Corporation Method for downloading software to an electronics product
US8707019B2 (en) * 2011-07-02 2014-04-22 Intel Corporation Component update using management engine
CN103010039A (zh) * 2011-09-28 2013-04-03 宁波拜特测控技术有限公司 一种电池管理系统引导加载方法
US9274805B2 (en) * 2012-02-24 2016-03-01 Qualcomm Incorporated System and method for thermally aware device booting
CN102780578A (zh) * 2012-05-29 2012-11-14 上海斐讯数据通信技术有限公司 网络设备的操作系统的更新系统及更新方法
US8442792B1 (en) * 2012-10-26 2013-05-14 Elbex Video Ltd. Method and apparatus for calibrating intelligent AC outlets
KR20140060912A (ko) * 2012-11-13 2014-05-21 한국전자통신연구원 부트로더를 업데이트하는 방법 및 장치
US9021457B2 (en) * 2013-01-22 2015-04-28 Apple Inc. Method and system for dynamically resizing enclosed storage device partitions
US9336010B2 (en) * 2013-03-15 2016-05-10 Xilinx, Inc. Multi-boot or fallback boot of a system-on-chip using a file-based boot device
US9292301B1 (en) * 2015-04-06 2016-03-22 Psikick, Inc. Systems, methods, and apparatus for controlling the power-on or boot sequence of an integrated circuit based on power harvesting conditions
US10002015B2 (en) * 2015-07-10 2018-06-19 International Business Machines Corporation Delayed boot of a virtual machine in a virtualized computing environment based on a fabric limit
US9858067B2 (en) * 2015-10-05 2018-01-02 Samsung Electronics Co., Ltd. Electronic system with update control mechanism and method of operation thereof
US10496388B2 (en) * 2016-03-24 2019-12-03 Intel Corporation Technologies for securing a firmware update
US10452404B2 (en) * 2016-07-28 2019-10-22 Microsoft Technology Licensing, Llc. Optimized UEFI reboot process

Also Published As

Publication number Publication date
CN110069363A (zh) 2019-07-30
US11061690B2 (en) 2021-07-13
CN105683921B (zh) 2019-04-23
US20160216978A1 (en) 2016-07-28
WO2015036388A1 (fr) 2015-03-19
EP3540602A1 (fr) 2019-09-18
FR3010553A1 (fr) 2015-03-13
CN110069363B (zh) 2023-05-12
US10289422B2 (en) 2019-05-14
US20190227811A1 (en) 2019-07-25
EP3044679B1 (fr) 2019-05-15
EP3044679A1 (fr) 2016-07-20
EP3540602B1 (fr) 2020-12-16
CN105683921A (zh) 2016-06-15
FR3010553B1 (fr) 2015-09-04

Similar Documents

Publication Publication Date Title
BR112016005213B1 (pt) método para atualização de um programa de inicializção de dispositivo multiprocessado.
EP2989579B1 (en) Redundant system boot code in a secondary non-volatile memory
US20190073478A1 (en) Hardware-enforced firmware security
CN111158767B (zh) 基于bmc的服务器安全启动方法及装置
TW201443686A (zh) 驗證控制器碼及系統啓動碼之技術
JP7022809B2 (ja) コンピュータシステム、および、その安全管理方法、および、コンピュータソフトウェア製品
TW201506675A (zh) 修復受危害之系統啓動碼之技術
CN110795738B (zh) 一种计算机的启动方法和控制器、存储介质以及系统
WO2018045922A1 (zh) 一种备电方法及装置
JP5376058B2 (ja) システム制御装置、情報処理システム及び情報処理システムのデータ退避及び復元方法
CN110659498A (zh) 可信计算度量方法及其系统、计算机可读存储介质
JP2019133623A (ja) メモリモジュール内のデータを保全するコンピュータシステムおよびそれを用いたコンピュータ実装方法
WO2010039149A1 (en) Clearing secure system resources in a computing device
CN113076222A (zh) 一种基于安培平台的双eeprom系统及双eeprom切换方法
JP5818257B2 (ja) 計算機システム、電源切断処理装置、電源切断処理方法およびプログラム
CN114444083A (zh) 一种基于bmc的服务器bios全生命周期安全保护系统
TWI839123B (zh) 支持平台韌體恢復的管理系統及其韌體回復方法
CN117170721A (zh) 基于bmc的fpga固件处理方法及装置
WO2017131680A1 (en) Operational verification
CN111356965A (zh) 睡眠状态检测
TW200903335A (en) System of auto-switching BIOS and the method thereof

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 09/09/2014, OBSERVADAS AS CONDICOES LEGAIS.