Debugging linux kerenl on imx8mm with hardware debugger

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

Debugging linux kerenl on imx8mm with hardware debugger

跳至解决方案
1,737 次查看
seanlink
Contributor I

I am currently trying to do hardware bring-up for a board that is closely modeled after NXP's imx8mm_evk. We are ultimately trying to boot into an early version of android 8. We successfully boot into uboot and then hang during the kernel initialization. Here is our current printout.
```txt
U-Boot SPL 2017.03-00257-g890a52f-dirty (Feb 22 2022 - 22:28:49)

power_bd71837_init

check ddr4_pmu_train_imem code

check ddr4_pmu_train_imem code pass

check ddr4_pmu_train_dmem code

check ddr4_pmu_train_dmem code pass

check ddr4_pmu_train_imem code

check ddr4_pmu_train_imem code pass

check ddr4_pmu_train_dmem code

check ddr4_pmu_train_dmem code pass

Normal Boot

Trying to boot from MMC2

NOTICE: BL31: v2.2(release):android-11.0.0_1.0.0-rc3-0-g1555e5d00

NOTICE: BL31: Built : 12:38:43, Dec 16 2021

 

U-Boot 2017.03-00257-g890a52f-dirty (Feb 22 2022 - 22:28:49 +0000)

 

CPU: Freescale i.MX8MM rev1.0 at 1200 MHz

Reset cause: POR

Model: OMMITED FOR POST

DRAM: 2 GiB

tcpc_init: Can't find device id=0x52

setup_typec: tcpc port2 init failed, err=-19

tcpc_init: Can't find device id=0x50

setup_typec: tcpc port1 init failed, err=-19

MMC: FSL_SDHC: 0

*** Warning - bad CRC, using default environment

 

In: serial

Out: serial

Err: serial

 

BuildInfo:

- ATF 1555e5d

- U-Boot 2017.03-00257-g890a52f-dirty

 

flash target is MMC:0

Net: No ethernet found.

Fastboot: Normal

Normal Boot

Hit any key to stop autoboot: 2 1 0

In boota get fastboot lock status error. Set lock status

avb_ab_flow.c:30: ERROR: Magic is incorrect.

avb_ab_flow.c:106: ERROR: Error validating A/B metadata from disk. Resetting and writing new A/B metadata to disk.

verify OK, boot 'boot_a'

Kernel load addr 0x80080000 size 27445 KiB

Kernel command line: console=ttymxc1,115200 earlycon=ec_imx6q,0x30890000,115200 init=/init androidboot.console=ttymxc1 consoleblank=0 androidboot.hardware=freescale cma=800M androidboot.primary_display=imx-drm firmware_class.path=/vendor/firmware buildvariant=eng androidboot.serialno=222a4209dab4001d androidboot.soc_type=imx8mm androidboot.storage_type=emmc androidboot.boottime=1BLL:0,1BLE:6695,KL:0,KD:0,AVB:2396,ODT:0,SW:0 androidboot.verifiedbootstate=green androidboot.slot_suffix=_a dm="1 vroot none ro 1,0 3095928 verity 1 PARTUUID=39f0abff-dd4d-47bc-a7b5-3c81d0df1739 PARTUUID=39f0abff-dd4d-47bc-a7b5-3c81d0df1739 4096 4096 386991 386991 sha1 29134f75c1ffd0e7740fe83e299d8412847e4dbf 5dfde28d53e0505a5bd4b755cd9e3c88caa84830 10 restart_on_corruption ignore_zero_blocks use_fec_from_device PARTUUID=39f0abff-dd4d-47bc-a7b5-3c81d0df1739 fec_roots 2 fec_blocks 390040 fec_start 390040" root=/dev/dm-0 androidboot.vbmeta.device=PARTUUID=d905951d-bccc-4a10-9619-9fa0cb00c7a7 androidboot.vbmeta.avb_version=1.0 androidboot.vbmeta.device_state=locked androidboot.vbmeta.hash_alg=sha256 androidboot.vbmeta.size=3008 androidboot.vbmeta.digest=42de14b5229bc8954d5b01ae9b14e28088e5e94d3643c47dcb060bdb1cd119e7 androidboot.vbmeta.invalidate_on_error=yes androidboot.veritymode=enforcing skip_initramfs rootwait androidboot.mode=imx8mm_OMMITED.c, specialBootMode not implemented

kernel @ 80080000 (28103168)

ramdisk @ 83200000 (6847781)

fdt @ 83000000 (35061)

## Flattened Device Tree blob at 83000000

Booting using the fdt blob at 0x83000000

Using Device Tree in place at 0000000083000000, end 000000008300b8f4

 

Starting kernel ...

 

[ 0.000000] Booting Linux on physical CPU 0x0

[ 0.000000] Linux version 4.9.105 (sean@2c2e4a6d206c) (gcc version 4.9.x 20150123 (prerelease) (GCC) ) #7 SMP PREEMPT Tue Feb 22 22:29:00 UTC 2022

[ 0.000000] Boot CPU: AArch64 Processor [410fd034]

[ 0.000000] earlycon: ec_imx6q0 at MMIO 0x0000000030890000 (options '115200')

[ 0.000000] bootconsole [ec_imx6q0] enabled

[ 0.000000] efi: Getting EFI parameters from FDT:

[ 0.000000] efi: UEFI not found.

[ 0.000000] cma: Reserved 800 MiB at 0x0000000086000000

[ 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: MIGRATE_INFO_TYPE not supported.

[ 0.000000] psci: SMC Calling Convention v1.1

[ 0.000000] percpu: Embedded 23 pages/cpu @ffff80007ff68000 s54016 r8192 d32000 u94208

[ 0.000000] Detected VIPT I-cache on CPU0

[ 0.000000] CPU features: enabling workaround for ARM erratum 845719

[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 515072

[ 0.000000] Kernel command line: console=ttymxc1,115200 earlycon=ec_imx6q,0x30890000,115200 init=/init androidboot.console=ttymxc1 consoleblank=0 androidboot.hardware=freescale cma=800M androidboot.primary_display=imx-drm firmware_class.path=/vendor/firmware buildvariant=eng androidboot.serialno=222a4209dab4001d androidboot.soc_type=imx8mm androidboot.storage_type=emmc androidboot.boottime=1BLL:0,1BLE:6695,KL:0,KD:0,AVB:2396,ODT:0,SW:0 androidboot.verifiedbootstate=green androidboot.slot_suffix=_a dm="1 vroot none ro 1,0 3095928 verity 1 PARTUUID=39f0abff-dd4d-47bc-a7b5-3c81d0df1739 PARTUUID=39f0abff-dd4d-47bc-a7b5-3c81d0df1739 4096 4096 386991 386991 sha1 29134f75c1ffd0e7740fe83e299d8412847e4dbf 5dfde28d53e0505a5bd4b755cd9e3c88caa84830 10 restart_on_corruption ignore_zero_blocks use_fec_from_device PARTUUID=39f0abff-dd4d-47bc-a7b5-3c81d0df1739 fec_roots 2 fec_blocks 390040 fec_start 390040" root=/dev/dm-0 androidboot.vbmeta.device=PARTUUID=d905951d-bccc-4a10-9619-9fa0cb00c7a7 androidbo

[ 0.000000] device-mapper: init: will configure 1 devices

[ 0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)

[ 0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)

[ 0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)

[ 0.000000] Memory: 1208708K/2093056K available (14972K kernel code, 1716K rwdata, 5864K rodata, 4864K init, 1165K bss, 65148K reserved, 819200K cma-reserved)

[ 0.000000] Virtual kernel memory layout:

[ 0.000000] modules : 0xffff000000000000 - 0xffff000008000000 ( 128 MB)

[ 0.000000] vmalloc : 0xffff000008000000 - 0xffff7dffbfff0000 (129022 GB)

[ 0.000000] .text : 0xffff000008080000 - 0xffff000008f20000 ( 14976 KB)

[ 0.000000] .rodata : 0xffff000008f20000 - 0xffff0000094e0000 ( 5888 KB)

[ 0.000000] .init : 0xffff0000094e0000 - 0xffff0000099a0000 ( 4864 KB)

[ 0.000000] .data : 0xffff0000099a0000 - 0xffff000009b4d200 ( 1717 KB)

[ 0.000000] .bss : 0xffff000009b4d200 - 0xffff000009c70920 ( 1166 KB)

[ 0.000000] fixed : 0xffff7dfffe7fb000 - 0xffff7dfffec00000 ( 4116 KB)

[ 0.000000] PCI I/O : 0xffff7dfffee00000 - 0xffff7dffffe00000 ( 16 MB)

[ 0.000000] vmemmap : 0xffff7e0000000000 - 0xffff800000000000 ( 2048 GB maximum)

[ 0.000000] 0xffff7e0000000000 - 0xffff7e0002000000 ( 32 MB actual)

[ 0.000000] memory : 0xffff800000000000 - 0xffff800080000000 ( 2048 MB)

[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1

[ 0.000000] Preemptible hierarchical RCU implementation.

[ 0.000000] Build-time adjustment of leaf fanout to 64.

[ 0.000000] RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=4.

[ 0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=64, nr_cpu_ids=4

[ 0.000000] NR_IRQS:64 nr_irqs:64 0

[ 0.000000] GICv3: GIC: Using split EOI/Deactivate mode

[ 0.000000] ITS: No ITS available, not enabling LPIs

[ 0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000038880000

[ 0.000000] i.MX8MM clock driver init done

[ 0.000000] arm_arch_timer: Architected cp15 timer(s) running at 8.00MHz (phys).

[ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 440795202120 ns

[ 0.000003] sched_clock: 56 bits at 8MHz, resolution 125ns, wraps every 2199023255500ns

[ 0.008095] system counter timer init

[ 0.011761] sched_clock: 56 bits at 8MHz, resolution 125ns, wraps every 2199023255500ns

[ 0.019777] clocksource: imx sysctr: mask: 0xffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 440795202120 ns

[ 0.030310] Console: colour dummy device 80x25

[ 0.034579] Calibrating delay loop (skipped), value calculated using timer frequency.. 16.00 BogoMIPS (lpj=32000)

[ 0.044888] pid_max: default: 32768 minimum: 301

[ 0.049579] Security Framework initialized

[ 0.053645] SELinux: Initializing.

[ 0.057200] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)

[ 0.063883] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes)

[ 0.071789] sched-energy: CPU device node has no sched-energy-costs

[ 0.077371] Invalid sched_group_energy for CPU0

[ 0.081907] CPU0: update cpu_capacity 1024

[ 0.086023] ASID allocator initialised with 32768 entries

[ 0.123839] Cannot find MU entry in device tree

[ 0.125618] CPU identified as i.MX8MM, unknown revision

[ 0.130889] EFI services will not be available.

[ 0.183505] Detected VIPT I-cache on CPU1

[ 0.183528] GICv3: CPU1: found redistributor 1 region 0:0x00000000388a0000

[ 0.183553] Invalid sched_group_energy for CPU1

[ 0.183556] CPU1: update cpu_capacity 1024

[ 0.183559] CPU1: Booted secondary processor [410fd034]

[ 0.215545] Detected VIPT I-cache on CPU2

[ 0.215560] GICv3: CPU2: found redistributor 2 region 0:0x00000000388c0000

[ 0.215576] Invalid sched_group_energy for CPU2

[ 0.215578] CPU2: update cpu_capacity 1024

[ 0.215581] CPU2: Booted secondary processor [410fd034]

[ 0.247611] Detected VIPT I-cache on CPU3

[ 0.247626] GICv3: CPU3: found redistributor 3 region 0:0x00000000388e0000

[ 0.247640] Invalid sched_group_energy for CPU3

[ 0.247642] CPU3: update cpu_capacity 1024

[ 0.247644] CPU3: Booted secondary processor [410fd034]

[ 0.247701] Brought up 4 CPUs

[ 0.322355] SMP: Total of 4 processors activated.

[ 0.327087] CPU features: detected feature: GIC system register CPU interface

[ 0.334263] CPU features: detected feature: 32-bit EL0 Support

[ 0.340153] CPU features: detected feature: Kernel page table isolation (KPTI)

[ 0.349867] CPU: All CPU(s) started at EL2

[ 0.351511] alternatives: patching kernel code

[ 0.356133] Invalid sched_group_energy for CPU3

[ 0.360514] Invalid sched_group_energy for Cluster3

[ 0.365411] Invalid sched_group_energy for CPU2

[ 0.369961] Invalid sched_group_energy for Cluster2

[ 0.374860] Invalid sched_group_energy for CPU1

[ 0.379410] Invalid sched_group_energy for Cluster1

[ 0.384310] Invalid sched_group_energy for CPU0

[ 0.388860] Invalid sched_group_energy for Cluster0

[ 0.394583] devtmpfs: initialized

[ 0.403394] DMI not present or invalid.

[ 0.404595] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns

[ 0.414200] futex hash table entries: 1024 (order: 5, 131072 bytes)

[ 0.439238] pinctrl core: initialized pinctrl subsystem

[ 0.442352] NET: Registered protocol family 16

[ 0.470159] cpuidle: using governor menu

[ 0.472436] vdso: 2 pages (1 code @ ffff000008f28000, 1 data @ ffff0000099a4000)

[ 0.478698] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.

[ 0.488725] DMA: preallocated 256 KiB pool for atomic allocations

[ 0.492433] Serial: AMBA PL011 UART driver

[ 0.499351] imx8mm-pinctrl 30330000.pinctrl: initialized IMX pinctrl driver

[ 0.552279] HugeTLB registered 2 MB page size, pre-allocated 0 pages

[ 0.561078] ACPI: Interpreter disabled.

[ 0.563306] vgaarb: loaded

[ 0.565050] SCSI subsystem initialized

[ 0.569014] usbcore: registered new interface driver usbfs

[ 0.574104] usbcore: registered new interface driver hub

[ 0.579526] usbcore: registered new device driver usb

[ 0.584651] usbphynop1 supply vcc not found, using dummy regulator

[ 0.590762] usbphynop2 supply vcc not found, using dummy regulator

[ 0.601082] bd71837 0-004b: Device ID=0xA1

[ 0.602327] bd71837 0-004b: gpio_intr = 3

[ 0.606459] bd71837 0-004b: chip_irq=50

[ 0.642652] bd71837-pmic bd71837-pmic: regulator register name 'buck1'

[ 0.662810] bd71837-pmic bd71837-pmic: regulator register name 'buck2'

[ 0.682840] bd71837-pmic bd71837-pmic: regulator register name 'buck3'

[ 0.694878] bd71837-pmic bd71837-pmic: regulator register name 'buck4'

[ 0.706896] bd71837-pmic bd71837-pmic: regulator register name 'buck5'

[ 0.718924] bd71837-pmic bd71837-pmic: regulator register name 'buck6'

[ 0.730964] bd71837-pmic bd71837-pmic: regulator register name 'buck7'

[ 0.742984] bd71837-pmic bd71837-pmic: regulator register name 'buck8'

[ 0.755003] bd71837-pmic bd71837-pmic: regulator register name 'ldo1'

[ 0.775053] bd71837-pmic bd71837-pmic: regulator register name 'ldo2'

[ 0.783050] bd71837-pmic bd71837-pmic: regulator register name 'ldo3'

[ 0.803112] bd71837-pmic bd71837-pmic: regulator register name 'ldo4'

[ 0.823163] bd71837-pmic bd71837-pmic: regulator register name 'ldo5'

[ 0.835202] bd71837-pmic bd71837-pmic: regulator register name 'ldo6'

[ 0.851219] bd71837-pmic bd71837-pmic: regulator register name 'ldo7'

[ 0.871157] random: fast init done

[ 0.875407] i2c i2c-0: IMX I2C adapter registered

[ 0.877267] i2c i2c-0: can't use DMA, using PIO instead.

[ 0.883027] i2c i2c-1: IMX I2C adapter registered

[ 0.887346] i2c i2c-1: can't use DMA, using PIO instead.

[ 0.893024] i2c i2c-2: IMX I2C adapter registered

[ 0.897424] i2c i2c-2: can't use DMA, using PIO instead.

[ 0.903023] media: Linux media interface: v0.10

[ 0.907315] Linux video capture interface: v2.00

[ 0.911973] pps_core: LinuxPPS API ver. 1 registered

[ 0.916907] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>

[ 0.926118] PTP clock support registered

[ 0.930151] dmi: Firmware registration failed.

[ 0.934495] Linux cec interface: v0.10

[ 0.938590] MU is ready for cross core communication!

[ 0.944310] virtio_rpmsg_bus virtio0: rpmsg host is online

[ 0.949060] imx rpmsg driver is registered.

[ 0.953241] Advanced Linux Sound Architecture Driver Initialized.

[ 0.959752] Bluetooth: Core ver 2.22

[ 0.962776] NET: Registered protocol family 31

[ 0.967229] Bluetooth: HCI device and connection manager initialized

[ 0.973611] Bluetooth: HCI socket layer initialized

[ 0.978508] Bluetooth: L2CAP socket layer initialized

[ 0.983598] Bluetooth: SCO socket layer initialized

[ 0.990026] clocksource: Switched to clocksource arch_sys_counter

[ 1.032250] VFS: Disk quotas dquot_6.6.0

[ 1.033373] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)

[ 1.040519] pnp: PnP ACPI: disabled

[ 1.049622] NET: Registered protocol family 2

[ 1.051581] TCP established hash table entries: 16384 (order: 5, 131072 bytes)

[ 1.058536] TCP bind hash table entries: 16384 (order: 6, 262144 bytes)

[ 1.065312] TCP: Hash tables configured (established 16384 bind 16384)

[ 1.071659] UDP hash table entries: 1024 (order: 3, 32768 bytes)

[ 1.077693] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes)

[ 1.084278] NET: Registered protocol family 1

[ 1.088787] RPC: Registered named UNIX socket transport module.

[ 1.094455] RPC: Registered udp transport module.

[ 1.099181] RPC: Registered tcp transport module.

[ 1.103901] RPC: Registered tcp NFSv4.1 backchannel transport module.

[ 1.111551] hw perfevents: enabled with armv8_pmuv3 PMU driver, 7 counters available

[ 1.118403] kvm [1]: 8-bit VMID

[ 1.121307] kvm [1]: IDMAP page: 40f0c000

[ 1.125341] kvm [1]: HYP VA range: 800000000000:ffffffffffff

[ 1.131919] kvm [1]: Hyp mode initialized successfully

[ 1.136203] kvm [1]: GICv3: no GICV resource entry

[ 1.141006] kvm [1]: disabling GICv2 emulation

[ 1.145481] kvm [1]: GIC system register CPU interface enabled

[ 1.151421] kvm [1]: vgic interrupt IRQ1

[ 1.155277] kvm [1]: virtual timer IRQ4

[ 1.160979] audit: initializing netlink subsys (disabled)

[ 1.165090] workingset: timestamp_bits=46 max_order=19 bucket_order=0

[ 1.177679] squashfs: version 4.0 (2009/01/31) Phillip Lougher

[ 1.180862] exFAT: Version 1.3.0

[ 1.184008] Registering sdcardfs 0.1

[ 1.188392] fuse init (API version 7.26)

[ 1.196348] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)

[ 1.200955] io scheduler noop registered

[ 1.204983] io scheduler cfq registered (default)

[ 1.212257] pwm-backlight supply power not found, using dummy regulator

[ 1.221233] imx-sdma 30bd0000.dma-controller: no iram assigned, using external mem

[ 1.227445] imx-sdma 30bd0000.dma-controller: loaded firmware 4.2

[ 1.232162] imx-sdma 302c0000.dma-controller: no iram assigned, using external mem

[ 1.240932] imx-sdma 302c0000.dma-controller: loaded firmware 4.2

[ 1.244191] imx-sdma 302b0000.dma-controller: noiram assigned, using external mem

[ 1.247988] imx-sdma 302b0000.dma-controller: loaded firmware 4.2

[ 1.250098] Bus freq driver module loaded

[ 1.250702] xenfs: not registering filesystem on non-xen platform

[ 1.251099] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled

[ 1.252945] 30880000.serial: ttymxc2 at MMIO 0x30880000 (irq = 25, base_baud = 5000000) is a IMX

[ 1.253290] 30890000.serial: ttymxc1 at MMIO 0x30890000 (irq = 26, base_baud = 1500000) is a IMX

[ 1.296766] console [ttymxc1] enabled

[ 1.300461] bootconsole [ec_imx6q0] disabled

[ 1.305869] [drm] Initialized

[ 1.318593] brd: module loaded

[ 1.325300] loop: module loaded

[ 1.330445] nbd: registered device at major 43

[ 1.340424] zram: Added device: zram0

[ 1.344442] g3-mfg g3-mfg: get brd-id-main-gpios failed -2

[ 1.349979] g3-mfg g3-mfg: get brd-id-nut-gpios failed -2

[ 1.355397] g3-mfg g3-mfg: brd-id-main=0 brd-id-nut=0

[ 1.360749] g3-io g3-wifi: set: gpio(104)=0

[ 1.382040] g3-io g3-wifi: set: gpio(103)=0

[ 1.406033] g3-io g3-wifi: probed

[ 1.410095] hisi_sas: driver version v1.6

[ 1.415214] slram: not enough parameters.

[ 1.420409] libphy: Fixed MDIO Bus: probed

[ 1.425087] tun: Universal TUN/TAP device driver, 1.6

[ 1.430169] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>

[ 1.436556] CAN device driver interface

[ 1.441461] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k

[ 1.447311] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.

[ 1.453300] igb: Intel(R) Gigabit Ethernet Network Driver - version 5.4.0-k

[ 1.460273] igb: Copyright (c) 2007-2014 Intel Corporation.

[ 1.465897] igbvf: Intel(R) Gigabit Virtual Function Network Driver - version 2.4.0-k

[ 1.473737] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.

[ 1.479705] sky2: driver version 1.30

[ 1.483750] PPP generic driver version 2.4.2

[ 1.488182] PPP BSD Compression module registered

[ 1.492902] PPP Deflate Compression module registered

[ 1.497990] PPP MPPE Compression module registered

[ 1.502791] NET: Registered protocol family 24

[ 1.507259] pegasus: v0.9.3 (2013/04/25), Pegasus/Pegasus II USB Ethernet driver

[ 1.514733] usbcore: registered new interface driver pegasus

[ 1.520449] usbcore: registered new interface driver rtl8150

[ 1.526156] usbcore: registered new interface driver r8152

[ 1.531691] usbcore: registered new interface driver asix

[ 1.537134] usbcore: registered new interface driver ax88179_178a

[ 1.543277] usbcore: registered new interface driver cdc_ether

[ 1.549154] usbcore: registered new interface driver dm9601

[ 1.554781] usbcore: registered new interface driver CoreChips

[ 1.560665] usbcore: registered new interface driver smsc75xx

[ 1.566465] usbcore: registered new interface driver smsc95xx

[ 1.572260] usbcore: registered new interface driver net1080

[ 1.577966] usbcore: registered new interface driver plusb

[ 1.583496] usbcore: registered new interface driver cdc_subset

[ 1.589464] usbcore: registered new interface driver zaurus

[ 1.595081] usbcore: registered new interface driver MOSCHIP usb-ethernet driver

[ 1.602536] usbcore: registered new interface driver cdc_ncm

[ 1.609120] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver

[ 1.615680] ehci-pci: EHCI PCI platform driver

[ 1.620180] ehci-platform: EHCI generic platform driver

[ 1.625541] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver

[ 1.631750] ohci-pci: OHCI PCI platform driver

[ 1.636252] ohci-platform: OHCI generic platform driver

[ 1.641872] usbcore: registered new interface driver cdc_acm

[ 1.647555] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters

[ 1.655614] usbcore: registered new interface driver usb-storage

[ 1.661676] usbcore: registered new interface driver usb_ehset_test

[ 1.668672] 32e40200.usbmisc supply vbus-wakeup not found, using dummy regulator

[ 1.676177] 32e50200.usbmisc supply vbus-wakeup not found, using dummy regulator

[ 1.684156] 32e40000.usb supply vbus not found, using dummy regulator

[ 1.695039] mousedev: PS/2 mouse device common for all mice

[ 1.700973] input: 30370000.snvs:snvs-powerkey as /devices/platform/30370000.snvs/30370000.snvs:snvs-powerkey/input/input0

[ 1.712391] usbcore: registered new interface driver xpad

[ 1.717860] usbcore: registered new interface driver usb_acecad

[ 1.723835] usbcore: registered new interface driver aiptek

[ 1.729458] usbcore: registered new interface driver gtco

[ 1.734909] usbcore: registered new interface driver hanwang

[ 1.740620] usbcore: registered new interface driver kbtab

[ 1.746267] [FTS_TS/I]fts_ts_probe:Touch Screen(I2C BUS) driver prboe...

[ 1.752986] [FTS_TS/I]fts_ts_probe_entry:Focaltech V3.1 20190807

[ 1.759007] [FTS_TS/I]fts_get_dt_coords:display x(0 720) y(0 1280)

[ 1.765212] [FTS_TS/I]fts_parse_dt:max touch number:5, irq gpio:124, reset gpio:125

[ 1.773086] input: fts_ts as /devices/platform/30a20000.i2c/i2c-0/0-0038/input/input1

[ 1.781074] 0-0038 supply vdd not found, using dummy regulator

[ 1.786966] 0-0038 supply vcc_i2c not found, using dummy regulator

[ 2.022680] [FTS_TS/I]fts_get_ic_information:get ic information, chip id = 0x5422

[ 2.030187] [FTS_TS/I]fts_create_apk_debug_channel:Create proc entry success!

[ 2.037358] [FTS_TS/I]fts_create_sysfs:[EX]: sysfs_create_group() succeeded!!

[ 2.044522] [FTS_TS/I]fts_irq_registration:irq:171, flag:2002

[ 2.050370] [FTS_TS/I]fts_fwupg_init:fw upgrade init function

[ 2.056137] [FTS_TS/I]fts_ts_probe:Touch Screen(I2C BUS) driver prboe successfully

[ 2.056143] [FTS_TS/I]fts_fwupg_work:fw upgrade work function

[ 2.056199] fts_ts 0-0038: Falling back to user helper

[ 2.075890] snvs_rtc 30370000.snvs:snvs-rtc-lp: rtc core: registered 30370000.snvs:snvs- as rtc0

[ 2.084892] i2c /dev entries driver

[ 2.089856] usbcore: registered new interface driver uvcvideo

[ 2.095631] USB Video Class driver (1.1.1)

[ 2.212300] [bq40z50] fg_read_fw_version: FW Ver:0000, Build:0080

[ 2.218414] [bq40z50] fg_read_fw_version: Ztrack Ver:FF69

[ 2.228846] [bq40z50] fg_update_status: RSOC:99, Volt:4189, Current:0, Temperature:274

[ 2.236778] [bq40z50] bq_fg_probe: bq fuel gauge probe successfully, bq40z50

[ 2.245174] imx2-wdt 30280000.wdog: timeout 60 sec (nowayout=0)

[ 2.251488] device-mapper: uevent: version 1.0.3

[ 2.256426] device-mapper: ioctl: 4.35.0-ioctl (2016-06-23) initialised: dm-devel@redhat.com

[ 2.266284] sdhci: Secure Digital Host Controller Interface driver

[ 2.272503] sdhci: Copyright(c) Pierre Ossman

[ 2.277013] sdhci-pltfm: SDHCI platform and OF driver helper

[ 2.330050] mmc2: SDHCI controller on 30b60000.mmc [30b60000.mmc] using ADMA
```
I want to use a hardware debugger to set a break-point near the hang and step through the code. I am using a J-Link Plus via a JTAG interface to debug. I am able to connect to the target device using the JLinkGDBServer using the following command on my host machine.
```bash
JLinkGDBServer -device Cortex-A53 -notimeout
```
**Print out**
```txt
SEGGER J-Link GDB Server V7.62a Command Line Version

JLinkARM.dll V7.62a (DLL compiled Feb 23 2022 17:02:35)

Command line: -device Cortex-A53 -notimeout
-----GDB Server start settings-----
GDBInit file: none
GDB Server Listening port: 2331
SWO raw output listening port: 2332
Terminal I/O port: 2333
Accept remote connection: yes
Generate logfile: off
Verify download: off
Init regs on start: off
Silent mode: off
Single run mode: off
Target connection timeout: none
------J-Link related settings------
J-Link Host interface: USB
J-Link script: none
J-Link settings file: none
------Target related settings------
Target device: Cortex-A53
Target interface: JTAG
Target interface speed: 4000kHz
Target endian: little

Connecting to J-Link...
J-Link is connected.
Firmware: J-Link V10 compiled Nov 2 2021 12:14:50
Hardware: V10.10
S/N: 600104262
Feature(s): RDI, FlashBP, FlashDL, JFlash, GDB
Checking target voltage...
Target voltage: 1.79 V
Listening on TCP/IP port 2331
Connecting to target...
ERROR: Specific core setup failed.

J-Link found 1 JTAG device, Total IRLen = 4
JTAG ID: 0x5BA00477 (Cortex-A53)
Connected to target
Waiting for GDB connection...
```
I am then able to use gdb to connect to the GDB server using the following commands on my host machine.
```txt
aarch64-linux-gnu-gdb
(gdb) # Connect to GDB Server
(gdb) target remote localhost:2331
(gdb) # Restart the target device
(gdb) monitor reset
(gdb) # Let device redo uboot
(gdb) monitor go
(gdb) # Halt the processor during kernel initialization befor hang
(gdb) monitor halt
(gdb) # Tell gdb which file is currently being debugged
(gdb) file vmlinux
(gdb) # Check that the source code and elf binary is correctly mapped
(gdb) tui enable
(gdb) # Try to single step
(gdb) next
```

I am able to see the source code within gdb but am unable to step a source line using the next command. I get the following error.
```txt
Connot access memory at address 0xffff0000080a1488
```
I think gdb or JLinkGDBServer might be trying to read the virtual memory map of the vmlinux elf file as a literal addresses.

Looking at the reference manual, https://www.nxp.com/webapp/Download?colCode=IMX8MMRM, page 20-22, reading from a literal address of 0x080a1488 would be problematic since this is not RAM where the kernel should be loaded.

If gdb or JLinkGDBServer reading the elf file for literal memory is the issue, how do I resolve this? I am trying to modify the build process of the linux kernel so the elf file could reflect literal memory addresses rather than virtual ones but this process is slow given my current level of knowledge/understanding of the kernel building/linking process.

0 项奖励
回复
1 解答
1,706 次查看
seanlink
Contributor I

Figured it out. No additional changes where needed when building the linux kernel. Turned out to be a bug or user error with the JLinkGDBServer. Using openOCD instead fixed my issue.

在原帖中查看解决方案

0 项奖励
回复
1 回复
1,707 次查看
seanlink
Contributor I

Figured it out. No additional changes where needed when building the linux kernel. Turned out to be a bug or user error with the JLinkGDBServer. Using openOCD instead fixed my issue.

0 项奖励
回复