This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Error Unhandled fault: external abort on non-linefetch

I have embedded Linux on DM8148 chip. When I access MailBox, I got this error Unhandled fault: external abort on non-linefetch (0x1018).

Thanks in advance.

My driver code is :

 #define   TI81XX_MAILBOX_BASE   0x480C8000

  volatile u32 *mBoxRev;

  mBoxRev = ioremap (TI81XX_MAILBOX_BASE, 4);

   if ((mBoxRev == NULL))
   {
       ret = -ENOMEM;
       printk ("ERROR ioremap !!!\n");
        goto unmap_io;
   }

   /* Read the register */

   value = inl (mBoxRev);
   printk ("mBoxRev :  %x\n", value);

  • Pascal,

    From where are you running the code? The issue could be that the Mailbox hardware block might not be clocked or powered up. You need to turn on the clock as well as the power to the module.

  • Hello Thomas,

    Thank you for your answer.

    My code is running on the ARM (DM8148) with Linux OS. And my colleague uses the DSP (DM8148) with µCOSII. Also it is my code (on the ARM) which allows to start the DSP. And we see that the DSP has no problem of access to the Mailbox. However I verified that the Mailbox clock is enabled (CM_ALWON_MAILBOX_CLKCTRL). But I don't see a register which concerns the power to the module !?

    It is possible that the DSP reaches the Mailbox module and not ARM processor ?

  • Hi Pascal,

    Can you try to disable this code and boot up linux. Then try the utility devmem or devmem2 like this.

    devmem 0x480C8000.

    Make sure that DSP is loaded during this time, to ensure the module is powered on.