public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot-Users] [PATCH] Update to stand alone program feature
@ 2007-05-09 15:50 Jeff Mann
  2007-05-09 15:56 ` Jeff Mann
  0 siblings, 1 reply; 7+ messages in thread
From: Jeff Mann @ 2007-05-09 15:50 UTC (permalink / raw)
  To: u-boot

[PATCH] Update to stand alone program feature
 
This patch contains updates to the stand alone program feature,
including:
1. update and document new features in README.standalone
2. add SA= flag to allow for the stand alone program directory to
   be selected for compiling with u-boot
3. added xf_func_inc() function. See documentation for a description.
4. removal of undesired #ifdef...#endif statements 
5. Note: XF_VERSION was not advanced. This will happen in the next patch

   in this series. 

This feature does not seem to fall into any category in the list of
U-Boot Custodians, so I guess it goes to you, Wolfgang. 

The patch file is attached. 

-Jeffrey Mann

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot-Users] [PATCH] Update to stand alone program feature
  2007-05-09 15:50 [U-Boot-Users] [PATCH] Update to stand alone program feature Jeff Mann
@ 2007-05-09 15:56 ` Jeff Mann
  2007-05-09 22:24   ` Wolfgang Denk
  2007-05-10 14:47   ` Rafal Jaworowski
  0 siblings, 2 replies; 7+ messages in thread
From: Jeff Mann @ 2007-05-09 15:56 UTC (permalink / raw)
  To: u-boot

Patch did not attach. Let me try again... 
> 
> [PATCH] Update to stand alone program feature
>  
> This patch contains updates to the stand alone program feature,
> including:
> 1. update and document new features in README.standalone 2. 
> add SA= flag to allow for the stand alone program directory to
>    be selected for compiling with u-boot 3. added 
> xf_func_inc() function. See documentation for a description.
> 4. removal of undesired #ifdef...#endif statements 5. Note: 
> XF_VERSION was not advanced. This will happen in the next patch
> 
>    in this series. 
> 
> This feature does not seem to fall into any category in the 
> list of U-Boot Custodians, so I guess it goes to you, Wolfgang. 
> 
> The patch file is attached. 
> 
> -Jeffrey Mann
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: stand_alone_prog.patch
Type: application/octet-stream
Size: 6051 bytes
Desc: stand_alone_prog.patch
Url : http://lists.denx.de/pipermail/u-boot/attachments/20070509/52183f4d/attachment.obj 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot-Users] [PATCH] Update to stand alone program feature
  2007-05-09 15:56 ` Jeff Mann
@ 2007-05-09 22:24   ` Wolfgang Denk
  2007-05-10 14:26     ` Jeff Mann
  2007-05-10 14:47   ` Rafal Jaworowski
  1 sibling, 1 reply; 7+ messages in thread
From: Wolfgang Denk @ 2007-05-09 22:24 UTC (permalink / raw)
  To: u-boot

In message <1628E43D99629C46988BE46087A3FBB997B757@ep-01.EmbeddedPlanet.local> you wrote:
>
> Patch did not attach. Let me try again...
...
> Content-Type: application/octet-stream;
> 	name="stand_alone_prog.patch"
> Content-Transfer-Encoding: base64
> Content-Description: stand_alone_prog.patch
> Content-Disposition: attachment;
> 	filename="stand_alone_prog.patch"
> 
> RnJvbSA2MWRhZmE4NzdiNWU1N2RlZDNmNzIzNGY4ZDFkYjFhYjI1OTQyNmRkIE1vbiBTZXAgMTcg
> MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNv
> bT4KRGF0ZTogV2VkLCA5IE1heSAyMDA3IDA5OjQyOjU1IC0wNDAwClN1YmplY3Q6IFtQQVRDSF0g
> VXBkYXRlIHRvIHN0YW5kIGFsb25lIHByb2dyYW0gZmVhdHVyZQoKVGhpcyBwYXRjaCBjb250YWlu
> cyB1cGRhdGVzIHRvIHRoZSBzdGFuZCBhbG9uZSBwcm9ncmFtIGZlYXR1cmUsIGluY2x1ZGluZzoK
> MS4gdXBkYXRlIGFuZCBkb2N1bWVudCBuZXcgZmVhdHVyZXMgaW4gUkVBRE1FLnN0YW5kYWxvbmUK
> Mi4gYWRkIFNBPSBmbGFnIHRvIGFsbG93IGZvciB0aGUgc3RhbmQgYWxvbmUgcHJvZ3JhbSBkaXJl
> Y3RvcnkgdG8KICAgYmUgY29tcGlsZWQgd2l0aCB1LWJvb3QKMy4gYWRkZWQgeGZfZnVuY19pbmMo
> KSBmdW5jdGlvbi4gU2VlIGRvY3VtZW50YXRpb24gZm9yIGEgZGVzY3JpcHRpb24uCjQuIHJlbW92
> YWwgb2YgdW5kZXNpcmVkICNpZmRlZi4uLiNlbmRpZiBzdGF0ZW1lbnRzIAo1LiBOb3RlOiBYRl9W
> RVJTSU9OIHdhcyBub3QgYWR2YW5jZWQuIFRoaXMgd2lsbCBoYXBwZW4gaW4gdGhlIG5leHQgcGF0
...

I tend to reply:

Please do not send base 64 encoded messages.
Please do not send HTML messages.
Please send plain text only.
Message unreadable, ignored. Sorry.


Technically, you write: "function_no is defined by the enum  type  of
_exports.h, so it must be included in the stand alone program."

I willreject this patch. As the name  "_exports.h"  suggests,  it  is
intended to contain implementation internals that are not supposed to
be used by application code.

Also, please assume that "_exports.h" is under GPL...

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,    CEO: 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 at denx.de
The Wright Bothers weren't the first to fly. They were just the first
not to crash.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot-Users] [PATCH] Update to stand alone program feature
  2007-05-09 22:24   ` Wolfgang Denk
@ 2007-05-10 14:26     ` Jeff Mann
  2007-05-10 15:10       ` Jerry Van Baren
  0 siblings, 1 reply; 7+ messages in thread
From: Jeff Mann @ 2007-05-10 14:26 UTC (permalink / raw)
  To: u-boot

> Technically, you write: "function_no is defined by the enum  
> type  of _exports.h, so it must be included in the stand 
> alone program."
> 
> I willreject this patch. As the name  "_exports.h"  suggests, 
>  it  is intended to contain implementation internals that are 
> not supposed to be used by application code.

Let me clearify (then I can update the doucmentation if we come up with
a better description). As you know, the list of functions in _exports.h
is used to create the enumerated type: XF_get_version 0, XF_getc 1,
XF_tstc 2, ... Etc. So as long as the user has included exports.h or has
uses some other means to identify the function's jump table inxex number
in his/her stand along program, he can know if that function is
available in u-boot. 

This is useful when, for exmaple, a company builds boards both with and
without NAND support. A stand along program will be able to know that
that board was loaded with a u-boot that did not incude NAND support. 

> Also, please assume that "_exports.h" is under GPL...

I thought it got used by exports.h to "define interfaces to U-Boot."
thought these files are not listed below, wouldn't it be necessary to
use these in order to decode the jump table? I do not mean to open up
the licensing can of worms again, but knowing XF_foobar enumerated
values are necessary to use the jump table, right? 

From COPPYING file:
"NOTE! This copyright does *not* cover the so-called "standalone"
applications that use U-Boot services by means of the jump table
provided by U-Boot exactly for this purpose - this is merely
considered normal use of U-Boot, and does *not* fall under the
heading of "derived work".

  The header files 'include/image.h' and 'include/asm-*/u-boot.h'
define interfaces to U-Boot. Including these (unmodified) header
files in another file is considered normal use of U-Boot, and does
*not* fall under the heading of 'derived work'."

-JM

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot-Users] [PATCH] Update to stand alone program feature
  2007-05-09 15:56 ` Jeff Mann
  2007-05-09 22:24   ` Wolfgang Denk
@ 2007-05-10 14:47   ` Rafal Jaworowski
  1 sibling, 0 replies; 7+ messages in thread
From: Rafal Jaworowski @ 2007-05-10 14:47 UTC (permalink / raw)
  To: u-boot

Jeff Mann wrote:
> Patch did not attach. Let me try again... 
>> [PATCH] Update to stand alone program feature
>>  
>> This patch contains updates to the stand alone program feature,
>> including:
>> 1. update and document new features in README.standalone 2. 

Jeff,

when you are at updating README.standalone, there's one notice I think 
would be worthwile to add as a precaution for external apps utilizing 
U-Boot: the code of the jumptable consumer should pay attention not to 
use U-Boot-dedicated registers (like r29 etc.) in order to safely go 
forth and back, or save/restore. This can bite for example when an 
external app code is built -O2 or higher and registers are used 
intensively. Would you care to add such a note along with your updates?

kind regards,
Rafal

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot-Users] [PATCH] Update to stand alone program feature
  2007-05-10 14:26     ` Jeff Mann
@ 2007-05-10 15:10       ` Jerry Van Baren
  2007-05-10 15:40         ` Jeff Mann
  0 siblings, 1 reply; 7+ messages in thread
From: Jerry Van Baren @ 2007-05-10 15:10 UTC (permalink / raw)
  To: u-boot

Jeff Mann wrote:
>> Technically, you write: "function_no is defined by the enum  
>> type  of _exports.h, so it must be included in the stand 
>> alone program."
>>
>> I will reject this patch. As the name  "_exports.h"  suggests, 
>>  it  is intended to contain implementation internals that are 
>> not supposed to be used by application code.
> 
> Let me clearify (then I can update the doucmentation if we come up with
> a better description). As you know, the list of functions in _exports.h
> is used to create the enumerated type: XF_get_version 0, XF_getc 1,
> XF_tstc 2, ... Etc. So as long as the user has included exports.h or has
> uses some other means to identify the function's jump table inxex number
> in his/her stand along program, he can know if that function is
> available in u-boot. 
> 
> This is useful when, for exmaple, a company builds boards both with and
> without NAND support. A stand along program will be able to know that
> that board was loaded with a u-boot that did not incude NAND support. 

[snip]

> -JM

What would be Really Cool[tm] would be to enhance the elf loading 
capability to resolve unresolved link addresses for the standalone 
application entry points.  Then the standalone program could be loaded 
by u-boot with the interfaces fixed up by the elf loader.  This would 
eliminate all the problems of jump tables and keeping them synchronized.

<http://www.gnu.org/software/binutils/manual/html_chapter/binutils_14.html>
<http://www.linuxjournal.com/article/1059>
<http://www.linuxjournal.com/article/1060>

Possible problems that come to mind...
* Code bloat
* The coupling between GPL u-boot and potentially proprietary standalone
     programs arguably is tighter.  In practical terms, I don't see this
     as an issue, but it really isn't my call.  I would contend this is
     similar to linux loadable device drivers and the current standalone
     programs have license to call back into u-boot - the same functions,
     simply a different interface mechanism.
* My ignorance may be making a molehill out of a mountain of work
* So many interesting things to do, so little time :-(

Best regards,
gvb

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot-Users] [PATCH] Update to stand alone program feature
  2007-05-10 15:10       ` Jerry Van Baren
@ 2007-05-10 15:40         ` Jeff Mann
  0 siblings, 0 replies; 7+ messages in thread
From: Jeff Mann @ 2007-05-10 15:40 UTC (permalink / raw)
  To: u-boot

 
> What would be Really Cool[tm]

My idea was simply this (better with an example)

STAND ALONE PROGRAM
...
#include exports.h
...
char *argv[4] = { "nand", "device", "1", NULL }

/* select NAND device 1 */
if (!(xf_func_inc(XF_do_nand))){  /* make sure that this u-boot has nand
support */
	if(do_nand (0, 0, 3,argv))
	  puts("nand device 1 selected"); 
   }
Else {
   puts("Nand not supported");
}

This was a better solution than simply letting the dummy function catch
it. 

-JM

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2007-05-10 15:40 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-09 15:50 [U-Boot-Users] [PATCH] Update to stand alone program feature Jeff Mann
2007-05-09 15:56 ` Jeff Mann
2007-05-09 22:24   ` Wolfgang Denk
2007-05-10 14:26     ` Jeff Mann
2007-05-10 15:10       ` Jerry Van Baren
2007-05-10 15:40         ` Jeff Mann
2007-05-10 14:47   ` Rafal Jaworowski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox