problem with 2GB DDR3 on i.MX6 (nitrogen6q2g board)

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

problem with 2GB DDR3 on i.MX6 (nitrogen6q2g board)

Jump to solution
2,619 Views
frédéric
Contributor III

We are using a Nitrogen6q board, configured with 2GB of DDR3. I used the calibration excel sheet, run stress tool overnight, everythings ok, double checked DDR registers, timing, cs0 end, rows/columns, etc.

Kernel is 3.0.35 and Android is JB 4.2.2

Problem is as follow:

With 2GB enabled, both in u-boot and in board-mx6_nitrogen6x.c with the memblock_alloc_base(imx6_gpu_pdata.reserved_mem_size,SZ_4K, SZ_2G) call, in Android when we move the mouse pretty fast to slide screen left and right, sometimes the screen become black, system freeze, and the HW watchdog kick after 30 seconds. Some benchmarks quickly kill the board too. No logcat, nothing.

If we configure with 1GB, everything runs ok.

I discovered that some people have a somewhat related problem with 2GB (however we do not have trailing cursor problem)

Problem configuring 2GB DDR3 on i.MX6 Android BSP?

any one use 2GB ddr3 with imx6q android bsp?

On our board, if we disable hwcomposer_viv.imx6.so component, everything works ok with 2GB.

So it seems we have a related problem with 2GB, memory mapping, framebuffer base, GPU, something.

Anyone has a clue as to the change we have to do to make this works with 2GB of ram?

Labels (3)
Tags (3)
0 Kudos
1 Solution
991 Views
frédéric
Contributor III

There is *something* that make it not reproduceable, maybe like the people who got the black trailing cursor.

Anyway I ported the code from sabreSD to the nitrogen6x to change the fb0base, and it worked over the weekend without crash... so moving the fb0base out of the 0x80000000-0x8FFFFFFF did the trick. Why? not exactly sure...

EDIT: to make it crash before my change, it seems it happened more quickly by settings a live wallpaper like nexus, and also by quickly dragging screen left or right to change screen.

View solution in original post

0 Kudos
6 Replies
991 Views
EricNelson
Senior Contributor II

Are you using our latest U-Boot to do the configuration?

We had some updates in the 2013.10 release for 2GiB DDR calibration:

     http://boundarydevices.com/u-boot-2013-10-release-2/#2g

I think I have a 2GiB Nitrogen6x on my desk, so I can test pretty easily.

When you say that you "configured for 1GB", what do you mean, precisely? The configuration settings for 1GiB are different in a number of ways, and the only way I know of to isolate the Android portions is to leave U-Boot alone and force the Linux kernel to use 1GiB through the "mem=" parameter.

0 Kudos
991 Views
EricNelson
Senior Contributor II

Hi Frédéric,

I just tested using our latest image on a 2GiB board and things just work.

     http://boundarydevices.com/bluetooth-on-jellybean/

The default boot script comes up at 720P, but otherwise things appear

the same.


Besides moving the mouse cursor quickly, is there anything else you've

done to make this happen?

0 Kudos
992 Views
frédéric
Contributor III

There is *something* that make it not reproduceable, maybe like the people who got the black trailing cursor.

Anyway I ported the code from sabreSD to the nitrogen6x to change the fb0base, and it worked over the weekend without crash... so moving the fb0base out of the 0x80000000-0x8FFFFFFF did the trick. Why? not exactly sure...

EDIT: to make it crash before my change, it seems it happened more quickly by settings a live wallpaper like nexus, and also by quickly dragging screen left or right to change screen.

0 Kudos
991 Views
frédéric
Contributor III

Yes I use the latest calibration and I even redid it myself to check.

When I say configured for 1GB, I changed the DDR_MB=2048 to DDR_MB=1024 in boards.cfg and change SZ_2GB to SZ_1GB in board-mx6_nitrogen6x.c

0 Kudos
991 Views
KursadOney
NXP Employee
NXP Employee

Did you follow the recommendations in the second link? Does that solve any of the issues? Have you tried to tweak fbmem and gpumem parameters? Check out this thread: Memory Management on i.MX6 Android .

0 Kudos
991 Views
frédéric
Contributor III

We have one display at 1920x1080p 32bits, we reserved 48MB for the fbmem. We have not touch gpumem, default seems to be 176MB in the code. I will check the page you mention.

EDIT:

It seems on the nitrogen6x we can not set the fb0base bootarg, it does not exist in board-mx6_nitrogen6x.c, only in board-mx6q_sabresd.c

0 Kudos