Ich habe vor hier ein wenig zum Thema SUN OpenBoot und PROMs zusammenzutragen. Das Ziel dabei ist natürlich dass das hier jeder der will nachvollziehen und mitmachen kann, also gerne Fragen stellen wenn etwas unklar bleibt! Und: es gibt hier (noch) sehr viel was ich nicht verstehe, ich freue mich also auch wenn jemand was besser erklären kann!
Auslöser ist die Frage von ThoralfAsmussen in einem anderen Thread, wie man sich denn anzeigen lassen kann welche Auflösungen denn der Framebuffer unterstützt. Damit fangen wir mal ganz einfach an und sehen dann wie weit das am Ende führt
Ich nehme als Test-System hier eine SPARCstation LX, angeschlossen über seriell damit ich die Ausgabe leicht mitprotokollieren kann. Bei mir ist auto-boot? = false und diag-switch? = true gesetzt damit ich direkt in das OpenBoot komme und die Info über SBUS Devices angezeigt wird:
Probing Memory Bank #0 32 Megabytes
Probing Memory Bank #1 Nothing there
Probing Memory Bank #2 Nothing there
Probing Memory Bank #3 Nothing there
Probing /iommu@0,10000000/sbus@0,10001000 at 4,0 espdma esp sd st SUNW,bpp ledma le
Probing /iommu@0,10000000/sbus@0,10001000 at 0,0 cgsix
Probing /iommu@0,10000000/sbus@0,10001000 at 1,0 Nothing there
Probing /iommu@0,10000000/sbus@0,10001000 at 2,0 SUNW,DBRIe mmcodec
Probing /iommu@0,10000000/sbus@0,10001000 at 3,0 cgsix
SPARCstation LX, No Keyboard
ROM Rev. 2.10, 32 MB memory installed, Serial #12365871.
Ethernet address 8:0:20:bc:b0:2f, Host ID: 80bcb02f.
Type help for more information
ok
Alles anzeigen
Ansonsten mit Stop-A bzw BREAK den Bootvorgang abbrechen und auto-boot? und diag-switch? entsprechend setzen mit setenv auto-boot? false.
Das OpenBoot stellt uns eine Art Datei-System mit Devices zur Verfügung. Mit der Info oben finden wir auch den richtigen Weg zu den SBUS Devices:
ok cd /
ok ls
ffd32224 obio
ffd31e18 iommu@0,10000000
ffd31da8 openprom
ffd31bc8 TI,TMS390S10@0,f8fffffc
ffd2f664 virtual-memory@0,0
ffd2f5b8 memory@0,0
ffd27f54 aliases
ffd27f20 options
ffd27eec packages
ok cd /iommu@0,10000000/sbus@0,10001000
ffd46898 cgsix@3,0
ffd46700 SUNW,DBRIe@2,10000
ffd43e10 cgsix@0,0
ffd421bc ledma@4,8400010
ffd42130 SUNW,bpp@4,c800000
ffd3f220 espdma@4,8400000
ok
Alles anzeigen
Jetzt muss man noch wissen welche der SBUS Karten die integrierte ist (@3,0) und welche die zusätzlich verbaute (@0,0). Wir sehen uns die integrierte an:
ok cd cgsix@3,0
ok .attributes
intr 00000039 00000000
reg 00000003 00000000 01000000
dblbuf 00000000
vmsize 00000001
depth 00000008
height 00000384
awidth 00000480
linebytes 00000480
width 00000480
emulation cgsix
montype 00000000
boardrev 00000089
pixfreq 05a1f4a0
hfreq 0000f195
vfreq 00000042
hbporch 000000d0
hsync 00000080
hfporch 00000028
vbporch 0000001f
vsync 00000004
vfporch 00000002
fbmapped 00100000
global-data ffef4f70
oscillators 37 34 32 35 30 30 30 30 2c 36 34 31 32 35 30 30
chiprev 00000008
device_type display
model SUNW,501-1672
name cgsix
ok words
selftest disp-test close remove restore
draw-logo write open install
reinstall-console override set-resolution-ext
set-resolution update-string monitor-string
svga77 svga70 svga60 r1600x1280x76
r1280x1024x76 r1280x1024x67 r1152x900x76 r1152x900x66
r1024x800x85 r1024x800x74 r1024x800x72 r1024x768x77
r1024x768x76 r1024x768x70 r1024x768x60 acceleration dblbuf?
display-height display-width
ok
Alles anzeigen
Hier sehen wir schon welche Auflösungen die Karte definiert. Gesetzt werden diese bekanntlich mit zB setenv output-device screen:svga60.