This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Change DUCATI memory in OMAP4 kernel and DUCATI

Dear Sir,

We met an question about DUCATI4.1.1. Because it's a little urgent, so we would be grateful if you could attend to this matter as soon as possible,thanks.

Our environment is based on Android4.1.1 ,OMAP4460 and Ducati 4.1.1. And our question is, our ducati works fine with 1GB ram but meet some trouble if change some memory section. We do some experiments as below and please tell us where we miss if you can, thanks.

  • In original case,  we arrange the ducati memory in omap4_ion.c (The file is in the path of /kernel/android-3.0/arch/arm/mach-omap2)as below

I/kernel  (  284): [    0.000000] omap4_total_ram_size = 0x40000000
I/kernel  (  284): [    0.000000] omap4_smc_size = 0x300000
I/kernel  (  284): [    0.000000] omap4_ion_heap_secure_input_size = 0x5a00000
I/kernel  (  284): [    0.000000] omap4_ion_heap_secure_output_wfdhdcp_size = 0x1000000
I/kernel  (  284): [    0.000000] omap4_ducati_heap_size = 0x6b00000
I/kernel  (  284): [    0.000000] omap4_ion_heap_tiler_mem_size = 0x5580000
I/kernel  (  284): [    0.000000] omap4_ion_heap_nonsec_tiler_mem_size  = 0xc80000
I/kernel  (  284): [    0.000000] omap4_ram_console_mem_size = 0x200000


I/kernel  (  284): [    0.000000]  omap4_smc_addr = 0xbfd00000
I/kernel  (  284): [    0.000000] omap4_ion_heap_secure_input_addr = 0xb9300000
I/kernel  (  284): [    0.000000] omap4_ion_heap_secure_output_wfdhdcp_addr = 0xbed00000
I/kernel  (  284): [    0.000000] omap4_ducati_heap_addr = 0xb2800000
I/kernel  (  284): [    0.000000] omap4_ion_heap_tiler_mem_addr = 0xad280000
I/kernel  (  284): [    0.000000] omap4_ion_heap_nonsec_tiler_mem_addr  = 0xac600000
I/kernel  (  284): [    0.000000] omap4_ram_console_mem_addr = 0xac400000

Camera is working fine in this case.

  • In Modified case, we try to change two specific section in OMAP kernel side and DUCAITI side but camera can't open successfully. (The system is working fine, but if tap camera icon to launch in camera, the camera will show an icon "Can't connect to camera". And the camera will be closed.) We try to change the memory address of omap4_ion_heap_secure_input_addr and omap4_ion_heap_secure_output_wfdhdcp_addr in omap4_ion.c. So the memory allocation will show as

I/kernel  (  278): [    0.000000] omap4_total_ram_size = 0x40000000
I/kernel  (  278): [    0.000000] omap4_smc_size = 0x300000
I/kernel  (  278): [    0.000000] omap4_ion_heap_secure_input_size = 0x5a00000
I/kernel  (  278): [    0.000000] omap4_ion_heap_secure_output_wfdhdcp_size = 0x1000000
I/kernel  (  278): [    0.000000] omap4_ducati_heap_size = 0x6b00000
I/kernel  (  278): [    0.000000] omap4_ion_heap_tiler_mem_size = 0x5580000
I/kernel  (  278): [    0.000000] omap4_ion_heap_nonsec_tiler_mem_size  = 0xc80000
I/kernel  (  278): [    0.000000] omap4_ram_console_mem_size = 0x200000

I/kernel  (  278): [    0.000000]omap4_smc_addr = 0xbfd00000

I/kernel  (  278): [    0.000000] omap4_ion_heap_secure_output_wfdhdcp_addr = 0xbed00000
I/kernel  (  278): [    0.000000] omap4_ion_heap_secure_input_addr = 0xb9300000

I/kernel  (  278): [    0.000000] omap4_ducati_heap_addr = 0xb2800000
I/kernel  (  278): [    0.000000] omap4_ion_heap_tiler_mem_addr = 0xad280000
I/kernel  (  278): [    0.000000] omap4_ion_heap_nonsec_tiler_mem_addr  = 0xac600000
I/kernel  (  278): [    0.000000] omap4_ram_console_mem_addr = 0xac4

Obviously, these two sections are exchanged.

By the way, we refer to the website -  http://omappedia.org/wiki/Memory_Map_Information_-_Ducati

To correct the corresponding memory address in Ducati. The following expressions are we correct in /syslink_src/src/ti/resources/IpcMemory.xdt

#define PHYS_MEM_IOBUFS         0xB9300000

&

#define PHYS_MEM_IOBUFS_WFD     0xBED00000

and their order in resource table. So we can find the following info after we build ducati.

patching address 0x9f0f02d8
resource: 1, da: 0x60000000, pa: 0x60000000, len: 0x10000000, name: IPU_TILER_MODE_0_1
found M/I/D/S resource, nothing to do
resource: 1, da: 0x70000000, pa: 0x70000000, len: 0x 8000000, name: IPU_TILER_MODE_2
found M/I/D/S resource, nothing to do
resource: 1, da: 0x78000000, pa: 0x78000000, len: 0x 8000000, name: IPU_TILER_MODE_3
found M/I/D/S resource, nothing to do
resource: 1, da: 0xaa000000, pa: 0x4a000000, len: 0x 1000000, name: IPU_PERIPHERAL_L4CFG
found M/I/D/S resource, nothing to do
resource: 1, da: 0xa8000000, pa: 0x48000000, len: 0x 1000000, name: IPU_PERIPHERAL_L4PER
found M/I/D/S resource, nothing to do
resource: 1, da: 0xae000000, pa: 0x4e000000, len: 0x  100000, name: IPU_PERIPHERAL_DMM
found M/I/D/S resource, nothing to do
resource: 1, da: 0xba000000, pa: 0x5a000000, len: 0x 1000000, name: IPU_IVAHD_CONFIG
found M/I/D/S resource, nothing to do
resource: 1, da: 0xbb000000, pa: 0x5b000000, len: 0x 1000000, name: IPU_IVAHD_SL2
found M/I/D/S resource, nothing to do
resource: 0, da: 0xa0000000, pa: 0xb2800000, len: 0x  100000, name: IPU_MEM_IPC_VRING
found M/I/D/S resource, nothing to do
resource: 0, da: 0x9f000000, pa: 0xb2900000, len: 0x  100000, name: IPU_MEM_IPC_DATA
found M/I/D/S resource, nothing to do
resource: 0, da: 0x0, pa: 0xb2a00000, len: 0x  600000, name: IPU_MEM_TEXT
found M/I/D/S resource, nothing to do
resource: 0, da: 0x80000000, pa: 0xb3100000, len: 0x 6200000, name: IPU_MEM_DATA
found M/I/D/S resource, nothing to do
resource: 0, da: 0x88000000, pa: 0xb9300000, len: 0x 5a00000, name: IPU_MEM_IOBUFS
found M/I/D/S resource, nothing to do
resource: 0, da: 0x90000000, pa: 0xbed00000, len: 0x  800000, name: IPU_MEM_IOBUFS_WFD
found M/I/D/S resource, nothing to do

So we can say these two memory sections are exchanged.

But the camera can't work properly if the memory address is changed as below we mentioned.  Please tell us if any suggestion you have, thanks. We will really appreciate your kindly help.

BR

Wolf