13 extern void Interrupts_Setup(void);
14 extern void Arch_LoadBootModules(void);
15 extern void Heap_Install(void);
16 extern void Threads_Init(void);
17 extern void System_Init(const char *Commandline);
21 Uint32 ARMv7_int_HandleSyscalls(Uint32 Num, Uint32 *Args);
26 LogF("Acess2 ARMv7 v"EXPAND_STR(KERNEL_VERSION)"\n");
27 LogF(" Build %i\n", BUILD_NUM);
28 // Interrupts_Setup();
32 LogF("Heap Setup...\n");
35 LogF("Threads Init...\n");
38 LogF("VFS Init...\n");
42 Module_EnsureLoaded("armv7_GIC");
45 LogF("Moving to arch-independent init\n");
46 System_Init("/Acess=initrd: -VTerm:Video=PL110");
47 // System_Init("/Acess=initrd:");
49 LogF("End of kmain(), for(;;) Threads_Sleep();\n");
54 void Arch_LoadBootModules(void)
58 Uint32 ARMv7_int_HandleSyscalls(Uint32 Num, Uint32 *Args)
60 Uint32 ret = -1, err = 0;
62 ENTER("iNum xArgs[0] xArgs[1] xArgs[2] xArgs[3]",
63 Num, Args[0], Args[1], Args[2], Args[3]
68 // Log_Debug("ARMv7", "__clear_cache(%p, %p)", Args[0], Args[1]);
71 Args[1] += 0xFFF; Args[1] &= ~0xFFF;
73 for( addr = Args[0]; addr < Args[1]; addr += 0x1000 )
75 LOG("addr = %p", addr);
76 __asm__ __volatile__ (
77 "mcrlt p15, 0, %0, c7, c5, 1;\n\t"
78 "mcrlt p15, 0, %0, c7, c6, 1;\n\t"
86 Args[0] = ret; // RetLow
88 Args[2] = err; // Errno