link もっと前
   2019年 2月 11日 -
      2019年 2月 2日  
link もっと後

link 未来から過去へ表示(*)
link 過去から未来へ表示

日々

link permalink

クロック分周器

Linux のクロックフレームワークで実装できるクロック分周器のドライバは 2種類あります。

1つは integer divider で、入力されたクロック周波数の 1/3 や 1/4 など整数比の周波数で出力するハードウェアです。もう 1つは fractional divider で、周波数を x/y にするハードウェアです。

後者の fractional divider ドライバは、標準動作とカスタム動作のドライバが書けます。

標準動作の場合、分子と分母に設定できる値に、何ら制約がないものとして動作します。カスタム動作のドライバは、特殊な制約のあるハードウェア向けです。

今のところカスタム動作の fractional divider ドライバを実装しているのは Rockchip だけです。Rockchip の場合、分母が分子の 20 倍以上でなければ出力周波数が不安定になる制約があるようです。

Rockchip が変な仕様であることは間違いないと思いますが、Linux に対応しているだけ、まだマシとも取れますね。

世の中には「どうしてこうなった??」としか思えない、変な仕様のハードウェアがたくさん存在しますし……。

メモ: 技術系の話は Facebook から転記しておくことにした。

[編集者: すずき]
[更新: 2019年 2月 13日 00:23]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

Rock64 HDMI オーディオ

先日購入した HDMI モニタのおかげで、Rock64 の I2S0 つまり HDMI Audio の動作確認ができました。

しかし以前(2018年 11月 11日の日記参照)悩んでいた通り、単純に I2S0 を有効にすることはできません。DMA チャネルが足りない問題が発生するためです。

Rock64 に搭載されている Rockchip RK3328 の DMAC は、16 の DMA チャネルを持っていますが、そのうち 8ch しか同時に使えない仕様になっています。

苦肉の策

現在の linux-next の Rock64 向けデバイスツリーでは、既に 7ch を使用(I2S1 2ch, SPDIF 1ch, SPI0 2ch, UART2 2ch)していますから、ここに 2ch を使用する I2S0 を追加すると合計 9ch になって、オーバーしてしまいます。

仕方ないので UART2 の DMA 割り当てを解除して、I2S0 に割り当てるパッチを投稿しました。

予想通りの反応

私がパッチに書いた説明が悪かったのだと思いますが、メンテナーの Heiko さんから「どうして UART2 の DMA チャネルを I2S0 が使えるのかわからない」という返事がきました。ですよね……私も最初意味不明でしたし。

できる限り説明を加えて返事しましたが、理解してもらえると良いな。

わかりづらい仕様書

ややこしいことに、RK3328 の仕様書を見ると、各 DMA チャネルには ID が(仕様書では Req number)が振られていて、ぱっと見 16 チャネルが全て同時に使えそうに見えるんですよ。

この仕様書から「各 DMA チャネルは独立しているけど、全てのチャネルが同時に使える訳ではない」という意味を読み取れる人はなかなかいないと思います。

DMA チャネルの割り当て

少なくとも私は DMA の Req number とチャネル数の関係を理解するのは無理だったので、DMAC のドライバ(PL330)を追いかけました。

サウンド系から DMA チャネルの割り当てを要求するとき、次のような呼び出し関係になります。

RK3328 の DMA チャネルの割り当て

rockchip_pcm_platform_register()
  devm_snd_dmaengine_pcm_register()
    snd_dmaengine_pcm_register()
      dmaengine_pcm_request_chan_of()
        dma_request_slave_channel_reason()
          of_dma_request_slave_channel()
            ofdma->of_dma_xlate() => of_dma_pl330_xlate()
              dma_get_slave_channel()
                dma_chan_get()
                  pl330_alloc_chan_resources()
                    pl330_request_channel()

まず、関数 of_dma_pl330_xlate() にはローカル変数 chan_id が登場します。これが DMA の ID に相当します。例えば UART2 の送信側なら chan_id = 6 になります。

元になる数字はどこから来るかというと、of_dma_match_channel() でデバイスツリーから情報を貰っています。RK3328 の場合、デバイスツリーで DMA チャネルを指定する際は、Req number を書くようです。

次に、関数 pl330_request_channel() に構造体 struct pl330_dmac のメンバー channels という配列が登場します。この channels の数が DMAC の DMA チャネルの数と等しいです。Req number とは無関係に、DMA チャネルを要求されると先頭から埋まっていきます。

こんな仕様が初見でわかる訳ないじゃない。むり。

メモ: 技術系の話は Facebook から転記しておくことにした。1節加筆。

[編集者: すずき]
[更新: 2019年 2月 5日 00:59]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

続編が楽しみなマンガ 10作品

最近読んだ、これからも続編が楽しみなマンガ 10作品。並びは、あいうえお順です。

1〜5 です。

うらみちお兄さん(3巻)
いわゆる「お母さんといっしょ」の体操のお兄さんが主人公、歌のお姉さん、歌のお兄さん、マスコットの中の人が準主役のギャグマンガです。
お兄さんお姉さんたちは、ブラック社会の大人の事情や抑圧に精神をやられており、子供たちの前では笑顔を振りまきますが、それ以外はやさぐれています。子供たちが妙に悟っているのも面白いです。
桐谷さん ちょっそれ食うんすか!?(6巻)
ゲテモノ食を愛する女子高生、桐谷さんが主人公のグルメマンガです。
昆虫や深海魚、爬虫類など、日本ではあまり食べない食材にチャレンジし続けます。世の中には色々な食材があるもんだと感心します。あとがきを見ると、作者さんが実際にチャレンジした食材を作品にしているそうです。
じけんじゃけん(5巻)
推理小説マニアでミステリ研の女子高生、その彼女に惹かれてミス研に入った男子高校生が主役のギャグマンガ。
ミステリのネタが所々に入っていますが、ミステリ要素は強くなく、強いて言えば日常系です。元ネタがわからなくても困りませんが、わかるともっと面白いのだろうか?タイトルからもわかるように、舞台は広島です。登場人物の女子達はほぼ全員が広島弁です。気になる。
天地創造デザイン部(3巻)
神様が発注してくる曖昧でデタラメな要件の生物を、デザイン部の皆さんがウンウンうなりながら設計していくギャグマンガです。雑学の要素も強いです。
ギャグのオチに神様のメチャクチャな要望に応えた、メチャクチャな生物が登場しますが、でっち上げの架空生物ではなく、実在する生物(たまに伝説上の生物なども登場します)であるところが、へえ!と唸らせる面白さの 1つです。お話の中で登場した生物の解説ページまで付いており、面白くて為になる作品です。
ハクメイとミコチ(7巻)
小人のハクメイとミコチの2人の気ままな生活と、周囲の人々との交流を描く、ファンタジー系のマンガです。
文章がヘタで説明できませんが、2人の住んでいる世界の描画が素晴らしいです。実際に住んだらやや不便そうではありますが、この世界に住みたいと思うこと間違いなしです。

6〜10 です。

フラジャイル 病理医岸京一郎の所見(13巻)
患者の前には出ませんが、検査結果を診断する病理医が主人公の医療系マンガです。
現代医療の問題点にグサグサ切り込んでいきます。主人公の岸先生は超優秀ですが、かなりの曲者で周囲との衝突が絶えません。いろいろ揉めまくりますが、最終的には何とかなるので安心して楽しめます。
へんなものみっけ!(3巻)
博物館の事務員として左遷(なのか?)されてきた公務員が主人公で、博物館の研究者や裏方の活動を描いたマンガです。雑学もあります。
博物館の裏方は一般の見学者からはわかりませんし、職員にならない限りまず見られません。自分の知らない世界が垣間見えて面白いです。
マージナルオペレーション(12巻)
子供だけの傭兵集団を率いる「子供使い」アラタが主人公の現代軍事物のマンガです。中東が出発点で、世界の様々な国で活躍します。12巻ではミャンマー編が盛り上がってきます。
たまに 1巻から読み返すと、画も話も結構テイストが変わっていると思います。子供たちを傭兵に送り込んでいることを知って苦しむ初期、覚悟を決めて傭兵業を続ける中期〜、いずれも面白いです。戦争するので、人が死ぬシーンが割と出てきます。苦手な人は注意です。
魔法少女特殊戦あすか(9巻)
理不尽系+魔法少女+現代軍事物のマンガです。かつて世界を救ったマジカルファイブという魔法少女のリーダー、あすかが主人公です。魔法少女ものって残酷にしなきゃいけないルールでもできたんですかね?
魔法少女なので魔法の力で戦いますが、明らかに殴って撃って斬っていて、敵も味方も重傷で血みどろです。捕まえて拷問したり、マジカル自白剤とか素敵ワードが飛び交う、エグさ満点の作品です。画は綺麗ですがグロいシーンが多いので、苦手な人は注意です。
幼女戦記(12巻)
冷酷で優秀だが神を信じない現代サラリーマンが主人公で、魔法の存在する第一次世界大戦直前のヨーロッパに似た世界に転生します。しかも幼女として。ジャンルとしては近代〜現代軍事物のマンガ。
主人公は後方で楽したいと思っていますが、やることが全て裏目に出て最前線や激戦区に投入され続けます。全員が真面目にやっていて、結果も上々ですが、奇跡的に想いだけがすれ違い続けます。ギャグじゃないのにギャグ要素を感じる面白い作品です。戦争で人が死ぬシーンがそこそこあります。苦手な人は注意です。

メモ: 趣味の話は Facebook から転記しておくことにした。

[編集者: すずき]
[更新: 2019年 2月 4日 22:38]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

小型 HDMI ディスプレイ購入

小型の HDMI ディスプレイを買いました。ELECROW というメーカーの LR10FHD01 という製品です。Amazon で 1万円くらい。

買ったきっかけですけども、Rock64 の HDMI 出力を見たかったことと、サーバの VGA 出力が壊れたのか、今持っている小型 VGA ディスプレイが映らなくなってしまったため、代替品が欲しかったからです。

  • サイズ: 10インチ
  • 液晶方式: 光沢あり、IPS 液晶らしい(確認しようがないけど)
  • 解像度: 最大 Full HD つまり 1920x1080
  • 入力方式: HDMI or VGA
  • 電源: 付属の AC アダプタ

見ての通りスペックはそこそこ良く、価格もお安いです。その分、細かいところはいい加減です。

音量調整がバカで Volume 1 でも近所迷惑なデカい音が鳴ります。しかも最大音量は 100 です。こんなバカでかい音で誰が使うんでしょう?ミュートにできることがせめてもの救いです。

OSD メニューはヘボいです。日本語が選択できますが、漢字は中国語の字体、訳が意味不明、ハングルが混ざるなど、やる気ゼロです。英語に変えた方がマシです。

HDMI 入力もバグっていて、HDMI 挿抜もしくは電源 ON/OFF で画面表示が右にズレて、音が出なくなります。もう一度電源 ON/OFF すると直ります……。


OSD に表示される謎の日本語

本体に型番が書いておらず、箱を捨ててしまうと型番が分からなくなります。

細かいところは手抜き感が漂いますが、映れば全て良しです。

メモ: 技術系の話は Facebook から転記しておくことにした。加筆した。

[編集者: すずき]
[更新: 2019年 2月 4日 22:23]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
   2019年 2月 11日 -
      2019年 2月 2日  
link もっと後

管理用メニュー

link 記事を新規作成

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDF ファイル RSS 1.0
QR コード QR コード

最終更新: 2/21 00:46

カレンダー

<2019>
<<<02>>>
-----12
3456789
10111213141516
17181920212223
2425262728--

最近のコメント 20件

  • link 18年12月11日
    すずき 「確認いただいてありがとうございます。直っ...」
    (更新:12/27 00:22)
  • link 18年12月11日
    T4 「再現しませんね\n\n確かに、過去にそう...」
    (更新:12/25 12:45)
  • link 18年12月11日
    すずき 「失礼しました。Rock64 の方は、\n...」
    (更新:12/22 02:10)
  • link 18年12月11日
    T4 「私は、Tinker Board を持って...」
    (更新:12/21 10:14)
  • link 18年12月11日
    すずき 「> 但し、これもう一年以上前の話で...」
    (更新:12/19 11:54)
  • link 18年12月11日
    T4 「> Rockchip の U-bo...」
    (更新:12/18 13:31)
  • link 18年11月28日
    すずき 「Linux に contribute す...」
    (更新:12/10 12:33)
  • link 18年11月28日
    T4 「やっぱり貴方でしたか、ご苦労さまでした。...」
    (更新:12/05 09:20)
  • link 18年11月28日
    すずき 「RK3228 じゃなくて RK3288 ...」
    (更新:12/05 02:19)
  • link 18年11月28日
    すずき 「ありがとうございます。Linux のコミ...」
    (更新:12/05 02:04)
  • link 18年12月01日
    すずき 「私も最初、HDD, SSD は使いまわそ...」
    (更新:12/04 12:49)
  • link 18年11月28日
    T4 「まずは、おめでとうございます。\n\nい...」
    (更新:12/04 10:00)
  • link 18年12月01日
    hdk 「ウチもASUSのマザーボード(Micro...」
    (更新:12/03 22:15)
  • link 18年11月14日
    すずき 「そうなんです。Debian 便利です。\...」
    (更新:11/27 22:22)
  • link 18年11月14日
    よしだあ 「libopencv-dev とな&hel...」
    (更新:11/27 00:46)
  • link 18年11月15日
    すずき 「なるほど、Windows 10 と古い ...」
    (更新:11/17 22:47)
  • link 18年11月15日
    hdk 「あっ、拒否されるというのは昔のWindo...」
    (更新:11/17 21:07)
  • link 18年11月15日
    すずき 「hdk さん\n\n色は自動で付けている...」
    (更新:11/17 13:15)
  • link 18年11月11日
    すずき 「T4 さん\n\nクロック周りなんですね...」
    (更新:11/17 13:06)
  • link 18年11月11日
    T4 「● I2S1が 全く動かない\nなぜか ...」
    (更新:11/17 09:44)

最近の記事 3件

link もっとみる
  • link 19年02月19日
    すずき 「[RISC-V のコンパイラ] Crosstool-NG は RI...」
    (更新:02/21 00:46)
  • link 19年02月18日
    すずき 「[RockPro64 のシリアル出力] RockPro64 のシリ...」
    (更新:02/21 00:43)
  • link 19年02月20日
    すずき 「[RockPro64 の HDMI Audio] RK3399 の...」
    (更新:02/21 00:33)

こんてんつ

open/close wiki
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報