mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-02 05:46:47 +07:00
96 lines
3.4 KiB
Plaintext
96 lines
3.4 KiB
Plaintext
|
Running Linux on the Voyager Architecture
|
||
|
=========================================
|
||
|
|
||
|
For full details and current project status, see
|
||
|
|
||
|
http://www.hansenpartnership.com/voyager
|
||
|
|
||
|
The voyager architecture was designed by NCR in the mid 80s to be a
|
||
|
fully SMP capable RAS computing architecture built around intel's 486
|
||
|
chip set. The voyager came in three levels of architectural
|
||
|
sophistication: 3,4 and 5 --- 1 and 2 never made it out of prototype.
|
||
|
The linux patches support only the Level 5 voyager architecture (any
|
||
|
machine class 3435 and above).
|
||
|
|
||
|
The Voyager Architecture
|
||
|
------------------------
|
||
|
|
||
|
Voyager machines consist of a Baseboard with a 386 diagnostic
|
||
|
processor, a Power Supply Interface (PSI) a Primary and possibly
|
||
|
Secondary Microchannel bus and between 2 and 20 voyager slots. The
|
||
|
voyager slots can be populated with memory and cpu cards (up to 4GB
|
||
|
memory and from 1 486 to 32 Pentium Pro processors). Internally, the
|
||
|
voyager has a dual arbitrated system bus and a configuration and test
|
||
|
bus (CAT). The voyager bus speed is 40MHz. Therefore (since all
|
||
|
voyager cards are dual ported for each system bus) the maximum
|
||
|
transfer rate is 320Mb/s but only if you have your slot configuration
|
||
|
tuned (only memory cards can communicate with both busses at once, CPU
|
||
|
cards utilise them one at a time).
|
||
|
|
||
|
Voyager SMP
|
||
|
-----------
|
||
|
|
||
|
Since voyager was the first intel based SMP system, it is slightly
|
||
|
more primitive than the Intel IO-APIC approach to SMP. Voyager allows
|
||
|
arbitrary interrupt routing (including processor affinity routing) of
|
||
|
all 16 PC type interrupts. However it does this by using a modified
|
||
|
5259 master/slave chip set instead of an APIC bus. Additionally,
|
||
|
voyager supports Cross Processor Interrupts (CPI) equivalent to the
|
||
|
APIC IPIs. There are two routed voyager interrupt lines provided to
|
||
|
each slot.
|
||
|
|
||
|
Processor Cards
|
||
|
---------------
|
||
|
|
||
|
These come in single, dyadic and quad configurations (the quads are
|
||
|
problematic--see later). The maximum configuration is 8 quad cards
|
||
|
for 32 way SMP.
|
||
|
|
||
|
Quad Processors
|
||
|
---------------
|
||
|
|
||
|
Because voyager only supplies two interrupt lines to each Processor
|
||
|
card, the Quad processors have to be configured (and Bootstrapped) in
|
||
|
as a pair of Master/Slave processors.
|
||
|
|
||
|
In fact, most Quad cards only accept one VIC interrupt line, so they
|
||
|
have one interrupt handling processor (called the VIC extended
|
||
|
processor) and three non-interrupt handling processors.
|
||
|
|
||
|
Current Status
|
||
|
--------------
|
||
|
|
||
|
The System will boot on Mono, Dyad and Quad cards. There was
|
||
|
originally a Quad boot problem which has been fixed by proper gdt
|
||
|
alignment in the initial boot loader. If you still cannot get your
|
||
|
voyager system to boot, email me at:
|
||
|
|
||
|
<J.E.J.Bottomley@HansenPartnership.com>
|
||
|
|
||
|
|
||
|
The Quad cards now support using the separate Quad CPI vectors instead
|
||
|
of going through the VIC mailbox system.
|
||
|
|
||
|
The Level 4 architecture (3430 and 3360 Machines) should also work
|
||
|
fine.
|
||
|
|
||
|
Dump Switch
|
||
|
-----------
|
||
|
|
||
|
The voyager dump switch sends out a broadcast NMI which the voyager
|
||
|
code intercepts and does a task dump.
|
||
|
|
||
|
Power Switch
|
||
|
------------
|
||
|
|
||
|
The front panel power switch is intercepted by the kernel and should
|
||
|
cause a system shutdown and power off.
|
||
|
|
||
|
A Note About Mixed CPU Systems
|
||
|
------------------------------
|
||
|
|
||
|
Linux isn't designed to handle mixed CPU systems very well. In order
|
||
|
to get everything going you *must* make sure that your lowest
|
||
|
capability CPU is used for booting. Also, mixing CPU classes
|
||
|
(e.g. 486 and 586) is really not going to work very well at all.
|