i.MX6 DualLite stuck at early boot
AudioONE
audioone.official at gmail.com
Thu Jan 3 13:07:14 UTC 2019
no luck to set sp_enabled = 0, any ideas?
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=208381
> okay....... after days and days mind storm(mind fuck), finally, I can
> enter DDB, here is what I did in [reinit_mmu], maybe can help someone.
>
>
> ==============================
>
> ASENTRY_NP(reinit_mmu)
> push {r4-r11, lr}
> mov r4, r0
> mov r5, r1
> mov r6, r2
>
> + /* Only for Cortex-A9 Errdata Fix */
> + mrc p15, 0, r0, c15, c0, 1 @ read diagnostic register
> + orr r0, r0, #1 << 4 @ set bit #4
> + orr r0, r0, #1 << 6 @ set bit #6
> + orr r0, r0, #1 << 11 @ set bit #11
> + orr r0, r0, #1 << 21 @ set bit #21
> + mcr p15, 0, r0, c15, c0, 1 @ write diagnostic register
> + DSB
> + ISB
>
> .
> .
> .
> .
> #else
> bl dcache_inv_pou_all
> #endif
> mcr CP15_ICIALLU
> + mcr CP15_TLBIALL /* Flush TLB */
> + mcr CP15_BPIALL /* Flush Branch predictor */
> DSB
> ISB
>
>
> /* Set auxiliary register */
> mrc CP15_ACTLR(r7)
> .
> .
> .
>
> END(reinit_mmu)
> ==============================
>
> my new problem is OS panic at same address "FAR=0000ec10"(after reset the
> eval-board many times), what does it mean? something wrong with FDT? I use
> wandboard-dual dts file(1 GB memory)
>
>
> U-Boot 2016.05 (Dec 31 2018 - 22:57:28 +0800)
>
> CPU: Freescale i.MX6DL rev1.2 at 792 MHz
> Reset cause: POR
> Board: MX6DL-Armadillo2
> DRAM: 1 GiB
> WARNING: Caches not enabled
> MMC: FSL_SDHC: 0
> *** Warning - bad CRC, using default environment
>
> In: serial
> Out: serial
> Err: serial
> Net: FEC
> Error: FEC address not set.
>
> Hit any key to stop autoboot: 0
> reading tarker
> ** Unable to read file tarker **
> reading tmpker
> ** Unable to read file tmpker **
> Booting BSD loader
> reading ubldr.bin
> 185536 bytes read in 40 ms (4.4 MiB/s)
> ## Starting application at 0x12000000 ...
> Consoles: U-Boot console
> Compatible U-Boot API signature found @0x4fd703e0
>
> FreeBSD/armv6 U-Boot loader, Revision 1.2
> (root at freebsd-x250, Sat Dec 15 17:17:42 HKT 2018)
>
> DRAM: 1024MB
> Number of U-Boot devices: 2
> U-Boot env: loaderdev not set, will probe all devices.
> Found U-Boot device: disk
> Probing all disk devices...
> Checking unit=0 slice=<auto> partition=<auto>... good.
> Booting from disk0s2:
> /
> /boot/kernel/kernel data=0x580b24+0xb74dc -
> Hit [Enter] to boot immediately, or any other key for command prompt.
> Booting [/boot/kernel/kernel]...
> Kernel entry at 0x0x12200100...
> Kernel args: (null)
> initarm: console initialized
> arg1 kmdp = 0xc2639000
> boothowto = 0x00000000
> dtbp = 0xc254af08
> lastaddr1: 0x1283a000
> loader passed (static) kenv:
> loader_envp = 0xc2638000
> c2638000 LINES=24
> c2638009 console=uboot
> c2638017 currdev=disk0s2:
> c2638028 kerflag=
> c2638031 kernelname=/boot/kernel/kernel
> c2638050 loaddev=disk0s2:
> c2638061 prompt=loader>
> c2638070 twiddle_divisor=1
> imx_wdog_init_last_reset
> ARM Debug Architecture v7
> 4 watchpoints and 6 breakpoints supported
> KDB: debugger backends: ddb
> KDB: current backend: ddb
> Copyright (c) 1992-2016 The FreeBSD Project.
> Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
> The Regents of the University of California. All rights reserved.
> FreeBSD is a registered trademark of The FreeBSD Foundation.
> FreeBSD 11.0-RELEASE-p1 #180 r309528M: Thu Jan 3 10:42:45 HKT 2019
> root at 4160059805-freebsd-xeon:/mnt/dev/bsdbuild/arm.armv6/mnt/dev/11/sys/IMX6
> arm
> FreeBSD clang version 3.8.0 (tags/RELEASE_380/final 262564) (based on LLVM
> 3.8.0)
> WARNING: WITNESS option enabled, expect reduced performance.
> WARNING: DIAGNOSTIC option enabled, expect reduced performance.
> subsystem 1000000
> 0xc23e0b88(0)... Fatal kernel mode data abort: 'Translation Fault (L1)'
> on read
> trapframe: 0xc2713d18
> FSR=00000005, FAR=0000ec10, spsr=600000d3
> r0 =12998000, r1 =c2ffc010, r2 =00000001, r3 =c261c07c
> r4 =00000006, r5 =c261c074, r6 =00000000, r7 =2a600000
> r8 =c2ffc059, r9 =00000000, r10=c260ba28, r11=c2713dd8
> r12=c2ffc014, ssp=c2713da8, slr=0000ec10, pc =c23fa450
>
> [ thread pid 0 tid 0 ]
> Stopped at 0xc23fa450
> db> bt
> Tracing pid 0 tid 0 td 0xc2617190
> KDB: reentering
> KDB: stack backtrace:
> KDB: reentering
> KDB: stack backtrace:
> blahblahblah.....
> blahblahblah.....
> blahblahblah.....
> blahblahblah.....
> KDB: reentering
> KDB: stack backtrace:
> KDB: reentering
> KDB: stack backtrace:
> panic: pmap_fault: pm_pt1 abort
> cpuid = 0
> Uptime: 1s
>
>
>
> > hi guys
> >
> >
> I've got a small brand eval-board which built with MCIMX6U6AVM08AC and
> running FreeBSD 11.0.1(I have tried HEAD version, 12.0-BETA3, it didn't
> work too), ubldr stage is fine but it stucked at "reinit_mmu"
> function(FreeBSD might be have assembly printf for debug environment,
> because aseeembly code just like a blackbox when you without JTAG debugger
> in hand )
> >
> > ======================================
> > Booting from disk0s2:
> > /
> > /boot/kernel/kernel data=0x57b564+0x58a9c
> syms=[0x4+0x6e9d0+0x4+0x77ada]
> > Hit [Enter] to boot immediately, or any other key for command prompt.
> > Booting [/boot/kernel/kernel]...
> > Kernel entry at 0x0x12200100...
> > Kernel args: (null)
> > EARL_DEBUG: pmap_kern_ttb 0x1290004a, actlr_mask 0xc1, actlr_set 0x41
> > (nothing)
> > ======================================
> >
> >
> >
> > when I trace the code to "reinit_mmu" function, commented code like
> this, kernel panic and reported "Asynchronous External Abort". Am I the
> only one who meet this WEIRD case? I got AM3352/AM3354/Zynq7 platforms,
> they works fine with kernel 11.0.1. Is it something different between i.MX6
> Dual(Wandboard) and i.MX6 DualLite?
> >
> > /* Enable caches. */
> > mrc CP15_SCTLR(r7)
> > // it will be stucked if don't commented this code
> > /* orr r7, #CPU_CONTROL_DC_ENABLE //DEBUG
> > orr r7, #CPU_CONTROL_IC_ENABLE //DEBUG
> > orr r7, #CPU_CONTROL_BPRD_ENABLE //DEBUG */
> > mcr CP15_SCTLR(r7)
> > DSB
> >
> > mcr CP15_TTBR0(r4) /* Set new TTB */
> > DSB
> > ISB
> >
> > // it will be stucked if don't commented this code
> > /* mcr CP15_TLBIALL /// Flush TLB //DEBUG */
> > mcr CP15_BPIALL /* Flush Branch predictor */
> > DSB
> > ISB
> >
> >
> >
> >
> > U-Boot 2016.05 (Dec 16 2018 - 13:09:25 +0800)
> >
> > CPU: Freescale i.MX6DL rev1.2 at 792 MHz
> > Reset cause: POR
> > Board: MX6DL-Armadillo2
> > DRAM: 1 GiB
> > WARNING: Caches not enabled
> > MMC: FSL_SDHC: 0
> > *** Warning - bad CRC, using default environment
> >
> > In: serial
> > Out: serial
> > Err: serial
> > Net: FEC
> > Error: FEC address not set.
> >
> > Hit any key to stop autoboot: 0
> > reading ubldr.bin
> > 185536 bytes read in 40 ms (4.4 MiB/s)
> > ## Starting application at 0x12000000 ...
> > Consoles: U-Boot console
> > Compatible U-Boot API signature found @0x4fd703e0
> >
> > FreeBSD/armv6 U-Boot loader, Revision 1.2
> > (root at freebsd-x250, Sat Dec 15 17:17:42 HKT 2018)
> >
> > DRAM: 1024MB
> > Number of U-Boot devices: 2
> > U-Boot env: loaderdev not set, will probe all devices.
> > Found U-Boot device: disk
> > Probing all disk devices...
> > Checking unit=0 slice=<auto> partition=<auto>... good.
> > Booting from disk0s2:
> > /
> > /boot/kernel/kernel data=0x57b564+0x58a9c
> syms=[0x4+0x6e9d0+0x4+0x77ada]
> > Hit [Enter] to boot immediately, or any other key for command prompt.
> > Booting [/boot/kernel/kernel]...
> > Kernel entry at 0x0x12200100...
> > Kernel args: (null)
> > EARL_DEBUG: pmap_kern_ttb 0x1290004a, actlr_mask 0xc1, actlr_set 0x41
> > EARL_DEBUG: cpu_setup pass
> > EARL_DEBUG: init_param1 pass
> > initarm: console initialized
> > arg1 kmdp = 0xc26bc000
> > boothowto = 0x00000000
> > dtbp = 0xc2547eb8
> > lastaddr1: 0x128bd000
> > loader passed (static) kenv:
> > loader_envp = 0xc26bb000
> > c26bb000 LINES=24
> > c26bb009 console=uboot
> > c26bb017 currdev=disk0s2:
> > c26bb028 kerflag=
> > c26bb031 kernelname=/boot/kernel/kernel
> > c26bb050 loaddev=disk0s2:
> > c26bb061 prompt=loader>
> > c26bb070 twiddle_divisor=1
> > EARL_DEBUG: platform_late_init pass
> > Fatal kernel mode data abort: 'Asynchronous External Abort' on write
> > trapframe: 0xc257c688
> > FSR=00001c06, FAR=Invalid, spsr=600000d3
> > r0 =00000100, r1 =600001d3, r2 =600000d3, r3 =30c52079
> > r4 =00000000, r5 =c257c7e4, r6 =c25b3280, r7 =c25b3280
> > r8 =c2578058, r9 =00000000, r10=c25ce154, r11=c257c7d8
> > r12=c2577c24, ssp=c257c718, slr=c244b3c0, pc =c244b3d4
> >
> > panic: Fatal abort
> > cpuid = 0
> > Uptime: 1s
>
More information about the freebsd-arm
mailing list