Port-sgimips archive

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

Re: Porting NetBSD to SGI Fuel?



On Wed, 19 Sep 2018, Naruaki.Etomi wrote:
I investigate mips64 toolchain on my Fuel.

Thank you Etomi-san!

hinv
System  SGI-IP35
1 900 MHz IP35 Processors

Hey, your's is nicer than mine! Isn't that the fastest CPU for them? Nice!

1) I was wondering why start.S compile insted of start64.S.

... but from the diff you show, didn't you patch it to use start64.S instead? So, you are trying to go fully MIPS64 with this attempt right?

2) LOAD_ADDRESS_IP30? is adapted from OpenBSD.

BSD is one big family. Glad the OpenBSD folks are working on SGI, too. I've got it downloaded to try on my Tezro. It'd be amazing to try NetBSD on my Fuel, so thanks for the effort.

bootp()ip30boot
Obtaining ip30boot from server xserve
55184+1944 entry: 0xa800000001200000

This is probably a dumb idea, but is it possible that this was not far enough out or that it's freakout was from some kind of TFTP/BOOTP operation?

A 000: *** TLB Refill Exception on node 0
A 000: *** EPC: 0xc00000001fc47e58 (0xc00000001fc47e58)
A 000: *** Press ENTER to continue.
A 000: POD IOC3 Unc> btrace
 FUNCTION:                       CALLED FROM:
   0xc00000001fc47d44              0xfffffffffffffff8
Exception terminated trace
A 000: POD IOC3 Unc>

So, how does a kernel hacker deal with this situation? I have no idea what you guys do at this point. Wouldn't fixing something like this require disassembly of the code and some kind of stepwise debugger/profiler that shows the state of every register as you walk through instructions?

I've just spent about a year studying 68k ASM, and when I went to study MIPS it was a big shock. RISC code is so much, well, *harder* than 68k CISC ASM code. There are instructions and registers I'm not familiar with and I've never really figured out how folks did any debugging or profiling with RISC-based CPUs. I guess it's like anything else, practice makes perfect, but I wish I knew what tools were used and I could watch an expert do it for a while so I could see what skills/steps were really needed. I have the old MIPSPro suite but thus far the only parts I've explored are the compilers.

OpenBSD/sgi-IP27 ARCBios boot version 1.8

Does the Fuel even have an ARC firmware? My understanding is that older SGI's used ARC and newer ones use SASH. I just remember calling the IRIX partitioner for either ARCS or SASH and it seems like everything after the Indy or around there was SASH.

I don't really know the difference other than one is old and one is new. I know the Alpha has an ARC and SRM firmware situation and I figured it was similar.

It work correctly.

Hmm, so do you think this is an NetBSD code issue or a toolchain problem?

What is the cause of this problem. 1) ldscript 2) compile option 3) mips64 toolchain

I'm sorry I don't have any helpful suggestions. I'm more just curious how a person would even start attacking a problem like that. I remember really old computers that had hardware debuggers and displays of register values etc... How do you do that for a bootloader, though? That seems very difficult. I wonder how the OpenBSD folks did it.

-Swift


Home | Main Index | Thread Index | Old Index