Hi,
I am trying to bring up my I.MX28 based board with MT47H32M16:HR -3 DDR2 SDRAM. I am trying to put the custom built kernel into RAM using the MfgTool. It is executing the bootlets and stops at Uncompressing Linux... It is not printing "done, booting the kernel."
FYI: I am able execute U-BOOT and able to get prompt. When I try to load kernel from U-BOOT, it stops exactly at the same location.
Any ideas/pointers/solutions welcome.
Balaji.V
Thanks very much for help, will dig some more.
BR,
Rt
Hi Rt,
Extremely sorry. I had to give up i.MX28 as I didnt had time and bandwidth to continue my experiments on this RAM and Processor combo. It may take some more time to continue my experiments on that board.
To help you, take a look at the following link. It will lead you to an xlsx file that will do the register settings when you enter your RAM configuration.
www.imxdev.org/wiki/index.php?title=Board_bring-up_and_DDR_initialization_tools
Hope this helps. Request you to post the timing configuration, if it works, so that it would be of much help to others.
Regards,
Balaji
Rt said:
Hi All,
We have build a custom board with i.mx280 and ddr2 from micron 64mb.Looks like its memory timing issue, we are using default bootlet setting , with obvious change , bank size to 4 banks and SDRAM_SIZE .
Issue we see : when writer to DDR2 ( DDR base to max size), its fails after some writer ( random ) , so if we add delay write and read and then write , work well.
So , this looks like memory timing issue.
Will appreciate any one have experience dealing this issue , point me in right direction !!!!
Any help appreciated !!!
Thanks ,
RA
Hi All,
We have build a custom board with i.mx280 and ddr2 from micron 64mb.Looks like its memory timing issue, we are using default bootlet setting , with obvious change , bank size to 4 banks and SDRAM_SIZE .
Issue we see : when writer to DDR2 ( DDR base to max size), its fails after some writer ( random ) , so if we add delay write and read and then write , work well.
So , this looks like memory timing issue.
Will appreciate any one have experience dealing this issue , point me in right direction !!!!
Any help appreciated !!!
Thanks ,
RA
Hi Balaji,
Will appreciate if you share your expreance solving , your board bring up, we have same issue , Kernel stops after Uncompressing Linux... ,
BR,
RT
Hi all,
We understood our problem some weeks ago but we missed to inform the community.
In fact , we modified the file " init-MX28.c" in the uboot source, but we took time to understand that the same kind of tables exist in the the kernel source and need to be modifed in the convenient file : mach-mx28/emi_setting.c => table "void DDR2EmiController_EDE1116_200MHz(void)" , 166MHz and 133MHz => DRAM_REG[31] value changed for "0x00000101" , for 4 banks 512Mbits setting) .
An other modification was the DRAM size deifinition in the Uboot sources "imx-bootlet_xxx/linux_prep/include/mx28/platform.h :
#define SDRAM_SIZE 0x08000000 //1Gb
changed for
#define SDRAM_SIZE 0x04000000 //512Mb
I think there are no other required changes.
Now kernel boots fine with our board, and I could check that EMI supports change from 200MHz to 166MHz parameters , but there is still a freeze problem with 133MHz parameter table.
To test that, I use the command lines as described in the "MX28_linux_BSP_RM.pdf" CPU Frequency Scaling (CPUFREQ) Driver p55. I have changed the DDR freq in file "bus_freq.c", struct profile profiles[] = {} associated to 360MHz cpu freq :
{ 454736, 151570, 205710, 0, 1550000,
1450000, 355000, 3300000, 1750000, 24000, 0 },
{ 360000, 120000, 166000, 0, 1350000, // DDR 166000 instead of default 130910
1250000, 200000, 3300000, 1750000, 24000, 0 },
{ 261818, 130910, 130910, 0, 1350000,
1250000, 173000, 3300000, 1750000, 24000, 0 },
{ 64000, 64000, 130910, 3, 1350000,
1250000, 150000, 3300000, 1750000, 24000, 0 },
{ 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 },
"cpu 454.736MHz/DDR 205.710MHz" setting and "cpu 360MHz/DDR 166MHz" setting are working fine but Cpu 261.818 / DDR 130.910 setting is not working.
regards
jy
Hi,
I have designed my own i.MX28 board and I use the Micron DDR2 "MT47H32M16HR-3:F".U-boot correctly starts , but I face an other issue during linux boot process with a freeze after message :
mxs_cpu_init: cpufreq init finished.We have tried to track the following functions and they are related to "cpu power management" module.
(cpu freq governor).
My assumption is this freeze issue can be related to SDRAM controller or power management problems.
Regarding the SDRAM controller adaptation for this 64Mbytes memory (default parameters are for 128MBytes one) ,
I have only changed the "number of bank" parameter from 8 banks to 4 banks.
file "init-MX28.c" line 759
table : void DDR2EmiController_EDE1116_200MHz(void)
DRAM_REG[31] = 0x00010101; // 8 banks 1Gbit
replaced with
DRAM_REG[31] = 0x00000101; // 4 banks 512Mbits
Did you note other parameters that need to be changed?
regards
jy
oops, I got the same problem.
I can use uboot to download uImage and then boot up successfully.
But, when I flash imx28_ivt_linux.sb to SD card.
It stops at uncompressing linux.....done, booting the kernel.
I have similar problem days before.
1. Check your EMI configuration. Then test all memory space.
2. Check power supply for SDRAM
3. Make sure your kernel download to correct address.
I flash my uboot to SD card and boot kernel using uboot. Don't know how to use Mfgtool to download my kernel to SDRAM,
http://processors.wiki.ti.com/index.php/Kernel_-_Common_Problems_Booting_Linux
MX28, MFGtool:Nand Linux update failed,
debug port output info:
..............................
..............................
UTP: sending Success
UTP: received command 'mknod class/ubi,ubi0,/dev/ubi0'
class = 'class/ubi'
item = 'ubi0'
node = /dev/ubi0
type = (null)
UTP: running utp_mk_devnode(class/ubi,ubi0,/dev/ubi0,0x2000)
utp_mk_devnode: creating node '/dev/ubi0' with 252+0
UTP: sending Success
UTP: received command '$ ubimkvol /dev/ubi0 -n 0 -N rootfs0 -s 256MiB'
UTP: sending Busy
UTP: executing "ubimkvol /dev/ubi0 -n 0 -N rootfs0 -s 256MiB"
UBI error: ubi_create_volume: cannot create volume 0, error -28
ubimkvol: error!: cannot UBI create volume
error 28 (No space left on device)
UTP: sending Non-success
utp_poll: exit with status 65280
There are many things which can stop output after "done, booting the kernel." In my case it was because the name of the serial port was changed from ttyAM0 to ttyAMA0. Try using printascii() to debug; if this works consider putting a printascii() in the definition of printk() (kernel/printk.c).
Hi,
I have designed my own i.MX28 board and I use the Micron DDR2 "MT47H32M16HR-3:F".
U-boot correctly starts , but I face an other issue during linux boot process with a freeze after message :
mxs_cpu_init: cpufreq init finished.
We have tried to track the following functions and they are related to "cpu power management" module.
(cpu freq governor).
My assumption is this freeze issue can be related to SDRAM controller or power management problems.
Regarding the SDRAM controller adaptation for this 64Mbytes memory (default parameters are for 128MBytes one) ,
I have only changed the "number of bank" parameter from 8 banks to 4 banks.
file "init-MX28.c" line 759
table : void DDR2EmiController_EDE1116_200MHz(void)
DRAM_REG[31] = 0x00010101; // 8 banks 1Gbit
replaced with
DRAM_REG[31] = 0x00000101; // 4 banks 512Mbits
Did you note other parameters that need to be changed?
regards
jy
Most often this is due to memory timing/signal integrity issue. Go through the memory controller setup done in the bootlets and see if anything needs changing for the memory that you are using.
Vladan
Nothing Yet. For me, I am not able to boot with even MX-supplied kernel on my custom board. So I came to the conclusion that it is the problem with memory timing. Is there anybody who has the timing configuration for MT47H32M16:HR -3. I have followed the excel sheet that came with OBDS suite. But nothing works out.
I am still missing out something.
Signal Integrity could also be an issue. How important is adding 22E series resistance on DDR2 DataLine Path?
Regards,
Balaji.V
Zbikowski said:
Bump. Any progress? I boot fine with the MX-supplied kernel but halt at the same place trying to boot a custom one. Try enabling KERNEL_DEBUG and KERNEL_DEBUG_LL in your .config.
Bump. Any progress? I boot fine with the MX-supplied kernel but halt at the same place trying to boot a custom one. Try enabling KERNEL_DEBUG and KERNEL_DEBUG_LL in your .config.
Hi,
I could trace the point till where it is executing. it is not returning from zlib_inflate() function.
Kindly let me know is it the problem with the Kernel misconfiguration or memory timing.
Regards,
Balaji.V