状況整理
まとめないと、自分ですら何が起きているのか分からなくなってきました。
初期化値を代入しない変数の作り方
変数を、".bss."で始まる名前のセクションに配置すると、そのセクションはNOBITSになるため、初期値をロードしません。この方法でメモリ・マップド・レジスタに値をロードせずにすみます。
bfin-elf-gdbではこの方法でうまくいきます。
U-BOOTの問題
U-BOOTのBOOTELFコマンドはELFのNOBITSであるセクションを問答無用に0にします。
これについては近いうちにU-BOOTのMLに意見投稿するつもりですが、どうころんでも近いうちの解決はないでしょう。
プログラムヘッダのLOADフラグを切る
プログラムヘッダを新規に定義することでロードしないセグメントを作ることが出きるはずですが、gdbへのロード時にエラーが発生します。そもそも、LDスクリプトが不必要に複雑化しますのでU-BOOTの間違った仕様を回避するためにわざわざここまでしたくありません。