Port-sgimips archive

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

Re: Indigo R3000, Indigo R4000 and Indy R5000



Dear Naruaki,

sorry for the long radio silence, but I was occupied by so many other
things (testing newly purchased machines for example, highlight: an
AlphaServer ES45 :-)). But in the meantime I also did some research
regarding `sash` and the way it is booted from the PROM and came across
a detailed description on [1]. This might be useful for our undertaking.

[1]: https://techpubs.jurassic.nl/manuals/0530/admin/SiteAdmin/sgi_html/ch04.html#id37004

IIUIC `sash` gets the kernel to boot in its first argument. And the PROM
monitor command `auto` looks like it could be used to perform a boot of
the default operating system, with the bootloader with device path in
the variable `bootfile` and the root partition (in IRIX notation) in the
variable `root`. From how I understand it, the `auto` command seems to
actually issue a `boot` command as follows:

```
boot [-f $bootfile] $root/unix
```

...with `-f $bootfile` being optional, because without using `-f [...]`,
the `boot` command starts the file specified in `bootfile`.
Unfortunately I can't determine exactly what arguments `auto` provides
to `irisboot`, as `irisboot` only tells me they're invalid but not what
they are:

```
>> printenv
netaddr=172.16.2.103
dbaud=9600
rbaud=1200
bootfile=dksc(0,1,8)irisboot
bootmode=c
console=d
diskless=0
volume=128
path=dksc(0,1,8)
cpufreq=33
root=dks0d1s0
 
>> auto
   
   
Starting the system...
   
Loading dksc(0,1,8)irisboot: 56784+0+1832 entry: 0x80368000
   
NetBSD/sgimips 8.99.24 Yet another Bootstrap, Revision 1.0 (Sun Aug 19
08:53:34 UTC 2018)
   
Invalid argument
i.e., dksc(X,Y,8)loader dksc(X,Y,0)/kern
   
                             Starting the system...
[...]
```

Contrary to the docs (assuming they are for IRIX 5.3 and matching
firmware level(s)), the `root` variable vanishes after the machine
resets.

But it could still be really helpful if `irisboot` would also print all
of its arguments, so we could see, what we can achieve from the PROM
monitor.

BTW, with `dksc(0,1,8)irisboot` in the variable `bootfile` it also works
to just boot with `boot dksc(0,1,0)/netbsd`:

```
>> printenv
netaddr=172.16.2.103
dbaud=9600
rbaud=1200
bootfile=dksc(0,1,8)irisboot
bootmode=c
console=d
diskless=0
volume=128
path=dksc(0,1,8)
cpufreq=33

>> boot dksc(0,1,0)/netbsd
56784+0+1832 entry: 0x80368000

NetBSD/sgimips 8.99.24 Yet another Bootstrap, Revision 1.0 (Sun Aug 19
08:53:34 UTC 2018)

2829712+82768 [185024+176400]=0x31fa74
[   1.0000000] arcemu: unknown console "", using serial
[   1.0000000] Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002,
2003, 2004, 2005,
[   1.0000000]     2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014,
2015, 2016, 2017,
[   1.0000000]     2018 The NetBSD Foundation, Inc.  All rights
reserved.
[   1.0000000] Copyright (c) 1982, 1986, 1989, 1991, 199
[   1.0000000]     The Regents of the University of California.  All
rights reserved.

[   1.0000000] NetBSD 8.99.24 (GENERIC32_IP12) #3: Sun Aug 19 13:04:21
UTC 2018
[   1.0000000]  naruaki@:/usr/obj.sgimips/sys/arch/sgimips/compile
/GENERIC32_IP12
[...]
```

On 9/17/18 21:10, Naruaki.Etomi wrote:
>> Makes perfect sense then. But maybe you could include
>> `dksc(0,1,0)/netbsd` as the default path to the kernel in irisboot,
>> which could be used if no argument is given to irisboot. This could work
>> for the major part of installations where the kernel is on the partiton
>> for "/" on the first disk. And users could still overwrite it with their
>> preferred settings.
> 
> I tried to implement irisboot "lazymode" for about a week.
> https://github.com/nullnilaki/irisboot_lazymode
> 
> Unfortunately, It is too large for Indigo R3K.
> https://github.com/nullnilaki/NetBSD_irisboot/blob/master/irisboot.diff#L226
> It can not loading kernel...
> https://twitter.com/nullnilaki/status/1041051486715666432

Ok, bummer, but I'm unsure if this is really due to the size of
`irisboot`. This because `sash` is even bigger:

```
/mnt/stand# ls -la
total 6186
drwxrwxr-x 2 root root    512 Feb 10  1996 .
drwxrwxr-x 8 root root    512 Feb 10  1996 ..
[...]
-rw-rw-r-- 1 root root 359856 Feb 10  1996 fx.IP12
[...]
-rw-rw-r-- 1 root root 249280 Feb 10  1996 sash.IP12
[...]
```

This is from an IRIX 5.3 CDROM and it looks like`sash` for IP12 is more
then 200 KiB in size. But if I interpret the picture in your tweet ([2])
correctly, the modified `irisboot` is just below 60 KiB in size. Not
sure what the problem is then, though.

[2]: https://twitter.com/nullnilaki/status/1041051486715666432

> 
> Let's put irisboot "lazymode" implementation plan on hold.
> 
> I am sorry for the inconvenience...

No issue, but if you want to continue this, I'm all in for testing. :-)

Cheers,
Frank


Home | Main Index | Thread Index | Old Index