[U-Boot-Users] SPI support in U-boot

Vladimir Gurevich vag at paulidav.org
Thu Jan 26 07:56:07 CET 2006


Hello Wolfgang,

Wolfgang Denk wrote:

>Good catch!
>  
>
>>Is that OK? I also noticed the same mechanism being used in the 
>>FPGA-related code.
>>    
>>
>
>I think your interpretation is correct.
>  
>
And? :)

OK, so here are the questions:

   1. Should the code be left like that (i.e. some parts are executing
      from FLASH instead of RAM) because it "just works for me" or it is
      not acceptable to code like that?
   2. What is the right way to do that: to use an uninitialized variable
      and initialize it from board_misc_init_r with something like

                   myfuncptr = &myfunc + bd->reloc_off

      or to have initialized variable myfuncptr = myfunc and simply do
      myfuncptr += bd->reloc_off in board_misc_init_r?
   3. Ironically enough, I noticed that fpga_init() is declared like 
      extern void fpga_init( ulong reloc_off ), but all the
      implementations use void fpga_init(void)!
   4. Wouldn't it make sense to add a small section to README,
      explaining how to use function pointer tables in U-boot (not sure
      how much sense it makes to begin with).

>It would be nice to preserve the currnt behaviour, so a patch  should
>try  to  implement the required changes for all boiards. Testing will
>have to be performed by the respective board maintainers, of course.
>  
>
This seems to be difficult, since the current interface only allows you 
to assert/de-assert a particular chipselect, but not to query which one 
is currently active (so that "sspi" command could restore what was 
before it. I guess, I can do three things:

   1. Extend sspi command, so that if there is only 1 arg, chip_select,
      it will simply assert it and do nothing else
   2. Hope, that people who use "eeprom" command don't really care about
      "sspi" so far, otherwise it would be working!
   3. Document the changes.

Thanks,
Vladimir





More information about the U-Boot mailing list