It's possible to setup SMP on intel x86 processors and leave the BSP in real mode?<p>I have the following setup in mind:<p><pre><code> - BSP in 16-bit real mode;
- 1 AP in 32-bit protected mode;
- Every other cpu off;
</code></pre>
Why?<p>The project is a simple assembler IDE that runs in bare metal, and could be used to fast prototype of ideas talking directly to real hardware. The code is assembled in-memory, and then to "test" is just a jump to the assembled location. Will be used most to learn/teach OS design.<p>The use case is very simple (only need disk and VGA), but I need 4GB address space. Being able to use BIOS services could make it a trivial project. My initial plan was to use <i>Unreal</i> mode for it, but it turns out to be error prone.<p>My idea is use the AP processor to develop the simple OS (it's just editor TUI + assembler), and invoke the BSP processor to access disk. I'm aware that will require a mutual exclusion lock, but I never programmed a SMP and every reference online uses protected mode BSP.<p>It makes sense? What kind of problems I have in this design?<p>Thanks!<p><pre><code> Project details: https://github.com/tiago4orion/EnzOS
Plan: https://github.com/tiago4orion/EnzOS/blob/master/plan.md</code></pre>
I ain't an expert in x86 so I'm not sure... only read some of Intel's manual but judging by the code at<p><a href="https://github.com/mit-pdos/xv6-public" rel="nofollow">https://github.com/mit-pdos/xv6-public</a><p>file "entryother.S" is asm that executes on AP's and "bootasm.S" executes on the BSP... both after the BIOS<p>so... maybe?<p>maybe that's what your looking for?