NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

port-arm/48332: evbarm/imx23_olinuxino (ARM9E) doesn't boot after recent change to cpufunc.c



>Number:         48332
>Category:       port-arm
>Synopsis:       evbarm/imx23_olinuxino (ARM9E) doesn't boot after recent 
>change to cpufunc.c
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-arm-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Oct 22 15:25:00 +0000 2013
>Originator:     Petri Laakso
>Release:        current
>Organization:
Doesn't apply
>Environment:
NetBSD 6.99.24 (IMX23_OLINUXINO) #0: Tue Oct 22 17:02:10 EEST 2013
current of 2013-10-21 (CVS/Tag D2013.10.20.21.00.0)

cpu0 at mainbus0 core 0: ARM926EJ-S rev 5 (ARM9EJ-S V5TEJ core)
cpu0: DC enabled IC enabled WB enabled EABT branch prediction enabled
cpu0: 16KB/32B 4-way L1 Instruction cache                            
cpu0: 16KB/32B 4-way write-back-locking-C L1 Data cache

>Description:
I tried recent -current for evbarm/IMX23_OLINUXINO and it didn't boot into 
multi- or single user mode. I tracked problem to recently changed
src/sys/arch/arm/arm/cpufunc.c file. When I reverted latest change which
seems to affect processor I'm using, problem disappeared and I'm able to boot 
into multi user again.

This possibly affects other ports using ARM9E as well.
>How-To-Repeat:
Try to use evbarm/IMX23_OLINUXINO with ARM9E class processor.
>Fix:
Index: src/sys/arch/arm/arm/cpufunc.c
===================================================================
RCS file: /cvsroot/src/sys/arch/arm/arm/cpufunc.c,v
retrieving revision 1.126
diff -u -r1.126 cpufunc.c
--- src/sys/arch/arm/arm/cpufunc.c      20 Oct 2013 09:30:41 -0000      1.126
+++ src/sys/arch/arm/arm/cpufunc.c      22 Oct 2013 15:17:47 -0000
@@ -2871,7 +2871,7 @@
 
        /* Set the control register */
        curcpu()->ci_ctrl = cpuctrl;
-       cpu_control(cpuctrlmask, cpuctrl);
+       cpu_control(0xffffffff, cpuctrl);
 
        /* And again. */
        cpu_idcache_wbinv_all();



Home | Main Index | Thread Index | Old Index