* GPIO causing bus error
@ 2007-12-21 15:54 Wyse, Chris
2007-12-21 16:27 ` [techfield] " Elayda, Bernardo (Bernie)
2007-12-22 2:10 ` Jeff Mock
0 siblings, 2 replies; 3+ messages in thread
From: Wyse, Chris @ 2007-12-21 15:54 UTC (permalink / raw)
To: linuxppc-dev, linuxppc-embedded, +techfield, +linux-embedded,
+linux-eng, linux-kernel, Wessel, Jason, support
Cc: Slimm, Rob, Read, Tricia, Ayer, Charles, Touron, Emmanuel
[-- Attachment #1.1: Type: text/plain, Size: 3041 bytes --]
Hi,
I'm having trouble with an unusual problem. I'm working on relatively
new hardware, so it's possible that there could be a hardware issue
involved.
I have an FPGA on my PPC440GX board that gets loaded via JTAG during the
kernel boot process (Linux 2.6.10). It uses the 440GX GPIO lines to
send the necessary JTAG commands to the FPGA to perform the initial
load. This process is USUALLY functional, but on some of the boards
(which we produce), the GPIO write fails with a bus error. On the
boards that fail, it only occurs after a cold boot, and only if the
board has been powered off for a few minutes. A quick hard reboot will
not generate the problem. When I issue the failing write to the GPIO
lines, some of the SDRAM gets corrupted. I don't appear to be taking
any interrupts that might have corrupted the RAM.
I've checked the TLB entries, and it maps correctly to the PPC register
area. Additionally, I can read and write to other registers using the
same TLB mapping WITHOUT any error. I can also READ the GPIO lines
without an error - the error is only on the write. I've checked the
SDR0_PFC0 bits to make sure everything is set properly (it is). The bus
error indicates "PLB Timeout Error Status Master 2, Master 2 slave error
occurred" (Master 2 is the write-only data cache unit (DCU)) and "Write
Error Interrupt Master 2, Write error detected - master 2 interrupt
request is active". I'm not sure why there would be any error in the
DCU, since the region I'm writing to is cache inhibited and guarded.
If I issue a soft reset of the GPIO subsystem, I can read and write to
the GPIO lines again.
The error does not occur on the first write to the GPIO. I go through
the failing routine several times before it fails. However, when it
fails, it consistently fails at the same spot, after the same number of
passes through the code.
I'm using RGMII ethernet on EMAC2 (Group 4), but the GPIO lines that I'm
using are not the Trace/GPIO lines (26-31) so I believe that they should
work fine (and they usually do). Also, the errata mentions that
SDR0_PFC0[G11E] has no effect - but I'm not using GPIO 11 anyway.
Here are some relevant register values after the error:
SDR0_PFC0 : 0x083FFE00
POB0_BESR0: 0x00008400
POB0_BEARH: 0x00000001
POB0_BEARL: 0x40000701
GPIO0_OR : 0x000400C0
GPIO0_TCR : 0x00278AE0
GPIO0_ODR : 0x00000000
GPIO0_IR : 0x00000000
I've attached two log files, that contain most of the 440 registers, one
for before the error and one after. In the log files, the bus error has
been cleared, so use the values shown above.
I'm looking for some suggestions on what to try to debug/resolve this
issue. I'm open to both hardware and software based suggestions. Any
help would be greatly appreciated.
Chris Wyse
Senior Member of Technical Staff
Embedded Technologies
860-978-0849 cell/office
413-778-9101 fax
http://www.windriver.com <http://www.windriver.com/>
[-- Attachment #1.2: Type: text/html, Size: 6449 bytes --]
[-- Attachment #2: pre_error.log --]
[-- Type: application/octet-stream, Size: 27172 bytes --]
>BKM>dr all /ignore
GPR register Group. (GPR)
R00 = 00040040 R01 = CFFB1D80 R02 = CFC89AE0 R03 = C02B575C
R04 = 000000F8 R05 = 00000005 R06 = 000004A3 R07 = 00000000
R08 = C02B4E28 R09 = D1000700 R10 = C02B4E28 R11 = 000400C0
R12 = 00000080 R13 = 00000000 R14 = 0FFF4C00 R15 = 00000000
R16 = 00000001 R17 = 00000001 R18 = FFFFFFFF R19 = 007FFC00
R20 = 0FFEF148 R21 = 00000000 R22 = 00000003 R23 = 00000004
R24 = 00000000 R25 = 007FFB50 R26 = 00000E60 R27 = 007FFD0B
R28 = 007FFC00 R29 = C0400000 R30 = C000149C R31 = CFFB1E90
CR = 24FF2F24 MSR = 00029200 LR = C000EF64 SRR0 = C0003458
SRR1 = 00021200 SPRG0 = 00000000 SPRG1 = 00000000 SPRG2 = 00000000
SPRG3 = CFC89CB8 XER = 20000000 CTR = C000EEBC PC = C000EE10
4XXSPR register Group. (4XXSPR)
CSRR0 = 00000000 CSRR1 = 00000000 SPRG4_R = C02EDFB0 SPRG4_W = 00000000
SPRG5_R = 00000000 SPRG5_W = 00000000 SPRG6_R = 04502940 SPRG6_W = 00000000
SPRG7_R = 24FF2F48 SPRG7_W = 00000000 USPRG0 = 04502940 MCSRR0 = 00000000
MCSRR1 = 00000000 MCSR = 00000000 CCR1 = 00000000
CTRL register Group. (CTRL)
PVR = 51B21894 PID = 00000000 PIR = 00000000 MMUCR = 00000000
RSTCFG = 00000001 CCR0 = 00306000
DEBUG register Group. (DEBUG)
DBCR0 = 81000001 DBCR1 = 00000000 DBCR2 = 00000000 DBSR = 00400000
DAC1 = 00000000 DAC2 = 00000000 DVC1 = 00000000 DVC2 = 00000000
IAC1 = 00000000 IAC2 = 00000000 IAC3 = 00000000 IAC4 = E7F9B8FC
TIMERS register Group. (TIMERS)
TCR = 04000000 TSR = C4000000 TBL = 8FB5D62B TBU = 00000000
DEC = 00022286 DECAR = 00000000
EXCEPTS register Group. (EXCEPTS)
ESR = 00000000 DEAR = D1000704 IVPR = C0000000
CPR_CPM register Group. (CPR_CPM)
CPM0_ER = 00000000 CPM0_FR = 00000000 CPM0_SR = 00000000 CPR0_CLKUPD = 00000000
CPR0_PLLC = 400002B8 CPR0_PLLD = 04020702 CPR0_PRIMAD = 01000000 CPR0_PRIMBD = 01000000
CPR0_OPBD = 02000000 CPR0_PERD = 01000000 CPR0_MALD = 02000000 CPR0_ICFG = 00000007
CPR0_CFGADDR = 000000E0 CPR0_CFGDATA = 01000000
SDR0 register Group. (SDR0)
SDR0_SDSTP0 = 857042E6 SDR0_SDSTP1 = 09960D20 SDR0_PINSTP = E0000000 SDR0_SDCS = A0000003
SDR0_ECID0 = 07E00DD4 SDR0_ECID1 = 0D47FFFF SDR0_ECID2 = 040D0000 SDR0_JTAG = 52054049
SDR0_DDRDL = 00000012 SDR0_EBC = 10000000 SDR0_UART0 = 20800001 SDR0_UART1 = 20000026
SDR0_CP440 = 1EAAEA00 SDR0_XCR = C1A00000 SDR0_XPLLC = 000002B8 SDR0_XPLLD = 010A0000
SDR0_SRST = 00000000 SDR0_SLPIPE = F0000000 SDR0_AMP = 00000000 SDR0_MIRQ0 = 00000000
SDR0_MIRQ1 = 00000000 SDR0_MALTBL = 55550000 SDR0_MALRBL = 55550000 SDR0_MALTBS = F0000000
SDR0_MALRBS = F0000000 SDR0_CUST0 = FFFFFFFF SDR0_SDSTP2 = 00000000 SDR0_CUST1 = FFFFFFFF
SDR0_SDSTP3 = 00000000 SDR0_PFC0 = 083FFE00 SDR0_PFC1 = 01200000 SDR0_PLBTR = 000001B0
SDR0_MFR = 00000000 SDR0_CFGADDR = 00004100 SDR0_CFGDATA = 083FFE00
CACHE register Group. (CACHE)
ICDBDR = 00C00000 ICDBTRH = C0000000 ICDBTRL = 00000001 DCDBTRH = BBFFFF88
DCDBTRL = 0007BFE0 DNV0 = 32370237 DNV1 = 0F20191D DNV2 = 033C2300
DNV3 = 071D3532 DTV0 = 00000000 DTV1 = 00000000 DTV2 = 00000000
DTV3 = 00000000 DVLIM = 0001F800 INV0 = 01010101 INV1 = 00000000
INV2 = 00000001 INV3 = 01010101 ITV0 = 00000000 ITV1 = 00000000
ITV2 = 00000000 ITV3 = 00000000 IVLIM = 0001F800
L2CACHE register Group. (L2CACHE)
L2C0_CFG = E1A70080 L2C0_CMD = 00000000 L2C0_ADDR = 00000000 L2C0_DATA = 00000000
L2C0_SR = 88000000 L2C0_REVID = 00000101 L2C0_SNP0 = 0000F800 L2C0_SNP1 = 8000F800
TLB register Group. (TLB)
TLB0PID = 00000000 TLB0WORD0 = 00000000 TLB0WORD1 = 00000000 TLB0WORD2 = 00000000
TLB1PID = 00000000 TLB1WORD0 = FDFFF210 TLB1WORD1 = 0EC80002 TLB1WORD2 = 00000503
TLB2PID = 00000000 TLB2WORD0 = FDFED210 TLB2WORD1 = 40000001 TLB2WORD2 = 00000503
TLB3PID = 00000000 TLB3WORD0 = D1000210 TLB3WORD1 = 40000001 TLB3WORD2 = 00000503
TLB4PID = 00000000 TLB4WORD0 = 00000000 TLB4WORD1 = 00000000 TLB4WORD2 = 00000000
TLB5PID = 00000000 TLB5WORD0 = 00000000 TLB5WORD1 = 00000000 TLB5WORD2 = 00000000
TLB6PID = 00000000 TLB6WORD0 = 00000000 TLB6WORD1 = 00000000 TLB6WORD2 = 00000000
TLB7PID = 00000000 TLB7WORD0 = 00000000 TLB7WORD1 = 00000000 TLB7WORD2 = 00000000
TLB8PID = 00000000 TLB8WORD0 = 00000000 TLB8WORD1 = 00000000 TLB8WORD2 = 00000000
TLB9PID = 00000000 TLB9WORD0 = 00000000 TLB9WORD1 = 00000000 TLB9WORD2 = 00000000
TLB10PID = 00000000 TLB10WORD0 = 00000000 TLB10WORD1 = 00000000 TLB10WORD2 = 00000000
TLB11PID = 00000000 TLB11WORD0 = 00000000 TLB11WORD1 = 00000000 TLB11WORD2 = 00000000
TLB12PID = 00000000 TLB12WORD0 = 00000000 TLB12WORD1 = 00000000 TLB12WORD2 = 00000000
TLB13PID = 00000000 TLB13WORD0 = 00000000 TLB13WORD1 = 00000000 TLB13WORD2 = 00000000
TLB14PID = 00000000 TLB14WORD0 = 00000000 TLB14WORD1 = 00000000 TLB14WORD2 = 00000000
TLB15PID = 00000000 TLB15WORD0 = 00000000 TLB15WORD1 = 00000000 TLB15WORD2 = 00000000
TLB16PID = 00000000 TLB16WORD0 = 00000000 TLB16WORD1 = 00000000 TLB16WORD2 = 00000000
TLB17PID = 00000000 TLB17WORD0 = 00000000 TLB17WORD1 = 00000000 TLB17WORD2 = 00000000
TLB18PID = 00000000 TLB18WORD0 = 00000000 TLB18WORD1 = 00000000 TLB18WORD2 = 00000000
TLB19PID = 00000000 TLB19WORD0 = 00000000 TLB19WORD1 = 00000000 TLB19WORD2 = 00000000
TLB20PID = 00000000 TLB20WORD0 = 00000000 TLB20WORD1 = 00000000 TLB20WORD2 = 00000000
TLB21PID = 00000000 TLB21WORD0 = 00000000 TLB21WORD1 = 00000000 TLB21WORD2 = 00000000
TLB22PID = 00000000 TLB22WORD0 = 00000000 TLB22WORD1 = 00000000 TLB22WORD2 = 00000000
TLB23PID = 00000000 TLB23WORD0 = 00000000 TLB23WORD1 = 00000000 TLB23WORD2 = 00000000
TLB24PID = 00000000 TLB24WORD0 = 00000000 TLB24WORD1 = 00000000 TLB24WORD2 = 00000000
TLB25PID = 00000000 TLB25WORD0 = 00000000 TLB25WORD1 = 00000000 TLB25WORD2 = 00000000
TLB26PID = 00000000 TLB26WORD0 = 00000000 TLB26WORD1 = 00000000 TLB26WORD2 = 00000000
TLB27PID = 00000000 TLB27WORD0 = 00000000 TLB27WORD1 = 00000000 TLB27WORD2 = 00000000
TLB28PID = 00000000 TLB28WORD0 = 00000000 TLB28WORD1 = 00000000 TLB28WORD2 = 00000000
TLB29PID = 00000000 TLB29WORD0 = 00000000 TLB29WORD1 = 00000000 TLB29WORD2 = 00000000
TLB30PID = 00000000 TLB30WORD0 = 00000000 TLB30WORD1 = 00000000 TLB30WORD2 = 00000000
TLB31PID = 00000000 TLB31WORD0 = 00000000 TLB31WORD1 = 00000000 TLB31WORD2 = 00000000
TLB32PID = 00000000 TLB32WORD0 = 00000000 TLB32WORD1 = 00000000 TLB32WORD2 = 00000000
TLB33PID = 00000000 TLB33WORD0 = 00000000 TLB33WORD1 = 00000000 TLB33WORD2 = 00000000
TLB34PID = 00000000 TLB34WORD0 = 00000000 TLB34WORD1 = 00000000 TLB34WORD2 = 00000000
TLB35PID = 00000000 TLB35WORD0 = 00000000 TLB35WORD1 = 00000000 TLB35WORD2 = 00000000
TLB36PID = 00000000 TLB36WORD0 = 00000000 TLB36WORD1 = 00000000 TLB36WORD2 = 00000000
TLB37PID = 00000000 TLB37WORD0 = 00000000 TLB37WORD1 = 00000000 TLB37WORD2 = 00000000
TLB38PID = 00000000 TLB38WORD0 = 00000000 TLB38WORD1 = 00000000 TLB38WORD2 = 00000000
TLB39PID = 00000000 TLB39WORD0 = 00000000 TLB39WORD1 = 00000000 TLB39WORD2 = 00000000
TLB40PID = 00000000 TLB40WORD0 = 00000000 TLB40WORD1 = 00000000 TLB40WORD2 = 00000000
TLB41PID = 00000000 TLB41WORD0 = 00000000 TLB41WORD1 = 00000000 TLB41WORD2 = 00000000
TLB42PID = 00000000 TLB42WORD0 = 00000000 TLB42WORD1 = 00000000 TLB42WORD2 = 00000000
TLB43PID = 00000000 TLB43WORD0 = 00000000 TLB43WORD1 = 00000000 TLB43WORD2 = 00000000
TLB44PID = 00000000 TLB44WORD0 = 00000000 TLB44WORD1 = 00000000 TLB44WORD2 = 00000000
TLB45PID = 00000000 TLB45WORD0 = 00000000 TLB45WORD1 = 00000000 TLB45WORD2 = 00000000
TLB46PID = 00000000 TLB46WORD0 = 00000000 TLB46WORD1 = 00000000 TLB46WORD2 = 00000000
TLB47PID = 00000000 TLB47WORD0 = 00000000 TLB47WORD1 = 00000000 TLB47WORD2 = 00000000
TLB48PID = 00000000 TLB48WORD0 = 00000000 TLB48WORD1 = 00000000 TLB48WORD2 = 00000000
TLB49PID = 00000000 TLB49WORD0 = 00000000 TLB49WORD1 = 00000000 TLB49WORD2 = 00000000
TLB50PID = 00000000 TLB50WORD0 = 00000000 TLB50WORD1 = 00000000 TLB50WORD2 = 00000000
TLB51PID = 00000000 TLB51WORD0 = 00000000 TLB51WORD1 = 00000000 TLB51WORD2 = 00000000
TLB52PID = 00000000 TLB52WORD0 = 00000000 TLB52WORD1 = 00000000 TLB52WORD2 = 00000000
TLB53PID = 00000000 TLB53WORD0 = 00000000 TLB53WORD1 = 00000000 TLB53WORD2 = 00000000
TLB54PID = 00000000 TLB54WORD0 = 00000000 TLB54WORD1 = 00000000 TLB54WORD2 = 00000000
TLB55PID = 00000000 TLB55WORD0 = 00000000 TLB55WORD1 = 00000000 TLB55WORD2 = 00000000
TLB56PID = 00000000 TLB56WORD0 = 00000000 TLB56WORD1 = 00000000 TLB56WORD2 = 00000000
TLB57PID = 00000000 TLB57WORD0 = 00000000 TLB57WORD1 = 00000000 TLB57WORD2 = 00000000
TLB58PID = 00000000 TLB58WORD0 = 00000000 TLB58WORD1 = 00000000 TLB58WORD2 = 00000000
TLB59PID = 00000000 TLB59WORD0 = 00000000 TLB59WORD1 = 00000000 TLB59WORD2 = 00000000
TLB60PID = 00000000 TLB60WORD0 = 00000000 TLB60WORD1 = 00000000 TLB60WORD2 = 00000000
TLB61PID = 00000000 TLB61WORD0 = 00000000 TLB61WORD1 = 00000000 TLB61WORD2 = 00000000
TLB62PID = 00000000 TLB62WORD0 = 00000000 TLB62WORD1 = 00000000 TLB62WORD2 = 00000000
TLB63PID = 00000000 TLB63WORD0 = C0000290 TLB63WORD1 = 00000000 TLB63WORD2 = 00000107
SRAM0 register Group. (SRAM0)
SRAM0_SB0CR = 80000800 SRAM0_SB1CR = 80010800 SRAM0_SB2CR = 80020800 SRAM0_SB3CR = 80030800
SRAM0_BEAR = 00000000 SRAM0_BESR0 = 00000000 SRAM0_BESR1 = 00000000 SRAM0_PMEG = 01E00000
SRAM0_CID = 322B0000 SRAM0_REVID = 04005800 SRAM0_DPC = 00000000
EBC0 register Group. (EBC0)
EBC0_CFG = 17004000 EBC0_B0CR = FF09A000 EBC0_B1CR = F001A000 EBC0_B2CR = F0118000
EBC0_B3CR = F0218000 EBC0_B4CR = F031A000 EBC0_B5CR = F041E000 EBC0_B6CR = F0518000
EBC0_B7CR = F0F18000 EBC0_B0AP = 9B015400 EBC0_B1AP = 9B055480 EBC0_B2AP = 1B015480
EBC0_B3AP = 12815280 EBC0_B4AP = 12815400 EBC0_B5AP = 1B015400 EBC0_B6AP = 00000000
EBC0_B7AP = 010502C0 EBC0_BEAR = 00000000 EBC0_BESR = 00000000 EBC0_CID = 32401093
EBC0_CFGADDR = 00000017 EBC0_CFGDATA = 010502C0
EBMI register Group. (EBMI)
EBM0_CTL = 88400000 EBM0_LCNT = 00000000 EBM0_BEAR = 00000000 EBM0_BESR = 00000000
EBM0_BEMR = 00000000 EBM0_UAR = 00000000 EBM0_UAM = 00000000 EBM0_SLPMD = 07C00000
EBM0_FAIR = FFF00000 EBM0_MISCSTS = 36000008 EBM0_CID = 32501054 EBM0_CFGADDR = 00000000
EBM0_CFGDATA = 88400000
SDRAM0 register Group. (SDRAM0)
SDRAM0_BESR0 = 00000000 SDRAM0_BESR1 = 00000000 SDRAM0_BEAR = 00000000 SDRAM0_MIRQ = 00000000
SDRAM0_UABBA = 00000000 SDRAM0_SLIO = 00000000 SDRAM0_DEVOPT = 00000000 SDRAM0_WDDCTR = 00000000
SDRAM0_CLKTR = 40000000 SDRAM0_CFG0A = 86000000 SDRAM0_CFG1 = 00000000 SDRAM0_PMIT = 07C00000
SDRAM0_TR0 = 410A4016 SDRAM0_TR1 = 80800828 SDRAM0_RTR = 04B00000 SDRAM0_B0CR = 000C4001
SDRAM0_B1CR = 00000000 SDRAM0_B2CR = 00000000 SDRAM0_B3CR = 00000000 SDRAM0_DLYCAL = 200000B0
SDRAM0_ECCESR = 00000000 SDRAM0_CID = 320B0000 SDRAM0_RID = 00003101 SDRAM0_CFG0B = 86000000
SDRAM0_MCSTS = A0000000 SDRAM0_CFGADDR = 0000004C SDRAM0_CFGDATA = 00000000
OCBUSES register Group. (OCBUSES)
PLB0_REVID = 00000101 PLB0_ACR = 9B000000 PLB0_BESR = 00000000 PLB0_BEARL = F77FFFFF
PLB0_BEARH = FDFFFFFF POB0_BESR0 = 00000000 POB0_BEARL = 00000000 POB0_BEARH = 00000000
POB0_BESR1 = 00000000 POB0_CONFG = 00000000 POB0_LATENCY = 78000000 POB0_REVID = 00000122
OPB0_BCTRL = 00000000 OPB0_BSTAT = 00000000 OPB0_BEARL = FFFFFFFF OPB0_BEARH = 0000000F
OPB0_REVID = 00000130
IVOR register Group. (IVOR)
IVOR0 = 00000240 IVOR1 = 00000340 IVOR2 = 00000460 IVOR3 = 00000560
IVOR4 = 00000620 IVOR5 = 000006E0 IVOR6 = 000007A0 IVOR7 = 00000860
IVOR8 = 00000920 IVOR9 = 000009E0 IVOR10 = 00000AA0 IVOR11 = 00000B60
IVOR12 = 00000C20 IVOR13 = 00000D20 IVOR14 = 00000DC0 IVOR15 = 00000E60
UIC register Group. (UIC)
UIC0_SR = 00000040 UIC0_ER = 00000000 UIC0_CR = 00000000 UIC0_PR = FFFFFE13
UIC0_TR = 01C00040 UIC0_MSR = 00000000 UIC0_VR = 00000000 UIC0_VCR = 00000040
UIC1_SR = 00002700 UIC1_ER = 00000000 UIC1_CR = 00000000 UIC1_PR = FFFFE0FF
UIC1_TR = 00FFC000 UIC1_MSR = 00000000 UIC1_VR = 00000000 UIC1_VCR = 00002700
UIC2_SR = 00000000 UIC2_ER = 00000100 UIC2_CR = 00000000 UIC2_PR = FFFFFFFF
UIC2_TR = 00FF8D0F UIC2_MSR = 00000000 UIC2_VR = 00000000 UIC2_VCR = 00000000
UICB0_SR = 03FFFFFF UICB0_ER = 54000000 UICB0_CR = 00000000 UICB0_PR = FC000000
UICB0_TR = 00000000 UICB0_MSR = 00000000 UICB0_VR = 00000000 UICB0_VCR = 03FFFFFF
DMA0 register Group. (DMA0)
DMA0_CR0 = 00000000 DMA0_CT0 = 00000000 DMA0_SAH0 = 00000000 DMA0_SAL0 = 00000000
DMA0_DAH0 = 00000000 DMA0_DAL0 = 00000000 DMA0_SGH0 = 00000000 DMA0_SGL0 = 00000000
DMA0_CR1 = 00000000 DMA0_CT1 = 00000000 DMA0_SAH1 = 00000000 DMA0_SAL1 = 00000000
DMA0_DAH1 = 00000000 DMA0_DAL1 = 00000000 DMA0_SGH1 = 00000000 DMA0_SGL1 = 00000000
DMA0_CR2 = 00000000 DMA0_CT2 = 00000000 DMA0_SAH2 = 00000000 DMA0_SAL2 = 00000000
DMA0_DAH2 = 00000000 DMA0_DAL2 = 00000000 DMA0_SGH2 = 00000000 DMA0_SGL2 = 00000000
DMA0_CR3 = 00000000 DMA0_CT3 = 00000000 DMA0_SAH3 = 00000000 DMA0_SAL3 = 00000000
DMA0_DAH3 = 00000000 DMA0_DAL3 = 00000000 DMA0_SGH3 = 00000000 DMA0_SGL3 = 00000000
DMA0_SR = 00008000 DMA0_SGC = 00000000 DMA0_SLP = 07C00000 DMA0_POL = 00000000
MAL0 register Group. (MAL0)
MAL0_CFG = 0037C086 MAL0_ESR = 00000000 MAL0_IER = 00000017 MAL0_TXCASR = 00000000
MAL0_TXCARR = 00000000 MAL0_TXEOBISR = 00000000 MAL0_TXDEIR = 00000000 MAL0_RXCASR = 00000000
MAL0_RXCARR = 00000000 MAL0_RXEOBISR = 00000000 MAL0_RXDEIR = 00000000 MAL0_TXCTP0R = 00000000
MAL0_TXCTP1R = 00000000 MAL0_TXCTP2R = 0FFA1340 MAL0_TXCTP3R = 00000000 MAL0_RXCTP0R = 00000000
MAL0_RXCTP1R = 00000000 MAL0_RXCTP2R = 0FFA13A0 MAL0_RXCTP3R = 00000000 MAL0_RCBS0 = 00000000
MAL0_RCBS1 = 00000000 MAL0_RCBS2 = 00000060 MAL0_RCBS3 = 00000000 MAL0_TXBADDR = 00000000
MAL0_RXBADDR = 00000000
PPM0 register Group. (PPM0)
PPM0_ISR = 00000000 PPM0_CR = 00000000 PPM0_CCR = FFFFFFFF PPM0_UAR = 00000000
PPM0_LAR = 00000000 PPM0_UAMR = FFFFFFFF PPM0_LAMR = FFFFFFFF PPM0_RIDR = C27E3411
PPM0_MCSR0 = 00000000 PPM0_MCSR1 = 00000000 PPM0_MCSR2 = 00000000 PPM0_MCSR3 = 00000000
PPM0_SCSR0 = 00000000 PPM0_SCSR1 = 00000000 PPM0_SCSR2 = 00000000 PPM0_SCSR3 = 00000000
PPM0_GCSR0 = 00000000 PPM0_GCSR1 = 00000000 PPM0_GCSR2 = 00000000 PPM0_GCSR3 = 00000000
PPM0_MCR0 = 00000000 PPM0_MCR1 = 00000000 PPM0_MCR2 = 00000000 PPM0_MCR3 = 00000000
PPM0_SCR0 = 00000000 PPM0_SCR1 = 00000000 PPM0_SCR2 = 00000000 PPM0_SCR3 = 00000000
PPM0_GCR0 = 00000000 PPM0_GCR1 = 00000000 PPM0_GCR2 = 00000000 PPM0_GCR3 = 00000000
PPM0_DCSR0 = 00000000 PPM0_DCSR1 = 00000000 PPM0_DCMXR0 = 00000000 PPM0_DCMXR1 = 00000000
PPM0_DCMNR0 = 00FFFFFF PPM0_DCMNR1 = 00FFFFFF PPM0_DCTVR0 = 00000000 PPM0_DCTVR1 = 00000000
PPM0_DCOTR0 = 00000000 PPM0_DCOTR1 = 00000000 PPM0_CFGADDR = 00000000 PPM0_CFGDATA = 00000000
[-- Attachment #3: post_error.log --]
[-- Type: application/octet-stream, Size: 27172 bytes --]
>BKM>dr all /ignore
GPR register Group. (GPR)
R00 = 00040040 R01 = CFFB1D80 R02 = CFC89AE0 R03 = C02B575C
R04 = 000000F8 R05 = 00000005 R06 = 000004A3 R07 = 00000000
R08 = C02B4E28 R09 = D1000700 R10 = C02B4E28 R11 = 000400C0
R12 = 00000080 R13 = 00000000 R14 = 0FFF4C00 R15 = 00000000
R16 = 00000001 R17 = 00000001 R18 = FFFFFFFF R19 = 007FFC00
R20 = 0FFEF148 R21 = 00000000 R22 = 00000003 R23 = 00000004
R24 = 00000000 R25 = 007FFB50 R26 = 00000E60 R27 = 007FFD0B
R28 = 007FFC00 R29 = C0400000 R30 = C000149C R31 = CFFB1E90
CR = 24FF2F24 MSR = 00029200 LR = C000EF64 SRR0 = C000EE10
SRR1 = 00029200 SPRG0 = 00000000 SPRG1 = 00000000 SPRG2 = 00000000
SPRG3 = CFC89CB8 XER = 20000000 CTR = C000EEBC PC = C000EE14
4XXSPR register Group. (4XXSPR)
CSRR0 = 00000000 CSRR1 = 00000000 SPRG4_R = C02EDFB0 SPRG4_W = 00000000
SPRG5_R = 00000000 SPRG5_W = 00000000 SPRG6_R = 04502940 SPRG6_W = 00000000
SPRG7_R = 24FF2F48 SPRG7_W = 00000000 USPRG0 = 04502940 MCSRR0 = 00000000
MCSRR1 = 00000000 MCSR = 00000000 CCR1 = 00000000
CTRL register Group. (CTRL)
PVR = 51B21894 PID = 00000000 PIR = 00000000 MMUCR = 00000000
RSTCFG = 00000001 CCR0 = 00306000
DEBUG register Group. (DEBUG)
DBCR0 = 81000001 DBCR1 = 00000000 DBCR2 = 00000000 DBSR = 00000000
DAC1 = 00000000 DAC2 = 00000000 DVC1 = 00000000 DVC2 = 00000000
IAC1 = 00000000 IAC2 = 00000000 IAC3 = 00000000 IAC4 = E7F9B8FC
TIMERS register Group. (TIMERS)
TCR = 04000000 TSR = C4000000 TBL = 8FB5D62B TBU = 00000000
DEC = 00022286 DECAR = 00000000
EXCEPTS register Group. (EXCEPTS)
ESR = 00000000 DEAR = DEC00000 IVPR = C0000000
CPR_CPM register Group. (CPR_CPM)
CPM0_ER = 00000000 CPM0_FR = 00000000 CPM0_SR = 00000000 CPR0_CLKUPD = 00000000
CPR0_PLLC = 400002B8 CPR0_PLLD = 04020702 CPR0_PRIMAD = 01000000 CPR0_PRIMBD = 01000000
CPR0_OPBD = 02000000 CPR0_PERD = 01000000 CPR0_MALD = 02000000 CPR0_ICFG = 00000007
CPR0_CFGADDR = 000000E0 CPR0_CFGDATA = 01000000
SDR0 register Group. (SDR0)
SDR0_SDSTP0 = 857042E6 SDR0_SDSTP1 = 09960D20 SDR0_PINSTP = E0000000 SDR0_SDCS = A0000003
SDR0_ECID0 = 07E00DD4 SDR0_ECID1 = 0D47FFFF SDR0_ECID2 = 040D0000 SDR0_JTAG = 52054049
SDR0_DDRDL = 00000012 SDR0_EBC = 10000000 SDR0_UART0 = 20800001 SDR0_UART1 = 20000026
SDR0_CP440 = 1EAAEA00 SDR0_XCR = C1A00000 SDR0_XPLLC = 000002B8 SDR0_XPLLD = 010A0000
SDR0_SRST = 00000000 SDR0_SLPIPE = F0000000 SDR0_AMP = 00000000 SDR0_MIRQ0 = 00000000
SDR0_MIRQ1 = 00000000 SDR0_MALTBL = 55550000 SDR0_MALRBL = 55550000 SDR0_MALTBS = F0000000
SDR0_MALRBS = F0000000 SDR0_CUST0 = FFFFFFFF SDR0_SDSTP2 = 00000000 SDR0_CUST1 = FFFFFFFF
SDR0_SDSTP3 = 00000000 SDR0_PFC0 = 083FFE00 SDR0_PFC1 = 01200000 SDR0_PLBTR = 000001B0
SDR0_MFR = 00000000 SDR0_CFGADDR = 00004100 SDR0_CFGDATA = 083FFE00
CACHE register Group. (CACHE)
ICDBDR = 00C00000 ICDBTRH = C0000000 ICDBTRL = 00000001 DCDBTRH = BBFFFF88
DCDBTRL = 0007BFE0 DNV0 = 32370237 DNV1 = 0F20191D DNV2 = 033C2300
DNV3 = 071D3532 DTV0 = 00000000 DTV1 = 00000000 DTV2 = 00000000
DTV3 = 00000000 DVLIM = 0001F800 INV0 = 01010000 INV1 = 00000000
INV2 = 00000000 INV3 = 00000000 ITV0 = 00000000 ITV1 = 00000000
ITV2 = 00000000 ITV3 = 00000000 IVLIM = 0001F800
L2CACHE register Group. (L2CACHE)
L2C0_CFG = E1A70080 L2C0_CMD = 00000000 L2C0_ADDR = 00000000 L2C0_DATA = 00000000
L2C0_SR = 88000000 L2C0_REVID = 00000101 L2C0_SNP0 = 0000F800 L2C0_SNP1 = 8000F800
TLB register Group. (TLB)
TLB0PID = 00000000 TLB0WORD0 = 00000000 TLB0WORD1 = 00000000 TLB0WORD2 = 00000000
TLB1PID = 00000000 TLB1WORD0 = FDFFF210 TLB1WORD1 = 0EC80002 TLB1WORD2 = 00000503
TLB2PID = 00000000 TLB2WORD0 = FDFED210 TLB2WORD1 = 40000001 TLB2WORD2 = 00000503
TLB3PID = 00000000 TLB3WORD0 = D1000210 TLB3WORD1 = 40000001 TLB3WORD2 = 00000503
TLB4PID = 00000000 TLB4WORD0 = 00000000 TLB4WORD1 = 00000000 TLB4WORD2 = 00000000
TLB5PID = 00000000 TLB5WORD0 = 00000000 TLB5WORD1 = 00000000 TLB5WORD2 = 00000000
TLB6PID = 00000000 TLB6WORD0 = 00000000 TLB6WORD1 = 00000000 TLB6WORD2 = 00000000
TLB7PID = 00000000 TLB7WORD0 = 00000000 TLB7WORD1 = 00000000 TLB7WORD2 = 00000000
TLB8PID = 00000000 TLB8WORD0 = 00000000 TLB8WORD1 = 00000000 TLB8WORD2 = 00000000
TLB9PID = 00000000 TLB9WORD0 = 00000000 TLB9WORD1 = 00000000 TLB9WORD2 = 00000000
TLB10PID = 00000000 TLB10WORD0 = 00000000 TLB10WORD1 = 00000000 TLB10WORD2 = 00000000
TLB11PID = 00000000 TLB11WORD0 = 00000000 TLB11WORD1 = 00000000 TLB11WORD2 = 00000000
TLB12PID = 00000000 TLB12WORD0 = 00000000 TLB12WORD1 = 00000000 TLB12WORD2 = 00000000
TLB13PID = 00000000 TLB13WORD0 = 00000000 TLB13WORD1 = 00000000 TLB13WORD2 = 00000000
TLB14PID = 00000000 TLB14WORD0 = 00000000 TLB14WORD1 = 00000000 TLB14WORD2 = 00000000
TLB15PID = 00000000 TLB15WORD0 = 00000000 TLB15WORD1 = 00000000 TLB15WORD2 = 00000000
TLB16PID = 00000000 TLB16WORD0 = 00000000 TLB16WORD1 = 00000000 TLB16WORD2 = 00000000
TLB17PID = 00000000 TLB17WORD0 = 00000000 TLB17WORD1 = 00000000 TLB17WORD2 = 00000000
TLB18PID = 00000000 TLB18WORD0 = 00000000 TLB18WORD1 = 00000000 TLB18WORD2 = 00000000
TLB19PID = 00000000 TLB19WORD0 = 00000000 TLB19WORD1 = 00000000 TLB19WORD2 = 00000000
TLB20PID = 00000000 TLB20WORD0 = 00000000 TLB20WORD1 = 00000000 TLB20WORD2 = 00000000
TLB21PID = 00000000 TLB21WORD0 = 00000000 TLB21WORD1 = 00000000 TLB21WORD2 = 00000000
TLB22PID = 00000000 TLB22WORD0 = 00000000 TLB22WORD1 = 00000000 TLB22WORD2 = 00000000
TLB23PID = 00000000 TLB23WORD0 = 00000000 TLB23WORD1 = 00000000 TLB23WORD2 = 00000000
TLB24PID = 00000000 TLB24WORD0 = 00000000 TLB24WORD1 = 00000000 TLB24WORD2 = 00000000
TLB25PID = 00000000 TLB25WORD0 = 00000000 TLB25WORD1 = 00000000 TLB25WORD2 = 00000000
TLB26PID = 00000000 TLB26WORD0 = 00000000 TLB26WORD1 = 00000000 TLB26WORD2 = 00000000
TLB27PID = 00000000 TLB27WORD0 = 00000000 TLB27WORD1 = 00000000 TLB27WORD2 = 00000000
TLB28PID = 00000000 TLB28WORD0 = 00000000 TLB28WORD1 = 00000000 TLB28WORD2 = 00000000
TLB29PID = 00000000 TLB29WORD0 = 00000000 TLB29WORD1 = 00000000 TLB29WORD2 = 00000000
TLB30PID = 00000000 TLB30WORD0 = 00000000 TLB30WORD1 = 00000000 TLB30WORD2 = 00000000
TLB31PID = 00000000 TLB31WORD0 = 00000000 TLB31WORD1 = 00000000 TLB31WORD2 = 00000000
TLB32PID = 00000000 TLB32WORD0 = 00000000 TLB32WORD1 = 00000000 TLB32WORD2 = 00000000
TLB33PID = 00000000 TLB33WORD0 = 00000000 TLB33WORD1 = 00000000 TLB33WORD2 = 00000000
TLB34PID = 00000000 TLB34WORD0 = 00000000 TLB34WORD1 = 00000000 TLB34WORD2 = 00000000
TLB35PID = 00000000 TLB35WORD0 = 00000000 TLB35WORD1 = 00000000 TLB35WORD2 = 00000000
TLB36PID = 00000000 TLB36WORD0 = 00000000 TLB36WORD1 = 00000000 TLB36WORD2 = 00000000
TLB37PID = 00000000 TLB37WORD0 = 00000000 TLB37WORD1 = 00000000 TLB37WORD2 = 00000000
TLB38PID = 00000000 TLB38WORD0 = 00000000 TLB38WORD1 = 00000000 TLB38WORD2 = 00000000
TLB39PID = 00000000 TLB39WORD0 = 00000000 TLB39WORD1 = 00000000 TLB39WORD2 = 00000000
TLB40PID = 00000000 TLB40WORD0 = 00000000 TLB40WORD1 = 00000000 TLB40WORD2 = 00000000
TLB41PID = 00000000 TLB41WORD0 = 00000000 TLB41WORD1 = 00000000 TLB41WORD2 = 00000000
TLB42PID = 00000000 TLB42WORD0 = 00000000 TLB42WORD1 = 00000000 TLB42WORD2 = 00000000
TLB43PID = 00000000 TLB43WORD0 = 00000000 TLB43WORD1 = 00000000 TLB43WORD2 = 00000000
TLB44PID = 00000000 TLB44WORD0 = 00000000 TLB44WORD1 = 00000000 TLB44WORD2 = 00000000
TLB45PID = 00000000 TLB45WORD0 = 00000000 TLB45WORD1 = 00000000 TLB45WORD2 = 00000000
TLB46PID = 00000000 TLB46WORD0 = 00000000 TLB46WORD1 = 00000000 TLB46WORD2 = 00000000
TLB47PID = 00000000 TLB47WORD0 = 00000000 TLB47WORD1 = 00000000 TLB47WORD2 = 00000000
TLB48PID = 00000000 TLB48WORD0 = 00000000 TLB48WORD1 = 00000000 TLB48WORD2 = 00000000
TLB49PID = 00000000 TLB49WORD0 = 00000000 TLB49WORD1 = 00000000 TLB49WORD2 = 00000000
TLB50PID = 00000000 TLB50WORD0 = 00000000 TLB50WORD1 = 00000000 TLB50WORD2 = 00000000
TLB51PID = 00000000 TLB51WORD0 = 00000000 TLB51WORD1 = 00000000 TLB51WORD2 = 00000000
TLB52PID = 00000000 TLB52WORD0 = 00000000 TLB52WORD1 = 00000000 TLB52WORD2 = 00000000
TLB53PID = 00000000 TLB53WORD0 = 00000000 TLB53WORD1 = 00000000 TLB53WORD2 = 00000000
TLB54PID = 00000000 TLB54WORD0 = 00000000 TLB54WORD1 = 00000000 TLB54WORD2 = 00000000
TLB55PID = 00000000 TLB55WORD0 = 00000000 TLB55WORD1 = 00000000 TLB55WORD2 = 00000000
TLB56PID = 00000000 TLB56WORD0 = 00000000 TLB56WORD1 = 00000000 TLB56WORD2 = 00000000
TLB57PID = 00000000 TLB57WORD0 = 00000000 TLB57WORD1 = 00000000 TLB57WORD2 = 00000000
TLB58PID = 00000000 TLB58WORD0 = 00000000 TLB58WORD1 = 00000000 TLB58WORD2 = 00000000
TLB59PID = 00000000 TLB59WORD0 = 00000000 TLB59WORD1 = 00000000 TLB59WORD2 = 00000000
TLB60PID = 00000000 TLB60WORD0 = 00000000 TLB60WORD1 = 00000000 TLB60WORD2 = 00000000
TLB61PID = 00000000 TLB61WORD0 = 00000000 TLB61WORD1 = 00000000 TLB61WORD2 = 00000000
TLB62PID = 00000000 TLB62WORD0 = 00000000 TLB62WORD1 = 00000000 TLB62WORD2 = 00000000
TLB63PID = 00000000 TLB63WORD0 = C0000290 TLB63WORD1 = 00000000 TLB63WORD2 = 00000107
SRAM0 register Group. (SRAM0)
SRAM0_SB0CR = 80000800 SRAM0_SB1CR = 80010800 SRAM0_SB2CR = 80020800 SRAM0_SB3CR = 80030800
SRAM0_BEAR = 00000000 SRAM0_BESR0 = 00000000 SRAM0_BESR1 = 00000000 SRAM0_PMEG = 01E00000
SRAM0_CID = 322B0000 SRAM0_REVID = 04005800 SRAM0_DPC = 00000000
EBC0 register Group. (EBC0)
EBC0_CFG = 17004000 EBC0_B0CR = FF09A000 EBC0_B1CR = F001A000 EBC0_B2CR = F0118000
EBC0_B3CR = F0218000 EBC0_B4CR = F031A000 EBC0_B5CR = F041E000 EBC0_B6CR = F0518000
EBC0_B7CR = F0F18000 EBC0_B0AP = 9B015400 EBC0_B1AP = 9B055480 EBC0_B2AP = 1B015480
EBC0_B3AP = 12815280 EBC0_B4AP = 12815400 EBC0_B5AP = 1B015400 EBC0_B6AP = 00000000
EBC0_B7AP = 010502C0 EBC0_BEAR = 00000000 EBC0_BESR = 00000000 EBC0_CID = 32401093
EBC0_CFGADDR = 00000017 EBC0_CFGDATA = 010502C0
EBMI register Group. (EBMI)
EBM0_CTL = 88400000 EBM0_LCNT = 00000000 EBM0_BEAR = 00000000 EBM0_BESR = 00000000
EBM0_BEMR = 00000000 EBM0_UAR = 00000000 EBM0_UAM = 00000000 EBM0_SLPMD = 07C00000
EBM0_FAIR = FFF00000 EBM0_MISCSTS = 36000008 EBM0_CID = 32501054 EBM0_CFGADDR = 00000000
EBM0_CFGDATA = 88400000
SDRAM0 register Group. (SDRAM0)
SDRAM0_BESR0 = 00000000 SDRAM0_BESR1 = 00000000 SDRAM0_BEAR = 00000000 SDRAM0_MIRQ = 00000000
SDRAM0_UABBA = 00000000 SDRAM0_SLIO = 00000000 SDRAM0_DEVOPT = 00000000 SDRAM0_WDDCTR = 00000000
SDRAM0_CLKTR = 40000000 SDRAM0_CFG0A = 86000000 SDRAM0_CFG1 = 00000000 SDRAM0_PMIT = 07C00000
SDRAM0_TR0 = 410A4016 SDRAM0_TR1 = 80800828 SDRAM0_RTR = 04B00000 SDRAM0_B0CR = 000C4001
SDRAM0_B1CR = 00000000 SDRAM0_B2CR = 00000000 SDRAM0_B3CR = 00000000 SDRAM0_DLYCAL = 200000B0
SDRAM0_ECCESR = 00000000 SDRAM0_CID = 320B0000 SDRAM0_RID = 00003101 SDRAM0_CFG0B = 86000000
SDRAM0_MCSTS = A0000000 SDRAM0_CFGADDR = 0000004C SDRAM0_CFGDATA = 00000000
OCBUSES register Group. (OCBUSES)
PLB0_REVID = 00000101 PLB0_ACR = 9B000000 PLB0_BESR = 00000000 PLB0_BEARL = F77FFFFF
PLB0_BEARH = FDFFFFFF POB0_BESR0 = 00000000 POB0_BEARL = 00000000 POB0_BEARH = 00000000
POB0_BESR1 = 00000000 POB0_CONFG = 00000000 POB0_LATENCY = 78000000 POB0_REVID = 00000122
OPB0_BCTRL = 00000000 OPB0_BSTAT = 00000000 OPB0_BEARL = FFFFFFFF OPB0_BEARH = 0000000F
OPB0_REVID = 00000130
IVOR register Group. (IVOR)
IVOR0 = 00000240 IVOR1 = 00000340 IVOR2 = 00000460 IVOR3 = 00000560
IVOR4 = 00000620 IVOR5 = 000006E0 IVOR6 = 000007A0 IVOR7 = 00000860
IVOR8 = 00000920 IVOR9 = 000009E0 IVOR10 = 00000AA0 IVOR11 = 00000B60
IVOR12 = 00000C20 IVOR13 = 00000D20 IVOR14 = 00000DC0 IVOR15 = 00000E60
UIC register Group. (UIC)
UIC0_SR = 00000040 UIC0_ER = 00000000 UIC0_CR = 00000000 UIC0_PR = FFFFFE13
UIC0_TR = 01C00040 UIC0_MSR = 00000000 UIC0_VR = 00000000 UIC0_VCR = 00000040
UIC1_SR = 00002700 UIC1_ER = 00000000 UIC1_CR = 00000000 UIC1_PR = FFFFE0FF
UIC1_TR = 00FFC000 UIC1_MSR = 00000000 UIC1_VR = 00000000 UIC1_VCR = 00002700
UIC2_SR = 00000000 UIC2_ER = 00000100 UIC2_CR = 00000000 UIC2_PR = FFFFFFFF
UIC2_TR = 00FF8D0F UIC2_MSR = 00000000 UIC2_VR = 00000000 UIC2_VCR = 00000000
UICB0_SR = 03FFFFFF UICB0_ER = 54000000 UICB0_CR = 00000000 UICB0_PR = FC000000
UICB0_TR = 00000000 UICB0_MSR = 00000000 UICB0_VR = 00000000 UICB0_VCR = 03FFFFFF
DMA0 register Group. (DMA0)
DMA0_CR0 = 00000000 DMA0_CT0 = 00000000 DMA0_SAH0 = 00000000 DMA0_SAL0 = 00000000
DMA0_DAH0 = 00000000 DMA0_DAL0 = 00000000 DMA0_SGH0 = 00000000 DMA0_SGL0 = 00000000
DMA0_CR1 = 00000000 DMA0_CT1 = 00000000 DMA0_SAH1 = 00000000 DMA0_SAL1 = 00000000
DMA0_DAH1 = 00000000 DMA0_DAL1 = 00000000 DMA0_SGH1 = 00000000 DMA0_SGL1 = 00000000
DMA0_CR2 = 00000000 DMA0_CT2 = 00000000 DMA0_SAH2 = 00000000 DMA0_SAL2 = 00000000
DMA0_DAH2 = 00000000 DMA0_DAL2 = 00000000 DMA0_SGH2 = 00000000 DMA0_SGL2 = 00000000
DMA0_CR3 = 00000000 DMA0_CT3 = 00000000 DMA0_SAH3 = 00000000 DMA0_SAL3 = 00000000
DMA0_DAH3 = 00000000 DMA0_DAL3 = 00000000 DMA0_SGH3 = 00000000 DMA0_SGL3 = 00000000
DMA0_SR = 00008000 DMA0_SGC = 00000000 DMA0_SLP = 07C00000 DMA0_POL = 00000000
MAL0 register Group. (MAL0)
MAL0_CFG = 0037C086 MAL0_ESR = 00000000 MAL0_IER = 00000017 MAL0_TXCASR = 00000000
MAL0_TXCARR = 00000000 MAL0_TXEOBISR = 00000000 MAL0_TXDEIR = 00000000 MAL0_RXCASR = 00000000
MAL0_RXCARR = 00000000 MAL0_RXEOBISR = 00000000 MAL0_RXDEIR = 00000000 MAL0_TXCTP0R = 00000000
MAL0_TXCTP1R = 00000000 MAL0_TXCTP2R = 0FFA1340 MAL0_TXCTP3R = 00000000 MAL0_RXCTP0R = 00000000
MAL0_RXCTP1R = 00000000 MAL0_RXCTP2R = 0FFA13A0 MAL0_RXCTP3R = 00000000 MAL0_RCBS0 = 00000000
MAL0_RCBS1 = 00000000 MAL0_RCBS2 = 00000060 MAL0_RCBS3 = 00000000 MAL0_TXBADDR = 00000000
MAL0_RXBADDR = 00000000
PPM0 register Group. (PPM0)
PPM0_ISR = 00000000 PPM0_CR = 00000000 PPM0_CCR = FFFFFFFF PPM0_UAR = 00000000
PPM0_LAR = 00000000 PPM0_UAMR = FFFFFFFF PPM0_LAMR = FFFFFFFF PPM0_RIDR = C27E3411
PPM0_MCSR0 = 00000000 PPM0_MCSR1 = 00000000 PPM0_MCSR2 = 00000000 PPM0_MCSR3 = 00000000
PPM0_SCSR0 = 00000000 PPM0_SCSR1 = 00000000 PPM0_SCSR2 = 00000000 PPM0_SCSR3 = 00000000
PPM0_GCSR0 = 00000000 PPM0_GCSR1 = 00000000 PPM0_GCSR2 = 00000000 PPM0_GCSR3 = 00000000
PPM0_MCR0 = 00000000 PPM0_MCR1 = 00000000 PPM0_MCR2 = 00000000 PPM0_MCR3 = 00000000
PPM0_SCR0 = 00000000 PPM0_SCR1 = 00000000 PPM0_SCR2 = 00000000 PPM0_SCR3 = 00000000
PPM0_GCR0 = 00000000 PPM0_GCR1 = 00000000 PPM0_GCR2 = 00000000 PPM0_GCR3 = 00000000
PPM0_DCSR0 = 00000000 PPM0_DCSR1 = 00000000 PPM0_DCMXR0 = 00000000 PPM0_DCMXR1 = 00000000
PPM0_DCMNR0 = 00FFFFFF PPM0_DCMNR1 = 00FFFFFF PPM0_DCTVR0 = 00000000 PPM0_DCTVR1 = 00000000
PPM0_DCOTR0 = 00000000 PPM0_DCOTR1 = 00000000 PPM0_CFGADDR = 00000000 PPM0_CFGDATA = 00000000
^ permalink raw reply [flat|nested] 3+ messages in thread
* RE: [techfield] GPIO causing bus error
2007-12-21 15:54 GPIO causing bus error Wyse, Chris
@ 2007-12-21 16:27 ` Elayda, Bernardo (Bernie)
2007-12-22 2:10 ` Jeff Mock
1 sibling, 0 replies; 3+ messages in thread
From: Elayda, Bernardo (Bernie) @ 2007-12-21 16:27 UTC (permalink / raw)
To: +techfield, Wyse, Chris, linuxppc-dev, linuxppc-embedded,
+linux-embedded, +linux-eng, linux-kernel, Wessel, Jason, support
Cc: Slimm, Rob, Read, Tricia, Ayer, Charles, Touron, Emmanuel
[-- Attachment #1: Type: text/plain, Size: 5858 bytes --]
Hi Chris,
I'm going to look at this problem from the FPGA hardware level because I
used to work for one of the FPGA companies.
I'm not familiar with your PPC440GX board, so some of my suggestions may
be difficult to implement or totally unreasonable, especially if it
requires soldering to an FPGA in a ball grid array or extermely fine
pitch pins.
(1) You should capture the configuration sequence on FPGA's JTAG pins
using a logic analyzer in functional mode.
In functional mode, you can capture an extermely long sequence of
configuration events. Also, in the past, I've used this mode and found
that when the FPGA doesn't configure, usually there are too few or too
many clocks on the TCK line.
(2) Sometimes, rarely, the FPGA design itself can cause a boot up
problem.
Instead of using the real design, send a 'blank' design with no logic
implemented at all. If this works, then it's the FPGA design itself
that is causing the boot problem.
(3) When the boot process happens, what is the power sequence of the
FPGA?
Most FPGA's out there like a nice smooth power profile that ramps up
quickly. Check and see if the profile is quick and smooth vs. spikey
and erratic. Also, sometimes configuration data gets sent before the
FPGA is ready to receive data. Try delaying the sending of
configuration data by a millisecond or so.
(4) Manually delay the configuration of the FPGA.
In other words, let the system boot, but modify the code to allow the
FPGA to configure only after a button is pushed. In theory, if the FPGA
power has properply initialized the FPGA, you could keep the system this
way forever until a 'button' is pushed to configure the FPGA. if this
works, this tends to imply that there is a timing issue. If it doesn't
work, it's possible that the FPGA's JTAG tap is actually in a state that
won't allow configuration to complete, such as non shift-dr or non
shift-ir state.
(5) If your FPGA is using one of the SVF-based software configuration
methods via JTAG, make sure you are using the latest SVF player and
latest software for generating the FPGA bitstream. The configuration
method may have changed. The FPGA silicon you are using may be newer
than the configuration algorithm that has been implemented.
I hope this helps!
Regards,
Bernie Elayda
the ex-X guy
________________________________
From: owner-techfield@windriver.com
[mailto:owner-techfield@windriver.com] On Behalf Of Wyse, Chris
Sent: Friday, December 21, 2007 7:55 AM
To: linuxppc-dev@ozlabs.org; linuxppc-embedded@ozlabs.org; +techfield;
+linux-embedded; +linux-eng; linux-kernel; Wessel, Jason;
support@amcc.com
Cc: Touron, Emmanuel; Read, Tricia; Ayer, Charles; Slimm, Rob
Subject: [techfield] GPIO causing bus error
Hi,
I'm having trouble with an unusual problem. I'm working on relatively
new hardware, so it's possible that there could be a hardware issue
involved.
I have an FPGA on my PPC440GX board that gets loaded via JTAG during the
kernel boot process (Linux 2.6.10). It uses the 440GX GPIO lines to
send the necessary JTAG commands to the FPGA to perform the initial
load. This process is USUALLY functional, but on some of the boards
(which we produce), the GPIO write fails with a bus error. On the
boards that fail, it only occurs after a cold boot, and only if the
board has been powered off for a few minutes. A quick hard reboot will
not generate the problem. When I issue the failing write to the GPIO
lines, some of the SDRAM gets corrupted. I don't appear to be taking
any interrupts that might have corrupted the RAM.
I've checked the TLB entries, and it maps correctly to the PPC register
area. Additionally, I can read and write to other registers using the
same TLB mapping WITHOUT any error. I can also READ the GPIO lines
without an error - the error is only on the write. I've checked the
SDR0_PFC0 bits to make sure everything is set properly (it is). The bus
error indicates "PLB Timeout Error Status Master 2, Master 2 slave error
occurred" (Master 2 is the write-only data cache unit (DCU)) and "Write
Error Interrupt Master 2, Write error detected - master 2 interrupt
request is active". I'm not sure why there would be any error in the
DCU, since the region I'm writing to is cache inhibited and guarded.
If I issue a soft reset of the GPIO subsystem, I can read and write to
the GPIO lines again.
The error does not occur on the first write to the GPIO. I go through
the failing routine several times before it fails. However, when it
fails, it consistently fails at the same spot, after the same number of
passes through the code.
I'm using RGMII ethernet on EMAC2 (Group 4), but the GPIO lines that I'm
using are not the Trace/GPIO lines (26-31) so I believe that they should
work fine (and they usually do). Also, the errata mentions that
SDR0_PFC0[G11E] has no effect - but I'm not using GPIO 11 anyway.
Here are some relevant register values after the error:
SDR0_PFC0 : 0x083FFE00
POB0_BESR0: 0x00008400
POB0_BEARH: 0x00000001
POB0_BEARL: 0x40000701
GPIO0_OR : 0x000400C0
GPIO0_TCR : 0x00278AE0
GPIO0_ODR : 0x00000000
GPIO0_IR : 0x00000000
I've attached two log files, that contain most of the 440 registers, one
for before the error and one after. In the log files, the bus error has
been cleared, so use the values shown above.
I'm looking for some suggestions on what to try to debug/resolve this
issue. I'm open to both hardware and software based suggestions. Any
help would be greatly appreciated.
Chris Wyse
Senior Member of Technical Staff
Embedded Technologies
860-978-0849 cell/office
413-778-9101 fax
http://www.windriver.com <http://www.windriver.com/>
[-- Attachment #2: Type: text/html, Size: 12913 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: GPIO causing bus error
2007-12-21 15:54 GPIO causing bus error Wyse, Chris
2007-12-21 16:27 ` [techfield] " Elayda, Bernardo (Bernie)
@ 2007-12-22 2:10 ` Jeff Mock
1 sibling, 0 replies; 3+ messages in thread
From: Jeff Mock @ 2007-12-22 2:10 UTC (permalink / raw)
To: Wyse, Chris
Cc: Slimm, Rob, linuxppc-dev, support, Wessel, Jason, Ayer, Charles,
+linux-eng, +techfield, linux-kernel, linuxppc-embedded,
Read, Tricia, +linux-embedded, Touron, Emmanuel
Well, I have a system that is pretty similar to yours. Our boards have
a 440GX and two Xilinx 2VP70's. The FPGAs are loaded using slave serial
mode (not jtag) from GPIO pins, but still pretty similar.
I haven't had any problems loading the FPGAs this way.
From your description I can't tell when you load the FPGAs during the
boot process. Our approach is as follows:
A module is loaded that creates /dev/fpga. You can 'cat' a bitstream
file to /dev/fpga and the driver will wiggle the GPIO pins appropriately
to the load the bitstream in the FPGAs. The script run at boot time
will do something like:
# zcat /etc/fpga_img.gz > /dev/fpga
At that point we load modules that create devices appropriate for the
FPGA image and the system is off running a domain specific application.
The process can be reversed to unload the drivers, load a new FPGA image
and new drivers without rebooting.
One thing that comes to mind is that our GPIO pins are used for a number
of disparate needs beyond FPGA loading. I keep a semaphore for
accessing the GPIO pins so that the different drivers that touch the
GPIO pins don't step on each other. Only one driver can touch the GPIO
pins at a time. Failing to do this in our application would definitely
create occasional failures.
jeff
Wyse, Chris wrote:
> Hi,
>
> I'm having trouble with an unusual problem. I'm working on relatively
> new hardware, so it's possible that there could be a hardware issue
> involved.
>
> I have an FPGA on my PPC440GX board that gets loaded via JTAG during the
> kernel boot process (Linux 2.6.10). It uses the 440GX GPIO lines to
> send the necessary JTAG commands to the FPGA to perform the initial
> load. This process is USUALLY functional, but on some of the boards
> (which we produce), the GPIO write fails with a bus error. On the
> boards that fail, it only occurs after a cold boot, and only if the
> board has been powered off for a few minutes. A quick hard reboot will
> not generate the problem. When I issue the failing write to the GPIO
> lines, some of the SDRAM gets corrupted. I don't appear to be taking
> any interrupts that might have corrupted the RAM.
>
> I've checked the TLB entries, and it maps correctly to the PPC register
> area. Additionally, I can read and write to other registers using the
> same TLB mapping WITHOUT any error. I can also READ the GPIO lines
> without an error - the error is only on the write. I've checked the
> SDR0_PFC0 bits to make sure everything is set properly (it is). The bus
> error indicates "PLB Timeout Error Status Master 2, Master 2 slave error
> occurred" (Master 2 is the write-only data cache unit (DCU)) and "Write
> Error Interrupt Master 2, Write error detected - master 2 interrupt
> request is active". I'm not sure why there would be any error in the
> DCU, since the region I'm writing to is cache inhibited and guarded.
>
> If I issue a soft reset of the GPIO subsystem, I can read and write to
> the GPIO lines again.
>
> The error does not occur on the first write to the GPIO. I go through
> the failing routine several times before it fails. However, when it
> fails, it consistently fails at the same spot, after the same number of
> passes through the code.
>
> I'm using RGMII ethernet on EMAC2 (Group 4), but the GPIO lines that I'm
> using are not the Trace/GPIO lines (26-31) so I believe that they should
> work fine (and they usually do). Also, the errata mentions that
> SDR0_PFC0[G11E] has no effect - but I'm not using GPIO 11 anyway.
>
> Here are some relevant register values after the error:
>
> SDR0_PFC0 : 0x083FFE00
> POB0_BESR0: 0x00008400
> POB0_BEARH: 0x00000001
> POB0_BEARL: 0x40000701
> GPIO0_OR : 0x000400C0
> GPIO0_TCR : 0x00278AE0
> GPIO0_ODR : 0x00000000
> GPIO0_IR : 0x00000000
>
> I've attached two log files, that contain most of the 440 registers, one
> for before the error and one after. In the log files, the bus error has
> been cleared, so use the values shown above.
>
> I'm looking for some suggestions on what to try to debug/resolve this
> issue. I'm open to both hardware and software based suggestions. Any
> help would be greatly appreciated.
>
>
> Chris Wyse
> Senior Member of Technical Staff
> Embedded Technologies
> 860-978-0849 cell/office
> 413-778-9101 fax
> http://www.windriver.com <http://www.windriver.com/>
>
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2007-12-22 2:10 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-12-21 15:54 GPIO causing bus error Wyse, Chris
2007-12-21 16:27 ` [techfield] " Elayda, Bernardo (Bernie)
2007-12-22 2:10 ` Jeff Mock
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).