This service is available only in Japanese-language.
Win11(64bit)、WSL2、Ubuntu22.04(64bit)の環境で、kirkstoneをqemuターゲットでbitbakeを実施した所、
build/tmp/work/qemux86_64-poky-linux/linux-yocto/5.15.124+gitAUTOINC+f484a7f175_1c09be01f4-r0/linux-qemux86_64-standard-build/System.mapが生成されました。
本ファイルは生成後の各種モジュールのマッピングを示していると思われますが、アドレスマッピングを設定制御するファイルは、何処のファイルの情報に従ってるか、ご教示頂けないでしょうか。
(対象をqemuとしてる為、実際にはアドレスも、対象モジュールも修正の必要性は無いと判断してますが、
独自ボード対応する場合、DDRやらの先頭アドレス等を現物に合わせて設定制御する必要があると判断しての質問になります)
みつきん
2023/10/26 (木) 16:46
アドレスマッピング等の情報について
下記、回答します。
build/tmp/work/qemux86_64-poky-linux/linux-yocto/5.15.124+gitAUTOINC+f484a7f175_1c09be01f4-r0/linux-qemux86_64-standard-build/System.map
このファイルはLinuxカーネルのシンボルテーブルとなります。
システム全体のアドレスマップではありません。
詳細は下記URLを参照ください。
https://ja.wikipedia.org/wiki/System.map
組込みシステムに於いてのアドレスマップはSoCによって決定されます。
必要な情報はSoCのリファレンスマニュアルを参照ください。
独自ボードにOSをポーティングする際にDDRを初期化するロジックとしては
SoCのメモリコントローラ関連のレジスタ値を使用するDDRに合わせ込む必要がありますが、
基本的にOSベンダはその情報をH/Wベンダから提供され、言われたとおり設定します。
また、H/Wベンダからブートローダに組み込むためのソースコードを提供されるケースもあります。
u-bootを実行するための起動アドレス(エントリポイント)に関しては、
BSPレイヤを定義する際の{MACHINE}.confに下記のように定義します。
UBOOT_ENTRYPOINT = "0x80008000"
基本的にはSoC毎にブートシーケンスや、ブートに必要なファイル、配置も異なるため、
BSP開発の際にリファレンスボードのBSPなどを参考に開発することになります。
こちらで回答になりますでしょうか?
hiro
2023/10/27 (金) 08:51
System.map改めて調べてみます。
System.map改めて調べてみます。
UBOOT_ENTRYPOINTが関係してるとは感じておりましたが、多岐に当たって記述がある感じで困り果てていました。
BSPレイヤを定義する際の{MACHINE}.confという事でこちらも改めて調べてみます。
貴重なアドバイス大変有難うございます。取り急ぎ御礼まで。