Other Parts Discussed in Thread: SYSCONFIG, AM625
Hello,
I have tested the patches provided by James. u-boot and the Linux kernel have been modified.
The u-boot is detected the 2 memory areas of 2GB at adress 0x80000000 and 0x880000000.
I use the command bdinfo to get the information.
I test that:
- The area 0x880000000 is writable by using : mw.b 0x880000000 0xDD 0x40000000
- The area 0x880000000 is readable by using : md 0x880000000
But the kernel seems to detect the 4GB memory but still crash with a kernel panic.
It seems that some instructions is not defined, or not understand by the CPU.
I built the tiny image using bitbake from clean a clean repository.
U-Boot SPL 2021.01-g2dd2e1d366 (Jul 31 2023 - 11:02:03 +0000) SYSFW ABI: 3.1 (firmware rev 0x0008 '8.4.7--v08.04.07 (Jolly Jellyfi') SPL initial stack usage: 13424 bytes Trying to boot from eth device Loading Environment from MMC... *** Warning - No MMC card found, using default environment eth0: ethernet@8000000port@1 ethernet@8000000port@1 Waiting for PHY auto negotiation to complete........ done link up on port 1, speed 1000, full duplex BOOTP broadcast 1 BOOTP broadcast 2 BOOTP broadcast 3 DHCP client bound to address 10.0.0.106 (1003 ms) Using ethernet@8000000port@1 device TFTP from server 10.0.0.1; our IP address is 10.0.0.106 Filename 'tispl.bin'. Load address: 0x82000000 Loading: ################################################################# ################################################################# ##################################################### 4.4 MiB/s done Bytes transferred = 935848 (e47a8 hex) udma_stop_mem2dev: peer not stopped TIMEOUT ! Loading Environment from MMC... *** Warning - No MMC card found, using default environment init_env from device 4 not supported! Starting ATF on ARM64 core... NOTICE: BL31: v2.7(release):v2.7.0-dirty NOTICE: BL31: Built : 10:08:45, Jul 31 2023 U-Boot SPL 2021.01-g2dd2e1d366 (Sep 05 2023 - 07:32:24 +0000) SYSFW ABI: 3.1 (firmware rev 0x0008 '8.4.7--v08.04.07 (Jolly Jellyfi') Trying to boot from eth device Loading Environment from MMC... *** Warning - No MMC card found, using default environment eth0: ethernet@8000000port@1 ethernet@8000000port@1 Waiting for PHY auto negotiation to complete........ done link up on port 1, speed 1000, full duplex BOOTP broadcast 1 BOOTP broadcast 2 BOOTP broadcast 3 BOOTP broadcast 4 DHCP client bound to address 10.0.0.106 (1761 ms) Using ethernet@8000000port@1 device TFTP from server 10.0.0.1; our IP address is 10.0.0.106 Filename 'u-boot.img'. Load address: 0x82000000 Loading: ################################################################# ################################################################# #################################### 705.1 KiB/s done Bytes transferred = 847792 (cefb0 hex) U-Boot 2021.01-g2dd2e1d366 (Sep 05 2023 - 07:32:24 +0000) SoC: AM62X SR1.0 GP Model: Texas Instruments AM625 SK i2c_write: error waiting for data ACK (status=0x116) EEPROM not available at 0x50, trying to read at 0x51 i2c_write: error waiting for data ACK (status=0x116) Reading on-board EEPROM at 0x51 failed -121 DRAM: 4 GiB MMC: mmc@fa10000: 0, mmc@fa00000: 1, mmc@fa20000: 2 Loading Environment from MMC... OK In: serial@2800000 Out: serial@2800000 Err: serial@2800000 i2c_write: error waiting for data ACK (status=0x116) EEPROM not available at 0x50, trying to read at 0x51 i2c_write: error waiting for data ACK (status=0x116) Reading on-board EEPROM at 0x51 failed -121 Net: eth0: ethernet@8000000port@1 Hit any key to stop autoboot: 0 => bdinfo boot_params = 0x0000000000000000 DRAM bank = 0x0000000000000000 -> start = 0x0000000080000000 -> size = 0x0000000080000000 DRAM bank = 0x0000000000000001 -> start = 0x0000000880000000 -> size = 0x0000000080000000 flashstart = 0x0000000000000000 flashsize = 0x0000000000000000 flashoffset = 0x0000000000000000 baudrate = 115200 bps relocaddr = 0x00000000fff1c000 reloc off = 0x000000007f71c000 Build = 64-bit current eth = ethernet@8000000port@1 ethaddr = 34:08:e1:87:76:aa IP addr = 10.0.0.106 fdt_blob = 0x00000000f7ef2920 new_fdt = 0x00000000f7ef2920 fdt_size = 0x00000000000094c0 multi_dtb_fit= 0x0000000000000000 lmb_dump_all: memory.cnt = 0x2 memory.size = 0x0 memory.reg[0x0].base = 0x80000000 .size = 0x80000000 memory.reg[0x1].base = 0x880000000 .size = 0x80000000 reserved.cnt = 0x3 reserved.size = 0x0 reserved.reg[0x0].base = 0x9db00000 .size = 0xc00000 reserved.reg[0x1].base = 0x9e780000 .size = 0x1880000 reserved.reg[0x2].base = 0xf7ef1520 .size = 0x810eae0 arch_number = 0x0000000000000000 TLB addr = 0x00000000ffff0000 irq_sp = 0x00000000f7ef2910 sp start = 0x00000000f7ef2910 Early malloc usage: 2f30 / 8000 => boot link up on port 1, speed 1000, full duplex Using ethernet@8000000port@1 device TFTP from server 10.0.0.1; our IP address is 10.0.0.106 Filename 'k3-am625-sk.dtb'. Load address: 0x88000000 Loading: #### 11.4 MiB/s done Bytes transferred = 47749 (ba85 hex) link up on port 1, speed 1000, full duplex Using ethernet@8000000port@1 device TFTP from server 10.0.0.1; our IP address is 10.0.0.106 Filename 'Image'. Load address: 0x82000000 Loading: ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ############################ 12.8 MiB/s done Bytes transferred = 18536960 (11ada00 hex) ## Flattened Device Tree blob at 88000000 Booting using the fdt blob at 0x88000000 Loading Device Tree to 000000008fff1000, end 000000008ffffa84 ... OK Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034] [ 0.000000] Linux version 5.10.140-g5e63ae91b2 (oe-user@oe-host) (aarch64-none-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 9.2.1 20191025, GNU ld (GNU Toolchai3 [ 0.000000] Machine model: Texas Instruments AM625 SK [ 0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '') [ 0.000000] printk: bootconsole [ns16550a0] enabled [ 0.000000] efi: UEFI not found. [ 0.000000] Reserved memory: created DMA memory pool at 0x000000009c800000, size 3 MiB [ 0.000000] OF: reserved mem: initialized node ipc-memories@9c800000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created DMA memory pool at 0x000000009cb00000, size 1 MiB [ 0.000000] OF: reserved mem: initialized node m4f-dma-memory@9cb00000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created DMA memory pool at 0x000000009cc00000, size 13 MiB [ 0.000000] OF: reserved mem: initialized node m4f-memory@9cc00000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created DMA memory pool at 0x000000009d900000, size 1 MiB [ 0.000000] OF: reserved mem: initialized node r5f-dma-memory@9d900000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created DMA memory pool at 0x000000009da00000, size 13 MiB [ 0.000000] OF: reserved mem: initialized node r5f-memory@9da00000, compatible id shared-dma-pool [ 0.000000] Zone ranges: [ 0.000000] DMA [mem 0x0000000080000000-0x00000000ffffffff] [ 0.000000] DMA32 empty [ 0.000000] Normal [mem 0x0000000100000000-0x00000008ffffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000080000000-0x000000009c7fffff] [ 0.000000] node 0: [mem 0x000000009c800000-0x000000009e6fffff] [ 0.000000] node 0: [mem 0x000000009e700000-0x000000009e77ffff] [ 0.000000] node 0: [mem 0x000000009e780000-0x000000009fffffff] [ 0.000000] node 0: [mem 0x00000000a0000000-0x00000000ffffffff] [ 0.000000] node 0: [mem 0x0000000880000000-0x00000008ffffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000008ffffffff] [ 0.000000] cma: Reserved 512 MiB at 0x00000000e0000000 [ 0.000000] psci: probing for conduit method from DT. [ 0.000000] psci: PSCIv1.1 detected in firmware. [ 0.000000] psci: Using standard PSCI v0.2 function IDs [ 0.000000] psci: Trusted OS migration not required [ 0.000000] psci: SMC Calling Convention v1.2 [ 0.000000] percpu: Embedded 22 pages/cpu s50008 r8192 d31912 u90112 [ 0.000000] Detected VIPT I-cache on CPU0 [ 0.000000] CPU features: detected: ARM erratum 845719 [ 0.000000] CPU features: detected: GIC system register CPU interface [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 1032192 [ 0.000000] Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 root=/dev/nfs rootfstype=nfs ip=dhcp nfsroot=10.0.0.28:/media/alognon/build/sitara/netboot/nfs,nfsvers=3,tck [ 0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear) [ 0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear) [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off [ 0.000000] software IO TLB: mapped [mem 0x00000000dc000000-0x00000000e0000000] (64MB) [ 0.000000] Memory: 3447816K/4194304K available (10880K kernel code, 1142K rwdata, 4200K rodata, 1792K init, 430K bss, 222200K reserved, 524288K cma-reserved) [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 [ 0.000000] rcu: Preemptible hierarchical RCU implementation. [ 0.000000] rcu: RCU event tracing is enabled. [ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=4. [ 0.000000] Trampoline variant of Tasks RCU enabled. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. [ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4 [ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 [ 0.000000] GICv3: GIC: Using split EOI/Deactivate mode [ 0.000000] GICv3: 256 SPIs implemented [ 0.000000] GICv3: 0 Extended SPIs implemented [ 0.000000] GICv3: Distributor has no Range Selector support [ 0.000000] GICv3: 16 PPIs implemented [ 0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000001880000 [ 0.000000] ITS [mem 0x01820000-0x0182ffff] [ 0.000000] GIC: enabling workaround for ITS: Socionext Synquacer pre-ITS [ 0.000000] ITS@0x0000000001820000: Devices Table too large, reduce ids 20->19 [ 0.000000] ITS@0x0000000001820000: allocated 524288 Devices @880800000 (flat, esz 8, psz 64K, shr 0) [ 0.000000] ITS: using cache flushing for cmd queue [ 0.000000] GICv3: using LPI property table @0x0000000880030000 [ 0.000000] GIC: using cache flushing for LPI property table [ 0.000000] GICv3: CPU0: using allocated LPI pending table @0x0000000880040000 [ 0.000000] arch_timer: cp15 timer(s) running at 200.00MHz (phys). [ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns [ 0.000005] sched_clock: 56 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns [ 0.008509] Console: colour dummy device 80x25 [ 0.013101] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=800000) [ 0.023783] pid_max: default: 32768 minimum: 301 [ 0.028586] LSM: Security Framework initializing [ 0.033390] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear) [ 0.040987] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear) [ 0.050730] rcu: Hierarchical SRCU implementation. [ 0.055913] Platform MSI: msi-controller@1820000 domain created [ 0.062185] PCI/MSI: /bus@f0000/interrupt-controller@1800000/msi-controller@1820000 domain created [ 0.071423] EFI services will not be available. [ 0.076330] smp: Bringing up secondary CPUs ... [ 0.081612] Detected VIPT I-cache on CPU1 [ 0.081650] GICv3: CPU1: found redistributor 1 region 0:0x00000000018a0000 [ 0.081665] GICv3: CPU1: using allocated LPI pending table @0x0000000880050000 [ 0.081728] CPU1: Booted secondary processor 0x0000000001 [0x410fd034] [ 0.082401] Detected VIPT I-cache on CPU2 [ 0.082426] GICv3: CPU2: found redistributor 2 region 0:0x00000000018c0000 [ 0.082437] GICv3: CPU2: using allocated LPI pending table @0x0000000880060000 [ 0.082473] CPU2: Booted secondary processor 0x0000000002 [0x410fd034] [ 0.083097] Detected VIPT I-cache on CPU3 [ 0.083118] GICv3: CPU3: found redistributor 3 region 0:0x00000000018e0000 [ 0.083127] GICv3: CPU3: using allocated LPI pending table @0x0000000880070000 [ 0.083158] CPU3: Booted secondary processor 0x0000000003 [0x410fd034] [ 0.083227] smp: Brought up 1 node, 4 CPUs [ 0.162963] SMP: Total of 4 processors activated. [ 0.167777] CPU features: detected: 32-bit EL0 Support [ 0.173049] CPU features: detected: CRC32 instructions [ 0.185977] CPU: All CPU(s) started at EL2 [ 0.190186] alternatives: patching kernel code [ 0.195903] devtmpfs: initialized [ 0.205132] KASLR disabled due to lack of seed [ 0.209885] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns [ 0.219862] futex hash table entries: 1024 (order: 4, 65536 bytes, linear) [ 0.242246] pinctrl core: initialized pinctrl subsystem [ 0.248276] DMI not present or invalid. [ 0.252891] NET: Registered protocol family 16 [ 0.258755] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations [ 0.266087] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations [ 0.274201] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations [ 0.282826] thermal_sys: Registered thermal governor 'step_wise' [ 0.282832] thermal_sys: Registered thermal governor 'power_allocator' [ 0.289529] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers. [ 0.303246] ASID allocator initialised with 65536 entries [ 0.329175] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages [ 0.336060] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages [ 0.342937] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages [ 0.349790] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages [ 0.357717] cryptd: max_cpu_qlen set to 1000 [ 0.364956] k3-chipinfo 43000014.chipid: Family:AM62X rev:SR1.0 JTAGID[0x0bb7e02f] Detected [ 0.374001] vcc_5v0: supplied by vmain_pd [ 0.378476] vcc_3v3_sys: supplied by vmain_pd [ 0.383345] vcc_1v8: supplied by vcc_3v3_sys [ 0.388503] iommu: Default domain type: Translated [ 0.393824] SCSI subsystem initialized [ 0.398085] mc: Linux media interface: v0.10 [ 0.402483] videodev: Linux video capture interface: v2.00 [ 0.408163] pps_core: LinuxPPS API ver. 1 registered [ 0.413239] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> [ 0.422589] PTP clock support registered [ 0.426627] EDAC MC: Ver: 3.0.0 [ 0.430459] omap-mailbox 29000000.mailbox: omap mailbox rev 0x66fc9100 [ 0.437543] FPGA manager framework [ 0.441104] Advanced Linux Sound Architecture Driver Initialized. [ 0.448254] clocksource: Switched to clocksource arch_sys_counter [ 0.454709] VFS: Disk quotas dquot_6.6.0 [ 0.458780] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes) [ 0.471208] NET: Registered protocol family 2 [ 0.476072] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear) [ 0.485437] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear) [ 0.494242] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear) [ 0.502544] TCP bind hash table entries: 32768 (order: 7, 524288 bytes, linear) [ 0.510533] TCP: Hash tables configured (established 32768 bind 32768) [ 0.517503] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear) [ 0.524432] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear) [ 0.531966] NET: Registered protocol family 1 [ 0.536945] RPC: Registered named UNIX socket transport module. [ 0.543027] RPC: Registered udp transport module. [ 0.547865] RPC: Registered tcp transport module. [ 0.552680] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 0.559274] PCI: CLS 0 bytes, default 64 [ 0.564161] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available [ 0.576204] Initialise system trusted keyrings [ 0.581000] workingset: timestamp_bits=46 max_order=20 bucket_order=0 [ 0.591357] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.597898] NFS: Registering the id_resolver key type [ 0.603126] Key type id_resolver registered [ 0.607406] Key type id_legacy registered [ 0.611569] nfs4filelayout_init: NFSv4 File Layout Driver Registering... [ 0.618423] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering... [ 0.626185] 9p: Installing v9fs 9p2000 file system support [ 0.666393] Key type asymmetric registered [ 0.670590] Asymmetric key parser 'x509' registered [ 0.675616] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243) [ 0.683182] io scheduler mq-deadline registered [ 0.687813] io scheduler kyber registered [ 0.693773] pinctrl-single 4084000.pinctrl: 34 pins, size 136 [ 0.700081] pinctrl-single f4000.pinctrl: 171 pins, size 684 [ 0.712724] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled [ 0.724223] panel-simple display: supply power not found, using dummy regulator [ 0.731914] ------------[ cut here ]------------ [ 0.736646] WARNING: CPU: 0 PID: 1 at drivers/gpu/drm/panel/panel-simple.c:579 panel_simple_probe+0x304/0x3d8 [ 0.746780] Modules linked in: [ 0.749906] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.10.140-g5e63ae91b2 #1 [ 0.757196] Hardware name: Texas Instruments AM625 SK (DT) [ 0.762802] pstate: a0000005 (NzCv daif -PAN -UAO -TCO BTYPE=--) [ 0.768938] pc : panel_simple_probe+0x304/0x3d8 [ 0.773564] lr : panel_simple_probe+0x11c/0x3d8 [ 0.778188] sp : ffff80001124bac0 [ 0.781570] x29: ffff80001124bac0 x28: 0000000000000000 [ 0.787000] x27: ffff800010f41078 x26: ffff800010ed04c0 [ 0.792429] x25: ffff800011161070 x24: 0000000000000000 [ 0.797858] x23: ffff800010b6b130 x22: ffff0008000f8000 [ 0.803287] x21: ffff0008003e3810 x20: ffff00080116c480 [ 0.808716] x19: 0000000000000000 x18: 0000000000000002 [ 0.814144] x17: 0000000000000000 x16: 00000000832ab565 [ 0.819573] x15: 0000000000000001 x14: 000000000007a318 [ 0.825001] x13: ffff000800db1a1c x12: 0000000000000020 [ 0.830430] x11: 0101010101010101 x10: 7f7f7f7f7f7f7f7f [ 0.835860] x9 : fefefeff666d686c x8 : 7f7f7f7f7f7f7f7f [ 0.841288] x7 : 68732c6b646d606f x6 : 0000000080808080 [ 0.846716] x5 : ffff00087f80f1f8 x4 : 0000000000000000 [ 0.852145] x3 : 0000000000000007 x2 : 00000000ffffeff0 [ 0.857573] x1 : 00000000fffffffa x0 : 000000000000100a [ 0.863002] Call trace: [ 0.865497] panel_simple_probe+0x304/0x3d8 [ 0.869768] panel_simple_platform_probe+0x34/0x50 [ 0.874665] platform_drv_probe+0x54/0xa8 [ 0.878760] really_probe+0xec/0x3e0 [ 0.882409] driver_probe_device+0x58/0xb8 [ 0.886591] device_driver_attach+0x74/0x80 [ 0.890862] __driver_attach+0x58/0xf0 [ 0.894690] bus_for_each_dev+0x70/0xc0 [ 0.898606] driver_attach+0x24/0x30 [ 0.902255] bus_add_driver+0x150/0x200 [ 0.906171] driver_register+0x64/0x120 [ 0.910087] __platform_driver_register+0x48/0x58 [ 0.914896] panel_simple_init+0x24/0x4c [ 0.918904] do_one_initcall+0x54/0x1b8 [ 0.922821] kernel_init_freeable+0x220/0x2a0 [ 0.927273] kernel_init+0x14/0x114 [ 0.930834] ret_from_fork+0x10/0x34 [ 0.934505] ---[ end trace b610c5260d4587b9 ]--- [ 0.947387] brd: module loaded [ 0.957653] loop: module loaded [ 0.961715] megasas: 07.714.04.00-rc1 [ 0.968750] tun: Universal TUN/TAP device driver, 1.6 [ 0.974414] igbvf: Intel(R) Gigabit Virtual Function Network Driver [ 0.980831] igbvf: Copyright (c) 2009 - 2012 Intel Corporation. [ 0.986939] sky2: driver version 1.30 [ 0.991659] VFIO - User Level meta-driver version: 0.3 [ 0.997802] i2c /dev entries driver [ 1.002899] sdhci: Secure Digital Host Controller Interface driver [ 1.009233] sdhci: Copyright(c) Pierre Ossman [ 1.013967] sdhci-pltfm: SDHCI platform and OF driver helper [ 1.020617] ledtrig-cpu: registered to indicate activity on CPUs [ 1.027084] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping .... [ 1.034710] optee: probing for conduit method. [ 1.039302] optee: revision 3.18 (8e155bae) [ 1.039576] optee: dynamic shared memory is enabled [ 1.049086] optee: initialized driver [ 1.054631] NET: Registered protocol family 17 [ 1.059351] 9pnet: Installing 9P2000 support [ 1.063822] Key type dns_resolver registered [ 1.068418] Loading compiled-in X.509 certificates [ 1.082021] ti-sci 44043000.system-controller: ti,ctx-memory-region is required for suspend but not provided. [ 1.092195] ti-sci 44043000.system-controller: ti_sci_init_suspend failed, mem suspend will be non-functional. [ 1.102437] ti-sci 44043000.system-controller: ABI: 3.1 (firmware rev 0x0008 '8.4.7--v08.04.07 (Jolly Jellyfi') [ 1.138257] davinci-mcasp 2b10000.mcasp: IRQ common not found [ 1.147148] omap_i2c 20000000.i2c: bus 0 rev0.12 at 400 kHz [ 1.154458] omap_i2c 20010000.i2c: bus 1 rev0.12 at 100 kHz [ 1.161252] omap_i2c 20020000.i2c: bus 2 rev0.12 at 100 kHz [ 1.167364] ti-sci-intr 4210000.interrupt-controller: Interrupt Router 5 domain created [ 1.175708] ti-sci-intr bus@f0000:interrupt-controller@a00000: Interrupt Router 3 domain created [ 1.184947] ti-sci-inta 48000000.interrupt-controller: Interrupt Aggregator domain 28 created [ 1.193981] ti-bcdma 485c0100.dma-controller: Number of rings: 82 [ 1.202110] ti-bcdma 485c0100.dma-controller: Channels: 48 (bchan: 18, tchan: 12, rchan: 18) [ 1.213287] ti-pktdma 485c0000.dma-controller: Number of rings: 150 [ 1.223352] ti-pktdma 485c0000.dma-controller: Channels: 35 (tchan: 20, rchan: 15) [ 1.233725] printk: console [ttyS2] disabled [ 1.238173] 2800000.serial: ttyS2 at MMIO 0x2800000 (irq = 18, base_baud = 3000000) is a 8250 [ 1.246945] printk: console [ttyS2] enabled [ 1.246945] printk: console [ttyS2] enabled [ 1.255387] printk: bootconsole [ns16550a0] disabled [ 1.255387] printk: bootconsole [ns16550a0] disabled [ 1.266454] tfp410-bridge dvi-bridge: failed to parse powerdown gpio [ 1.279874] davinci_mdio 8000f00.mdio: Configuring MDIO in manual mode [ 1.324257] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000 [ 1.333837] davinci_mdio 8000f00.mdio: phy[0]: device 8000f00.mdio:00, driver TI DP83867 [ 1.341942] davinci_mdio 8000f00.mdio: phy[1]: device 8000f00.mdio:01, driver unknown [ 1.349874] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA01103, cpsw version 0x6BA81103 Ports: 3 quirks:00000002 [ 1.362804] am65-cpsw-nuss 8000000.ethernet: Use random MAC address [ 1.369080] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.5 [ 1.376206] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512 [ 1.382888] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:0 [ 1.497566] davinci-mcasp 2b10000.mcasp: IRQ common not found [ 1.503501] mmc1: CQHCI version 5.10 [ 1.503541] mmc0: CQHCI version 5.10 [ 1.517651] [drm] Initialized tidss 1.0.0 20180215 for 30200000.dss on minor 0 [ 1.548296] mmc0: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit [ 1.548349] mmc1: SDHCI controller on fa00000.mmc [fa00000.mmc] using ADMA 64-bit [ 1.585623] Console: switching to colour frame buffer device 100x30 [ 1.608197] tidss 30200000.dss: [drm] fb0: tidssdrmfb frame buffer device [ 1.615935] debugfs: Directory 'pd:182' with parent 'pm_genpd' already present! [ 1.622507] mmc0: new HS200 MMC card at address 0001 [ 1.625761] am65-cpsw-nuss 8000000.ethernet: down msc_sl e0000000 tmo 0 [ 1.629020] mmcblk0: mmc0:0001 Q2J54A 3.59 GiB [ 1.639695] mmcblk0boot0: mmc0:0001 Q2J54A partition 1 16.0 MiB [ 1.640904] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 19 [ 1.645959] mmcblk0boot1: mmc0:0001 Q2J54A partition 2 16.0 MiB [ 1.658112] mmcblk0rpmb: mmc0:0001 Q2J54A partition 3 512 KiB, chardev (237:0) [ 1.659239] am65-cpsw-nuss 8000000.ethernet eth0: PHY [8000f00.mdio:00] driver [TI DP83867] (irq=POLL) [ 1.674827] am65-cpsw-nuss 8000000.ethernet eth0: configuring for phy/rgmii-rxid link mode [ 1.686119] am65-cpsw-nuss 8000000.ethernet: down msc_sl e0000000 tmo 0 [ 1.695192] am65-cpsw-nuss 8000000.ethernet eth1: PHY [8000f00.mdio:01] driver [Generic PHY] (irq=POLL) [ 1.704687] am65-cpsw-nuss 8000000.ethernet eth1: configuring for phy/rgmii-rxid link mode [ 1.714623] am65-cpsw-nuss 8000000.ethernet eth1: Link is Up - 100Mbps/Full - flow control rx/tx [ 1.716101] mmc1: error -84 whilst initialising SD card [ 1.732253] Sending DHCP requests . [ 1.957810] mmc1: new ultra high speed SDR104 SDXC card at address 59b4 [ 1.968693] mmcblk1: mmc1:59b4 SD64G 59.4 GiB [ 1.975084] mmcblk1: p1 p2 [ 4.500252] . [ 5.789303] am65-cpsw-nuss 8000000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off [ 9.340245] ., OK [ 9.358206] IP-Config: Got DHCP answer from 10.0.0.1, my address is 10.0.0.106 [ 9.365420] IP-Config: Complete: [ 9.368645] device=eth0, hwaddr=34:08:e1:87:76:aa, ipaddr=10.0.0.106, mask=255.0.0.0, gw=255.255.255.255 [ 9.378540] host=10.0.0.106, domain=, nis-domain=(none) [ 9.384188] bootserver=10.0.0.1, rootserver=10.0.0.28, rootpath= [ 9.384191] nameserver0=10.0.0.1 [ 9.396141] am65-cpsw-nuss 8000000.ethernet eth1: Link is Down [ 9.405862] ALSA device list: [ 9.408844] No soundcards found. [ 9.420333] VFS: Mounted root (nfs filesystem) readonly on device 0:21. [ 9.427392] devtmpfs: mounted [ 9.431594] Freeing unused kernel memory: 1792K [ 9.452305] Run /sbin/init as init process [ 9.470895] ------------[ cut here ]------------ [ 9.475529] kernel BUG at arch/arm64/kernel/traps.c:407! [ 9.480828] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP [ 9.486300] Modules linked in: [ 9.489355] CPU: 1 PID: -1494815096 Comm: Tainted: G W 5.10.140-g5e63ae91b2 #1 [ 9.497945] Hardware name: Texas Instruments AM625 SK (DT) [ 9.503439] pstate: 000003c5 (nzcv DAIF -PAN -UAO -TCO BTYPE=--) [ 9.509447] pc : do_undefinstr+0x2f4/0x318 [ 9.513532] lr : do_undefinstr+0x1e8/0x318 [ 9.517614] sp : ffff80001124bcd0 [ 9.520916] x29: ffff80001124bcd0 x28: 0000ffffe541bb50 [ 9.526217] x27: 0000000000000000 x26: 0000000000000000 [ 9.531516] x25: 0000000000000000 x24: 0000000000000000 [ 9.536816] x23: 00000000400003c5 x22: ffff800010012940 [ 9.542116] x21: ffff80001124beb0 x20: 0000ffffe541bb50 [ 9.547416] x19: ffff80001124bd60 x18: 0000000000000002 [ 9.552715] x17: 0000000000000000 x16: 0000000000000000 [ 9.558015] x15: ffff800010012940 x14: 0000000000000195 [ 9.563314] x13: 0000000000000002 x12: 0000000000000001 [ 9.568614] x11: 0000000000000000 x10: ffff000800008c00 [ 9.573913] x9 : 000000000000000d x8 : 0000000000000001 [ 9.579212] x7 : 000000000000000f x6 : ffff80001124bd28 [ 9.584512] x5 : 00000000d5300000 x4 : ffff8000110a3dc0 [ 9.589811] x3 : 0000000000000000 x2 : 0000000000000000 [ 9.595110] x1 : 0000ffffe541bb50 x0 : 00000000400003c5 [ 9.600411] Call trace: [ 9.602853] Code: f9401bf7 17ffff7b a9025bf5 f9001bf7 (d4210000) [ 9.608942] ---[ end trace b610c5260d4587bb ]--- [ 9.613546] Kernel panic - not syncing: Oops - BUG: Fatal exception in interrupt [ 9.620924] SMP: stopping secondary CPUs [ 9.624841] Kernel Offset: disabled [ 9.628319] CPU features: 0x0040002,2000200c [ 9.632575] Memory Limit: none [ 9.635624] ---[ end Kernel panic - not syncing: Oops - BUG: Fatal exception in interrupt ]---
The syconfig tools has been used to configure the DDR4 has requested by James.
Here is the patch I used and the DDR configuration and the sysconfig of the AM62x file:
0001-Configure-DDR4-for-4GB.txt
AM62x-LP4-50-800_dualrank_SVB.txt
/** * These arguments were used when this file was generated. They will be automatically applied on subsequent loads * via the GUI or CLI. Run CLI with '--help' for additional information on how to override these arguments. * @cliArgs --device "AM62x" --package "ALW" --part "Default" * @versions {"tool":"1.13.0+2553"} */ /** * These are the peripherals and settings in this configuration */ const iDDRSS1 = scripting.addPeripheral("DDRSS"); iDDRSS1.$name = "MyDDRSS1"; const iDSS1 = scripting.addPeripheral("DSS"); iDSS1.$name = "MyDSS1"; const iGPIO1 = scripting.addPeripheral("GPIO"); iGPIO1["12"].pu_pd = "pu"; iGPIO1["12"].rx = false; iGPIO1["12"].$used = true; iGPIO1["13"].$used = true; iGPIO1["14"].$used = true; iGPIO1["39"].pu_pd = "pd"; iGPIO1["39"].rx = false; iGPIO1["39"].$used = true; iGPIO1["41"].pu_pd = "pu"; iGPIO1["41"].rx = false; iGPIO1["41"].$assign = "ball.M21"; iGPIO1["41"].$used = true; iGPIO1["42"].pu_pd = "pd"; iGPIO1["42"].rx = false; iGPIO1["42"].$assign = "ball.L21"; iGPIO1["42"].$used = true; iGPIO1["65"].pu_pd = "pu"; iGPIO1["65"].rx = false; iGPIO1["65"].$used = true; iGPIO1["66"].pu_pd = "pu"; iGPIO1["66"].rx = false; iGPIO1["66"].$used = true; iGPIO1["67"].pu_pd = "pu"; iGPIO1["67"].rx = false; iGPIO1["67"].$used = true; iGPIO1["68"].pu_pd = "pu"; iGPIO1["68"].rx = false; iGPIO1["68"].$used = true; iGPIO1["69"].pu_pd = "pu"; iGPIO1["69"].rx = false; iGPIO1["69"].$used = true; iGPIO1["70"].pu_pd = "pu"; iGPIO1["70"].rx = false; iGPIO1["70"].$used = true; iGPIO1["71"].pu_pd = "pd"; iGPIO1["71"].rx = false; iGPIO1["71"].$used = true; iGPIO1["72"].pu_pd = "pd"; iGPIO1["72"].rx = false; iGPIO1["72"].$used = true; iGPIO1.$name = "MyGPIO1"; const iGPIO2 = scripting.addPeripheral("GPIO"); iGPIO2["22"].$assign = "ball.A15"; iGPIO2["22"].$used = true; iGPIO2["23"].$assign = "ball.B15"; iGPIO2["23"].$used = true; iGPIO2["49"].pu_pd = "pu"; iGPIO2["49"].rx = false; iGPIO2["49"].$assign = "ball.C17"; iGPIO2["49"].$used = true; iGPIO2["51"].rx = false; iGPIO2.$name = "MyGPIO2"; const iI2C1 = scripting.addPeripheral("I2C"); iI2C1.$name = "MyI2C1"; const iI2C2 = scripting.addPeripheral("I2C"); iI2C2.$name = "MyI2C2"; const iI2C3 = scripting.addPeripheral("I2C"); iI2C3.$name = "MyI2C3"; const iJTAG1 = scripting.addPeripheral("JTAG"); iJTAG1.$name = "MyJTAG1"; const iMCAN1 = scripting.addPeripheral("MCAN"); iMCAN1.$name = "MyMCAN1"; const iMCU_GPIO1 = scripting.addPeripheral("MCU_GPIO"); iMCU_GPIO1.$name = "MyMCU_GPIO1"; const iMCU_I2C1 = scripting.addPeripheral("MCU_I2C"); iMCU_I2C1.$name = "MyMCU_I2C1"; const iMCU_MCAN1 = scripting.addPeripheral("MCU_MCAN"); iMCU_MCAN1.$name = "MyMCU_MCAN1"; const iMCU_MCAN2 = scripting.addPeripheral("MCU_MCAN"); iMCU_MCAN2.$name = "MyMCU_MCAN2"; const iMCU_SPI1 = scripting.addPeripheral("MCU_SPI"); iMCU_SPI1.$name = "MyMCU_SPI1"; const iMCU_SYSTEM1 = scripting.addPeripheral("MCU_SYSTEM"); iMCU_SYSTEM1.$name = "MyMCU_SYSTEM1"; iMCU_SYSTEM1.MCU_EXT_REFCLK0.$used = false; iMCU_SYSTEM1.MCU_OBSCLK0.$used = false; iMCU_SYSTEM1.MCU_RESETSTATz.$assign = "ball.B12"; iMCU_SYSTEM1.MCU_SYSCLKOUT0.$used = false; const iMCU_TIMER1 = scripting.addPeripheral("MCU_TIMER"); iMCU_TIMER1.$name = "MyMCU_TIMER1"; const iMCU_UART1 = scripting.addPeripheral("MCU_UART"); iMCU_UART1.$name = "MyMCU_UART1"; const iMDIO1 = scripting.addPeripheral("MDIO"); iMDIO1.$name = "MyMDIO1"; iMDIO1.MDC.$assign = "ball.AD24"; iMDIO1.MDIO.$assign = "ball.AB22"; const iMMC01 = scripting.addPeripheral("MMC0"); iMMC01.$name = "MyMMC01"; const iMMC11 = scripting.addPeripheral("MMC1"); iMMC11.$name = "MyMMC11"; iMMC11.CMD.$assign = "ball.A21"; iMMC11.SDWP.$used = false; const iOLDI1 = scripting.addPeripheral("OLDI"); iOLDI1.$name = "MyOLDI1"; const iOSPI1 = scripting.addPeripheral("OSPI"); iOSPI1.$name = "MyOSPI1"; iOSPI1.CLK.$assign = "ball.H24"; iOSPI1.CSn0.$assign = "ball.F23"; iOSPI1.CSn1.$used = false; iOSPI1.CSn2.$used = false; iOSPI1.CSn3.$used = false; iOSPI1.D0.$assign = "ball.E25"; iOSPI1.D1.$assign = "ball.G24"; iOSPI1.D2.$assign = "ball.F25"; iOSPI1.D3.$assign = "ball.F24"; iOSPI1.D4.$assign = "ball.J23"; iOSPI1.D5.$assign = "ball.J25"; iOSPI1.D6.$assign = "ball.H25"; iOSPI1.D7.$assign = "ball.J22"; iOSPI1.DQS.$assign = "ball.J24"; iOSPI1.LBCLKO.$assign = "ball.G25"; iOSPI1.LBCLKO.$used = true; const iPRU_ICSSM0_PRU1 = scripting.addPeripheral("PRU_ICSSM0_PRU"); iPRU_ICSSM0_PRU1.$name = "MyPRU_ICSSM0_PRU1"; iPRU_ICSSM0_PRU1.GPI12.$used = false; iPRU_ICSSM0_PRU1.GPI13.$used = false; iPRU_ICSSM0_PRU1.GPI14.$used = false; iPRU_ICSSM0_PRU1.GPI15.$used = false; iPRU_ICSSM0_PRU1.GPI16.$used = false; iPRU_ICSSM0_PRU1.GPI17.$used = false; iPRU_ICSSM0_PRU1.GPI18.$used = false; iPRU_ICSSM0_PRU1.GPI19.$used = false; iPRU_ICSSM0_PRU1.GPI2.$used = false; iPRU_ICSSM0_PRU1.GPI3.$used = false; iPRU_ICSSM0_PRU1.GPI4.$used = false; iPRU_ICSSM0_PRU1.GPI6.$used = false; iPRU_ICSSM0_PRU1.GPO0.$used = false; iPRU_ICSSM0_PRU1.GPO1.$used = false; iPRU_ICSSM0_PRU1.GPO10.$used = false; iPRU_ICSSM0_PRU1.GPO11.$used = false; iPRU_ICSSM0_PRU1.GPO15.$used = false; iPRU_ICSSM0_PRU1.GPO17.$used = false; iPRU_ICSSM0_PRU1.GPO18.$used = false; iPRU_ICSSM0_PRU1.GPO19.$used = false; iPRU_ICSSM0_PRU1.GPO5.$used = false; iPRU_ICSSM0_PRU1.GPO7.$used = false; iPRU_ICSSM0_PRU1.GPO8.$used = false; iPRU_ICSSM0_PRU1.GPO9.$used = false; const iRGMII1 = scripting.addPeripheral("RGMII"); iRGMII1.$name = "MyRGMII1"; const iRGMII2 = scripting.addPeripheral("RGMII"); iRGMII2.$name = "MyRGMII2"; const iSPI1 = scripting.addPeripheral("SPI"); iSPI1.$name = "MySPI1"; iSPI1.CS2.$used = false; iSPI1.CS3.$used = false; const iSYSTEM1 = scripting.addPeripheral("SYSTEM"); iSYSTEM1.$name = "MySYSTEM1"; iSYSTEM1.CLKOUT0.$assign = "ball.A18"; iSYSTEM1.EXTINTn.$assign = "ball.D16"; const iUART1 = scripting.addPeripheral("UART"); iUART1.$name = "MyUART1"; iUART1.CTSn.$used = false; iUART1.DCDn.$used = false; iUART1.DSRn.$used = false; iUART1.DTRn.$used = false; iUART1.RIn.$used = false; iUART1.RTSn.$used = false; iUART1.RXD.$assign = "ball.D14"; iUART1.TXD.$assign = "ball.E14"; const iUSB1 = scripting.addPeripheral("USB"); iUSB1.$name = "MyUSB1"; iUSB1.DRVVBUS.pu_pd = "pu"; iUSB1.DRVVBUS.rx = false; const iUSB2 = scripting.addPeripheral("USB"); iUSB2.$name = "MyUSB2"; const iWKUP_I2C1 = scripting.addPeripheral("WKUP_I2C"); iWKUP_I2C1.$name = "MyWKUP_I2C1"; iWKUP_I2C1.SCL.$assign = "ball.B9"; iWKUP_I2C1.SDA.$assign = "ball.A9"; const iWKUP_SYSTEM1 = scripting.addPeripheral("WKUP_SYSTEM"); iWKUP_SYSTEM1.$name = "MyWKUP_SYSTEM1"; iWKUP_SYSTEM1.WKUP_CLKOUT0.$assign = "ball.A12"; iWKUP_SYSTEM1.PMIC_LPM_EN0.$assign = "ball.B7"; const iWKUP_UART1 = scripting.addPeripheral("WKUP_UART"); iWKUP_UART1.$name = "MyWKUP_UART1"; iWKUP_UART1.CTSn.$assign = "ball.C6"; iWKUP_UART1.RTSn.$assign = "ball.A4"; iWKUP_UART1.RXD.$assign = "ball.B4"; iWKUP_UART1.TXD.$assign = "ball.C5"; /** * Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future * version of the tool will not impact the pinmux you originally saw. These lines can be completely deleted in order to * re-solve from scratch. */ iDDRSS1.$suggestSolution = "DDR0"; iDDRSS1.A0.$suggestSolution = "ball.J1"; iDDRSS1.A1.$suggestSolution = "ball.J2"; iDDRSS1.A10.$suggestSolution = "ball.R5"; iDDRSS1.A11.$suggestSolution = "ball.P5"; iDDRSS1.A12.$suggestSolution = "ball.R6"; iDDRSS1.A13.$suggestSolution = "ball.R1"; iDDRSS1.A2.$suggestSolution = "ball.K3"; iDDRSS1.A3.$suggestSolution = "ball.L5"; iDDRSS1.A4.$suggestSolution = "ball.K4"; iDDRSS1.A5.$suggestSolution = "ball.K1"; iDDRSS1.A6.$suggestSolution = "ball.R2"; iDDRSS1.A7.$suggestSolution = "ball.P2"; iDDRSS1.A8.$suggestSolution = "ball.P1"; iDDRSS1.A9.$suggestSolution = "ball.P4"; iDDRSS1.ACT_n.$suggestSolution = "ball.N6"; iDDRSS1.ALERT_n.$suggestSolution = "ball.R3"; iDDRSS1.BA0.$suggestSolution = "ball.M1"; iDDRSS1.BA1.$suggestSolution = "ball.N1"; iDDRSS1.BG0.$suggestSolution = "ball.T4"; iDDRSS1.BG1.$suggestSolution = "ball.N2"; iDDRSS1.CAS_n.$suggestSolution = "ball.M4"; iDDRSS1.CK0.$suggestSolution = "ball.L1"; iDDRSS1.CK0_n.$suggestSolution = "ball.L2"; iDDRSS1.CKE0.$suggestSolution = "ball.H2"; iDDRSS1.CKE1.$suggestSolution = "ball.J4"; iDDRSS1.CS0_n.$suggestSolution = "ball.L6"; iDDRSS1.CS1_n.$suggestSolution = "ball.K2"; iDDRSS1.DM0.$suggestSolution = "ball.H5"; iDDRSS1.DM1.$suggestSolution = "ball.W5"; iDDRSS1.DQ0.$suggestSolution = "ball.F4"; iDDRSS1.DQ1.$suggestSolution = "ball.G5"; iDDRSS1.DQ10.$suggestSolution = "ball.U2"; iDDRSS1.DQ11.$suggestSolution = "ball.V5"; iDDRSS1.DQ12.$suggestSolution = "ball.W2"; iDDRSS1.DQ13.$suggestSolution = "ball.V6"; iDDRSS1.DQ14.$suggestSolution = "ball.Y1"; iDDRSS1.DQ15.$suggestSolution = "ball.W1"; iDDRSS1.DQ2.$suggestSolution = "ball.F3"; iDDRSS1.DQ3.$suggestSolution = "ball.H6"; iDDRSS1.DQ4.$suggestSolution = "ball.E3"; iDDRSS1.DQ5.$suggestSolution = "ball.G2"; iDDRSS1.DQ6.$suggestSolution = "ball.F2"; iDDRSS1.DQ7.$suggestSolution = "ball.F1"; iDDRSS1.DQ8.$suggestSolution = "ball.U1"; iDDRSS1.DQ9.$suggestSolution = "ball.U3"; iDDRSS1.DQS0.$suggestSolution = "ball.E1"; iDDRSS1.DQS0_n.$suggestSolution = "ball.E2"; iDDRSS1.DQS1.$suggestSolution = "ball.V1"; iDDRSS1.DQS1_n.$suggestSolution = "ball.V2"; iDDRSS1.ODT0.$suggestSolution = "ball.H1"; iDDRSS1.ODT1.$suggestSolution = "ball.J3"; iDDRSS1.PAR.$suggestSolution = "ball.T1"; iDDRSS1.RAS_n.$suggestSolution = "ball.M5"; iDDRSS1.RESET0_n.$suggestSolution = "ball.G1"; iDDRSS1.WE_n.$suggestSolution = "ball.N3"; iDDRSS1.CAL0.$suggestSolution = "ball.M2"; iDSS1.$suggestSolution = "DSS0"; iDSS1.VSYNC.$suggestSolution = "ball.AC25"; iDSS1.HSYNC.$suggestSolution = "ball.AB24"; iDSS1.PCLK.$suggestSolution = "ball.AC24"; iDSS1.DE.$suggestSolution = "ball.Y20"; iDSS1.DATA0.$suggestSolution = "ball.U22"; iDSS1.DATA1.$suggestSolution = "ball.V24"; iDSS1.DATA2.$suggestSolution = "ball.W25"; iDSS1.DATA3.$suggestSolution = "ball.W24"; iDSS1.DATA4.$suggestSolution = "ball.Y25"; iDSS1.DATA5.$suggestSolution = "ball.Y24"; iDSS1.DATA6.$suggestSolution = "ball.Y23"; iDSS1.DATA7.$suggestSolution = "ball.AA25"; iDSS1.DATA8.$suggestSolution = "ball.V21"; iDSS1.DATA9.$suggestSolution = "ball.W21"; iDSS1.DATA10.$suggestSolution = "ball.V20"; iDSS1.DATA11.$suggestSolution = "ball.AA23"; iDSS1.DATA12.$suggestSolution = "ball.AB25"; iDSS1.DATA13.$suggestSolution = "ball.AA24"; iDSS1.DATA14.$suggestSolution = "ball.Y22"; iDSS1.DATA15.$suggestSolution = "ball.AA21"; iDSS1.DATA16.$suggestSolution = "ball.R24"; iDSS1.DATA17.$suggestSolution = "ball.R25"; iDSS1.DATA18.$suggestSolution = "ball.T25"; iDSS1.DATA19.$suggestSolution = "ball.R21"; iDSS1.DATA20.$suggestSolution = "ball.T22"; iDSS1.DATA21.$suggestSolution = "ball.T24"; iDSS1.DATA22.$suggestSolution = "ball.U25"; iDSS1.DATA23.$suggestSolution = "ball.U24"; iDSS1.EXTPCLKIN.$suggestSolution = "ball.V25"; iGPIO1["12"].$suggestSolution = "ball.G21"; iGPIO1["13"].$suggestSolution = "ball.H21"; iGPIO1["14"].$suggestSolution = "ball.E24"; iGPIO1["39"].$suggestSolution = "ball.K25"; iGPIO1["65"].$suggestSolution = "ball.D24"; iGPIO1["66"].$suggestSolution = "ball.E23"; iGPIO1["67"].$suggestSolution = "ball.C25"; iGPIO1["68"].$suggestSolution = "ball.B24"; iGPIO1["69"].$suggestSolution = "ball.D25"; iGPIO1["70"].$suggestSolution = "ball.C24"; iGPIO1["71"].$suggestSolution = "ball.A23"; iGPIO1["72"].$suggestSolution = "ball.B23"; iGPIO1.$suggestSolution = "GPIO0"; iGPIO2.$suggestSolution = "GPIO1"; iI2C1.$suggestSolution = "I2C2"; iI2C1.SCL.$suggestSolution = "ball.K22"; iI2C1.SDA.$suggestSolution = "ball.K24"; iI2C2.$suggestSolution = "I2C1"; iI2C2.SCL.$suggestSolution = "ball.B17"; iI2C2.SDA.$suggestSolution = "ball.A17"; iI2C3.$suggestSolution = "I2C0"; iI2C3.SCL.$suggestSolution = "ball.B16"; iI2C3.SDA.$suggestSolution = "ball.A16"; iJTAG1.$suggestSolution = "MCU_DEBUG0"; iJTAG1.EMU0.$suggestSolution = "ball.E12"; iJTAG1.EMU1.$suggestSolution = "ball.C11"; iJTAG1.TCK.$suggestSolution = "ball.A10"; iJTAG1.TDI.$suggestSolution = "ball.A11"; iJTAG1.TDO.$suggestSolution = "ball.D12"; iJTAG1.TMS.$suggestSolution = "ball.B11"; iJTAG1.TRSTn.$suggestSolution = "ball.B10"; iMCAN1.$suggestSolution = "MCAN0"; iMCAN1.RX.$suggestSolution = "ball.E15"; iMCAN1.TX.$suggestSolution = "ball.C15"; iMCU_GPIO1.$suggestSolution = "MCU_GPIO0"; iMCU_I2C1.$suggestSolution = "MCU_I2C0"; iMCU_I2C1.SCL.$suggestSolution = "ball.A8"; iMCU_I2C1.SDA.$suggestSolution = "ball.D10"; iMCU_MCAN1.$suggestSolution = "MCU_MCAN1"; iMCU_MCAN1.RX.$suggestSolution = "ball.D4"; iMCU_MCAN1.TX.$suggestSolution = "ball.E5"; iMCU_MCAN2.$suggestSolution = "MCU_MCAN0"; iMCU_MCAN2.RX.$suggestSolution = "ball.B3"; iMCU_MCAN2.TX.$suggestSolution = "ball.D6"; iMCU_SPI1.$suggestSolution = "MCU_SPI0"; iMCU_SPI1.CLK.$suggestSolution = "ball.A7"; iMCU_SPI1.CS0.$suggestSolution = "ball.E8"; iMCU_SPI1.D0.$suggestSolution = "ball.D9"; iMCU_SPI1.D1.$suggestSolution = "ball.C9"; iMCU_SYSTEM1.$suggestSolution = "MCU_SYSTEM0"; iMCU_SYSTEM1.MCU_ERRORn.$suggestSolution = "ball.D1"; iMCU_SYSTEM1.MCU_PORz.$suggestSolution = "ball.D2"; iMCU_SYSTEM1.MCU_RESETz.$suggestSolution = "ball.E11"; iMCU_TIMER1.$suggestSolution = "MCU_DMTIMER1"; iMCU_TIMER1.MCU_TIMER_IO.$suggestSolution = "ball.B8"; iMCU_UART1.$suggestSolution = "MCU_USART0"; iMCU_UART1.CTSn.$suggestSolution = "ball.A6"; iMCU_UART1.RTSn.$suggestSolution = "ball.B6"; iMCU_UART1.RXD.$suggestSolution = "ball.B5"; iMCU_UART1.TXD.$suggestSolution = "ball.A5"; iMDIO1.$suggestSolution = "MDIO0"; iMMC01.$suggestSolution = "MMC0"; iMMC01.CMD.$suggestSolution = "ball.Y3"; iMMC01.CLK.$suggestSolution = "ball.AB1"; iMMC01.DAT0.$suggestSolution = "ball.AA2"; iMMC01.DAT1.$suggestSolution = "ball.AA1"; iMMC01.DAT2.$suggestSolution = "ball.AA3"; iMMC01.DAT3.$suggestSolution = "ball.Y4"; iMMC01.DAT4.$suggestSolution = "ball.AB2"; iMMC01.DAT5.$suggestSolution = "ball.AC1"; iMMC01.DAT6.$suggestSolution = "ball.AD2"; iMMC01.DAT7.$suggestSolution = "ball.AC2"; iMMC11.$suggestSolution = "MMC1"; iMMC11.CLK.$suggestSolution = "ball.B22"; iMMC11.DAT0.$suggestSolution = "ball.A22"; iMMC11.DAT1.$suggestSolution = "ball.B21"; iMMC11.DAT2.$suggestSolution = "ball.C21"; iMMC11.DAT3.$suggestSolution = "ball.D22"; iMMC11.SDCD.$suggestSolution = "ball.D17"; iOLDI1.$suggestSolution = "OLDI0"; iOLDI1.A0N.$suggestSolution = "ball.AA5"; iOLDI1.A0P.$suggestSolution = "ball.Y6"; iOLDI1.A1N.$suggestSolution = "ball.AD3"; iOLDI1.A1P.$suggestSolution = "ball.AB4"; iOLDI1.A2N.$suggestSolution = "ball.Y8"; iOLDI1.A2P.$suggestSolution = "ball.AA8"; iOLDI1.A3N.$suggestSolution = "ball.AB6"; iOLDI1.A3P.$suggestSolution = "ball.AA7"; iOLDI1.A4N.$suggestSolution = "ball.AC6"; iOLDI1.A4P.$suggestSolution = "ball.AC5"; iOLDI1.A5N.$suggestSolution = "ball.AE5"; iOLDI1.A5P.$suggestSolution = "ball.AD6"; iOLDI1.A6N.$suggestSolution = "ball.AE6"; iOLDI1.A6P.$suggestSolution = "ball.AD7"; iOLDI1.A7N.$suggestSolution = "ball.AD8"; iOLDI1.A7P.$suggestSolution = "ball.AE7"; iOLDI1.CLK0N.$suggestSolution = "ball.AD4"; iOLDI1.CLK0P.$suggestSolution = "ball.AE3"; iOLDI1.CLK1N.$suggestSolution = "ball.AE4"; iOLDI1.CLK1P.$suggestSolution = "ball.AD5"; iOSPI1.$suggestSolution = "OSPI0"; iPRU_ICSSM0_PRU1.$suggestSolution = "PRU_ICSSM0_PRU0"; iPRU_ICSSM0_PRU1.GPI0.$suggestSolution = "ball.M25"; iPRU_ICSSM0_PRU1.GPI1.$suggestSolution = "ball.N23"; iPRU_ICSSM0_PRU1.GPI10.$suggestSolution = "ball.L24"; iPRU_ICSSM0_PRU1.GPI11.$suggestSolution = "ball.L25"; iPRU_ICSSM0_PRU1.GPI5.$suggestSolution = "ball.P22"; iPRU_ICSSM0_PRU1.GPI7.$suggestSolution = "ball.R23"; iPRU_ICSSM0_PRU1.GPI8.$suggestSolution = "ball.P25"; iPRU_ICSSM0_PRU1.GPI9.$suggestSolution = "ball.L23"; iPRU_ICSSM0_PRU1.GPO12.$suggestSolution = "ball.M24"; iPRU_ICSSM0_PRU1.GPO13.$suggestSolution = "ball.N20"; iPRU_ICSSM0_PRU1.GPO14.$suggestSolution = "ball.U23"; iPRU_ICSSM0_PRU1.GPO16.$suggestSolution = "ball.M22"; iPRU_ICSSM0_PRU1.GPO2.$suggestSolution = "ball.N24"; iPRU_ICSSM0_PRU1.GPO3.$suggestSolution = "ball.N25"; iPRU_ICSSM0_PRU1.GPO4.$suggestSolution = "ball.P24"; iPRU_ICSSM0_PRU1.GPO6.$suggestSolution = "ball.P21"; iRGMII1.$suggestSolution = "RGMII2"; iRGMII1.RD0.$suggestSolution = "ball.AE23"; iRGMII1.RD1.$suggestSolution = "ball.AB20"; iRGMII1.RD2.$suggestSolution = "ball.AC21"; iRGMII1.RD3.$suggestSolution = "ball.AE22"; iRGMII1.RXC.$suggestSolution = "ball.AD23"; iRGMII1.RX_CTL.$suggestSolution = "ball.AD22"; iRGMII1.TD0.$suggestSolution = "ball.Y18"; iRGMII1.TD1.$suggestSolution = "ball.AA18"; iRGMII1.TD2.$suggestSolution = "ball.AD21"; iRGMII1.TD3.$suggestSolution = "ball.AC20"; iRGMII1.TXC.$suggestSolution = "ball.AE21"; iRGMII1.TX_CTL.$suggestSolution = "ball.AA19"; iRGMII2.$suggestSolution = "RGMII1"; iRGMII2.RD0.$suggestSolution = "ball.AB17"; iRGMII2.RD1.$suggestSolution = "ball.AC17"; iRGMII2.RD2.$suggestSolution = "ball.AB16"; iRGMII2.RD3.$suggestSolution = "ball.AA15"; iRGMII2.RXC.$suggestSolution = "ball.AD17"; iRGMII2.RX_CTL.$suggestSolution = "ball.AE17"; iRGMII2.TD0.$suggestSolution = "ball.AE20"; iRGMII2.TD1.$suggestSolution = "ball.AD20"; iRGMII2.TD2.$suggestSolution = "ball.AE18"; iRGMII2.TD3.$suggestSolution = "ball.AD18"; iRGMII2.TXC.$suggestSolution = "ball.AE19"; iRGMII2.TX_CTL.$suggestSolution = "ball.AD19"; iSPI1.$suggestSolution = "SPI0"; iSPI1.CLK.$suggestSolution = "ball.A14"; iSPI1.CS0.$suggestSolution = "ball.A13"; iSPI1.CS1.$suggestSolution = "ball.C13"; iSPI1.D0.$suggestSolution = "ball.B13"; iSPI1.D1.$suggestSolution = "ball.B14"; iSYSTEM1.$suggestSolution = "SYSTEM0"; iSYSTEM1.PORz_OUT.$suggestSolution = "ball.E21"; iSYSTEM1.RESETSTATz.$suggestSolution = "ball.F22"; iSYSTEM1.RESET_REQz.$suggestSolution = "ball.F20"; iUART1.$suggestSolution = "USART0"; iUSB1.$suggestSolution = "USB1"; iUSB1.DM.$suggestSolution = "ball.AD10"; iUSB1.DP.$suggestSolution = "ball.AE9"; iUSB1.DRVVBUS.$suggestSolution = "ball.F18"; iUSB1.RCALIB.$suggestSolution = "ball.AC9"; iUSB1.VBUS.$suggestSolution = "ball.AB10"; iUSB2.$suggestSolution = "USB0"; iUSB2.DM.$suggestSolution = "ball.AE11"; iUSB2.DP.$suggestSolution = "ball.AD11"; iUSB2.DRVVBUS.$suggestSolution = "ball.C20"; iUSB2.RCALIB.$suggestSolution = "ball.AE10"; iUSB2.VBUS.$suggestSolution = "ball.AC11"; iWKUP_I2C1.$suggestSolution = "WKUP_I2C0"; iWKUP_SYSTEM1.$suggestSolution = "WKUP_SYSTEM"; iWKUP_UART1.$suggestSolution = "WKUP_USART0";