[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [microblaze-uclinux] creating a flash partition
Jim Van Vorst wrote:
John Williams wrote:
Jim Van Vorst wrote:
Actually, one issue on that. It does seem to work correctly but I
get this message on bootup:
=============================
physmap platform flash device: 01000000 at 21000000
physmap-flash.0: Found 1 x16 devices at 0x0 in 8-bit bank
Intel/Sharp Extended Query Table at 0x0031
Using buffer write method
cfi_cmdset_0001: Erase suspend on write enabled
erase region 0: offset=0x0,size=0x20000,blocks=128
7 cmdlinepart partitions found on MTD device physmap-flash.0
Creating 7 MTD partitions on "physmap-flash.0":
0x00000000-0x000c0000 : "bitstream"
0x000c0000-0x00100000 : "boot"
0x00100000-0x00140000 : "bootenv"
0x00140000-0x00160000 : "config"
0x00160000-0x00560000 : "image"
0x00560000-0x00660000 : "jimfs"
0x00660000-0x00f60000 : "spare"
*** this thing here ***
kobject_add failed for physmap-flash.0 with -EEXIST, don't try to
register things with the same name in the same directory.
Do you have two partitions with the same name? Can you please post
the relevant fragment of your petalinux-dist/config/.config file -
look for CONFIG_SYSTEM_PARTITION{x}_NAME and _SIZE
Here is the fragment:
#
# Flash Partition Table
#
CONFIG_SYSTEM_PARTITION1_NAME="bitstream"
CONFIG_SYSTEM_PARTITION1_SIZE=c0000
CONFIG_SYSTEM_PARTITION2_NAME="boot"
CONFIG_SYSTEM_PARTITION2_SIZE=40000
CONFIG_SYSTEM_PARTITION3_NAME="bootenv"
CONFIG_SYSTEM_PARTITION3_SIZE=40000
CONFIG_SYSTEM_PARTITION4_NAME="config"
CONFIG_SYSTEM_PARTITION4_SIZE=20000
CONFIG_SYSTEM_PARTITION5_NAME="image"
CONFIG_SYSTEM_PARTITION5_SIZE=400000
CONFIG_SYSTEM_PARTITION6_NAME="jimfs"
CONFIG_SYSTEM_PARTITION6_SIZE=100000
CONFIG_SYSTEM_PARTITION7_NAME="spare"
CONFIG_SYSTEM_PARTITION7_SIZE=0x0
CONFIG_SYSTEM_PARTITION8_NAME=""
CONFIG_SYSTEM_PARTITION8_SIZE=0x0
My boot command is:
Kernel command line:
mtdparts=physmap-flash.0:768K(bitstream),256K(boot),256K(bootenv),128K(config),4M(image),1M(jimfs),9M(spare)
macaddr=00:0a:35:00:22:01
Which corresponds to the .config fragment above.
Maybe it thinks "boot" and "bootenv" are the same?
Hmm, don't think so.
Also, if boot command parsing is enabled, does the kernel even care what
is in the .config or does it only pay attention to the mtdparts string?
Well, they all depend on each other...from the .config we
1. create (via a script) config.ub.img, which
2. you download to u-boot, which
3. tells it the $mtdparts variable, which
4. gets appended to the $cmdline variable, which
5. is passed to the kernel, which
6. gives it to MTD, which
7. sets up the partitions
The kernel error you are seeing comes from the populating the sysfs
virtual filesystem, it thinks you are trying to create two virtual files
of the same name in the same directory - thus my question about
duplicate partition names.
Can you please try the attached debug patch to
linux-2.6.x/fs/sysfs/dir.c, to print out the offending info. Might shed
some light.
Thanks,
John
Index: dir.c
===================================================================
--- dir.c (revision 2718)
+++ dir.c (working copy)
@@ -68,8 +68,10 @@
const unsigned char *existing = sysfs_get_name(sd);
if (strcmp(existing, new))
continue;
- else
+ else {
+ printk("same name:%s\n",new);
return -EEXIST;
+ }
}
}