Rootfs for PXA270 running with 2.6.26.x
Hi all, thanks for reading first!
I have a rootfs for 2.6.16 on PXA270, and now updated the kernel to
2.6.26, but the system shows:
Kernel panic: not syncing VFS: Unable to mount root fs on unknown
block(2,0)
So I am wondering if my rootfs(originally for 2.6.16) should be
replaced with a 2.6.26-compatible one.
Is there any downloadable one? Or I must use PTXdist to compile one
myself? It seems to take days to compile one using ptx.
Thanks!
Re: Rootfs for PXA270 running with 2.6.26.x
Kcin wrote:
[color=blue]
> Hi all, thanks for reading first!
>
> I have a rootfs for 2.6.16 on PXA270, and now updated the kernel to
> 2.6.26, but the system shows:
> Kernel panic: not syncing VFS: Unable to mount root fs on unknown
> block(2,0)[/color]
Does your new kernel support the same devices and filesystems to boot from
your media? Where is your root filesystem stored on? Flash? CF? USB?
[color=blue]
> So I am wondering if my rootfs(originally for 2.6.16) should be
> replaced with a 2.6.26-compatible one.[/color]
Consider to enable OABI in your new kernel. I guess your old root filesystem
using OABI and not the new EABI. The kernel must support it.
[color=blue]
> Is there any downloadable one? Or I must use PTXdist to compile one
> myself? It seems to take days to compile one using ptx.[/color]
$ ptxdist targetinstall kernel
will only build the kernel for you (if you don't want to build the whole
project).
jbe
Re: Rootfs for PXA270 running with 2.6.26.x
The rootfs is in flash, the partitioning is like this:
Flash: | U-Boot 1.1.4 | uImage (Kernel 2.6.26) | rootfs.jffs2 |
And it's set to mount at:
root=\dev\mtdblock2
I set it to \dev\mtdblock0, then it doesn't show the "unable to mount"
error, but the system cannot boot up. I guess it's because \dev
\mtdblock0 is for u-boot?
How can I switch the kernel to support OABI/EABI? And is it possible
to check whether a rootfs is OABI or EABI??
Many thanks!
On Aug 20, 8:51*pm, Juergen Beisert <jbeis...@netscape.net> wrote:[color=blue]
> Kcin wrote:[color=green]
> > Hi all, thanks for reading first![/color]
>[color=green]
> > I have a rootfs for 2.6.16 on PXA270, and now updated the kernel to
> > 2.6.26, but the system shows:
> > Kernel panic: not syncing VFS: Unable to mount root fs on unknown
> > block(2,0)[/color]
>
> Does your new kernel support the same devices and filesystems to boot from
> your media? Where is your root filesystem stored on? Flash? CF? USB?
>[color=green]
> > So I am wondering if my rootfs(originally for 2.6.16) should be
> > replaced with a 2.6.26-compatible one.[/color]
>
> Consider to enable OABI in your new kernel. I guess your old root filesystem
> using OABI and not the new EABI. The kernel must support it.
>[color=green]
> > Is there any downloadable one? Or I must use PTXdist to compile one
> > myself? It seems to take days to compile one using ptx.[/color]
>
> $ ptxdist targetinstall kernel
>
> will only build the kernel for you (if you don't want to build the whole
> project).
>
> jbe[/color]
Re: Rootfs for PXA270 running with 2.6.26.x
Kcin wrote:
[color=blue]
> The rootfs is in flash, the partitioning is like this:
> Flash: | U-Boot 1.1.4 | uImage (Kernel 2.6.26) | rootfs.jffs2 |[/color]
Does your new kernel know the flash device? Does it know this partition
layout?
Did you enable (kernel):
- CFI Flash device in physical memory map
- (0x00000000) Physical start address of flash mapping
- (0x02000000) Physical length of flash mapping
- (4) Bank width in octets <--- depends on your hardware
-[*] MTD partitioning support
-[*] Command line partition table parsing
- <*> Caching block device access to MTD devices
The kernel should output something like this:
[color=blue]
> [...]
> physmap flash device: 2000000 at 0
> phys_mapped_flash: Found 2 x16 devices at 0x0 in 32-bit bank
> Intel/Sharp Extended Query Table at 0x0031
> Using buffer write method
> cfi_cmdset_0001: Erase suspend on write enabled
> 3 cmdlinepart partitions found on MTD device phys_mapped_flash
> Creating 3 MTD partitions on "phys_mapped_flash":
> 0x00000000-0x00040000 : "u-boot"
> 0x00040000-0x00240000 : "kernel"
> 0x00240000-0x02000000 : "root"
> [...][/color]
[color=blue]
> And it's set to mount at:
> root=\dev\mtdblock2
>
> I set it to \dev\mtdblock0, then it doesn't show the "unable to mount"
> error, but the system cannot boot up. I guess it's because \dev
> \mtdblock0 is for u-boot?[/color]
Sure. Only the rootfs.jffs2 partition contains a valid filesystem. BTW:
Maybe the jffs2 filesystem format changes between 2.6.16 and 2.6.26?
[color=blue]
> How can I switch the kernel to support OABI/EABI?[/color]
$ ptxdist kernelconfig
-> Kernel Features
-> enable "Use the ARM EABI to compile the kernel"
-> enable "Allow old ABI binaries to run with this kernel"
[color=blue]
> And is it possible to check whether a rootfs is OABI or EABI??[/color]
Don't know. But if you are running a 2.6.16 kernel it must be OABI.
jbe
Re: Rootfs for PXA270 running with 2.6.26.x
For the kernel config, I have these setting:
CONFIG_MTD_PHYSMAP=y
CONFIG_MTD_PHYSMAP_START=0x00000000
CONFIG_MTD_PHYSMAP_LEN=0x2000000
CONFIG_MTD_PHYSMAP_BANKWIDTH=4
And I have this argument in uboot:
mtdparts=phys_mapped_flash:256k(u-boot)ro,2048k(kernel),-rs
From the web, I found that the rootfs should be mounted in 1f01
instead of 1f02 between different versions. Does it explain why my
rootfs cannot be mounted in mtd2 when I use 2.6.26 kernel?
And I am suggested to type these two commands when updating the
kernel:
# flash_unlock /dev/mtd0
# flashcp -v /tmp/u-boot.bin /dev/mtd0
What do they do really?
Thanks!
On Aug 21, 3:53*pm, Juergen Beisert <jbeis...@netscape.net> wrote:[color=blue]
> Kcin wrote:[color=green]
> > The rootfs is in flash, the partitioning is like this:
> > Flash: | U-Boot 1.1.4 | uImage (Kernel 2.6.26) | rootfs.jffs2 |[/color]
>
> Does your new kernel know the flash device? Does it know this partition
> layout?
>
> Did you enable (kernel):
>
> - CFI Flash device in physical memory map
> - (0x00000000) Physical start address of flash mapping
> - (0x02000000) Physical length of flash mapping
> - (4) * Bank width in octets *<--- depends on your hardware
>
> -[*] * MTD partitioning support
> *-[*] * * Command line partition table parsing
> - <*> * Caching block device access to MTD devices
>
> The kernel should output something like this:
>
>
>[color=green]
> > [...]
> > physmap flash device: 2000000 at 0
> > phys_mapped_flash: Found 2 x16 devices at 0x0 in 32-bit bank
> > *Intel/Sharp Extended Query Table at 0x0031
> > Using buffer write method
> > cfi_cmdset_0001: Erase suspend on write enabled
> > 3 cmdlinepart partitions found on MTD device phys_mapped_flash
> > Creating 3 MTD partitions on "phys_mapped_flash":
> > 0x00000000-0x00040000 : "u-boot"
> > 0x00040000-0x00240000 : "kernel"
> > 0x00240000-0x02000000 : "root"
> > [...]
> > And it's set to mount at:
> > root=\dev\mtdblock2[/color]
>[color=green]
> > I set it to \dev\mtdblock0, then it doesn't show the "unable to mount"
> > error, but the system cannot boot up. I guess it's because \dev
> > \mtdblock0 is for u-boot?[/color]
>
> Sure. Only the rootfs.jffs2 partition contains a valid filesystem. BTW:
> Maybe the jffs2 filesystem format changes between 2.6.16 and 2.6.26?
>[color=green]
> > How can I switch the kernel to support OABI/EABI?[/color]
>
> $ ptxdist kernelconfig
> *-> Kernel Features
> * *-> enable "Use the ARM EABI to compile the kernel"
> * * *-> enable "Allow old ABI binaries to run with this kernel"
>[color=green]
> > And is it possible to check whether a rootfs is OABI or EABI??[/color]
>
> Don't know. But if you are running a 2.6.16 kernel it must be OABI.
>
> jbe[/color]
Re: Rootfs for PXA270 running with 2.6.26.x
Kcin wrote:[color=blue]
> From the web, I found that the rootfs should be mounted in 1f01
> instead of 1f02 between different versions.[/color]
??????????????????
[color=blue]
> And I am suggested to type these two commands when updating the
> kernel:
> # flash_unlock /dev/mtd0
> # flashcp -v /tmp/u-boot.bin /dev/mtd0[/color]
Can also be done from inside U-Boot. Much easier.
jbe