I am having difficulty creating partitions in u-boot and my linux (angstrom 2009.1) recognizing my changes. Below is what I have done: MINI2440 # mtdparts del rootfs MINI2440 # setenv mtdparts mtdparts=mini2440-nand:0x00040000(u-boot),0x00020000(u-boot_env),0x00500000(kern el),96m(rootfs),96m(restore),-(misc) MINI2440 # saveenv Typing mtdparts in the console now prints this: MINI2440 # mtdparts device nand0 <mini2440-nand>, # parts = 6 #: name size offset mask_flags 0: u-boot 0x00040000 0x00000000 0 1: u-boot_env 0x00020000 0x00040000 0 2: kernel 0x00500000 0x00060000 0 3: rootfs 0x06000000 0x00560000 0 4: restore 0x06000000 0x06560000 0 5: maco_tmp 0x03aa0000 0x0c560000 0 active partition: nand0,0 - (u-boot) 0x00040000 @ 0x00000000 defaults: mtdids : nand0=mini2440-nand Which is exactly what I want. I installed the fs which i compiled using openembedded and during bootup it prints: ... S3C24XX NAND Driver, (c) 2004 Simtec Electronics s3c24xx-nand s3c2440-nand: Tacls=1, 9ns Twrph0=3 29ns, Twrph1=2 19ns s3c24xx-nand s3c2440-nand: NAND soft ECC NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit) Creating 4 MTD partitions on "NAND 256MiB 3,3V 8-bit": 0x000000000000-0x000000040000 : "u-boot" 0x000000040000-0x000000060000 : "u-boot-env" 0x000000060000-0x000000560000 : "kernel" 0x000000560000-0x000010000000 : "root" ... My question is where does the info come from and how can i fix it? When everything boots up i get the following: root@mini2440:~# df -h Filesystem Size Used Available Use% Mounted on /dev/root 250.6M 23.3M 227.3M 9% / none 29.7M 40.0K 29.6M 0% /dev /dev/mmcblk0p1 1.9G 133.8M 1.8G 7% /media/mmcblk0p1 tmpfs 29.7M 28.0K 29.6M 0% /var/volatile tmpfs 29.7M 0 29.7M 0% /dev/shm tmpfs 29.7M 0 29.7M 0% /media/ram Any help would greatly be appreciated. - brendon
resizing partitions using uboot
Well best would be to use mtdparts and kernel argument and remove static definition from kernel code. Or for hacking just update kernel in arch/arm/mach-s3c2440/mach-mini2440.c file. marek
Thanks marek, i fixed it by modifying
work/mini2440-angstrom-linux-gnuabi/linux-mini2440-2.6.32+git-r2/git/arch/arm/ma
ch-s3c2440/mach-mini2440.c
and changing:
/* NAND Flash on MINI2440 board */
static struct mtd_partition mini2440_default_nand_part[] = {
[0] = {
.name = "u-boot",
.size = SZ_256K,
.offset = 0,
},
[1] = {
.name = "u-boot-env",
.size = SZ_128K,
.offset = SZ_256K,
},
[2] = {
.name = "kernel",
/* 5 megabytes, for a kernel with no modules
* or a uImage with a ramdisk attached */
.size = 0x00500000,
.offset = SZ_256K + SZ_128K,
},
[3] = {
.name = "root",
.offset = SZ_256K + SZ_128K + 0x00500000,
.size = MTDPART_SIZ_FULL,
},
};
to this:
/* NAND Flash on MINI2440 board */
static struct mtd_partition mini2440_default_nand_part[] = {
[0] = {
.name = "u-boot",
.size = SZ_256K,
.offset = 0,
},
[1] = {
.name = "u-boot-env",
.size = SZ_128K,
.offset = SZ_256K,
},
[2] = {
.name = "kernel",
/* 5 megabytes, for a kernel with no modules
* or a uImage with a ramdisk attached */
.size = 0x00500000,
.offset = SZ_256K + SZ_128K,
},
/*
[3] = {
.name = "root",
.offset = SZ_256K + SZ_128K + 0x00500000,
.size = MTDPART_SIZ_FULL,
},
*/
[3] = {
.name = "rootfs",
.offset = 0x00560000,
.size = 0x06000000,
},
[4] = {
.name = "restore",
.offset = 0x06560000,
.size = 0x06000000,
},
[5] = {
.name = "maco_tmp",
.offset = 0x0c560000,
.size = 0x03aa0000,
},
};
then in my openembedded environment i called:
# bitbake -f -c compile linux-mini2440
# bitbake linux-mini2440
and then copying the new uImage to the kernel partition.
There is probably a nicer way to do this (patch). But thats what I did and
it worked.
- brendon
Yes nicer way would be to add mtdparts in kernel command line (uboot bootargs) and remove static definition from kernel code. Whatever if it works it's good ;) marek


