Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 22 May 2021 22:53:15 GMT
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 114f4b17d5b6 - main - [ar71xx] During reset, don't spin, just keep trying
Message-ID:  <202105222253.14MMrFlK066512@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by adrian:

URL: https://cgit.FreeBSD.org/src/commit/?id=114f4b17d5b60a5d53ca98f08cc7e8d78c6984de

commit 114f4b17d5b60a5d53ca98f08cc7e8d78c6984de
Author:     Adrian Chadd <adrian@FreeBSD.org>
AuthorDate: 2021-04-19 05:48:13 +0000
Commit:     Adrian Chadd <adrian@FreeBSD.org>
CommitDate: 2021-05-22 22:53:00 +0000

    [ar71xx] During reset, don't spin, just keep trying
    
    I've seen this fail from time to time and just hang during reset.
    Instead of it just hanging, just poke it again.  I've not seen it
    fail in hundreds of test resets now.
    
    Tested:
    
    * AR9344 AP/STA configuration
---
 sys/mips/atheros/ar71xx_machdep.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/sys/mips/atheros/ar71xx_machdep.c b/sys/mips/atheros/ar71xx_machdep.c
index 2bb6d5845d16..72beec972de2 100644
--- a/sys/mips/atheros/ar71xx_machdep.c
+++ b/sys/mips/atheros/ar71xx_machdep.c
@@ -80,10 +80,13 @@ platform_cpu_init()
 void
 platform_reset(void)
 {
-	ar71xx_device_stop(RST_RESET_FULL_CHIP);
-	/* Wait for reset */
-	while(1)
-		;
+	while(1) {
+		printf("%s: resetting via AHB FULL_CHIP register...\n", __func__);
+		ar71xx_device_start(RST_RESET_FULL_CHIP);
+		DELAY(100 * 1000);
+		ar71xx_device_stop(RST_RESET_FULL_CHIP);
+		DELAY(1000 * 1000);
+	}
 }
 
 /*



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202105222253.14MMrFlK066512>