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