mirror of
https://git.k-space.ee/arti/vt1200.git
synced 2026-10-31 12:05:05 +02:00
udpstream: reboot works on the real unit (88 s), and correct the earlier call
Issued while the payload owned the LANCE: the reply arrived, control went to 0x3F200040, the screen went black -- and the OS was back 88 s later. Port 771 reopened on its own, the unit answered ping, and a VRAM screenshot shows the Terminal Manager with the right MAC/IP/LAT name and the clean-boot "Ethernet Port Error - 24" banner. A taken-over unit can therefore hand itself back without a power cycle. An earlier reading of the same run reported "black and hung, needs a power cycle". That was a single observation taken inside the ~90 s POST window. The black screen is the reset path reprogramming the board/video window (0xC00000B0, 0xC0000100) and not re-enabling the display until POST ends. vtcmd.py reboot now says how long it takes and warns not to power cycle during it, instead of refusing to run.
This commit is contained in:
1 parent
0563cb08e8
commit
41e21b6494
2 files changed
+39
-4
No files matched your search
@@ -4691,7 +4691,38 @@ the state a payload leaves behind, and at real power-on `SP` is undefined
|
||||
anyway, which is the condition we reproduce.
|
||||
|
||||
MAME evidence: after the reply, the PC leaves the payload (`0x018Cxxxx`) for ROM
|
||||
(`0x3FB43E40` at the next sample) and the payload stops answering. What is **not**
|
||||
shown yet is that the unit comes back *without a power cycle* — in MAME the OS
|
||||
was never down, so a warm restart is indistinguishable from the OS continuing.
|
||||
That test needs the real machine and is the reason the command exists.
|
||||
(`0x3FB43E40` at the next sample) and the payload stops answering.
|
||||
|
||||
### 72.3 It works on the real machine — and a correction
|
||||
|
||||
`reboot` was issued on the unit at **16:58:45** while the payload owned the LANCE.
|
||||
The reply came back (`control -> bit 0x3f200040`, status 0), the payload stopped
|
||||
answering, and the screen went black.
|
||||
|
||||
**That is POST, not a hang.** Port 771 reopened **88 s** later, the unit answered
|
||||
ping, and a VRAM screenshot (`dwt/screenshot.py --real`) shows the machine fully
|
||||
back:
|
||||
|
||||
```
|
||||
Terminal Manager V2.2 Copyright (C) 1991 Digital Equipment Corporation
|
||||
Messages: Debug connection from IP host 100.103.255.254
|
||||
Ethernet Address 08-00-2B-16-4B-5A IP 100.103.100.103
|
||||
LAT Host Name LAT_08002B164B5A Memory Remaining: 4M
|
||||
```
|
||||
|
||||
with the documented `Ethernet Port Error - 24` clean-boot banner (section 65).
|
||||
So a taken-over unit **can hand itself back without a power cycle**, which was
|
||||
the point of the command.
|
||||
|
||||
**Correction, recorded on purpose.** An earlier reading of this same run called
|
||||
it "black and hung, needs a power cycle", because the observation was taken
|
||||
inside the ~90 s POST window. That conclusion was wrong, and it is the exact
|
||||
mistake this project's own rule 3 warns about — one sample, taken early, reported
|
||||
as a property. The screen being black is normal: the reset path reprograms the
|
||||
video window (`0xC00000B0`, `0xC0000100` in the trace above) and does not
|
||||
re-enable the display until POST is done.
|
||||
|
||||
`vtcmd.py reboot` therefore prints the expected ~90 s and warns not to power
|
||||
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.
|
||||
@@ -190,6 +190,10 @@ def main():
|
||||
return 0
|
||||
|
||||
if a.cmd in ("jump", "reboot"):
|
||||
if a.cmd == "reboot":
|
||||
print("rebooting: the screen goes black while POST runs; the OS is")
|
||||
print(" back in about 90 s (measured 88 s) and rdebug :771 returns")
|
||||
print(" on its own. Do not power cycle it during that window.")
|
||||
cmd = 4 if a.cmd == "jump" else 5
|
||||
status, data = request(sock, a.iface, cmd, a.addr, 0, a.timeout)
|
||||
if status is None:
|
||||
|
||||
Reference in new issue
Block a user