[U-Boot-Users] [PATCH] Blackfin: implement go/boote wrappers

Mike Frysinger vapier at gentoo.org
Mon Apr 21 12:35:07 CEST 2008


On Monday 21 April 2008, Wolfgang Denk wrote:
> In message <200804210541.41085.vapier at gentoo.org> you wrote:
> > > This makes no sense. If it is ``exactly like "go"'' it doesn't matter
> > > if the code returns or not (and actually this is what I'm  trying  to
> > > point out all the time).
> >
> > the obvious implication is that i would add the cache disabling hooks to
> > the jump command instead of the go command since you wont allow the hook
> > around go.
>
> So it would NOT be ``exactly like "go"''.

well, duh.  my point was that you're making "go" get duplicated just to 
conform to documentation.  the command name itself "go" doesnt really conjurn 
up usage of "executing an application and returning" ... fits better with "go 
to this location and never come back".  "run" probably would have been a 
better name.  but that's hindsight for you.

> Providing both a "go" and a "jump" command which differ just in cahce
> handling seems broken to me. If you want to add such a feature,  then
> I recommend to do it as part of "go", but make it optional, i. e. in-
> troduce a new optional argument to the "go" command, something like
>
> 	go [ -cache={off,d-off,i-off,on,d-on,i-on} ] addr [ args ... ]

cache is just an example.  other arches may want to do other sort of "system 
breakdown/cleanup" before relinquishing control.  option flags to commands 
really doesnt fit the style of u-boot (i expect that sort of painful option 
parsing in redboot, not really u-boot).

so we can do:
	go [-noret] addr [args...]
or we can add "jump" to cmd_boot.c and merge the differences by just using a 
function pointer to "do_go_exec" or "do_jump_exec".

> > > It's just that "go" shall retain the standard U-Boot environment for
> > > application it runs, and that the applications need to take care if
> > > they need to meddle with interrupts, exception handlers, etc.
> >
> > U-Boot sets up no interrupts and the only exceptions that occur on the
> > Blackfin are for cache handling.  disabling the caches forces a sane
>
> There is more procvessors in  this  world  than  just  Blackfin,  and
> others  *do*  enable  interrupts,  etc.  It  is  important to me that
> implementations behave the same no matter which architecture you  are
> using.

i never said Blackfin was the only thing that mattered.  in fact, my goal is 
to make it so that people using this facility get a more standard initial 
environment before they start taking over the system.  i guess i wont point 
out the U-Boot policy about not using interrupts ...
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 827 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20080421/ce750ff8/attachment.pgp 


More information about the U-Boot mailing list