On Mon, Apr 24, 2017 at 06:48:22PM +0200, Mark Kettenis wrote:
> Even though ARM "merged" the Cortex-A12 as Cortex-A17, there are cores
> with the original Cortex-A12 MIDR out there.  So it is useful to
> differentiate between them.  The Rockchip RK3288 has 4 of these cores.
> The diff below adds support for these cores.
> 
> As a teaser, here s a dmesg for the Asus Tinker Board.  As you can
> see, it's not very useable yet (and still needs a hack to get serial
> output at the moment).
> 
> OpenBSD 6.1-current (GENERIC) #51: Mon Apr 24 18:22:59 CEST 2017
>     
> kette...@chopin.sibelius.xs4all.nl:/home/kettenis/src/armv7/sys/arch/armv7/compile/GENERIC
> real mem  = 2147483648 (2048MB)
> avail mem = 2097512448 (2000MB)
> mainbus0 at root: Tinker-RK3288
> cpu0 at mainbus0: ARM Cortex A12 rev 1 (ARMv7 core)
> cpu0: DC enabled IC enabled WB disabled EABT branch prediction enabled
> cpu0: 32KB(64b/l,4way) I-cache, 32KB(64b/l,4way) wr-back D-cache
> agtimer0 at mainbus0: tick rate 24000 KHz
> com0 at mainbus0: ns16550, no working fifo
> com1 at mainbus0: ns16550, no working fifo
> com2 at mainbus0: ns16550, no working fifo
> com2: console
> com3 at mainbus0: ns16550, no working fifo
> com4 at mainbus0: ns16550, no working fifo
> ampintc0 at mainbus0 nirq 192, ncpu 4
> vscsi0 at root
> scsibus0 at vscsi0: 256 targets
> softraid0 at root
> scsibus1 at softraid0: 256 targets
> boot device: lookup 'sd0a:/bsd' failed.
> root device:
> 
> 

Sure, ok.

> Index: arch/arm/arm/cpu.c
> ===================================================================
> RCS file: /cvs/src/sys/arch/arm/arm/cpu.c,v
> retrieving revision 1.36
> diff -u -p -r1.36 cpu.c
> --- arch/arm/arm/cpu.c        5 Jan 2017 16:16:17 -0000       1.36
> +++ arch/arm/arm/cpu.c        24 Apr 2017 16:36:45 -0000
> @@ -126,6 +126,8 @@ const struct cpuidtab cpuids[] = {
>         generic_steppings },
>       { CPU_ID_CORTEX_A9_R4,  CPU_CLASS_ARMv7,        "ARM Cortex A9 R4",
>         generic_steppings },
> +     { CPU_ID_CORTEX_A12,    CPU_CLASS_ARMv7,        "ARM Cortex A12",
> +       generic_steppings },
>       { CPU_ID_CORTEX_A15,    CPU_CLASS_ARMv7,        "ARM Cortex A15",
>         generic_steppings },
>       { CPU_ID_CORTEX_A15_R1, CPU_CLASS_ARMv7,        "ARM Cortex A15 R1",
> Index: arch/arm/arm/cpufunc.c
> ===================================================================
> RCS file: /cvs/src/sys/arch/arm/arm/cpufunc.c,v
> retrieving revision 1.50
> diff -u -p -r1.50 cpufunc.c
> --- arch/arm/arm/cpufunc.c    6 Jan 2017 00:06:02 -0000       1.50
> +++ arch/arm/arm/cpufunc.c    24 Apr 2017 16:36:45 -0000
> @@ -377,6 +377,7 @@ armv7_setup()
>  #endif
>               /* FALLTHROUGH */
>       case CPU_ID_CORTEX_A7:
> +     case CPU_ID_CORTEX_A12:
>       case CPU_ID_CORTEX_A15:
>       case CPU_ID_CORTEX_A17:
>               /* Set SMP to allow LDREX/STREX */
> Index: arch/arm/include/armreg.h
> ===================================================================
> RCS file: /cvs/src/sys/arch/arm/include/armreg.h,v
> retrieving revision 1.39
> diff -u -p -r1.39 armreg.h
> --- arch/arm/include/armreg.h 4 Jan 2017 00:40:49 -0000       1.39
> +++ arch/arm/include/armreg.h 24 Apr 2017 16:36:46 -0000
> @@ -139,6 +139,8 @@
>  #define CPU_ID_CORTEX_A9_R3  0x413fc090
>  #define CPU_ID_CORTEX_A9_R4  0x414fc090
>  #define CPU_ID_CORTEX_A9_MASK        0xff0ffff0
> +#define CPU_ID_CORTEX_A12    0x410fc0d0
> +#define CPU_ID_CORTEX_A12_MASK       0xff0ffff0
>  #define CPU_ID_CORTEX_A15    0x410fc0f0
>  #define CPU_ID_CORTEX_A15_R1 0x411fc0f0
>  #define CPU_ID_CORTEX_A15_R2 0x412fc0f0
> 

Reply via email to