<?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>coreboot developer blogs</title>
	<atom:link href="http://blogs.coreboot.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.coreboot.org</link>
	<description>News from coreboot world</description>
	<lastBuildDate>Tue, 24 Apr 2012 20:52:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>coreboot at IDF 2012 Beijing</title>
		<link>http://blogs.coreboot.org/blog/2012/04/11/coreboot-demonstration-at-idf-beijin/</link>
		<comments>http://blogs.coreboot.org/blog/2012/04/11/coreboot-demonstration-at-idf-beijin/#comments</comments>
		<pubDate>Wed, 11 Apr 2012 04:57:18 +0000</pubDate>
		<dc:creator>Stefan Reinauer</dc:creator>
				<category><![CDATA[coreboot]]></category>

		<guid isPermaLink="false">http://blogs.coreboot.org/?p=2168</guid>
		<description><![CDATA[Come visit booth C26 at IDF 2012 in Beijing for a demonstration of the world&#8217;s first consumer available coreboot based laptop based on Intel&#8217;s Sandybridge processor.    ]]></description>
			<content:encoded><![CDATA[<p>Come visit booth C26 at IDF 2012 in Beijing for a demonstration of the world&#8217;s first consumer available coreboot based laptop based on Intel&#8217;s Sandybridge processor.</p>
<p><a href="http://blogs.coreboot.org/files/2012/04/IMG_20120412_090135.jpg"><img src="http://blogs.coreboot.org/files/2012/04/IMG_20120411_163345-300x225.jpg" alt="" width="300" height="225" /> <img src="http://blogs.coreboot.org/files/2012/04/IMG_20120412_090135-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p><a href="http://blogs.coreboot.org/files/2012/04/IMG_20120412_085454.jpg"><img class="alignnone size-medium wp-image-2179" src="http://blogs.coreboot.org/files/2012/04/IMG_20120412_085454-300x225.jpg" alt="" width="300" height="225" /></a> <a href="http://blogs.coreboot.org/files/2012/04/IMG_20120411_1105171.jpg"><img class="alignnone size-medium wp-image-2171" src="http://blogs.coreboot.org/files/2012/04/IMG_20120411_1105171-300x225.jpg" alt="" width="300" height="225" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.coreboot.org/blog/2012/04/11/coreboot-demonstration-at-idf-beijin/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google releases Intel Sandybridge support for coreboot</title>
		<link>http://blogs.coreboot.org/blog/2012/04/02/google-releases-sandybridge-support-for-coreboot/</link>
		<comments>http://blogs.coreboot.org/blog/2012/04/02/google-releases-sandybridge-support-for-coreboot/#comments</comments>
		<pubDate>Mon, 02 Apr 2012 13:00:02 +0000</pubDate>
		<dc:creator>Stefan Reinauer</dc:creator>
				<category><![CDATA[coreboot]]></category>

		<guid isPermaLink="false">http://blogs.coreboot.org/?p=2165</guid>
		<description><![CDATA[Exciting times! In the last couple of days, Google has released a major piece of coreboot support for the Intel Sandybridge processor and Cougar Point southbridge. This is the first time that coreboot supports the latest generation of Intel chipsets. In the next weeks more code will be released to support a number of mainboards [...]]]></description>
			<content:encoded><![CDATA[<p>Exciting times! In the last couple of days, Google has released a major piece of coreboot support for the Intel Sandybridge processor and Cougar Point southbridge. This is the first time that coreboot supports the latest generation of Intel chipsets. In the next weeks more code will be released to support a number of mainboards with this processor/chipset combination. Stay tuned!</p>
<p>Check out the article on <a href="http://www.phoronix.com/scan.php?page=news_item&amp;px=MTA4Mjg">Phoronix</a>.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.coreboot.org/blog/2012/04/02/google-releases-sandybridge-support-for-coreboot/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Flip Bits, Not Burgers &#8211; coreboot GSoC 2012 &#8211; Update</title>
		<link>http://blogs.coreboot.org/blog/2012/03/09/flip-bits-not-burgers-coreboot-gsoc-2012/</link>
		<comments>http://blogs.coreboot.org/blog/2012/03/09/flip-bits-not-burgers-coreboot-gsoc-2012/#comments</comments>
		<pubDate>Fri, 09 Mar 2012 18:02:08 +0000</pubDate>
		<dc:creator>Marc Jones</dc:creator>
				<category><![CDATA[coreboot]]></category>
		<category><![CDATA[GSoC]]></category>

		<guid isPermaLink="false">http://blogs.coreboot.org/?p=2157</guid>
		<description><![CDATA[Update - coreboot was not selected to participate in GSoC 2012. This is disappointing new for the project. I do not know why we were not selected this year. I will attend the post selection meeting to see what we can do to improve our chances of selection next year. Students, thank you for your [...]]]></description>
			<content:encoded><![CDATA[<p>Update -</p>
<p>coreboot was not selected to participate in GSoC 2012. This is<br />
disappointing new for the project. I do not know why we were not<br />
selected this year. I will attend the post selection meeting to see<br />
what we can do to improve our chances of selection next year.</p>
<p>Students, thank you for your interest in coreboot. We are happy that<br />
you are engaging with our community. I hope that you continue<br />
exploring your interest in coreboot. Please let us know what we can do<br />
to assist you in your learning.</p>
<p>Feel free to send me questions, comments, or concerns.</p>
<p>Regards,<br />
Marc</p>
<p><a href="http://google-opensource.blogspot.com/" target="_blank">http://google-opensource.blogspot.com/</a></p>
<p><span id="more-2157"></span></p>
<hr />
<p>&nbsp;</p>
<p>Flip bits, not burgers!</p>
<p>coreboot is applying for Google Summer of Code 2012. We are currently<br />
looking for mentors, project ideas, and prospective students.</p>
<p>Please visit the coreboot GSoC page: <a href="http://www.coreboot.org/GSoC" target="_blank">http://www.coreboot.org/GSoC</a></p>
<p>Students:<br />
Prospective students should join the email list and join IRC #coreboot to<br />
get familiar with the coreboot community. Please forward any potential GSoC students<br />
to the coreboot GSoC page.</p>
<p>Projects:<br />
We are interested in all types of projects that support coreboot,<br />
including payload and infrastructure projects.<br />
If you have project ideas please post them here:<br />
<a href="http://www.coreboot.org/Project_Ideas" target="_blank">http://www.coreboot.org/Project_Ideas</a></p>
<p>Mentors:<br />
We need mentors! The more qualified mentors we have registered, the<br />
more GSoC projects/students we can support. We will match students<br />
with mentors once the student proposal phase is complete.  If you might like to be<br />
a mentor, please register with google and add yourself to the mentor<br />
list on the wiki.:<br />
<a href="http://www.google-melange.com/gsoc/homepage/google/gsoc2012" target="_blank">http://www.google-melange.com/gsoc/homepage/google/gsoc2012</a></p>
<p>Please feel free to contact me by email or in IRC #coreboot if you<br />
have questions.</p>
<p>Regards,<br />
Marc</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.coreboot.org/blog/2012/03/09/flip-bits-not-burgers-coreboot-gsoc-2012/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Intel i5000 northbridge code commited</title>
		<link>http://blogs.coreboot.org/blog/2012/02/13/intel-i5000-northbridge-code-commited/</link>
		<comments>http://blogs.coreboot.org/blog/2012/02/13/intel-i5000-northbridge-code-commited/#comments</comments>
		<pubDate>Mon, 13 Feb 2012 20:40:50 +0000</pubDate>
		<dc:creator>Sven Schnelle</dc:creator>
				<category><![CDATA[coreboot]]></category>

		<guid isPermaLink="false">http://blogs.coreboot.org/?p=2132</guid>
		<description><![CDATA[I&#8217;ve started that port in November 2011, and made it finally working in January. Well, at least working on my Supermicro X7DB8 Board. Compared to the vendor BIOS which takes about 30 seconds from power-on to grub, coreboot finishes the same task in 3s. Unfortunately the VGA BIOS takes about 2 seconds to program the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve started that port in November 2011, and made it finally working in January. Well, at least working on my Supermicro X7DB8 Board. Compared to the vendor BIOS which takes about 30 seconds from power-on to grub, coreboot finishes the same task in 3s. Unfortunately the VGA BIOS takes about 2 seconds to program the register to do 80&#215;25 resolution, so eventually we end up with 5s. If you don&#8217;t need a VGA console, and prefer a serial console, you can save even these two seconds.</p>
<p>Actually i didn&#8217;t expect the port progressing so fast. One tool that was a great help was<a title="serialice" href="http://serialice.org"> serialice.</a> I used it to watch the original BIOS initializing memory. To get serialice running, all you have to do is writing a few lines of board specific C code, which initializes the serial port and some basic chipset parts required for accessing the serial port registers. On the host side, a patched QEMU is running, executing the vendor BIOS while redirecting HW accesses to the target computer. Which HW accesses are redirected can be configured by a small lua script. LUA can also be used to pretty print the output from serialice.</p>
<p><span id="more-2132"></span></p>
<p>So with a bit of hacking i had the following output from serialice:</p>
<p><code>pci_mmmo_read_config32(PCI_ADDR(0, 16, 1, 0), MC) == 0x0040000;<br />
pci_mmio_write_config32(PCI_ADDR(0, 16, 1, 0), MC, 00040000);<br />
pci_mmio_write_config8(PCI_ADDR(0, 21, 0, 0), FBDICMD0, EI);<br />
pci_mmio_read_config16(PCI_ADDR(0, 21, 0, 0), FBDISTS0) == 0x1FFF;<br />
pci_mmio_write_config8(PCI_ADDR(0, 21, 0, 0), FBDHPC, STATE_INIT);<br />
pci_mmio_read_config8(PCI_ADDR(0, 21, 0, 0), FBDST) == 0x10;<br />
amb_smbus_write_config32(0, 1, 0, 1, AMB_FBDSBCFGNXT, 0x20b1b);<br />
pci_mmio_write_config8(PCI_ADDR(0, 21, 0, 0), FBDSBTXCFG0, 0x05);<br />
pci_mmio_write_config32(PCI_ADDR(0, 21, 0, 0), FBD0IBTXPAT2EN, 00000000);<br />
pci_mmio_write_config32(PCI_ADDR(0, 21, 0, 0), FBD0IBRXPAT2EN, 00000000);<br />
pci_mmio_read_config32(PCI_ADDR(0, 21, 0, 0), FBD0IBPORTCTL) == 0x1000032;<br />
pci_mmio_write_config32(PCI_ADDR(0, 21, 0, 0), FBD0IBPORTCTL, 00000012);<br />
pci_mmio_write_config8(PCI_ADDR(0, 21, 0, 0), FBDICMD0, TS0);<br />
pci_mmio_read_config16(PCI_ADDR(0, 21, 0, 0), FBDISTS0) == 0x1FFF;<br />
pci_mmio_write_config8(PCI_ADDR(0, 21, 0, 0), FBDICMD0, TS1);<br />
pci_mmio_read_config16(PCI_ADDR(0, 21, 0, 0), FBDISTS0) == 0x1FFF;<br />
pci_mmio_read_config32(PCI_ADDR(0, 21, 0, 0), FBD0IBPORTCTL) == 0x0000016;<br />
pci_mmio_read_config32(PCI_ADDR(0, 21, 0, 0), FBD0IBPORTCTL) == 0x0000016;<br />
pci_mmio_write_config8(PCI_ADDR(0, 21, 0, 0), FBDICMD0, TS2);<br />
pci_mmio_read_config16(PCI_ADDR(0, 21, 0, 0), FBDISTS0) == 0x1FFF;<br />
pci_mmio_read_config8(PCI_ADDR(0, 21, 0, 0), FBDLVL0) == 0x14;<br />
pci_mmio_write_config8(PCI_ADDR(0, 21, 0, 0), FBDICMD0, TS2);<br />
pci_mmio_read_config16(PCI_ADDR(0, 21, 0, 0), FBDISTS0) == 0x1FFF;<br />
pci_mmio_write_config8(PCI_ADDR(0, 21, 0, 0), FBDICMD0, TS3);<br />
pci_mmio_read_config16(PCI_ADDR(0, 21, 0, 0), FBDISTS0) == 0x1FFF;<br />
pci_mmio_write_config8(PCI_ADDR(0, 21, 0, 0), FBDHPC, STATE_READY);<br />
pci_mmio_read_config8(PCI_ADDR(0, 21, 0, 0), FBDST) == 0x20;<br />
pci_mmio_write_config16(PCI_ADDR(0, 21, 0, 0), AMBPRESENT0, 0x8FFF);<br />
pci_mmio_write_config16(PCI_ADDR(0, 21, 0, 0), AMBPRESENT0, 0x8FFF);<br />
MEM:  readl AMB_ID =&gt; 0482111d *<br />
MEM: writel AMB_FERR &lt;= 00000009 *<br />
MEM: writel AMB_NERR &lt;= 00000009 *<br />
pci_mmio_write_config16(PCI_ADDR(0, 21, 0, 0), AMBPRESENT0, 0x8001);<br />
pci_mmio_read_config32(PCI_ADDR(0, 16, 1, 0), MC) == 0x0040000;<br />
pci_mmio_write_config32(PCI_ADDR(0, 16, 1, 0), MC, 40040020);</code></p>
<p>As you can see, this almost looks like C code. Even if it looks like porting coreboot to this chipset should be simple with that level of output, there where some challenges.</p>
<p>First, i5000 uses FBDIMMs. Each of the memory modules contains an AMB (Advanced Memory Buffer) in addition to the memory chips. This AMB has to be initialized and trained during the Memory initalization sequence. So you have three things to setup right to get working memory:</p>
<ul>
<li>The Northbridge (MCH in Intel&#8217;s terminologie)</li>
<li>The AMB</li>
<li>The memory chips on the module itself.</li>
</ul>
<p>The training sequence is needed to account for the high bit rate used on this communication channel: stuffing 12 Bits into one Clock cycle at 166Mhz. But even if it makes initialization more complicated, the AMB can be really helpful during development. It allows to test the Memory chips without help from the MCH, so you can test if the memory module itself is working without having to rely on MCH setup. We&#8217;re (and the vendor BIOS does as well) are using it also for clearing the Memory during initialization. But we made one difference: The vendor BIOS clears the memory modules one after another, while the coreboot code sends the command to clear the memory to all modules at the same time, and collects the status response afterwards from all modules. This has the advantage of requiring only the time the slowest module needs, instead of the sum of all modules.</p>
<p>I spent several evenings investigating why Interrupts were not working, just to discover that i accidentally reset the Busmaster Flag on the Northbridge. This had the effect of having Interrupts in Virtual Wire mode, but not in APIC mode. After fixing this nasty bug, linux was booting properly, and i even had a working keyboard and mouse <img src='http://blogs.coreboot.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Having i5000 code in coreboot, i&#8217;m aiming at supporting the following Boards in coreboot:</p>
<ul>
<li>Supermicro X7DB8(+)</li>
<li>Asus DSBF-D12 (i have this board in my Desktop  Box)</li>
</ul>
<p>There are also a lot of HP/Dell/FSC servers out there using this chipset, which might also be a nice target. Unfortunately i don&#8217;t have such hardware at home <img src='http://blogs.coreboot.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.coreboot.org/blog/2012/02/13/intel-i5000-northbridge-code-commited/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bifferboard porting</title>
		<link>http://blogs.coreboot.org/blog/2012/01/17/bifferboard-porting/</link>
		<comments>http://blogs.coreboot.org/blog/2012/01/17/bifferboard-porting/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 10:10:35 +0000</pubDate>
		<dc:creator>Rudolf Marek</dc:creator>
				<category><![CDATA[coreboot]]></category>

		<guid isPermaLink="false">http://blogs.coreboot.org/?p=2095</guid>
		<description><![CDATA[Ever heard about the bifferboard? It is a small RDC x86 SoC with 150MHz 486 compatible CPU, 8MB flash and 32MB RAM, ethernet and TTL serial line and a few GPIOs. It comes with very tiny loader called biffboot. Quite natural target for coreboot and u-boot. My flatmate purchased one but never had actually time [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.coreboot.org/files/2012/01/IMG_6655a.jpg"><img class="alignright size-thumbnail wp-image-2110" src="http://blogs.coreboot.org/files/2012/01/IMG_6655a-150x150.jpg" alt="" width="150" height="150" /></a>Ever heard about the <a href="http//bifferos.co.uk/">bifferboard</a>? It is a small <a href="http://www.rdc.com.tw">RDC x86</a> SoC with 150MHz 486 compatible CPU, 8MB flash and 32MB RAM, ethernet and TTL serial line and a few GPIOs. It comes with very tiny loader called <a href="https://sites.google.com/site/bifferboard/Home/bootloader">biffboot</a>. Quite natural target for coreboot and u-boot. My flatmate purchased one but never had actually time to do anything with that so here it comes.<span id="more-2095"></span></p>
<p>As on any other system, best would be to get some datasheets describing in great details everything about the system. Luckily Prochip, Russian company offers on <a href="ftp://ftp.prochip.ru/Support/RDC/R8610">FTP</a> quite complete SDK even with the GPL redboot sources together with JTAG tools datasheets. The board has 64Mbit flash soldered, and of course producing a little brick is always an option.</p>
<p>Internally the system has PCI bus with USB, Network and NB and SB. Checking the redboot sources it turns out that system initialization is actually quite simple. Setup few registers for memory enable timer1 for system SDRAM refresh, enable flash decoding (chipselect). On SB front, just assign IRQs to PCI routers and USB and network and possibly enable the ROMCS write decoding. Yeah and just set level/edge in ELCR <img src='http://blogs.coreboot.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  and write BIOS IRQs into the PCI registers. Plus assign few PCI BARs for EHCI/OHCI and network and set serial to internal decode and you are done. No need to worry about the CMOS because there is none.</p>
<p>I have taken the emulation/qemu-x86 as the base, because I really did not need any fancy structures, all initialization is just couple of PCI writes. It is still unknown if CPU can do CAR setup and this target uses romcc. First thingie to do was implementing a bootblock.c which enables whole decode of flash rom. Second step was to fill all init into the romstage.c. Third step was to fill the PCI BIOS IRQs in ramstage as well as filling the system resources like maximum RAM size and PCI MMIO and IO regions.</p>
<p>Ready to flash and boot. Flash but how? The biffboot enables flashing everything except the last 64KB of itself and flashrom has no support for this system (yet). Also I did not want to have a pernament little brick and the bifferboard has a JTAG connector and schematics for the JTAG, which is just buffered Xilinx parallel cable. You can even buy a debrick set (hw + sw) on the bifferboard page for 20 quids, but it would mean to purchase it separately and nearly with the price of whole system.</p>
<p>I did a soldering and produced a JTAG adapter which agreed with schematics and was on purely software side again. The RDC Loader is a Windows application which can be used to flash stuff using the JTAG. My flash was not listed, but there were some similar which gave me hope that could flash it. Now what? I examined the RDC DLL and found out that in Windows 98 version it was doing straight port 0&#215;378 IO. Great time to write a short iopl(3) / ioperm wrapper and run the wine emulator on second coreboot board with parallel port.</p>
<p>With everything ready there was a time similar to big bang, the first try of everything. First connect JTAG and double check all wires, then check again, because if magic smoke escapes out of the chips (which was added there during manufacture process apparently) the magic would be broken and would leave me very sad. Now power on, magic stays inside chips.</p>
<p>Now run the wine wrapper with the application. It does not complain about unconnected JTAG&#8230; scan the PCI bus&#8230; oh it works! A flashing time! It takes long to move a progress bar but still something is happening. Ah it worked too! Now do reset and run&#8230; Yes coreboot is here, and it seems to die quite at the end where all tables are being generated.</p>
<p>It prints just couple of strange letters as last message. I knew what it was. Of course it was just GDB protocol. I seem to get some exception and we still have GDB enabled as default. I really need to push a change to turn it off to receive human readable exception at first. Now re-flash with gdb disabled and check again. Exception 6, unknown opcode 0f a2.</p>
<p>Examing the fail address with objdump we see the culprit immediately. It is the cpuid in the SMBios tables generator (CPU table). Yeah I believe not many 486 had CPUID, lets disable quickly the SmBios tables and re-flash. Boots gets a bit further and it seems to die inside the SeaBIOS.</p>
<p>Now what? I checked the resources and realized that I forgot to add flash resource thus making PCI devices memory BARs overlap flash memory. Same happened for IO ports which overlaped legacy resources, but it still hung. Luckily the JTAG is also an integrated debugger. There was still couple of places in SeaBIOS with CPUID stuff, and one particular hidden in the header which took me some time to find. But it still does not work.</p>
<p>Failing instruction 0f 31 RDTSC. Now it gets interesting. SeaBIOS seems to calibarate the TSC using timer2 and uses TSC for the timekeeping. Rest of the evening is spent to rewrite this using just low accuracy timer1. Late in the night I got &#8220;No bootable devices found&#8221; which sounds as the best error message I could get! (Yeah Sven likes that too).</p>
<p>Next evening it is a boot Linux time. I want to boot from USB stick (which is not possible from biffboot) using syslinux to boot some custom compiled kernel. SeaBIOS loads syslinux, it loads kernel and&#8230; nothing.</p>
<p>JTAG is quite handy&#8230; HLT quite early not even running in 0xC0000000 range. I forgot to mention that I tried to load bzImage, most likely it fails in that pre-boot stage. I study the kernel sources and realize even if I enabled early printk&#8217;s they go to INT 10H which means I cannot see them.</p>
<p>I quickly hack the function to send it to serial and got this back:</p>
<blockquote><p>Unable to boot &#8211; please use a kernel appropriate to your CPU.</p></blockquote>
<p>Hm even if cross compiled with ARCH=i386 the menuconfig default was i586. Fix it. Boot again. Linux complains about missing FPU. Oh really a CPU from the past. Turn on FPU emulation in kernel boot again. And nothing again. JTAG came handy again and it fails with invalid opcode again. This time a CMOV instruction. It seems a misc.c file misses -march=i386 and gcc is using CMOV there. After fixing this I got kernel to boot ending with kernel panic.</p>
<p>Something wrong with interrupts. Linux complains that it is unable to route IRQ for OHCI/EHCI and I intended to use USB as rootfs. After short research I realize coreboot writes 0 to PCI 0x3c (BIOS IRQ reg) and I really need to call assign_pci_irq in the ramstage.</p>
<p>After fixing this system finally boots. Sunday trip to visit the parents is partly a flashrom time too, making myself present in living room and not watching TV and hacking flashrom instead (during evening hours again). Afternoon spent fixing sisters car central lock system and fixing unrelated parents radio remote controller. Yeah hacking time all around the clock. Back to flashrom again.</p>
<p>Rule #1 make sure your datasheet matches your chip. I googled the datasheet and found some different one and I even check if the chip&#8217;s name under a sticker on board matches. After some time in desperate move I google for full chip name again with last &#8220;B&#8221; included.</p>
<p>It turns out that the B/T variant of EN29LV640 is something completely different. The chip has a standard JEDEC command set but requires word access (16 bit) for that. The 8bit mode with BYTE# signal grounded is used on bifferboard. The chip probing worked with 8 bit mode and erase too. I even managed to erase the chip. But unable to program anything. The JEDEC toggle bit toggle for eternity and examining the dumps I managed to write first nibble of the byte programmed and also second byte is zero&#8230; It sounds fishy but I tried many different things but still no chip programming. Late in the evening I found some kernel module which has biffboot config space writes and they use the 8bit sequence, BUT the programming is in WORD mode, programming two bytes at one.</p>
<p>Fixing flashrom. Verified. Fixing flashrom again, because this &#8220;B&#8221; variant has non-uniform sectors at the start of the flash.</p>
<p>Now what? Xvilka is working on Vortex86 which is much faster x86 SoC from DMP, but it seems that it has very similar NB and SB. Most likely merging a code is a option here. As for the SeaBIOS programming TSC emulation using timer2 could produce better timming functions even without TSC (task for near future maybe).</p>
<p>As the ultimate goal, maybe reviving the coreboot + u-boot from last April would be nice option here.</p>
<p><a href="http://assembler.cz/biff">More pictures and bootlog.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.coreboot.org/blog/2012/01/17/bifferboard-porting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coreboot in shipping products</title>
		<link>http://blogs.coreboot.org/blog/2011/09/12/coreboot-in-shipping-products/</link>
		<comments>http://blogs.coreboot.org/blog/2011/09/12/coreboot-in-shipping-products/#comments</comments>
		<pubDate>Mon, 12 Sep 2011 17:19:46 +0000</pubDate>
		<dc:creator>Marc Jones</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[coreboot]]></category>
		<category><![CDATA[embedded]]></category>
		<category><![CDATA[firmware]]></category>

		<guid isPermaLink="false">http://blogs.coreboot.org/?p=2047</guid>
		<description><![CDATA[We are starting to see coreboot in more shipping products this summer and I expect even more in the fall. The exciting thing is that coreboot is becoming a piece of technology that vendors are starting to advertise. A recent example is the Portwell PCS-8277: PORTWELL ANNOUNCES REVOLUTIONARY IN-VEHICLE PC WITH THE BOOT SPEED OF AN [...]]]></description>
			<content:encoded><![CDATA[<p>We are starting to see coreboot in more shipping products this summer and I expect even more in the fall. The exciting thing is that coreboot is becoming a piece of technology that vendors are starting to advertise. A recent example is the <a href="http://www.portwell.com.br/products/detail.asp?CUSTCHAR1=PCS-8277">Portwell PCS-8277</a>:</p>
<blockquote><p><a href="http://www.portwell.com.br/productnews/PCS-8277_PR.htm">PORTWELL ANNOUNCES REVOLUTIONARY IN-VEHICLE PC<br />
WITH THE BOOT SPEED OF AN APPLIANCE New PCS-8277 telematics system based on Coreboot® technology with HD graphics processing engine </a></p></blockquote>
<p>I think that we are starting to see vendors and customers becoming more knowledgeable about what is going into their products and how coreboot is an advantage in many situations. I hope to see more announcements in the coming months.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.coreboot.org/blog/2011/09/12/coreboot-in-shipping-products/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>GSoC: Spice Payload report</title>
		<link>http://blogs.coreboot.org/blog/2011/08/24/gsoc-spice-payload-report/</link>
		<comments>http://blogs.coreboot.org/blog/2011/08/24/gsoc-spice-payload-report/#comments</comments>
		<pubDate>Wed, 24 Aug 2011 15:02:08 +0000</pubDate>
		<dc:creator>Dorileo</dc:creator>
				<category><![CDATA[GSoC]]></category>
		<category><![CDATA[coreboot]]></category>
		<category><![CDATA[GSoC Update]]></category>
		<category><![CDATA[openembedded]]></category>
		<category><![CDATA[payload]]></category>
		<category><![CDATA[spice]]></category>

		<guid isPermaLink="false">http://blogs.coreboot.org/?p=2031</guid>
		<description><![CDATA[Yeah! it`s came the time to write another report on GSoC status. In fact I`ve &#8211; intentionally &#8211; postponed it for quite some time and it doesn`t exactly mean there was a lack of informative emails between me and Marc(my mentor). The need to finish some stuffs justifies &#8211; in some ways &#8211; the aforementioned [...]]]></description>
			<content:encoded><![CDATA[<p>Yeah! it`s came the time to write another report on GSoC status. In fact I`ve &#8211; intentionally &#8211; postponed it for quite some time and it doesn`t exactly mean there was a lack of informative emails between me and Marc(my mentor).</p>
<p>The need to finish some stuffs justifies &#8211; in some ways &#8211; the aforementioned delay. I understand you don`t need to report you aren`t done with something, a mail stating &#8220;I`m not done yet&#8221; would be enough - well, maybe not anyway&#8230;</p>
<h3>OpenEmbedded Journey</h3>
<p>With the second half of my project I jumped in the <a href="http://openembedded.org/">OpenEmbedded</a> ecosystem and believe it, I`ve loved to get in touch with.</p>
<p>Putting my hands on OE is something I`ve planned for some time, I just hadn`t had the time to do so.</p>
<p>OpenEmbedded is something amazing, and it does what I realized years ago when I worked with <a href="http://www.gentoo.org/">gentoo</a>. I always saw gentoo as a great meta-distribution, something you can bend and forge as you need &#8211; customizing it according to your needs.</p>
<p>Despite all the conceptual things touching OE wasn`t as easy as I initially tought it would. <a href="http://bitbake.berlios.de/">Bitbake</a>(the great maestro behind OE) was <a href="http://bitbake.berlios.de/manual/ch01.html#id868668">designed with portage in mind</a> and theoretically it was I good advantaged to me &#8211; look, theoretically.</p>
<p>Nothing is exactly smooth as you plan, you`ll always get troubles in the way &#8211; with OE wasn`t an exception.</p>
<h3>OE transitions and yocto project</h3>
<p>One of the biggest problems I faced was mainly due the transition the OE project is getting through. The docs(Getting started wiki page for example) are out dated and you get conducted by the old code base, and trust me, it`s not a good way to get started.</p>
<p>My first two weeks was full of crazy hacks, searching for old tarballs, setting up local source repositories, doing everything I could to make that thing to work &#8211; it was a bad race doing my best to proof the howtos.</p>
<p>The true is OpenEnbedded has moved to what we name bblayer, it`s a bitbake feature to ease to extend a base system. The intention(as I see) is to keep a minimal, clean and stable set of core packages and yet make it possible to &#8220;third party&#8221; vendors to append it to fit their needs.</p>
<p>The <a href="http://www.yoctoproject.org/">yocto project</a> has extensively used OpenEmbedded as their base system, both the projects have exchanged a lot and sometimes you loose yourself if you`re touching one or the other. One of the tools provided by yocto project is <a href="http://www.yoctoproject.org/projects/poky">Poky</a> &#8211; which`s actually an OE layer.</p>
<p>There isn`t plenty of docs describing how the bblayer and bbappend work &#8211; the bitbake docs aren`t much precise and the OpenEmbedded barely mention it, yocto just describes how it`s fit within poky(or something close to that).</p>
<p>I would really like to recommend newcomers to first play with poky then later consider starting a new third-party layer.</p>
<h3>The project as a bblayer</h3>
<p>A third party layer is what best fits my project, not exactly a full yocto/poky layer, maybe and extension of it or not even that but an own layer itself, to accomplish that I had to experiment a lot, setting the environment up and watching how everything get together.</p>
<h3>Packaging</h3>
<p>After many years not touching a single ebuild and having never touched a bb package I jumped in the task to pack some components. The spice client has a bunch of dependencies &#8211; of course, I hadn`t to pack everything myself, a great number of things were already done.</p>
<p>Among the things that got me longer then I expected was cyrus-sasl, the old OE tree had it packaged but it was an old version &#8211; should I mention it was broken as well?</p>
<p>So, bringing the recipes wouldn`t be enough but I would have to fix things up, once fixing stuffs was the only alternative I decided to upgrade it to the latest version 2.1.31.</p>
<p>Anyway, it brought me a lot of work to pick patches to fix its building and fixing what hadn`t got fixed already. My final PR was 177 what means I came through 177 builds, debugging, testing and working everything around.</p>
<p>The cyrus-sasl code has a bug introduced after 2.1.21, it wasn`t possible to build it &#8211;with-static. I did an ugly and ridiculous fix. Everything I found out there &#8211; searching the internet &#8211; was even uglier. Suggestions to run make twice was one of them. The build system was kind of messed up.</p>
<p>The other packages weren`t so painful and I could quickly move forward.</p>
<h3>Slimming the image</h3>
<p>I still have to slim few things, I need to cut some X11 packages I included in the image, append the yocto kernel with my own .config and write a small shell script(or something smarter than that) to launch the spice client.</p>
<h3>BuildRom</h3>
<p>The first thing I worked on in the beginning of my project was buildRom, I wanted to bring all the tasks involved on building the OS image and bios/firmware into to it. But, with my move to OE for building the OS image I realized I could go the reversed way and bring the tasks for building the bios/firmware to OE.</p>
<p>Now I`ve manually packaged the things but have already started to write bbclass to controll bios/firmware + image building and packaging them. I see it as a second generation to BuildRom project, a OE layer with coreboot bb packages and recipes plus the needed bb classes.</p>
<h3>Conclusion</h3>
<p>After the great effort I had, getting in touch by the first time with OE, I feel comfortable to say it was a good experience to me, I realized many possibilities. I`m really happy with everything I learned on the path and I`m sure I still have a lot to contribute to Coreboot and OE as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.coreboot.org/blog/2011/08/24/gsoc-spice-payload-report/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>GSoC 2011: flashrom part 5 – Dear Intel</title>
		<link>http://blogs.coreboot.org/blog/2011/08/17/gsoc-2011-flashrom-part-5-%e2%80%93-dear-intel/</link>
		<comments>http://blogs.coreboot.org/blog/2011/08/17/gsoc-2011-flashrom-part-5-%e2%80%93-dear-intel/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 13:15:32 +0000</pubDate>
		<dc:creator>stefanct</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[flashrom]]></category>
		<category><![CDATA[GSoC]]></category>

		<guid isPermaLink="false">http://blogs.coreboot.org/?p=2017</guid>
		<description><![CDATA[As mentioned in my GSoC recap, Carl-Daniel and i have sent a letter to Intel to get more information regarding the descriptor section and unlocking the ME flash protection (my official GSoC main project). It was sent about 3 weeks ago (2011-07-29). No reply was received so far. This is the whole message we have [...]]]></description>
			<content:encoded><![CDATA[<p>As mentioned in my <a title="GSoC 2011: flashrom part 4 – recap" href="http://blogs.coreboot.org/blog/2011/08/13/gsoc-2011-flashrom-part-4-recap/">GSoC recap</a>, Carl-Daniel and i have sent a letter to Intel to get more information regarding the descriptor section and unlocking the ME flash protection (my official GSoC main project). It was sent about 3 weeks ago (2011-07-29). No reply was received so far. This is the whole message we have sent them:<span id="more-2017"></span></p>
<blockquote><p>Dear Intel employee,</p>
<p>I&#8217;m sorry to trouble you, especially because this mail is addressed to many people, sorry.</p>
<p>You have been addressed, because you were involved in doing related Linux kernel development or had already direct contact with Carl-Daniel Hailfinger, the main author of flashrom at FOSDEM and may have a good understanding of our situation regarding development and access to information and datasheets from Intel.</p>
<p>I am one of the maintainers of flashrom (http://www.flashrom.org/), a utility for identifying, reading, writing and erasing flash chips via various programmers including a number of Intel&#8217;s chipsets. Our tool is used by some computer vendors (e.g. Google, General Electric, Bull, Packard Bell) internally and it is also given to their customers for updating the firmware/BIOS.</p>
<p>1) With the release of the ICH8 (82801H*) a new feature named Soft Straps was introduced. The ICH8 datasheet describes it like this: &#8220;Soft Straps are used to configure specific functions within the [chipset] very early in the boot process before BIOS or software intervention.&#8221; As part of the SPI chapter the datasheet also lists the meaning of those bits which include switches to disable functional blocks or reroute various pins. In later chipset series they were no longer published publicly, but only in confidential documents (SPI Programming Guides).</p>
<p>I am currently working on dumping these in an open source utility and would like to add parsing and printing human readable interpretations. Therefore i would like to ask for the necessary documentation that lists the meaning of the Soft Straps of all Intel PC chipsets since ICH8.</p>
<p>2) Another thing i am working on is enabling flashrom to update the firmware of modern Intel platforms. This is currently often impossible because there are some protections against unintentional or malicious modifications. This has the drawback that there is no easy and safe way to update Intel based mainboards on operating systems other than DOS(!) and Windows. We know that is possible to tell the ME via HECI/MEI to suspend its write activities and unlock its region to allow the main processor updating it, but we do not know the details of such a communication transaction (neither the MEI address of the &#8220;unlocking service&#8221; nor the content of the message nor the expected reply). We also do not know how to proceed after that and if the unlocking is reflected in the &#8220;protected range&#8221; registers. It is also not known to us how to unlock other regions (the descriptor region itself is often configured r/o&#8230; which may not be a problem if it should never be updated?). Any information regarding unlocking flash regions would be appreciated.</p>
<p>Thank you.</p>
<p>&#8211;<br />
Sincerely, Stefan Tauner and Carl-Daniel Hailfinger</p></blockquote>
<p>It is of course easy for small <a href="http://www.gnu.org/philosophy/free-sw.html">FOSS</a> projects to bash big companies for subjectively experienced injustices, but Intel—although always emphasizing there open source engagement—really is not as open as it would be needed to have good flashrom support on their platforms. This is not only a problem for long-haired free software enthusiasts (like myself), but also for businesses. Just yesterday we have received another <a href="http://www.flashrom.org/pipermail/flashrom/2011-August/007598.html">mail</a> from an employee of a multinational major corporation (over 250k employees) that asked for our help, because they would prefer to use flashrom instead of Intel&#8217;s DOS/Windows tool to develop their <a href="http://en.wikipedia.org/wiki/Cougar_Point#Cougar_Point">Cougar Point</a> based devices. The secretiveness does harm Intel, us and humanity as a whole. I rest my case. <img src='http://blogs.coreboot.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.coreboot.org/blog/2011/08/17/gsoc-2011-flashrom-part-5-%e2%80%93-dear-intel/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GSoC 2011: flashrom part 4 &#8211; recap</title>
		<link>http://blogs.coreboot.org/blog/2011/08/13/gsoc-2011-flashrom-part-4-recap/</link>
		<comments>http://blogs.coreboot.org/blog/2011/08/13/gsoc-2011-flashrom-part-4-recap/#comments</comments>
		<pubDate>Sat, 13 Aug 2011 01:54:06 +0000</pubDate>
		<dc:creator>stefanct</dc:creator>
				<category><![CDATA[flashrom]]></category>
		<category><![CDATA[GSoC]]></category>

		<guid isPermaLink="false">http://blogs.coreboot.org/?p=2008</guid>
		<description><![CDATA[Final evaluation deadline for this year&#8217;s GSoC is in 2 weeks. Most of what i have written in my midterm evaluation is still valid. We have formulated and sent an email to various Intel representatives in the hope to get at least a few hints regarding ME unlocking (and descriptor semantics). I had the idea [...]]]></description>
			<content:encoded><![CDATA[<p>Final evaluation deadline for this year&#8217;s GSoC is in 2 weeks. Most of what i have written in my <a title="GSoC 2011: flashrom part 3 – Midterm Evaluation" href="http://blogs.coreboot.org/blog/2011/07/15/gsoc-2011-flashrom-part-3-midterm-evaluation/">midterm evaluation</a> is still valid.</p>
<p>We have formulated and sent an email to various Intel representatives in the hope to get at least a few hints regarding ME unlocking (and descriptor semantics). I had the idea to send them a mail earlier, but thought it is an ludicrous attempt from all i have gathered regarding Intel&#8217;s cooperation with coreboot. Carl-Daniel suggested giving it a go anyway and it provided me a good excuse to not work on REing until we get an answer. <em>Of course</em> we have not received any reply to date <img src='http://blogs.coreboot.org/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>So i think it is quite clear that my main GSoC project will fail to be delivered on time. But i won&#8217;t vanish after GSoC and i still plan to implement ME unlocking eventually.</p>
<p>What&#8217;s up besides the GSoC project?</p>
<p>The integration of my patches still lacks reviewing power. Everyone but Carl-Daniel seems to be not much interested in my work and he has not the time to look at everything i produce. Right now flashrom has about <a href="http://patchwork.coreboot.org/project/flashrom/list/">150 patches requiring some action</a> to merge them. Thereof are <a href="http://patchwork.coreboot.org/project/flashrom/list/?submitter=1039&amp;state=1&amp;archive=both">41 from me (TBH there is a number of patches that are just rebased and improved a little bit)</a> and <a href="http://patchwork.coreboot.org/project/flashrom/list/?submitter=12&amp;state=1&amp;archive=both">37 from Carl-Daniel</a>. meh.</p>
<p>With the help of Florian &#8216;florz&#8217; Zumbiehl i was also able to find, fix and report a <a href="https://savannah.nongnu.org/bugs/index.php?33978">bug in dmidecode</a> which has direct influence on flashrom. Due to an error in decoding the chassis type in dmidecode, flashrom falsely declares some boards to be mobile devices, which makes it shout a big warning at the user unnecessarily.</p>
<p>I&#8217;ve been also working on rebasing, improving and reviewing (very) old patches of others whose discussions just stopped (for example when contributors did not send improvements). My hope is that this will help us shorting the long patch queue, but i doubt that it will suffice <img src='http://blogs.coreboot.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>To conclude (or begin) my recap of my GSoC involvement this year, i&#8217;d like to first thank google for doing this. This sounds quite pathetic, especially if one knows me better. But it really got me involved in FOSS development with the intensity i wished for (by providing a monetary motivation to get really started). There was some involvement in the past (bug reports and fixes etc.), but flashrom was apparently a nice target to get more involved and learn a lot, not so much about REing and technical details (as i expected and hoped in the beginning), but regarding project management in FOSS (my own proposal, but also flashrom and its patch queue/processing and &#8220;upper management&#8217;s&#8221; free time constraints), interacting with contributers and users, and mastering git (the latter is quite ironical because flashrom does not use it (yet)). It&#8217;s a bit sad, that flashrom does not have more contributers (especially reviewers). This is obviously a problem and it might be the time to discuss the development process as a whole. The question is with whom should i discuss this if no one is there <img src='http://blogs.coreboot.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Although my formal project will not be finished on time, i think i have served the flashrom project well and from the feedback i received so far, Carl-Daniel is also happy with my work. So i think i can declare it as successful after all and i would like to thank everyone involved (so far).</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.coreboot.org/blog/2011/08/13/gsoc-2011-flashrom-part-4-recap/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>GSoC 2011: little trip</title>
		<link>http://blogs.coreboot.org/blog/2011/08/10/gsoc-2011-little-trip/</link>
		<comments>http://blogs.coreboot.org/blog/2011/08/10/gsoc-2011-little-trip/#comments</comments>
		<pubDate>Wed, 10 Aug 2011 22:56:09 +0000</pubDate>
		<dc:creator>Tadas Slotkus</dc:creator>
				<category><![CDATA[coreboot]]></category>

		<guid isPermaLink="false">http://blogs.coreboot.org/?p=1998</guid>
		<description><![CDATA[This might be not a good idea, but I had got bored with my project not going well, so I eventually got on trip, through &#8220;FOSS and friends&#8221; I have had some headache with nouveau driver, till I understood that deprecated version was installed. Tried to install a package, which got me in a geometric [...]]]></description>
			<content:encoded><![CDATA[<p>This might be not a good idea, but I had got bored with my project not going well, so I eventually got on trip, through &#8220;FOSS and friends&#8221; <img src='http://blogs.coreboot.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  I have had some headache with nouveau driver, till I understood that deprecated version was installed. Tried to install a package, which got me in a geometric progression of required dependency packages <img src='http://blogs.coreboot.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  I have filed a bug for LibreOffice, and got one future TODO for &#8220;reverse enginering&#8221; how exactly CUPS works with one of the label printers we have here as it needs a slight modification. The best thing I have done is started reading a book and building &#8220;Linux From Scratch (LFS)&#8221;. It&#8217;s great while building a package you are accompanied with a short page of info about it, not all manual <img src='http://blogs.coreboot.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Also I have found out that I don&#8217;t have good stuff to read, except that 1k pages book about Linux internals <img src='http://blogs.coreboot.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  While looking at the freenode chatrooms list I have found this resource about c language: http://www.iso-9899.info &#8211; all it needs is time for reading everything <img src='http://blogs.coreboot.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
<p>My project progress is really slow. As Marc suggested I have done some work to reduce stack usage: wrapped functions to read and use file by 256B peaces (somewhat default granularity). But that still needs testing and cleaning up. Also I need to cleanup my previous work that I haven&#8217;t submitted to the list, which enabled running code in car (even though not completely working, as mtrr settings might be wrong or more problems still there).</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.coreboot.org/blog/2011/08/10/gsoc-2011-little-trip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

