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.

Linux/AM5726: Problem with 4GB DDR

Part Number: AM5726
Other Parts Discussed in Thread: TPIC2810

Tool/software: Linux

Hi,

We are trying to map 4GB into our custom board using the AM5726.

We have done the following:

I have attached the patch file containing the changes for mapping in 4GB of memory and well as the DDR register file.  I noticed that the table for trace lengths has no values.  For now we are using the Beagle Board trace lengths.  debug_files.zipLinux shows the high 2GB is mapped in.

from cat /proc/iomem

80000000-9fffffff : System RAM
80008000-80dfffff : Kernel code
81000000-810925fb : Kernel data
ac000000-ffffffff : System RAM
200000000-27fcfffff : System RAM

however

exceptions occurs when the 2 GB is accessed by running memtester.

Output is here:

root@am57xx-evm:~# memtester 2G
memtester version 4.3.0 (32-bit)
Copyright (C) 2001-2012 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffff000
want 2048MB (2147483648 bytes)
got  2048MB (2147483648 bytes), trying mlock ...[   55.769083] Unhandled fault: asynchronous external abort (0x211) at 0x00000000
[   55.776347] pgd = edcb7840
[   55.779068] [00000000] *pgd=ae113003, *pmd=27f9dc003
[   55.784067] Internal error: : 211 [#1] PREEMPT SMP ARM
[   55.789230] Modules linked in: dwc3 udc_core usb_common ti_prueth pru_rproc pruss pruss_intc omap_aes_driver c_can_platform c_can can_dev omap_wdt pruss_soc_bus omap_sham dwc3_omap rtc_omap gpio_pisosr gpio_tpic2810 extcon_palmas rtc_palmas omap_des des_generic crypto_engine omap_crypto omap_remoteproc virtio_rpmsg_bus rpmsg_core remoteproc sch_fq_codel cryptodev(O)
[   55.821910] CPU: 0 PID: 746 Comm: memtester Tainted: G           O    4.14.40-g4796173fc5 #39
[   55.830473] Hardware name: Generic DRA74X (Flattened Device Tree)
[   55.836594] task: edf206c0 task.stack: ee11c000
[   55.841155] PC is at __memzero+0x24/0x7c
[   55.845097] LR is at 0x0
[   55.847641] pc : [<c0946a84>]    lr : [<00000000>]    psr: 200e0013
[   55.853936] sp : ee11dddc  ip : 00000000  fp : ee11ddf4
[   55.859181] r10: b3d32000  r9 : 0007ce66  r8 : ffffe000
[   55.864431] r7 : d21f7000  r6 : eead05b0  r5 : 00000000  r4 : ffefe000
[   55.870987] r3 : 00000000  r2 : 00000000  r1 : 00000dc0  r0 : ffefe200
[   55.877544] Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[   55.884710] Control: 30c5387d  Table: adcb7840  DAC: fffffffd
[   55.890480] Process memtester (pid: 746, stack limit = 0xee11c210)
[   55.896688] Stack: (0xee11dddc to 0xee11e000)
[   55.901063] ddc0:                                                                c021911c
[   55.909279] dde0: b3d32000 00000000 ee11de84 ee11ddf8 c0311fd4 c021910c ee11de1c ee11de08
[   55.917494] de00: 00001053 eead05b0 b3d32000 eea3acf0 ee11de84 ee11de20 eead05b0 00000005
[   55.925707] de20: 014000c0 000b3d32 b3d32000 eea3acf0 edcb7850 00000000 00000000 00000000
[   55.933921] de40: 00000000 00000000 00000000 00000000 00000000 00000000 ffffe000 eead05b0
[   55.942135] de60: 00001053 00000010 ee11c000 ffffe000 0007ce66 b3d32000 ee11def4 ee11de88
[   55.950351] de80: c030ba60 c0311a28 ee11dec4 c104aba0 00000001 ee0a01c0 ee11ded4 ee11dea8
[   55.958566] dea0: c0316154 c1003e64 c1006d44 c1078500 fffff000 edf206c0 ee0a01c0 0000319a
[   55.966779] dec0: 36ecc000 00000000 ee11dee4 00000000 ee11df34 00001042 b6ecc000 ee0a01c0
[   55.974997] dee0: ee0a01fc 00000001 ee11df24 ee11def8 c030c4b8 c030b910 00001053 00000000
[   55.983212] df00: 00000000 ee11df34 36ecc000 36ecc000 eead05b0 b6ecc000 ee11df64 ee11df28
[   55.991424] df20: c030c56c c030c44c ee11df64 00000000 c0313b90 00000001 00102073 36ecc000
[   55.999641] df40: 00000000 80000000 00000010 ffffe000 00080000 00000000 ee11df94 ee11df68
[   56.007854] df60: c0313ccc c030c4cc 36ecc000 80000000 36ecb008 00012a28 00000096 c0207e64
[   56.016069] df80: ee11c000 00000000 ee11dfa4 ee11df98 c0313f28 c0313bcc 00000000 ee11dfa8
[   56.024283] dfa0: c0207c80 c0313f20 80000000 36ecb008 36ecc000 7ffff008 00001000 36ecc000
[   56.032497] dfc0: 80000000 36ecb008 00012a28 00000096 0002311c 7ffff008 00001000 fffff000
[   56.040715] dfe0: b6f5cd61 bea2bb9c 00010d8c b6f5cd68 800b0030 36ecc000 39b46a1d 39b47a1d
[   56.048926] Backtrace:
[   56.051402] [<c0219100>] (v6_clear_user_highpage_nonaliasing) from [<c0311fd4>] (handle_mm_fault+0x5b8/0xc50)
[   56.061358]  r5:00000000 r4:b3d32000
[   56.064955] [<c0311a1c>] (handle_mm_fault) from [<c030ba60>] (__get_user_pages+0x15c/0x540)
[   56.073344]  r10:b3d32000 r9:0007ce66 r8:ffffe000 r7:ee11c000 r6:00000010 r5:00001053
[   56.081208]  r4:eead05b0
[   56.083757] [<c030b904>] (__get_user_pages) from [<c030c4b8>] (populate_vma_page_range+0x78/0x80)
[   56.092670]  r10:00000001 r9:ee0a01fc r8:ee0a01c0 r7:b6ecc000 r6:00001042 r5:ee11df34
[   56.100531]  r4:00000000
[   56.103080] [<c030c440>] (populate_vma_page_range) from [<c030c56c>] (__mm_populate+0xac/0x14c)
[   56.111815]  r6:b6ecc000 r5:eead05b0 r4:36ecc000
[   56.116458] [<c030c4c0>] (__mm_populate) from [<c0313ccc>] (do_mlock+0x10c/0x22c)
[   56.123973]  r10:00000000 r9:00080000 r8:ffffe000 r7:00000010 r6:80000000 r5:00000000
[   56.131834]  r4:36ecc000
[   56.134386] [<c0313bc0>] (do_mlock) from [<c0313f28>] (SyS_mlock+0x14/0x18)
[   56.141379]  r10:00000000 r9:ee11c000 r8:c0207e64 r7:00000096 r6:00012a28 r5:36ecb008
[   56.149242]  r4:80000000 r3:36ecc000
[   56.152839] [<c0313f14>] (SyS_mlock) from [<c0207c80>] (ret_fast_syscall+0x0/0x4c)
[   56.160444] Code: e52de004 e1a0c002 e1a0e002 e2511040 (a8a0500c)
[   56.166566] ---[ end trace 34480c3e47f49e93 ]---
[   56.171284] note: memtester[746] exited with preempt_count 1
[   56.188093] Unhandled fault: asynchronous external abort (0x211) at 0x00000000
[   56.195351] pgd = ee878fc0
[   56.198070] [00000000] *pgd=ae8c7003, *pmd=00000000
[   56.202981] Internal error: : 211 [#2] PREEMPT SMP ARM
[   56.208141] Modules linked in: dwc3 udc_core usb_common ti_prueth pru_rproc pruss pruss_intc omap_aes_driver c_can_platform c_can can_dev omap_wdt pruss_soc_bus omap_sham dwc3_omap rtc_omap gpio_pisosr gpio_tpic2810 extcon_palmas rtc_palmas omap_des des_generic crypto_engine omap_crypto omap_remoteproc virtio_rpmsg_bus rpmsg_core remoteproc sch_fq_codel cryptodev(O)

Any debug recommendations would be greatly appreciated.

Thanks,

Christine