Difference between revisions of "Boot Chain"

From WebOS Internals
Jump to navigation Jump to search
Line 11: Line 11:
 
  </tr>
 
  </tr>
 
  <tr>
 
  <tr>
  <td style="border-right:1px solid #d4d4d4;border-bottom:1px solid #d4d4d4;">Pre webOS 1.0.3 through webOS 1.2.1 unknown</td>
+
  <td style="border-right:1px solid #d4d4d4;border-bottom:1px solid #d4d4d4;">Pre webOS 1.0.3 through webOS 1.2.1</td>
 
  <td style="border-bottom:1px solid #d4d4d4;">0x19D0 (thanks roxfan)</td>
 
  <td style="border-bottom:1px solid #d4d4d4;">0x19D0 (thanks roxfan)</td>
 
  </tr>
 
  </tr>

Revision as of 10:24, 14 December 2009

boot/boot.bin

Load Address: 0x40200000

This does some minimal hardware initialization, then loads the "real" bootloader and executes it. The "real" bootloader is tacked onto the end of boot.bin as a gzip. The offset of the "real" bootloader is different for every version. Table below will give you the right offset (If your version is not listed, then search with "hexdump -C boot-castle.bin | less" for the byte sequence "1f 8b" (the gzip format identifier)).

Version Offset
Pre webOS 1.0.3 through webOS 1.2.1 0x19D0 (thanks roxfan)
Pre webOS 1.3.1 0x19f0
6438a2f52ab18c0b71e9f95d4ad1980d  webosdoctorp100eww-wr-1.1.3/webOS/boot-castle.bin
6438a2f52ab18c0b71e9f95d4ad1980d  webosdoctorp100ewwbellmo-1.1.0/webOS/boot-castle.bin
6438a2f52ab18c0b71e9f95d4ad1980d  webosdoctorp100ewwbellmo-1.2.1/webOS/boot-castle.bin
6438a2f52ab18c0b71e9f95d4ad1980d  webosdoctorp100ewwsprint-1.0.3/webOS/boot-castle.bin
6438a2f52ab18c0b71e9f95d4ad1980d  webosdoctorp100ewwsprint-1.2.1/webOS/boot-castle.bin
8f709233691f043b42d36f25c5398cde  webosdoctorp100ewwbellmo-1.3.1/webOS/boot-castle.bin
8f709233691f043b42d36f25c5398cde  webosdoctorp100ewwsprint-1.3.1/webOS/boot-castle.bin
8f709233691f043b42d36f25c5398cde  webosdoctorp100ueu-wr-1.3.1/webOS/boot-castle.bin
02cfec1a9c7ae81316ac85c5c5979f9f  webosdoctorp200ewwsprint-1.2.9.1/webOS/boot-pixie.bin
43647a5b1f746478d17584d7fd92c60c  webosdoctorp200ewwsprint-1.3.2/webOS/boot-pixie.bin

"real" bootloader (bootie)

Load Address: 0x82000000

This looks a _lot_ like iBoot from the iPhoneOS devices, but others say that this is based off u-boot, so I will assume that is true and that iBoot is also based off of it. It even seems to have some of the u-boot commands, such as "printenv", "run", "setenv", "getenv", etc. I am currently looking into how to communicate with it as you can with iBoot.