[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命令
を実行する関数の呼び出しとして実装されています。)
篠原