JP5270377B2 - ブリッジサポートを有するプラットフォーム起動 - Google Patents

ブリッジサポートを有するプラットフォーム起動 Download PDF

Info

Publication number
JP5270377B2
JP5270377B2 JP2008557615A JP2008557615A JP5270377B2 JP 5270377 B2 JP5270377 B2 JP 5270377B2 JP 2008557615 A JP2008557615 A JP 2008557615A JP 2008557615 A JP2008557615 A JP 2008557615A JP 5270377 B2 JP5270377 B2 JP 5270377B2
Authority
JP
Japan
Prior art keywords
cpu
activation
processing device
configuration
processing unit
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2008557615A
Other languages
English (en)
Other versions
JP2009529721A (ja
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 JP2009529721A publication Critical patent/JP2009529721A/ja
Application granted granted Critical
Publication of JP5270377B2 publication Critical patent/JP5270377B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • 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/4405Initialisation of multiprocessor systems

Landscapes

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

Description

本発明は、第1および第2の処理部を備える処理装置の起動に関する。
第1および第2の処理部を備える処理装置の一例は、移動プラットフォーム、すなわち複数の異なる移動通信装置に用いるチップセット/集積回路を備える。移動プラットフォームは、いくつかの異なるハードウェア構成で使用可能であり、かかるハードウェア構成には、例えば2つの中央処理装置(central processing unit:CPU)を用いる携帯電話アーキテクチャが含まれる。このような2‐CPU携帯電話アーキテクチャにおいて、CPUのうち一方は、概して通信/リアルタイム強制タスク(communication/real‐time constrained tasks)を処理するアクセスCPUとして使用され、他方のCPUは、電話アプリケーションタスクを処理するアプリケーションCPUとして使用される。アプリケーションCPUとアクセスCPUとの両方を同じベースバンドデジタル特定用途向け集積回路(application specific integrated circuit:ASIC)上に備えることがコスト面で有利である。しかしながら、プラットフォームをより強力なアプリケーションシステムとともに使用することを可能とするためには、プラットフォームのアプリケーションCPUではなく、外部CPUおよびアプリケーションシステムをプラットフォームとともに用いることが一般的には望ましい。例えば、プラットフォームを備える電子装置は、例えばUSB(universal serial bus:ユニバーサルシリアルバス)を介すなど、適切なインターフェースを介して、コンピュータなど別のデータ処理システムに接続可能である。プラットフォームの内部アプリケーションCPUではなく、外部CPUが用いられる、このような構成は、ブリッジ構成(bridge configuration)とも呼ばれる。この場合、内部アプリケーションCPUを直接使用することはない。
第1の観点によれば、このように、初期化と起動との両状況を効果的かつコスト面でも効率良く容易にする初期化処理または起動処理を提供することが望ましい。
欧州特許出願1486869号は、主動プロセッサ(main processor)と共動プロセッサ(co‐processor)とを含むシステムの共動プロセッサを初期化する起動処理を開示している。この処理により、共動プロセッサに関連するNORフラッシュメモリの必要性がなくなるとはいえ、それぞれのプロセッサに接続される2または3以上のフラッシュメモリは依然として必要である。
別の観点によれば、通常動作用移動プラットフォームのような処理装置の起動には、例えばオペレーティングシステムおよび/またはファームウェアなど、ある基本ソフトウェアまたはあるプラットフォームソフトウェアが必要となり、恐らくはある構成パラメータが、例えば装置製造過程または後続構成の製造過程において、処理装置上にインストールされている。このインストールは、概してソフトウェアを処理装置上へ、例えば装置のフラッシュメモリなどの不揮発性メモリへロードすることで行われる。そのために、概して処理装置は、ソフトウェアフラッシングモード(software flashing mode)またはサービスモード(service mode)と呼ばれる特別な動作モードで動作可能であり、かかるモードにおいて処理装置は、通常使用に構成可能となるように、外部インターフェースを通してソフトウェアをロードすることに適合される。また、基本ソフトウェアおよび構成パラメータをロードする処理は、外部ロードと呼ぶことにする。
ある移動プラットフォームにおいて、外部ロードは、アクセスCPUに接続されるサービスピンにより示される。サービスピンは、例えばユーザが特定のキーボード組合せを入力すると、誘起可能である。ひとたびサービスモードが検出されると、プラットフォームは、例えばフラッシュメモリなどの内部不揮発性メモリからではなく外部インターフェースから、実行するソフトウェアをロードする。しかしながら、第2の観点によれば、ハードウェア構成に関係のないサービスモードにおける動作を容易にする起動処理を提供する問題が残る。
第1の観点によれば、処理装置を起動する方法が開示され、処理装置は第1および第2の処理部を備え、上記方法は、第1の処理部により、少なくとも1つの起動構成パラメータが処理装置の不揮発性ストレージ媒体からアクセス可能であるかどうかを検出することと、少なくとも1つの構成パラメータは起動インターフェースを示していることと、上記少なくとも1つの構成パラメータが使用可能である場合、検出された少なくとも1つの構成パラメータの少なくとも一部を、第1の処理部により第2の処理部へ送信し、少なくとも1つの構成パラメータが使用可能でない場合、第1および第2の処理部のうち少なくとも1つにより、起動インターフェースが処理装置にとって使用可能かどうか検出することと、示されたまたは検出された起動インターフェースから少なくとも第2の処理部を起動することとを含む。
したがって、処理装置が通常構成で、すなわち処理装置の両方の処理部を用いて起動するか、または処理部のうち1つだけが使用されるブリッジ構成で起動するかにかかわらず、上の起動処理は実行可能であり、それによりマルチプロセッサ装置のための汎用の立ち上げまたは起動の手続を提供可能である。
特に、ここで説明する起動処理の実施形態は、フラッシュメモリの存在を必要とせず、したがって異なるハードウェア構成で動作する装置の処理に使用可能である。
さらに、USBなどのブリッジインターフェースは他の非ブリッジ用としても使用可能であるため、純ハードウェア潜在ブリッジ構成(pure hardware‐implicit bridge configuration)を、すなわちどのインターフェースが接続されているかに基づく、完全にハードウェアベースのブリッジ構成検出を、ここで説明する起動処理の実施形態は必要としない。
移動プラットフォーム製造業者にとっては、プラットフォームの動作の構成として選択される特定のハードウェア構成およびソフトウェア構成にかかわらず起動可能である単一の起動プログラムを備える汎用プラットフォームを生産可能であるという利点が興味深い。例えば、スマートフォン(smart phone)や、USBプラグのようなモデム製品などに用いる低コストの移動プラットフォームを提供可能とすることが、ここで説明する起動処理の利点であり、このプラットフォームは、フラッシュメモリのような大きな不揮発性メモリがなくとも起動可能である。
検出されたまたは示されたブートインターフェースは、内部インターフェース、すなわち処理装置に備わる別のモジュール(module)/部(unit)へのインターフェースでも、または外部インターフェース、すなわち外部装置に接続するインターフェースでもよい。内部インターフェースの例には、処理装置に備わる不揮発性メモリへのインターフェースが含まれる。したがって、外部CPUは、移動プラットフォームのチップ/チップセット/集積回路基板の外部にある。外部CPUは、例えば個別の集積回路基板上のCPUなど、同一の処理装置内にあるCPUであってもよく、または外部CPUは、移動プラットフォームを備える処理装置とは異なる個別の装置のCPUであってもよい。
ある実施形態において、1または2以上の起動構成パラメータが処理装置の不揮発性ストレージ媒体からアクセス可能であるかどうかを検出することは、構成パラメータを格納する不揮発性メモリを処理装置が備えるかどうかを検出することを含み、構成パラメータを格納する不揮発性メモリを処理装置が備える場合には、1または2以上の構成パラメータを含むデータファイルを、検出された不揮発性メモリが格納しているかどうかを検出することを含む。構成パラメータの例は、ソフトウェアバージョン情報のようなセキュリティパラメータ、カスタマーID、ブリッジ/非ブリッジフラグのようなプラットフォームハードウェア構成パラメータ、および/またはブリッジインターフェース識別などを含んでもよい。
不揮発性プラットフォームストレージが使用可能であり、プラットフォームが適切にカスタマイズされている場合に、起動手続の起動ポーリング(polling)順は初めに不揮発性プラットフォームストレージにブリッジ構成情報を発見しようとするため、ここで説明する起動手続は、移動プラットフォームシステム上に不揮発性ストレージを有する構成において特に効果的に機能する。このような構成は、概して立ち上げ性能に対し緊縮の要求がある巨大市場製品に用いられるため、上記のような効果的機能は有利である。しかしながら、格納ブリッジ構成情報が欠如していると、起動処理は、可能性のある外部インターフェースをポーリングし、可能性のある外部インターフェースからブリッジ構成情報が入手可能であるかどうか検出するため、起動処理は他の「フラッシュレス(flash‐less)」構成でも実行可能である。
ある実施形態において、示されたまたは検出された起動インターフェースから少なくとも第2の処理部を起動することは、示されたまたは検出された起動インターフェースから起動ソフトウェアを、すなわち起動処理の少なくとも一部を行うソフトウェアを受信することを含む。起動ソフトウェアを受信することが、受信される起動ソフトウェアの実行前に第1および第2の処理部のうち少なくとも1つにより、起動ソフトウェアのセキュリティチェックを行うことをさらに含む場合、不正ソフトウェアを用いてシステムを起動しようとすることや、不正ユーザがシステムを起動しようとすることに対するセキュリティが増強される。例えば、セキュリティチェックは、起動ソフトウェアの信頼性および/または完全性の検証、および/または起動ソフトウェアのプロバイダの信頼性および/または権限の検証などを含んでもよい。セキュリティチェックは暗号検証処理を、例えば秘密鍵および/または公開鍵をもとにした暗号検証処理を含む場合もある。
ある実施形態において、セキュリティチェックを行うことは、起動中に、ソフトウェア検証のためのセキュリティルートとして機能する第1および第2の処理部のうち1つにより行われる。ある実施形態において、セキュリティルートとして機能する処理部によりセキュリティ情報を読み出すことを上記方法は含み、その場合セキュリティ情報は、システムの不揮発性ストレージ媒体に格納され、暗号保護などで保護される。その結果、セキュリティが重要となる機能のほとんどは処理部の1つに集められ、それにより悪質な攻撃のリスクをさらに軽減する。
ある実施形態において、第1の処理部により、所定の起動シーケンスのプロトコル相互作用のシーケンスを行うことを上記方法は含み、その場合プロトコル相互作用のサブセットのみが、1または2以上の構成パラメータが使用可能であるかどうかを検出することにおける条件とされる。プロトコル相互作用の例には、第2の処理部および/またはストレージ媒体および/または外部インターフェースとのメッセージ、要求、応答などの交換が含まれる。ある実施形態において、サブセットは、5つ未満の相互作用を含む。したがって、異なる構成において相互作用のそれぞれのシーケンスが互いに1または少数の相互作用のみで異なるように、起動処理が構築される場合、ハードウェア構成にかかわらず適用可能であるコンパクトな起動ソフトウェアが提供されてもよい。ゆえに、起動処理は、汎用性のものであっても、装置内に大量のメモリを必要とせず、メンテナンスおよびインストールに対するコスト面で効率的である。
第2の観点によれば、処理装置を起動する方法が開示され、処理装置は第1および第2の処理部を備え、単独構成とブリッジ構成とのうち1つで選択可能なように起動可能であり、その場合単独構成においては、第1および第2の処理部が動作可能になるように初期化され、ブリッジ構成においては、第2の処理部のみが動作可能になるように初期化され、通信インターフェースを介して外部処理部に動作可能なように接続されるように初期化され、上記方法は、処理装置が単独構成で起動されるか、ブリッジ構成で起動されるかを検出することと、処理装置がブリッジ構成で起動される場合、通信インターフェースを介して外部処理部から起動モード表示を受信することと、起動モード表示は、処理装置がサービスモードで起動されるかどうかを示していることと、サービスモードにおいては、処理装置は外部処理装置から処理装置の不揮発性メモリへソフトウェアをロードするように構成されることと、受信された起動モード表示に応じて、処理装置を上記サービスモードで起動することとを含む。
ゆえに、プラットフォーム装置が単独構成で動作するか、ブリッジ構成で動作するかにかかわらず、通常動作でもサービスモードでもプラットフォーム装置を起動することが可能であることが、ここで説明する起動処理の実施形態の利点である。
例えば、移動プラットフォームUSBブリッジ解決法、すなわち移動プラットフォームアクセスCPUと外部CPUシステムとの間の通信インターフェースとしてUSBを用いる移動プラットフォームにおいては、USB接続は概して外部システムへのサービスピンの接続を提供することがないため、プラットフォームをサービス起動モードで起動するか、通常起動モードで起動するかを、サービスピンまたは他のハードウェア構成を必要としなくとも、外部システムが示すということが、ここで説明する起動処理により可能となる。このように、ここで説明する起動処理の実施形態は、「フラッシュレス」ブリッジ構成にも、サービスピンサービス表示なしの構成にも汎用起動手続を提供する。しかしながら、起動処理の実施形態は、CPUの1つに接続されるピンを設定することや、外部システムとのプロトコル相互作用などにより、サービスモードがハードウェア構成により示されることを容易にすることが可能である。
効果的に、例えば不要な立ち上げ遅延がなく、非ブリッジ構成および/またはフラッシュ構成に対し機能可能である汎用起動処理を提供することが、ここで説明する起動処理のさらなる利点である。
ある実施形態において、処理装置が単独モードで起動される場合、処理装置のユーザインターフェースを介して起動モード表示を受信することを上記方法はさらに含み、起動モード表示は、処理装置がサービスモードで起動されるかどうかを示している。その結果、起動処理は、装置ユーザインターフェースを介したユーザによるサービスモードの表示も可能にする。例えば、かかる表示は、処理部のうち1つのサービスピンにより提供可能である。
ある実施形態において、処理装置は、少なくとも1つの通信サービスを提供する通信装置であり、その場合第1の処理部は、通信サービスとは異なる機能を提供する少なくとも1つのアプリケーションソフトウェアコンポーネントを実行するように適合されるアプリケーション中央処理装置であり、第2の処理部は、通信サービスを制御するように適合される通信中央処理装置である。例えば、処理装置は、1または2以上の移動通信製品のためのプラットフォーム回路であってもよく、少なくとも1つの通信サービスはセルラー式電気通信サービスを含む。しかしながら、上記方法は他種の処理装置にも適用可能であることが認識されるであろう。
ある実施形態において、対応する処理部の起動の少なくとも一部を制御する起動コードを格納している、対応する読出専用メモリを、第1および第2の処理部の各々は備える。ゆえに、起動手続は、両処理部上のROMベースのコードにより少なくとも部分的に制御される。ROMに格納される起動コードに加え、装置の書込可能メモリに格納される起動ソフトウェア、またはブリッジインターフェースを介して外部システムからロードされる起動ソフトウェアにより、起動処理は少なくとも部分的に制御される。ゆえに、起動ソフトウェアの少なくとも一部は変更可能であり、それにより装置のメンテナンスが容易になる。
所定の起動プロトコルにより、第1の処理部と第2の処理部との間で起動情報を通信することを上記方法が含む場合、例えば2‐CPUアーキテクチャなどのマルチCPUアーキテクチャのための効果的な起動手続が提供される。
上述および後述の上記方法の特徴は、ソフトウェアに実施可能であり、コンピュータ実行可能命令などプログラムコード手段により、データ処理装置または他の処理手段上で実行可能である。ここ以降、処理手段(processing means)という言葉は、上述の機能を行うように適切に適合されるいかなる回路および/または装置を含む。具体的に、処理手段という言葉は、汎用または特殊用途向けプログラマブルマイクロプロセッサ、デジタル信号プロセッサ(Digital Signal Processor:DSP)、特定用途向け集積回路(ASIC)、プログラマブル論理アレイ(Programmable Logic Array:PLA)、フィールドプログラマブルゲートアレイ(Field Programmable Gate Array:FPGA)、特殊用途向け電子回路など、またはそれらの組合せを含む。
例えば、プログラムコード手段は、読出専用メモリ(read‐only memory:ROM)や、フラッシュメモリのような他の不揮発性メモリなどのストレージ媒体から、または適切なデータインターフェースを介して別の装置から、RAM(Random Access Memory:ランダムアクセスメモリ)などのメモリへロード可能であり、説明する特徴は、ソフトウェアまたはソフトウェアとの組合せによらずに、有線回路網により実施される場合もある。
本発明は、上述および後述の方法と、対応の装置と、コンピュータプログラムとを含んだ異なる観点に関し、それぞれは、上述の方法に関して説明する1または2以上の利益および利点をもたらし、上述の方法に関して説明する実施形態に対応する1または2以上の実施形態を有する。
特に、ある観点によれば、第1および第2の処理部を備える処理装置は、上述および後述の方法のステップを行うように適切に適合される。
ここでの説明のため、処理装置(processing device)および電子装置(electronic device)という言葉は、いかなるポータブル無線通信装置、および他のハンドヘルドまたはポータブル装置、および/または集積回路ボードの構成要素などの要素とを含む。ポータブル無線通信装置(portable radio communications equipment)という言葉は、携帯電話、ポケットベル、通信機すなわち電子手帳、スマートフォン、携帯情報端末(personal digital assistant:PDA)、ハンドヘルドコンピュータ、mp3プレーヤやデジタルカメラ、その他の記録装置などのメディアプレーヤ、自動車産業における組み込み装置、医療装置など全ての装置を含む。
別の観点によれば、第1および第2の処理部を備える処理装置上で実行されると、上述および後述の方法を処理装置に行わせるように、適合されるコンピュータ実行可能命令をコンピュータプログラム製品は含む。ある実施形態において、コンピュータプログラム製品は、読出専用メモリまたは再書込可能不揮発性メモリなど、コンピュータ実行可能命令を格納しているコンピュータ読出可能媒体として実施される。
ここでの説明のために、ストレージ手段/装置(storage means/device)およびコンピュータ読出可能媒体(compyuter‐readable medium)という言葉は、例えば読出専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、フラッシュメモリ、消去可能プログラマブル読出専用メモリ(Erasable Programmable Read‐Only Memory)、揮発性または不揮発性メモリ、光ストレージ装置、磁気ストレージ装置、ディスケット、CD、ハードディスクなど、適切ないかなるストレージ媒体、装置または回路も含むように意図している。
以上の観点および他の観点は、図面に関連させながら以下で説明する実施形態から明白に解明される。
図1は、2つのCPUを備える移動プラットフォームシステムの概略ブロック図を示す。
移動プラットフォームシステムは、一般的に100と表示し、アクセスサブシステム101およびアプリケーションサブシステム102の2つのサブシステムを備える。アクセスサブシステムはアクセスCPU110を備え、一方でアプリケーションサブシステム102はアプリケーションCPU120を備える。例えば、移動プラットフォームシステム100は、移動端末または他の通信装置に用いる集積回路/チップセットであってもよい。このように、移動プラットフォームシステム100の2‐CPUアーキテクチャは、アクセスサブシステムとアプリケーションサブシステムとの間の機能的分離を容易にする。例えば、アクセスサブシステム101は、時宜に即し期限を守ることが重要であるリアルタイム制御を必要とする1または2以上の規格化通信プロトコルおよび/または他の機能を処理するように構成可能である。他方で、アプリケーションサブシステム102は、リアルタイム制御を必要としないエンドユーザ機能および/または他の機能を処理するように構成可能である。
様々なインターフェースが、アプリケーションサブシステムおよびアクセスサブシステムそれぞれの一部となり得る。例えばアプリケーションインターフェースは、ディスプレイインターフェース121、カメラインターフェース122、オーディオ(例えばマイクロフォンおよび/またはラウドスピーカ)インターフェース199、および/またはキーボードインターフェースやスマートカードインターフェースおよび/またはメモリスティックインターフェースなどのさらなるインターフェース(明示せず)など、1または2以上のインターフェースを提供してもよい。アプリケーションサブシステムは、グラフィックスアクセラレータ(G Acc)181をさらに備えるように図示してある。
同様に、アクセスサブシステム101は、例えばGSM/GPRSモジュール161、GSM暗号ブロック(C3)162、WCDMAモジュール164、WCDMA暗号ブロック(C2)165、および/またはデジタル信号プロセッサ(digital signal processor:DSP)166などの、通信回路網112を備えてもよく、IrDA(infrared data association:赤外線通信協会規格)インターフェース、USB(universal serial bus)インターフェース、ブルートゥース(Bluetooth)インターフェース、UART(universal asynchronous receiver/transmitter:万能非同期送受信機)インターフェース、SPI(serial peripheral interface:シリアルペリフェラルインターフェース)、および/またはI2C(inter‐integrated circuit)インターフェースなどの、1または2以上のさらなる通信インターフェース182を提供してもよい。アクセスサブシステムは、例えばチップ固有識別子および/または他のパラメータを格納するための、OTP(One‐Time‐Programmable memory:プログラム一回可能メモリ)167をさらに備える。アクセスサブシステムは、さらにインターフェース168を、SIMカードやUSIMカードなどのUICC(Universal Integrated Circuit Card:万能集積回路カード)に対し提供してもよい。
アクセスサブシステムは、プラットフォームコードおよびデータ完全性(integrity)チェックを提供するプラットフォーム完全性モジュール(PI)169、鍵生成やメッセージ認証などのような暗号値の効率的な計算を提供する暗号アクセラレータブロック(CACC)170、および/または例えば鍵生成に用いる乱数ジェネレータ(RNG)171などの、セキュリティモジュールをさらに含んでもよい。
アクセスサブシステム101およびアプリケーションサブシステム102の各々は、ROM103および104をそれぞれ備える。各ROMは、対応する起動コード105および106をそれぞれ含む。それぞれのROM内の起動コードは、少なくとも初期の起動処理、例えば起動ソフトウェアが内部メモリまたは外部システムからロードされるまでの起動処理を行うように適合される。さらに、アクセスサブシステム101のROM103に格納される起動コードは、プラットフォームセキュリティルート(root)機能を提供する。アクセスサブシステムおよびアプリケーションサブシステムを有する移動端末において、ブリッジ構成で構成される場合にはアプリケーションサブシステムは機能しないところ、選択される構成にかかわらずアクセスサブシステムは常に使用可能であるため、アクセスサブシステムがセキュリティルートとして機能することが有利である。
アクセスサブシステム101およびアプリケーションサブシステム102の各々は、命令およびデータ密結合メモリ(Instruction and Data Tightly Coupled Memories:ITCM/DTCM)173および174をそれぞれさらに備えてもよい。ITCMは、起動コードの初期部分がロードされるオンチップメモリである。さらに、アクセスサブシステム101およびアプリケーションサブシステム102は、サービスピン183および184をそれぞれ有するように図示してある。各サブシステムにおいて、それぞれの構成要素は、例えば高速バス、または高速バスおよびペリフェラルバスなどの、少なくとも1つの適切なバス185および186をそれぞれ介して相互接続される。アクセスサブシステムおよびアプリケーションサブシステムは、例えばシリアルリンクおよび/または1または2以上の共有メモリなどのような、アクセスCPUとアプリケーションCPUとの間の通信インターフェースなどの、適切なインターフェース113を介して互いに通信する。
移動プラットフォームシステム100は、1または2以上の内部メモリへのアクセスを制御する1または2以上のメモリコントローラを備えてもよい。図1の例において、移動プラットフォームは、アクセスサブシステムとアプリケーションサブシステムとで共有される共通ランダムアクセスメモリ(RAM)150を制御するメモリコントローラ(Mem con)105を備える。ゆえに、メモリコントローラ105は、アクセスサブシステムにより構成されるメモリアービタ(memory arbiter)として機能する。例えばメモリコントローラは、それぞれのメモリ領域がアプリケーションシステムからはアクセス保護されるように構成されてもよい。すなわちコントローラは、アプリケーションシステムから、アクセスシステムに属するあるメモリ領域へアクセスを防止可能である。追加または代替として、プラットフォームシステムはそれぞれのサブシステム用の個別RAMを備えてもよい。同様に、移動プラットフォームは、例えばNANDフラッシュメモリおよび/またはNORフラッシュメモリなどのフラッシュメモリのような1または2以上の不揮発性メモリを制御する静的メモリコントローラ106と、図1においてアプリケーションサブシステムに接続されるように示す対応する静的メモリコントローラ(SMem Con)106とを備える。例えば、単独構成(stand‐alone configuration)における移動プラットフォームシステムの動作中に、アクセスサブシステム101およびアプリケーションサブシステム102用のソフトウェアが、静的メモリコントローラ106に接続されるフラッシュメモリからRAM150へロードされてもよい。ここでの説明のために、メモリはアプリケーションCPUからアクセスされると想定する。しかしながら、以下で説明するように、ここで説明する起動手続は、不揮発性メモリを備えない移動プラットフォームシステムにも適用可能である。図1のアプリケーションサブシステムは、さらなるメモリコントローラ180をさらに備えるように図示してある。
アクセスサブシステムおよびアプリケーションサブシステムは、同一のチップ上で実施されてもよく、または適切なインターフェースを介して相互接続される個別のチップセットとして実施されてもよい。アクセスCPUおよびアプリケーションCPUは常に存在している一方、ある構成においては、ここで説明するシステムにさらなる外部CPUが接続されてもよい。移動プラットフォームシステムの代替実施形態は、追加のおよび/または代替の構成要素を備えてもよいということがさらに理解されるであろう。そのような移動プラットフォームシステムの例が、国際公開第2005/041601号に開示されている。
以下でさらに詳細に説明するように、起動コードは、外部インターフェースからロードされる、すなわちブリッジまたはサービスモードの場合か、または、例えば図1におけるインターフェース106または180に付加されるフラッシュメモリなどの、プラットフォームシステムに備わるフラッシュメモリからロードされるかのどちらかである。起動コードが外部インターフェースからロードされるか、内部インターフェースからロードされるかにかかわらず、ロードされる初期起動コードはそれぞれのCPUのITCM上に格納される。
図2は、ブリッジ構成において図1と関連して説明する移動プラットフォーム100の概略ブロック図を示す。移動プラットフォームシステム100は、外部CPU231を備える外部システム230に、プラットフォームシステムのインターフェース182の1つを介して、例えばUSBインターフェースを介して接続されるように図示してある。図2における外部システム230は、カメラインターフェース(Cam)222とディスプレイインターフェース(Disp)221とを提供するグラフィックスアクセラレータモジュール280と、RAM250およびフラッシュメモリ(FLASH)251へのアクセスを制御するメモリコントローラ205とをさらに備えるように示してある。図2の外部システムは、オーディオインターフェース(Audio)299をさらに備える。外部システム230は、外部ロードを行うために、サービスモードの移動プラットフォームを起動することに用いられてもよい。外部システムは代替のおよび/または追加の構成要素を備えてもよいということが認識されるであろう。
図2のシステムにおいて、移動プラットフォーム自体はフラッシュメモリを備えず、したがってフラッシュレスブリッジ構成と呼ばれる場合があり、かかる構成においては、移動プラットフォームシステムはブリッジインターフェース182を介して起動される。図2の構成において、通常動作中および起動処理完了後は外部CPU231がアプリケーションシステムの機能を実行するため、ここで説明したように起動処理中はアプリケーションCPU120は機能しなくてもよい。
図3は、非ブリッジ構成において構成された場合の、図1の移動プラットフォームの概略ブロック図を示す。移動プラットフォーム100は、図1に示すプラットフォームと同一であるが、追加RAM350とフラッシュメモリ351とを備える。このようにフラッシュメモリ351は、起動処理中に移動プラットフォームにより用いられる起動構成情報および/またはセキュリティ構成情報を含んでもよい。フラッシュメモリのコンテンツが完全性保護される(integrity protected)場合、システムのセキュリティは増大する。ある実施形態において、移動プラットフォームシステムに備わるまたは接続される全部のメモリ(RAM150、RAM350、フラッシュメモリ351、ITCM/DTCM173および174)は完全性保護される。
以下で、上述の移動プラットフォームシステム用の起動手続の一実施形態を、図4a〜eを参照してさらに詳細に説明することにする。ハードウェア構成にかかわらず適用可能な起動手続の一実施形態において、アクセスCPUは、どのインターフェースまたはメモリから起動ソフトウェアを読み出すかを決定し、アプリケーションCPUは、インターフェースまたは内部メモリから起動ソフトウェアを読み出すかどうかを決定するか、または読み出すか否かの情報をアクセスCPUから受信する。ここでの説明のために、移動プラットフォームが不揮発性メモリを備える場合、このメモリはアクセスCPUによりアクセス可能であると想定することにすると、特に複雑度が低い解決法を提供される。しかしながら、不揮発性メモリがアプリケーションCPUを介してアクセス可能である実施形態を含むように、本方法は修正可能であることが認識される。
図4a〜eは、移動プラットフォームの起動処理の一例の流れ図を示す。
図4に示す2‐CPU移動プラットフォームシステムのための起動処理の実施形態は、移動プラットフォームのアクセスCPU110およびアプリケーションCPU120に少なくとも関する。起動処理は、移動プラットフォームシステムがブリッジ構成で起動される場合には、外部CPU231にさらに関し、移動プラットフォームシステムがサービスモードで起動される場合には、サービス装置として機能するPCなどの別の外部計算実体340に関する。
特に図4a〜bは、アクセスCPU110およびPC340により行われるステップを示し、一方図4c〜dは、アプリケーションCPU120および外部CPU231により行われるステップを示し、図4eは、起動処理全体にわたる概観を示す。水平方向の線は、アクセスCPU110と、アプリケーションCPU120と、外部CPU231と、サービス装置340との間で通信されるメッセージ/信号をそれぞれ示す。
アクセスCPU101およびアプリケーションCPU102は移動プラットフォームに存在し、一方で外部CPU231は、例えば外部装置や外部チップセットなどの外部システムを備え、ブリッジ構成でプラットフォームシステムに接続される。プラットフォームシステムがブリッジ構成で起動されない場合は、外部CPU231は存在しておらず、移動プラットフォームシステムは外部CPUからはメッセージを何も受信しない。非ブリッジ構成の場合で、移動プラットフォームシステムがいわゆる「サービスモード」で起動される場合、移動プラットフォームシステムは、PCなど別の外部実体340から起動ソフトウェアをロードする。サービスモードではなく、例えば通常動作モードなどでシステムが起動される場合、サービス装置340は存在しない。
図4の起動処理は、アクセスCPU110およびアプリケーションCPU120により受信されるリセット信号1によって開始され、ステップ2aにおいてアクセスCPUに、またステップ2bにおいてアプリケーションCPUに、プラットフォームリセットを行わせる。プラットフォームリセットには、電力オンや、同調で示される初期同調などが含まれる。移動プラットフォームシステムがブリッジ構成で起動される場合、リセット信号1は、概して最初に起動するであろう外部システム231から到来する場合がある。誘起(trigger)信号1が送信され、さらなるシステムを誘起する場合がある。さらに、ステップ2aにおけるアクセスCPUとステップ2bにおけるアプリケーションCPUとは、ハードウェアブロックの初期化と、水平線402および403で示すハンドシェイクを用いた内部CPU通信の潜在的初期化およびチェックとを行う。
ある実施形態においては、アプリケーションCPU120はハードウェア設定を用いてブリッジインターフェースを検出するように構成可能である。例えば、アプリケーションCPUは、外部ピン上の信号をチェック可能である。信号は、アプリケーションCPUが構成情報を読み出し可能にするように構成されてもよい。この場合、アプリケーションCPUはステップ3においてブリッジインターフェースを検出する。あるいは、アクセスCPUがかかる検出を行ってもよい(この選択は図4に図示せず)。
ステップ4において、アプリケーションCPU120は、アプリケーションCPU120に接続される不揮発性ストレージ上でブリッジ構成情報が入手可能かどうかを検出する。例えば、移動プラットフォームシステムがフラッシュメモリを備える構成においては、このような構成情報はフラッシュメモリの構成ファイルに格納可能である。
アプリケーションCPU120がステップ3においてブリッジインターフェースを検出し、ステップ4においてブリッジ情報を発見した場合、アプリケーションCPUはメッセージ5を介して関連情報をアクセスCPU110へ送信する。しかしながら、上述のようにある構成においては、移動プラットフォームシステムが不揮発性メモリを含まない場合、またはメモリが構成情報を含まない場合もある。この場合、アプリケーションCPUはステップ4においてブリッジ情報を取得不可能となり、メッセージ5を介してアクセスCPUに報告可能であるため、アクセスCPUにインターフェースポーリングシーケンスを以下に説明するように開始させる。
ステップ6aおよび6bにおいて、アクセスCPU110およびアプリケーションCPU120はそれぞれサービスピン状態を読み出す。すなわち、それぞれのCPUに接続されるサービスピンが設定されているかどうかを検出する。ステップ7aおよび7bにおいて、アクセスCPU110およびアプリケーションCPU120は、動作(サービス/非サービス)モードをそれぞれ決定し、それにしたがって進行する。サービスピンがサービスモードを示す場合、アクセスCPUはステップ8に続き、一方でアプリケーションCPUはアクセスCPUからのメッセージ/信号を待ち受ける。そうではなく、サービスモードが示されない場合には、アクセスCPUはステップ9に進み、アプリケーションCPUはステップ10に進む。
ステップ8において、すなわちサービスモードがステップ6aにおいて検出された場合、アクセスCPU110は、いずれかの潜在的外部サービスモード起動インターフェース(USB、UARTなど)が外部システム340に接続されているかどうかをチェックする。例えば、アクセスCPUは、その全部の適用可能インターフェースを所定のポーリング順でチェック可能である。何らかのインターフェースが接続されている場合、このインターフェースが選択される。インターフェースに接続される実体は、外部CPU231であってもよい。すなわち、移動プラットフォームシステムはサービスモードでブリッジ構成で起動されてもよく、または検出されたインターフェースに接続される実体は異なる計算実体340である場合もある。あるいは、アクセスCPUはステップ18に進み、サービスインターフェースに接続されているのは外部CPUであるかどうかを判定する。
ブリッジ構成情報、すなわちブリッジ構成が適用するかどうか、およびどのインターフェースに適用するかという情報を、アクセスCPU110がステップ5において受信したかどうか、アクセスCPU110はステップ9において判定する。ブリッジインターフェースを示す情報をアクセスCPUが受信していたならば、アクセスCPUはステップ11に続き、検出されたブリッジインターフェースに切り替わる。そうでない場合、アクセスCPUはステップ12に続き、アクセスCPUの適用可能外部ブリッジ起動インターフェースの1つ(例えばUSB、UART、MSL、および/またはSPIなど)に外部CPUが接続されているかどうかをチェックする。外部CPUがいずれかのインターフェースに接続されている場合、アクセスCPUは、検出されたインターフェースを選択し、そうでない場合、起動インターフェースが、移動プラットフォームシステムの不揮発性メモリへの内部インターフェースとなるよう決定される。アクセスCPUは、動作モード情報(例えばサービス/通常)を求める要求14を外部CPUへ送信する。ステップ12においてアクセスコードが接続インターフェースを検出しない場合、シーケンスは誤っており、リセットの道を選ぶ。
同様に、ステップ10においてアプリケーションCPUは、ブリッジ構成がステップ3またはステップ4において検出されたかどうかを判定する。ブリッジ構成が検出された場合、アプリケーションCPUはアクセスCPUからの構成肯定応答メッセージ16を待ち、
そうでない場合、アプリケーションCPUは以下に説明するようにアクセスCPUからのメッセージ25を待ち受ける。
外部CPU231が存在するブリッジ構成の場合、ステップ13において外部CPU231は、移動プラットフォームシステムがサービスモードで起動されるかどうかを検出する。例えば、外部CPUはユーザコマンド/入力を受信し、ユーザコマンド/入力に応じて移動端末プラットフォームのサービスモードでの起動を開始可能である。
アクセスCPUからのサービスモード情報を求める要求14の受信の際、外部CPUはアクセスCPUがデータ交換の準備ができていると決定する。次に外部CPUは、サービス/通常モード情報15をアクセスCPUへ送信する。アクセスCPUがこの情報の受信に失敗すると、アクセスCPUは未知の構成が適用していると判定し、起動処理をアボートする。
ブリッジ構成がアプリケーションCPUにより検出される場合、アクセスCPUは、サービス/通常モード情報15の受信の際に、構成肯定応答16をアプリケーションCPUへ送信し、サービスモード検出を確認する。構成肯定応答16に応じて、アプリケーションCPUは、サービスモード状態を求める要求17をアクセスCPUへ送信する。
メッセージ14および15を交換し、適用可能である場合にはメッセージ16および17も交換した後、アクセスCPUはステップ19に続く。
ステップ8において検出されたサービスインターフェースがブリッジインターフェースと同じかどうか、すなわちステップ8において検出された接続外部インターフェースがブリッジ構成で外部CPUに接続されているかどうかを、ステップ18においてアクセスCPUは判定する。接続されている場合、アクセスCPUはサービスモード要求20bを外部CPU231へ送信することにより進行し、そうでない場合には、アクセスCPUはサービスモード要求をサービス装置340へ送信する。図4における要求20aと20bとの間の違いは主に図の一貫性によるものであり、ステップ8において検出されたサービスインターフェースへアクセスCPUはサービスモード要求を単純に送信するということが認識されるであろう。
ステップ19においてアクセスCPUは、外部CPUからのモード表示15がサービスモードの動作を示すかどうかを判定する。外部CPUからのモード表示15がサービスモードの動作を示す場合、アクセスCPUは続けて上述のようにサービスモード要求20bを外部CPU231へ送信する。外部CPUからのモード表示15がサービスモードの動作を示さず、ブリッジ構成が検出される場合、アクセスCPUはブリッジ構成メッセージ23を外部CPUへ送信する。そうでない場合、アクセスCPUは構成肯定応答メッセージ25をアプリケーションCPUへ直接送信する。
ゆえに、アクセスCPUは、ブリッジ構成の場合、それぞれの外部システムへ、すなわちサービス装置340または外部CPU231へ、サービスモード開始要求20aまたは20bをそれぞれ送信する。サービスモード開始要求は、外部インターフェースを通るシステム起動準備を求める要求である。図4に例示するために、このように、ブリッジ構成のサービスモードは、ブリッジインターフェースを介して行われるものであり、アクセスサブシステムのあり得る他のインターフェースのいずれも介さないと想定される。しかしながら、起動シーケンスを拡張して後者の場合を含むことも、例えばこの段階で、すなわちブリッジインターフェースの検出後にステップ8を行うことなどにより、容易に可能であるということが認識されるであろう。
ステップ21aおよび21bそれぞれにおいて、アクセスCPUはケーブルまたは他の接続がいずれかのインターフェース上に検出されたかどうか、またはタイムアウトが発生したかどうかを判定する。1つもケーブルが検出されなかった場合、またはタイムアウトが発生した場合、アクセスCPUはサービスモード処理をアボートし、代わりに通常モードへ進行する。すなわち、ブリッジ構成メッセージ23を外部CPUへ送信するということである。
そうでない場合、外部システムは、すなわち場合によりサービス340または外部CPU231は、それぞれメッセージ22aまたは22bを介してサービスモード開始要求の肯定応答を送信する。この肯定応答を受信すると、アクセスCPUは続いてメッセージ23を外部CPUへ、またはメッセージ25をアプリケーションCPUへ、ブリッジ構成が検出されたか否かに応じて送信する。
ブリッジ構成が検出されていた場合、アクセスCPU110はブリッジ構成メッセージ23を外部CPU231へ送信する。メッセージ23は、例えばステップ21a、bそれぞれにおいて、通常モードへのフォールバックが行われたか否かに関する情報を含んでいてもよい。
ブリッジ構成メッセージ23を受信すると、外部CPU231は、肯定応答24を、フラッシュレスまたはフラッシュ構成情報などの、CPUからの構成情報とともに返信する。
続けてアクセスCPUは、メッセージ25をアプリケーションCPUへ送信する。サービスモード要求17がアクセスCPUにより受信された場合、すなわちブリッジ構成が検出された場合、メッセージ25は、サービスモード情報を有する応答を含むのである。この場合メッセージ25は、アクセスCPUが外部CPUからメッセージ15で受信するサービスモード情報を含んでいてもよい。1つもブリッジ構成が検出されなかった場合、メッセージ25は、代わりにアプリケーションCPUへの構成肯定応答メッセージを含む。
メッセージ25に応じて、アプリケーションCPUがセキュリティチェックを開始し、次にソフトウェア起動ロード処理を開始する準備ができていることを知らせるために、アプリケーションCPU120はメッセージ26を返信する。
メッセージ26に応じて、アクセスCPUは開始準備ができている旨メッセージ27で肯定応答する。
起動シーケンスのその後のステップは、起動処理が移動プラットフォーム上の不揮発性メモリで行われるかどうかに依存する。したがって、ステップ28において外部CPU231は、外部CPUが移動プラットフォームシステム上の不揮発性メモリで起動するように構成されているかどうかを判定する。外部CPUが移動プラットフォームシステム上の不揮発性メモリで起動するように構成されている場合には、この時点から両システムが起動して動作するまで、移動プラットフォームとは独立に、外部CPUは自身のシステムの起動処理を続行する。外部CPUが移動プラットフォームシステム上の不揮発性メモリで起動するように構成されていない場合には、アクセスCPUがセキュリティチェックを行う準備ができていることを示すアクセスCPUからのメッセージ39を、外部CPU231は待ち受ける。
同様に、ステップ29において、ブリッジインターフェースが(ステップ12において)検出されているが、不揮発性ストレージはプラットフォーム上に1つも発見されていない、例えばフラッシュレスブリッジ構成の場合かまたは非カスタマイズフラッシュ(uncustomized flash)かどうかをアクセスCPUは判定する。この場合、アクセスCPUはステップ38においてブリッジインターフェースに切り替わる。
そうでない場合には、アクセスCPUはステップ31へ進行し、そこで、アクセスCPU110は多くのセキュリティチェックルーチンを呼び出す。一実施形態においては、セキュリティチェックルーチンは、プラットフォームセキュリティ構成のチェックと、ソフトウェアロードのチェックとを含む。
続くステップ33において、セキュリティハードウェア設定が適用可能である場合、すなわちこのセキュリティハードウェア設定が移動端末プラットフォームの所定の実施形態の一部として存在する場合、アクセスCPUはセキュリティハードウェア設定を読み出す。このセキュリティハードウェア設定の例には、プログラム一回可能メモリやe‐ヒューズレジスタ(e‐fuse register)などが含まれる。これらの設定を用いて、セキュリティ構成と、ロードされるソフトウェアとを確かめることが可能である。
同様に、準備完了信号24に応じて、アプリケーションCPU120はステップ30において対応する多くのセキュリティチェックルーチンを呼び出す。一実施形態において、セキュリティチェックルーチンは、プラットフォームセキュリティ構成のチェックと、ソフトウェアロードのチェックとを含む。
ステップ32において、アプリケーションCPUはセキュリティ構成パラメータを不揮発性ストレージ媒体から読み出す。メモリまたはパラメータが全く検出されない場合、アプリケーションCPUはこの状態情報をRAMなど適切な内部メモリに保存する。
アプリケーションは、ステップ32において得られたセキュリティ構成情報34をアクセスCPUへ送信する。アプリケーションCPUがいかなる構成も発見できなかった場合、アプリケーションCPUはアプリケーションCPUにその事実を通知する。
プラットフォーム上に不揮発性メモリが全くない(とステップ29において判定される)場合、ステップ35で図示するように、アプリケーションCPUから受信したセキュリティ構成情報を、アクセスCPUは単純に無視可能である。
ステップ36において、アクセスCPUは受信セキュリティ構成情報をチェックする。例えばこのチェックは、受信セキュリティ構成の完全性チェックを含んでもよい。セキュリティチェックがうまく完了した後、アクセスCPUは、セキュリティ構成情報受信の肯定応答37をアプリケーションCPUへ返信し、アクセスCPUはステップ47へ進行する。
ステップ47において、アクセスCPUは、検出された(内部または外部)インターフェースから起動処理を続行する。起動処理は、検出されたインターフェースを介してのソフトウェアのダウンロードと、ダウンロードソフトウェアのセキュリティ(例えば完全性)チェックと、ソフトウェアの実行とを含んでもよい。
上述のように、ブリッジインターフェースが(ステップ12において)検出されているが、不揮発性ストレージはプラットフォーム上に1つも発見されていない、例えばフラッシュレスブリッジ構成の場合かまたは非カスタマイズフラッシュかどうかを、アクセスCPUがステップ29において判定する場合、ステップ38においてアクセスCPUは、検出されたブリッジインターフェースに切り替える。
続いて、セキュリティチェックを開始し、次にソフトウェア起動ロード処理を開始する準備ができていることを示す信号39を、アクセスCPUは、ブリッジインターフェースを介して外部CPU231へ送信する。
外部CPU231は、開始準備完了信号39の肯定応答40を返信する。
続くステップ41において、アクセスCPUは、例えばプラットフォームセキュリティ構成チェックおよびソフトウェアロードチェックなどのセキュリティチェックルーチンを呼び出す。ステップ42において、セキュリティハードウェア設定が適用可能である場合、すなわちこのセキュリティハードウェア設定が移動端末プラットフォームの所定の実施形態の一部として存在する場合、アクセスCPUはセキュリティハードウェア設定を読み出す。このセキュリティハードウェア設定の例には、プログラム一回可能メモリやe‐ヒューズレジスタなどが含まれる。これらの設定を用いて、セキュリティ構成と、ロードされるソフトウェアとを確かめることが可能である。
ステップ43において、外部CPU231は、外部CPUに接続される不揮発性ストレージ媒体からセキュリティ構成パラメータを読み出す。メモリまたはパラメータが全く検出されない場合、外部CPUはこの状態情報をRAMなど適切な内部メモリに保存する。
続いて、外部CPUは、ステップ43において得られたセキュリティ構成パラメータ44を送信する。構成が全く発見されなかった場合、外部CPUはその事実をアクセスCPUに通知する。
ステップ45において、アクセスCPUは受信セキュリティ構成情報44をチェックする。このチェックには、例えば受信情報の完全性チェックなどが含まれる。続いて、アクセスCPUは、セキュリティ構成情報受信の肯定応答46を外部CPUへ返信する。
続いて、アクセスCPUはステップ47において上述のように起動処理を続行する。
同様にステップ48において、検出されたインターフェースまたはメモリから、アプリケーションCPUは起動を続行する。例えば、この段階で、フラッシュ構成が全く発見されていない場合、アプリケーションCPUはアクセスCPUからの次のメッセージを待ち受けることが可能である。他方で、フラッシュ構成が発見された場合、アプリケーションCPUはフラッシュメモリから起動を続行可能である。ブリッジ構成が適用されている場合、アプリケーションCPUは内部インターフェースを通して起動を続行し、実行される第1のコードは、外部CPUがアプリケーションCPUの役割を担うブリッジ構成ではアプリケーションが概して必要ではないため、概してアプリケーションシステムをシャットダウンするであろう。
要するに、上述したのは、両CPUシステム上のROMベースのコードにより制御される2‐CPUアーキテクチャ用の起動手続の一実施形態である。第1のCPU(移動プラットフォームシステムのアプリケーションCPUであってもよい)は、起動処理においてマスターCPUとして動作し、起動処理は主に以下の3ステップを含む。
‐第1のCPUは、不揮発性メモリに格納される専用構成ファイル上のあり得る起動構成パラメータ(ハードウェアおよびソフトウェア)を検出し、この情報を第2のCPU(移動プラットフォームシステムのアクセスCPUであってもよい)に伝える。
‐起動構成が発見される場合、第2のCPUはこの情報を用いて、正しい起動インターフェースから起動する。第1のCPUにより情報が全く発見されない場合、第2のCPUは、接続された起動インターフェースを検索する。
‐最後に、起動は、検出された起動インターフェースから起動ソフトウェアをロードすることに続き、起動ソフトウェアは、実行許可される前に、CPUの1つによりセキュリティチェックが行われる。不揮発性メモリに格納されて保護され、起動時に不揮発性メモリから読み出されるセキュリティチェック構成情報に、セキュリティチェックは基づくことが可能である。
ゆえに、上の起動処理は、例えば図4に関して説明した起動インターフェース検出手続によって、可能性のある異なる起動シナリオを説明し、かかる起動シナリオには、非ブリッジ構成と、ブリッジ構成と、サービスモード(すなわちソフトウェアフラッシュ用)と、通常動作モードとが含まれる。しかしながら、例えば検出の順序を修正したり、および/またはアクセスCPUとアプリケーションCPUとの間でタスクを分割したりすることにより、図4の起動シーケンスは修正可能であることが認識されるであろう。さらに起動処理は、追加CPUを有するアーキテクチャにも適用可能である。
上の実施形態において、アプリケーションCPUは、一般的に、構成パラメータが発見され得るメモリへのアクセスを有するCPUであるため、初期起動処理中にはマスターとして機能する。しかしながら、代替実施形態において、アクセスCPUはマスターとして機能することが認識されるであろう。さらに、ある実施形態においては、アクセスCPUは、もし存在するなら、構成パラメータを含むメモリへのアクセスを有する場合もある。
したがって、いくつかの実施形態を詳細に説明し、図示してきたのだが、本発明はこれらの実施形態に限定されるものではなく、特許請求の範囲において限定する主題(subject matter)の範囲内の他の方法でも実施可能である。特に、ここで説明した起動処理は、アクセスCPUとアプリケーションCPUとを備える移動プラットフォームシステムについて主に説明した。しかしながらこの起動処理は、例えば2つのCPUの機能の分担が異なる2‐CPU移動プラットフォームや、移動通信システム以外の他の用途に用いるマルチCPU処理システムなど、他のシステムにも適用可能であることが認識されるであろう。
ここで説明した方法、製品手段、および装置は、いくつかの個別要素を備えるハードウェアと、適切にプログラミングされたマイクロプロセッサとにより、実施可能である。いくつかの手段を列挙する装置クレームにおいて、その手段のいくつかは、例えば適切にプログラミングされたマイクロプロセッサや1または2以上のデジタル信号プロセッサなど1つの均等なハードウェア品目(item)により実施可能である。ある措置(measures)が、互いに異なる従属請求項において記載されている、あるいは異なる実施形態において説明されているという事実だけで、かかる措置の組合せを有利に使用することが不可能であるということを示しているわけではない。
本明細書において「comprises/comprising(含む・備える)」という言葉を用いる場合、記載する特徴、整数、ステップまたは構成要素の存在を明記するためにとった表現であり、1または2以上の他の特徴、整数、ステップ、構成要素またはこれらの組合せの追加を排除するものではないということが強調されるべきである。
2つのCPUを備える移動プラットフォームの概略ブロック図を示す。 ブリッジ構成における2つのCPUを備える移動プラットフォームの概略ブロック図を示す。 非ブリッジ構成における2つのCPUを備える移動プラットフォームの概略ブロック図を示す。 a〜eは、移動プラットフォームのための起動処理の一例の流れ図を示す。

Claims (19)

  1. 処理装置を起動する方法であって、前記処理装置は第1および第2の処理部を備え、
    前記方法は、
    前記第1の処理部により、少なくとも1つの起動構成パラメータが前記処理装置の不揮発性ストレージ媒体からアクセス可能であるかどうかを検出することと、前記少なくとも1つの起動構成パラメータは、起動ソフトウェアを受信する起動インターフェースを示していることと、
    前記少なくとも1つの起動構成パラメータが使用可能である場合、検出された前記少なくとも1つの起動構成パラメータの少なくとも一部を、前記第1の処理部により前記第2の処理部へ送信し、前記少なくとも1つの起動構成パラメータが使用可能でない場合、前記第2の処理部により、起動インターフェースが前記処理装置にとって使用可能かどうか検出することと、
    示されたまたは検出された前記起動インターフェースから少なくとも前記第2の処理部を起動することと
    を含む、方法。
  2. 前記第1の処理部により、1または2以上の起動構成パラメータが前記処理装置の不揮発性ストレージ媒体からアクセス可能であるかどうかを検出することは、起動構成パラメータを格納する不揮発性メモリを前記処理装置が備えるかどうかを検出することを含み、起動構成パラメータを格納する不揮発性メモリを前記処理装置が備える場合には、検出された前記不揮発性メモリが、1または2以上の前記起動構成パラメータを含むデータファイルを格納しているかどうかを、検出することを含む、請求項1に記載の方法。
  3. 示されたまたは検出された前記起動インターフェースから少なくとも前記第2の処理部を起動することは、示されたまたは検出された前記起動インターフェースから起動ソフトウェアを受信することを含む、請求項1または2に記載の方法。
  4. 前記起動ソフトウェアを受信することは、受信される前記起動ソフトウェアの実行前に、前記第1および第2の処理部のうち少なくとも1つにより、前記起動ソフトウェアのセキュリティチェックを行うことをさらに含む、請求項3に記載の方法。
  5. 前記セキュリティチェックを行うことは、起動中に、ソフトウェア検証のためのセキュリティルートとして機能する前記第1および第2の処理部のうち1つにより行われる、請求項4に記載の方法。
  6. セキュリティルートとして機能する前記処理部によりセキュリティ情報を読み出すことを含み、その場合前記セキュリティ情報は、前記処理装置の不揮発性ストレージ媒体に格納され、暗号保護される、請求項5に記載の方法。
  7. 前記第1の処理部により、所定の起動シーケンスのプロトコル相互作用のシーケンスを行うことを含み、その場合前記プロトコル相互作用のサブセットのみが、前記1または2以上の起動構成パラメータが使用可能であるかどうかを検出することにおける条件とされる、請求項1〜6のいずれか1項に記載の方法。
  8. 前記サブセットは、5つ未満の相互作用を含む、請求項7に記載の方法。
  9. 前記処理装置は、単独構成とブリッジ構成とのうち1つで選択可能なように起動可能であり、その場合前記単独構成においては、前記第1および第2の処理部が動作可能になるように初期化され、前記ブリッジ構成においては、前記第2の処理部のみが動作可能になるように初期化され、外部処理部に動作可能なように接続されるように初期化される、請求項1〜8のいずれか1項に記載の方法であって、
    前記方法は、
    前記処理装置が前記単独構成でまたは前記ブリッジ構成で起動されるかどうかを検出することと、
    前記処理装置が前記ブリッジ構成で起動される場合、前記外部処理部から起動モード表示を受信することと、前記起動モード表示は、前記処理装置がサービスモードで起動されるかどうかを示していることと、前記サービスモードにおいては、前記処理装置は前記外部処理部から前記処理装置の不揮発性メモリへソフトウェアをロードするように構成されることと、
    受信された前記起動モード表示に応じて、前記処理装置を前記サービスモードで起動することと
    を含む、請求項1〜8のいずれか1項に記載の方法。
  10. 処理装置を起動する方法であって、前記処理装置は第1および第2の処理部を備え、前記処理装置は単独構成とブリッジ構成とのうち1つで選択可能なように起動可能であり、その場合前記単独構成においては、前記第1および第2の処理部が動作可能になるように初期化され、前記ブリッジ構成においては、前記第2の処理部のみが動作可能になるように初期化され、通信インターフェースを介して外部処理部に動作可能なように接続されるように初期化され、
    前記方法は、
    前記処理装置が前記単独構成で起動されるか、前記ブリッジ構成で起動されるかを検出することと、
    前記処理装置が前記ブリッジ構成で起動される場合、前記通信インターフェースを介して前記外部処理部から起動モード表示を受信することと、前記起動モード表示は、前記処理装置がサービスモードで起動されるかどうかを示していることと、前記サービスモードにおいては、前記処理装置は前記外部処理部から前記処理装置の不揮発性メモリへソフトウェアをロードするように構成されることと、
    受信された前記起動モード表示に応じて、前記処理装置を前記サービスモードで起動することと
    を含む、方法。
  11. 前記処理装置は、少なくとも1つの通信サービスを提供する通信装置であり、その場合前記第1の処理部は、前記通信サービスとは異なる機能を提供する少なくとも1つのアプリケーションソフトウェアコンポーネントを実行するように適合されるアプリケーション中央処理装置であり、前記第2の処理部は、前記通信サービスを制御するように適合される通信中央処理装置である、請求項1〜10のいずれか1項に記載の方法。
  12. 前記処理装置は、1または2以上の移動通信製品のためのプラットフォーム回路である、請求項1〜11のいずれか1項に記載の方法。
  13. 前記第1および第2の処理部の各々は、対応する前記処理部の起動を制御する起動コードを格納している、対応する読出専用メモリを備える、請求項1〜12のいずれか1項に記載の方法。
  14. 前記不揮発性メモリはフラッシュメモリである、請求項2,9,10のいずれか1項に記載の方法。
  15. 所定の起動プロトコルにより、前記第1および第2の処理部の間で起動情報を通信することを含む請求項1〜14のいずれか1項に記載の方法。
  16. 起動情報を通信することは、通信される前記起動情報のセキュリティ検証を行うことを含む、請求項15に記載の方法。
  17. 第1および第2の処理部を備える処理装置であって、
    前記処理装置は、請求項1〜16のいずれか1項に記載の方法のステップを行うように構成される、処理装置。
  18. 第1および第2の処理部を備える処理装置に、請求項1〜16のいずれか1項に記載の方法のステップを行わせるように適合されるコンピュータプログラム
  19. 第1および第2の処理部を備える処理装置に、請求項1〜16のいずれか1項に記載の方法のステップを行わせるように適合されるコンピュータプログラムが格納されている、コンピュータ読み取り可能な記録媒体
JP2008557615A 2006-03-09 2007-02-19 ブリッジサポートを有するプラットフォーム起動 Active JP5270377B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US74344406P 2006-03-09 2006-03-09
US60/743,444 2006-03-09
EP06388069A EP1832977A3 (en) 2006-03-09 2006-12-21 Platform boot with bridge support
EP06388069.4 2006-12-21
PCT/EP2007/001394 WO2007101533A2 (en) 2006-03-09 2007-02-19 Platform boot with bridge support

Publications (2)

Publication Number Publication Date
JP2009529721A JP2009529721A (ja) 2009-08-20
JP5270377B2 true JP5270377B2 (ja) 2013-08-21

Family

ID=37949650

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008557615A Active JP5270377B2 (ja) 2006-03-09 2007-02-19 ブリッジサポートを有するプラットフォーム起動

Country Status (7)

Country Link
US (2) US8135945B2 (ja)
EP (1) EP1832977A3 (ja)
JP (1) JP5270377B2 (ja)
KR (2) KR101443552B1 (ja)
CN (1) CN101438241B (ja)
TW (1) TWI424693B (ja)
WO (1) WO2007101533A2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1832977A3 (en) * 2006-03-09 2007-10-10 Telefonaktiebolaget LM Ericsson (publ) Platform boot with bridge support
US7860026B2 (en) * 2007-03-07 2010-12-28 Hewlett-Packard Development Company, L.P. Network switch deployment
EP2071351A1 (en) * 2007-12-11 2009-06-17 Telefonaktiebolaget LM Ericsson (publ) Method and device for providing location services
US8621191B2 (en) * 2007-12-26 2013-12-31 Nokia Corporation Methods, apparatuses, and computer program products for providing a secure predefined boot sequence
US20090184866A1 (en) * 2008-01-18 2009-07-23 Simon Lethbridge Method and device for providing location services
US7971098B2 (en) * 2008-03-24 2011-06-28 Globalfoundries Inc. Bootstrap device and methods thereof
US20090295461A1 (en) * 2008-05-30 2009-12-03 Cesare Joshua De Device configuration
US8964610B2 (en) * 2008-06-18 2015-02-24 Qualcomm Incorporated System and method of reducing factory program time for wireless devices
US8132267B2 (en) * 2008-09-30 2012-03-06 Intel Corporation Apparatus and method to harden computer system
US8321630B1 (en) * 2010-01-28 2012-11-27 Microsoft Corporation Application-transparent hybridized caching for high-performance storage
CN101930373B (zh) * 2009-06-19 2013-08-07 中兴通讯股份有限公司 一种片上***启动的方法和装置
US8463976B2 (en) * 2009-06-23 2013-06-11 Lg Electronics Inc. Dual modem device and controlling method thereof
US8996851B2 (en) * 2010-08-10 2015-03-31 Sandisk Il Ltd. Host device and method for securely booting the host device with operating system code loaded from a storage device
US9092630B2 (en) * 2012-11-19 2015-07-28 Dell Products L.P. Systems and methods for isolation of information handling resources in response to external storage resource boot
US9224013B2 (en) * 2012-12-05 2015-12-29 Broadcom Corporation Secure processing sub-system that is hardware isolated from a peripheral processing sub-system
CN105579953B (zh) * 2013-10-29 2019-03-15 英特尔公司 灵活引导程序代码架构
JP2015187789A (ja) * 2014-03-26 2015-10-29 富士通株式会社 情報処理装置、起動制御方法および起動制御プログラム
US9886285B2 (en) 2015-03-31 2018-02-06 Western Digital Technologies, Inc. Communication interface initialization
US20220398321A1 (en) * 2019-11-22 2022-12-15 Hewlett-Packard Development Company, L.P. Data management

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59172059A (ja) * 1983-03-22 1984-09-28 Toshiba Corp 電子計算機システム
GB9408405D0 (en) * 1994-04-28 1994-06-22 Int Computers Ltd High availibilty computer system
US5781774A (en) * 1994-06-29 1998-07-14 Intel Corporation Processor having operating modes for an upgradeable multiprocessor computer system
US5940752A (en) * 1996-07-31 1999-08-17 Lucent Technologies Inc. Arrangement for remotely programming a cellular telephone terminal
US6012142A (en) 1997-11-14 2000-01-04 Cirrus Logic, Inc. Methods for booting a multiprocessor system
JPH11249874A (ja) * 1998-02-27 1999-09-17 Toshiba Corp コンピュータシステム、同システムにおける同期処理方法および記録媒体
US7257714B1 (en) * 1999-10-19 2007-08-14 Super Talent Electronics, Inc. Electronic data storage medium with fingerprint verification capability
US6507906B1 (en) * 1999-09-09 2003-01-14 International Business Machines Corporation Method and system for selection of a boot mode using unattended boot sequencing
US6473857B1 (en) * 1999-12-06 2002-10-29 Dell Products, L.P. Centralized boot
JP4908665B2 (ja) * 2000-02-02 2012-04-04 キヤノン株式会社 プロセッサシステム及びその起動方法
FR2807272A1 (fr) * 2000-03-28 2001-10-05 Koninkl Philips Electronics Nv Appareil comprenant un dispositif de stockage pour des informations de fonctionnement et procede pour mettre a jour ce dispositif de stockage
US6948021B2 (en) * 2000-11-16 2005-09-20 Racemi Systems Cluster component network appliance system and method for enhancing fault tolerance and hot-swapping
US7032106B2 (en) * 2001-12-27 2006-04-18 Computer Network Technology Corporation Method and apparatus for booting a microprocessor
US20040098715A1 (en) * 2002-08-30 2004-05-20 Parixit Aghera Over the air mobile device software management
TW586075B (en) * 2003-01-30 2004-05-01 Integrated Circuit Solution In Method of making any card capable of booting from a multi-card reader/writer
KR100849296B1 (ko) 2003-06-13 2008-07-29 삼성전자주식회사 주제어부와 보조제어부를 구비하는 시스템에서의보조제어부의 초기화 장치 및 방법
US8572597B2 (en) * 2003-06-20 2013-10-29 Samsung Electronics Co., Ltd. Apparatus and method for performing an over-the-air software update in a dual processor mobile station
US7707592B2 (en) * 2003-10-10 2010-04-27 Telefonaktiebolaget L M Ericsson (Publ) Mobile terminal application subsystem and access subsystem architecture method and system
CA2541278C (en) * 2003-10-10 2014-09-09 Telefonaktiebolaget Lm Ericsson (Publ) Mobile-terminal gateway
EP1756711A1 (en) * 2004-05-31 2007-02-28 STMicroelectronics Pvl. Ltd. A method for remotely upgrading the firmware of a target device using wireless technology
US7366890B2 (en) * 2004-11-16 2008-04-29 International Business Machines Corporation Method for switching to a service mode of operation in response to detecting a device connected to an I/O port of the system
US7281127B2 (en) * 2004-12-27 2007-10-09 Intel Corporation Concurrent processing of operations in a boot sequence to initialize a storage device including an operating system loader to load
EP1832977A3 (en) 2006-03-09 2007-10-10 Telefonaktiebolaget LM Ericsson (publ) Platform boot with bridge support

Also Published As

Publication number Publication date
EP1832977A3 (en) 2007-10-10
WO2007101533A2 (en) 2007-09-13
TW200814559A (en) 2008-03-16
KR101443552B1 (ko) 2014-09-22
KR20080108526A (ko) 2008-12-15
TWI424693B (zh) 2014-01-21
CN101438241A (zh) 2009-05-20
US20120117369A1 (en) 2012-05-10
CN101438241B (zh) 2013-09-18
EP1832977A2 (en) 2007-09-12
US8135945B2 (en) 2012-03-13
WO2007101533A3 (en) 2007-11-01
US8255678B2 (en) 2012-08-28
KR20130099257A (ko) 2013-09-05
US20090307478A1 (en) 2009-12-10
KR101473014B1 (ko) 2014-12-15
JP2009529721A (ja) 2009-08-20

Similar Documents

Publication Publication Date Title
JP5270377B2 (ja) ブリッジサポートを有するプラットフォーム起動
JP5065297B2 (ja) Mmc/sdデバイスからホストデバイスをブートする方法,mmc/sdデバイスからブート可能なホストデバイス及びホストデバイスをブートできるmmc/sdデバイス
CN103080904B (zh) 提供多阶段锁步完整性报告机构
US8544092B2 (en) Integrity verification using a peripheral device
CN107567629B (zh) 在可信执行环境容器中的动态固件模块加载器
CN110119623A (zh) 一种利用tpcm实现固件主动度量的可信主板实现方法
CN114817105B (zh) 设备枚举的方法、装置、计算机设备以及存储介质
CN110688235B (zh) Uefi固件与os间共享无线连接信息的***及方法
WO2017107528A1 (zh) 一种支持多安全引导的芯片及其启动方法、存储介质
CN104346572A (zh) 一种通用的外置式智能终端安全运行环境构建方法
US10198270B2 (en) Dynamic hardware configuration via firmware interface at computing device boot
CN116627472A (zh) 高速***组件设备的固件程序升级方法及服务器
KR100977267B1 (ko) 신뢰할 수 있는 플랫폼에서의 물리적 존재 판정 방법
CN110119625A (zh) 一种可信计算方法
CN115827522A (zh) Bios的设置方法、bios芯片和电子设备
CN114510751A (zh) 一种基于处理器安全核的硬件防替换装置和方法
CN115129384A (zh) 一种电子设备的启动程序的运行方法和电子设备
CN112667544A (zh) 一种控制主板插槽使能的方法、装置、***及介质
CN110119624A (zh) 一种安全度量方法
CN110119638A (zh) 一种可信度量方法
CN111966537A (zh) 由usb载入bios的除错方法、装置、设备、产品
WO2022173439A1 (en) Status information of auxiliary devices
CN117667465A (zh) 代码共享方法、装置、交换机、多主机***、设备和介质
CN113127090A (zh) 开机模式设定方法、电子装置及计算机可读储存媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120821

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121121

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130409

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130509

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5270377

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250