"Gleb O. Raiko" wrote: > > "Maciej W. Rozycki" wrote: > > It sounds reasonable. We may also check the Alpha port for solutions -- > > it supports multiple dissimilar systems as well. > > Alpha is easy and simple from my POV, it has just SRM or MILO, kernel at > fixed location anyway. > > In our case, almost every box has own location for kernel varying from > 0x80000000 for brave people to 0x80100000 for people who doesn't care > much about 1 MB :-). (Well, I clearly understand it's firmware > requirements, not people's preferences. Almost.) Then, various binary > formats of the kernel image... > > I personally prefer PPC with its _machine tricks and SPARC for BTFIXUP > stuff. > > However, I doubt whether we could support single kernel image for all > MIPS boxes. MIPS is typical embedded platform, where standards are > favourite because there are so many to choose from. > No way to support all MIPS machines with a single kernel image - you have the difference of BE and LE at least. :-) Seriously, I found two cases where we do like to have one image supporting multiple boards: 1) several CPU daughter boards plugging into one base baord - in the case we really need to configure a kernel with multipe CPUs. 2) A reference design board is modified slightly and used in other products. - A typicaly change might be in interrupt routing, or some base address shift, or removing some IOs. In this case, we just need a slightly different board setuo() function for each board. I don't think it is fruitful trying to go to the extreme by having a single image serving as many boxes as possible. > BTW, I remember, Ralf tried to implement CPU type recognition at > run-time, he dropped his efforts after he realized nobody could use this > feature because boxes are so different. > CPU code is getting more crowded and uglier these days too, because more vendors are adding their own CPUs. Each CPU, in most cases, has its unique hazards, which requires a separate low-level routines. Even with the coming MIPS32 and MIPS64 standard, we cannot count on vendors have totally conforming CPUs. I think it is about time to create a CPU abstraction which allows more individualism. Jun