Skip to content
Snippets Groups Projects
  1. Feb 25, 2022
  2. Feb 22, 2022
    • Philippe Reynes's avatar
      scripts: dtc: libfdt: fdt_ro.c: always define fdt_check_full · 70f42e72
      Philippe Reynes authored and Simon Glass's avatar Simon Glass committed
      
      On some configs (like stm32mp15_dhcom_basic_defconfig), if configs
      SPL_LOAD_FIT_FULL and SPL_FIT_FULL_CHECK are enabled. Then the compilatio
      fails with the following error:
      
      arm-linux-gnueabi-ld.bfd: boot/image-fit.o: in function `fit_check_format':
      <PATH>/uboot/u-boot-stm/boot/image-fit.c:1641: undefined reference to `fdt_check_full'
      scripts/Makefile.spl:509: recipe for target 'spl/u-boot-spl' failed
      
      This issue happens because the function fdt_check_full is only defined if
      "!defined(FDT_ASSUME_MASK) || FDT_ASSUME_MASK != 0xff". But this function
      may be called even if this condition are not verified. To avoid this issue,
      the function fdt_check_full is always defined.
      
      Signed-off-by: default avatarPhilippe Reynes <philippe.reynes@softathome.com>
      Reviewed-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      70f42e72
  3. Feb 14, 2022
  4. Feb 11, 2022
  5. Feb 10, 2022
  6. Feb 09, 2022
    • Simon Glass's avatar
      patman: Update with new pylint scores · 6d7ac6a1
      Simon Glass authored
      
      Update the new baseline since various scores have improved.
      
      Signed-off-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      6d7ac6a1
    • Rasmus Villemoes's avatar
      dts: automatically build necessary .dtb files · 3609e1dc
      Rasmus Villemoes authored and Simon Glass's avatar Simon Glass committed
      
      When building for a custom board, it is quite common to maintain a
      private branch which include some defconfig and .dts files. But to
      hook up those .dts files requires modifying a file "belonging" to
      upstream U-Boot, the arch/*/dts/Makefile. Forward-porting that branch
      to a newer upstream then often results in a conflict which, while it
      is trivial to resolve by hand, makes it harder to have a CI do "try to
      build our board against latest upstream".
      
      The .config usually includes information on precisely what .dtb(s) are
      needed, so to avoid having to modify the Makefile, simply add the
      files in (SPL_)OF_LIST to dtb-y.
      
      A technicality is that (SPL_)OF_LIST is not always defined, so rework
      the Kconfig symbols so that (SPL_)OF_LIST is always defined (when
      (SPL_)OF_CONTROL), but only prompted for in the cases which used to be
      their "depends on".
      
      nios2 and microblaze already have something like this in their
      dts/Makefile, and the rationale in commit 41f59f68 is similar to
      the above. So this simply generalizes existing practice. Followup
      patches could remove the logic in those two makefiles, just as there's
      potential for moving some common boilerplate from all the
      arch/*/dts/Makefile files to the new scripts/Makefile.dts.
      
      Signed-off-by: default avatarRasmus Villemoes <rasmus.villemoes@prevas.dk>
      Reviewed-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      3609e1dc
    • Tom Rini's avatar
      configs: Resync with savedefconfig · cccc4ab8
      Tom Rini authored
      
      Rsync all defconfig files using moveconfig.py and update
      scripts/pylint.base
      
      Signed-off-by: default avatarTom Rini <trini@konsulko.com>
      cccc4ab8
    • Simon Glass's avatar
      Convert CONFIG_SCSI_AHCI_PLAT et al to Kconfig · edca8cf7
      Simon Glass authored and Tom Rini's avatar Tom Rini committed
      
      This converts the following to Kconfig:
         CONFIG_SCSI_AHCI_PLAT
         CONFIG_SYS_SCSI_MAX_SCSI_ID
         CONFIG_SYS_SCSI_MAX_LUN
         CONFIG_SYS_SATA_MAX_DEVICE
      
      Drop CONFIG_SCSI for everything except the sandbox build. We only need
      one build for tests.
      
      Signed-off-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      Reviewed-by: default avatarStefan Roese <sr@denx.de>
      edca8cf7
    • Simon Glass's avatar
      scsi: Drop CONFIG_SYS_SCSI_MAX_DEVICE · ce30e3ff
      Simon Glass authored and Tom Rini's avatar Tom Rini committed
      
      This is defined based on two other CONFIGs for all boards except sandbox
      and durian.
      
      For sandbox the value does not matter. For durian the value seems
      excessive.
      
      Drop the option completely, to simplify configuration and reduce the
      number of things we need to convert to Kconfig.
      
      Signed-off-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      Reviewed-by: default avatarStefan Roese <sr@denx.de>
      ce30e3ff
    • Alper Nebi Yasak's avatar
      Convert CONFIG_REMAKE_ELF to Kconfig · a8c281d4
      Alper Nebi Yasak authored and Tom Rini's avatar Tom Rini committed
      
      This converts the following to Kconfig:
         CONFIG_REMAKE_ELF
      
      Signed-off-by: default avatarAlper Nebi Yasak <alpernebiyasak@gmail.com>
      a8c281d4
    • Simon Glass's avatar
      Drop CONFIG_SYS_PIO_MODE · 4b4b1de8
      Simon Glass authored and Tom Rini's avatar Tom Rini committed
      
      This option is not used in U-Boot. Drop it.
      
      Signed-off-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      Reviewed-by: default avatarStefan Roese <sr@denx.de>
      4b4b1de8
    • Simon Glass's avatar
      Convert CONFIG_SYS_IDE_MAXBUS et al to Kconfig · d2da54bf
      Simon Glass authored and Tom Rini's avatar Tom Rini committed
      
      This converts the following to Kconfig:
         CONFIG_SYS_IDE_MAXBUS
         CONFIG_SYS_IDE_MAXDEVICE
         CONFIG_SYS_ATA_BASE_ADDR
         CONFIG_SYS_ATA_STRIDE
         CONFIG_SYS_ATA_DATA_OFFSET
         CONFIG_SYS_ATA_REG_OFFSET
         CONFIG_SYS_ATA_ALT_OFFSET
         CONFIG_SYS_ATA_IDE0_OFFSET
         CONFIG_SYS_ATA_IDE1_OFFSET
         CONFIG_ATAPI
         CONFIG_IDE_RESET
      
      Signed-off-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      Reviewed-by: default avatarStefan Roese <sr@denx.de>
      d2da54bf
    • Simon Glass's avatar
      kconfig: Add support for conditional values · 097ff01f
      Simon Glass authored and Tom Rini's avatar Tom Rini committed
      
      At present if an optional Kconfig value needs to be used it must be
      bracketed by #ifdef. For example, with this Kconfig setup:
      
      config WIBBLE
      	bool "Support wibbles, the world needs more wibbles"
      
      config WIBBLE_ADDR
      	hex "Address of the wibble"
      	depends on WIBBLE
      
      then the following code must be used:
      
       #ifdef CONFIG_WIBBLE
       static void handle_wibble(void)
       {
       	int val = CONFIG_WIBBLE_ADDR;
      
      	...
       }
       #endif
      
       static void init_machine()
       {
       ...
       #ifdef CONFIG_WIBBLE
      	handle_wibble();
       #endif
       }
      
      Add a new IF_ENABLED_INT() to help with this. So now it is possible to
      write, without #ifdefs:
      
       static void handle_wibble(void)
       {
              int val = IF_ENABLED_INT(CONFIG_WIBBLE, CONFIG_WIBBLE_ADDR);
      
      	...
       }
      
       static void init_machine()
       {
       ...
       if (IS_ENABLED(CONFIG_WIBBLE))
      	handle_wibble();
       }
      
      The value will be CONFIG_WIBBLE_ADDR if CONFIG_WIBBLE is defined and will
      produce a build error if not.. This allows us to reduce the use of #ifdef
      in the code, ensuring that the compiler still checks the code even if it
      is not ultimately used for a particular build.
      
      Add a CONFIG_IF_ENABLED_INT() version as well.
      
      If an attempt is made to use a value that does not exist (i.e. when the
      conditional is not enabled), an error about a non-existing function is
      generated, e.g.:
      
      common/bloblist.c:447: undefined reference to `invalid_use_of_IF_ENABLED_INT'
      
      Signed-off-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      097ff01f
  7. Feb 03, 2022
  8. Jan 31, 2022
    • Simon Glass's avatar
      pylint: Adjust how the output is produced · f8753f02
      Simon Glass authored and Tom Rini's avatar Tom Rini committed
      
      The current Makefile rule requires there to be a 'Module' line in the
      pylint output, like this:
      
         ************* Module binman.fip_util
      
      This line only appears if pylint has some comments about the module. We
      cannot rely on it for naming.
      
      Update the code to instead use the filename as the identifier for each
      score, so rather than:
      
         multiplexed_log 7.49
      
      we output:
      
         test_multiplexed_log.py 7.20
      
      It is still easy to see which file the score relates to. In fact the new
      naming is nicer since the full subdirectories are shown.
      
      The avoids the problem where a module name is not produced, and the output
      gets out of sync.
      
      Regenerate pylint.base so we can start from the current baseline.
      
      Signed-off-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      f8753f02
  9. Jan 25, 2022
    • Rasmus Villemoes's avatar
      introduce CONFIG_DEVICE_TREE_INCLUDES · a77f4680
      Rasmus Villemoes authored and Simon Glass's avatar Simon Glass committed
      
      The build system already automatically looks for and includes an
      in-tree *-u-boot.dtsi when building the control .dtb. However, there
      are some things that are awkward to maintain in such an in-tree file,
      most notably the metadata associated to public keys used for verified
      boot.
      
      The only "official" API to get that metadata into the .dtb is via
      mkimage, as a side effect of building an actual signed image. But
      there are multiple problems with that. First of all, the final U-Boot
      (be it U-Boot proper or an SPL) image is built based on a binary
      image, the .dtb, and possibly some other binary artifacts. So
      modifying the .dtb after the build requires the meta-buildsystem
      (Yocto, buildroot, whatnot) to know about and repeat some of the steps
      that are already known to and handled by U-Boot's build system,
      resulting in needless duplication of code. It's also somewhat annoying
      and inconsistent to have a .dtb file in the build folder which is not
      generated by the command listed in the corresponding .cmd file (that
      of course applies to any generated file).
      
      So the contents of the /signature node really needs to be baked into
      the .dtb file when it is first created, which means providing the
      relevant data in the form of a .dtsi file. One could in theory put
      that data into the *-u-boot.dtsi file, but it's more convenient to be
      able to provide it externally: For example, when developing for a
      customer, it's common to use a set of dummy keys for development,
      while the consultants do not (and should not) have access to the
      actual keys used in production. For such a setup, it's easier if the
      keys used are chosen via the meta-buildsystem and the path(s) patched
      in during the configure step. And of course, nothing prevents anybody
      from having DEVICE_TREE_INCLUDES point at files maintained in git, or
      for that matter from including the public key metadata in the
      *-u-boot.dtsi directly and ignore this feature.
      
      There are other uses for this, e.g. in combination with ENV_IMPORT_FDT
      it can be used for providing the contents of the /config/environment
      node, so I don't want to tie this exclusively to use for verified
      boot.
      
      Reviewed-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      Signed-off-by: default avatarRasmus Villemoes <rasmus.villemoes@prevas.dk>
      Fix doc formatting error (make htmldocs)
      Signed-off-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      a77f4680
    • Simon Glass's avatar
      acpi: Allow include files within the board directory · a16f4882
      Simon Glass authored
      
      Some .asl files include others using the iasl 'include' directive. This
      needs to be able to find the files referenced.
      
      For an out-of-tree build the source directory is not the current
      directory. Moreover, U-Boot preprocesses the input file and puts the
      result in the output directory. So iasl does not know where the real
      source file came from.
      
      Add a -I option to produce the correct behaviour. We could add an option
      to not preprocess the .asl source, but for now that seems unnecessary.
      
      Signed-off-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      a16f4882
  10. Jan 24, 2022
  11. Jan 21, 2022
  12. Jan 19, 2022
  13. Jan 14, 2022
  14. Jan 05, 2022
  15. Dec 27, 2021
Loading