MVME230x exception error on boot
Till Straumann
strauman at slac.stanford.edu
Thu Nov 18 21:09:01 UTC 2004
Bill Nolan wrote:
> Hello again,
>
> I am having an exception durring boot of the sample applications.
>
> I saw a thread about this in the archives from last summer, But could
> not find how it was resolved.
>
> This is the original thread.
> http://www.rtems.com/ml/rtems-users/2003/august/msg00063.html
>
>
> My configuration is:
> Mvme2308 ( a mvme2307 with 128Mb memory )
>
> We are trying to boot the sample app hello.exe from
> rtems-ss-20030703.
>
> No addons or additional softwhare yet.
>
> Thank you again for any help.
>
> -- Bill
>
> below is the console output durring boot.
>
> -----------------------------------------
> Welcome to rtems-ss-20030703(PowerPC/PowerPC 604/mvme2307) on MVME 2300
> -----------------------------------------
> OpenPIC found at C1000000.
> pci : Interrupt routing not available for this bsp
> Enabling MCP generation on hostbridge errors
> OpenPIC Version ? (2 CPUs and 17 IRQ sources) at 0xC1000000
> OpenPIC Vendor 0 (Motorola), Device 0 (Raven), Stepping 2
> OpenPIC timer frequency is 8333656 Hz
> Universe II PCI-VME bridge detected at 0xC1040000, IRQ 11
> Universe Master Ports:
> Port VME-Addr Size PCI-Adrs Mode:
> 0: 0x20000000 0x0F000000 0x10000000 A32, Dat, Sup
> 1: 0x00000000 0x00FF0000 0x1F000000 A24, Dat, Sup
> 2: 0x00000000 0x00010000 0x1FFF0000 A16, Dat, Sup
> Universe Slave Ports:
> Port VME-Addr Size PCI-Adrs Mode:
> 0: 0xC0000000 0x07F80000 0x80000000 A32, Pgm, Dat, Sup, Usr
> Overriding main IRQ line PCI info with 5
> exception handler called for exception 3
Exception 3 means that the MMU has no allowed mapping
for a effective/virtual address (probably no mapping at all).
The offending address is stored in DAR (it is 0x11180000).
What I usually do is creating a disassembly of the executable
(ELF file, not bootable image):
powerpc-rtems-objdump -dr app_elf_file > disas
and then I go manually through the stack backtrace.
I looked through my archives and found that the Paul's problem
at the time was caused by the firmware not properly shutting down\
the network interface prior to starting the (net-) loaded
image. This may or may not be your problem.
Instructions about how to make sure your interface is down are
appended.
If you have a hard time with the disassembly, you can send
me the disassembled output and I'll quickly go through and
check if I see something obvious [PPC is our production
platform and I'm interested in finding any bugs].
Till
PS: from off-line conversations around 20/8/2003
> Sounds good, congrats.
>
> A few remarks:
>
> - you should try the original (non-'paul') gesys with
> reduced memory. You could also try if you can increase
> the memory to 32M, 64M and 125M.
>
> - I encourage you to use gesys in combination with EPICS
> (that's what we do here at SSRL). You'll get a very
> vxWorks'ish (look+feel) system.
> Plus, it's easier to maintain. You can have one generic
> system (gesys) for all of your IOCs.
> All you need to do is minimal tweaking of EPICS'
> CONFIG.Common.RTEMS file so the final linking step is
> omitted and a relocatable object is built instead.
> That one you can load into GeSys.
> Let me know if I can be of any help.
>
> - The high memory problem should be addressed. I'd start
> with the prime suspect: the network interface/driver:
> Here's a simple thing you can do:
>
> a) find the base address: at the PPCBug> prompt,
> enter:
>
> PPC1-Bug> CSAR 0 e 0 0
> Read Data =00091011
>
> If you get back, anything other than 00091011
> or 00191011 (the DEC ID) you have to search the
> right slot number (try others than 'e'). Once
> you found the slot, enter (substitute your slot #)
>
> PPC1-Bug> CSAR 0 e 0 14
> Read Data =3BFDFF80
>
> This gives you the PCI base address (notes:
> the base address may be different on your board.
> DONT use the base address reported by RTEMS - the
> bootloader reconfigures the PCI bus)
>
> Finally, you have to add the constant 0xc0000000,
> i.e. the base address as seen by the CPU is
> ----> FBFDFF80
>
> b) load gesys with 'NBH'. Once PPCBug is in control,
> DONT resize the memory, but reset the DEC network
> chip (using YOUR base address, of course):
>
> PPC1-Bug>m fbfdff80
> FBFDFF80 02E020FE? 01000000
> **WARNING:NO MATCH**
> FBFDFF80 000000FE? .
>
> The changed readback value (000000FE) confirms the
> successful reset operation. Leave the 'M' command
> typing a '.'
>
> c) Start the loaded system issuing 'GO'
>
> See if you still get the 'strange PTE' messages
> (using 'gesys-paul' with the full sized memory)
>
> Let me know about the results...
>
> -- Till
>
> BTW: what version is your firmware ('VER' command)?
>
>
> Paul D Jines wrote:
>
>>
>>
>>
>> We have GREAT news. (Thanks!) With the memory size
>> changed, EPICS works! After your suggestion about the ANSI
>> terminal, we tried gesys-paul1, and it worked fine with no
>> exceptions. We checked the emulator we were using
>> (Hyperterminal on Windows), and the terminal type was ANSI,
>> so, suspecting a problem with Hyperterminal, we switched
>> over to Linux emulation (again with ANSI terminal type).
>> Using the different emulator, even the old gesys-paul works
>> with no exception 7. It gets "strange PTE's" without the
>> memory size change, but no exception 3's. EPICS works fine
>> with the memory size change (but still gets exception 3's
>> without the size change). We're happy to be seeing our
>> first IOC errors!
>>
>> Thank you for helping us. You have been a great help.
>> The old terminal emulator is in the trash bin now, and
>> we're going to reset the memory size after each boot. If
>> there is anything that we can help you with, please let
>> us know.
>>
>> Thanks,
>>
>> Paul
>>
>
> Next PC or Address of fault = 1D17C
> Saved MSR = 3032
> R0 = 0
> R1 = 36E80
> R2 = 2FCD8
> R3 = 3AF30
> R4 = 0
> R5 = 6E59800
> R6 = 30000
> R7 = 10000
> R8 = F
> R9 = 7F368D
> R10 = 10000
> R11 = 1118000
> R12 = 1FE
> R13 = 32924
> R14 = 0
> R15 = 0
> R16 = 0
> R17 = 0
> R18 = 0
> R19 = 0
> R20 = 0
> R21 = 0
> R22 = 3032
> R23 = 2E2A8
> R24 = 10000
> R25 = 30000
> R26 = 1
> R27 = 0
> R28 = 30000
> R29 = 34EB0
> R30 = 7F368D0
> R31 = 3AF30
> CR = 44800042
> CTR = 6E5980
> XER = 20000000
> LR = E0A8
> DAR = 1118000
> Stack Trace:
> IP: 0x0001D17C, LR: 0x0000E0A8
> --^ 0x00014324--^ 0x0000A620--^ 0x000040E0--^ 0x0000D32C--^ 0x00003CCC
> --^ 0x0000321C
> unrecoverable exception!!! Push reset button
>
More information about the users
mailing list