
Hi,
most of the readers here probably noticed, there are various forks of U-Boot bootloader floating around the net. The development model there is quite closed and certainly not community driven, on the other hand, they have neat driver model.
As for U-Boot, there currently is no driver model. Therefore I'd like to start a discussing on this topic so we can converge towards a reasonable result.
My few points:
* Start with ethernet subsystem It seems to be quite ready for conversion of this scale. Besides it'd be easy to prove multiple instances of ethernet device work with the driver model.
* Create an universal driver model: The driver will have usual .probe function, which will have some argument of type "void *" to it's driver data. This way we can pass it's base address for example instead of #defining it. Very similar to linux kernel.
* We need some "device tree" To know, what driver is where and where are it's driver data etc.
* Get rid of static data in drivers, switch to dynamic allocation So these wont interfere with multiple instances of the same driver.
Cheers