mirror of
https://git.k-space.ee/arti/vt1200.git
synced 2026-10-31 12:05:05 +02:00
NETWORK_REPORT: the firmware has no software reboot (Ghidra check of the test menu)
This commit is contained in:
1 parent
41e21b6494
commit
55236fbf54
1 file changed
+40
@@ -4726,3 +4726,43 @@ re-enable the display until POST is done.
|
||||
cycle during it. `jump` and `reboot` both transmit their reply and wait for the
|
||||
descriptor to complete before transferring control, so the host always gets its
|
||||
acknowledgement first.
|
||||
|
||||
### 72.4 There is no vendor reboot to jump to (checked in Ghidra)
|
||||
|
||||
The diagnostics menu looked like the obvious place for a supported restart, so
|
||||
the ROM was read in the Ghidra project (`ghidra/vt1200.gpr`, TMS34010). The
|
||||
complete menu is at `rom:0x07fb9532` (byte addresses in the image; the string
|
||||
address is bit `0x3FDC…`):
|
||||
|
||||
```
|
||||
VERSION 2.08 - SELECTED TEST TYPE:
|
||||
A[x]/Y - ROM TEST (x = bank select)/NVM C - LANCE TEST
|
||||
D - KEYBOARD TEST E - DUART1, CHANNEL A (HOST)
|
||||
F - DUART1, CHANNEL B (PRINT) G - DUART1 TIMER
|
||||
H - DUART2, CHANNEL A (KEYBOARD) I - DUART2, CHANNEL B (MOUSE)
|
||||
J - DUART2 TIMER K - MOUSE/TABLET TEST
|
||||
L - VIDEO TEST M - ETHERNET ROM TEST
|
||||
N - VIDEO MEMORY TEST O - LOOPBACK MODE (TOGGLE)
|
||||
P[x] - PATTERN W[x] - CONTINUE FOREVER / LOOP ON ERROR
|
||||
X - RESET THE PRESENT SELECTION Z - RUN THE TEST SELECTION
|
||||
Q - SELECT ALL TESTS U/V - BUILD LNKTABLE/RUN BUS PATH CHECK
|
||||
S[x] - SELECT FCC MODES T[x] - IMAGE / MENU / DISPLAY INT
|
||||
```
|
||||
|
||||
* **No reboot/restart entry.** `X` resets the *test selection*, not the machine.
|
||||
* The string `REBOOT` does not occur anywhere in the 1.75 MB image, and neither
|
||||
does `RESTART` as a menu action (the two hits are "Terminal Manager XIO error…
|
||||
restarting…" and "server restarted" — OS messages).
|
||||
* The reset entry `0x3F200040` appears as a constant **twice** in the whole ROM,
|
||||
at `rom:0x07e40c2e` and `rom:0x07e40c64`, inside the early handler region, and
|
||||
both reduce to a compare against `0x40` (`ANDI 0xffff` / `CMPI 0x40`). Neither
|
||||
transfers control there.
|
||||
|
||||
So the firmware never reboots itself; a reset is the hardware reset line. The
|
||||
`reboot` command's jump to the reset vector is therefore the *only* software
|
||||
path, and the measured ~88 s is the cost of that path — POST runs in full, with
|
||||
the screen blank while it reprograms the video window.
|
||||
|
||||
If a faster return than that is ever needed, the alternative is not a reboot but
|
||||
a hand-back of the chip while the OS keeps running (section 64): the display and
|
||||
the OS survive, the network does not.
|
||||
Reference in new issue
Block a user