[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Ltib] Inability to reboot the MPC8349mITX
From: |
Stuart Hughes |
Subject: |
Re: [Ltib] Inability to reboot the MPC8349mITX |
Date: |
Tue, 02 Jan 2007 13:29:15 +0000 |
Hi Benoit,
Thanks for that, I'll pass that back to the itx group.
Regards, Stuart
On Tue, 2007-01-02 at 12:27 +0100, Benoit Tinite wrote:
> Hello,
>
> Above all, happy new year to every body.
>
> I met the same issue when playing with MPC8349mITX board.
> From my opinion, function
> mpc83xx_restart(arch/ppc/syslib/ppc83xx_setup.c) is faulty.
> It define a specific procedure to restart the mpc8349mITX platform,
> using a self generated checkstop exception to reset the board.
> However, the way the function handles registers to rise a the checkstop
> is strange (lack of indirection).
> I had to modify the function like this :
>
> --- rpm/BUILD/linux-2.6.13/arch/ppc/syslib/ppc83xx_setup.c
> 2007-01-02 12:03:12.000000000 +0100
> +++ rpm/BUILD/linux-2.6.14.7/arch/ppc/syslib/ppc83xx_setup.c
> 2006-12-21 18:38:48.000000000 +0100
> @@@ -131,7 +146,7 @@ mpc83xx_restart(char *cmd)
>
> volatile unsigned char dummy;
> volatile unsigned int msr;
> - unsigned int bad_addr, rmr_addr, br0_addr;
> + volatile unsigned int bad_addr, rmr_addr, br0_addr;
>
> /* Get base address mapped by BR0/OR0 */
> br0_addr = (unsigned int)(VIRT_IMMRBAR + 0x5000);
> @@ -141,10 +156,10 @@ mpc83xx_restart(char *cmd)
> cli();
>
> /* Enable CheckStop Reset */
> - rmr_addr |= 0x00000001;
> + *(unsigned int *)rmr_addr |= 0x00000001;
>
> /* Invalidate BR0 mapping */
> - br0_addr = 0;
> + *(unsigned int *)br0_addr = 0;
>
> /* Set MSR and cause reset */
> __asm__("mfmsr %0" : "=r" (msr) );
> @@ -200,31 +215,33 @@ mpc83xx_halt(void)
> for(;;);
> }
>
> Mark Lacas a écrit :
> > Hello,
> > Has anyone experienced the inability to reboot the MPC8349mITX system?
> > If so does anyone have a cure?
> >
> > I get this output when I type the reboot command from the shell:
> >
> > ----- beginning of pasted text -----
> >
> > Stopping the dropbear ssh server:
> > Stopping inetd:
> > Syncing hardware clock to system time
> > Unmounting filesystems
> > chmod: changing permissions of `/share': Read-only file system
> >
> > The system is going down NOW !!
> >
> > Sending SIGTERM to all processes.
> >
> > Send
> > Please stand by while rebooting the system.
> > md: stopping all md devices.
> >
> > md: md0 switched to read-only mode.
> >
> > Synchronizing SCSI cache for disk sda:
> >
> > Restarting system.
> >
> > .
> >
> > Restart failed
> >
> > ----- end of pasted text -----
> >
> > Looking in the kernel code I find a file ppc83xx_setup.c that has some
> > reset code in it. Looks like it's trying to perform a hardware reset
> > and then if that fails goes into an infinite loop.
> >
> > I need to use the box from remote for dev and having it hang when I
> > reboot puts an end to my work.
> >
> > Thanks,
> > ml
> >
> >
> >
> > _______________________________________________
> > LTIB home page: http://bitshrine.org
> >
> > Ltib mailing list
> > address@hidden
> > http://lists.nongnu.org/mailman/listinfo/ltib
> >
>
>
>
> _______________________________________________
> LTIB home page: http://bitshrine.org
>
> Ltib mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/ltib
>