コグノスケ


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

link もっと前
2021年2月2日 >>> 2021年1月20日
link もっと後

2021年2月2日

ZephyrとQEMUのリセット その1 - 準備編

目次: Zephyr

Zephyrでリセットできないんだけど、って言われて調べたので、忘れないうちに記録に残しておきます。

RISC-Vの規格ではリセット処理について何も記述されていませんので、リセット処理はハードウェア依存となります。QEMUのRISC-V virtマシンはどうかというと、SiFiveのナイスガイ達が作ってくれたリセットの仕組みがあります。

QEMU RISC-V virtマシンのリセット処理

// qemu/hw/riscv/virt.c

static const struct MemmapEntry {
    hwaddr base;
    hwaddr size;
} virt_memmap[] = {
    [VIRT_DEBUG] =       {        0x0,         0x100 },
    [VIRT_MROM] =        {     0x1000,        0xf000 },
    [VIRT_TEST] =        {   0x100000,        0x1000 },    //★アドレス0x00100000にある★
    [VIRT_RTC] =         {   0x101000,        0x1000 },
...


// qemu/hw/riscv/virt.c

static void virt_machine_init(MachineState *machine)
{

...

    /* SiFive Test MMIO device */
    sifive_test_create(memmap[VIRT_TEST].base);    //★テストデバイスを追加している★


// qemu/hw/misc/sifive_test.c

/*
 * Create Test device.
 */
DeviceState *sifive_test_create(hwaddr addr)
{
    DeviceState *dev = qdev_new(TYPE_SIFIVE_TEST);
    sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);
    sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, addr);
    return dev;
}

...

static void sifive_test_write(void *opaque, hwaddr addr,
           uint64_t val64, unsigned int size)
{
    if (addr == 0) {
        int status = val64 & 0xffff;
        int code = (val64 >> 16) & 0xffff;
        switch (status) {
        case FINISHER_FAIL:
            exit(code);
        case FINISHER_PASS:
            exit(0);
        case FINISHER_RESET:
            qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET);    //★ここに到達するとリセットが掛かるはず★
            return;
        default:
            break;
        }
    }
    qemu_log_mask(LOG_GUEST_ERROR, "%s: write: addr=0x%x val=0x%016" PRIx64 "\n",
                  __func__, (int)addr, val64);
}


// qemu/include/hw/misc/sifive_test.h

enum {
    FINISHER_FAIL = 0x3333,
    FINISHER_PASS = 0x5555,
    FINISHER_RESET = 0x7777    //★この値を書けば良さそう★
};

つまり0x100000に0x00007777を4バイトWriteすれば良さそうです。

準備

Zephyrのサンプルshellを使います。理由はリブートするコマンドが簡単に使えるからです。CONFIG_REBOOTを有効にする必要があります。またshellは起動後プロンプトが出るだけで、リセットが掛かったかどうかわかりにくいため、起動時のバナーも有効にしておくと良いです。

REBOOT, BOOT_BANNERを有効にする
CONFIG_REBOOT=y

  Boot Options  --->
    [ ] Reboot functionality

CONFIG_BOOT_BANNER=y

  General Kernel Options  --->
    Kernel Debugging and Metrics  --->
      [ ] Boot banner

ちょっと長いので一旦切ります。次回は実装と動作確認をします。

編集者:すずき(2023/09/24 12:07)

コメント一覧

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



2021年2月1日

間違えたので消去。

編集者:すずき(2023/02/02 20:44)

コメント一覧

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



2021年1月31日

そのZoomは最新ですか?

Zoomって、バージョンアップのお知らせを全くしてこないので、起動時に勝手にアップデートされていると思っていたんですが、全くそんなことはなかったですね。ずっと古いバージョンの5.3.1(2020/09/28リリース)のまま使っていました。

手動でアップデートしたところ、無事に最新版の5.4.9になりました。4ヶ月で大分数字が変わりましたね。

比較的新しいアプリの割にアップデートは保守的ですね?不思議な設計だな……??

ミーティング後に表示される説

Facebookのコメントで「ミーティングの後」にバージョンアップのお知らせが出ることを教えてもらいました。

ミーティング前にバージョンアップすると遅刻する可能性大なので、ミーティング終了後に表示するのは良いアイデアですね。でも残念ながら、見たことないんだよな……。うちのZoomは何か変なんだろうか??

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

編集者:すずき(2021/02/06 22:35)

コメント一覧

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



2021年1月30日

PlayStation Vita

久しぶりにPlayStation Vitaを起動したところ、ネットワークに繋げる系アプリがほぼ全滅していました。

プラットフォーム依存のゲーム機は、本体が元気でもサードパーティの撤退やサービス終了に伴って、勝手にポンコツになってしまい悲しいです。結構高かったのに……。

ソニー製

  • flickr: 起動する、アカウント持ってないので動作不明
  • foursquare: サービス終了
  • LiveTweet: 起動する、PS Vitaの内蔵ブラウザがTwitter未サポート、アプリ認証できない
  • near: サービス終了
  • PlayStation Store: さすがにこれは動く
  • radiko.jp: 動作する
  • Reader: 起動する、機器認証でエラーになり進めなかった
  • えちゃんねる: 起動する、Twitterのアプリ認証できない

サードパーティ製

  • hulu: サービス終了
  • NHKオンデマンド: サービス終了
  • ニコニコ: サービス終了

PlayStation Storeを見ると「アプリケーション」はたった14個、サードパーティ製のアプリは1つ(ROBOTICS; NOTES ELITE AR)だけです。PS Vitaは既に9年経過(2011年12月発売)しており、ぶっちゃけソニーすらもVitaを見放している節があり、もう完全にオワコンです。

それなりに大きなプラットフォームの終焉を間近で見たのは貴重な体験、とはいえ、買った人は何も嬉しくないよね……。

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

編集者:すずき(2021/02/01 11:25)

コメント一覧

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



2021年1月22日

苦境のANA

年末(2020年12月20日の日記参照)に、1月はSUPER VALUE 21 Jより安いチケットがVALUE 3で出ると予想しましたが、外れましたね。1/30の羽田→札幌便を見ると、最安はVALUE 3 Jで年末からほとんど変わっていません。

いやまあ、SUPER VALUE 21とVALUE 3の値段がほとんど変わらない時点で、かなり異常事態なんですけど……。


1/30の羽田→札幌便

なんと全25便中、半分近い11便が欠航しています。飛ばす回数を自体を減らし、客単価の維持とおそらく各便ごとの黒字を確保しているのでしょう。単発で黒字が出たとしても、確実に収益にはダメージがありますよね。安いイメージが付いてしまうより良いのかなあ?

燃料費などは減便で節約できても、飛行機はリースなので飛んでも飛ばなくてもお金が掛かります。飛ばせるならいくらでも飛ばしたいでしょう。

早いところCOVID-19には収束してもらって、気軽に旅行や帰省できる日が来てほしいですね。ANAは今かなり苦しいでしょうけど、日本の翼を担う会社として何とか踏みとどまってほしいところ……。

編集者:すずき(2021/01/23 15:09)

コメント一覧

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



link もっと前
2021年2月2日 >>> 2021年1月20日
link もっと後

管理用メニュー

link 記事を新規作成

<2021>
<<<02>>>
-123456
78910111213
14151617181920
21222324252627
28------

最近のコメント5件

  • link 24年6月17日
    Bobさん (06/04 09:25)
    「BindIPv6Only=no does...」
  • link 18年8月12日
    すずきさん (05/29 16:57)
    「コメントありがとうございます。\n\nこ...」
  • link 18年8月12日
    ARM926EJ-Sさん (05/29 14:27)
    「この記事が書かれたのは2018年ですが、...」
  • link 17年9月3日
    すずきさん (05/26 23:59)
    「>ちょさんさん\nご参考になれば幸いです...」
  • link 17年9月3日
    ちょさんさん (05/26 20:34)
    「自分もこの機種と全く同じCN-SP700...」

最近の記事20件

  • link 20年10月23日
    すずき (05/29 16:53)
    「[ROCK64/ROCKPro64 - まとめリンク] 目次: ROCK64/ROCKPro64[ROCK64] ROCK64ブート...」
  • link 18年8月12日
    すずき (05/29 16:53)
    「[ARM PCで開発できるか?] 目次: ROCK64/ROCKPro64最近のARM搭載SoCはかなり速くなっています。もし...」
  • link 18年12月15日
    すずき (05/29 16:52)
    「[ARMワンボードPCのネットワーク速度] 目次: ROCK64/ROCKPro64Raspberry Pi対抗ボードの多くは...」
  • link 21年5月22日
    すずき (05/29 16:50)
    「[ベンチマーク - まとめリンク] 目次: ベンチマーク一覧が欲しくなったので作りました。USB HDD RAIDのベンチマー...」
  • link 06年5月17日
    すずき (05/29 16:49)
    「[ディスクI/Oベンチマークプログラム] 目次: ベンチマーク研究室のゼミの後に、明日のシス情セミナーの発表練習を行いました。...」
  • link 06年5月15日
    すずき (05/29 16:45)
    「[USB HDD RAIDのベンチマーク] 目次: ベンチマーク昨日作成したRAID0+1の書き込み性能を測定しました。やはり...」
  • link 25年5月24日
    すずき (05/25 22:25)
    「[メガネが壊れた] 金曜日、メガネの鼻当てが曲がってんなー?と思って、元の位置に戻そうと指で押したらパキっと音がして折れました...」
  • link 25年5月25日
    すずき (05/25 21:53)
    「[JTSA Unlimited大会参加2025] 目次: 射的JTSA Unlimitedの大会に参加しました。「木」ステージ...」
  • link 22年3月18日
    すずき (05/25 21:41)
    「[射的 - まとめリンク] 目次: 射的関係の深いまとめリンク。目次: Arduino一覧が欲しくなったので作りました。ガスガ...」
  • link 25年5月9日
    すずき (05/23 23:31)
    「[JavaとM5Stamp C3とBluetooth LE - Bluetoothデバイスとの通信改善] 目次: Arduin...」
  • link 23年6月2日
    すずき (05/23 23:31)
    「[Arduino - まとめリンク] 目次: Arduino関係の深いまとめリンク。目次: 射的一覧が欲しくなったので作りまし...」
  • link 23年4月10日
    すずき (05/23 22:59)
    「[Linux - まとめリンク] 目次: Linux関係の深いまとめリンク。目次: RISC-V目次: ROCK64/ROCK...」
  • link 24年4月25日
    すずき (05/23 22:59)
    「[ImageMagickでAVIFを変換] 目次: LinuxAVIFが読めないアプリケーションがたまにあるので、AVIF(A...」
  • link 25年5月23日
    すずき (05/23 22:30)
    「[デバッグ用のlibcを使って実行する方法(ダイナミックリンク編)] 目次: C言語とlibcCライブラリのデバッグをしたいと...」
  • link 22年4月13日
    すずき (05/23 22:30)
    「[C言語とlibc - まとめリンク] 目次: C言語とlibcC言語について。プログラムの落とし穴、演算子の優先順位標準入力...」
  • link 25年5月22日
    すずき (05/23 22:21)
    「[デバッグ用のlibcを使って実行する方法(スタティックリンク編)] 目次: C言語とlibcCライブラリのデバッグをしたいと...」
  • link 25年5月20日
    すずき (05/23 03:18)
    「[glibcのsigprocmask()とpthread_sigmask()の実装] 目次: C言語とlibc以前、シグナルマ...」
  • link 23年6月1日
    すずき (05/23 00:38)
    「[自宅サーバー - まとめリンク] 目次: 自宅サーバーこの日記システム、Wikiの話。カウンターをPerlからPHPに移植日...」
  • link 25年5月16日
    すずき (05/23 00:37)
    「[フォントがおかしいので直した] 目次: 自宅サーバーこのブログ、フォント設定が2つほどおかしかったので直しました。今まで見づ...」
  • link 23年5月15日
    すずき (05/22 00:23)
    「[車 - まとめリンク] 目次: 車三菱FTOの話。群馬県へのドライブ1群馬県へのドライブ2将来車を買い替えるとしたら?FTO...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
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 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 2025年
open/close 過去日記について

その他の情報

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

合計:  counter total
本日:  counter today

link About www2.katsuster.net
RDFファイル RSS 1.0

最終更新: 06/04 09:25