<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.webos-internals.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tmzt</id>
	<title>WebOS Internals - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.webos-internals.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tmzt"/>
	<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/wiki/Special:Contributions/Tmzt"/>
	<updated>2026-04-07T07:11:49Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Bootie&amp;diff=17951</id>
		<title>Bootie</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Bootie&amp;diff=17951"/>
		<updated>2011-08-27T07:55:07Z</updated>

		<summary type="html">&lt;p&gt;Tmzt: change formatting on example in multimage section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Current Version''': 191.4 introduced with WebOS 1.4.1 &amp;lt;BR&amp;gt;&lt;br /&gt;
Old version : 145.2.6 introduced with WebOS 1.0.3&lt;br /&gt;
&lt;br /&gt;
Bootie is the stage3 bootloader of webOS devices. It is unpacked from the end of boot.bin, and loaded to **0x82000000** in memory. Bootie looks very similar to iBoot from the iPhoneOS devices.&lt;br /&gt;
&lt;br /&gt;
Getting into bootie mode is as easy as holding the volume-up key while plugging the phone into USB while the phone is in the &amp;quot;off&amp;quot; state.  The novaterm/novaproxy programs can then be used to talk to bootie.&lt;br /&gt;
&lt;br /&gt;
== Running Bootie commands == &lt;br /&gt;
&lt;br /&gt;
The following is an example of using novaterm to run the bootie command &amp;quot;help&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
] help &lt;br /&gt;
command list:&lt;br /&gt;
	nduid           : get the device id&lt;br /&gt;
	usb             : usb transfer commands&lt;br /&gt;
	lboot           : boot linux image&lt;br /&gt;
	klog            : klog commands&lt;br /&gt;
	printenv        : print all of the environment variables&lt;br /&gt;
	getenv          : read an environment variable&lt;br /&gt;
	setenv          : set an environment variable&lt;br /&gt;
	reset           : reset the device&lt;br /&gt;
	script          : run a script at specified address&lt;br /&gt;
	run             : run a script at from an environment variable&lt;br /&gt;
	return          : return from current script&lt;br /&gt;
	help            : this list&lt;br /&gt;
	version         : get bootie version&lt;br /&gt;
        battery         : battery status (found in webOS 1.4.1 and not in 1.0.3)&lt;br /&gt;
	charging        : commands to set charging states &lt;br /&gt;
	fsboot          : boot current image based on environment&lt;br /&gt;
	chainboot       : boot another bootloader image based on environment&lt;br /&gt;
	go              : Jump to a given address with the given arguments&lt;br /&gt;
	cpurev          : read the cpu revision (found in webOS 1.0.3 but not in 1.4.1)&lt;br /&gt;
	diag            : perform diag operations: write, boot, verify&lt;br /&gt;
	poweroff        : power off completely&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Bootie Environment == &lt;br /&gt;
&lt;br /&gt;
===The default environment of Pre phones during boot follows:===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
] getenv&lt;br /&gt;
T   ? = 0&lt;br /&gt;
T   chargebypass = 0&lt;br /&gt;
T   framebuffer = 0x8f600000&lt;br /&gt;
T   boardtype = castle-dvt3&lt;br /&gt;
    installer = trenchcoat&lt;br /&gt;
T   klog_len = 0x100000&lt;br /&gt;
T   klog_addr = 0x8ff00000&lt;br /&gt;
T   logofile = boot/logo.tga&lt;br /&gt;
T   bootaddress = 0x81000000&lt;br /&gt;
T   bootfile = uImage&lt;br /&gt;
T   bootfs = ext2&lt;br /&gt;
T   bootdevice = mmc0p1&lt;br /&gt;
T   bootargs-ramdisk = root=/dev/ram0 ramdisk=32768 ro&lt;br /&gt;
T   bootargs = root=b302 rootdelay=2 ro&lt;br /&gt;
T   bootconsole = tty1&lt;br /&gt;
    autoboot = fsboot&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The boot environment on a TouchPad (3.0.2) follows:===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
T   ? = -1000&lt;br /&gt;
T   framebuffer = 0x7f600000&lt;br /&gt;
    installer = trenchcoat&lt;br /&gt;
    checkbatt = 1&lt;br /&gt;
T   chargebypass = 1&lt;br /&gt;
T   klog_len = 0x100000&lt;br /&gt;
T   klog_addr = 0x7ff00000&lt;br /&gt;
T   tablet_wod_support = 0x0&lt;br /&gt;
T   extended_timeout = 0x0&lt;br /&gt;
T   chainbootdevice = mmc0&lt;br /&gt;
T   bootaddress = 0x41000000&lt;br /&gt;
T   bootdevice = mmc0p12&lt;br /&gt;
T   bootfile = uImage&lt;br /&gt;
T   bootfs = ext2&lt;br /&gt;
T   bootargs-ramdisk = root=/dev/ram0 rw&lt;br /&gt;
T   bootargs = root=/dev/mmcblk0p13 rootwait ro&lt;br /&gt;
T   bootconsole = ttyS0,115200n8&lt;br /&gt;
T   autoboot = fsboot&lt;br /&gt;
T   boardtype = topaz-Wifi-pvt&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Additional commands == &lt;br /&gt;
&lt;br /&gt;
In addition to the commands listed by the ''help'' command displayed above, bootie supports the command ''get'' which will return the contents of a file, for example: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 novacom get file://klog&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Image formats accepted ==&lt;br /&gt;
&lt;br /&gt;
It looks like Bootie accepts images generated with mkimage from u-boot tools.&lt;br /&gt;
&lt;br /&gt;
There are apparently two kinds of images:&lt;br /&gt;
&lt;br /&gt;
* simple images are just the uImage as produced by kernel build process.&lt;br /&gt;
* multi images that have both the kernel and a ramdisk. Both the kernel and the ramdisk must be processed with mkimage first (kernel is processed by the build). It is important to pass -C none to mkimage when generating the ramdisk file, otherwise Bootie refuses to recognize it. Then generate the multi image like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;mkimage -A arm -T multi -C none -n 'test-multi-image' -d arch/arm/boot/uImage:/tmp/uRamdisk /tmp/uMulti&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When Bootie detects such a multi image, it uses bootargs-ramdisk variable as kernel argument instead of just bootargs, so no need to do any extra actions when trying to feed such a multi-image into the Bootie.&lt;/div&gt;</summary>
		<author><name>Tmzt</name></author>
	</entry>
</feed>