From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mike Frysinger Date: Sat, 24 Oct 2009 02:19:25 -0400 Subject: [U-Boot] replacing do_reset with a custom one In-Reply-To: <4AE22376.5050107@RuggedCom.com> References: <4AE22376.5050107@RuggedCom.com> Message-ID: <200910240219.26063.vapier@gentoo.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Friday 23 October 2009 17:43:18 Richard Retanubun wrote: > I am sorry if this has been asked before, It does not appear so on the > mailing list archive. > > I'd like to replace do_reset function with my own custom one, (i.e. > resetting by not petting an external hw watchdog). > > In previous discussion, > http://lists.denx.de/pipermail/u-boot/2007-January/018848.html > > Wolfgang seems to favor creating a custom-board specific command (e.g. > wdreset) and calling that but If I do that, I have to replace all > instances of do_reset that matters to my board. It seems simpler to simply > 'hijack and replace/enhance' the existing 'do_reset' to do my bidding. > > Is there a recommended way of doing this? Any chance of adding something > like this: > > /cpu/$some-cpu/cpu.c > > do_reset() > { > > #ifdef CUSTOM_BOARD_RESET > custom_board_reset(); > #endif; > > > } > > This way each board can define their own "call_custom_board" function. #ifdef's are the past. weaks are in! the Blackfin port already does: void board_reset(void) __attribute__((__weak__)); ... if (board_reset) board_reset(); ... the bf537-stamp uses this to make sure some pins are driven low to workaround weak pull ups in the hardware -mike -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: This is a digitally signed message part. Url : http://lists.denx.de/pipermail/u-boot/attachments/20091024/1e4224cf/attachment.pgp