On 3/29/21 6:20 PM, Shashvat wrote: > I don't know if it changes the answer to the question but it was not > intended as a GSOC application. > > I just needed a project to spend some time learning about the > architecture and how BSPs are built in general.
Well, if you have spare cycles, then amd64 bsp screams for attention. If you like reading about architectures then amd64 will provide you with a plenty of documentation to deal with. If you like elegant architecture, then it would not be your cup of tea probably. If you like architecture history, then it'll be probably as it's rooted in early '80s. Also it's not easy architecture like some armv7 board. It's architecture tuned for server usage too and hence quite complex. On the other hand it's not architecture which would not innovate at all. Two examples: (1) interrupt controller: first PIC then two PICs together, then APIC, later xAPIC and even later x2APIC and even later some peripherals just give up and use MSI(-X). From RTEMS point of view MSI-X is most interesting due to lowest latency[1], but amd64 BSP will need to deal with x(2)APIC too just to be able to fire all the cores/threads anyway and due to some peripherals not supporting MSI(-X).[2] (2) firmware: first it was BIOS, then BIOS cloned into various forms. Later with 80386 IBM come with idea to have OS booted right into 32bit (protected mode of the new 386 CPU). It happened on a few IBM PS/2 models and IBM even promised to fully document this which I'm not sure if happened at all since market was flowing in different way. Much later Intel came and did what IBM promised long time ago by porting their EFI (from Itanium) to x86 and this allows modern PCs to look like real 64bit machines from the startup -- except few exceptions you will be able to forget about all those 8086isms and 80386isms since you are right into long mode of blessed AMD64. :-) But or so, even if x86 is quite complex, there are still people tinkering with it and writing toy/example OSes, so this is certainly manageable. Hobby site known for x86 support is osdev.org[3], so definitely a lot of resources available and happy to be consumed if you have just some free time... Good luck! Karel [1]: https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/msg-signaled-interrupts-paper.pdf [2]: https://habr.com/en/post/446312/ [3]: https://wiki.osdev.org/Expanded_Main_Page _______________________________________________ devel mailing list [email protected] http://lists.rtems.org/mailman/listinfo/devel
