Re: 8.1 boot failure on Challenge S

George Harvey <[email protected]>
Newsgroups gmane.os.netbsd.ports.mips.devel
Message-ID <[email protected]>
On Sun, 17 Nov 2019 02:03:26 -0500
Michael <[email protected]> wrote:

> On Sat, 16 Nov 2019 20:20:40 +0000
> George Harvey <[email protected]> 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.