ELFファイルに出力する情報はコンパイラ(正確には、リンカ)により違うようです。
ほぼ同様のリンカ設定にして、RISC-VのGCC, IARのEmbedded Workbenchでコード生成した結果のプログラムヘッダをみてみました(以下の結果は、IARのツールでELFファイルをダンプしました)。

 


 

GCCでは2つのセグメントが定義されており、0番目がCODE、1番目がDATAになっています。その1番目はVirtualアドレスが0x4000 0000で領域サイズが0x410ですが、スタック領域も含まれています。それに対してPhysicalアドレスが0x21F0でサイズが0x4ですが、変数の初期化データがこちらに配置されていると読むことが出来ます。

 

EWRISC-Vでは、1つのセグメントが定義されており、0番目としてREADONLYが配置されています。コードも初期化データもまとめて1つのセグメントで定義しています。

 

プログラムをロードするためには、CODEとReadonlyデータを展開できれば、問題ないのでどちらでも問題ないのですが・・・こうした違いは使ってみないと分かりません。