Port-mips archive

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

Re: 8.1 boot failure on Challenge S



On Sun, 17 Nov 2019 02:03:26 -0500
Michael <macallan%netbsd.org@localhost> wrote:

> On Sat, 16 Nov 2019 20:20:40 +0000
> George Harvey <fr30%dial.pipex.com@localhost> wrote:
> 
> > Since the failure occurred after finding hpc1, which isn't present on
> > an Indy, I built a custom kernel with hpc1 disabled. That booted and
> > ran normally on the Challenge S so it looks like the problem is related
> > to the second hpc. What can I do to narrow it down further?
> 
> Hmm, might be fallout from the bus space rework I did a while ago -
> this is a hardware combination I was unable to test.
> 
> > mode status=0x20040003, cause=0xc008, epc=0x880b59e4, vaddr=0
> > tf=0x88061848 ksp=0x880618e8 ra=0x880b59d8 ppl=0x8
> > kernel: TLB miss (load or instr. fetch) trap
> > Stopped in pid 0.1 (system) at  880b59e4:       lw      a0,0(v1)

It does appear to be bus space related. I added some printfs and the
error occurs at line 484 in hpc.c. That's a bus_space_write_4:

   bus_space_write_4(ga->ga_iot, ga->ga_ioh,
       HPC3_PBUS_CFGPIO_REGS, 0x0003ffff);

I then printed the values of ga_iot and ga_ioh and found that ga_iot
was zero. After some further debugging, I found that ga->ga_iot was set
to zero in gio_search in gio.c. Changing that line to set ga_iot to
normal_memt instead fixed the error and allowed the kernel to boot
normally. ie. change ga->ga_iot = 0; to ga->ga_iot = normal_memt;

Is that the correct fix?

George





Home | Main Index | Thread Index | Old Index