Subject: New Booter (1.11.3b6) available for testing
To: None <port-mac68k@NetBSD.ORG>
From: None <nigel@ind.tansu.com.au>
List: port-mac68k
Date: 07/08/1998 10:21:40
Executive Summary:
* New beta version of the Booter (1.11.3b6) for folk to test
* Should fix serial console problems that some people were having with
1.11.3b3, provided that you go into both the Booting and Serial options
and click OK (and then save Prefs if necessary). This will normalise some
of the variables which were causing the problems.
* Also fixes bug with "Change Monitor Depth" on some machines (e.g. IIci
running 7.5.5), where the changes would persist 'till the next time
MacOs was loaded
Serial console post-mortem:
* I spent about two weekends investigating serial console booting with
Booters 1.11.1, 1.11.2, 1.11.3b3 and kernels 1.2G and 1.3 on a Q840av,
and basically couldn't reproduce the problem that people had reported.
* The only change in the Booter seemed that 1.11.3b3 set SERIALECHO to
255 instead of 1 in earlier booters.
* Found bug with 1.11.3b3 in that, if both Serial Console _and_ Serial
Boot Echo were set, the kernel would hang about when it would be
starting the getty.
The Code:
* The Booter as I inherited it (i.e. 1.9.4) used to have code like this:
currentConfiguration.GrayBars
= GetDialogItemControlValue(bootDia, grayBars)?255:0;
...
currentConfiguration.SerBootEcho
= GetDialogItemControlValue(serialDia, s_serBEcho)?255:0;
currentConfiguration.OpenModemPort
= GetDialogItemControlValue(serialDia, s_serOpenModen)?255:0;
Now, that will store booleans as 0 or 255 instead of 0 or 1.
That, combined with a change I made in ufs_test.c, from:
flags = (machineid << 2) | (0x00003 & (processor - gestalt68020));
flags|= (((unsigned long)(currentConfiguration.SerBootEcho & 0x1)) << 16);
flags|= (((unsigned long)(currentConfiguration.GrayBars & 0x1)) << 17)
flags|= (((unsigned long)(RAMSize & 0x1f)) << 7);/
flags|= (unsigned long)currentConfiguration.BootFlags;
flags|= 0x80000000L;
...
setenv ("GRAYBARS", (flags & 0x20000) ? 1 : 0);
setenv ("SERIALECHO", (flags & 0x10000) ? 1 : 0);
to:
setenv ("GRAYBARS", currentConfiguration.KernelDebug);
setenv ("SERIALECHO", currentConfiguration.SerBootEcho);
meant that these environment variables had the value of 255 instead of 1.
I have corrected all the preferences setting code to use '?1:0', which
is why some of you (mainly people who have tested any earlier 1.11.3
betas) will have to open and close some of the Options dialogs.
--
| Nigel Pearson, nigel@ind.tansu.com.au | "reality is that which |
| Telstra IN Platforms, Sydney, Aust. | doesn't go away when you |
| Office: 9206 3468 Fax: 9212 6329 | you stop believing in it" |
| Mobile: 014 611 322 Home: 9579 3293 | Philip K. Dick |