But, added to interrupt stacks, the APs needs their own stacks once these are running, to store data of the process which are executing.
El sáb., 4 feb. 2023 2:24, Damien Zammit <dam...@zamaudio.com> escribió: > Hi Almu, > > On 3/2/23 02:56, Almudena Garcia wrote: > > I already suggested move this to a function > > > > +#ifndef MACH_HYP > > + /* Turn paging on. > > + * TODO: Why does setting the WP bit here cause a crash? > > + */ > > + set_cr0(get_cr0() | CR0_PG /* | CR0_WP */); > > + set_cr0(get_cr0() & ~(CR0_CD | CR0_NW)); > > + if (CPU_HAS_FEATURE(CPU_FEATURE_PGE)) > > + set_cr4(get_cr4() | CR4_PGE); > > I moved this to a function called paging_enable() > > > > I miss the stack's memory reserve and assignation for AP processors, > which was usually make before startup these. Where are this? > > Interrupt stacks are pre-assigned by the compiler at a fixed location per > cpu. See "solid_intstack". > > Damien > >