From 8bc58da8ac7b2d91b7a6571e622876346df6f4cd Mon Sep 17 00:00:00 2001 From: Stefan Reinauer Date: Thu, 14 Feb 2013 16:56:05 -0800 Subject: ARMv7: straighten out reset code We don't need three different implementations. Change-Id: Ie7b5fa90794676ea38838454a33e8e9188428eb7 Signed-off-by: Stefan Reinauer Reviewed-on: http://review.coreboot.org/2406 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich --- src/arch/armv7/include/common.h | 1 - src/arch/armv7/lib/Makefile.inc | 1 - src/arch/armv7/lib/interrupts.c | 3 +- src/arch/armv7/lib/reset.c | 53 ---------------------------------- src/cpu/samsung/exynos5-common/reset.c | 30 +++++++++++++++++++ src/cpu/samsung/exynos5-common/soc.c | 30 ------------------- 6 files changed, 32 insertions(+), 86 deletions(-) delete mode 100644 src/arch/armv7/lib/reset.c create mode 100644 src/cpu/samsung/exynos5-common/reset.c delete mode 100644 src/cpu/samsung/exynos5-common/soc.c diff --git a/src/arch/armv7/include/common.h b/src/arch/armv7/include/common.h index d00aecffbe..6bd2c57498 100644 --- a/src/arch/armv7/include/common.h +++ b/src/arch/armv7/include/common.h @@ -294,7 +294,6 @@ int checkicache (void); int checkdcache (void); void upmconfig (unsigned int, unsigned int *, unsigned int); ulong get_tbclk (void); -void reset_cpu (ulong addr); #if defined (CONFIG_OF_LIBFDT) && defined (CONFIG_OF_BOARD_SETUP) void ft_cpu_setup(void *blob, bd_t *bd); #endif diff --git a/src/arch/armv7/lib/Makefile.inc b/src/arch/armv7/lib/Makefile.inc index 048e0717df..391b6a54b1 100644 --- a/src/arch/armv7/lib/Makefile.inc +++ b/src/arch/armv7/lib/Makefile.inc @@ -13,7 +13,6 @@ ramstage-y += div64.S #ramstage-y += interrupts.c #ramstage-y += memcpy.S #ramstage-y += memset.S -#ramstage-y += reset.c ramstage-y += syslib.c #FIXME(dhendrix): should this be a config option? diff --git a/src/arch/armv7/lib/interrupts.c b/src/arch/armv7/lib/interrupts.c index ab9a80ca91..d07442a077 100644 --- a/src/arch/armv7/lib/interrupts.c +++ b/src/arch/armv7/lib/interrupts.c @@ -36,6 +36,7 @@ */ #include +#include DECLARE_GLOBAL_DATA_PTR; @@ -105,7 +106,7 @@ int disable_interrupts (void) void bad_mode (void) { panic ("Resetting CPU ...\n"); - reset_cpu (0); + soft_reset(); } void show_regs (struct pt_regs *regs) diff --git a/src/arch/armv7/lib/reset.c b/src/arch/armv7/lib/reset.c deleted file mode 100644 index 08e6acb261..0000000000 --- a/src/arch/armv7/lib/reset.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * (C) Copyright 2002 - * Sysgo Real-Time Solutions, GmbH - * Marius Groeger - * - * (C) Copyright 2002 - * Sysgo Real-Time Solutions, GmbH - * Alex Zuepke - * - * (C) Copyright 2002 - * Gary Jennejohn, DENX Software Engineering, - * - * (C) Copyright 2004 - * DAVE Srl - * http://www.dave-tech.it - * http://www.wawnet.biz - * mailto:info@wawnet.biz - * - * (C) Copyright 2004 Texas Insturments - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -#include - -int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) -{ - puts ("resetting ...\n"); - - udelay (50000); /* wait 50 ms */ - - disable_interrupts(); - reset_cpu(0); - - /*NOTREACHED*/ - return 0; -} diff --git a/src/cpu/samsung/exynos5-common/reset.c b/src/cpu/samsung/exynos5-common/reset.c new file mode 100644 index 0000000000..6cbc1d88e5 --- /dev/null +++ b/src/cpu/samsung/exynos5-common/reset.c @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2010 Samsung Electronics. + * Minkyu Kang + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#include +#include + +void soft_reset(void) +{ + writel(0x1, samsung_get_base_swreset()); +} diff --git a/src/cpu/samsung/exynos5-common/soc.c b/src/cpu/samsung/exynos5-common/soc.c deleted file mode 100644 index e73fd338ba..0000000000 --- a/src/cpu/samsung/exynos5-common/soc.c +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2010 Samsung Electronics. - * Minkyu Kang - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -#include -#include - -void reset_cpu(unsigned long addr) -{ - writel(0x1, samsung_get_base_swreset()); -} -- cgit v1.2.3