[U-Boot] eb_cpu5282.c board returns failure(?) from misc_init_r()

Robert P. J. Day rpjday at crashcourse.ca
Wed Sep 14 12:57:33 CEST 2016


  i was just perusing the underlying code for invoking initcalls
(mostly because i forgot to return the correct value, and bricked my
target board), and i see this in lib/initcall.c:

  ret = (*init_fnc_ptr)();
  if (ret) {
          printf("initcall sequence %p failed at call %p (err=%d)\n",
                  init_sequence,
                  (char *)*init_fnc_ptr - reloc_ofs, ret);
          return -1;
  }

so, perfectly reasonably, if an initcall returns a non-zero value,
that's failure, which is why misc_init_r() should, as long as
everything succeeds, return zero, correct?

  but there's this in board/BuS/eb_cpu5282/eb_cpu5282.c:

  int misc_init_r(void)
  {
  #ifdef  CONFIG_HW_WATCHDOG
          hw_watchdog_init();
  #endif
          return 1;
  }

i haven't dug into this any further to see if that's a special case,
but isn't that going to return failure every time it's invoked?

  it may be that that board doesn't define the watchdog or the use of
misc_init_r(), but that just seems ... wrong? thoughts?

rday

-- 

========================================================================
Robert P. J. Day                                 Ottawa, Ontario, CANADA
                        http://crashcourse.ca

Twitter:                                       http://twitter.com/rpjday
LinkedIn:                               http://ca.linkedin.com/in/rpjday
========================================================================



More information about the U-Boot mailing list