Hi Grant, On Tue, Apr 08, 2008 at 03:26:11PM -0600, Grant Likely wrote: > I disagree and that is not my point.
Well, having something like a device tree that describes the hardware is definitely a good thing, in general. > Now, if out-of-tree ports continue to break then we've got a problem > that needs to be fixed. Right, that's the point. Don't get me wrong, I'm deeply against maintaining large code bases out-of-tree. But it shows in this case that we have a maintenance problem with the current oftree concept. When a simple BSP that supports almost nothing than CPU, mem, serial console and flash needs > 1 week of hacking from an experienced kernel hacker, just in order to get all the string changes right, something is wrong. > Once a binding is established (which usually takes a few kernel > releases) it should be very stable and even if the definition of ideal > is changed, backwards compatibility must be maintained. That's theory, but in practise we see it changing every second day. > > The ARM method of using just a device number is so much easier ... > > Only if the assumption is made that very little data needs to be > shared between the kernel and the firmware. The moment you try to do > something more complex you either have the nightmare of bd_info or you > use a structured data format (like the device tree) I agree that the usual ARM hardwares are much less complicated and configurable than what's available elsewhere. We usually need the information "this is board FOO_BAR", maybe, if it is a module, on a "BAZ" baseboard, and this is everything we need to register the platform devices in some arch/arm/mach-*/my_cpu.c and arch/arm/mach-*/my_board.c file. > On another node, there are platforms where a device number is > unworkable. For example, for Linux on an FPGA like the Xilinx Virtex, > there would need to be a new platform number every time the FPGA > bitstream was updated because it is effectively an entirely different > platform. Well, we have done FPGA based boards with ARM in the past, and we've just added hardware auto-detection to the IP cores. > Finally, using a device number means you need to encode into the > kernel the exact layout of every platform it supports. That adds up > to a lot of code in a real hurry; even if most of it is just > boilerplate instantiations. You are right in general. However, it doesn't change the fact that we are living in maintenance-nightmare land right now ... Robert -- Dipl.-Ing. Robert Schwebel | http://www.pengutronix.de Pengutronix - Linux Solutions for Science and Industry Handelsregister: Amtsgericht Hildesheim, HRA 2686 Hannoversche Str. 2, 31134 Hildesheim, Germany Phone: +49-5121-206917-0 | Fax: +49-5121-206917-9 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev