<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://sudoroom.org/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Mesh%2FMeraki_sparky</id>
	<title>Mesh/Meraki sparky - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://sudoroom.org/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Mesh%2FMeraki_sparky"/>
	<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Meraki_sparky&amp;action=history"/>
	<updated>2026-06-13T11:36:56Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.2</generator>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Meraki_sparky&amp;diff=11217&amp;oldid=prev</id>
		<title>Juul: Created page with &quot;Adrian figured out how to fix the hardware watchdog reset issue [https://adrianchadd.blogspot.com/2014/03/meraki-sparky-boards-and-constant.html here].  Content backed up here...&quot;</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Meraki_sparky&amp;diff=11217&amp;oldid=prev"/>
		<updated>2018-06-05T07:24:08Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Adrian figured out how to fix the hardware watchdog reset issue [https://adrianchadd.blogspot.com/2014/03/meraki-sparky-boards-and-constant.html here].  Content backed up here...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Adrian figured out how to fix the hardware watchdog reset issue [https://adrianchadd.blogspot.com/2014/03/meraki-sparky-boards-and-constant.html here].&lt;br /&gt;
&lt;br /&gt;
Content backed up here in case it goes offline:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Meraki Sparky boards, and constant resetting&lt;br /&gt;
There's a Mesh internet project at Sudo Room and they've been doing some great work getting a platform up and running. However, like a lot of volunteer projects, they're working with whatever time and equipment they've been donated.&lt;br /&gt;
&lt;br /&gt;
A few months ago they were donated a few hundred Meraki Sparky boards. They're an Atheros AR2317 SoC based device with an integrated 2GHz 802.11bg radio, 10/100 ethernet and.. well, a hardware watchdog that resets the board after five minutes.&lt;br /&gt;
&lt;br /&gt;
Now, annoyingly, this reset occurs inside of Redboot too - which precludes them from being (fully) flashed before the unit reboots. Once the unit was flashed with OpenWRT, the unit still reboots every five minutes.&lt;br /&gt;
&lt;br /&gt;
So, I started down the path of trying to debug this.&lt;br /&gt;
&lt;br /&gt;
What did I know?&lt;br /&gt;
&lt;br /&gt;
Firstly, the AR2317 watchdog doesn't have a way of resetting things itself - instead, all it can do is post an interrupt. The AR7161 and later SoCs do indeed have a way to do a full hardware reset if the watchdog is tickled.&lt;br /&gt;
&lt;br /&gt;
Secondly, redboot has a few tricksy ways to manipulate the hardware:&lt;br /&gt;
&lt;br /&gt;
    'x' can examine registers. Since we need them in KSEG1 (unmapped, uncached) then the reset registers (0x11000xxx becomes 0xb1000xxx.) Since its hardware access, we should do them as DWORDS and not bytes.&lt;br /&gt;
    'mfill' can be used to write to registers.&lt;br /&gt;
&lt;br /&gt;
Thirdly, there's an Atheros specific command - bdshow - which is surprisingly informative:&lt;br /&gt;
&lt;br /&gt;
RedBoot&amp;gt; bdshow&lt;br /&gt;
name:     Meraki Outdoor 1.0&lt;br /&gt;
magic:    35333131&lt;br /&gt;
cksum:    2a1b&lt;br /&gt;
rev:      10&lt;br /&gt;
major:    1&lt;br /&gt;
minor:    0&lt;br /&gt;
pciid:    0013&lt;br /&gt;
wlan0:    yes 00:18:0a:50:7b:ae&lt;br /&gt;
wlan1:    no  00:00:00:00:00:00&lt;br /&gt;
enet0:    yes 00:18:0a:50:7b:ae&lt;br /&gt;
enet1:    no  00:00:00:00:00:00&lt;br /&gt;
uart0:    yes&lt;br /&gt;
sysled:   no, gpio 0&lt;br /&gt;
factory:  no, gpio 0&lt;br /&gt;
serclk:   internal&lt;br /&gt;
cpufreq:  calculated 184000000 Hz&lt;br /&gt;
sysfreq:  calculated 92000000 Hz&lt;br /&gt;
memcap:   disabled&lt;br /&gt;
watchdg:  disabled (WARNING: for debugging only!)&lt;br /&gt;
&lt;br /&gt;
serialNo: Q2AJYS5XMYZ8&lt;br /&gt;
Watchdog Gpio pin: 6&lt;br /&gt;
secret number: e2f019a200ee517e30ded15cdbd27ba72f9e30c8&lt;br /&gt;
&lt;br /&gt;
.. hm. Watchdog GPIO pin 6? What's that?&lt;br /&gt;
&lt;br /&gt;
Next, I tried manually manipulating the watchdog registers but nothing actually happened.&lt;br /&gt;
&lt;br /&gt;
Then I wondered - what about manipulating the GPIO registers? Maybe there's a hardware reset circuit hooked up to GPIO 6 that needs to be toggled to keep the board from resetting.&lt;br /&gt;
&lt;br /&gt;
Board: ap61&lt;br /&gt;
RAM: 0x80000000-0x82000000, [0x8003ddd0-0x80fe1000] available&lt;br /&gt;
FLASH: 0xa8000000 - 0xa87e0000, 128 blocks of 0x00010000 bytes each.&lt;br /&gt;
== Executing boot script in 2.000 seconds - enter ^C to abort&lt;br /&gt;
^C&lt;br /&gt;
RedBoot&amp;gt; # set direction of gpio6 to out&lt;br /&gt;
RedBoot&amp;gt; mfill -b 0xb1000098 -l 4 -p 0x00000043&lt;br /&gt;
RedBoot&amp;gt; x -b 0xb1000098&lt;br /&gt;
B1000098: 00 00 00 43 00 00 00 00  00 00 00 00 00 00 00 03  |...C............|&lt;br /&gt;
B10000A8: FF EF F7 B9 7D DF 5F FF  00 00 00 00 00 00 00 00  |....}._.........|&lt;br /&gt;
&lt;br /&gt;
RedBoot&amp;gt; # pat gpio6 - set it high, then low.&lt;br /&gt;
RedBoot&amp;gt; mfill -b 0xb1000090 -l 4 -p 0x00000042&lt;br /&gt;
RedBoot&amp;gt; mfill -b 0xb1000090 -l 4 -p 0x00000002&lt;br /&gt;
&lt;br /&gt;
.. then I manually did this every minute or so.&lt;br /&gt;
&lt;br /&gt;
RedBoot&amp;gt;&lt;br /&gt;
RedBoot&amp;gt; mfill -b 0xb1000090 -l 4 -p 0x00000042&lt;br /&gt;
RedBoot&amp;gt; mfill -b 0xb1000090 -l 4 -p 0x00000002&lt;br /&gt;
RedBoot&amp;gt; mfill -b 0xb1000090 -l 4 -p 0x00000042&lt;br /&gt;
RedBoot&amp;gt; mfill -b 0xb1000090 -l 4 -p 0x00000002&lt;br /&gt;
&lt;br /&gt;
.. so, the solution here seems to be to &amp;quot;set gpio6 to be output&amp;quot;, then &amp;quot;pat it every 60 seconds.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
I hope this helps people bring OpenWRT up on this board finally. There seems to be a few of them out there!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Juul</name></author>
	</entry>
</feed>