29-Nov-2021
[流石にそれはどうかと思う💢(2)]

Linux(Armbian)ならちゃんとOrange Pi One Plusのネットワークコントローラが動くというかPHYがちゃんと見える件、調べていくうちにATFによる問題と考えるのが良さそうだ…という状況になっています。

Armbian起動時のATF(v2.2)のメッセージはこんな感じ。


U-Boot SPL 2020.10-armbian (Aug 08 2021 - 16:15:05 +0200)
DRAM: 1024 MiB
Trying to boot from MMC1
NOTICE:  BL31: v2.2(debug):a04808c-dirty
NOTICE:  BL31: Built : 16:15:01, Aug  8 2021
NOTICE:  BL31: Detected Allwinner H6 SoC (1728)
NOTICE:  BL31: Found U-Boot DTB at 0xc083488, model: OrangePi One Plus
INFO:    ARM GICv2 driver initialized
NOTICE:  PMIC: Probing AXP805
NOTICE:  PMIC: AXP805 detected
INFO:    BL31: Platform setup done
INFO:    BL31: Initializing runtime services
INFO:    BL31: cortex_a53: CPU workaround for 855873 was applied
INFO:    BL31: Preparing for EL3 exit to normal world
INFO:    Entry point address = 0x4a000000
INFO:    SPSR = 0x3c9


U-Boot 2020.10-armbian (Aug 08 2021 - 16:15:05 +0200) Allwinner Technology

こちらでビルドしたATF(v2.5)は、こう。


U-Boot SPL 2021.10 (Nov 30 2021 - 05:10:07 +0900)
DRAM: 1024 MiB
Trying to boot from MMC1
NOTICE:  BL31: v2.5(debug):v2.5
NOTICE:  BL31: Built : 05:09:35, Nov 30 2021
NOTICE:  BL31: Detected Allwinner H6 SoC (1728)
NOTICE:  BL31: Found U-Boot DTB at 0xc08a308, model: OrangePi One Plus
INFO:    ARM GICv2 driver initialized
INFO:    Configuring SPC Controller
INFO:    PMIC: Probing AXP805 on RSB
INFO:    PMIC: aldo1 voltage: 3.300V
INFO:    PMIC: aldo2 voltage: 3.300V
INFO:    PMIC: aldo3 voltage: 3.300V
INFO:    PMIC: bldo1 voltage: 1.800V
INFO:    PMIC: bldo2 voltage: 1.800V
INFO:    PMIC: bldo3 voltage: 1.800V
INFO:    PMIC: cldo1 voltage: 3.300V
INFO:    PMIC: cldo2 voltage: 3.300V
INFO:    PMIC: cldo3 voltage: 3.300V
INFO:    PMIC: dcdcd voltage: 0.960V
INFO:    PMIC: dcdce voltage: 1.200V
INFO:    BL31: Platform setup done
INFO:    BL31: Initializing runtime services
INFO:    BL31: cortex_a53: CPU workaround for 855873 was applied
INFO:    BL31: cortex_a53: CPU workaround for 1530924 was applied
INFO:    PSCI: Suspend is unavailable
INFO:    BL31: Preparing for EL3 exit to normal world
INFO:    Entry point address = 0x4a000000
INFO:    SPSR = 0x3c9


U-Boot 2021.10 (Nov 30 2021 - 05:10:07 +0900) Allwinner Technology

ATFのdrivers/allwinner/を見るに、v2.2ではAXP80x向けのドライバは一切無くv2.3以降で実装されているという状況です。そしてAXP80x共通処理となるcommon.cを見る限りでは、DeviceTreeノードにphandleもしくはregulator-always-onプロパティのどちらか一つでも存在すれば無条件にレギュレーターをonにするという動きになっています。また、レギュレーターをonとした後に適当な待ちを行うといったこともしないようです。

ATF v2.5のソースコードに手を入れて、ATF v2.2と同じようにレギュレーターの操作を一切行わない(その一方でOpenBSD側ではレギュレーターの操作を行う)状態で動作を試したところ、意図したアドレスでRTL8211が見えるようになっています。

という訳で、ATFが要らぬことをしていたから、ということが原因になりそうです。修正のためのパッチも投げてはみましたが、状況を見ているとマージされる可能性は低そうです。Merge conflictsにdrivers: allwinner: axp: Enable regulators more judiciouslyが挙がっているのを見るに、以前からこの問題点を指摘していた人はいて、その時にマージされていれば自分が要らぬ苦労をしなくて済んだのは確かなのですが…「誰だよ-1した奴は!💢」と叫びたいところです。52.7kg(22:00)

27-Nov-2021
[流石にそれはどうかと思う💢]

Orange Pi One Plus(Allwinner H6)でOpenBSDを動かすと、RTL8211が見えない問題の続き。

全てのPHYに対して片っ端からレジスタを読み出すコードを突っ込んで動かして見るに、PHYのアドレス0と7で応答があったという…0はブロードキャストアドレスなので、RTL8211は7に設定されていると思い込んでいるようです。しかしOrange Pi One Plusの回路図ではRTL8211EのPHYAD[2:0]="001"となっているため、PHYのアドレスは1となるはずなのですが…(DeviceTreeのext_rgmii_phyの記述もreg=<1>となっています)。

いくら電源/クロック/配線を何度も何度も何度も何度も確認したところで、アドレスの設定が合っていなければそりゃあ通信できないでしょう…とはいえ、アドレスの設定が合っていないというのは流石に想定していませんでした。プログラマーをやっていた頃の自分が、この問題をどれくらいの時間で解くかというのはすごく気になるところですが、この程度の原因を突き止めるのにここまで時間がかかってしまったというのが現在の自分の能力ということになるのでしょう。

…で、どうしましょうかこれ。Linux(Armbian)はDTB/ハードウェアの設定がズレていても何事もなく動いてしまっていますが(一体何をやっているのか見当もつきません)、OpenBSDにおいてはどういう方法で解決するか。U-BootのDTBに手を入れてreg=<0>とでもするのか、dwxe(4)に手を入れてPHYが見つからなかった場合に更なる検索を試みるのか、あるいはそれ以外の何かか。

もっとも、RTL8211に指示したアドレスと異なるアドレスでPHYが動作してしまっている原因を突き止める必要もありそうですが、これは誰に相談すれば良いのでしょうかね…?53.6kg(15:30)

21-Nov-2021
[分かんない…]

Orange Pi PC One Plus(Allwinner H6)でArmbian 21.08.1を動かしたら、当然と言わんばかりにネットワークコントローラが動作する訳ですが…どういうカラクリかがいまいち分かりません。Armbianの

に従い、ARM Trusted Firmware v2.2をVoid Linux上でビルドしようとしてみましたがうまくいかずv2.3を構築し、これにU-Boot 2020.10を組み合わせてみてもネットワークコントローラそのものが見えない…と思ったらdtbのレベルでdisabledになっていたので、ひょっとするとArmbianのU-Bootは何か手が入っているのかと考えました。

そこでarmbian/buildを見てみたものの、あまりの規模の大きさに目的とするコード(パッチ)を探し当てることができていません。

Orange Pi One Plusの回路図を見る限りでは、Allwinner H6のGPIO(PD14)によってPHYのリセットが解除されるようになっています。dtbではPD14の操作については何も記述が無いのですが、特に何もしなかった場合はプルアップが効いているのでリセットがかかったままになることは無いように見えます。

おそらく問題は

の一つか複数かと睨んでいるのですが、OpenBSDのレジスタやドライバの動作を見る限りでは特に変な設定になっているようには見えません。あるいは、自分には問題が見えていないだけで、変な問題がしっかり潜んでいるのか。動かない以上は、多分後者なんでしょうけど…54.6kg(21:50)

13-Nov-2021
[色々試しちゃいるんだけど]

全然成果出てない感じ。

11-Jan-2008で行ったh8writeのOpenBSD対応化改造、USBシリアルアダプタを使った場合にうまく書き込めない問題への対処を入れてみました。自分のところだけかもしれませんが、シリアル初期化時に(何も接続していない状態であっても)ゴミを受信してしまうために書き込みが進まなくなっている…という訳で、データを破棄してからH8との通信を始めるようにしています。

Orange Pi PC One Plus(Allwinner H6)上でどうにかしてOpenBSD/arm64動かせないかなーと足掻いているのですが、ちょっと難しそうです。どうも見ていると、

  1. U-Boot内蔵のdtbではAXP805(電源コントローラ)がR-I2C接続になっているのに対し、Linux側のdtbはRSB接続になっている(OpenBSD-portsのsysutils/dtbも後者に準拠)
  2. OpenBSDはU-Boot内蔵のdtbを見ており、EFI区画の/dtb/allwinner/sun50i-h6-orangepi-one-plus.dtbは見ていない
  3. OpenBSDにおいては、RSB(sxirsb)はearly 1の指定により他のデバイスよりも優先して初期化するのに対し、R-I2C(sxitwi)の場合は通常通りの順序で初期化する

という訳で、dwxe0(ネットワークコントローラ)初期化時において電源管理コントローラが操作できないと、PHYに電源が入らず動きません。AXP805はRSB接続で動作させないとマズそうなのですが、1.のdtbの問題によりどうにもなりません。U-Boot側のdtbは、いつかLinuxと同じような形に変わるのでしょうか…?

これ以外にも、Allwinner H6のUARTはFIFOを一旦有効にした後に無効化すると動作がおかしくなる問題があるようで、その対策も必要になるという…このボード上でOpenBSD/arm64を動かすのは諦めた方が良いのかなーという気分に段々なってきます。

とりあえず色々改造したもの(AXP805との通信はできていません)と、UART周りの修正のみのdiffを置いときます。

Allwinner系CPUでOpenBSD/arm64したい場合、PINE A64+を狙うのが良いのかもしれませんね…今なら秋月電子で購入できますし。53.1kg(21:15)

14-Nov-2011補足:もう少し改造してみました。sxitwi at fdt? early 1としたのに加え、AXP805のregister 0xFFに書き込まれる値に問題があったためにPMICとの通信ができなくなっていた部分を直しています。とはいえ、PHYの電源制御がまだ不十分なのか、no PHY found!が出るのは変わりません。

26-Nov-2011補足:さらに改造してみました。USBは動くようになったのですが、未だno PHY found!です。

07-Nov-2021
[…]

セシリーとラースが居る以上、オルベリクとオフィーリアは来ないものだという認識です。

★5
ハンイット(弓), ニコラ(短剣), トレサ(槍), ドロテア(槍), ティキレン(剣), リュミス(斧), グロッサム(扇), ヴァルカン(本), アデル(短剣), イデア(剣), リトゥ(短剣), ムールゥ(本), ガートルード(斧), プロメ(杖), オデット(本), プリムロゼ(扇), ユーニィ(弓), リオナ(杖), オルベリク(剣), オフィーリア(杖), イェンロン(杖)

冒険家(Lv80)も倒し、討伐で狩王女の聖印も得たおかげでエルヴィスとジルメイラを★5とし、レベルアップベリーと金導石を使ってモルルッソとスケアクロウはLv100にしてみました。初のLv100到達キャラです。あとはカルドナが覚醒Iになったのが嬉しいですね。このゲームにしては珍しく、「人生の主役は自分自身!」と前向きなキャラなので個人的に一推しなのです。

以下、★4.5。

★5だけで見ていくと、剣(3)短剣(3)弓(4)杖(4)斧(2)扇(2)本(4)槍(3)の25人。属性で数えるなら風(7)闇(3)火(2+1)雷(4+1)光(4)氷(4+1)。闇が少なめなのはそういうものなので、火と斧・扇の増強をしたくなるのですが、既存のキャラを育てることに手が回っていないのでこれらは後回しでも良いのかもしれません。

★4も上限突破よりも覚醒Iを付けるようにしているので、とにかく銀導石が足りない足りない足りない。ガチャを回してキャラ被りの80個ですら足りないと言いたくなるくらい。そんな訳で★4.5→★5は銀導石を砕く訳にもいかず、クラスアップアイテムが出るのを祈るしかない状況です。

大陸の覇者、だんだん旅団の育成/管理ゲームとなっているような気がするのですが…そういうゲームという認識で合ってましたっけ?52.8kg(06:30)

05-Nov-2021
[しばらくサボっていたら]

なんかepiconMMDVMHostxlxdも色々アップデートがかかっていて、手直しするのに時間使ってました。

そしてJ:COMからこんなメールが来て、困っています。

20211105.png

2022年度に開始予定…最短でも4ヶ月のブランクが生じるのは迷惑です。その間、IPv6対応のxlxd/MMDVMHostの作業は確実に止まりますから。2000年にタイタスALLNETがJ-COMに食われた途端ルーターの使用禁止とか言い出したこともありましたから、本っ当にこいつらは昔から変わってねえよなあ!💢というのが正直な感情です。

まあ、IPv6対応ケーブルインターネットアクセス技術仕様ガイドライン(日本ケーブルラボ資料)の111ページにある「I 1.3 J:COM (DOCSIS) 導入事例」によれば、

とあるので、その時が来たなという話ではありますし、本来であればとっくに新IPv6サービスが始まりDHCPv6-PDの恩恵を受けていてもおかしくはない話なのですが。これもCOVID-19禍の影響なんですかねえ。

とりあえず、作業に影響が出ないようIPv6の使えそうな格安SIMをスマホに入れるのはどうかということを考えていたのですが、果たしてそんなものがあるのかどうか…今使っているb-mobile S990は非対応だし、以前使っていたロケットモバイルの神プランも対応しているという話は聞かないし(使っていた時にきちんと調べておけば良かった)という訳で、難航しそうな気がします。

IPv6の喋れるVPSを使っているので、IPv6 over IPv4でルーターとVPSを繋げ、VPSからIPv6 worldに出入りすれば良いのかもしれませんが、一体どう設定したものやら。52.1kg(23:30)