[U-Boot] [PATCH 0/2] configs: ti_armv7_keystone2: fix default args_ramfs

This series fixes couple of bugs in default args_ramfs environment variable
Vitaly Andrianov (2): configs: ti_armv7_keystone2: fix initrd address at args_ramfs configs: ti_armv7_keystone2: increase size reserved for initrd
include/configs/ti_armv7_keystone2.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)

This patch set the correct initrd address to much rdaddr, which used at get_fs_ramfs commad.
Fixes: 3e97f0b63c8e ("configs: ti_armv7_keystone2: switch addresses to generic addresses")
Signed-off-by: Vitaly Andrianov vitalya@ti.com --- include/configs/ti_armv7_keystone2.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/configs/ti_armv7_keystone2.h b/include/configs/ti_armv7_keystone2.h index 7b67620..454f1df 100644 --- a/include/configs/ti_armv7_keystone2.h +++ b/include/configs/ti_armv7_keystone2.h @@ -253,7 +253,7 @@ "init_ramfs=run args_all args_ramfs get_fs_ramfs\0" \ "args_ramfs=setenv bootargs ${bootargs} " \ "rdinit=/sbin/init rw root=/dev/ram0 " \ - "initrd=0x802000000,9M\0" \ + "initrd=0x808080000,9M\0" \ "no_post=1\0" \ "mtdparts=mtdparts=davinci_nand.0:" \ "1024k(bootloader)ro,512k(params)ro,-(ubifs)\0"

On Tue, Aug 04, 2015 at 11:16:15AM -0400, Vitaly Andrianov wrote:
This patch set the correct initrd address to much rdaddr, which used at get_fs_ramfs commad.
Fixes: 3e97f0b63c8e ("configs: ti_armv7_keystone2: switch addresses to generic addresses")
Signed-off-by: Vitaly Andrianov vitalya@ti.com
include/configs/ti_armv7_keystone2.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/configs/ti_armv7_keystone2.h b/include/configs/ti_armv7_keystone2.h index 7b67620..454f1df 100644 --- a/include/configs/ti_armv7_keystone2.h +++ b/include/configs/ti_armv7_keystone2.h @@ -253,7 +253,7 @@ "init_ramfs=run args_all args_ramfs get_fs_ramfs\0" \ "args_ramfs=setenv bootargs ${bootargs} " \ "rdinit=/sbin/init rw root=/dev/ram0 " \
"initrd=0x802000000,9M\0" \
"initrd=0x808080000,9M\0" \
There's two related problems here. Making initrd match ${rdaddr} would be best done by doing "initrd=${rdaddr}" here, same as whacking in the previous ${bootargs}. Second $ grep rdaddr include/configs/ti_armv7_common.h "rdaddr=0x88080000\0" \
So you aren't making it match here either. Finally (and please test this..), do you _need_ to pass in the size parameter here? I'm assuming that this is _not_ a uImage'd ramdisk here but instead a raw one so we end up with the case of the kernel would know where the ramdisk starts but would assume a max size of whatever it was compiled with and then find an incomplete rootfs, right? If so then yes, that's fine, we can continue passing in (and updating in the second patch as you are) the size parameter, I just want to be sure we aren't missing out on some "new" smarts that exist in the kernel. Thanks!
"no_post=1\0" \ "mtdparts=mtdparts=davinci_nand.0:" \ "1024k(bootloader)ro,512k(params)ro,-(ubifs)\0" -- 1.9.1
U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot

On 08/04/2015 11:23 AM, Tom Rini wrote:
On Tue, Aug 04, 2015 at 11:16:15AM -0400, Vitaly Andrianov wrote:
This patch set the correct initrd address to much rdaddr, which used at get_fs_ramfs commad.
Fixes: 3e97f0b63c8e ("configs: ti_armv7_keystone2: switch addresses to generic addresses")
Signed-off-by: Vitaly Andrianov vitalya@ti.com
include/configs/ti_armv7_keystone2.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/configs/ti_armv7_keystone2.h b/include/configs/ti_armv7_keystone2.h index 7b67620..454f1df 100644 --- a/include/configs/ti_armv7_keystone2.h +++ b/include/configs/ti_armv7_keystone2.h @@ -253,7 +253,7 @@ "init_ramfs=run args_all args_ramfs get_fs_ramfs\0" \ "args_ramfs=setenv bootargs ${bootargs} " \ "rdinit=/sbin/init rw root=/dev/ram0 " \
"initrd=0x802000000,9M\0" \
"initrd=0x808080000,9M\0" \
There's two related problems here. Making initrd match ${rdaddr} would be best done by doing "initrd=${rdaddr}" here, same as whacking in the
For keystone devices we load filesystem at ${rdaddr}, but need to pass to the kernel initrd=<${rdaddr} + 0x780000000)>, which is LPAE address.
How can I do that w/o using absolute address?
previous ${bootargs}. Second $ grep rdaddr include/configs/ti_armv7_common.h "rdaddr=0x88080000\0" \
So you aren't making it match here either. Finally (and please test this..), do you _need_ to pass in the size parameter here? I'm assuming that this is _not_ a uImage'd ramdisk here but instead a raw one so we end up with the case of the kernel would know where the ramdisk starts but would assume a max size of whatever it was compiled with and then find an incomplete rootfs, right? If so then yes, that's fine, we can continue passing in (and updating in the second patch as you are) the size parameter, I just want to be sure we aren't missing out on some "new" smarts that exist in the kernel. Thanks!
You are right. That is to load a standalone file system to the ram and let kernel to know the start address.
Thanks
"no_post=1\0" \ "mtdparts=mtdparts=davinci_nand.0:" \ "1024k(bootloader)ro,512k(params)ro,-(ubifs)\0" -- 1.9.1
U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot

On Tue, Aug 04, 2015 at 11:45:17AM -0400, Vitaly Andrianov wrote:
On 08/04/2015 11:23 AM, Tom Rini wrote:
On Tue, Aug 04, 2015 at 11:16:15AM -0400, Vitaly Andrianov wrote:
This patch set the correct initrd address to much rdaddr, which used at get_fs_ramfs commad.
Fixes: 3e97f0b63c8e ("configs: ti_armv7_keystone2: switch addresses to generic addresses")
Signed-off-by: Vitaly Andrianov vitalya@ti.com
include/configs/ti_armv7_keystone2.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/configs/ti_armv7_keystone2.h b/include/configs/ti_armv7_keystone2.h index 7b67620..454f1df 100644 --- a/include/configs/ti_armv7_keystone2.h +++ b/include/configs/ti_armv7_keystone2.h @@ -253,7 +253,7 @@ "init_ramfs=run args_all args_ramfs get_fs_ramfs\0" \ "args_ramfs=setenv bootargs ${bootargs} " \ "rdinit=/sbin/init rw root=/dev/ram0 " \
"initrd=0x802000000,9M\0" \
"initrd=0x808080000,9M\0" \
There's two related problems here. Making initrd match ${rdaddr} would be best done by doing "initrd=${rdaddr}" here, same as whacking in the
For keystone devices we load filesystem at ${rdaddr}, but need to pass to the kernel initrd=<${rdaddr} + 0x780000000)>, which is LPAE address.
Why do you need to do that? Shouldn't the kernel be able to move things around as needed? But if we must then please do some expr to do that addition so that if people change rdaddr they don't get unexpected breakage.

On Tue, Aug 04, 2015 at 11:16:15AM -0400, Vitaly Andrianov wrote:
This patch set the correct initrd address to much rdaddr, which used at get_fs_ramfs commad.
Fixes: 3e97f0b63c8e ("configs: ti_armv7_keystone2: switch addresses to generic addresses")
Signed-off-by: Vitaly Andrianov vitalya@ti.com
So after thinking about this more, I bet that no, on a 32bit platform setexpr probably does not do the right thing with 64bit math so rather than doing a lot of hoop jumping for a simple thing, lets just fix this the simple way.
Applied to u-boot/master, thanks!

9MB reserved for initrd is not enough for default ramfs used for keystone devices, which is ~33MB. This patch increases the size up to 80MB.
Signed-off-by: Vitaly Andrianov vitalya@ti.com --- include/configs/ti_armv7_keystone2.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/configs/ti_armv7_keystone2.h b/include/configs/ti_armv7_keystone2.h index 454f1df..316d0ad 100644 --- a/include/configs/ti_armv7_keystone2.h +++ b/include/configs/ti_armv7_keystone2.h @@ -253,7 +253,7 @@ "init_ramfs=run args_all args_ramfs get_fs_ramfs\0" \ "args_ramfs=setenv bootargs ${bootargs} " \ "rdinit=/sbin/init rw root=/dev/ram0 " \ - "initrd=0x808080000,9M\0" \ + "initrd=0x808080000,80M\0" \ "no_post=1\0" \ "mtdparts=mtdparts=davinci_nand.0:" \ "1024k(bootloader)ro,512k(params)ro,-(ubifs)\0"

On Tue, Aug 04, 2015 at 11:16:16AM -0400, Vitaly Andrianov wrote:
9MB reserved for initrd is not enough for default ramfs used for keystone devices, which is ~33MB. This patch increases the size up to 80MB.
Signed-off-by: Vitaly Andrianov vitalya@ti.com
Applied to u-boot/master, thanks!
participants (2)
-
Tom Rini
-
Vitaly Andrianov