wiki:Developer/Projects/Open/ImprovePC386

Version 1 (modified by Joel Sherrill, on Feb 11, 2016 at 6:00:16 PM) (diff)

New page

Improve PC386 BSP

Mentors: TBD.

Students: TBD.

Status:

Uninitiated.

Introduction:

This project involves addressing a few deficiencies in the existing pc386 BSP as well as improving it so it supports non-legacy hardware configurations.

Goal:

To have a functioning pc386 BSP that can operate on PCs without legacy BIOS or peripherals. It needs to support all features of RTEMS including SMP and Thread Local Storage.

Requirements:

  • Knowledge of x86 ASM, C Programming language.
  • Run on non-legacy hardware configurations.
  • Share code as possible with new x86_64 BSP (when exists).
  • Add Thread Local Storage support to x86 (#2468)
  • Thread migration is broken on SMP on x86 (#2183)

There are at least the following tasks identified related to support of non-legacy PC configurations. A non-legacy PC appears to be one in which at least EFI is used instead of BIOS.

  • Support video on non-legacy systems.

Probe for video is known to fail on non-legacy systems.

  • Support PCI on non-legacy systems.

Probe for PCI BIOS is known to fail on non-legacy systems. It is expected that PCI bus access routines will need to be provided for non-legacy configurations.

  • Support for APIC rather than legacy PIC.

It is a requirement for code to be shared with x86_64 when that is supported. It is also a requirement for the pc386 BSP to support both legacy and non-legacy and decide what to do at run-time.

Resources:

  • Current RTEMS developers.
  • Do not reinvent the wheel and use existing code instead, e.g. from FreeBSD.

Acknowledgements

  • TBD

Miscellaneous Sections

As the project progresses, you will need to add build instructions, etc and this page will evolve from a project description into a HOWTO.

References

  • TBD

Other sections: If you have more to say about the project that doesn't fit in the proposed sections of this template, feel free to add other sections at will.