[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NetBSD/newsmips boot.fs



<20010202184613Y.h-masuda@ics.es.osaka-u.ac.jp>の記事において
h-masuda@ics.es.osaka-u.ac.jpさんは書きました。

> tsutsui> とりあえず原因を切り分けるべく boot floppy 内の
> tsutsui> kernel を HDD に置いてそこから起動したらどうなるか
> tsutsui> 確認できるでしょうか。

>   で、boot log です。とりあえず起動したっぽいです。
> # すると何が悪いんでしょうねぇ……。

PROM が FDC の後始末をしてないとかそういうことだと思います。
PWS-1560 でも同じような現象がありました。
#news68k は kernel の先頭でむりやり FDC reset してます。

とりあえず newsmips/stand/boot/boot.c で loadfile() のあと
PROM の close() 呼ぶようにしたものを同じところに新たに
置いたのでまた試してみて下さい。
-rw-r--r--   1 tsutsui  wheel   1314874 Feb  2 20:00 boot-newsmips-15Q.fs.gz

#PWS-1560 は NEWS-OS の boot loader でダメだったのでこれもダメかも。
#そうなると fd の driver を書くという本質でない解決策が必要?
---
Izumi Tsutsui
tsutsui@ceres.dti.ne.jp

Index: boot.c
===================================================================
RCS file: /cvsroot/syssrc/sys/arch/newsmips/stand/boot/boot.c,v
retrieving revision 1.5
diff -u -r1.5 boot.c
--- boot.c	2000/10/12 05:34:29	1.5
+++ boot.c	2001/02/02 11:11:37
@@ -161,6 +161,11 @@
 	if (fd == -1)
 		_rtt();
 
+	if (apbus)
+		apcall_close(fd);
+	else
+		rom_close(fd);
+
 	DPRINTF("entry = 0x%x\n", (int)marks[MARK_ENTRY]);
 	DPRINTF("ssym = 0x%x\n", (int)marks[MARK_SYM]);
 	DPRINTF("esym = 0x%x\n", (int)marks[MARK_END]);