; --------------------------------------------------------------------------------
; @Title: 8240 EST-Board Register Init
; @Description: -
; @Chip: MPC8240
; @Author: DIE
; @Copyright: (C) 1989-2014 Lauterbach GmbH, licensed for use with TRACE32(R) only
; --------------------------------------------------------------------------------
; $Id: sbc8240.cmm 7474 2014-07-28 10:52:43Z rweiss $


LOCAL &nn &CONFIG_DAT &CONFIG_ADDR &data

&CONFIG_DAT=0xfee00000
&CONFIG_ADDR=0xfec00000

&VENDOR=1600
&DID=1602
&PCICMD=1604
&PCISTAT=1606
&REVID=0808
&PIR=0809
&SUBCCODE=080a
&PBCCR=080b
&PCLSR=080c
&PLTR=080d
&HEADTYPE=080e
&BISTCTRL=080f
&LMBAR=3210
&PCSRBAR=3214
&ILR=083c
&INTPIN=083d
&MIN_GNT=083e
&MAX_LAT=083f
&PCIARB=1646
&PMCR1=1670
&PMCR2=0872
&ODCR=0873
&CLKDCR=1674
&EUMBBAR=3278
&MSADDR1=3280
&MSADDR2=3284
&EMSADDR1=3288
&EMSADDR2=328c
&EMEADDR1=3290
&EMEADDR2=3294
&EXTEMEM1=3298
&EXTEMEM2=329c
&MEMBNKEN=08a0
&MEMPMOD=08a3
&PICR1=32a8
&PICR2=32ac
&ECCCNT=08b8
&ECCTRG=08b9
&ERRENR1=08c0
&ERRDR1=08c1
&IPBESR=08c3
&ERRENR2=08c4
&ERRDR2=08c5
&PCIBESR=08c7
&BERRADDR=32c8
&AMBOR=08e0
&MCCR1=32f0
&MCCR2=32f4
&MCCR3=32f8
&MCCR4=32fc

GOSUB WREG &PCICMD   0006 
GOSUB WREG &PCLSR    08
GOSUB WREG &PLTR     00
GOSUB WREG &LMBAR    00000008
GOSUB WREG &PCSRBAR  00000000
GOSUB WREG &ILR      00
GOSUB WREG &PCIARB   8000
GOSUB WREG &PMCR1    0000
GOSUB WREG &PMCR2    00
GOSUB WREG &ODCR     0ff
GOSUB WREG &CLKDCR   0000
GOSUB WREG &EUMBBAR  0a0000000
GOSUB WREG &MSADDR1  0ffff0800
GOSUB WREG &MSADDR2  0ffffffff
GOSUB WREG &EMSADDR1 003030000
GOSUB WREG &EMSADDR2 003030303
GOSUB WREG &EMEADDR1 0ffff0f07
GOSUB WREG &EMEADDR2 0ffffffff
GOSUB WREG &EXTEMEM1 003030000
GOSUB WREG &EXTEMEM2 003030303
GOSUB WREG &MEMBNKEN 003
GOSUB WREG &MEMPMOD  000
GOSUB WREG &ECCCNT   000
GOSUB WREG &ECCTRG   000
GOSUB WREG &ERRENR1  001
GOSUB WREG &ERRDR1   000
GOSUB WREG &IPBESR   000
GOSUB WREG &ERRENR2  000
GOSUB WREG &ERRDR2   000
GOSUB WREG &PCIBESR  000
;!!!!!!
GOSUB WREG &AMBOR    00fff0042

GOSUB WREG &PICR1    0xff141a58
GOSUB WREG &PICR2    0x04000000

GOSUB WREG &MCCR1    0x7580ffff
GOSUB WREG &MCCR2    0x044004cc 
GOSUB WREG &MCCR3    0x78300000
GOSUB WREG &MCCR4    0x35102239 
GOSUB WREG &MCCR1    0x7588ffff ; MEMGO=1


ENDDO


WREG:

ENTRY &name &data

 &nn=&name&0ff
 &width=&name&0ff00

 IF &width==3200
  (
   Data.Set &CONFIG_ADDR %Long %LE 80000000|&nn
   Data.Set &CONFIG_DAT  %Long %LE &data 
  )
 ELSE IF &width==1600
  (
   Data.Set &CONFIG_ADDR         %Long %LE 80000000|&nn
   Data.Set &CONFIG_DAT+(&nn&2)  %Word %LE &data 
  )
 ELSE IF &width==0800
  (
   Data.Set &CONFIG_ADDR        %Long %LE 80000000|&nn
   Data.Set &CONFIG_DAT+(&nn&3) %Byte %LE &data 
  )
 ELSE
  (
   PRINT "wrong or no width detected"
  )
RETURN 
