fix filenames
[AROS.git] / arch / arm-raspi / processor / processor_init.c
blob937c8fd5b64c354149dc2b5519ba285a37fa6a1a
1 /*
2 Copyright © 2013, The AROS Development Team. All rights reserved.
3 $Id$
4 */
6 #define DEBUG 0
7 #include <aros/debug.h>
9 #include <proto/exec.h>
10 #include <proto/kernel.h>
11 #include <aros/symbolsets.h>
13 #include <resources/processor.h>
15 #include "processor_intern.h"
16 #include "processor_arch_intern.h"
18 #define DUMPINFO(a) a
20 LONG Processor_Init(struct ProcessorBase * ProcessorBase)
22 struct ARMProcessorInformation **sysprocs;
23 unsigned int i;
25 D(bug("[processor.ARM] :%s()\n", __PRETTY_FUNCTION__));
27 sysprocs = AllocVec(ProcessorBase->cpucount * sizeof(APTR), MEMF_ANY | MEMF_CLEAR);
28 if (sysprocs == NULL)
29 return FALSE;
31 for (i = 0; i < ProcessorBase->cpucount; i++)
33 sysprocs[i] = AllocMem(sizeof(struct ARMProcessorInformation), MEMF_CLEAR);
34 if (!sysprocs[i])
35 return FALSE;
38 ProcessorBase->Private1 = sysprocs;
40 /* Boot CPU is number 0. Fill in its data. */
41 ReadProcessorInformation(sysprocs[0]);
43 DUMPINFO(
44 if (sysprocs[0]->FamilyString)
46 bug("[processor.ARM] %s ARM%s Processor Core\n", sysprocs[0]->Vendor, sysprocs[0]->FamilyString);
48 else
50 bug("[processor.ARM] %s ARM Processor Core (unknown family)\n", sysprocs[0]->Vendor);
53 if (sysprocs[0]->Features1 & FEATF_FPU_VFP4)
55 bug("[processor.ARM] VFPv4 Co-Processor\n");
57 else if (sysprocs[0]->Features1 & FEATF_FPU_VFP3_16)
59 bug("[processor.ARM] VFPv3 [16Double] Co-Processor\n");
61 else if (sysprocs[0]->Features1 & FEATF_FPU_VFP3)
63 bug("[processor.ARM] VFPv3 Co-Processor\n");
65 else if (sysprocs[0]->Features1 & FEATF_FPU_VFP2)
67 bug("[processor.ARM] VFPv2 Co-Processor\n");
69 else
71 bug("[processor.ARM] VFPv1 Co-Processor\n");
74 if (sysprocs[0]->Features1 & FEATF_NEON)
76 bug("[processor.ARM] NEON SIMD Extensions\n");
79 bug("[processor.ARM] Cache Info:\n");
80 bug("[processor.ARM] L1 Data : %dKb\n", sysprocs[0]->L1DataCacheSize);
81 bug("[processor.ARM] L1 Instr. : %dKb\n", sysprocs[0]->L1InstructionCacheSize);
84 return TRUE;
87 ADD2INITLIB(Processor_Init, 1);