[Oberon] What boot LEDs mean, point me to some docs

Michael Schierl schierlm at gmx.de
Sat Oct 24 16:22:11 CEST 2020


Hello,


Am 24.10.2020 um 15:50 schrieb D EMARD:
> HI
>
> A collegue is rying to make cleaner rework of SDRAM and cache for
> oberon at ulx3s board
> https://gitlab.com/pnru/ulx3s-misc/-/blob/master/oberonstation/ob_video.tgz
>
> Old code which works has this boot LED sequence (or bits):
> D7+D1, D7+D2, D5 ... then video, mouse and kbd work
>
> New code under development boots
> D7+D1, D7+2 and stays there

Bootloader successfully loads the inner core, but the inner core fails
before it could set any other LED value.

> Need some description or pointing to docs describing
> what LED combinations mean

The only documentation I know of is the source code... LEDs are only set
in four core modules: BootLoad, Kernel, Modules, Oberon. The values are
written in Hex, so D7+D1 would be 82H, D5 would be 20H.

BootLoad:

80H: Just started booting, will initialize SPI
81H: SPI initialized, will load core from serial
82H: SPI initialized, will load core from disk
84H: core loaded, will hand over to loaded core

Kernel:

Will only set LEDs if a TRAP happens during loading of core modules.
Value will be C0H + trap number (so something between C1H and C9H).

Modules:

Will set LEDs if loading a core module fails with an error code:

02H: file not available;
03H: key conflict;
04H: bad file version;
05H: corrupted file;
07H: no space


Oberon:

Will set LEDs duing garbage collection:
21H: GC started
23H: Mark phase finished
27H: Handling of weak references finished
20H: GC finished


So what you are seeing during the boot are only some of the values, the
others just appear too short to be seen.

In general, to ease debugging, as you have a working machine, I would
probably recompile the inner core and add some more LED statements
there, so you can see where the actual loading gets to and if the loaded
image is actually loaded correctly.


Regards,


Michael


More information about the Oberon mailing list