[U-Boot] nand_scan() in ARM9 S3C2410

Hi, everyone
I'm using u-boot for ARM9 S3C2410. My tool chain is ELDK4.2.
I defined configuration "CONFIG_NAND_CMD, CONFIG_SYS_MAX_NAND_DEVICE 1, and CONFIG_SYS_NAND_BASE 0x4E00000C" for nand_init().
It works well until the routine reaches nand_scan() which is in nand_base.c When nand_scan() is called, the system hangs.
For test, When I written dummy function is nand_base.c and called the dummy function from nand.c, the system is down.
My u-boot is using relocation to SDRAM from NAND. The address of nand_scan() is 0x31F85894. (TEXT_BASE is 0x31F80000 and SDRAM start from 0x30000000) I'm sured that the binary data of u-boot.bin (address 0x5894) is same with SDRAM data in 0x31F85894. I think the relocation is OK.
When I attached the routines of nand_base.c to nand.c, the nand_scan() function passed.
Is there any hint for this problem?
Thanks in advnace.
Regards, J.Hwan Kim

Dear J.Hwan.Kim
2009/9/20 J.Hwan.Kim frog1120@gmail.com:
Hi, everyone
I'm using u-boot for ARM9 S3C2410. My tool chain is ELDK4.2.
I defined configuration "CONFIG_NAND_CMD, CONFIG_SYS_MAX_NAND_DEVICE 1, and CONFIG_SYS_NAND_BASE 0x4E00000C" for nand_init().
It works well until the routine reaches nand_scan() which is in nand_base.c When nand_scan() is called, the system hangs.
For test, When I written dummy function is nand_base.c and called the dummy function from nand.c, the system is down.
My u-boot is using relocation to SDRAM from NAND. The address of nand_scan() is 0x31F85894. (TEXT_BASE is 0x31F80000 and SDRAM start from 0x30000000) I'm sured that the binary data of u-boot.bin (address 0x5894) is same with SDRAM data in 0x31F85894. I think the relocation is OK.
When I attached the routines of nand_base.c to nand.c, the nand_scan() function passed.
Is there any hint for this problem?
Thanks in advnace.
Regards, J.Hwan Kim
U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Did you check the kevin's mail? He said "u-boot for s3c2410 doesn't support". http://lists.denx.de/pipermail/u-boot/2009-September/060855.html
And I think.. you can trace nand_scan() step by step. please try it and do more detailed question.
Thanks Minkyu Kang

Minkyu Kang wrote:
Dear J.Hwan.Kim
2009/9/20 J.Hwan.Kim frog1120@gmail.com:
Hi, everyone
I'm using u-boot for ARM9 S3C2410. My tool chain is ELDK4.2.
I defined configuration "CONFIG_NAND_CMD, CONFIG_SYS_MAX_NAND_DEVICE 1, and CONFIG_SYS_NAND_BASE 0x4E00000C" for nand_init().
It works well until the routine reaches nand_scan() which is in nand_base.c When nand_scan() is called, the system hangs.
For test, When I written dummy function is nand_base.c and called the dummy function from nand.c, the system is down.
My u-boot is using relocation to SDRAM from NAND. The address of nand_scan() is 0x31F85894. (TEXT_BASE is 0x31F80000 and SDRAM start from 0x30000000) I'm sured that the binary data of u-boot.bin (address 0x5894) is same with SDRAM data in 0x31F85894. I think the relocation is OK.
When I attached the routines of nand_base.c to nand.c, the nand_scan() function passed.
Is there any hint for this problem?
Thanks in advnace.
Regards, J.Hwan Kim
U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Did you check the kevin's mail? He said "u-boot for s3c2410 doesn't support". http://lists.denx.de/pipermail/u-boot/2009-September/060855.html
u-boot for s3c2410 doesn't support booting from NAND flash, but assuming you boot from NOR flash and have NAND enabled properly in the board config file it does support the use of NAND flash.
In the NAND config you show in your email, it's probably a typo but it should be CONFIG_CMD_NAND not CONFIG_NAND_CMD.
If that's not the problem - I'm not sure what board you're using. If you're using an existing config file post the name of it, or if you're using one you've created post the board config file itself.
Regards Kevin Morfitt
And I think.. you can trace nand_scan() step by step. please try it and do more detailed question.
Thanks Minkyu Kang

kevin.morfitt@fearnside-systems.co.uk wrote:
Minkyu Kang wrote:
Dear J.Hwan.Kim
2009/9/20 J.Hwan.Kim frog1120@gmail.com:
Hi, everyone
I'm using u-boot for ARM9 S3C2410. My tool chain is ELDK4.2.
I defined configuration "CONFIG_NAND_CMD, CONFIG_SYS_MAX_NAND_DEVICE 1, and CONFIG_SYS_NAND_BASE 0x4E00000C" for nand_init().
It works well until the routine reaches nand_scan() which is in nand_base.c When nand_scan() is called, the system hangs.
For test, When I written dummy function is nand_base.c and called the dummy function from nand.c, the system is down.
My u-boot is using relocation to SDRAM from NAND. The address of nand_scan() is 0x31F85894. (TEXT_BASE is 0x31F80000 and SDRAM start from 0x30000000) I'm sured that the binary data of u-boot.bin (address 0x5894) is same with SDRAM data in 0x31F85894. I think the relocation is OK.
When I attached the routines of nand_base.c to nand.c, the nand_scan() function passed.
Is there any hint for this problem?
Thanks in advnace.
Regards, J.Hwan Kim
U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Did you check the kevin's mail? He said "u-boot for s3c2410 doesn't support". http://lists.denx.de/pipermail/u-boot/2009-September/060855.html
u-boot for s3c2410 doesn't support booting from NAND flash, but assuming you boot from NOR flash and have NAND enabled properly in the board config file it does support the use of NAND flash. In the NAND config you show in your email, it's probably a typo but it should be CONFIG_CMD_NAND not CONFIG_NAND_CMD.
First of all, thank you for replies.
I solved the problem, which was not nand_scan routine() problem. My board is DEP-2410 which is not included in an official U-boot. I modifies smdk2410_config for my board. However, I received an unofficial code from the company making DEP-2410 board, which enables NAND booting. The code includes routines for nand initialization before relocation to SDRAM and the routines copying pages from NAND to SDRAM.
My mistake was that I did not increased the relocation size after including nand related code by defining CONFIG_CMD_NAND and others. The relocation size was defined in the code received from the DEP-2410 board company. By defining CONFIG_CMD_NAND, the code size increased over 128Kbytes. The size of original code ,which did not include NAND related code, was about 93Kbytes and my relocation code size was defined as 128KBytes. So, when code branches to over 128Kbytes, strange code is executed and system hangs. It was my mistake.
Regards, J.Hwan Kim
If that's not the problem - I'm not sure what board you're using. If you're using an existing config file post the name of it, or if you're using one you've created post the board config file itself.
Regards Kevin Morfitt
And I think.. you can trace nand_scan() step by step. please try it and do more detailed question.
Thanks Minkyu Kang
participants (3)
-
J.Hwan.Kim
-
kevin.morfitt@fearnside-systems.co.uk
-
Minkyu Kang