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
>
>
next prev parent 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.