
<?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>SlimLogic Ltd</title>
	<atom:link href="http://www.slimlogic.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.slimlogic.co.uk</link>
	<description>Mobile and Embedded Linux Solutions</description>
	<lastBuildDate>Tue, 22 Jan 2013 05:28:27 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5</generator>
		<item>
		<title>OpenEmbedded/Ångström Kernel Workflow</title>
		<link>http://www.slimlogic.co.uk/2011/05/openembeddedangstrom-kernel-workflow/</link>
		<comments>http://www.slimlogic.co.uk/2011/05/openembeddedangstrom-kernel-workflow/#comments</comments>
		<pubDate>Wed, 25 May 2011 10:23:12 +0000</pubDate>
		<dc:creator>xora</dc:creator>
				<category><![CDATA[General Embedded]]></category>

		<guid isPermaLink="false">http://www.slimlogic.co.uk/?p=309</guid>
		<description><![CDATA[2013-01-21: This guide was based on OE classic and some of the commands seem to have changed for oe-core, specifically the -c deploy for the kernel. I have not yet discovered the replacement command. This article is to detail the workflow I personally use when I am doing kernel development for devices supported by OE. [...]]]></description>
				<content:encoded><![CDATA[<p><strong>2013-01-21: This guide was based on OE classic and some of the commands seem to have changed for oe-core, specifically the -c deploy for the kernel. I have not yet discovered the replacement command.</strong></p>
<p>This article is to detail the workflow I personally use when I am doing kernel development for devices supported by OE. I find OE very useful for this as I can use it to build the toolchain and ultimately to control my patch tree until I am ready to send the patches upstream.</p>
<p>If you have a correctly configured machine then virtual/kernel should point to the correct kernel for your device. So in this article I use virtual/kernel to represent the present kernel. Paths will of course vary with kernel versions.</p>
<p>So I first make sure I am starting from clean</p>
<p><code>bitbake virtual/kernel -c clean</code></p>
<p>Then take the kernel as far as the configuration stage, this makes sure all patches in the metadata are applied and that the defconfig has been copied to .config and make oldconfig has been run.</p>
<p><code>bitbake virtual/kernel -c configure</code></p>
<p>Now I switch to another window where I shall be actually editing the code. I change to the temporary working directory of the kernel I am working with. This path below will change depending on kernel version or name. Kernels are always found in the machine workdir so tmp/work/$MACHINE-angstrom-linux-gnueabi/</p>
<p><code>cd tmp/work/elphel-10373-angstrom-linux-gnueabi/linux-elphel-2.6.31+2.6.32-rc8+r4+gitr2a97b06f43c616abb203f4c0eb40518c44c8d7fe-r28/</code></p>
<p>At this point I normally elect to use quilt to temporarily manage my patches so.</p>
<p><code>quilt new new-feature.patch</code></p>
<p>And to add files to this patch, I make sure to do this before I make any edits as the diff ends up being the diff from when this is first called to the current state.</p>
<p><code>quilt add driver/camera/random.c</code></p>
<p>Then load the file into my favourite editor.</p>
<p><code>vi driver/camera/random.c</code></p>
<p>I make the changes I require then it is time to create a patch from these changes so I then do.</p>
<p><code>quilt refresh</code></p>
<p>The above steps created a patches/ directory inside this is one or more patches and a file called series. series is a list of all the patches in the order they should be applied (quilt takes care of this).</p>
<p>So now I want to actually build this code to make sure it compiles so I switch back to my original terminal and issue.</p>
<p><code>bitbake virtual/kernel -c compile</code></p>
<p>If this stage fails I continue editing the files to correct the errors remebering to refresh the patches as I go. The above command can be issued repeatedly until is succeeds. When it does I then wish to make the kernel image used on the the board I am playing with so.</p>
<p><code>bitbake virtual/kernel -c deploy</code></p>
<p>I take the uImage file from tmp/deploy/images/ and send it to the board for booting however it is done in my setup. For this kernel I will write it into flash on the Elphel camera.</p>
<p>It is almost certain that this first attempt as create the new feature will have some problems. In this case I return to the terminal where I was editing the code and fix it (still not forgetting to refresh the patches). To force the compile stage to happen again I issue the command.</p>
<p><code>bitbake virtual/kernel -c compile -f</code></p>
<p>The -f means force and forces bitbake to return to that stage. When the compile is successful I can again issue the following command to deploy the image again.</p>
<p><code>bitbake virtual/kernel -c deploy</code></p>
<p>I repeat this cycle as needed until I have my new feature working as I wish.</p>
<p>When I am happy with the changes that have been made to the kernel I will have a patch file in patches/new-feature.patch that is suitable for adding directly to the OpenEmbedded meta data or which can be applied to a git tree ready for sending upstream.</p>
<p>I shall leave the git instructions to the git manual. For the case where I want to apply it to the OE meta data then I edit the original bitbake recipe, adding the patch to the SRC_URI in the form</p>
<p><code>file://new-feature.patch;patch=1</code></p>
<p>For example a finished line.</p>
<p><code>SRC_URI = "git://elphel.git.sourceforge.net/gitroot/elphel/linuxdavinci;branch=elphel-10373;protocol=git \<br />
file://new-feature.patch;patch=1 \<br />
file://defconfig"</code></p>
<p>I copy the patch into a suitable directory in the metadata. More information on how the build system searches directories for patches can be found on the OE wiki and the bitbake manual. In this case.</p>
<p><code>recipes/linux-elphel/new-feature.patch</code></p>
<p>Now I test everything is ok with a clean rebuild so.</p>
<p><code>bitbake virtual/kernel -c clean<br />
bitbake virtual/kernel<br />
</code></p>
<p>This should successfully complete the build and I should have a kernel with my new feature. If at a later date I find my new feature does not quite work as expected I can use a variation of the same process to update it. Instead of issuing the quilt new/add commands I just start editing the files in the patch again and a quilt refresh will refresh the last patch applied to the source which is most likely my new feature. If it is not or I have done this process multiple times I can use quilt pop and push to move between patches.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.slimlogic.co.uk/2011/05/openembeddedangstrom-kernel-workflow/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>OMAP3 SD Booting</title>
		<link>http://www.slimlogic.co.uk/2011/05/omap3-sd-booting/</link>
		<comments>http://www.slimlogic.co.uk/2011/05/omap3-sd-booting/#comments</comments>
		<pubDate>Wed, 25 May 2011 10:16:40 +0000</pubDate>
		<dc:creator>xora</dc:creator>
				<category><![CDATA[General Embedded]]></category>

		<guid isPermaLink="false">http://www.slimlogic.co.uk/?p=303</guid>
		<description><![CDATA[Since the instructions to format an SD card for booting with beagle/zoom2/other omap boards seems to be so complex I decided to write a script that was nice and simple to accomplish the same task. Here is my tested and working script. omap3-mkcard.sh To run this script you will require to run it as root. [...]]]></description>
				<content:encoded><![CDATA[<p>Since the instructions to format an SD card for booting with beagle/zoom2/other omap boards seems to be so complex I decided to write a script that was nice and simple to accomplish the same task.</p>
<p>Here is my tested and working script.</p>
<p><a href="http://cgit.openembedded.org/cgit.cgi/openembedded/tree/contrib/angstrom/omap3-mkcard.sh"><strong>omap3-mkcard.sh</strong></a></p>
<p>To run this script you will require to run it as root. On Ubuntu or other linux with sudo setup run the script as</p>
<blockquote><p>sudo sh omap3-mkcard.sh /dev/sdX</p></blockquote>
<p>replacing sdX with the base device name of your SD card device.</p>
<p>If your running a distribution without sudo setup then become root then run the script as</p>
<blockquote><p>su -<br />
sh omap3-mkcard.sh /dev/sdX</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.slimlogic.co.uk/2011/05/omap3-sd-booting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2011 ASoC and Embedded ALSA Conference &#8211; 4th &amp; 5th May, Edinburgh</title>
		<link>http://www.slimlogic.co.uk/2011/03/2011-asoc-and-embedded-alsa-conference-4th-5th-may-edinburgh/</link>
		<comments>http://www.slimlogic.co.uk/2011/03/2011-asoc-and-embedded-alsa-conference-4th-5th-may-edinburgh/#comments</comments>
		<pubDate>Thu, 24 Mar 2011 16:45:26 +0000</pubDate>
		<dc:creator>lrg</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.slimlogic.co.uk/?p=268</guid>
		<description><![CDATA[ASoC and Embedded ALSA conference and workshop. Edinburgh 4th and 5th May 2011.]]></description>
				<content:encoded><![CDATA[<p>We are pleased to announce that there will be an ASoC (and embedded ALSA) conference/workshop in Edinburgh this year on the 4th and 5th of May at the <a href="http://www.smwsevents.co.uk/private-venues/queen-street-edinburgh/">Scotch Malt Whisky Society</a> on Queen Street, in the centre of Edinburgh.</p>
<p><strong>Agenda -</strong> (still open to new items)</p>
<p>1) Audio DSP support. A look at the new ASoC DSP core architecture with Q &amp; A. How can we integrate and easily exploit the features of PCM and Media DSPs. What else do we need. What are the problem areas (these may be different for each vendor). How do we solve these problems. Case study with the ASoC DSP core and the OMAP4 ABE and a case study with considerations for offboard DSPs.</p>
<p>2) UCM (Use Case Manager). Intro + Q &amp; A on UCM alsa-lib and Pulseaudio. Anything missing or cumbersome to use with current code base. How are vendors doing this at the moment. How can we share the UCM configuration DB with Android audio HAL. How do we best integrate UCM support in Pulseaudio.</p>
<p>3) Android ALSA Integration. libaudio, HAL, Audio Flinger. What needs to be done here to allow Android to fully exploit features in the audio hardware. How can ALSA/ASoC provide this in a generic manner.</p>
<p>4) Runtime coefficients and algorithms. Suggest a common framework, gather requirements from vendors and design a common API to solve. Any problem areas. We may need to re-generate and tune coefficients during runtime depending on external factors and re-load.</p>
<p>5) Runtime firmware. Can this be helped with common code and how different is this for each vendor? What about latency, selection algorithms, memory footprint.</p>
<p>6) DAPM graphs. How can we get the most out of the graphs we have for DAPM. What tools are needed to exploit this. How can this be used to simplify code development and debug. What about runtime update of DAPM graph depending on firmware changes.</p>
<p>7) Power Management and QoS &#8211;  ASoC and ALSA already have good PM features, but what are we missing to fully exploit the audio hardware. e.g. DAPM is used in the OMAP4 ABE to calculate lowest clocking frequency (OPP level) for ABE depending on use case. Do other vendors need similar features that are dependent on use case.</p>
<p>How can we better support QoS to audio. Most audio hardware has low power modes sacrificing quality. An extra alsa-lib API call would allow simple configuration per PCM stream but what about devices that offer more tuning. Is a simple IOCTL all that is required here?</p>
<p>8 ) SLIMBUS &#8211; Common architecture.</p>
<p>9) Future Roadmap &#8211; what do we need for next year etc. How should this be prioritized. Who will do the work.</p>
<p>10) Group Picture before the Whisky tasting</p>
<p>11) Next Years Conference</p>
<p><strong>Local Accommodation &#8211; </strong></p>
<p>There is a variety of accommodation near the venue including, but not limited to,<br />
<a href="http://www.macdonaldhotels.co.uk/roxburghe/">The MacDonald Roxburghe Hotel</a>, at only five minutes walk from the venue this is a very good choice. The hotel is situated in the heart of the city, on Charlotte Square.</p>
<p><a href="http://www.apexhotels.co.uk/hotels/edinburgh-waterloo-place/">The Apex Waterloo Place Hotel</a>, at the east end of Princes Street, this modern hotel is perfectly placed for easy access to the conference venue as well as all the sights and tourist attractions Edinburgh has to offer.</p>
<p>And <a href="http://www.caledonianhiltonedinburgh.co.uk/">The Caledionian Hilton</a>, sits at the west end of Princes Street, still close to the conference venue, with wonderful views of the castle.</p>
<p>We have created  <a href="http://maps.google.co.uk/maps/ms?hl=en&amp;ie=UTF8&amp;msa=0&amp;msid=214292343572349149057.00049f272f6da03f95bc4&amp;ll=55.963999,-3.192902&amp;spn=0.043621,0.169086&amp;z=13">a map</a> with the location of the venue and a handful of local hotels, hopefully it will help in finding your way around.</p>
<p><strong>Travel &#8211; </strong></p>
<p>Taxis in Edinburgh are plentiful and easy to get hold of, but we also have a very good public transport network.<br />
From arriving at the airport the easiest and fastest way to get into the city centre is the <a href="http://www.flybybus.com/">Airlink Bus</a>, which departs from outside the domestic terminal every ten minutes during the day (from 0430 to 0022), and you can even buy your ticket online in advance.</p>
<p><strong>Booking &#8211; </strong></p>
<p>Places are limited so unfortunately this conference is by invitation only. If you have received an invitation and wish to book please email  <a href="mailto:jenknowles@slimlogic.co.uk">Jen Knowles</a> to confirm your place.<br />
If you have not received an invitation, but think you should have please also let us know and we will try and accommodate.</p>
<p>We already have delegates attending from companies that produce handsets, operating systems and ICs and places are now filling up fast. There is an early booking discount and bookings received before Friday 15th of April will receive the discounted rate of £240 inc. VAT otherwise the normal rate is £280 inc VAT.</p>
<p><strong>Schedule-</strong></p>
<table style="width: 100%;" border="1" cellspacing="0" cellpadding="4">
<colgroup>
<col width="45*"></col>
<col width="211*"></col>
</colgroup>
<tbody>
<tr valign="TOP">
<td width="18%"><strong>Time</strong></td>
<td width="82%"><strong>Wednesday</strong></td>
</tr>
<tr valign="TOP">
<td width="18%">9.00-9.30</td>
<td width="82%">Registration</td>
</tr>
<tr valign="TOP">
<td width="18%">9.30-10.00</td>
<td width="82%">Welcome 			and introductions</td>
</tr>
<tr valign="TOP">
<td width="18%">10.00-11.00</td>
<td width="82%">Audio DSP support 			part 1.<br />
A look at the new ASoC DSP core architecture with Q &amp; A. How can we integrate and easily exploit the features of PCM and Media DSPs. What else do we need. What are the problem areas (these may be different for each vendor). How do we solve these problems. Case study with the ASoC DSP core and the OMAP4 ABE and a case study with considerations for offboard DSPs.</td>
</tr>
<tr valign="TOP">
<td width="18%">11.00-11.15</td>
<td width="82%">Break</td>
</tr>
<tr valign="TOP">
<td width="18%">11.15-12.15</td>
<td width="82%">
<pre>Audio DSP part 2.</pre>
</td>
</tr>
<tr valign="TOP">
<td width="18%">12.15-13.15</td>
<td width="82%">Lunch</td>
</tr>
<tr valign="TOP">
<td width="18%">13.15-14.15</td>
<td width="82%">Integration 			part 1 &#8211; UCM (Use Case Manager)<br />
Intro + Q &amp; A on UCM alsa-lib and Pulseaudio. Anything missing or cumbersome to use with current code base. How are vendors doing this at the moment. How can we share the UCM configuration DB with Android audio HAL. How do we best integrate UCM support in Pulseaudio.</td>
</tr>
<tr valign="TOP">
<td width="18%">14.15-14.30</td>
<td width="82%">Break</td>
</tr>
<tr valign="TOP">
<td width="18%">14.30-15.30</td>
<td width="82%">Integration 			part2 &#8211; OS ALSA Integration.<br />
Android &#8211; libaudio, HAL, Audio Flinger. ChromeOS audio stack &#8212; likewise. What needs to be done here to allow Android to fully exploit features in the audio hardware. How can ALSA/ASoC provide this in a generic manner and backporting.</td>
</tr>
<tr valign="TOP">
<td width="18%">15.30-15.45</td>
<td width="82%">Break</td>
</tr>
<tr valign="TOP">
<td width="18%">15.45-16.45</td>
<td width="82%">DAPM 			graphs / Media controller.<br />
How can we get the most out of the graphs we have for DAPM. What tools are needed to exploit this. How can this be used to simplify code development and debug. What about runtime update of DAPM graph depending on firmware changes.</td>
</tr>
<tr valign="TOP">
<td width="18%">17.00-17.30</td>
<td width="82%">Group 			picture before Whisky Tasting</td>
</tr>
<tr valign="TOP">
<td width="18%">18.00-?</td>
<td width="82%">Dinner 			and Drinks</td>
</tr>
</tbody>
</table>
<table style="width: 100%;" border="1" cellspacing="0" cellpadding="4">
<colgroup>
<col width="45*"></col>
<col width="211*"></col>
</colgroup>
<tbody>
<tr valign="TOP">
<td width="18%"><strong>Time</strong></td>
<td width="82%"><strong>Thursday</strong></td>
</tr>
<tr valign="TOP">
<td width="18%">09.00-09.30</td>
<td width="82%">Coffee 			and Refresher, any questions from yesterday?</td>
</tr>
<tr valign="TOP">
<td width="18%">09.30-10.30</td>
<td width="82%">Power 			Management and QoS</p>
<p>ASoC 			and ALSA already have good PM features, but what are we missing to 			fully exploit the audio hardware. e.g. DAPM is used in the OMAP4 			ABE to calculate lowest clocking frequency (OPP level) for ABE 			depending on use case. Do other vendors need similar features that 			are dependent on use case.<br />
How can we better support QoS to audio. Most audio hardware has low power modes sacrificing quality. An extra alsa-lib API call would allow simple configuration per PCM stream but what about devices that offer more tuning. Is a simple IOCTL all that is required here?</td>
</tr>
<tr valign="TOP">
<td width="18%">10.30-10.45</td>
<td width="82%">Break</td>
</tr>
<tr valign="TOP">
<td width="18%">10.45-11.45</td>
<td width="82%">Runtime 			coefficients and algorithms.<br />
Suggest a common framework, gather requirements from vendors and design a common API to solve. Any problem areas. We may need to re-generate and tune coefficients during runtime depending on external factors and re-load.</td>
</tr>
<tr valign="TOP">
<td width="18%">12.00-13.00</td>
<td width="82%">Lunch</td>
</tr>
<tr valign="TOP">
<td width="18%">13.00-14.00</td>
<td width="82%">Runtime 			firmware.<br />
Can this be helped with common code and how different is this for each vendor? What about latency, selection algorithms, memory footprint.</td>
</tr>
<tr valign="TOP">
<td width="18%">14.00-14.15</td>
<td width="82%">Break</td>
</tr>
<tr valign="TOP">
<td width="18%">14.30-15.30</td>
<td width="82%">
<pre>SLIMBUS  Common architecture.</pre>
</td>
</tr>
<tr valign="TOP">
<td width="18%">15.30-15.45</td>
<td width="82%">Break</td>
</tr>
<tr valign="TOP">
<td width="18%">15.45-16.45</td>
<td width="82%">Review 			of Conference and Future Roadmap<br />
What do we need for next year, etc. How should this be prioritized. Who will do the work.</td>
</tr>
<tr valign="TOP">
<td width="18%">16.45-17.00</td>
<td width="82%">Next years conference and conference closure.</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.slimlogic.co.uk/2011/03/2011-asoc-and-embedded-alsa-conference-4th-5th-may-edinburgh/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Multithreaded ALSA capture code with overrun debug</title>
		<link>http://www.slimlogic.co.uk/2010/02/multithreaded-alsa-capture-code-with-overrun-debug/</link>
		<comments>http://www.slimlogic.co.uk/2010/02/multithreaded-alsa-capture-code-with-overrun-debug/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 14:09:47 +0000</pubDate>
		<dc:creator>lrg</dc:creator>
				<category><![CDATA[Blogs]]></category>

		<guid isPermaLink="false">http://www.slimlogic.co.uk/?p=217</guid>
		<description><![CDATA[I've been working on some ASoC multi channel capture drivers lately and was in need of a nice analysis tool to show PCM data throughput and PCM buffering information when writing to slow-ish asynchronous memory cards.]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been working on some ASoC multi channel capture drivers lately and was in need of a nice analysis tool to show PCM data throughput and PCM buffering information when writing to slow-ish asynchronous memory cards.</p>
<p>SoC memory card controllers tend to write data in asynchronous bursts and usually compete for SoC CPU IO resources with the audio subsystem. This competition for SoC IO resources between the audio and memory card subsystems can often lead to problems for audio. The two most common audio problems are :-</p>
<ol>
<li>Audio Controller FIFO overruns.</li>
<li>Audio DMA buffer overruns.</li>
</ol>
<p>Audio FIFO overruns are caused when the DMA controller cannot empty the audio FIFO before the next incoming audio PCM sample is shifted into the already full FIFO. This ultimately causes the FIFO to lose some audio PCM data and potentially also lose left+right channel alignment. FIFO overruns can be minimised by using the largest FIFO possible and by setting the FIFO DMA IRQ watermark to a value that can tolerate high latency. This should be done by the driver and may depend on number of channels capture and rate.</p>
<p>Audio DMA buffer overruns can be caused when any userspace process reading (capturing) the PCM audio data from the ALSA driver does not manage to completely read the data (from the DMA circular buffer) before it is overwritten by new new data (by the DMA). DMA buffer overruns can be mostly eliminated by making sure our capture program can read from the ALSA driver without any hinderance. This can be achieved by having separate reader and writer threads.</p>
<p>I&#8217;ve posted some example ALSA multi threaded capture code<a title="ALSA capture source code" href="http://sources.slimlogic.co.uk/misc/capture.c" target="_blank"> here</a>. It&#8217;s by no means complete and is a little rough around the edges but should be helpful to anyone debuging overrun or buffering issues. It can be built as follows:-</p>
<p><code>gcc capture.c -lasound -o capture</code></p>
<p>The program will capture audio data from the default ALSA device until it receives a CTRL-C signal where it dumps the buffering usage data.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.slimlogic.co.uk/2010/02/multithreaded-alsa-capture-code-with-overrun-debug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Website Updates</title>
		<link>http://www.slimlogic.co.uk/2010/01/website-updates/</link>
		<comments>http://www.slimlogic.co.uk/2010/01/website-updates/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 18:41:02 +0000</pubDate>
		<dc:creator>lrg</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.slimlogic.co.uk/?p=212</guid>
		<description><![CDATA[We have now updated our git web interface to use the faster <a href="http://hjemli.net/git/cgit/">cgit</a> front end. This should hopefully improve access times as cgit offers better page caching than gitweb.]]></description>
				<content:encoded><![CDATA[<p>We have now updated our git web interface to use the faster <a href="http://hjemli.net/git/cgit/">cgit</a> front end. This should hopefully improve access times as cgit offers better page caching than gitweb.</p>
<p>Additionally, we have also added a planet aggregator for our blog posts <a href="http://planet.slimlogic.co.uk/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.slimlogic.co.uk/2010/01/website-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ARM Cortex A9 Angstrom Console Image and Tool Chain</title>
		<link>http://www.slimlogic.co.uk/2010/01/arm-cortex-a9-angstrom-console-image-and-tool-chain/</link>
		<comments>http://www.slimlogic.co.uk/2010/01/arm-cortex-a9-angstrom-console-image-and-tool-chain/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 18:13:17 +0000</pubDate>
		<dc:creator>lrg</dc:creator>
				<category><![CDATA[Blogs]]></category>

		<guid isPermaLink="false">http://www.slimlogic.co.uk/?p=195</guid>
		<description><![CDATA[I've now managed to successfully build an Angstrom Linux console image and cross gcc tool chain for the ARM Cortex-A9 CPU]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve now managed to successfully build an Angstrom Linux console image and cross gcc tool chain for the ARM Cortex-A9 CPU found on some newer SoC boards. Although unfortunately I&#8217;ve not yet had a chance to test this image yet as I&#8217;m waiting on the delivery of my new Cortex A9 hardware.</p>
<p>The angstrom-2008.1.conf binutils, gcc and glibc versions used are<br />
<code><br />
PREFERRED_VERSION_glibc 		?= "2.10.1"<br />
PREFERRED_VERSION_glibc-initial 	?= "2.10.1"<br />
ANGSTROM_GCC_VERSION_armv7a              ?= "4.4.2"<br />
ANGSTROM_BINUTILS_VERSION_armv7a         ?= "2.20"<br />
</code></p>
<p>Whilst the CPU tuning for Cortex A9 is<br />
<code><br />
# Instead of using -mfpu=vfp[2] we can use -mfpu=neon to make use of gcc intrinsics[1] and vectorize loops with -ftree-vectorize[3]<br />
# [1] http://gcc.gnu.org/onlinedocs/gcc/ARM-NEON-Intrinsics.html<br />
# [2] http://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html<br />
# [3] https://support.codesourcery.com/GNUToolchain/kbentry29</p>
<p>TARGET_CC_ARCH = "-march=armv7-a -mtune=cortex-a9 -mfpu=neon -mfloat-abi=softfp"<br />
FEED_ARCH = "armv7a"<br />
PACKAGE_EXTRA_ARCHS += "armv4 armv4t armv5te armv6 armv7 armv7a"<br />
BASE_PACKAGE_ARCH = "armv7a"<br />
</code></p>
<p>All the Openembedded files required to build this too chain and image are available via git in the SlimLogic OE <a href="http://git.slimlogic.co.uk/cgi-bin/cgit.cgi/oe.git/log/?h=omap4">omap4</a> branch. </p>
<p>The repository URL is <code>git://git.slimlogic.co.uk/oe.git</code> for anyone interested in adding it as a remote.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.slimlogic.co.uk/2010/01/arm-cortex-a9-angstrom-console-image-and-tool-chain/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kernel Plumbers Conference 2009</title>
		<link>http://www.slimlogic.co.uk/2009/08/kernel-plumbers-conference-2009/</link>
		<comments>http://www.slimlogic.co.uk/2009/08/kernel-plumbers-conference-2009/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 19:00:50 +0000</pubDate>
		<dc:creator>lrg</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.slimlogic.co.uk/?p=186</guid>
		<description><![CDATA[SlimLogic will be in attendance at this years Linux kernel plumbers conference in Portland, Oregon, September 23rd - 25th, 2009. See you there at the embedded and audio tracks.]]></description>
				<content:encoded><![CDATA[<p>SlimLogic will be in attendance at this years Linux kernel plumbers <a href="http://linuxplumbersconf.org/2009/">conference</a> in Portland, Oregon, September 23rd &#8211; 25th, 2009. See you there at the embedded and audio tracks.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.slimlogic.co.uk/2009/08/kernel-plumbers-conference-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updated: Seven new Voltage regulator drivers for Linux</title>
		<link>http://www.slimlogic.co.uk/2009/08/five-new-voltage-regulator-drivers-for-linux/</link>
		<comments>http://www.slimlogic.co.uk/2009/08/five-new-voltage-regulator-drivers-for-linux/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 18:23:29 +0000</pubDate>
		<dc:creator>lrg</dc:creator>
				<category><![CDATA[Blogs]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.slimlogic.co.uk/?p=184</guid>
		<description><![CDATA[New regulator drivers for the Freescale MC13783, Motorola PCAP2, Wolfson WM831x, Texas Instruments TPS65023 and TPS6507x, Marvell 88PM8607 and ST-Ericsson AB3100 have been accepted into the Linux voltage regulator development tree...]]></description>
				<content:encoded><![CDATA[<p><strong>Updated:</strong> New regulator drivers for the Freescale MC13783, Motorola PCAP2, Wolfson WM831x, Texas Instruments TPS65023 and TPS6507x, Marvell 88PM8607 and ST-Ericsson AB3100 have been accepted into the Linux voltage regulator development tree and will be heading for the mainline kernel in the next merge window. This should approximately take place in the next month and mean the drivers will be included in Linux 2.6.32.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.slimlogic.co.uk/2009/08/five-new-voltage-regulator-drivers-for-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux Kernel Development</title>
		<link>http://www.slimlogic.co.uk/2009/04/linux-kernel-development/</link>
		<comments>http://www.slimlogic.co.uk/2009/04/linux-kernel-development/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 12:42:17 +0000</pubDate>
		<dc:creator>lrg</dc:creator>
				<category><![CDATA[Labs]]></category>

		<guid isPermaLink="false">http://www.slimlogic.co.uk/?p=173</guid>
		<description><![CDATA[<strong>SlimLogic</strong> are active embedded Linux kernel developers and work within the open source community to provide solutions for our commercial partners.....]]></description>
				<content:encoded><![CDATA[<p><strong>SlimLogic</strong> are active embedded Linux kernel developers and work within the open source community to provide solutions for our commercial partners. We specialize in bringing key embedded technologies to both Linux users and developers on time and on budget. </p>
<p>SlimLogic have a proven Linux track record and currently actively maintain the Linux kernel <a href="http://www.slimlogic.co.uk/?p=48">Voltage Regulator Subsystem</a> and the <a href="http://www.slimlogic.co.uk/?p=42">ALSA System on Chip (ASoC</a>) Audio Subsytem. </p>
<p>SlimLogic can provide 1st class embedded Linux kernel and driver development <a href="http://www.slimlogic.co.uk/?p=14">services</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.slimlogic.co.uk/2009/04/linux-kernel-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux Voltage Regulator for 2.6.30</title>
		<link>http://www.slimlogic.co.uk/2009/04/linux-voltage-regulator-updates-for-2630/</link>
		<comments>http://www.slimlogic.co.uk/2009/04/linux-voltage-regulator-updates-for-2630/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 11:37:55 +0000</pubDate>
		<dc:creator>lrg</dc:creator>
				<category><![CDATA[Blogs]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.slimlogic.co.uk/?p=167</guid>
		<description><![CDATA[The following Voltage regulator updates were accepted for Linux 2.6.30....]]></description>
				<content:encoded><![CDATA[<p>The changes for 2.6.30 include a new twl4030 regulator driver, improved regulator init_data<br />
handling, refcount fixes, some new voltage API functions and numerous minor fixes. Full change log:-</p>
<p>Adrian Hunter (1):<br />
      regulator: twl4030 VAUX3 supports 3.0V</p>
<p>Andrew Morton (1):<br />
      regulator: minor cleanup of virtual consumer</p>
<p>David Brownell (10):<br />
      regulator: minor cleanup of virtual consumer<br />
      regulator: add get_status()<br />
      regulator: enumerate voltages (v2)<br />
      regulator: get_status() grows kerneldoc<br />
      regulator: twl4030 regulators<br />
      regulator: twl4030 voltage enumeration (v2)<br />
      MMC: regulator utilities<br />
      twl4030-regulator: list more VAUX4 voltages<br />
      regulator: refcount fixes<br />
      twl4030-regulator: expose VPLL2</p>
<p>Jonathan Cameron (1):<br />
      Regulator: Push lock out of _notifier_call_chain + add voltage change event.</p>
<p>Liam Girdwood (1):<br />
      regulator: email &#8211; update email address and regulator webpage.</p>
<p>Mark Brown (16):<br />
      regulator: Pass regulator init data as explict argument when registering<br />
      regulator: Allow init data to be supplied for bq24022<br />
      regulator: Allow init_data to be passed to fixed voltage regulators<br />
      regulator: Make fixed voltage regulators visible in Kconfig<br />
      regulator: Mark attributes table for virtual regulator static<br />
      regulator: Hoist struct regulator_dev out of core to fix notifiers<br />
      regulator: Suggest use of datasheet supply or pin names for consumers<br />
      regulator: Allow regulators to set the initial operating mode<br />
      regulator: Fix get_mode() for WM835x DCDCs<br />
      regulator: Implement list_voltage() for WM8400 DCDCs and LDOs<br />
      regulator: Don&#8217;t warn on omitted voltage constraints<br />
      regulator: Implement list_voltage for WM835x LDOs and DCDCs<br />
      regulator: Allow boot_on regulators to be disabled by clients<br />
      regulator: Don&#8217;t warn if we failed to get a regulator<br />
      regulator: Don&#8217;t increment use_count for boot_on regulators<br />
      regulator: Support disabling of unused regulators by machines</p>
<p>Mike Rapoport (1):<br />
      regulator: add unset_regulator_supplies to fix regulator_unregister</p>
<p>Randy Dunlap (1):<br />
      regulator: fix header file missing kernel-doc</p>
<p><code> Documentation/ABI/testing/sysfs-class-regulator |   57 +++-<br />
 MAINTAINERS                                     |    2 +-<br />
 drivers/mfd/twl4030-core.c                      |    2 -<br />
 drivers/mmc/core/core.c                         |  100 +++++<br />
 drivers/regulator/Kconfig                       |   13 +-<br />
 drivers/regulator/Makefile                      |    1 +<br />
 drivers/regulator/bq24022.c                     |    3 +-<br />
 drivers/regulator/core.c                        |  386 ++++++++++++++----<br />
 drivers/regulator/da903x.c                      |    3 +-<br />
 drivers/regulator/fixed.c                       |    3 +-<br />
 drivers/regulator/pcf50633-regulator.c          |    3 +-<br />
 drivers/regulator/twl4030-regulator.c           |  500 +++++++++++++++++++++++<br />
 drivers/regulator/virtual.c                     |   14 +-<br />
 drivers/regulator/wm8350-regulator.c            |   57 +++-<br />
 drivers/regulator/wm8400-regulator.c            |   36 ++-<br />
 include/linux/i2c/twl4030.h                     |   47 +++<br />
 include/linux/mmc/host.h                        |    5 +<br />
 include/linux/regulator/bq24022.h               |    3 +<br />
 include/linux/regulator/consumer.h              |    6 +-<br />
 include/linux/regulator/driver.h                |   81 ++++-<br />
 include/linux/regulator/fixed.h                 |    3 +<br />
 include/linux/regulator/machine.h               |   12 +-<br />
 22 files changed, 1220 insertions(+), 117 deletions(-)<br />
 create mode 100644 drivers/regulator/twl4030-regulator.c</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.slimlogic.co.uk/2009/04/linux-voltage-regulator-updates-for-2630/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
