On Tue, Apr 19, 2011 at 12:33 PM, Wolfgang Denk wd@denx.de wrote:
Dear Jim Huang,
In message BANLkTi=yNnA9nBxWNG_1mfwfd6G_O09GOA@mail.gmail.com you wrote:
My idea is that we require abstract 'bootloader' component in Android device/linaro/common, and (patched) 'u-boot' would be the provider of 'bootloader' component in device/linaro/Linaro-Evaluation-Build-Hardware. Also, supporting
If you are discussing requirements for U-Boot, and plan to get these merged in to mainlineU-Boot one day, it would probably be a good idea to discuss these plans on the U-Boot mailing list as well - ideally before any design is cast in iron.
Best regards,
Wolfgang Denk
-- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de The management question ... is not _whether_ to build a pilot system and throw it away. You _will_ do that. The only question is whether to plan in advance to build a throwaway, or to promise to deliver the throwaway to customers. - Fred Brooks, "The Mythical Man Month"
linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
Wolfgang,
As you can see from this discussion, Linaro is considering applying resources (probably me) to upstreaming Android Fastboot features into mainline u-boot. What suggestions do you have for making this process as painless as possible?
The topic came up briefly here last year: http://lists.denx.de/pipermail/u-boot/2010-August/076343.html
An implementation exists for omap4/panda on gitorious: git://gitorious.org/pandaboard/u-boot.git in the omap4_panda_es2.0 branch. There is also a version for omap3 somewhere else on gitorious.
To bring this to mainline one would have to:
1) Bring code up to current mainline revision. 2) Fix any coding standards issues. 3) Document the new features.
What else? I know one issue maybe why does this need to exist when other solutions exist. I think that since Android uses it, it is somewhat of a de facto standard.
All comments welcome, John
Dear John Rigby,
In message BANLkTikMfdknySqnOe6KvGJpdK2bUxtiVQ@mail.gmail.com you wrote:
If you are discussing requirements for U-Boot, and plan to get these merged in to mainlineU-Boot one day, it would probably be a good idea to discuss these plans on the U-Boot mailing list as well - ideally before any design is cast in iron.
...
As you can see from this discussion, Linaro is considering applying resources (probably me) to upstreaming Android Fastboot features into mainline u-boot. What suggestions do you have for making this process as painless as possible?
I already wrote this above: discuss the _design_ early with the respective community. Don't define some design and implement it and then confront the community with your solution which you consider ready at this point: this is guaranteed to cause frustration, because you think you are done but we may think the design should be done differently and ask you to restart from scratch.
An implementation exists for omap4/panda on gitorious: git://gitorious.org/pandaboard/u-boot.git in the omap4_panda_es2.0 branch. There is also a version for omap3 somewhere else on gitorious.
Ah, cool. So we already have the situation I warned about above.
To bring this to mainline one would have to:
- Bring code up to current mainline revision.
- Fix any coding standards issues.
- Document the new features.
What else? I know one issue maybe why does this need to exist when other solutions exist. I think that since Android uses it, it is somewhat of a de facto standard.
Oh. Android uses it. It must be The Right Thing (TM), then, I guess. Probably like some of the Linux kernel code they use.
This is the killer argument I really like. Thank you very much.
I don't exactly feel motivated to accept just any stuff just because company A or project B uses it (even if they appear to be really big), or because already lots of efforts have been spent to implement something. On contrary. Usually an argumentation like that means that the design or the implementation are poor. Often both are.
It's 14 years or so that ESR formulated the RERO principle of software development; one could really think this is time enough to sink in. Alas, I know I'm an optimist...
Best regards,
Wolfgang Denk
What else? I know one issue maybe why does this need to exist when other solutions exist. I think that since Android uses it, it is somewhat of a de facto standard.
Oh. Android uses it. It must be The Right Thing (TM), then, I guess. Probably like some of the Linux kernel code they use.
This is the killer argument I really like. Thank you very much.
So, "Google uses it aside", it seems that being able to boot via USB is a useful thing and fastboot is a particular solution; I'm not entirely sure what other USB u-boot extensions exist apart from those already mentioned. I find u-boot great and think being able to use USB instead of a serial port would help adoption. Perhaps we can do away with fastboot if u-boot had USB support?
I don't exactly feel motivated to accept just any stuff just because company A or project B uses it (even if they appear to be really big), or because already lots of efforts have been spent to implement something. On contrary. Usually an argumentation like that means that the design or the implementation are poor. Often both are.
It's 14 years or so that ESR formulated the RERO principle of software development; one could really think this is time enough to sink in. Alas, I know I'm an optimist...
Of course part of RERO is "listen to your customers." With the end of native serial port inclusion on most systems and the proliferation of USB, it seems that something could be done to the benefit of all. Actually, it would be kind of cool to have some low level USB config in u-boot.
Dear Zach Pfeffer,
In message BANLkTinddBZbb3yaaoiqM-QZLf9GJen9tw@mail.gmail.com you wrote:
So, "Google uses it aside", it seems that being able to boot via USB is a useful thing and fastboot is a particular solution; I'm not entirely sure what other USB u-boot extensions exist apart from those
Well, DFU support is a standard solution, and the LF / CELF has just recently assigned resources to adapt the existingout-of-tree port for mainline U-boot.
already mentioned. I find u-boot great and think being able to use USB instead of a serial port would help adoption. Perhaps we can do away with fastboot if u-boot had USB support?
U-Boot has this. We have serial console over USB. We even have netconsole over Ethernet over USB.
OK, not on all boards and architectures, butthe gound has been laid and there is something to build on.
Of course part of RERO is "listen to your customers." With the end of native serial port inclusion on most systems and the proliferation of USB, it seems that something could be done to the benefit of all. Actually, it would be kind of cool to have some low level USB config in u-boot.
I cannot really follow this argument. A plain simple USB serial adapter will do the job as well.
Best regards,
Wolfgang Denk
So, "Google uses it aside", it seems that being able to boot via USB is a useful thing and fastboot is a particular solution; I'm not entirely sure what other USB u-boot extensions exist apart from those
Well, DFU support is a standard solution, and the LF / CELF has just recently assigned resources to adapt the existingout-of-tree port for mainline U-boot.
Perhaps John and the LF /CELF resource could work together so both DFU and fastboot would work?
already mentioned. I find u-boot great and think being able to use USB instead of a serial port would help adoption. Perhaps we can do away with fastboot if u-boot had USB support?
U-Boot has this. We have serial console over USB. We even have netconsole over Ethernet over USB.
OK, not on all boards and architectures, butthe gound has been laid and there is something to build on.
Of course part of RERO is "listen to your customers." With the end of native serial port inclusion on most systems and the proliferation of USB, it seems that something could be done to the benefit of all. Actually, it would be kind of cool to have some low level USB config in u-boot.
I cannot really follow this argument. A plain simple USB serial adapter will do the job as well.
I just meant to say that many customers have fastbootable devices and development stations without native serial. It is easy to get a converter, but its even easier to just use a USB cable.
On Fri, Apr 22, 2011 at 9:17 AM, Zach Pfeffer zach.pfeffer@linaro.org wrote:
So, "Google uses it aside", it seems that being able to boot via USB is a useful thing and fastboot is a particular solution; I'm not entirely sure what other USB u-boot extensions exist apart from those
Well, DFU support is a standard solution, and the LF / CELF has just recently assigned resources to adapt the existingout-of-tree port for mainline U-boot.
Perhaps John and the LF /CELF resource could work together so both DFU and fastboot would work?
So Wolfgang, let's assume that Fastboot could coexist with and share code with the DFU implementation. Would that be more acceptable? Or is any effort to get Fastboot into mainline just a waste of time? What additional info is needed to answer that question?
Dear John Rigby,
In message BANLkTi=um9HTWdpWeee+Y1FZ2w4Y=QMOsA@mail.gmail.com you wrote:
So Wolfgang, let's assume that Fastboot could coexist with and share code with the DFU implementation. Would that be more acceptable? Or
It is always nice if features can share common code, but here this is actually completely unrelated to the question I raised.
is any effort to get Fastboot into mainline just a waste of time?
The basic rule is that we accept what is useful for some (even if a few), unless it hurts others (including maintainers).
What additional info is needed to answer that question?
I wrote this in my initial posting to the Linaro list, and explicitly pointed you to it before, see http://thread.gmane.org/gmane.linux.linaro.devel/3823/focus=3842 and especially http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/98145/focus=98283
I don't want to talk about code before we have heard anything about the design. This may be a trivial thing for you after having used this for some amount of time, but please consider the mental welfare of the persons who never heard about this before, and who will probably have to maintain the code after you.
Best regards,
Wolfgang Denk
On Sun, Apr 24, 2011 at 8:25 AM, Wolfgang Denk wd@denx.de wrote:
Dear John Rigby,
In message BANLkTi=um9HTWdpWeee+Y1FZ2w4Y=QMOsA@mail.gmail.com you wrote:
So Wolfgang, let's assume that Fastboot could coexist with and share code with the DFU implementation. Would that be more acceptable? Or
It is always nice if features can share common code, but here this is actually completely unrelated to the question I raised.
is any effort to get Fastboot into mainline just a waste of time?
The basic rule is that we accept what is useful for some (even if a few), unless it hurts others (including maintainers).
What additional info is needed to answer that question?
I wrote this in my initial posting to the Linaro list, and explicitly pointed you to it before, see http://thread.gmane.org/gmane.linux.linaro.devel/3823/focus=3842 and especially http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/98145/focus=98283
I don't want to talk about code before we have heard anything about the design. This may be a trivial thing for you after having used this for some amount of time, but please consider the mental welfare of the persons who never heard about this before, and who will probably have to maintain the code after you.
Ok, I had already read both of those posts and when I read "design" I was thinking that Android Fastboot exists and the feature list is already set as is the wire protocol, so I don't see that we have a lot of flexibility in those areas. The only design I see that is up for definition is how it can be implemented in U-Boot, that was why I brought up sharing with DFU.
I will follow up in a separate email with summary design docs of what fastboot is including what the wire protocol is and what services it needs from the environment it is running in. Along with this I will have pointers to more detailed docs.
Does that sound reasonable?
Thanks for your patience, John
Dear John Rigby,
In message BANLkTin6bvvn1_JCBk5zB3j5biYXZgBY5g@mail.gmail.com you wrote:
Ok, I had already read both of those posts and when I read "design" I was thinking that Android Fastboot exists and the feature list is already set as is the wire protocol, so I don't see that we have a lot of flexibility in those areas. The only design I see that is up for definition is how it can be implemented in U-Boot, that was why I brought up sharing with DFU.
Well, this is certainly one aspect of the implementation for U-Boot.
I will follow up in a separate email with summary design docs of what fastboot is including what the wire protocol is and what services it needs from the environment it is running in. Along with this I will have pointers to more detailed docs.
Does that sound reasonable?
It's probably sufficient to just provide pointers to these documents. What I'm really looking for is not the protocol, but how you design the implementation for U-Boot. There are several aspects that probably should be covered, for example the user interface (how to start it, how to handle errors, how to handle timeouts, etc.), the integration into the USB subsystem (which parts can be shared with others like serial console, how to handle device IDs, ...) and so on and on.
Best regards,
Wolfgang Denk
Wolfgang,
Would you be able to join us at UDS (https://wiki.linaro.org/Events/2011-05-LDS)? We can also set up a conference line as well.
-Zach
On 24 April 2011 09:25, Wolfgang Denk wd@denx.de wrote:
Dear John Rigby,
In message BANLkTi=um9HTWdpWeee+Y1FZ2w4Y=QMOsA@mail.gmail.com you wrote:
So Wolfgang, let's assume that Fastboot could coexist with and share code with the DFU implementation. Would that be more acceptable? Or
It is always nice if features can share common code, but here this is actually completely unrelated to the question I raised.
is any effort to get Fastboot into mainline just a waste of time?
The basic rule is that we accept what is useful for some (even if a few), unless it hurts others (including maintainers).
What additional info is needed to answer that question?
I wrote this in my initial posting to the Linaro list, and explicitly pointed you to it before, see http://thread.gmane.org/gmane.linux.linaro.devel/3823/focus=3842 and especially http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/98145/focus=98283
I don't want to talk about code before we have heard anything about the design. This may be a trivial thing for you after having used this for some amount of time, but please consider the mental welfare of the persons who never heard about this before, and who will probably have to maintain the code after you.
Best regards,
Wolfgang Denk
-- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de The use of Microsoft crippleware systems is a sin that carries with it its own punishment. -- Tom Christiansen in 6bo3fr$pj8$5@csnews.cs.colorado.edu
Dear Zach,
In message BANLkTi=6QpjUDfjtsEzF3YagyfG40nY+fA@mail.gmail.com you wrote:
Would you be able to join us at UDS (https://wiki.linaro.org/Events/2011-05-LDS)? We can also set up a conference line as well.
As discussed, I'll try and attend remotely.
But Heiko Schocher, one of our engineers, will be there and attend both the linaro-kernel-o-devicetree and linaro-kernel-o-bootarchitecture sessions.
Best regards,
Wolfgang Denk