Skip to content
Timothy Meade edited this page Sep 18, 2011 · 35 revisions

This project is dedicated to building the (L)ittle (K)ernel bootloader for devices based on MSM/QSD/APQ chips from Qualcomm.

The main focus at the moment is the HP Touchpad

We are based in #msm-bootloader which is an IRC channel on Freenode.

You can find logs here, much thanks to NetRipper for maintaining it.

Goals

Bootloader_goals

Concepts and designs

We could use your help. Propose a concept or design for how the bootloader should look or work. This is not about artistic design or branding, but focused on usability and functionality.

Concepts_and_designs

Getting the source

make sure you are on linux, go to a terminal and type:

cd $HOME
mkdir src
cd src
git clone git://codeaurora.org/kernel/lk.git
cd lk
git checkout -b master origin/master
git remote add tmzt git://github.com/tmzt/msmb
git fetch tmzt
git checkout -b [[branch name]] tmzt/[[branch name]]

For instance, to build the branch merging our work:

git checkout -b jc-tmzt-bio tmzt/jc-tmzt-bio

Then follow the build instructions below

Graphical console

Thanks to [jcsullins] we now have a testable version with output to the Touchpad's screen!

Console output

cd $HOME
cd src/lk
git remote add jc git://github.com/jcsullins/msmb
git fetch jc
git checkout -b jc-lcdc jc/master-tpapq-lcdc

Get a toolchain

We recommend (and only support) getting toolchain from here.

wget https://sourcery.mentor.com/public/gnu_toolchain/arm-none-linux-gnueabi/arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

You need to be root for these steps, if your distro is different use the appropriate command

sudo mkdir -p /opt
sudo tar xf -C /opt/ arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

Build the LK bootloader for touchpad-apq

cd $HOME
cd src/lk
git checkout master-tpapq

(then all on one line)
PATH=/opt/arm-2009q1/bin:$PATH TOOLCHAIN_PREFIX=arm-none-linux-gnueabi- PROJECT=apq-touchpad make

Create a uImage with mkimage and boot it with bootie on your TouchPad

You will need mkimage from the uboot utils package (see Uboot_and_Mkimage) Make sure that lk and lk.bin exist in build-touchpad-apq, then

cd $HOME
cd src/lk
mkimage -A arm -T kernel -C none -A arm -a 0x40208000 -e 0x40208000 -d build-apq-touchpad/lk.bin lk.uImage

Booing the lk image

Now to boot it (won't do very much yet :)) You will need the novacom utility from HP (see Novacom).

cd $HOME
cd src/lk

# allow usbserial device to "see" the lk-fastboot interface
sudo rmmod qcserial    # may not exist, ignore if it doesn't
sudo rmmod usbserial
sudo modprobe usbserial vendor=0x18d1 product=0xd00d
sudo modprobe qcserial  # if it existed above

novaterm                             # while booted into WebOS and USB cable connected
tellbootie recover                   # should reboot TP into USB-recovery mode (see big USB symbol)
novacom boot mem:// < lk.uImage

# to reset TP, hold center-button and power for 15-20 seconds 
# or, connect to /dev/ttyUSBn (n=0, 1, ?) with terminal program (i.e. minicom)