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

Re: Unable to boot latest snapshot with Microdrive



Hayakawa Koichi <haya@ilink.sony.co.jp> writes:
> hpcmips で bus_space_barrier() がきちんと実装されているのな
> ら、bus_space_write() と bus_space_read() の間に
> 
> 	bus_space_barrier(h->ph_bus_t, h->ph_bus_h, PCIC_REG_INDEX, 1,
> 	    BUS_SPACE_BARRIER_WRITE_BEFORE_READ);
> 
> を入れる案はいかがでしょうか? ついでに、st_pcic_write() には、
> 
> 	bus_space_barrier(h->ph_bus_t, h->ph_bus_h, PCIC_REG_INDEX,, 1
> 	    BUS_SPACE_BARRIER_WRITE_BEFORE_WRITE);
> 
> をはさむのはどうでしょう?

delay(1)はあまり好ましくないので、bus_space_barrier()を入れてうまくいく
のならそうしようかと考えていたところです。

nop;nopの代わりにsync;nopをいれてみて、現象が発生しなくなるようならこれ
でいきたいと思います。(z50では、bus_space_barrier()は最終的にはsync命令
を実行する関数の呼び出しとして実装されています。)

篠原