On Saturday, September 9, 2023 at 1:00:02 PM UTC+2, Kay Martinen wrote:
> Hallo.
>
> Angeregt durch die SCO/Unix Debatte habe ich mal wieder die Wikipedia
> quer gelesen und stieß dabei (erneut) auf die BeBox. Das System darin
> ist ja ein PowerPC Dual SMP mit ppc603 aber es soll die Software BeOS ja
> auch auf Mac und Intel Portiert geben.
>
> Allerdings frage ich mich ob das auch für eventuelle Software-interfaces
> gilt mit denen die Blinkenlights der BeBox angesteuert werden. Und
> welches Hardware-Interface dort wohl dahinter steckt um (sinnvollerweise
> zeitnah) die Auslastung der beiden CPUs mit einer LED Kette zu
> visualisieren.
[...]
> Kann man die CPU-Auslastung von Außen und Rückwirkungsfrei durch irgend
> eine Standard-Methode mit einer Elektronik in Hardware erfassen und
> umrechnen/wandeln für eine Externe Anzeige? Wie haben die das in der
> BeBox gemacht? Hat jemand so eine und kann die Chips der LED-Platine mal
> ablichten?
Laut der Hardwareübersicht (
http://testou.free.fr/www.beatjapan.org/mirror/www.be.com/products/bebox/techspec_images/HWBlockDiagW.gif) ist das "Front Panel" über ein 26-poliges Flachbandkabel angeschlossen über die Intel 82378 PCI/ISA bridge. Wenn der Auszug aus dem Schaltplan auf
https://discuss.haiku-os.org/t/help-for-bebox-replica/9410/3 wirklich von der BeBox ist, sind die Treiberbausteine LM3914:
https://www.ti.com/lit/ds/symlink/lm3914.pdf
Das würde bedeuten, dass 4 Bits des Parallelports/Buffers über einen simplen widerstandsbasierten D/A-Wandler in eine analoge Spannung (0-5V) gewandelt werden, die der LM3914 dann wieder in eine entsprechende Menge angeschalteter LEDs umsetzt (also wieder A/D wandelt).
Von der Ansteuerung her ist dann die Folge, dass man wohl nur einen Wert von 0-15 jeweils für die linke und rechte Leiste in Software konfigurieren kann, also die LEDs nicht unabhängig voneinander ansteuerbar sind. Der entsprechende Ausschnitt aus NetBSD scheint das zu bestätigen (Kernel-Source von 8.2):
./bebox/machdep.c:#define LEFT_LED(x) (((x) & 0xf) << 4)
./bebox/machdep.c:#define RIGHT_LED(x) (((x) & 0xf))
./bebox/machdep.c: outb(PREP_BUS_SPACE_IO + 0x0c00, LEFT_LED(15) | RIGHT_LED(15));
PREP_BUS_SPACE_IO scheint für alle PPC-Architekturen gleich definiert zu sein als Basisadresse 0x8000_0000.
Ich habe leider kein hochaufgelöstes Foto der BeBox-Platine gefunden, auf dem man sehen könnte, ob wirklich LM3914 zum Einsatz kommen... vielleicht hat ja jemand eine Maschine?
- Michael