OpenBoxからでもDM-1801を認識させて、gd-77_firmware_loader.pyでの書き込みは問題なし。
OpenBSD(uaa@), Ham(JG1UAA), Ingress(Lv14, RES), Japanese(Sagamihara-city, Kanagawa)
Another side: https://social.tchncs.de/@uaa
npub1rarr265r9f9j6ewp960hcm7cvz9zskc7l2ykwul57e7xa60r8css7uf890
Messages from this Mastodon account can read via mostr.pub with npub1j3un8843rpuk4rvwnd7plaknf2lce58yl6qmpkqrwt3tr5k60vfqxmlq0w
OpenBoxからでもDM-1801を認識させて、gd-77_firmware_loader.pyでの書き込みは問題なし。
OpenGD77(OpenDM1801)のMCUXpresso抜きなビルド、完了。パッチもここに。 https://github.com/jg1uaa/opengd77-noxpresso/blob/master/R20231231/opengd77-r20231231.diff
相変わらずcodec_interface.cの(codec blobの)バイナリ呼出し手順はアレなままだし、SPI周りのdata barrierが必要な箇所も直っちゃいない…多言語対応はFirmware Programmer側で言語ファイルを書き込むような形で対応するみたいなので、この作業を省けるのはありがたい。
[LD ] firmware.axf
/usr/lib/gcc/arm-none-eabi/12.2.1/../../../arm-none-eabi/bin/ld:../linkerscripts/firmware_newlib.ld:109 cannot move location counter backwards (from 00055324 to 00054000)
collect2: error: ld returned 1 exit status
make: *** [../Makefile:226: firmware.axf] エラー 1
言語周りを見直す前にビルドを試みてはみたけど、なんかダメっぽいな。言語周りをどう抑え込んでみたものか…
codec_interface.c: 変わりなし→そのまま使える
SPI_Flash.c: 多少違ってる→多分使える
satellite.h エラー修正用のパッチ→現時点では修正済のため不要
uiLocalisation.h 内部構成が違う→作り直し
20230304版でいじったのがこれだから…
patching file firmware/Makefile
patching file firmware/include/functions/satellite.h
patching file firmware/include/user_interface/uiLocalisation.h
patching file firmware/linkerscripts/firmware_library_picolibc.ld
patching file firmware/linkerscripts/firmware_picolibc.ld
patching file firmware/source/dmr_codec/codec_interface.c
patching file firmware/source/hardware/SPI_Flash.c
patching file firmware/source/user_interface/uiLocalisation.c
> ./firmware/include/user_interface/languages/src/languages_builder.c
> ./firmware/source/functions/aprs.c
> ./firmware/source/interfaces/gps.c
> ./firmware/source/user_interface/menuAPRSOptions.c
> ./firmware/source/user_interface/menuCalibration.c
> ./firmware/source/user_interface/menuGPS.c
このへんがOpenGD77の20231231に追加されたファイルか。
arm@ に現状報告とdiff投げて、返答を待とう。
とりあえずPD14によるPHYのリセットができないとちゃんと動かないのは確かだしそれを強引に行うコードってのは随分前に作ってはいたんだけど…ボード固有ってのはあんまり美しくないし、DeviceTreeで(ドライバが認識できれば)きちんと処理できるって形の方が万人にとって幸せな解決策であることは間違いないから。
お願いしますよ、LinuxやU-bootでDevice Treeいじってる人達…!
gentooinstallbattle と Arch については、こういった素材が存在する
とりあえず、これで出来上がりってことで良いけど…SUNXI_SETUP_REGULATORS=0(だったっけか、レギュレータの設定を無視するオプション)無しのATFでもPHYのリセットをちゃんとやってれば動くって話をどうまとめたらいいんだろう。
別途ATF分けないとダメって話で最初進めてたんだけど、まとめられる方が楽なのは確か。とはいえ、Armbianも確かパッチ当てたATFで動かしてるからここは分けたままで良いんじゃないの?で進めるか…