OESF | ELSI | pdaXrom | OpenZaurus | Zaurus Themes | Community Links | Ibiblio

IPB

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
> C3200 Boot Process
Skaarj
post 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.
Go to the top of the page
 
+Quote Post
utx
post Sep 11 2011, 06:43 AM
Post #2





Group: Members
Posts: 135
Joined: 27-June 05
From: Prague, Czech Republic, Europe
Member No.: 7,468



QUOTE(Skaarj @ Sep 11 2011, 01:24 PM) *
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.
Go to the top of the page
 
+Quote Post
Skaarj
post Sep 12 2011, 04:50 AM
Post #3





Group: Members
Posts: 6
Joined: 24-November 07
From: Moscow, Russia
Member No.: 20,980



QUOTE(utx @ Sep 11 2011, 06:43 PM) *
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?
Go to the top of the page
 
+Quote Post
utx
post Sep 12 2011, 06:39 AM
Post #4





Group: Members
Posts: 135
Joined: 27-June 05
From: Prague, Czech Republic, Europe
Member No.: 7,468



QUOTE(Skaarj @ Sep 12 2011, 01:50 PM) *
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).
Go to the top of the page
 
+Quote Post
Skaarj
post 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?
Go to the top of the page
 
+Quote Post
utx
post Oct 2 2011, 01:03 PM
Post #6





Group: Members
Posts: 135
Joined: 27-June 05
From: Prague, Czech Republic, Europe
Member No.: 7,468



QUOTE(Skaarj @ Sep 13 2011, 03:50 PM) *
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.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 19th December 2014 - 01:23 AM