2009年8月18日 星期二

Kill u-boot in the beagle board

If you want to boot up Linux kernel on the beagle board. You need to have two different-phase bootloaders for kernel. The first phase is xloader which take cares CPU, memory, vector table setup stuff. The second one is uboot, it provides interactive commands, verbose booting environment setup, initialization for lots perhiphals of SoC. Of course, it loads the kernel image eventually. But it might not be the best choice for you. Sometimes you just want to get into the kernel, that's it.

I did some dirty hack here:

http://0xlab.org/~matt/kill-uboot-patches/

which against xloader
http://gitorious.org/x-load-omap3/mainline/commit/319b26586fafb86f919f514bcd175838aaab96b3

After applying these patches, you just need to put your xloader(MLO) and your kernel into SD card. Make beagle board boot from SDcard then. You will get a running kernel. But this is still not flexible somehow. Like, you need to edit and re-compile the xloader to change your kernel cmdline. My next plan is to support Qi boot loader in the beagle board.

2009年8月2日 星期日

Dual MMC/SDIO support on Beagle board.

My recent work is to add 2nd MMC/SD support for Beagle board.
The reason is simple, the 1st MMC/SD slot could be used as bootable device, the 2nd one could be the WLAN card interface (SDIO).

To achieve this, you need to tinker your beagle board like the following.

1. Attach the jumper on the location of J3(see schematic).
2. Make a home brew cable to wire up the SDIO interface.

The WLAN module shown on the below picture is GH600 from Azurewave.
Its corresponding GPL-ed driver is available.

http://android.git.kernel.org/?p=platform/system/wlan/broadcom.git;a=summary



In the host side, couple patches could make this work.

http://gitorious.org/0xlab-kernel

Enabling the 2nd MMC/SDIO slot has two approaches. The first one is to wire up the MMC2 slot directly. But the operating voltage of these ports are based on 1v8. Fortunately, the SDIO of this module could be signaling as low as 1v8. In this case,
wiring up to the module directly is much simple.

If the operating voltage of your WLAN module is around 2v6~3v3, transceiver is you plan B. Either designing a level shift circuit or using available voltage level translator could fulfill this requirement. I would suggest using level shift IC such as TXS0108E. TXS0108E is a level shift IC, whcih is designed for the expansion of MMC/SD/SDIO interface particularly.

2009年7月20日 星期一

壓力來自別人還是自己!?

I'm old school man. 對於生活的大事小事, 都是透過朋友及親人的傾聽來宣洩
會想透過blog來紀錄一切, 可能是因為年紀大了, 記不住了

最近嚴重的陷入自我否定的Loop, 雖然明知這種現象是一陣一陣, 也是有一番說詞可以解釋
但就是擋不住自己的失落

可能是因為跟Andy, Werner 共事過吧, 總覺得像是driver development, machine porting
這類的事情應該並不是難事. 而實際上當所有的事情都得自己一步一步做的時候
你會感覺像在山洞行走一般, 永遠不知道什麼時候會有出口

漸漸的, 你會被"懷疑"的心魔給吞噬.

吊詭的是, 沒有人給我壓力. 沒有人告訴我, 你應該要像誰誰誰一樣強
你應該只花幾天就把事情搞定,你應該要送多少patch....諸如此類的.

我不知道我能不能應付這些關卡
我只求我能有勇氣,一步步去發掘自己的無限可能

2009年6月3日 星期三

Hello! 0xlab

I love this team. :)