PPC 405EP: setting MSR[ME] causes machine check - VxWorks

This is a discussion on PPC 405EP: setting MSR[ME] causes machine check - VxWorks ; Hi, I have a board using PPC 405 EP running vxWorks 6.2. During the start up code in the boot loader, it sets up the exception vectors ( excVecInit() ), and one of the things it does is to set ...

+ Reply to Thread
Results 1 to 5 of 5

Thread: PPC 405EP: setting MSR[ME] causes machine check

  1. PPC 405EP: setting MSR[ME] causes machine check

    Hi,

    I have a board using PPC 405 EP running vxWorks 6.2. During the start
    up code in the boot loader, it sets up the exception vectors (
    excVecInit() ), and one of the things it does is to set the Machine
    Check Enable bit on the MSR (a simple mtmsr). As soon as it does this,
    the processor seems to be causing an immediate machine check interrupt,
    which causes vxWorks to jump into the exception handler.

    This apparently has no impact on booting the system; however I'd like
    to know why the exception happened in the first place. Does the 405
    latch on any pending machine check exceptions and then trigger when the
    ME bit is turned on?

    Another thing to note is that this problem only occurs on a cold boot.
    When it's re-booted with the reboot command, or booted using a BDI
    (which sends a reset signal on power up), there is no machine check
    exception at start up.


  2. Re: PPC 405EP: setting MSR[ME] causes machine check

    What Machine Check Error do you get? If you look at the value of the
    ESR you can find out what caused it. (or narrow it down)

    I had a similar probler with VxWorks 5.5 on the PPC 405. It would
    always give me a PLB data bus error when trying to run vX at an address
    > 0x02000000. In my case it wouldn't boot, as the default handler for a PLB data bus error reboots the PPC.



  3. Re: PPC 405EP: setting MSR[ME] causes machine check

    I can't find the ESR available when I also got exception of Machine
    Check in PPC750...

    Christian Sturt 写道:

    > What Machine Check Error do you get? If you look at the value of the
    > ESR you can find out what caused it. (or narrow it down)
    >
    > I had a similar probler with VxWorks 5.5 on the PPC 405. It would
    > always give me a PLB data bus error when trying to run vX at an address
    > > 0x02000000. In my case it wouldn't boot, as the default handler for aPLB data bus error reboots the PPC.



  4. Re: PPC 405EP: setting MSR[ME] causes machine check

    > I can't find the ESR available when I also got exception of Machine
    > Check in PPC750...


    That's because the 750 doesn't have an ESR. The only information it
    provides about the cause of a machine check is bits 11:15 of SRR1.
    This is described in the User's Manual.

  5. Re: PPC 405EP: setting MSR[ME] causes machine check

    Christian Sturt wrote:
    > What Machine Check Error do you get? If you look at the value of the
    > ESR you can find out what caused it. (or narrow it down)
    >
    > I had a similar probler with VxWorks 5.5 on the PPC 405. It would
    > always give me a PLB data bus error when trying to run vX at an address
    > > 0x02000000. In my case it wouldn't boot, as the default handler for a PLB data bus error reboots the PPC.


    The ESR either said it was a data or an instruction exception. I don't
    remember which, because either way it didn't help me zero in on the
    source of the problem. It did give me the address of the instruction,
    which was an mtmsr (the instruction when I enable the machine check).

    I eventually found the source, however. I was executing some memory
    instructions before the memory was fully initialized. This caused the
    machine check to stay hidden until you enabled machine checks, at which
    time you'd immediately get the exception.

    To find the souce, I enabled the exception real early in my boot code,
    then trapped the code at various places to see where it was happening.


+ Reply to Thread