![]() ![]() |
Sep 11 2011, 04:24 AM
Post
#1
|
|
|
Group: Members Posts: 6 Joined: 24-November 07 From: Moscow, Russia Member No.: 20,980 |
Hi. I'm very interesting how zaurus boots up.
What does happen when power is applied? There is no information about internal flash in PXA270 datasheet. So where is maintenance menu (and rescue mode) code located? What does handle special key pressing? Unfortunately, I haven't found any really useful information. |
|
|
|
Sep 11 2011, 06:43 AM
Post
#2
|
|
|
Group: Members Posts: 131 Joined: 27-June 05 From: Prague, Czech Republic, Europe Member No.: 7,468 |
Hi. I'm very interesting how zaurus boots up. What does happen when power is applied? There is no information about internal flash in PXA270 datasheet. So where is maintenance menu (and rescue mode) code located? What does handle special key pressing? Unfortunately, I haven't found any really useful information. It jumps somewhere to the PROM and runs bootloader (or ROM menu). In the standard mode, it loads NAND bootloader (or NAND menu). NAND bootloader processes records in the dedicated NAND area, sets the hardware, creates kernel arguments and runs one of the kernels in the dedicated areas. Then it continues with a standard Linux boot depending on the image in the flash. At least one code is processed by the PROM code (ROM diag), most of the rest by rthe NAND code. |
|
|
|
Sep 12 2011, 04:50 AM
Post
#3
|
|
|
Group: Members Posts: 6 Joined: 24-November 07 From: Moscow, Russia Member No.: 20,980 |
It jumps somewhere to the PROM and runs bootloader (or ROM menu). In the standard mode, it loads NAND bootloader (or NAND menu). NAND bootloader processes records in the dedicated NAND area, sets the hardware, creates kernel arguments and runs one of the kernels in the dedicated areas. Then it continues with a standard Linux boot depending on the image in the flash. Thank you. Is it possible to obtain detailed information about this process somewhere? |
|
|
|
Sep 12 2011, 06:39 AM
Post
#4
|
|
|
Group: Members Posts: 131 Joined: 27-June 05 From: Prague, Czech Republic, Europe Member No.: 7,468 |
Thank you. Is it possible to obtain detailed information about this process somewhere? There is a list of known keys somewhere in this forum as well as partially decoded NAND map, but both loaders are (probably) undocumented proprietary applications. It seems that both loaders are very similar (if not the same). |
|
|
|
Sep 13 2011, 06:50 AM
Post
#5
|
|
|
Group: Members Posts: 6 Joined: 24-November 07 From: Moscow, Russia Member No.: 20,980 |
I've tried to make a little investigation
CODE # cat /proc/mtd dev: size erasesize name mtd0: 006b0000 00020000 "Boot PROM Filesystem" mtd1: 00700000 00020000 "Logical" mtd2: 07900000 00020000 "JFFS2" mtd2 contains jffs2 filesystem. After mounting /dev/mtdblock2 I've got opt/native/arm/3.4.6-xscale-sftvfp directory with system files (bin, include etc) After dumping mtd1 and analyzing strings, I've found that it's UBoot. One interesting string: QUOTE bootargs=console=ttyS0,115200 console=tty1 root=/dev/ram rw fbcon=rotate:1 ramdisk_size=8192 bootcmd=if testkey 101 ; then nand read.logical 0xa1000000 0x00060000 0x00540000; setenv bootargs console=ttyS0,115200 console=tty1 root=/dev/ram rw fbcon=rotate:1 ramdisk_size=8192; bootm; fi; if testkey 2 ; then nand read.logical 0xa1000000 0x005a0000 0x00160000; setenv bootargs console=ttyS0,115200 console=tty1 root=/dev/mmcblk0p1 fbcon=rotate:1; bootm; fi; if testkey 18 ; then nand read.logical 0xa1000000 0x005a0000 0x00160000; setenv bootargs console=ttyS0,115200 console=tty1 root=/dev/hda1 fbcon=rotate:1; bootm; fi; if testkey 3 ; then nand read.logical 0xa1000000 0x005a0000 0x00160000; setenv bootargs console=ttyS0,115200 console=tty1 root=/dev/hdc1 fbcon=rotate:1; bootm; fi; nand read.logical 0xa1000000 0x005a0000 0x00160000; setenv bootargs console=ttyS0,115200 console=tty1 root=/dev/mtdblock2 rootfstype=jffs2 fbcon=rotate:1; bootm; dmesg says that mtd0 is sharpsl flash and mtd1 and mtd2 are sharpsl nand What is sharpsl flash? |
|
|
|
Oct 2 2011, 01:03 PM
Post
#6
|
|
|
Group: Members Posts: 131 Joined: 27-June 05 From: Prague, Czech Republic, Europe Member No.: 7,468 |
I've tried to make a little investigation CODE # cat /proc/mtd dev: size erasesize name mtd0: 006b0000 00020000 "Boot PROM Filesystem" mtd1: 00700000 00020000 "Logical" mtd2: 07900000 00020000 "JFFS2" mtd2 contains jffs2 filesystem. After mounting /dev/mtdblock2 I've got opt/native/arm/3.4.6-xscale-sftvfp directory with system files (bin, include etc) After dumping mtd1 and analyzing strings, I've found that it's UBoot. One interesting string: QUOTE bootargs=console=ttyS0,115200 console=tty1 root=/dev/ram rw fbcon=rotate:1 ramdisk_size=8192 bootcmd=if testkey 101 ; then nand read.logical 0xa1000000 0x00060000 0x00540000; setenv bootargs console=ttyS0,115200 console=tty1 root=/dev/ram rw fbcon=rotate:1 ramdisk_size=8192; bootm; fi; if testkey 2 ; then nand read.logical 0xa1000000 0x005a0000 0x00160000; setenv bootargs console=ttyS0,115200 console=tty1 root=/dev/mmcblk0p1 fbcon=rotate:1; bootm; fi; if testkey 18 ; then nand read.logical 0xa1000000 0x005a0000 0x00160000; setenv bootargs console=ttyS0,115200 console=tty1 root=/dev/hda1 fbcon=rotate:1; bootm; fi; if testkey 3 ; then nand read.logical 0xa1000000 0x005a0000 0x00160000; setenv bootargs console=ttyS0,115200 console=tty1 root=/dev/hdc1 fbcon=rotate:1; bootm; fi; nand read.logical 0xa1000000 0x005a0000 0x00160000; setenv bootargs console=ttyS0,115200 console=tty1 root=/dev/mtdblock2 rootfstype=jffs2 fbcon=rotate:1; bootm; dmesg says that mtd0 is sharpsl flash and mtd1 and mtd2 are sharpsl nand What is sharpsl flash? There are two partitions on PROM: Boot PROM code: invisible partition, you can find a patch to make it visible on my Zaurus web pages. English-Japanese dictionary database: here it is called "Boot PROM Filesystem" And three partitions on NAND: Initial partition that does not contain filesystem and contains configuration, NAND bootloader and two kernel images Two JFFS2 file systems with root and home for Sharp ROM. (Note that partitioning in kernel 2.6 is incorrect for SL-C3200.) See this post for details. |
|
|
|
![]() ![]() |
|
Lo-Fi Version | Time is now: 18th June 2013 - 01:08 PM |