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:
- turned on LPAE in the kernel config
- used the EMIF calculator spreadsheet to generate the register values by following the app note: http://www.ti.com/lit/an/spraca1/spraca1.pdf
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

