NetBSD/A2.reboot-patch
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
*reboot-patch [#h1a68e88]
-[[NetBSD/landisk:http://www.asahi-net.or.jp/~aw9k-nnk/n/...
#pre{{
既知の問題
1. 正常にリブートができない。
現状では 0xa0000000 にジャンプしているだけなので、設定を...
もしくはリセットをかける必要がある。
}}
-上記問題を解決するパッチ~
LinuxSHのコードから拝借。~
#pre{{
--- sys/arch/sh3/sh3/sh3_machdep.c.orig 2005-04-26 00:02:...
+++ sys/arch/sh3/sh3/sh3_machdep.c 2005-08-22 00:01:...
@@ -745,8 +745,17 @@
_cpu_exception_suspend();
_reg_write_4(SH_(EXPEVT), EXPEVT_RESET_MANUAL);
+#if defined(SH4)
+/* SR.BL=1 and invoke address error to let CPU reset (ma...
+ asm volatile("ldc %0, sr\n\t"
+ "mov.l @%1, %0"
+ :
+ : "r" (0x10000000), "r" (0x80000001));
+
+#else
goto *(u_int32_t *)0xa0000000;
/* NOTREACHED */
+#endif
while (1)
;
}
}}
-動作内容~
SR.BL==1状態で、アンアライメントアクセスを行い、~
マニュアルリセット例外を発生させ、CPUの内部状態を初期化す...
(プログラムカウンタも0xa000000へ初期化されるため、自動的...
~
-その他~
Nonakaさんサイドでも成功したようです。~
次バージョンでfixされるかも?~
~
~
#navi(NetBSD)
終了行:
*reboot-patch [#h1a68e88]
-[[NetBSD/landisk:http://www.asahi-net.or.jp/~aw9k-nnk/n/...
#pre{{
既知の問題
1. 正常にリブートができない。
現状では 0xa0000000 にジャンプしているだけなので、設定を...
もしくはリセットをかける必要がある。
}}
-上記問題を解決するパッチ~
LinuxSHのコードから拝借。~
#pre{{
--- sys/arch/sh3/sh3/sh3_machdep.c.orig 2005-04-26 00:02:...
+++ sys/arch/sh3/sh3/sh3_machdep.c 2005-08-22 00:01:...
@@ -745,8 +745,17 @@
_cpu_exception_suspend();
_reg_write_4(SH_(EXPEVT), EXPEVT_RESET_MANUAL);
+#if defined(SH4)
+/* SR.BL=1 and invoke address error to let CPU reset (ma...
+ asm volatile("ldc %0, sr\n\t"
+ "mov.l @%1, %0"
+ :
+ : "r" (0x10000000), "r" (0x80000001));
+
+#else
goto *(u_int32_t *)0xa0000000;
/* NOTREACHED */
+#endif
while (1)
;
}
}}
-動作内容~
SR.BL==1状態で、アンアライメントアクセスを行い、~
マニュアルリセット例外を発生させ、CPUの内部状態を初期化す...
(プログラムカウンタも0xa000000へ初期化されるため、自動的...
~
-その他~
Nonakaさんサイドでも成功したようです。~
次バージョンでfixされるかも?~
~
~
#navi(NetBSD)
ページ名: