<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tobi's Corner &#187; Asus</title>
	<atom:link href="http://tobiscorner.floery.net/tag/asus/feed" rel="self" type="application/rss+xml" />
	<link>http://tobiscorner.floery.net</link>
	<description>... the electronix portal</description>
	<lastBuildDate>Tue, 22 Jun 2010 06:54:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>About wait states</title>
		<link>http://tobiscorner.floery.net/projects/openwrt/about-wait-states/99</link>
		<comments>http://tobiscorner.floery.net/projects/openwrt/about-wait-states/99#comments</comments>
		<pubDate>Mon, 19 Mar 2007 22:30:16 +0000</pubDate>
		<dc:creator>theFloe</dc:creator>
				<category><![CDATA[OpenWRT]]></category>
		<category><![CDATA[Asus]]></category>
		<category><![CDATA[T6963]]></category>

		<guid isPermaLink="false">http://tobiscorner.floery.net/?p=99</guid>
		<description><![CDATA[For some time I&#8217;m struggling with the external Interface of ASUS WL-HDD Router models. I&#8217;m now trying to connect a T6963 based LCD. This failed because of the speed of the external bus. So I searched the linux code and found the initialization in sbmips.c under linux/arch/mips32/bcm47xxx/sbmips.c. I copied the code to my module and [...]]]></description>
			<content:encoded><![CDATA[<p>For some time I&#8217;m struggling with the external Interface of ASUS WL-HDD Router models.</p>
<p>I&#8217;m now trying to connect a T6963 based LCD. This failed because of the speed of the external bus. So I searched the linux code and found the initialization in sbmips.c under linux/arch/mips32/bcm47xxx/sbmips.c.<span id="more-99"></span></p>
<p>I copied  the code to my module and build a function to slow down the speed:</p>
<pre>static void extif_slowDown()  {
ulong hz,ns,tmp;
extifregs_t *eir;

if ((hz = sb_clock(sbh)) == 0)
hz = 100000000;
ns = 1000000000 / hz;

if ((eir = sb_setcore(sbh, SB_EXTIF, 0))) {
tmp = CEIL(1, ns) &lt; &lt; FW_W3_SHIFT;
tmp = tmp | (CEIL(1,ns) &lt;&lt; FW_W2_SHIFT);
tmp = tmp | (CEIL(200, ns) &lt;&lt; FW_W1_SHIFT);
tmp = tmp | CEIL(240, ns);
W_REG(&amp;eir-&gt;prog_waitcount, tmp);
}
}</pre>
<p>I had no clue what those parameters are for. For a first test the old values where doubled. Using a oscilloscope I could figure out 2 values:</p>
<table border="0">
<tbody>
<tr>
<td><a title="bild1.png" rel="attachment wp-att-100" href="http://tobiscorner.floery.net/projects/openwrt/about-wait-states/99/bild1png/"><img src="http://tobiscorner.floery.net/wp-content/bild1.thumbnail.png" border="0" alt="bild1.png" /></a></td>
<td><a title="bild2.png" rel="attachment wp-att-101" href="http://tobiscorner.floery.net/projects/openwrt/about-wait-states/99/bild2png/"><img src="http://tobiscorner.floery.net/wp-content/bild2.thumbnail.png" border="0" alt="bild2.png" /></a></td>
<td><a title="bild3.png" rel="attachment wp-att-102" href="http://tobiscorner.floery.net/projects/openwrt/about-wait-states/99/bild3png/"><img src="http://tobiscorner.floery.net/wp-content/bild3.thumbnail.png" border="0" alt="bild3.png" /></a></td>
</tr>
<tr>
<td>W3 = 40ns<br />
W2 = 40ns<br />
W1 = 100ns<br />
W0 = 200ns</td>
<td>W3 = 100ns<br />
W2 = 40ns<br />
W1 = 100ns<br />
W0 = 200ns</td>
<td>W3 = 40ns<br />
W2 = 100ns<br />
W1 = 100ns<br />
W0 = 200ns</td>
</tr>
</tbody>
</table>
<p>The upper signal is the /CS line and the lower the /WR line.  As you can see W3 defines the time from /WR high to /CS high, while W2 defines the time from /CS low to /RD low. What W1 and W0 are for I can only guess. The total low time of /CS increases with W0 but for W1 I coudn&#8217;t find a change (maybe it&#8217;s a timing value for reading from the interface).</p>
<p>I&#8217;m now playing with the timing parameters and looking what the LCD will display. Sometimes I can ge something on it and sometimes not.  I think I got the writing timing correct but reading to check the status bits is not in time&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://tobiscorner.floery.net/projects/openwrt/about-wait-states/99/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The external Interface</title>
		<link>http://tobiscorner.floery.net/projects/openwrt/jukebox/the-external-interface/61</link>
		<comments>http://tobiscorner.floery.net/projects/openwrt/jukebox/the-external-interface/61#comments</comments>
		<pubDate>Wed, 06 Dec 2006 18:50:48 +0000</pubDate>
		<dc:creator>theFloe</dc:creator>
				<category><![CDATA[jukebox]]></category>
		<category><![CDATA[Asus]]></category>
		<category><![CDATA[LCD]]></category>
		<category><![CDATA[OpenWRT]]></category>

		<guid isPermaLink="false">http://tobiscorner.floery.net/?p=61</guid>
		<description><![CDATA[When you disassemble your unit you will find some solder pads right behind the IDE connector. This thread at www.openwrt.org shows the pinout and some pics and howto attach a UART-Chip there. The pinout: ---------- &#62; D0 D1 &#124; &#124; D2 D3 &#124; &#124; D4 D5 &#124; &#124; D6 D7 &#124; &#124; A0 A1 &#124; [...]]]></description>
			<content:encoded><![CDATA[<p>When you disassemble your unit you will find some solder pads right behind the IDE connector. <a href="http://forum.openwrt.org/viewtopic.php?id=7083" target="_blank">This thread</a> at <a href="http://www.openwrt.org" target="_blank">www.openwrt.org</a> shows the pinout and some pics and howto attach a UART-Chip there.</p>
<p><span id="more-61"></span><br />
The pinout:</p>
<table border="0">
<tbody>
<tr>
<td style="width: 50%">
<pre>----------
&gt; D0  D1 |
| D2  D3 |
| D4  D5 |
| D6  D7 |
| A0  A1 |
| A2  A3 |
|+5V /CS |
|/RD /WR |
|INT GND |
| NC  NC |
----------</pre>
</td>
<td style="width: 50%">
<pre>where:
D0 - D7: are the data lines
A0 - A3: are the address lines
+5V: +5V Supply Voltage
/CS: chip select (active low)
/RD: read strobe (avtice low)
/WR: write strobe (active low)
INT: Interrupt input
GND: Signal Ground
NC: Not connected

Note: all signals are 3.3V signals!</pre>
</td>
</tr>
</tbody>
</table>
<p>But adding a UART</p>
<blockquote><p>EXT_IF -&gt; UART -&gt; uC -&gt; Display &amp; Keys</p></blockquote>
<p>is somehow stupid. Because it could look like that:</p>
<blockquote><p>EXT_IF -&gt; Display &amp; Keys</p></blockquote>
<p>So I started reading though the kernel sources and found the UART initialisation process in sbmips.c somewhere in the arch/mips/bcm9&#8230;.. directory. But the function that where used like sb_gpioin didn&#8217;t leed me to success.</p>
<p>So i had a look at gpio.c (same directory as above). This is a kernel module for accessing GPIO (general purpose input output). Here the sb_gpioin and so functions were used again. I tried to hack some new lines there but, let us go to the next try:</p>
<p>kmod-diag: OpenWRT comes with a small module that is used to turn on/off the LED&#8217;s and to fetch some keypresses. While reading the source (diag.c) I realized the function: set_led_extif.</p>
<blockquote><p>volatile u8 *addr = (volatile u8 *) KSEG1ADDR(EXTIF_UART) + (led-&gt;gpio &amp; ~GPIO_TYPE_MASK);</p></blockquote>
<p>The adress of the external interface is between 0xBF800000 and 0xBF80000F. Only the low nibble (the 0&#215;0-0xF) will be seen at the external interface on address lines A0-A3.</p>
<blockquote><p>volatile u8 *addr = (volatile u8 *) KSEG1ADDR(EXTIF_UART) + (address &amp; 0x0F);</p></blockquote>
<p>Where address is the low nibble. Using the pointer *addr data can be read and written.</p>
<blockquote><p>*addr = 0xFF;  // write 0xFF<br />
data = *addr; // read data</p></blockquote>
<p>So that&#8217;s the trick.</p>
<p><strong>But what do /WR, /RD and /CS do?</strong></p>
<p>/WR: The slash (&#8220;/&#8221;) before the signals name tells you that the signal is active low. This means if a write transfer is handled by the bus this signals changes from HIGH to LOW before the transmission and changes back to HIGH after the transmission.</p>
<p>/RD: Same as above but signals that it&#8217;s a read instead of a write operation.</p>
<p>/CS: This signal goes low whenever an address between 0xBF800000 and 0xBF80000F is read or written. This additional signal is necassary do differ between for example 0xBF80000A and 0x2AD3456A (because only the last nibble the &#8220;A&#8221; would be seen on the address lines A0-A3).</p>
]]></content:encoded>
			<wfw:commentRss>http://tobiscorner.floery.net/projects/openwrt/jukebox/the-external-interface/61/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Running OpenWRT on ASUS WL-HDD aka Yakumo Wireless Storage</title>
		<link>http://tobiscorner.floery.net/projects/openwrt/jukebox/running-openwrt-on-asus-wl-hdd-aka-yakumo-wireless-storage/60</link>
		<comments>http://tobiscorner.floery.net/projects/openwrt/jukebox/running-openwrt-on-asus-wl-hdd-aka-yakumo-wireless-storage/60#comments</comments>
		<pubDate>Wed, 06 Dec 2006 10:10:45 +0000</pubDate>
		<dc:creator>theFloe</dc:creator>
				<category><![CDATA[jukebox]]></category>
		<category><![CDATA[Asus]]></category>
		<category><![CDATA[OpenWRT]]></category>

		<guid isPermaLink="false">http://tobiscorner.floery.net/?p=60</guid>
		<description><![CDATA[Yes it&#8217;s possible to run Linux on that small little Devices with build in harddisc, wlan, lan and 1 usb host port. For more information about OpenWRT please visit http://www.openwrt.org. After you flashed the new firmware and successfully managed to establish a secure connection to your router you can beginn with installing some extra stuff. [...]]]></description>
			<content:encoded><![CDATA[<p>Yes it&#8217;s possible to run Linux on that small little Devices with build in harddisc, wlan, lan and 1 usb host port. For more information about OpenWRT please visit <a href="http://www.openwrt.org" target="_blank">http://www.openwrt.org</a>.</p>
<p><span id="more-60"></span><br />
After you flashed the new firmware and successfully managed to establish a secure connection to your router you can beginn with installing some extra stuff. But before installing it&#8217;s a good advise to enable the HDD first so you can install some packages there (Internal Flash in only 4MB). Good Documents about that step are availabe <a href="http://wiki.openwrt.org/IdeStorageHowTo?highlight=%28storage%29" target="_blank">here</a>.<br />
Now install some extra packages:</p>
<ul>
<li>samba &#8211; for filesharing with windows</li>
<li>mpd &#8211; the music player daemon</li>
<li>kmod-soundcore_2.4.30-brcm-2_mipsel.ipk (<a href="http://nthill.free.fr/openwrt/ipkg/testing/" target="_blank">download here</a>)</li>
<li>kmod-usb-audio_2.4.30-brcm-2_mipsel.ipk (<a href="http://nthill.free.fr/openwrt/ipkg/testing/" target="_blank">download here</a>)</li>
<li>what else do you need?</li>
</ul>
<p>So now get yourself a cheap usb soundstick. I bought mine for about 12$ in a local electronic store. The stick uses the C-Media chipset (CM108) which is fully supported and working <img src='http://tobiscorner.floery.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>For mpd setup have a look at /etc/mpd.conf (self-explaining config file). To get a Client for your host system naviagte to <a href="http://www.musicpd.org/clients.shtml" target="_blank">MPD Clients</a>.</p>
<p>I have modified the NAS-Device to have a small but powerfull mp3 player. One thing that I could improve is: To start/stop playing a host-platform must be up and running to control  mpd. That must change! So I started thinking of attaching a LCD-Display and some keys&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://tobiscorner.floery.net/projects/openwrt/jukebox/running-openwrt-on-asus-wl-hdd-aka-yakumo-wireless-storage/60/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
