Port-atari archive

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

Re: install image overflow



martin@ wrote:

> > I wish no one will claim "build or die" strategy even before 7.0 is out.
> 
> Certainly not!

Well, certainly there were so much many complaints
"leaving builds broken was much worse than blah blah"
in past, even from Core members...

> I have two ideas I will investigate short-term:
> 
>  - make many of the recent sysinst enhancements optional and ifdef them out
>    for install media where this makes sense (but leave them in for the 
>    installed version).

Note sysinst.fs in 7.0_RC1 has no problem.
I'm not sure how many changes are applied in HEAD
after netbsd-7 was cut, though.


On the other hand, the "long-term solution" is adding support
"loading md-root (or kernel) from multiple floppies".

For the "multiple floppy support" there are two approach,
but atari port has historical difficulties in both way.


1) Add "standard" ustarfs support in bootloaders

This is common method used in all ports so easier way to maintain,
but this requires bootloader reorganization and the reorganization
requires more information about ATARI hardware/BIOS sepecifications, like

- how TOS(?) ROM bootstrap routines read and exec boot sectors on floppy
- how can we read sectors via TOS(?) BIOS

Currently "read sector" functions are passed from the primary bootloaders
 http://nxr.netbsd.org/xref/src/sys/arch/atari/stand/bootxx/bootxx.c?r=1.16#57
 http://nxr.netbsd.org/xref/src/sys/arch/atari/stand/xxboot/fdboot/fdboot.S?r=1.2#109
 http://nxr.netbsd.org/xref/src/sys/arch/atari/stand/xxboot/fdboot/fdboot.S?r=1.2#168
but such bootloader structure is atari specific so it requires
more investigations.
(Probably we have to contact the original author, Leo Weppelman)

Futheremore, atari port has five different GENERIC-like kernels
(ATARITT, FALCON, HADES, MILAN-PCIIDE, MILAN_ISAIDE)
so I'm afraid we need "md-root" kernels for all of them..


2) Add multiple floppy support in atari specific "auto-load md(4) on open"

The atari port has its own md_root.c which support
"auto-load md(4) images from raw floppy device on first open(9)"
operations.
 http://nxr.netbsd.org/xref/src/sys/arch/atari/dev/md_root.c?r=1.33#121

This function allows users to use both "root on fd0a" and
"root on md0 (which is loaded from sysinst.fs floopy)" ops.

This "loaddisk" function in the md_root.c already supports
multiple floppies:
 http://nxr.netbsd.org/xref/src/sys/arch/atari/dev/md_root.c?r=1.33#247

I had tested it (autoload md(4) image from mulitiple floppies) on i386
when I debugged autoloading md(4) post-4.0 vmlocking2 branch merge:
 http://mail-index.netbsd.org/port-atari/2008/12/24/msg000158.html

But scripts in src/distrib/atari/floppies doesn't support spliting images.

Furthermore, this "autoload on open" strategy has several problems:

- Users no longer can use "root on fd0a" method

- IIRC Andrew Doran (VM guy who introduced vmlocking2 etc) deprecated it
  (I cannot find the message in archive though)  

- md(4) pseudo-device was changed into "attached on open" after 5.0
 http://mail-index.netbsd.org/source-changes/2010/11/11/msg014346.html
  so we had to add ugly hack to allow to specify "root on md0" on
  RB_ASKNAME prompt.
 http://mail-index.netbsd.org/source-changes/2012/06/30/msg035297.html
 http://mail-index.netbsd.org/source-changes/2012/06/30/msg035298.html


Hope these information help future developers.

---
Izumi Tsutsui


Home | Main Index | Thread Index | Old Index