tag:blogger.com,1999:blog-50878924173987669292024-03-12T18:12:51.698-07:00BeagleBoard.org GSoC 2013 : Minix I2C Drivers for the BeagleBone BlackUnknownnoreply@blogger.comBlogger52125tag:blogger.com,1999:blog-5087892417398766929.post-47081704051830804992016-01-02T03:43:00.003-08:002016-01-02T03:43:31.847-08:00MINIXCon 2016 AnnouncementJust a quick note to let you know that I will be giving a talk titled <a href="http://www.minix3.org/conference/2016/program.html#Talk-9">Device Driver Development Demystified</a> at <a href="http://www.minix3.org/conference/2016/index.html">MINIXCon 2016</a>.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5087892417398766929.post-46027639580368187982014-09-16T09:38:00.002-07:002014-09-16T09:38:45.309-07:00Minix 3.3.0 ReleasedToday, Minix 3.3.0 was released. The Google Summer of Code work I did, developing i2c related drivers for the Beagle hardware, made it into that release. Check out the release information <a href="http://www.minix3.org/330.html">here</a>.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5087892417398766929.post-41523125466240441672014-01-18T07:46:00.001-08:002014-01-18T07:46:41.254-08:00Mentor giving 'MINIX3 on ARM' talk at FOSDEMJust a quick post to let you know that my primary Google Summer of Code mentor from 2013, <a href="https://fosdem.org/2014/schedule/speaker/kees_jongenburger/">Kees Jongenburger</a>, will be giving a talk at <a href="https://fosdem.org/2014/">FOSDEM 2014</a> titled "<a href="https://fosdem.org/2014/schedule/event/minix3_on_arm/">MINIX3 on ARM</a>". If you're going to be at FOSDEM, I highly recommend checking it out.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5087892417398766929.post-13180437103874806632013-09-22T07:21:00.000-07:002013-09-22T07:21:56.825-07:00Final ReportThis will be my last report as Google Summer of Code is officially wrapping up at noon tomorrow. The report will give a rundown of everything I've done during the summer and list my future plans.<br />
<br />Code merged into mainline Minix:<br />
<ul>
<li>Drivers for AM335X Peripherals: <a href="http://git.minix3.org/?p=minix.git;a=commit;h=550fdfb44349ffa54822d9aec87820baf4136763">i2c</a>, <a href="http://git.minix3.org/?p=minix.git;a=commit;h=09db2a8c6721af76a2bd81d69648cf877070a501">rtc</a>, <a href="http://git.minix3.org/?p=minix.git;a=commit;h=0a9eab0bb6a6bb2c9ab41e0e536b6e3e86bddbf5">gpio</a>, <a href="http://git.minix3.org/?p=minix.git;a=commit;h=4593804bf0e5d8725479802680d3cd582c88d0c6">padconf</a>.</li>
<li>Power Management Drivers: <a href="http://git.minix3.org/?p=minix.git;a=commit;h=d9b62047f11992d8ff3e5da25f6837e68032023b">TPS65217</a>, <a href="http://git.minix3.org/?p=minix.git;a=commit;h=bab2a34e1bcb255a4c7996135f96f0d8922e3170">TPS65950</a>.</li>
<li>Environmental Sensor Drivers: <a href="http://git.minix3.org/?p=minix.git;a=commit;h=3bdd1ae65922bd8862a0eda249d86104b4c02e1b">SHT21</a>, <a href="http://git.minix3.org/?p=minix.git;a=commit;h=471dc65ada2ab65eee09cbe7dca36dd06ea01b2b">BMP085</a>, <a href="http://git.minix3.org/?p=minix.git;a=commit;h=845aabfe6528684d732b02c973449c099ad1fbee">TSL2550</a>.</li>
<li>Miscellaneous Drivers: <a href="http://git.minix3.org/?p=minix.git;a=commit;h=526eb341447e5c83ca8035468d3a1987eca81b98">CAT24C256</a>, <a href="http://git.minix3.org/?p=minix.git;a=commit;h=1b78e86fb85a0e2b90d5b3556195302212895655">TDA19988</a>.</li>
<li>Features: <a href="http://git.minix3.org/?p=minix.git;a=commit;h=6c6123d857e45d0ed6b06cb92b8d914f0eb56730">rebooting</a>, <a href="http://git.minix3.org/?p=minix.git;a=commit;h=6d7eff80230fb4b187175de975f60c82f04cb13f">power-off</a>, <a href="http://git.minix3.org/?p=minix.git;a=commit;h=26f14d6b5df2ddb37311bda69ae4bb8d42051657">EDID reading</a>.</li>
<li>Userland: <a href="http://git.minix3.org/?p=minix.git;a=commit;h=4241cc5d98e54db1f2b0c34883cf079dcde913d1">/dev/i2c</a> and <a href="http://git.minix3.org/?p=minix.git;a=commit;h=3c59273c97a8cdd3abaee6533c83da2d371abfff">i2cscan</a> (from NetBSD), <a href="http://git.minix3.org/?p=minix.git;a=commit;h=fdbede5dcf9c853de7a8f751838394585a71dbfe">eepromread</a>.</li>
<li>Expansion Boards: <a href="http://git.minix3.org/?p=minix.git;a=commit;h=e7855d00efd4596ea20a92f711e55813d88e0d28">Weather Cape</a>.</li>
<li>Cool Demo: <a href="http://git.minix3.org/?p=minix.git;a=commit;h=60a61dffaefc807d8f265c9f8295d51ace50114c">weatherstation</a> web app.</li>
</ul>
Documentation:<br />
<ul>
<li><a href="http://wiki.minix3.org/en/DevelopersGuide/NetbootingARM">Netbooting Minix on ARM</a></li>
<li><a href="http://wiki.minix3.org/en/DevelopersGuide/I2CProtocol">The I2C protocol</a></li>
<li><a href="http://wiki.minix3.org/en/DevelopersGuide/I2CInternals">I2C Subsystem Internals</a></li>
<li><a href="http://wiki.minix3.org/en/DevelopersGuide/I2CDriverProgramming">I2C Device Driver Programming</a> </li>
<li><a href="http://wiki.minix3.org/en/DevelopersGuide/EDIDReading">EDID Reading Internals</a></li>
<li><a href="http://wiki.minix3.org/en/DevelopersGuide/RTCProtocol">The RTC protocol</a></li>
<li><a href="http://wiki.minix3.org/en/DevelopersGuide/BBCapes">Supporting BeagleBone Capes</a></li>
<li><a href="http://wiki.minix3.org/en/UsersGuide/BeagleBoneWeather">BeagleBone Weather Cape</a></li>
<li><a href="http://wiki.minix3.org/en/DevelopersGuide/TestingMinixARM">Unofficial Minix/arm Test Plan</a></li>
</ul>
Videos:<br />
<ul>
<li>Project Videos: <a href="http://www.youtube.com/watch?v=dxjaFsWYkAM">Final Summary</a>, <a href="http://www.youtube.com/watch?v=iKG73KlElU8">Intro Video</a>.</li>
<li>Demos: <a href="http://www.youtube.com/watch?v=x51NWpnesqQ">PMIC Power-Off</a>, <a href="http://www.youtube.com/watch?v=rBakaxAGRS0">RTC</a>, <a href="http://www.youtube.com/watch?v=QJEtuusBPak">weatherstation</a>, <a href="http://www.youtube.com/watch?v=Me5AUs-uMbM">gpio</a>.</li>
<li>Misc: <a href="http://www.youtube.com/watch?v=9SyjxIggdmA">gource visualization of commits</a>.</li>
</ul>
Blog Highlights:<br />
<ul>
<li>Reports: <a href="http://minix-i2c.blogspot.ca/2013/06/report-1-june-17-june-23.html">1</a>, <a href="http://minix-i2c.blogspot.ca/2013/06/report-2-june-24-june-30.html">2</a>, <a href="http://minix-i2c.blogspot.ca/2013/07/report-3-july-1-july-7.html">3</a>, <a href="http://minix-i2c.blogspot.ca/2013/07/report-4-july-8-july-14.html">4</a>, <a href="http://minix-i2c.blogspot.ca/2013/07/report-5-july-15-july-21.html">5</a>, <a href="http://minix-i2c.blogspot.ca/2013/07/report-6-july-22-july-28.html">6</a>, <a href="http://minix-i2c.blogspot.ca/2013/08/report-7-july-29-august-4.html">7</a>, <a href="http://minix-i2c.blogspot.ca/2013/08/report-8-august-5-august-11.html">8</a>, <a href="http://minix-i2c.blogspot.ca/2013/08/report-9-august-12-august-18.html">9</a>, <a href="http://minix-i2c.blogspot.ca/2013/08/report-10-august-19-august-25.html">10</a>, <a href="http://minix-i2c.blogspot.ca/2013/09/report-11-august-26-september-1.html">11</a>, <a href="http://minix-i2c.blogspot.ca/2013/09/report-12-september-2-september-8.html">12</a>, <a href="http://minix-i2c.blogspot.ca/2013/09/report-13-september-9-september-15.html">13</a>.</li>
<li>Minix/arm Tutorials: BeagleBone Black (<a href="http://minix-i2c.blogspot.ca/2013/05/minix-on-beaglebone-black-part-1.html">1</a>,<span id="goog_1008506845"></span><a href="http://www.blogger.com/">2<span id="goog_1008506846"></span></a>,<a href="http://minix-i2c.blogspot.ca/2013/05/minix-on-beaglebone-black-part-3-booting.html">3</a>), <a href="http://minix-i2c.blogspot.ca/2013/06/minix-on-beagleboard-xm.html">BeagleBoard-xM</a>, <a href="http://minix-i2c.blogspot.ca/2013/06/minix-on-linaro-qemu.html">Linaro QEMU</a>, <a href="http://minix-i2c.blogspot.ca/2013/06/netbooting-minix-on-beaglebone-black.html">netbooting</a>, <a href="http://minix-i2c.blogspot.ca/2013/06/transfering-files-over-serial-to.html">file transfer with zmodem</a>, <a href="http://minix-i2c.blogspot.ca/2013/07/beaglebone-debugging-with-openocd.html">debugging with openocd</a>. </li>
<li>Misc Tutorials: <a href="http://minix-i2c.blogspot.ca/2013/07/using-i2c-tools-with-angstrom-linux-on.html">i2c-tools on Angstrom</a>, <a href="http://minix-i2c.blogspot.ca/2013/09/building-custom-freebsd-sd-card-image.html">FreeBSD on BeagleBone Black</a>.</li>
</ul>
Future (Post-GSoC) Plans:<br />
<ul>
<li>Finish porting the frame buffer driver to AM335X.</li>
<ul>
<li>Support for the <a href="http://circuitco.com/support/index.php?title=4D_4.3_LCD_CAPE">4D 4.3 LCD CAPE</a>.</li>
<li>Support for HDMI output.</li>
</ul>
<li>pkgsrc for Minix/arm.</li>
<li>Helping test release candidates.</li>
</ul>
I really enjoyed my work this summer. The project wouldn't have been nearly as successful as it turned out to be if it weren't for the following people and organizations: BeagleBoard.org, Minix, Google, Jason Kridner, Kees Jongenburger, Frans Meulenbroeks, Ben Gras, David van Moolenbroek, and Lionel Sambuc.<br />Unknownnoreply@blogger.com4tag:blogger.com,1999:blog-5087892417398766929.post-1919680629924429742013-09-19T14:31:00.001-07:002013-09-19T14:37:56.942-07:00Project Results Video PostedI just uploaded a YouTube video summarizing the results of my project. The video is embedded below and also viewable at the following URL: <a href="http://youtu.be/dxjaFsWYkAM">http://youtu.be/dxjaFsWYkAM</a><br />
<br />
<iframe allowfullscreen="" frameborder="0" height="480" src="//www.youtube.com/embed/dxjaFsWYkAM" width="640"></iframe>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5087892417398766929.post-50361349273415623512013-09-18T07:32:00.003-07:002013-09-18T07:33:57.609-07:00Soft Pencils DownThis past Monday marked the "Soft Pencils Down" date for Google Summer of Code. This week is "a week to scrub code, write tests, improve documentation, etc.", so that's what I've been doing.<br />
<br />
Today I committed 4 patches to mainline Minix: <a href="http://git.minix3.org/?p=minix.git;a=commit;h=493e4fffc5052228eb515e63fc4b42b5f2e5e24f">tda19988: add missing blockdriver_announce() call</a>, <a href="http://git.minix3.org/?p=minix.git;a=commit;h=43471c3110dfa23abded179ee491298fd57bda23">bmp085: remove duplicate code</a>, <a href="http://git.minix3.org/?p=minix.git;a=commit;h=75bd3009d367388da31498c63a71b54eafaa2774">libi2cdriver: add functions for IC register access</a>, <a href="http://git.minix3.org/?p=minix.git;a=commit;h=cb5e2921b329d700bcdef103766c0c4ca53761b9">i2c: increase read/write timeout</a>. They're mostly clean-up and refactoring. The net result is 390 fewer lines of code and improved reliability.<br />
<br />
This week I wrote and executed a test plan for everything I've developed this summer (and more!). It can be found <a href="http://wiki.minix3.org/en/DevelopersGuide/TestingMinixARM">here</a>, on the Minix <a href="http://wiki.minix3.org/">wiki</a>. Later today I'll be reviewing all of the other documentation I wrote this summer to ensure that it's complete, accurate, and up to date. Following that, I'll be working on a final summary video and a final report.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5087892417398766929.post-55822334380192697352013-09-15T06:33:00.000-07:002013-09-15T06:33:03.812-07:00Report 13 (September 9 - September 15)This is Report #13. I plan to post these every Sunday. They will give a rundown of what I've done during the week, list any problems I had, and what I plan to do the following week. I'll be posting the reports both to the <a href="https://groups.google.com/d/forum/beagleboard-gsoc">beagle-gsoc</a> Google Group and to my <a href="http://minix-i2c.blogspot.ca/">blog</a>.<br /><br />Completed this week:<br />
<ul>
<li>Rebased against mainline Minix</li>
<li>Continued working on porting the frame buffer driver to the AM335X. It can turn on the display and back-light and do the initialization steps, but currently it's only displaying 1 non-black pixel. More debugging work remains.</li>
</ul>
Issues / Concerns / Challenges:<br />
<ul>
<li>The
frame buffer driver is more challenging than I first thought.
Additionally, the test program which draws raccoons on the frame buffer
doesn't support 24-bit color which is needed for the LCD I'm testing
with. Since there is only 1 week left and it's supposed to be for
clean-up/documentation, I'm deferring the rest of the work on the frame
buffer driver until after the clean-up / documentation is done.</li>
</ul>
Plan for next week:<br />
<ul>
<li>Code clean-up. Think about what can be improved and do it.</li>
<ul>
<li>libi2cdriver: Add common reg_read()/reg_write() functions for accessing registers on ICs.</li>
<li>TDA19988: Add a call to blockdriver_announce().</li>
</ul>
<li>Review and test all code. Make sure everything still works as expected.</li>
<li>Go over documentation. Make sure it's up to date, accurate, and complete.</li>
<li>Create a final summary video for the project.</li>
<li>Revisit the frame buffer driver.</li>
</ul>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5087892417398766929.post-12169387285276991742013-09-10T18:44:00.000-07:002013-09-10T18:44:07.451-07:00Building a custom FreeBSD SD card image for the BeagleBoneIn an effort to figure out the clocking for the LCD controller on the <a href="http://www.ti.com/am335x">AM335X</a>, I built a custom <a href="http://www.freebsd.org/">FreeBSD</a> SD card image for the <a href="http://beagleboard.org/Products/BeagleBone">BeagleBone</a>. I thought I'd share the steps I used to build the image as it isn't totally trivial. Though, the <a href="https://github.com/kientzle/crochet-freebsd">crochet-freebsd</a> scripts really do help a lot.<br />
<br />
The best host for cross building a FreeBSD image is FreeBSD. Since my main box runs <a href="http://gentoo.org/">Gentoo Linux</a>, I decided to setup a FreeBSD virtual machine under <a href="http://wiki.qemu.org/Main_Page">QEMU</a> with the latest version of FreeBSD. Here are the steps to fetch the ISO, create a disk image for the virtual machine, and run the installer:<br />
<br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">wget -O freebsd.iso ftp://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/9.2/FreeBSD-9.2-RC3-i386-disc1.iso</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"><br />qemu-img create freebsd.img 32G</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"><br />qemu-kvm -localtime -net user -net nic -m 2048 -cdrom freebsd.iso \<br /> -hda freebsd.img -boot d</span></span><br />
<br />
There isn't a whole lot to configure during the installation. The defaults should be fine. I chose the sshd option as it allowed me to easily transfer the image off of the VM later on. Once the installation of FreeBSD is complete, you can start QEMU with this command:<br />
<br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">qemu-kvm -rtc base=utc -net user,hostfwd=tcp::2222-:22 \<br /> -net nic -m 2048 -hda freebsd.img</span></span><br /><br />Log in to the virtual machine and install the dependencies (subversion, git, bash, gmake, and gsed). Then use subversion to checkout the latest sources. Finally build an ARM cross compiler:<br />
<br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">pkg_add -r subversion git bash gmake gsed</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"><br />rm -rf /usr/src && svn co http://svn.freebsd.org/base/head /usr/src</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"><br />cd /usr/src && make XDEV=arm XDEV_ARCH=armv6 xdev</span></span><br /><br />The next step is to get a copy of crochet-freebsd and u-boot. <br />
<br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">cd ~ && git clone git://github.com/kientzle/crochet-freebsd.git</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"><br />cd crochet-freebsd && ftp ftp://ftp.denx.de/pub/u-boot/u-boot-2013.04.tar.bz2</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"><br />tar xf u-boot-2013.04.tar.bz2</span></span><br />
<br />Finally, run the crochet.sh script to build the image.<br />
<br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">sh crochet.sh -b BeagleBone</span></span><br /><br />The build will take a while, especially in a VM. When it's done, there will be an SD card image under the work directory. Insert an SD card and be sure to unmount any partitions that were auto-mounted. On my Linux host, I ran these two commands to fetch the image off of the VM and write it to the SD card.<br />
<br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">scp -P 2222 root@localhost:/root/crochet-freebsd/work/*.img .</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"><br />dd if=FreeBSD-armv6-BEAGLEBONE.img of=/dev/sdb bs=1M oflag=direct</span></span><br />
<br />
<br />
<br />
<br />
That's it. Just put the card into the BeagleBone and apply power. It should boot up to a login prompt. At the prompt you can log in as root (no password).Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5087892417398766929.post-21232339685341444312013-09-08T08:35:00.000-07:002013-09-08T08:35:05.554-07:00Report 12 (September 2 - September 8)This is Report #12. I plan to post these every Sunday. They will give a rundown of what I've done during the week, list any problems I had, and what I plan to do the following week. I'll be posting the reports both to the <a href="https://groups.google.com/d/forum/beagleboard-gsoc">beagle-gsoc</a> Google Group and to my <a href="http://minix-i2c.blogspot.ca/">blog</a>.<br /><br />Completed this week:<br />
<ul>
<li>Rebased against mainline Minix.</li>
<li>Finished porting the GPIO driver to the AM335X (<a href="http://youtu.be/Me5AUs-uMbM">demo video</a>). </li>
<li>Code merged into mainline Minix this week:</li>
<ul>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=0a9eab0bb6a6bb2c9ab41e0e536b6e3e86bddbf5">gpio: port to am335x</a></li>
</ul>
<li>Continued working on porting the fb driver to the AM335X.</li>
</ul>
Issues / Concerns / Challenges:<br />
<ul>
<li>Figuring out all of the clocking for the AM335X LCDC peripheral has been very challenging, especially determining the relationship between the functional clock, module clock, Display PLL, and pixel clock and their respective divisors and multipliers. There is a BSD licensed <a href="http://svnweb.freebsd.org/base/head/sys/arm/ti/am335x/am335x_lcd.c?view=markup">LCDC driver</a> in FreeBSD that I may either re-use or add some debugging output to which would enable me to see all of the various clock values and multipliers/divisors in a working configuration.</li>
</ul>
Plan for next week:<br />
<ul>
<li>Get the Minix fb driver working with the <a href="http://circuitco.com/support/index.php?title=4D_4.3_LCD_CAPE">4D 4.3 LCD CAPE</a></li>
</ul>
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5087892417398766929.post-11290520308430401902013-09-04T05:53:00.002-07:002013-09-04T05:53:43.752-07:00Support for AM335X GPIO merged in mainline MinixThe changes to <a href="http://www.minix3.org/">Minix</a>'s GPIO library that I've been working on were merged today (<a href="http://git.minix3.org/?p=minix.git;a=commit;h=0a9eab0bb6a6bb2c9ab41e0e536b6e3e86bddbf5">commit</a>). The changes enable the use of <a href="http://en.wikipedia.org/wiki/General-purpose_input/output">GPIO</a> on the <a href="http://beagleboard.org/Products/BeagleBone">BeagleBone</a> and <a href="http://beagleboard.org/Products/BeagleBone%20Black">BeagleBone Black</a> through the gpio file system which is sort of similar to the <a href="http://www.avrfreaks.net/wiki/index.php/Documentation:Linux/GPIO#gpio-sysfs">gpio-sysfs</a> interface on Linux. I posted a <a href="http://youtu.be/Me5AUs-uMbM">demo video</a> of the code in action earlier this week.Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-5087892417398766929.post-39214134264167116982013-09-02T09:43:00.000-07:002013-09-02T09:43:20.967-07:00BeagleBone Black GPIO Demo Video PostedI just uploaded a YouTube video showing off the Minix GPIO driver I ported to the AM335X. The video is embedded below and also viewable at the following URL: <a href="http://youtu.be/Me5AUs-uMbM">http://youtu.be/Me5AUs-uMbM</a><br />
<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="480" src="//www.youtube.com/embed/Me5AUs-uMbM" width="640"></iframe>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5087892417398766929.post-67988916771895844762013-09-01T05:31:00.001-07:002013-09-01T05:31:24.932-07:00Report 11 (August 26 - September 1)This is Report #11. I plan to post these every Sunday. They will give a rundown of what I've done during the week, list any problems I had, and what I plan to do the following week. I'll be posting the reports both to the <a href="https://groups.google.com/d/forum/beagleboard-gsoc">beagle-gsoc</a> Google Group and to my <a href="http://minix-i2c.blogspot.ca/">blog</a>.<br /><br />Completed this week:<br />
<ul>
<li>Rebased against mainline Minix</li>
<li>Finished the weatherstation. Posted a <a href="http://youtu.be/QJEtuusBPak">demo video</a> to YouTube.</li>
<li>Added a kernel call for padconf on the AM335X.</li>
<li>Began porting the Minix frame buffer driver to the BeagleBone. I'm about 10% done.</li>
<li>Began porting the Minix gpio driver to the BeagleBone as it will be needed to turn on the LCD cape I'm working with. I'm in the testing phase now. Output works, still need to test input.</li>
<li>Code merged into mainline Minix this week:</li>
<ul>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=60a61dffaefc807d8f265c9f8295d51ace50114c">weatherstation: BeagleBone Weather Cape demo app.</a> </li>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=4593804bf0e5d8725479802680d3cd582c88d0c6">kernel: add padconf kernel call</a> </li>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=9f4b8dc11b1eea55c8b8df5fb99e9ece84a452e3">kernel: move do_padconf and add a test case</a> </li>
</ul>
<li>Documentation written this week:</li>
<ul>
<li><a href="http://wiki.minix3.org/en/DevelopersGuide/I2CDevInterface">I2C /dev Interface</a></li>
<li><a href="http://wiki.minix3.org/en/UsersGuide/BeagleBoneWeather">BeagleBone Weather Cape</a> </li>
<li><a href="http://wiki.minix3.org/en/DevelopersGuide/BBCapes">Supporting BeagleBone Capes</a></li>
</ul>
</ul>
Issues / Concerns / Challenges:<br />
<ul>
<li>With the gpio driver, I'm running into the limit of allowed interrupts per driver. Specifying the 6 dm37xx interrupt numbers and 8 am335x interrupt numbers in the system configuration file puts it over the limit of 8. The likely fix is to increase the per driver interrupt limit, but I'm still exploring other possible solutions.</li>
</ul>
Plan for next week:<br />
<ul>
<li>Finish testing the gpio driver, resolve interrupt limit mentioned above, and submit to mainline Minix.</li>
<li>Continue working on the frame buffer driver.</li>
</ul>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5087892417398766929.post-17361074387716204762013-08-31T07:11:00.002-07:002013-08-31T07:11:46.621-07:00padconf code mergedEarlier this week, the padconf changes I was working on were merged into mainline Minix (<a href="http://git.minix3.org/?p=minix.git;a=commit;h=4593804bf0e5d8725479802680d3cd582c88d0c6">commit</a>). The change adds a kernel call to allow userspace drivers to dynamically change the padconf at runtime. A kernel call was needed because on the AM335X, writes to the padconf registers must be done in privileged mode.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5087892417398766929.post-9251364931840099302013-08-27T12:38:00.001-07:002013-08-27T12:38:33.869-07:00New Documentation Posted and Plans for the rest of GSoCI spent part of my day today writing documentation for the Minix <a href="http://wiki.minix3.org/en/">wiki</a>. The new stuff includes a user guide for the <a href="http://wiki.minix3.org/en/UsersGuide/BeagleBoneWeather">BeagleBone Weather Cape</a>, a developer guide with instructions for <a href="http://wiki.minix3.org/en/DevelopersGuide/BBCapes">supporting new capes</a>, and a developer guide for the <a href="http://wiki.minix3.org/en/DevelopersGuide/I2CDevInterface">I2C /dev interface</a>.<br />
<br />
If you remember my <a href="http://minix-i2c.blogspot.ca/2013/05/preliminary-timeline.html">preliminary timeline</a>, you know that I'm a bit ahead of where I planned to be at this time. There are still a few more weeks left in Google Summer of Code; the firm pencils down date isn't until September 23. Before it's over, I plan to accomplish a few more tasks...<br />
<ul>
<li>libpadconf support for am335x - when developing the i2c bus driver, I found out the hard way that access to the padconf (i.e. pinmux) registers on the am335x has to be done privileged mode. As a work-around I did the configuration in the kernel at boot. I will be cleaning that up by adding a kernel call to allow the pins to be configured by user space drivers at runtime.</li>
<li>frame buffer support for BeagleBone Black - the frame buffer driver currently only supports the BealgeBoard-xM. Since I developed the Minix TDA19988 HDMI Transmitter driver and worked on part of the frame buffer driver previously, it shouldn't be too hard for me to add support for the BeagleBone Black.</li>
<li>final week tasks - in the last week I plan to read through all of the code I developed this summer, see if anything can be improved, test everything, review the documentation to make sure it's up to date and accurate, and produce a final report and summary video.</li>
</ul>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5087892417398766929.post-43111236720643826722013-08-27T05:11:00.000-07:002013-08-27T05:11:54.265-07:00weatherstation code mergedAs part of adding support for using the <a href="http://circuitco.com/support/index.php?title=BeagleBone_Weather">BeagleBone Weather</a> Cape in <a href="http://www.minix3.org/">Minix</a>, I ported the <a href="https://github.com/jadonk/bonescript/tree/master/attic">weatherstation</a> application. The task mostly involved removing the <a href="http://nodejs.org/">node.js</a> and <a href="http://socket.io/">socket.io</a> code and replacing it with a <a href="http://en.wikipedia.org/wiki/JSON">JSON</a> interface. I also added a loading spinner using <a href="http://fgnass.github.io/spin.js/">spin.js</a> and changed the units of pressure from mbar to hPa. Lastly, I updated to the latest versions of <a href="http://jquery.com/">jQuery</a> and <a href="http://processingjs.org/">Processing.js</a>.<br /><br />Since Minix doesn't have a web server in the base system, I developed a tiny web server in <a href="http://www.lua.org/">Lua</a> that implements just enough to serve the static content and generate JSON. I'm elated that this project affords me the opportunity to work at all layers of the software stack, from device drivers to web servers to HTML5 and javascript.<br /><br />Yesterday, I recorded a <a href="http://minix-i2c.blogspot.ca/2013/08/beaglebone-weather-cape-demo-video.html">video demo</a> of the application in action. The code was also merged into the Minix base system yesterday. Here's the <a href="http://git.minix3.org/?p=minix.git;a=commit;h=60a61dffaefc807d8f265c9f8295d51ace50114c">commit</a>. To use the weatherstation app, you just have to plug the board into a network (doesn't have to be Internet connected), configure the NIC with `netconf`, attach the cape, and boot the system. The cape will be automatically detected, the right drivers will be loaded, and the web server will be started. In the coming days I will be writing more formal setup instructions on the Minix <a href="http://wiki.minix3.org/">wiki</a>.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5087892417398766929.post-38911255409520220542013-08-26T10:49:00.000-07:002013-08-26T10:49:18.705-07:00BeagleBone Weather Cape Demo Video Posted<h3 class="post-title entry-title" itemprop="name">
</h3>
<div class="post-header">
</div>
<div class="post-body entry-content" id="post-body-1383624049327522764" itemprop="description articleBody">
I just uploaded a YouTube video showing off the <a href="http://circuitco.com/support/index.php?title=BeagleBone_Weather">Weather Cape</a> drivers I developed along with the weatherstation application I ported from <a href="https://github.com/jadonk/bonescript">bonescript</a>. The video is embedded below and also viewable at the following URL: <a href="http://youtu.be/QJEtuusBPak">http://youtu.be/QJEtuusBPak</a></div>
<br />
<br />
<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="480" src="//www.youtube.com/embed/QJEtuusBPak" width="640"></iframe>Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-5087892417398766929.post-41108956809382732662013-08-25T10:44:00.000-07:002013-08-25T10:44:22.770-07:00Report 10 (August 19 - August 25)This is Report #10. I plan to post these every Sunday. They will give a
rundown of what I've done during the week, list any problems I had, and
what I plan to do the following week. I'll be posting the reports both
to the <a href="https://groups.google.com/d/forum/beagleboard-gsoc">beagle-gsoc</a> Google Group and to my <a href="http://minix-i2c.blogspot.ca/">blog</a>.<br />
<br />
Completed this week:<br />
<br />
<ul>
<li>Rebased against mainline Minix</li>
<li>Tested the TSL2550 (ambient light sensor) driver.</li>
<li>Finished the SHT21 (relative humidity and temperature sensor) driver.</li>
<li>Developed a BMP085 (pressure and temperature sensor) driver.</li>
<li>Code merged into mainline Minix this week:</li>
<ul>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=845aabfe6528684d732b02c973449c099ad1fbee">tsl2550: driver for the TSL2550 light sensor</a></li>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=3bdd1ae65922bd8862a0eda249d86104b4c02e1b">sht21: driver for the SHT21 humidity & temp sensor</a></li>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=471dc65ada2ab65eee09cbe7dca36dd06ea01b2b">bmp085: driver for the BMP085 temp&pressure sensor</a></li>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=54f7991f4cba2b48813fbfa567f9f7f20496ee89">eepromread: add board info for BeagleBone Capes</a></li>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=e7855d00efd4596ea20a92f711e55813d88e0d28">rc: start drivers for attached BeagleBone Capes</a> </li>
</ul>
<li>Modified the bonescript weatherstation demo to use JSON instead of node.js / socket.io and display pressure in hPa. Here's a <a href="http://tomcort.com/gsoc/weather-json-wip.png">screenshot</a> using a static JSON file.</li>
</ul>
Issues / Concerns / Challenges:<br />
<br />
<ul>
<li>None this week :)</li>
</ul>
Plan for next week:<br />
<ul>
<li>Develop a script to read from the sensors and output JSON.</li>
<li>Integrate the weather station demo and make it trivial to setup and use.</li>
<li>Write more documentation.</li>
<ul>
<li>How to use the Minix I2C /dev interface.</li>
<li>How to develop support for additional capes.</li>
<li>How to use the BeagleBone Weather Cape in Minix.</li>
</ul>
</ul>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5087892417398766929.post-85031558438411469382013-08-23T04:31:00.000-07:002013-08-23T04:31:22.022-07:00BeagleBone Weather Cape Drivers Merged into Mainline MinixI received a <a href="http://circuitco.com/support/index.php?title=BeagleBone_Weather">BeagleBone Weather</a> Cape earlier this week. A <a href="http://beagleboard.org/cape">cape</a> is an expansion board for the <a href="http://beagleboard.org/Products/BeagleBone">BeagleBone</a> and <a href="http://beagleboard.org/Products/BeagleBone%20Black">BeagleBone Black</a>. The weather cape provides sensors for temperature, ambient light, humidity, and pressure. Combined with a BeagleBone, it allows anyone to create an Internet connected weather station.<br />
<br />
I've been working hard on drivers to support the devices on the cape in <a href="http://www.minix3.org/">Minix</a>. I developed drivers for the <a href="http://www.sensirion.com/en/products/humidity-temperature/humidity-sensor-sht21/">SHT21</a>, <a href="http://www.bosch-sensortec.com/en/homepage/products_3/environmental_sensors_1/bmp085_1/bmp085">BMP085</a>, and <a href="http://ams.com/eng/Products/Light-Sensors/Ambient-Light-Sensor-ALS/TSL2550">TSL2550</a>. The other active device on the board, a <a href="http://www.onsemi.com/PowerSolutions/product.do?id=CAT24C256">CAT24C256</a> EEPROM, was already supported from my prior work. I also updated Minix's eepromread utility. It works sort of like Linux's <a href="http://www.lm-sensors.org/wiki/man/i2cdump">i2cdump</a>, but it is also aware of a few EEPROM formats. It has a mode where it can parse and display data fields as label:value pairs. Using the updated eepromread utility, I enhanced the rc script to detect attached capes and run cape specific start-up scripts at boot which load the proper drivers.<br />
<br />
<br />
Here are the commits:<br />
<ul>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=845aabfe6528684d732b02c973449c099ad1fbee">tsl2550: driver for the TSL2550 light sensor</a></li>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=3bdd1ae65922bd8862a0eda249d86104b4c02e1b">sht21: driver for the SHT21 humidity & temp sensor</a></li>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=471dc65ada2ab65eee09cbe7dca36dd06ea01b2b">bmp085: driver for the BMP085 temp&pressure sensor</a></li>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=54f7991f4cba2b48813fbfa567f9f7f20496ee89">eepromread: add board info for BeagleBone Capes</a></li>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=e7855d00efd4596ea20a92f711e55813d88e0d28">rc: start drivers for attached BeagleBone Capes</a></li>
</ul>
To sum it up, all of the devices on the Weather Cape are now supported in Minix. If the cape is attached, the drivers are automatically started at boot. To get the sensor values, you just read from the device files of each device. The format should be simple to parse; it's fixed width and also has a delimiter (':'). Here's an example usage:<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;"># cat /dev/sht21b3s40 <br />TEMPERATURE : 29.126<br />HUMIDITY : 45.818<br /># cat /dev/bmp085b3s77 <br />TEMPERATURE : 28.5<br />PRESSURE : 100432<br /># cat /dev/tsl2550b3s39<br />ILLUMINANCE : 830<br /># </span><br />
<br />
Temperature is in <a href="http://en.wikipedia.org/wiki/Celsius">Celsius</a> (C), relative humidity is a percentage (%), pressure is in <a href="http://en.wikipedia.org/wiki/Pascal_%28unit%29">pascals</a> (Pa), and ambient light is in <a href="http://en.wikipedia.org/wiki/Lux">lux</a> (lx). There is a small difference in temperature between the two temperature sensors. I hypothesize the difference is due to some slight heating by the BeagleBone. I got the same results when I tried the board under Linux.<br />
<br />
My next steps will be to get a demo application working and properly integrated. I'm hoping to modify the <a href="http://beagleboard.org/static/bonescript/bone101/demo_weatherstation.html">bonescript Weather Station demo</a> (<a href="https://github.com/jadonk/bonescript/tree/master/attic">src</a>) to work under Minix. I plan to make a small CGI application / script to expose the sensor values via JSON. Then, I will modify the web interface to make use of the data.Unknownnoreply@blogger.com5tag:blogger.com,1999:blog-5087892417398766929.post-54963800313823340762013-08-18T05:36:00.000-07:002013-08-18T05:36:52.709-07:00Report 9 (August 12 - August 18)This is Report #9. I plan to post these every Sunday. They will give a rundown of what I've done during the week, list any problems I had, and what I plan to do the following week. I'll be posting the reports both to the <a href="https://groups.google.com/d/forum/beagleboard-gsoc">beagle-gsoc</a> Google Group and to my <a href="http://minix-i2c.blogspot.ca/">blog</a>.<br />
<br />
Completed this week:<br />
<br />
<ul>
<li>Rebased against mainline Minix</li>
<li>Cleaned up the I2C bus driver based on comments from one of my mentors, Kees. The changes have been merged (<a href="http://git.minix3.org/?p=minix.git;a=commit;h=228e84ad2a6c710591ba1d351fcbae635d17fd33">commit</a>).</li>
<li>Documented EDID Reading and the RTC device protocol on the Minix wiki (<a href="http://wiki.minix3.org/en/DevelopersGuide/EDIDReading">here</a> and <a href="http://wiki.minix3.org/en/DevelopersGuide/RTCProtocol">here</a>).</li>
<li>Developed a driver for the TSL2550 Ambient Light Sensor that comes on the WeatherCape. The code is written, and I will test it when I pick up the hardware (either tomorrow or the following day).</li>
<li>Began developing a driver for the SHT21 Humidity and Temperature Sensor IC for the WeatherCape.</li>
</ul>
<br />
Issues / Concerns / Challenges:<br />
<br />
<ul>
<li>None this week :)</li>
</ul>
<br />
Plan for next week:<br />
<br />
<ul>
<li>Test the TSL2550 driver.</li>
<li>Finish the SHT21 driver.</li>
<li>Develop a BMP085 driver.</li>
</ul>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5087892417398766929.post-54682766266238777392013-08-11T06:14:00.000-07:002013-08-11T06:14:24.688-07:00Report 8 (August 5 - August 11)This is Report #8. I plan to post these every Sunday. They will give a rundown of what I've done during the week, list any problems I had, and what I plan to do the following week. I'll be posting the reports both to the <a href="https://groups.google.com/d/forum/beagleboard-gsoc">beagle-gsoc</a> Google Group and to my <a href="http://minix-i2c.blogspot.ca/">blog</a>.<br />
<br />
Completed this week:<br />
<br />
<ul>
<li>Rebased against mainline Minix</li>
<li>Developed a driver for the power management chip on the <a href="http://beagleboard.org/Products/BeagleBoard-xM">BeagleBoard-xM</a> (<a href="http://www.ti.com/product/tps65950">TPS65950</a>) with support for the real-time clock peripheral.</li>
<li>Code merged into mainline Minix this week:</li>
<ul>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=09db2a8c6721af76a2bd81d69648cf877070a501">readclock: add support for am335x RTC</a></li>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=a9f194e58f7538ce83d10212c57e9bfa7c4bdc64">libminc: add reboot()</a></li>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=d9b62047f11992d8ff3e5da25f6837e68032023b">tps65217: driver for the TPS65217 PMIC</a></li>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=6d7eff80230fb4b187175de975f60c82f04cb13f">kernel: add support for am335x PMIC-based power-off</a></li>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=1b95bbbfe97796bc3ce61a9152082c1b32521485">pm: notify readclock of reboot(RBT_POWEROFF)</a></li>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=6c6123d857e45d0ed6b06cb92b8d914f0eb56730">kernel: implement reboot for am335x/dm37xx</a></li>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=bab2a34e1bcb255a4c7996135f96f0d8922e3170">tps65950: driver for the TPS65950 PMIC</a></li>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=7f98bdf040676e29170d96c63df66829c718310d">readclock: code clean-up, add -q, manpage updates</a></li>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=039c8db774f4ad53c88f1934b57138be66788e44">readclock.drv: add support for the TPS65950 RTC</a></li>
</ul>
<li>Produced a video demo of the real-time clock driver I developed for the <a href="http://beagleboard.org/Products/BeagleBone%20Black">BeagleBone Black</a>. Link: <a href="http://youtu.be/rBakaxAGRS0">http://youtu.be/rBakaxAGRS0</a></li>
<li>Got a positive test report for frame buffer auto-configuration using <a href="http://en.wikipedia.org/wiki/Extended_display_identification_data">EDID</a>. I submitted the changes for inclusion in mainline Minix.</li>
<li>Developed a design for adding support for the <a href="http://circuitco.com/support/index.php?title=BeagleBone_Weather">WeatherCape</a>.</li>
</ul>
<br />
Issues / Concerns / Challenges:<br />
<br />
<ul>
<li>None this week :)</li>
</ul>
<br />
Plan for next week:<br />
<br />
<ul>
<li>Write documentation for the Minix <a href="http://wiki.minix3.org/en/">wiki</a> about how EDID reading and the real time clock work.</li>
<li>Begin developing drivers for the devices on the WeatherCape: TSL2550, SHT21, and BMP085.</li>
</ul>
<br />
<div>
<br /></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5087892417398766929.post-3741328860641691962013-08-09T06:08:00.001-07:002013-08-09T06:08:58.329-07:00TPS65950 driver MergedThis week I developed a driver for the <a href="http://www.ti.com/product/tps65950">TPS65950</a> Power Management and System Companion Device commonly found on the <a href="http://beagleboard.org/Products/BeagleBoard-xM">BeagleBoard-xM</a>. I implemented a basic I2C driver for the chip with support for the real-time clock peripheral. The code was merged today. Here are the commits:<br />
<br />
<ul>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=bab2a34e1bcb255a4c7996135f96f0d8922e3170">tps65950: driver for the TPS65950 PMIC</a></li>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=7f98bdf040676e29170d96c63df66829c718310d">readclock: code clean-up, add -q, manpage updates</a></li>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=039c8db774f4ad53c88f1934b57138be66788e44">readclock.drv: add support for the TPS65950 RTC</a></li>
</ul>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5087892417398766929.post-13836240493275227642013-08-08T17:46:00.002-07:002013-08-08T17:46:14.934-07:00Real-time Clock Demo Video PostedI just uploaded a YouTube video showing off the code I developed last week to control the <a href="http://en.wikipedia.org/wiki/Real-time_clock">real-time clock</a> on the <a href="http://beagleboard.org/Products/BeagleBone%20Black">BeagleBone Black</a>. The video is embedded below and also viewable at the following URL: <a href="http://youtu.be/rBakaxAGRS0">http://youtu.be/rBakaxAGRS0</a><br />
<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="360" src="//www.youtube.com/embed/rBakaxAGRS0" width="640"></iframe>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5087892417398766929.post-7458769679341573252013-08-05T15:57:00.000-07:002013-08-05T16:00:51.340-07:00Merge MondayLots of code got merged into the main <a href="http://www.minix3.org/">Minix</a> <a href="http://git-scm.com/">git</a> <a href="http://git.minix3.org/?p=minix.git;a=summary">repository</a> today, including 6 patches from my <a href="http://www.google-melange.com/gsoc/homepage/google/gsoc2013">Google Summer of Code</a> <a href="http://beagleboard.org/project/minix-i2c/">project</a> for <a href="http://www.google-melange.com/gsoc/org/google/gsoc2013/beagle">BeagleBoard.org</a>. Included in the commits are support for the <a href="http://en.wikipedia.org/wiki/Real-time_clock">real-time clock</a> on the <a href="http://www.ti.com/am3359">AM335X</a>, a driver for the <a href="http://www.ti.com/product/tps65217c">TPS65217</a> Power Management IC, support for powering off the <a href="http://beagleboard.org/Products/BeagleBone">BeagleBone</a> / <a href="http://beagleboard.org/Products/BeagleBone%20Black">BeagleBone Black</a>, and support for rebooting the AM335X and <a href="http://processors.wiki.ti.com/index.php/Category:DM37xx">DM37XX</a>. Here's the full list of commits:<br />
<br />
<ul>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=6c6123d857e45d0ed6b06cb92b8d914f0eb56730">kernel: implement reboot for am335x/dm37xx</a></li>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=1b95bbbfe97796bc3ce61a9152082c1b32521485">pm: notify readclock of reboot(RBT_POWEROFF)</a></li>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=6d7eff80230fb4b187175de975f60c82f04cb13f">kernel: add support for am335x PMIC-based power-off</a></li>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=d9b62047f11992d8ff3e5da25f6837e68032023b">tps65217: driver for the TPS65217 PMIC</a></li>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=a9f194e58f7538ce83d10212c57e9bfa7c4bdc64">libminc: add reboot()</a></li>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=09db2a8c6721af76a2bd81d69648cf877070a501">readclock: add support for am335x RTC</a></li>
</ul>
In other news, an ethernet driver developed by <a href="http://www.jpembedded.eu/">JPEmbedded</a> for the lan8710a was also merged today; <a href="http://beagleboard.org/Products/BeagleBone">BeagleBone</a> and <a href="http://beagleboard.org/Products/BeagleBone%20Black">BeagleBone Black</a> users finally have networking support (<a href="http://wiki.minix3.org/en/DevelopersGuide/MinixOnARM#Ethernet_Configuration">configuration instructions here</a>). Since it isn't always clear what features are supported on which boards, I made a <a href="http://wiki.minix3.org/en/DevelopersGuide/MinixOnARM#Feature_Matrix">Feature Matrix</a> on the <a href="http://wiki.minix3.org/en/FrontPage">Minix Wiki</a>.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5087892417398766929.post-35479793825107372542013-08-04T06:54:00.000-07:002013-08-04T06:54:43.935-07:00Report 7 (July 29 - August 4)This is Report #7. I plan to post these every Sunday. They will give a rundown of what I've done during the week, list any problems I had, and what I plan to do the following week. I'll be posting the reports both to the <a href="https://groups.google.com/d/forum/beagleboard-gsoc">beagle-gsoc</a> Google Group and to my <a href="http://minix-i2c.blogspot.ca/">blog</a>.<br />
<br />
Completed this week:<br />
<br />
<ul>
<li>Rebased against <a href="http://git.minix3.org/?p=minix.git;a=summary">mainline</a> <a href="http://www.minix3.org/">Minix</a>.</li>
<li>Code merged into mainline Minix:</li>
<ul>
<li><a href="http://git.minix3.org/?p=minix.git;a=commit;h=1b78e86fb85a0e2b90d5b3556195302212895655">tda19988: driver for the TDA19988 HDMI Transmitter</a></li>
</ul>
<li>Finished the frame buffer driver enhancements. Put out a call for testers on my <a href="http://minix-i2c.blogspot.ca/2013/07/looking-for-beta-testers-who-have.html">blog</a> and in the <a href="https://groups.google.com/d/msg/minix3/Nb6aUsEgL7E/C41ByETCWV8J">Minix3</a> and <a href="https://groups.google.com/d/msg/beagleboard/kOc5J90XuTo/P5p_7z78EAwJ">BeagleBoard</a> Google Groups.</li>
<li>Enhanced the readclock driver to support the RTC in the AM335X.</li>
<li>Developed a driver for the <a href="http://www.ti.com/product/tps65217c">TPS65217</a> Power Management IC (PMIC) with support for safe power-off via the power button as well as `shutdown -p`.</li>
<ul>
<li>Filmed a short <a href="http://youtu.be/x51NWpnesqQ">demo video</a></li>
<li>Wrote a <a href="http://minix-i2c.blogspot.ca/2013/07/software-power-off-of-am335x-with.html">blog post</a> about how it works.</li>
</ul>
<li>Implemented rebooting for the <a href="http://beagleboard.org/Products/BeagleBone">BeagleBone</a>, <a href="http://beagleboard.org/Products/BeagleBone%20Black">BeagleBone Black</a>, and <a href="http://beagleboard.org/Products/BeagleBoard-xM">BeagleBoard-xM</a>.</li>
</ul>
<br />
Issues / Concerns / Challenges:<br />
<br />
<ul>
<li>None this week :)</li>
</ul>
<br />
Plan for next week:<br />
<br />
<ul>
<li>Submit changes for merging into mainline Minix:</li>
<ul>
<li>frame buffer driver enhancements.</li>
<li>am335x rtc driver.</li>
<li>tps65217 driver.</li>
<li>other changes related to power-off.</li>
<li>reboot support for am335x/dm37xx.</li>
</ul>
<li>Begin working on a driver for the power management chip on the BeagleBoard-xM (<a href="http://www.ti.com/product/tps65950">TPS65950</a>).</li>
</ul>
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5087892417398766929.post-42877600867478969732013-08-02T13:10:00.001-07:002013-08-02T13:10:14.186-07:00PMIC Power-Off Demo Video PostedI just uploaded a YouTube video showing off the code I developed this week to safely power-off the <a href="http://beagleboard.org/Products/BeagleBone%20Black">BeagleBone Black</a> when the power button is pressed. It also works on the original <a href="http://beagleboard.org/Products/BeagleBone">BeagleBone</a> when you run `shutdown -p`. The video is embedded below and also viewable at the following URL: <a href="http://youtu.be/x51NWpnesqQ">http://youtu.be/x51NWpnesqQ</a><br />
<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="360" src="//www.youtube.com/embed/x51NWpnesqQ" width="640"></iframe><br />
<br />Unknownnoreply@blogger.com0