1
0
mirror of https://github.com/livingcomputermuseum/UniBone.git synced 2026-01-28 04:47:46 +00:00
Commit Graph

15 Commits

Author SHA1 Message Date
Josh Dersch
7626b50c52 Merge remote-tracking branch 'upstream/master'
Conflicts:
	10.01_base/2_src/arm/storagedrive.cpp
	10.01_base/2_src/arm/unibusadapter.cpp
	10.01_base/2_src/arm/unibusadapter.hpp
	10.01_base/2_src/pru1/pru1_statemachine_dma.c
	10.02_devices/2_src/mscp_server.cpp
	10.02_devices/2_src/mscp_server.hpp
	10.02_devices/2_src/rk05.hpp
	10.02_devices/2_src/rk11.cpp
	10.02_devices/2_src/rk11.hpp
	10.02_devices/2_src/rl11.cpp
	10.02_devices/2_src/uda.cpp
	10.03_app_demo/2_src/makefile
	10.03_app_demo/2_src/menu_devices.cpp
2019-06-18 20:50:33 +02:00
Joerg Hoppe
db0167afe1 Version 2019-06: many changes
PRU1 code split into multiple images
1. test functions
2. UNIBUS operation

PRU1 bus latch interface
Write byte/bits access not with MACROS (random optimizer influence),
now with *_helper() procedures. Same timing, more determinism, much code saving.
Nono more  ASM code to write PRU0 XFER area.

demo: menu to test UNIBUS signals directly

rework "Arbitration" logic: now 3-fold
Rework of UNIBUs arbtiration: NONE/CLIENT/MASTER
- no Arbitrator (SACK penidng for 11/34 Konsole) (NONE)
- phyiscal PDP_11 CPU is Arbitrator (CLIENT)
- UniBone implements Arbitrator (MASTER)
- Same PRU code loop handles all arbitration types

PRU buslatch timing slower, for some problematic PCBs

 More aggressive bus latch  selftest
 (mixed patterns, running on PRU now)

Refinement of ready-to-run scripts
- Adapted to changed "demo" menu
- new name scheme
<OS>_<boot- drive>_<PDP-11CPU>
indicates
- which OS is run
- which disk emulation is used and what is the boot device
- what is the (minimum) PDP-11 to run that

Merged in Joshs DMA timing for 11/84
UNIBUS master cycles waits 350 us before MSYN, instead 150.

Merged in Joshs DMA request queue
multiple devices canrequest INTR and DMAs concurrently, will be put on the bus sequentially

Merged in Joshs MSCP driver
- Build RT-11v5.5 for MSCP
- added boot loader "du.lst"

MSCP run scrips
2.11BSD on MSCP on PDP-11/44
RT11 on MSCP

Fix: image file sizing
Disk image file exptend automatically if block beyond current file end is written
2019-06-14 16:31:01 +02:00
Josh Dersch
1ad88b6778 Adding copyright info to file headers. 2019-05-18 02:16:05 +02:00
Josh Dersch
2265a2067c General cleanup: Refactored ONLINE / SET UNIT CHARACTERISTICS code, added comment headers to most functions.
Fixed RK05 to properly use on_param_changed instead of ugly hacks for the image path.
2019-05-18 00:57:07 +02:00
Josh Dersch
398c54ee3f Fixed Unit and Controller ID fields (word order was scrambled) and removed hacked-in constant values for same.
Made RCT table size dynamic based on the drive type.

The above allow RSTS/E to boot!  Huzzah!
2019-05-17 00:47:11 +02:00
Josh Dersch
fc312df0bc Cleaned up a few things:
- Removed delay in mscp server polling loop, which as I suspected was papering over an issue.
   We now pull all messages from the command ring at once and save them locally.  When processing
   completes, the polling loop goes back to sleep.  This jibes with host code expectations of the
   port.  No more delay necessary to avoid race conditions.

 - Cleaned up RCT/RBN information so that this can be dynamically configured in the future, should
   the need arise
2019-05-14 03:14:50 +02:00
Josh Dersch
464049f0b6 Changed reset behavior; now done asynchronously. (Was taking too long, especially during resets due to IP regsister read).
RSX-11M now boots and runs.
2019-05-11 02:10:12 +02:00
Josh Dersch
22be88832c Tweaks to MSCP initialization, some cleanup. 2019-05-09 02:00:05 +02:00
Josh Dersch
c6958e1660 Implemented the last few unimplemented MSCP commands; as yet untested with real PDP-11/VAX code (have yet to find a case that uses them.)
General code cleanup/refactoring.  Added header comments.

Added "use image size" parameter for MSCP disks -- block count derived from image file size rather than DEC drive geometry; allows for arbitrarily large disks (up to 2TB, theoretically.)
2019-05-08 05:34:40 +02:00
Josh Dersch
a00f0592dc Added small workaround for (possible) bug in VMS secondary bootstrap; improved reset behavior.
4.3bsd still panics during uda bringup.
2019-05-07 19:03:49 +02:00
Josh Dersch
3204e65499 Fixed UDA reset behavior, a few things were not getting re-initialized. Adjusted timings. 2.11bsd boots/runs without
apparent issues on 11/84.  Tested RT-11 on 11/84 and 11/05, mini-unix on 11/05.
2019-05-07 03:20:58 +02:00
Josh Dersch
be3b6d57ed Implemented AVAILABLE, ERASE, DETERMINE ACCESS PATHS commands. Tweaks to interrupt queueing (request_INTR now blocks until
the interrupt actually gets signaled on the unibus).  OpenVMS 7.3 now boots on the VAX.
2019-05-06 19:28:20 +02:00
Josh Dersch
8eff2a4e10 Rewrote lower-level DMA and IRQ handling: DMA and IRQ requests are now queued and will run to completion on their own
without help from the device code (just call request_DMA and when it returns the DMA transfer is complete.)  Fixed
request_DMA to chunk DMA transfers larger than 1024 bytes to avoid overrunning the mailbox's shared memory.  Fixed
concurrency issues with DMA requests -- a race condition could cause DMA request data to get clobbered.

RT-11 now boots, MSCP behavior is now very reliable.
2019-05-04 03:30:26 +02:00
Josh Dersch
e0aabf2197 Changes to MSCP implementation with tweaks to PRU1 code to allow operation on 11/84 under 2.11BSD.
2.11BSD boots and works well enough to recompile itself.
2019-04-24 20:29:33 +02:00
Josh Dersch
2189e264c3 Initial stab at MSCP implementation. Strives to be MSCP compliant but is not an emulation
of the UDA50 controller.

Currently works acceptably with RT-11, does not currently boot.  Many holes in implementation.
2019-04-16 02:30:40 +02:00