On 14.02.2017 18:56, ron minnich wrote:
At what point is ramstage a kernel? I think at the point we add file systems or preemptive scheduling. We're getting dangerously close. If we really start to cross that boundary, it's time to rethink the ramstage in my view. It's not a good foundation for a kernel.
Agreed. I wouldn't call it a kernel, but it really seems to grow very ugly. Every time I think about this, I scarcely find anything that needs to be done in ramstage. I believe even most payloads could live without it with some more initialization done in romstage.
Some things that I recall, what ramstage does:
o MP init => maybe can be done earlier, does it need RAM generally???
o PCI resource allocation => can be done offline Just add the resources to the devicetree. If you want to boot from a plugged card, that isn't in the devicetree, the payload would have to handle it though.
o Those small PCI device "drivers" => I doubt they need RAM
o Table generation => Not that dynamic after all I suppose much is done with static (compile time) information.
o Sometimes gfx modesetting => do it in the payload
Nico