Port-vax archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

RE: rtVAX300 .. need help..



> 
> /*      $NetBSD: vsbus.h,v 1.18 2008/03/11 05:34:02 matt Exp $ */
> [..]
> /*
>  * Some chip addresses and constants, same on all VAXstations.
>  */
> #define VS_CFGTST       0x20020000      /* config register */
> #define VS_REGS         0x20080000      /* Misc CPU internal regs */
> #define NI_ADDR         0x20090000      /* Ethernet address */
> #define DZ_CSR          0x200a0000      /* DZ11-compatible chip csr */
> #define VS_CLOCK        0x200b0000      /* clock chip address */
> #define SCA_REGS        0x200c0000      /* disk device addresses */
> #define NI_BASE         0x200e0000      /* LANCE CSRs */
> #define NI_IOSIZE       (128 * VAX_NBPG)    /* IO address size */
> 
> #define KA49_SCSIMAP    0x27000000      /* KA49 SCSI SGMAP */
> /*
> 
> 
> "Misc CPU internal regs" mapped at 0x20080000 in the address space.
> I've asked about three times how this could be meant since I found nowhere
> that CPU Registers are got mapped to memory addresses.
> The rest of the definitions are straight forward, no question about that.

Back when I was hacking on Linux for VAX, I learned the following
(which may or may not be 100% true!):

VAXstation-class machines (KA4x-serial CPUs, not the
QBus-based MicroVAX-2/3 machines with KA630 and KA650) have 
nearly everything on one motherboard.  There isn't a proper
VAX-style bas adapter that interconnects from the CPU's bus
to a peripheral bus (such as the CQBIC on a KA650, which
performs hardware mappings between address and interrupts
on the CPU side and the QBus side).  However, there is a 
smaller amount of simpler logic that sits between the 
interrupt output lines from the peripherals (such as 
UART, SCSI controller, Ethernet controller) and the interrupt
input lines on the CPU.

The registers mapped at 0x20080000 control this interface 
logic.  They have nothing to do with "CPU internal registers".
In the VAX world, CPU internal registers means the bits you
access via the MTPR and MFPR instructions.  I think the
comment in the NetBSD source is misleading here.

See comments here for more details:

http://linux-vax.cvs.sourceforge.net/viewvc/linux-vax/kernel-2.5/drivers/vax
/bus/vsbus.c?view=markup

Your CPU is a KA620, so I would not expect the surrounding 
hardware to be similar to a KA4x.  It's possible, but I 
wouldn't use it as a starting assumption.

Does the manual you have mention address 0x20080000 at all?

Later,
Kenn




Home | Main Index | Thread Index | Old Index