Virtual Platformを使って、SoCのソフトウェアの先行開発(早期開発)を行う。
今の流れは、これが基本。
それで、Virtual Platformで何を動かすのか?
ブートコードやOS、できれば、OSより上の層のソフトウェア。
確かに、で、一番最初にやるのが、ブートコードを呼び出すこと。
これって、どうやるのか、ASIC設計をしている人って、ほとんどしりません。
ブートコードやOS、できれば、OSより上の層のソフトウェア。
確かに、で、一番最初にやるのが、ブートコードを呼び出すこと。
これって、どうやるのか、ASIC設計をしている人って、ほとんどしりません。
どうやればいいのでしょうか?
今回紹介するケイデンスのブログ、A SystemC TLM 2.0 ARM Linux Boot Loaderでは、
ARMシステムにおけるLinuxのブートローダーについて、詳しく?説明しています。
(詳しくといっても、ブートの仕組みを知らないとすれなりにはわかりませんが)
ARMシステムにおけるLinuxのブートローダーについて、詳しく?説明しています。
(詳しくといっても、ブートの仕組みを知らないとすれなりにはわかりませんが)
この記事で1箇所、
Linuxのブートローダーのアドレスを設定している下記のコード(引用)は、ちょっと間違っていると思います。
Linuxのブートローダーのアドレスを設定している下記のコード(引用)は、ちょっと間違っていると思います。
// Load bootcode bootloader[1] |= info->board_id & 0xff; bootloader[2] |= (info->board_id >> 8) & 0xff; bootloader[5] = info->loader_start + KERNEL_ARGS_ADDR; bootloader[6] = entry;何が間違っているかと言えば、bootloaderのインデックスが1から始まっています。
// Load bootcode bootloader[0] |= info->board_id & 0xff; bootloader[1] |= (info->board_id >> 8) & 0xff; bootloader[4] = info->loader_start + KERNEL_ARGS_ADDR; bootloader[5] = entry;だと、思います。
検証、Verification、SystemC、TLM 2.0、Virtual Platform