All of lore.kernel.org
 help / color / mirror / Atom feed
From: Theo Gjaltema <gjalt007@chello.nl>
To: matvejchikov@gmail.com
Cc: linuxppc-embedded@ozlabs.org
Subject: Re: reboot of mpc8270 sometimes fails
Date: Thu, 01 Nov 2007 19:02:59 +0100	[thread overview]
Message-ID: <472A14D3.30500@chello.nl> (raw)
In-Reply-To: <8496f91a0710311314k3dd90e12t670e2405fcaa0725@mail.gmail.com>

Hi!

I solved our problem a different way: I added a reset of the CPM just 
before calling te m8260_gorom().
The effect is that the message "rebooting" which was often followed by a 
strange character is now cut short ("reboo"), but uboot is always 
comming up afterwards. I've tested this by adding a "reboot" command in 
an S script in rc3.d. The system with the unpatched kernel failed 
aboutonce every 30 times it rebooted, with the patch it continued 
rebooting correctly for 3 days (then I stopped the tests by hand).

The code for rebooting the CPM was obtained from the freescale manuals 
of the mpc8270.
Anyone interested in the actual patch?

Theo.

Matvejchikov Ilya schreef:
> Hi!
>
> I thik that m8260_restart in 2.4 kernel is broken. Try to get it from
> the 2.6 kernel, or look at this.
>
>  /* The 8260 has an internal 1-second timer update register that
> @@ -112,21 +123,16 @@ m8260_get_rtc_time(void)
>  static void
>  m8260_restart(char *cmd)
>  {
> -	extern void m8260_gorom(bd_t *bi, uint addr);
> -	uint	startaddr;
> -
> -	/* Most boot roms have a warmstart as the second instruction
> -	 * of the reset vector.  If that doesn't work for you, change this
> -	 * or the reboot program to send a proper address.
> -	 */
> -	startaddr = 0xff000104;
> -
> -	if (cmd != NULL) {
> -		if (!strncmp(cmd, "startaddr=", 10))
> -			startaddr = simple_strtoul(&cmd[10], NULL, 0);
> -	}
> -
> -	m8260_gorom((unsigned int)__pa(__res), startaddr);
> +	__volatile__ unsigned char dummy;
> +	
> +	local_irq_disable();
> +	((cpm2_map_t *) cpm2_immr)->im_clkrst.car_rmr |= 0x00000001;
> +
> +	/* Clear the ME,EE,IR & DR bits in MSR to cause checkstop */
> +	mtmsr(mfmsr() & ~(MSR_ME | MSR_EE | MSR_IR | MSR_DR));
> +	dummy = ((cpm2_map_t *) cpm2_immr)->im_clkrst.res[0];
> +	printk("Restart failed\n");
> +	while (1) ;
>  }
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
>
>   

  reply	other threads:[~2007-11-01 18:05 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-31 20:14 reboot of mpc8270 sometimes fails Matvejchikov Ilya
2007-11-01 18:02 ` Theo Gjaltema [this message]
  -- strict thread matches above, loose matches on Subject: below --
2007-11-22  4:24 lobo fan
2007-12-04  8:42 ` Theo Gjaltema
2007-10-09 10:23 Theo Gjaltema

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=472A14D3.30500@chello.nl \
    --to=gjalt007@chello.nl \
    --cc=linuxppc-embedded@ozlabs.org \
    --cc=matvejchikov@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.