[coreboot] [v2] r4745 - in trunk/coreboot-v2/src/cpu/intel: socket_PGA370 socket_mPGA479M socket_mPGA604
peter at stuge.se
Fri Oct 9 21:34:48 CEST 2009
Stefan Reinauer wrote:
> >> I see the correctness of our CPU model being compromised here..
> > Please write a little about sockets vs. CPUs?
> > Why is there a socket?
> > What are sockets used for?
> > (Grouping CPUs is not the answer I'm hoping for.)
> When you describe a mainboard (think devicetree.lb), you usually
> don't have a CPU on there, but a socket.
> There is a certain choice of CPUs you can put into that socket. The
> socket decides which CPU drivers to include in the coreboot image.
> These drivers include
> - MSR setup
> - microcode updates
> - power management setup
> - cache setup
The socket determines appropriate code for the CPUs that fit. Ok!
> Especially due to microcode it's not possible to make this completely
> generic: All microcode for all Intel CPUs alone is more than 500kb
And there's no good reason to do so. All those CPUs are not really
interchangeable anyway, so it's fine to "only" support the CPUs that
actually fit on the board. (With or without adapters, like 370/Slot1)
> It's less about grouping CPUs but more about a clean device model.
> If we want coreboot to be easily understandable, we need to make it
> reflect what hardware looks like, logically. I think Ron has
> brought up some pretty good reasons for moving the CPU capabilities
> into the sockets (Which is a hack we need because of romcc -
Hm. You just explained how the socket already controls which CPU code
is included - so basically CPU capabilities are already determined by
sockets. I don't think anything is principally wrong with letting the
socket also control the code produced by romcc?
> Enabling MMX and SSE per socket is only needed because romcc needs
> to work without cache or memory.
So far that's the only use, but that can change of course. Anyway, is
the problem that these hardware features are described in Kconfig, or
that Kconfig bools are like wired-or, so that any one means true,
when it should instead be wired-and, so that all must be true.
Is the Kconfig mod worth it?
More information about the coreboot