[RFCv2 06/16] common: Drop linux/string.h from common header

Tom Rini trini at konsulko.com
Wed Aug 19 15:08:58 CEST 2020


From: Simon Glass <sjg at chromium.org>

Move this out of the common header and include it only where needed.

Signed-off-by: Simon Glass <sjg at chromium.org>
---
 api/api.c                                               | 1 +
 api/api_net.c                                           | 1 +
 arch/arc/lib/relocate.c                                 | 1 +
 arch/arm/cpu/arm1136/mx35/generic.c                     | 1 +
 arch/arm/cpu/arm926ejs/mxs/mxs.c                        | 1 +
 arch/arm/cpu/arm926ejs/mxs/spl_boot.c                   | 1 +
 arch/arm/cpu/arm926ejs/spear/cpu.c                      | 1 +
 arch/arm/cpu/arm926ejs/spear/spr_misc.c                 | 1 +
 arch/arm/cpu/armv7/bcm235xx/clk-bcm235xx.c              | 1 +
 arch/arm/cpu/armv7/bcm235xx/clk-core.c                  | 1 +
 arch/arm/cpu/armv7/bcm281xx/clk-bcm281xx.c              | 1 +
 arch/arm/cpu/armv7/bcm281xx/clk-core.c                  | 1 +
 arch/arm/cpu/armv7/ls102xa/fdt.c                        | 1 +
 arch/arm/cpu/armv7/vf610/generic.c                      | 1 +
 arch/arm/cpu/armv7/virt-v7.c                            | 1 +
 arch/arm/cpu/armv8/cache_v8.c                           | 1 +
 arch/arm/cpu/armv8/cpu.c                                | 1 +
 arch/arm/cpu/armv8/fsl-layerscape/cpu.c                 | 1 +
 arch/arm/cpu/armv8/fsl-layerscape/fdt.c                 | 1 +
 arch/arm/cpu/armv8/fsl-layerscape/fsl_lsch2_serdes.c    | 1 +
 arch/arm/cpu/armv8/fsl-layerscape/fsl_lsch3_serdes.c    | 1 +
 arch/arm/cpu/armv8/fsl-layerscape/ls1028_ids.c          | 1 +
 arch/arm/cpu/armv8/fsl-layerscape/mp.c                  | 1 +
 arch/arm/cpu/armv8/fsl-layerscape/spl.c                 | 1 +
 arch/arm/cpu/armv8/sec_firmware.c                       | 1 +
 arch/arm/cpu/armv8/spin_table.c                         | 1 +
 arch/arm/cpu/armv8/spl_data.c                           | 1 +
 arch/arm/include/asm/io.h                               | 1 +
 arch/arm/lib/bootm.c                                    | 1 +
 arch/arm/lib/eabi_compat.c                              | 1 +
 arch/arm/lib/psci-dt.c                                  | 1 +
 arch/arm/lib/semihosting.c                              | 1 +
 arch/arm/mach-bcm283x/include/mach/mbox.h               | 3 ++-
 arch/arm/mach-imx/cmd_bmode.c                           | 1 +
 arch/arm/mach-imx/cmd_nandbcb.c                         | 1 +
 arch/arm/mach-imx/imx8/ahab.c                           | 1 +
 arch/arm/mach-imx/imx8/fdt.c                            | 1 +
 arch/arm/mach-imx/imx8/image.c                          | 1 +
 arch/arm/mach-imx/imx8/parse-container.c                | 1 +
 arch/arm/mach-imx/imx8m/soc.c                           | 1 +
 arch/arm/mach-imx/mx5/clock.c                           | 1 +
 arch/arm/mach-imx/mx6/module_fuse.c                     | 1 +
 arch/arm/mach-imx/spl_imx_romapi.c                      | 1 +
 arch/arm/mach-imx/video.c                               | 1 +
 arch/arm/mach-k3/common.c                               | 1 +
 arch/arm/mach-keystone/cmd_clock.c                      | 1 +
 arch/arm/mach-keystone/cmd_mon.c                        | 1 +
 arch/arm/mach-keystone/ddr3_spd.c                       | 1 +
 arch/arm/mach-keystone/mon.c                            | 1 +
 arch/arm/mach-meson/sm.c                                | 1 +
 arch/arm/mach-mvebu/armada3700/cpu.c                    | 1 +
 arch/arm/mach-mvebu/serdes/axp/high_speed_env_lib.c     | 1 +
 arch/arm/mach-omap2/emif-common.c                       | 1 +
 arch/arm/mach-omap2/omap3/board.c                       | 1 +
 arch/arm/mach-omap2/sec-common.c                        | 1 +
 arch/arm/mach-rockchip/board.c                          | 1 +
 arch/arm/mach-rockchip/boot_mode.c                      | 1 +
 arch/arm/mach-rockchip/misc.c                           | 1 +
 arch/arm/mach-rockchip/spl-boot-order.c                 | 1 +
 arch/arm/mach-socfpga/clock_manager_arria10.c           | 1 +
 arch/arm/mach-socfpga/misc_s10.c                        | 1 +
 arch/arm/mach-socfpga/pinmux_arria10.c                  | 1 +
 arch/arm/mach-stm32mp/cmd_stm32key.c                    | 1 +
 arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c     | 1 +
 arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c         | 1 +
 arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_serial.c  | 1 +
 arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_usb.c     | 1 +
 arch/arm/mach-stm32mp/fdt.c                             | 1 +
 arch/arm/mach-tegra/cboot.c                             | 1 +
 arch/arm/mach-tegra/tegra20/emc.c                       | 1 +
 arch/arm/mach-tegra/tegra20/warmboot.c                  | 1 +
 arch/arm/mach-tegra/xusb-padctl-common.c                | 1 +
 arch/arm/mach-uniphier/base-address.c                   | 1 +
 arch/arm/mach-uniphier/board_late_init.c                | 1 +
 arch/arm/mach-uniphier/dram/cmd_ddrmphy.c               | 1 +
 arch/arm/mach-uniphier/dram/cmd_ddrphy.c                | 1 +
 arch/arm/mach-versal/mp.c                               | 1 +
 arch/arm/mach-zynq/ddrc.c                               | 1 +
 arch/arm/mach-zynq/slcr.c                               | 1 +
 arch/arm/mach-zynq/spl.c                                | 1 +
 arch/arm/mach-zynqmp/cpu.c                              | 1 +
 arch/arm/mach-zynqmp/mp.c                               | 1 +
 arch/microblaze/include/asm/io.h                        | 1 +
 arch/mips/include/asm/io.h                              | 1 +
 arch/mips/lib/bootm.c                                   | 1 +
 arch/mips/lib/reloc.c                                   | 1 +
 arch/mips/lib/traps.c                                   | 1 +
 arch/mips/mach-jz47xx/jz4780/jz4780.c                   | 1 +
 arch/mips/mach-mtmips/cpu.c                             | 1 +
 arch/nds32/lib/bootm.c                                  | 1 +
 arch/nios2/cpu/cpu.c                                    | 1 +
 arch/nios2/include/asm/io.h                             | 1 +
 arch/powerpc/cpu/mpc83xx/ecc.c                          | 1 +
 arch/powerpc/cpu/mpc85xx/commproc.c                     | 1 +
 arch/powerpc/cpu/mpc85xx/cpu_init.c                     | 1 +
 arch/powerpc/cpu/mpc85xx/ether_fcc.c                    | 1 +
 arch/powerpc/cpu/mpc85xx/fdt.c                          | 1 +
 arch/powerpc/cpu/mpc85xx/fsl_corenet2_serdes.c          | 1 +
 arch/powerpc/cpu/mpc85xx/liodn.c                        | 1 +
 arch/powerpc/cpu/mpc85xx/mp.c                           | 1 +
 arch/powerpc/cpu/mpc85xx/portals.c                      | 1 +
 arch/powerpc/cpu/mpc86xx/mp.c                           | 1 +
 arch/powerpc/cpu/mpc8xxx/fsl_pamu.c                     | 1 +
 arch/powerpc/include/asm/io.h                           | 1 +
 arch/riscv/cpu/cpu.c                                    | 1 +
 arch/riscv/lib/andes_plic.c                             | 1 +
 arch/riscv/lib/fdt_fixup.c                              | 1 +
 arch/sandbox/cpu/eth-raw-os.c                           | 1 +
 arch/sandbox/cpu/os.c                                   | 1 +
 arch/sandbox/cpu/sdl.c                                  | 1 +
 arch/sandbox/cpu/spl.c                                  | 1 +
 arch/sandbox/cpu/start.c                                | 1 +
 arch/sandbox/cpu/state.c                                | 1 +
 arch/sandbox/lib/bootm.c                                | 1 +
 arch/sh/lib/board.c                                     | 1 +
 arch/sh/lib/bootm.c                                     | 1 +
 arch/sh/lib/zimageboot.c                                | 1 +
 arch/x86/cpu/acpi_gpe.c                                 | 1 +
 arch/x86/cpu/apollolake/fsp_bindings.c                  | 1 +
 arch/x86/cpu/apollolake/pmc.c                           | 1 +
 arch/x86/cpu/apollolake/spl.c                           | 1 +
 arch/x86/cpu/baytrail/acpi.c                            | 1 +
 arch/x86/cpu/broadwell/me.c                             | 1 +
 arch/x86/cpu/broadwell/northbridge.c                    | 1 +
 arch/x86/cpu/broadwell/pinctrl_broadwell.c              | 1 +
 arch/x86/cpu/broadwell/refcode.c                        | 1 +
 arch/x86/cpu/broadwell/sdram.c                          | 1 +
 arch/x86/cpu/cpu_x86.c                                  | 1 +
 arch/x86/cpu/efi/payload.c                              | 1 +
 arch/x86/cpu/i386/cpu.c                                 | 1 +
 arch/x86/cpu/intel_common/itss.c                        | 1 +
 arch/x86/cpu/intel_common/report_platform.c             | 1 +
 arch/x86/cpu/ivybridge/sata.c                           | 1 +
 arch/x86/cpu/ivybridge/sdram.c                          | 1 +
 arch/x86/cpu/mp_init.c                                  | 1 +
 arch/x86/cpu/qfw_cpu.c                                  | 1 +
 arch/x86/cpu/quark/acpi.c                               | 1 +
 arch/x86/cpu/quark/dram.c                               | 1 +
 arch/x86/cpu/quark/smc.c                                | 1 +
 arch/x86/cpu/tangier/acpi.c                             | 1 +
 arch/x86/cpu/tangier/sdram.c                            | 1 +
 arch/x86/include/asm/io.h                               | 1 +
 arch/x86/include/asm/me_common.h                        | 1 +
 arch/x86/lib/acpi.c                                     | 1 +
 arch/x86/lib/acpi_nhlt.c                                | 1 +
 arch/x86/lib/acpi_s3.c                                  | 1 +
 arch/x86/lib/acpi_table.c                               | 1 +
 arch/x86/lib/bios.c                                     | 1 +
 arch/x86/lib/cmd_boot.c                                 | 1 +
 arch/x86/lib/coreboot_table.c                           | 1 +
 arch/x86/lib/fsp1/fsp_support.c                         | 1 +
 arch/x86/lib/fsp2/fsp_meminit.c                         | 1 +
 arch/x86/lib/fsp2/fsp_silicon_init.c                    | 1 +
 arch/x86/lib/fsp2/fsp_support.c                         | 1 +
 arch/x86/lib/mpspec.c                                   | 1 +
 arch/x86/lib/mrccache.c                                 | 1 +
 arch/x86/lib/physmem.c                                  | 1 +
 arch/x86/lib/pirq_routing.c                             | 1 +
 arch/x86/lib/relocate.c                                 | 1 +
 arch/x86/lib/scu.c                                      | 1 +
 arch/x86/lib/sfi.c                                      | 1 +
 arch/x86/lib/spl.c                                      | 1 +
 arch/x86/lib/string.c                                   | 1 +
 arch/x86/lib/tables.c                                   | 1 +
 arch/x86/lib/zimage.c                                   | 1 +
 arch/xtensa/include/asm/io.h                            | 1 +
 arch/xtensa/lib/bootm.c                                 | 1 +
 arch/xtensa/lib/relocate.c                              | 1 +
 board/Arcturus/ucp1020/cmd_arc.c                        | 1 +
 board/Arcturus/ucp1020/ddr.c                            | 1 +
 board/Arcturus/ucp1020/spl.c                            | 1 +
 board/Arcturus/ucp1020/ucp1020.c                        | 1 +
 board/BuR/common/common.c                               | 1 +
 board/BuS/eb_cpu5282/eb_cpu5282.c                       | 1 +
 board/CZ.NIC/turris_omnia/turris_omnia.c                | 1 +
 board/Synology/ds109/ds109.c                            | 1 +
 board/Synology/ds414/cmd_syno.c                         | 1 +
 board/advantech/imx8qm_rom7720_a1/spl.c                 | 1 +
 board/aristainetos/aristainetos.c                       | 1 +
 board/armltd/vexpress/vexpress_common.c                 | 1 +
 board/armltd/vexpress/vexpress_tc2.c                    | 1 +
 board/armltd/vexpress64/vexpress64.c                    | 1 +
 board/atmel/common/mac-spi-nor.c                        | 1 +
 board/atmel/common/video_display.c                      | 1 +
 board/atmel/sama5d3xek/sama5d3xek.c                     | 1 +
 board/barco/platinum/spl_picon.c                        | 1 +
 board/barco/platinum/spl_titanium.c                     | 1 +
 board/beacon/imx8mm/spl.c                               | 1 +
 board/beckhoff/mx53cx9020/mx53cx9020.c                  | 1 +
 board/bluewater/gurnard/gurnard.c                       | 1 +
 board/boundary/nitrogen6x/nitrogen6x.c                  | 1 +
 board/cavium/thunderx/atf.c                             | 1 +
 board/cobra5272/flash.c                                 | 3 ++-
 board/compulab/cl-som-imx7/spl.c                        | 1 +
 board/compulab/cm_fx6/cm_fx6.c                          | 1 +
 board/compulab/common/eeprom.c                          | 1 +
 board/compulab/common/omap3_display.c                   | 1 +
 board/congatec/cgtqmx6eval/cgtqmx6eval.c                | 1 +
 board/corscience/tricorder/tricorder-eeprom.c           | 1 +
 board/corscience/tricorder/tricorder.c                  | 1 +
 board/creative/xfi3/spl_boot.c                          | 1 +
 board/cssi/MCR3000/MCR3000.c                            | 1 +
 board/davinci/da8xxevm/da850evm.c                       | 1 +
 board/davinci/da8xxevm/omapl138_lcdk.c                  | 1 +
 board/dhelectronics/dh_imx6/dh_imx6.c                   | 1 +
 board/dhelectronics/dh_imx6/dh_imx6_spl.c               | 1 +
 board/dhelectronics/dh_stm32mp1/board.c                 | 1 +
 board/egnite/ethernut5/ethernut5_pwrman.c               | 1 +
 board/el/el6x/el6x.c                                    | 1 +
 board/engicam/common/board.c                            | 1 +
 board/engicam/common/spl.c                              | 1 +
 board/esd/meesc/meesc.c                                 | 1 +
 board/esd/vme8349/caddy.c                               | 1 +
 board/esd/vme8349/vme8349.c                             | 1 +
 board/firefly/roc-pc-rk3399/roc-pc-rk3399.c             | 1 +
 board/freescale/common/fsl_validate.c                   | 1 +
 board/freescale/common/ngpixis.c                        | 1 +
 board/freescale/common/pixis.c                          | 1 +
 board/freescale/common/qixis.c                          | 1 +
 board/freescale/common/sgmii_riser.c                    | 1 +
 board/freescale/common/sys_eeprom.c                     | 1 +
 board/freescale/corenet_ds/ddr.c                        | 1 +
 board/freescale/corenet_ds/eth_hydra.c                  | 1 +
 board/freescale/corenet_ds/eth_superhydra.c             | 1 +
 board/freescale/imx8mm_evk/spl.c                        | 1 +
 board/freescale/imx8mn_evk/spl.c                        | 1 +
 board/freescale/imx8mq_evk/spl.c                        | 1 +
 board/freescale/imx8qm_mek/imx8qm_mek.c                 | 1 +
 board/freescale/imx8qm_mek/spl.c                        | 1 +
 board/freescale/imx8qxp_mek/imx8qxp_mek.c               | 1 +
 board/freescale/imx8qxp_mek/spl.c                       | 1 +
 board/freescale/ls1012aqds/ls1012aqds.c                 | 1 +
 board/freescale/ls1012ardb/ls1012ardb.c                 | 1 +
 board/freescale/ls1021aiot/dcu.c                        | 1 +
 board/freescale/ls1021aiot/ls1021aiot.c                 | 1 +
 board/freescale/ls1021aqds/dcu.c                        | 1 +
 board/freescale/ls1021aqds/ddr.c                        | 1 +
 board/freescale/ls1021aqds/eth.c                        | 1 +
 board/freescale/ls1021aqds/ls1021aqds.c                 | 1 +
 board/freescale/ls1021atsn/ls1021atsn.c                 | 1 +
 board/freescale/ls1021atwr/dcu.c                        | 1 +
 board/freescale/ls1021atwr/ls1021atwr.c                 | 1 +
 board/freescale/ls1043aqds/eth.c                        | 1 +
 board/freescale/ls1043ardb/cpld.c                       | 1 +
 board/freescale/ls1043ardb/ddr.c                        | 1 +
 board/freescale/ls1046afrwy/eth.c                       | 1 +
 board/freescale/ls1046ardb/cpld.c                       | 1 +
 board/freescale/ls1046ardb/eth.c                        | 1 +
 board/freescale/ls1088a/eth_ls1088aqds.c                | 1 +
 board/freescale/ls1088a/ls1088a.c                       | 1 +
 board/freescale/ls2080a/ddr.c                           | 1 +
 board/freescale/ls2080aqds/eth.c                        | 1 +
 board/freescale/ls2080aqds/ls2080aqds.c                 | 1 +
 board/freescale/lx2160a/eth_lx2160aqds.c                | 1 +
 board/freescale/lx2160a/lx2160a.c                       | 1 +
 board/freescale/mpc8323erdb/mpc8323erdb.c               | 1 +
 board/freescale/mpc8349itx/mpc8349itx.c                 | 1 +
 board/freescale/mpc837xemds/mpc837xemds.c               | 1 +
 board/freescale/mpc837xemds/pci.c                       | 1 +
 board/freescale/mpc8569mds/mpc8569mds.c                 | 1 +
 board/freescale/mpc8610hpcd/mpc8610hpcd_diu.c           | 1 +
 board/freescale/mx51evk/mx51evk_video.c                 | 1 +
 board/freescale/mx53loco/mx53loco_video.c               | 1 +
 board/freescale/mx6memcal/spl.c                         | 1 +
 board/freescale/mx6sabreauto/mx6sabreauto.c             | 1 +
 board/freescale/mx6sabresd/mx6sabresd.c                 | 1 +
 board/freescale/mx6slevk/mx6slevk.c                     | 1 +
 board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c       | 1 +
 board/freescale/p1010rdb/ddr.c                          | 1 +
 board/freescale/p1010rdb/p1010rdb.c                     | 1 +
 board/freescale/p1010rdb/spl.c                          | 1 +
 board/freescale/p1023rdb/ddr.c                          | 1 +
 board/freescale/p1_p2_rdb_pc/ddr.c                      | 1 +
 board/freescale/p1_p2_rdb_pc/spl.c                      | 1 +
 board/freescale/p2041rdb/cpld.c                         | 1 +
 board/freescale/qemu-ppce500/qemu-ppce500.c             | 1 +
 board/freescale/t102xrdb/cpld.c                         | 1 +
 board/freescale/t102xrdb/ddr.c                          | 1 +
 board/freescale/t102xrdb/spl.c                          | 1 +
 board/freescale/t102xrdb/t102xrdb.c                     | 1 +
 board/freescale/t104xrdb/cpld.c                         | 1 +
 board/freescale/t104xrdb/spl.c                          | 1 +
 board/freescale/t208xqds/eth_t208xqds.c                 | 1 +
 board/freescale/t208xqds/spl.c                          | 1 +
 board/freescale/t208xrdb/cpld.c                         | 1 +
 board/freescale/t208xrdb/spl.c                          | 1 +
 board/freescale/t4rdb/cpld.c                            | 1 +
 board/freescale/t4rdb/spl.c                             | 1 +
 board/gardena/smart-gateway-mt7688/board.c              | 1 +
 board/gateworks/gw_ventana/eeprom.c                     | 1 +
 board/gateworks/gw_ventana/gsc.c                        | 1 +
 board/gateworks/gw_ventana/gw_ventana.c                 | 1 +
 board/gdsys/a38x/hre.c                                  | 1 +
 board/gdsys/a38x/ihs_phys.c                             | 1 +
 board/gdsys/a38x/keyprogram.c                           | 1 +
 board/gdsys/common/cmd_ioloop.c                         | 1 +
 board/gdsys/common/ihs_mdio.c                           | 1 +
 board/gdsys/common/ioep-fpga.c                          | 1 +
 board/gdsys/common/osd.c                                | 1 +
 board/gdsys/common/osd_cmd.c                            | 1 +
 board/gdsys/mpc8308/hrcon.c                             | 1 +
 board/gdsys/mpc8308/strider.c                           | 1 +
 board/gdsys/p1022/controlcenterd-id.c                   | 1 +
 board/gdsys/p1022/ddr.c                                 | 1 +
 board/ge/bx50v3/bx50v3.c                                | 1 +
 board/ge/mx53ppd/mx53ppd.c                              | 1 +
 board/google/imx8mq_phanbell/spl.c                      | 1 +
 board/grinn/liteboard/board.c                           | 1 +
 board/imgtec/malta/malta.c                              | 1 +
 board/isee/igep00x0/igep00x0.c                          | 1 +
 board/k+p/kp_imx53/kp_id_rev.c                          | 1 +
 board/k+p/kp_imx6q_tpc/kp_imx6q_tpc_spl.c               | 1 +
 board/keymile/common/common.c                           | 1 +
 board/keymile/common/ivm.c                              | 1 +
 board/kosagi/novena/novena.c                            | 1 +
 board/laird/wb50n/wb50n.c                               | 1 +
 board/liebherr/display5/display5.c                      | 1 +
 board/liebherr/display5/spl.c                           | 1 +
 board/liebherr/mccmon6/spl.c                            | 1 +
 board/mediatek/mt7623/mt7623_rfb.c                      | 1 +
 board/menlo/m53menlo/m53menlo.c                         | 1 +
 board/mscc/jr2/jr2.c                                    | 1 +
 board/mscc/luton/luton.c                                | 1 +
 board/mscc/ocelot/ocelot.c                              | 1 +
 board/mscc/serval/serval.c                              | 1 +
 board/mscc/servalt/servalt.c                            | 1 +
 board/nokia/rx51/rx51.c                                 | 1 +
 board/nvidia/p2371-2180/p2371-2180.c                    | 1 +
 board/nvidia/p2771-0000/p2771-0000.c                    | 1 +
 board/nvidia/p3450-0000/p3450-0000.c                    | 1 +
 board/phytec/pcm058/pcm058.c                            | 1 +
 board/phytec/pfla02/pfla02.c                            | 1 +
 board/qualcomm/dragonboard410c/dragonboard410c.c        | 1 +
 board/renesas/salvator-x/salvator-x.c                   | 1 +
 board/renesas/sh7752evb/sh7752evb.c                     | 1 +
 board/renesas/sh7753evb/sh7753evb.c                     | 1 +
 board/renesas/sh7757lcr/sh7757lcr.c                     | 1 +
 board/renesas/stout/cpld.c                              | 1 +
 board/renesas/ulcb/cpld.c                               | 1 +
 board/renesas/ulcb/ulcb.c                               | 1 +
 board/samsung/common/gadget.c                           | 1 +
 board/samsung/origen/tools/mkorigenspl.c                | 1 +
 board/samsung/smdkv310/tools/mksmdkv310spl.c            | 1 +
 board/sandisk/sansa_fuze_plus/spl_boot.c                | 1 +
 board/sbc8548/ddr.c                                     | 1 +
 board/siemens/capricorn/board.c                         | 1 +
 board/siemens/capricorn/spl.c                           | 1 +
 board/siemens/common/board.c                            | 1 +
 board/siemens/common/factoryset.c                       | 1 +
 board/siemens/pxm2/board.c                              | 1 +
 board/siemens/rut/board.c                               | 1 +
 board/sks-kinkel/sksimx6/sksimx6.c                      | 1 +
 board/softing/vining_2000/vining_2000.c                 | 1 +
 board/softing/vining_fpga/socfpga.c                     | 1 +
 board/solidrun/clearfog/clearfog.c                      | 1 +
 board/solidrun/common/tlv_data.c                        | 1 +
 board/solidrun/mx6cuboxi/mx6cuboxi.c                    | 1 +
 board/st/common/stm32mp_dfu.c                           | 1 +
 board/st/common/stm32mp_mtdparts.c                      | 1 +
 board/st/stm32mp1/stm32mp1.c                            | 1 +
 board/sunxi/board.c                                     | 1 +
 board/synopsys/emsdp/emsdp.c                            | 1 +
 board/synopsys/hsdk/hsdk.c                              | 1 +
 board/syteco/zmx25/zmx25.c                              | 1 +
 board/technexion/pico-imx6/spl.c                        | 1 +
 board/technexion/pico-imx6ul/spl.c                      | 1 +
 board/technexion/pico-imx7d/spl.c                       | 1 +
 board/technexion/pico-imx8mq/spl.c                      | 1 +
 board/theadorable/fpga.c                                | 1 +
 board/theobroma-systems/puma_rk3399/puma-rk3399.c       | 1 +
 board/ti/am335x/board.c                                 | 1 +
 board/ti/am335x/board.h                                 | 1 +
 board/ti/am43xx/board.c                                 | 1 +
 board/ti/am43xx/board.h                                 | 1 +
 board/ti/am57xx/board.c                                 | 1 +
 board/ti/am65x/evm.c                                    | 1 +
 board/ti/beagle/beagle.c                                | 1 +
 board/ti/common/board_detect.c                          | 1 +
 board/ti/j721e/evm.c                                    | 1 +
 board/ti/ks2_evm/board.c                                | 1 +
 board/ti/ks2_evm/board_k2e.c                            | 1 +
 board/ti/ks2_evm/board_k2g.c                            | 1 +
 board/ti/ks2_evm/board_k2hk.c                           | 1 +
 board/ti/ks2_evm/board_k2l.c                            | 1 +
 board/ti/sdp4430/cmd_bat.c                              | 1 +
 board/toradex/apalis-tk1/apalis-tk1.c                   | 1 +
 board/toradex/apalis_imx6/apalis_imx6.c                 | 1 +
 board/toradex/colibri_imx6/colibri_imx6.c               | 1 +
 board/toradex/common/tdx-cfg-block.c                    | 1 +
 board/toradex/common/tdx-common.c                       | 1 +
 board/toradex/verdin-imx8mm/spl.c                       | 1 +
 board/udoo/neo/neo.c                                    | 1 +
 board/variscite/dart_6ul/spl.c                          | 1 +
 board/varisys/common/sys_eeprom.c                       | 1 +
 board/vscom/baltos/board.c                              | 1 +
 board/wandboard/wandboard.c                             | 1 +
 board/work-microwave/work_92105/work_92105_display.c    | 1 +
 board/xes/common/board.c                                | 1 +
 board/xilinx/versal/board.c                             | 1 +
 board/xilinx/zynq/board.c                               | 1 +
 board/xilinx/zynq/bootimg.c                             | 1 +
 board/xilinx/zynq/cmds.c                                | 1 +
 board/xilinx/zynqmp/zynqmp.c                            | 1 +
 cmd/abootimg.c                                          | 1 +
 cmd/acpi.c                                              | 1 +
 cmd/adtimg.c                                            | 1 +
 cmd/aes.c                                               | 1 +
 cmd/armflash.c                                          | 1 +
 cmd/avb.c                                               | 1 +
 cmd/bcb.c                                               | 1 +
 cmd/bdinfo.c                                            | 1 +
 cmd/binop.c                                             | 1 +
 cmd/blk_common.c                                        | 1 +
 cmd/blob.c                                              | 1 +
 cmd/bmp.c                                               | 1 +
 cmd/bootefi.c                                           | 1 +
 cmd/booti.c                                             | 1 +
 cmd/bootm.c                                             | 1 +
 cmd/bootstage.c                                         | 1 +
 cmd/cache.c                                             | 1 +
 cmd/cros_ec.c                                           | 1 +
 cmd/date.c                                              | 1 +
 cmd/dfu.c                                               | 1 +
 cmd/echo.c                                              | 1 +
 cmd/eeprom.c                                            | 1 +
 cmd/efi.c                                               | 1 +
 cmd/efidebug.c                                          | 1 +
 cmd/elf.c                                               | 1 +
 cmd/ethsw.c                                             | 1 +
 cmd/fastboot.c                                          | 1 +
 cmd/fdt.c                                               | 1 +
 cmd/flash.c                                             | 1 +
 cmd/fpga.c                                              | 1 +
 cmd/fuse.c                                              | 1 +
 cmd/gpio.c                                              | 1 +
 cmd/gpt.c                                               | 1 +
 cmd/hash.c                                              | 1 +
 cmd/i2c.c                                               | 1 +
 cmd/ide.c                                               | 1 +
 cmd/irq.c                                               | 1 +
 cmd/itest.c                                             | 1 +
 cmd/jffs2.c                                             | 1 +
 cmd/led.c                                               | 1 +
 cmd/legacy_led.c                                        | 1 +
 cmd/load.c                                              | 1 +
 cmd/log.c                                               | 1 +
 cmd/md5sum.c                                            | 1 +
 cmd/mdio.c                                              | 1 +
 cmd/mem.c                                               | 1 +
 cmd/mii.c                                               | 1 +
 cmd/misc.c                                              | 1 +
 cmd/mmc.c                                               | 1 +
 cmd/mp.c                                                | 1 +
 cmd/mtd.c                                               | 1 +
 cmd/mtdparts.c                                          | 1 +
 cmd/mvebu/bubt.c                                        | 1 +
 cmd/nand.c                                              | 1 +
 cmd/net.c                                               | 1 +
 cmd/nvedit.c                                            | 1 +
 cmd/nvedit_efi.c                                        | 1 +
 cmd/nvme.c                                              | 1 +
 cmd/onenand.c                                           | 1 +
 cmd/osd.c                                               | 1 +
 cmd/part.c                                              | 1 +
 cmd/pci.c                                               | 1 +
 cmd/pinmux.c                                            | 1 +
 cmd/regulator.c                                         | 1 +
 cmd/remoteproc.c                                        | 1 +
 cmd/rtc.c                                               | 1 +
 cmd/sata.c                                              | 1 +
 cmd/scsi.c                                              | 1 +
 cmd/setexpr.c                                           | 1 +
 cmd/sf.c                                                | 1 +
 cmd/sha1sum.c                                           | 1 +
 cmd/smccc.c                                             | 1 +
 cmd/spi.c                                               | 1 +
 cmd/strings.c                                           | 1 +
 cmd/sysboot.c                                           | 1 +
 cmd/test.c                                              | 1 +
 cmd/ti/ddr3.c                                           | 1 +
 cmd/tlv_eeprom.c                                        | 1 +
 cmd/tpm-v1.c                                            | 1 +
 cmd/tpm-v2.c                                            | 1 +
 cmd/tsi148.c                                            | 1 +
 cmd/ubi.c                                               | 1 +
 cmd/ufs.c                                               | 1 +
 cmd/universe.c                                          | 1 +
 cmd/usb.c                                               | 1 +
 cmd/usb_mass_storage.c                                  | 1 +
 cmd/virtio.c                                            | 1 +
 cmd/w1.c                                                | 1 +
 cmd/x86/mtrr.c                                          | 1 +
 cmd/ximg.c                                              | 1 +
 cmd/yaffs2.c                                            | 1 +
 cmd/zfs.c                                               | 1 +
 common/android_ab.c                                     | 1 +
 common/autoboot.c                                       | 1 +
 common/avb_verify.c                                     | 1 +
 common/bloblist.c                                       | 1 +
 common/board_f.c                                        | 1 +
 common/bootm.c                                          | 1 +
 common/bootm_os.c                                       | 1 +
 common/bootstage.c                                      | 1 +
 common/bouncebuf.c                                      | 1 +
 common/cli.c                                            | 1 +
 common/cli_hush.c                                       | 1 +
 common/cli_readline.c                                   | 1 +
 common/cli_simple.c                                     | 1 +
 common/command.c                                        | 1 +
 common/common_fit.c                                     | 1 +
 common/console.c                                        | 1 +
 common/dlmalloc.c                                       | 1 +
 common/eeprom/eeprom_layout.c                           | 1 +
 common/fdt_region.c                                     | 1 +
 common/fdt_support.c                                    | 1 +
 common/flash.c                                          | 1 +
 common/hash.c                                           | 1 +
 common/image-android.c                                  | 1 +
 common/image-cipher.c                                   | 1 +
 common/image-fdt.c                                      | 1 +
 common/image-fit-sig.c                                  | 1 +
 common/image-fit.c                                      | 1 +
 common/image-sig.c                                      | 1 +
 common/image.c                                          | 1 +
 common/init/board_init.c                                | 1 +
 common/iomux.c                                          | 1 +
 common/kallsyms.c                                       | 1 +
 common/kgdb.c                                           | 1 +
 common/lcd.c                                            | 1 +
 common/lcd_console.c                                    | 1 +
 common/log.c                                            | 1 +
 common/log_syslog.c                                     | 1 +
 common/malloc_simple.c                                  | 1 +
 common/menu.c                                           | 1 +
 common/miiphyutil.c                                     | 1 +
 common/spl/spl.c                                        | 1 +
 common/spl/spl_atf.c                                    | 1 +
 common/spl/spl_fit.c                                    | 1 +
 common/spl/spl_net.c                                    | 1 +
 common/spl/spl_nor.c                                    | 1 +
 common/spl/spl_ram.c                                    | 1 +
 common/spl/spl_ubi.c                                    | 1 +
 common/spl/spl_ymodem.c                                 | 1 +
 common/splash.c                                         | 1 +
 common/splash_source.c                                  | 1 +
 common/stdio.c                                          | 1 +
 common/update.c                                         | 1 +
 common/usb.c                                            | 1 +
 common/usb_hub.c                                        | 1 +
 common/usb_kbd.c                                        | 1 +
 common/usb_storage.c                                    | 1 +
 disk/part.c                                             | 1 +
 disk/part_amiga.c                                       | 1 +
 disk/part_dos.c                                         | 1 +
 disk/part_efi.c                                         | 1 +
 disk/part_iso.c                                         | 1 +
 drivers/ata/ahci.c                                      | 1 +
 drivers/ata/dwc_ahsata.c                                | 1 +
 drivers/ata/fsl_sata.c                                  | 1 +
 drivers/ata/libata.c                                    | 1 +
 drivers/ata/sata.c                                      | 1 +
 drivers/ata/sata_mv.c                                   | 1 +
 drivers/ata/sata_sil.c                                  | 1 +
 drivers/bios_emulator/atibios.c                         | 1 +
 drivers/bios_emulator/biosemu.c                         | 1 +
 drivers/bios_emulator/x86emu/debug.c                    | 1 +
 drivers/block/blk-uclass.c                              | 1 +
 drivers/block/blk_legacy.c                              | 1 +
 drivers/block/blkcache.c                                | 1 +
 drivers/block/ide.c                                     | 1 +
 drivers/block/sandbox.c                                 | 1 +
 drivers/clk/altera/clk-arria10.c                        | 1 +
 drivers/clk/clk-mux.c                                   | 1 +
 drivers/clk/clk_stm32f.c                                | 1 +
 drivers/clk/clk_versal.c                                | 1 +
 drivers/clk/mvebu/armada-37xx-periph.c                  | 1 +
 drivers/clk/renesas/clk-rcar-gen2.c                     | 1 +
 drivers/clk/rockchip/clk_rk322x.c                       | 1 +
 drivers/clk/rockchip/clk_rk3288.c                       | 1 +
 drivers/clk/rockchip/clk_rk3328.c                       | 1 +
 drivers/clk/rockchip/clk_rk3368.c                       | 1 +
 drivers/clk/rockchip/clk_rk3399.c                       | 1 +
 drivers/clk/sifive/fu540-prci.c                         | 1 +
 drivers/core/acpi.c                                     | 1 +
 drivers/core/device.c                                   | 1 +
 drivers/core/lists.c                                    | 1 +
 drivers/core/of_access.c                                | 1 +
 drivers/core/of_addr.c                                  | 1 +
 drivers/core/of_extra.c                                 | 1 +
 drivers/core/ofnode.c                                   | 1 +
 drivers/core/uclass.c                                   | 1 +
 drivers/cpu/cpu-uclass.c                                | 1 +
 drivers/cpu/cpu_sandbox.c                               | 1 +
 drivers/cpu/imx8_cpu.c                                  | 1 +
 drivers/cpu/riscv_cpu.c                                 | 1 +
 drivers/crypto/ace_sha.c                                | 1 +
 drivers/crypto/fsl/desc_constr.h                        | 1 +
 drivers/crypto/fsl/error.c                              | 1 +
 drivers/crypto/fsl/fsl_hash.c                           | 1 +
 drivers/crypto/fsl/jobdesc.c                            | 1 +
 drivers/crypto/fsl/jr.c                                 | 1 +
 drivers/crypto/fsl/rng.c                                | 1 +
 drivers/ddr/altera/sdram_arria10.c                      | 1 +
 drivers/ddr/altera/sdram_gen5.c                         | 1 +
 drivers/ddr/altera/sdram_soc64.c                        | 1 +
 drivers/ddr/altera/sequencer.c                          | 1 +
 drivers/ddr/fsl/ctrl_regs.c                             | 1 +
 drivers/ddr/fsl/ddr1_dimm_params.c                      | 1 +
 drivers/ddr/fsl/ddr2_dimm_params.c                      | 1 +
 drivers/ddr/fsl/ddr3_dimm_params.c                      | 1 +
 drivers/ddr/fsl/ddr4_dimm_params.c                      | 1 +
 drivers/ddr/fsl/interactive.c                           | 1 +
 drivers/ddr/fsl/main.c                                  | 1 +
 drivers/ddr/marvell/axp/ddr3_hw_training.c              | 1 +
 drivers/ddr/marvell/axp/ddr3_pbs.c                      | 1 +
 drivers/ddr/marvell/axp/ddr3_spd.c                      | 1 +
 drivers/ddr/marvell/axp/ddr3_write_leveling.c           | 1 +
 drivers/dfu/dfu.c                                       | 1 +
 drivers/dfu/dfu_mmc.c                                   | 1 +
 drivers/dfu/dfu_mtd.c                                   | 1 +
 drivers/dfu/dfu_nand.c                                  | 1 +
 drivers/dfu/dfu_ram.c                                   | 1 +
 drivers/dfu/dfu_sf.c                                    | 1 +
 drivers/dfu/dfu_tftp.c                                  | 1 +
 drivers/dma/apbh_dma.c                                  | 1 +
 drivers/dma/keystone_nav.c                              | 1 +
 drivers/dma/sandbox-dma-test.c                          | 1 +
 drivers/dma/ti-edma3.c                                  | 1 +
 drivers/dma/ti/k3-udma.c                                | 1 +
 drivers/fastboot/fb_command.c                           | 1 +
 drivers/fastboot/fb_common.c                            | 1 +
 drivers/fastboot/fb_getvar.c                            | 1 +
 drivers/fastboot/fb_mmc.c                               | 1 +
 drivers/fastboot/fb_nand.c                              | 1 +
 drivers/firmware/psci.c                                 | 1 +
 drivers/firmware/ti_sci.c                               | 1 +
 drivers/fpga/fpga.c                                     | 1 +
 drivers/fpga/socfpga_arria10.c                          | 1 +
 drivers/fpga/stratix10.c                                | 1 +
 drivers/fpga/versalpl.c                                 | 1 +
 drivers/fpga/xilinx.c                                   | 1 +
 drivers/gpio/74x164_gpio.c                              | 1 +
 drivers/gpio/adi_gpio2.c                                | 1 +
 drivers/gpio/axp_gpio.c                                 | 1 +
 drivers/gpio/da8xx_gpio.c                               | 1 +
 drivers/gpio/gpio-uclass.c                              | 1 +
 drivers/gpio/hi6220_gpio.c                              | 1 +
 drivers/gpio/imx_rgpio2p.c                              | 1 +
 drivers/gpio/intel_gpio.c                               | 1 +
 drivers/gpio/lpc32xx_gpio.c                             | 1 +
 drivers/gpio/mpc83xx_spisel_boot.c                      | 1 +
 drivers/gpio/mpc8xxx_gpio.c                             | 1 +
 drivers/gpio/mxc_gpio.c                                 | 1 +
 drivers/gpio/mxs_gpio.c                                 | 1 +
 drivers/gpio/omap_gpio.c                                | 1 +
 drivers/gpio/pca953x_gpio.c                             | 1 +
 drivers/gpio/pic32_gpio.c                               | 1 +
 drivers/gpio/rk_gpio.c                                  | 1 +
 drivers/gpio/sifive-gpio.c                              | 1 +
 drivers/gpio/sunxi_gpio.c                               | 1 +
 drivers/gpio/xilinx_gpio.c                              | 1 +
 drivers/gpio/zynq_gpio.c                                | 1 +
 drivers/i2c/fsl_i2c.c                                   | 1 +
 drivers/i2c/i2c-uclass.c                                | 1 +
 drivers/i2c/ihs_i2c.c                                   | 1 +
 drivers/i2c/intel_i2c.c                                 | 1 +
 drivers/i2c/lpc32xx_i2c.c                               | 1 +
 drivers/i2c/muxes/i2c-mux-uclass.c                      | 1 +
 drivers/i2c/mv_i2c.c                                    | 1 +
 drivers/i2c/mvtwsi.c                                    | 1 +
 drivers/i2c/stm32f7_i2c.c                               | 1 +
 drivers/i2c/tegra186_bpmp_i2c.c                         | 1 +
 drivers/i2c/tegra_i2c.c                                 | 1 +
 drivers/input/cros_ec_keyb.c                            | 1 +
 drivers/input/i8042.c                                   | 1 +
 drivers/input/input.c                                   | 1 +
 drivers/input/key_matrix.c                              | 1 +
 drivers/input/keyboard-uclass.c                         | 1 +
 drivers/input/tegra-kbc.c                               | 1 +
 drivers/led/led-uclass.c                                | 1 +
 drivers/misc/atsha204a-i2c.c                            | 1 +
 drivers/misc/cbmem_console.c                            | 1 +
 drivers/misc/cros_ec.c                                  | 1 +
 drivers/misc/cros_ec_i2c.c                              | 1 +
 drivers/misc/cros_ec_sandbox.c                          | 1 +
 drivers/misc/cros_ec_spi.c                              | 1 +
 drivers/misc/ds4510.c                                   | 1 +
 drivers/misc/fsl_portals.c                              | 1 +
 drivers/misc/gdsys_ioep.c                               | 1 +
 drivers/misc/i2c_eeprom_emul.c                          | 1 +
 drivers/misc/ihs_fpga.c                                 | 1 +
 drivers/misc/misc_sandbox.c                             | 1 +
 drivers/misc/mpc83xx_serdes.c                           | 1 +
 drivers/misc/qfw.c                                      | 1 +
 drivers/misc/rockchip-efuse.c                           | 1 +
 drivers/misc/sifive-otp.c                               | 1 +
 drivers/misc/tegra186_bpmp.c                            | 1 +
 drivers/misc/vexpress_config.c                          | 1 +
 drivers/mmc/ca_dw_mmc.c                                 | 1 +
 drivers/mmc/davinci_mmc.c                               | 1 +
 drivers/mmc/fsl_esdhc_imx.c                             | 1 +
 drivers/mmc/fsl_esdhc_spl.c                             | 1 +
 drivers/mmc/ftsdc010_mci.c                              | 1 +
 drivers/mmc/iproc_sdhci.c                               | 1 +
 drivers/mmc/meson_gx_mmc.c                              | 1 +
 drivers/mmc/mmc.c                                       | 1 +
 drivers/mmc/mmc_spi.c                                   | 1 +
 drivers/mmc/msm_sdhci.c                                 | 1 +
 drivers/mmc/mv_sdhci.c                                  | 1 +
 drivers/mmc/mxcmmc.c                                    | 1 +
 drivers/mmc/mxsmmc.c                                    | 1 +
 drivers/mmc/pxa_mmc_gen.c                               | 1 +
 drivers/mmc/rpmb.c                                      | 1 +
 drivers/mmc/sandbox_mmc.c                               | 1 +
 drivers/mmc/sdhci.c                                     | 1 +
 drivers/mmc/sh_mmcif.c                                  | 1 +
 drivers/mmc/snps_dw_mmc.c                               | 1 +
 drivers/mmc/sti_sdhci.c                                 | 1 +
 drivers/mmc/sunxi_mmc.c                                 | 1 +
 drivers/mmc/xenon_sdhci.c                               | 1 +
 drivers/mtd/altera_qspi.c                               | 1 +
 drivers/mtd/cfi_flash.c                                 | 1 +
 drivers/mtd/cfi_mtd.c                                   | 1 +
 drivers/mtd/mtd_uboot.c                                 | 1 +
 drivers/mtd/mtdpart.c                                   | 1 +
 drivers/mtd/nand/raw/atmel_nand.c                       | 1 +
 drivers/mtd/nand/raw/brcmnand/brcmnand.c                | 1 +
 drivers/mtd/nand/raw/denali.c                           | 1 +
 drivers/mtd/nand/raw/denali_spl.c                       | 1 +
 drivers/mtd/nand/raw/fsmc_nand.c                        | 1 +
 drivers/mtd/nand/raw/lpc32xx_nand_mlc.c                 | 1 +
 drivers/mtd/nand/raw/mxs_nand.c                         | 1 +
 drivers/mtd/nand/raw/mxs_nand_spl.c                     | 1 +
 drivers/mtd/nand/raw/nand_base.c                        | 1 +
 drivers/mtd/nand/raw/nand_bch.c                         | 1 +
 drivers/mtd/nand/raw/nand_spl_loaders.c                 | 1 +
 drivers/mtd/nand/raw/nand_util.c                        | 1 +
 drivers/mtd/nand/raw/omap_gpmc.c                        | 1 +
 drivers/mtd/nand/raw/pxa3xx_nand.c                      | 1 +
 drivers/mtd/nand/raw/sunxi_nand.c                       | 1 +
 drivers/mtd/nand/raw/sunxi_nand_spl.c                   | 1 +
 drivers/mtd/nand/raw/tegra_nand.c                       | 1 +
 drivers/mtd/nand/raw/vf610_nfc.c                        | 1 +
 drivers/mtd/nand/spi/core.c                             | 1 +
 drivers/mtd/onenand/onenand_base.c                      | 1 +
 drivers/mtd/onenand/onenand_bbt.c                       | 1 +
 drivers/mtd/onenand/onenand_spl.c                       | 1 +
 drivers/mtd/onenand/onenand_uboot.c                     | 1 +
 drivers/mtd/onenand/samsung.c                           | 1 +
 drivers/mtd/pic32_flash.c                               | 1 +
 drivers/mtd/spi/fsl_espi_spl.c                          | 1 +
 drivers/mtd/spi/sandbox.c                               | 1 +
 drivers/mtd/spi/sf-uclass.c                             | 1 +
 drivers/mtd/spi/sf_dataflash.c                          | 1 +
 drivers/mtd/spi/sf_mtd.c                                | 1 +
 drivers/mtd/spi/sf_probe.c                              | 1 +
 drivers/mtd/spi/spi-nor-core.c                          | 1 +
 drivers/mtd/spi/spi-nor-tiny.c                          | 1 +
 drivers/mtd/ubi/attach.c                                | 1 +
 drivers/mtd/ubi/build.c                                 | 1 +
 drivers/mtd/ubi/debug.c                                 | 1 +
 drivers/mtd/ubi/eba.c                                   | 1 +
 drivers/mtd/ubi/fastmap.c                               | 1 +
 drivers/mtd/ubi/io.c                                    | 1 +
 drivers/mtd/ubi/kapi.c                                  | 1 +
 drivers/mtd/ubi/upd.c                                   | 1 +
 drivers/mtd/ubi/vmt.c                                   | 1 +
 drivers/mtd/ubi/vtbl.c                                  | 1 +
 drivers/mtd/ubispl/ubispl.c                             | 1 +
 drivers/net/ag7xxx.c                                    | 1 +
 drivers/net/altera_tse.c                                | 1 +
 drivers/net/armada100_fec.c                             | 1 +
 drivers/net/at91_emac.c                                 | 1 +
 drivers/net/ax88180.c                                   | 1 +
 drivers/net/bcm-sf2-eth-gmac.c                          | 1 +
 drivers/net/bcm-sf2-eth.c                               | 1 +
 drivers/net/bcm6368-eth.c                               | 1 +
 drivers/net/calxedaxgmac.c                              | 1 +
 drivers/net/dc2114x.c                                   | 1 +
 drivers/net/designware.c                                | 1 +
 drivers/net/dm9000x.c                                   | 1 +
 drivers/net/dnet.c                                      | 1 +
 drivers/net/dwc_eth_qos.c                               | 1 +
 drivers/net/e1000.c                                     | 1 +
 drivers/net/e1000_spi.c                                 | 1 +
 drivers/net/eepro100.c                                  | 1 +
 drivers/net/ep93xx_eth.c                                | 1 +
 drivers/net/ethoc.c                                     | 1 +
 drivers/net/fec_mxc.c                                   | 1 +
 drivers/net/fm/eth.c                                    | 1 +
 drivers/net/fm/fm.c                                     | 1 +
 drivers/net/fm/init.c                                   | 1 +
 drivers/net/fm/memac_phy.c                              | 1 +
 drivers/net/fm/tgec_phy.c                               | 1 +
 drivers/net/fsl-mc/dpio/qbman_portal.c                  | 1 +
 drivers/net/fsl-mc/dpio/qbman_sys.h                     | 1 +
 drivers/net/fsl-mc/mc.c                                 | 1 +
 drivers/net/fsl_enetc.c                                 | 1 +
 drivers/net/fsl_mcdmafec.c                              | 1 +
 drivers/net/fsl_mdio.c                                  | 1 +
 drivers/net/ftmac100.c                                  | 1 +
 drivers/net/ftmac110.c                                  | 1 +
 drivers/net/gmac_rockchip.c                             | 1 +
 drivers/net/higmacv300.c                                | 1 +
 drivers/net/lan91c96.c                                  | 1 +
 drivers/net/ldpaa_eth/ldpaa_eth.c                       | 1 +
 drivers/net/lpc32xx_eth.c                               | 1 +
 drivers/net/macb.c                                      | 1 +
 drivers/net/mcffec.c                                    | 1 +
 drivers/net/mcfmii.c                                    | 1 +
 drivers/net/mpc8xx_fec.c                                | 1 +
 drivers/net/mscc_eswitch/jr2_switch.c                   | 1 +
 drivers/net/mscc_eswitch/luton_switch.c                 | 1 +
 drivers/net/mscc_eswitch/ocelot_switch.c                | 1 +
 drivers/net/mscc_eswitch/serval_switch.c                | 1 +
 drivers/net/mscc_eswitch/servalt_switch.c               | 1 +
 drivers/net/mt7628-eth.c                                | 1 +
 drivers/net/mtk_eth.c                                   | 1 +
 drivers/net/mvgbe.c                                     | 1 +
 drivers/net/mvneta.c                                    | 1 +
 drivers/net/mvpp2.c                                     | 1 +
 drivers/net/natsemi.c                                   | 1 +
 drivers/net/ne2000_base.c                               | 1 +
 drivers/net/netconsole.c                                | 1 +
 drivers/net/ns8382x.c                                   | 1 +
 drivers/net/pch_gbe.c                                   | 1 +
 drivers/net/pcnet.c                                     | 1 +
 drivers/net/pfe_eth/pfe_cmd.c                           | 1 +
 drivers/net/pfe_eth/pfe_driver.c                        | 1 +
 drivers/net/pfe_eth/pfe_firmware.c                      | 1 +
 drivers/net/pfe_eth/pfe_hw.c                            | 1 +
 drivers/net/phy/aquantia.c                              | 1 +
 drivers/net/phy/atheros.c                               | 1 +
 drivers/net/phy/b53.c                                   | 1 +
 drivers/net/phy/fixed.c                                 | 1 +
 drivers/net/phy/miiphybb.c                              | 1 +
 drivers/net/phy/mv88e61xx.c                             | 1 +
 drivers/net/phy/mv88e6352.c                             | 1 +
 drivers/net/phy/ncsi.c                                  | 1 +
 drivers/net/phy/phy.c                                   | 1 +
 drivers/net/pic32_mdio.c                                | 1 +
 drivers/net/ravb.c                                      | 1 +
 drivers/net/rtl8139.c                                   | 1 +
 drivers/net/rtl8169.c                                   | 1 +
 drivers/net/sandbox-raw-bus.c                           | 1 +
 drivers/net/sandbox-raw.c                               | 1 +
 drivers/net/sandbox.c                                   | 1 +
 drivers/net/sh_eth.c                                    | 1 +
 drivers/net/smc91111.c                                  | 1 +
 drivers/net/smc911x.c                                   | 1 +
 drivers/net/sni_ave.c                                   | 1 +
 drivers/net/sun8i_emac.c                                | 1 +
 drivers/net/sunxi_emac.c                                | 1 +
 drivers/net/ti/cpsw-common.c                            | 1 +
 drivers/net/ti/cpsw.c                                   | 1 +
 drivers/net/ti/davinci_emac.c                           | 1 +
 drivers/net/tsec.c                                      | 1 +
 drivers/net/uli526x.c                                   | 1 +
 drivers/net/xilinx_axi_emac.c                           | 1 +
 drivers/net/zynq_gem.c                                  | 1 +
 drivers/nvme/nvme.c                                     | 1 +
 drivers/pci/fsl_pci_init.c                              | 1 +
 drivers/pci/pci-uclass.c                                | 1 +
 drivers/pci/pci_ftpci100.c                              | 1 +
 drivers/pci/pci_rom.c                                   | 1 +
 drivers/pci/pci_tegra.c                                 | 1 +
 drivers/pci/pcie_imx.c                                  | 1 +
 drivers/pci/pcie_layerscape_fixup_common.c              | 1 +
 drivers/pci_endpoint/sandbox-pci_ep.c                   | 1 +
 drivers/phy/allwinner/phy-sun4i-usb.c                   | 1 +
 drivers/phy/rockchip/phy-rockchip-inno-usb2.c           | 1 +
 drivers/phy/rockchip/phy-rockchip-typec.c               | 1 +
 drivers/pinctrl/exynos/pinctrl-exynos.c                 | 1 +
 drivers/pinctrl/mtmips/pinctrl-mtmips-common.c          | 1 +
 drivers/pinctrl/mvebu/pinctrl-armada-37xx.c             | 1 +
 drivers/pinctrl/pinctrl-generic.c                       | 1 +
 drivers/pinctrl/pinctrl-sandbox.c                       | 1 +
 drivers/pinctrl/pinctrl-stmfx.c                         | 1 +
 drivers/pinctrl/rockchip/pinctrl-rockchip-core.c        | 1 +
 drivers/power/domain/imx8-power-domain-legacy.c         | 1 +
 drivers/power/pmic/i2c_pmic_emul.c                      | 1 +
 drivers/power/pmic/palmas.c                             | 1 +
 drivers/power/pmic/pmic-uclass.c                        | 1 +
 drivers/power/power_core.c                              | 1 +
 drivers/power/power_i2c.c                               | 1 +
 drivers/power/regulator/bd71837.c                       | 1 +
 drivers/power/regulator/da9063.c                        | 1 +
 drivers/power/regulator/palmas_regulator.c              | 1 +
 drivers/power/regulator/pfuze100.c                      | 1 +
 drivers/power/regulator/regulator-uclass.c              | 1 +
 drivers/qe/qe.c                                         | 1 +
 drivers/qe/uccf.c                                       | 1 +
 drivers/qe/uec.c                                        | 1 +
 drivers/qe/uec_phy.c                                    | 1 +
 drivers/ram/imxrt_sdram.c                               | 1 +
 drivers/ram/rockchip/sdram_rk3188.c                     | 1 +
 drivers/ram/rockchip/sdram_rk322x.c                     | 1 +
 drivers/ram/rockchip/sdram_rk3288.c                     | 1 +
 drivers/ram/rockchip/sdram_rk3328.c                     | 1 +
 drivers/ram/stm32_sdram.c                               | 1 +
 drivers/ram/stm32mp1/stm32mp1_ddr.c                     | 1 +
 drivers/ram/stm32mp1/stm32mp1_interactive.c             | 1 +
 drivers/ram/stm32mp1/stm32mp1_ram.c                     | 1 +
 drivers/ram/stm32mp1/stm32mp1_tests.c                   | 1 +
 drivers/ram/stm32mp1/stm32mp1_tuning.c                  | 1 +
 drivers/remoteproc/k3_system_controller.c               | 1 +
 drivers/remoteproc/rproc-elf-loader.c                   | 1 +
 drivers/remoteproc/rproc-uclass.c                       | 1 +
 drivers/remoteproc/ti_k3_dsp_rproc.c                    | 1 +
 drivers/remoteproc/ti_k3_r5f_rproc.c                    | 1 +
 drivers/remoteproc/ti_power_proc.c                      | 1 +
 drivers/rng/meson-rng.c                                 | 1 +
 drivers/rng/stm32mp1_rng.c                              | 1 +
 drivers/rtc/ds1302.c                                    | 1 +
 drivers/rtc/i2c_rtc_emul.c                              | 1 +
 drivers/rtc/rs5c372.c                                   | 1 +
 drivers/scsi/scsi.c                                     | 1 +
 drivers/serial/sandbox.c                                | 1 +
 drivers/serial/serial-uclass.c                          | 1 +
 drivers/serial/serial.c                                 | 1 +
 drivers/serial/usbtty.c                                 | 1 +
 drivers/smem/msm_smem.c                                 | 1 +
 drivers/soc/soc-uclass.c                                | 1 +
 drivers/soc/ti/k3-navss-ringacc.c                       | 1 +
 drivers/spi/atcspi200_spi.c                             | 1 +
 drivers/spi/bcmstb_spi.c                                | 1 +
 drivers/spi/cadence_qspi_apb.c                          | 1 +
 drivers/spi/cf_spi.c                                    | 1 +
 drivers/spi/fsl_espi.c                                  | 1 +
 drivers/spi/fsl_qspi.c                                  | 1 +
 drivers/spi/ich.c                                       | 1 +
 drivers/spi/meson_spifc.c                               | 1 +
 drivers/spi/mtk_snfi_spi.c                              | 1 +
 drivers/spi/mxc_spi.c                                   | 1 +
 drivers/spi/mxs_spi.c                                   | 1 +
 drivers/spi/nxp_fspi.c                                  | 1 +
 drivers/spi/renesas_rpc_spi.c                           | 1 +
 drivers/spi/spi-mem-nodm.c                              | 1 +
 drivers/spi/spi-mem.c                                   | 1 +
 drivers/spi/spi-sifive.c                                | 1 +
 drivers/spi/spi.c                                       | 1 +
 drivers/spi/tegra210_qspi.c                             | 1 +
 drivers/spi/zynq_qspi.c                                 | 1 +
 drivers/spi/zynqmp_gqspi.c                              | 1 +
 drivers/sysreset/sysreset_sandbox.c                     | 1 +
 drivers/tee/broadcom/chimp_optee.c                      | 1 +
 drivers/tee/optee/core.c                                | 1 +
 drivers/tee/sandbox.c                                   | 1 +
 drivers/tee/tee-uclass.c                                | 1 +
 drivers/thermal/imx_scu_thermal.c                       | 1 +
 drivers/thermal/imx_tmu.c                               | 1 +
 drivers/tpm/cr50_i2c.c                                  | 1 +
 drivers/tpm/tpm-uclass.c                                | 1 +
 drivers/tpm/tpm2_ftpm_tee.c                             | 1 +
 drivers/tpm/tpm2_tis_sandbox.c                          | 1 +
 drivers/tpm/tpm2_tis_spi.c                              | 1 +
 drivers/tpm/tpm_atmel_twi.c                             | 1 +
 drivers/tpm/tpm_tis_infineon.c                          | 1 +
 drivers/tpm/tpm_tis_lpc.c                               | 1 +
 drivers/tpm/tpm_tis_sandbox.c                           | 1 +
 drivers/tpm/tpm_tis_st33zp24_i2c.c                      | 1 +
 drivers/tpm/tpm_tis_st33zp24_spi.c                      | 1 +
 drivers/ufs/ufs.c                                       | 2 ++
 drivers/usb/cdns3/gadget.c                              | 1 +
 drivers/usb/common/common.c                             | 1 +
 drivers/usb/common/fsl-dt-fixup.c                       | 1 +
 drivers/usb/dwc3/ep0.c                                  | 1 +
 drivers/usb/dwc3/gadget.c                               | 1 +
 drivers/usb/dwc3/linux-compat.h                         | 1 +
 drivers/usb/emul/sandbox_flash.c                        | 1 +
 drivers/usb/emul/sandbox_keyb.c                         | 1 +
 drivers/usb/emul/usb-emul-uclass.c                      | 1 +
 drivers/usb/eth/asix.c                                  | 1 +
 drivers/usb/eth/asix88179.c                             | 1 +
 drivers/usb/eth/lan75xx.c                               | 1 +
 drivers/usb/eth/lan78xx.c                               | 1 +
 drivers/usb/eth/lan7x.c                                 | 1 +
 drivers/usb/eth/mcs7830.c                               | 1 +
 drivers/usb/eth/r8152.c                                 | 1 +
 drivers/usb/eth/smsc95xx.c                              | 1 +
 drivers/usb/eth/usb_ether.c                             | 1 +
 drivers/usb/gadget/at91_udc.c                           | 1 +
 drivers/usb/gadget/atmel_usba_udc.c                     | 1 +
 drivers/usb/gadget/ci_udc.c                             | 1 +
 drivers/usb/gadget/composite.c                          | 1 +
 drivers/usb/gadget/designware_udc.c                     | 1 +
 drivers/usb/gadget/dwc2_udc_otg.c                       | 1 +
 drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c              | 1 +
 drivers/usb/gadget/epautoconf.c                         | 1 +
 drivers/usb/gadget/ether.c                              | 1 +
 drivers/usb/gadget/f_dfu.c                              | 1 +
 drivers/usb/gadget/f_fastboot.c                         | 1 +
 drivers/usb/gadget/f_mass_storage.c                     | 1 +
 drivers/usb/gadget/f_rockusb.c                          | 1 +
 drivers/usb/gadget/f_sdp.c                              | 1 +
 drivers/usb/gadget/f_thor.c                             | 1 +
 drivers/usb/gadget/fotg210.c                            | 1 +
 drivers/usb/gadget/g_dnl.c                              | 1 +
 drivers/usb/gadget/gadget_chips.h                       | 2 ++
 drivers/usb/gadget/pxa25x_udc.c                         | 1 +
 drivers/usb/gadget/rndis.c                              | 1 +
 drivers/usb/gadget/usbstring.c                          | 1 +
 drivers/usb/host/dwc2.c                                 | 1 +
 drivers/usb/host/ehci-fsl.c                             | 1 +
 drivers/usb/host/ehci-hcd.c                             | 1 +
 drivers/usb/host/ehci-mx5.c                             | 1 +
 drivers/usb/host/ehci-omap.c                            | 1 +
 drivers/usb/host/ehci-tegra.c                           | 1 +
 drivers/usb/host/ehci-vf.c                              | 1 +
 drivers/usb/host/ohci-hcd.c                             | 1 +
 drivers/usb/host/r8a66597-hcd.c                         | 1 +
 drivers/usb/host/r8a66597.h                             | 1 +
 drivers/usb/host/sl811-hcd.c                            | 1 +
 drivers/usb/host/usb-uclass.c                           | 1 +
 drivers/usb/host/xhci-dwc3.c                            | 1 +
 drivers/usb/host/xhci-mem.c                             | 1 +
 drivers/usb/host/xhci.c                                 | 1 +
 drivers/usb/musb-new/am35x.c                            | 1 +
 drivers/usb/musb-new/mt85xx.c                           | 1 +
 drivers/usb/musb-new/musb_core.c                        | 1 +
 drivers/usb/musb-new/musb_gadget.c                      | 1 +
 drivers/usb/musb-new/musb_uboot.c                       | 1 +
 drivers/usb/musb-new/pic32.c                            | 1 +
 drivers/usb/musb-new/sunxi.c                            | 1 +
 drivers/usb/musb-new/ti-musb.c                          | 1 +
 drivers/usb/musb/am35x.c                                | 1 +
 drivers/usb/musb/musb_hcd.c                             | 1 +
 drivers/video/am335x-fb.c                               | 1 +
 drivers/video/ati_radeon_fb.c                           | 1 +
 drivers/video/bridge/anx6345.c                          | 1 +
 drivers/video/cfb_console.c                             | 1 +
 drivers/video/console_truetype.c                        | 1 +
 drivers/video/da8xx-fb.c                                | 1 +
 drivers/video/dw_hdmi.c                                 | 1 +
 drivers/video/dw_mipi_dsi.c                             | 1 +
 drivers/video/exynos/exynos_dp.c                        | 1 +
 drivers/video/exynos/exynos_mipi_dsi.c                  | 1 +
 drivers/video/fsl_dcu_fb.c                              | 1 +
 drivers/video/fsl_diu_fb.c                              | 1 +
 drivers/video/ihs_video_out.c                           | 1 +
 drivers/video/imx/ipu_common.c                          | 1 +
 drivers/video/lg4573.c                                  | 1 +
 drivers/video/logicore_dp_tx.c                          | 1 +
 drivers/video/mali_dp.c                                 | 1 +
 drivers/video/meson/meson_venc.c                        | 1 +
 drivers/video/mipi_dsi.c                                | 1 +
 drivers/video/mx3fb.c                                   | 1 +
 drivers/video/mxsfb.c                                   | 1 +
 drivers/video/orisetech_otm8009a.c                      | 1 +
 drivers/video/raydium-rm68200.c                         | 1 +
 drivers/video/rockchip/rk_edp.c                         | 1 +
 drivers/video/sandbox_osd.c                             | 1 +
 drivers/video/simplefb.c                                | 1 +
 drivers/video/stb_truetype.h                            | 2 ++
 drivers/video/sunxi/sunxi_de2.c                         | 1 +
 drivers/video/sunxi/sunxi_display.c                     | 1 +
 drivers/video/sunxi/sunxi_lcd.c                         | 1 +
 drivers/video/tegra124/dp.c                             | 1 +
 drivers/video/vidconsole-uclass.c                       | 1 +
 drivers/video/video-uclass.c                            | 1 +
 drivers/video/videomodes.c                              | 1 +
 drivers/virtio/virtio-uclass.c                          | 1 +
 drivers/virtio/virtio_mmio.c                            | 1 +
 drivers/virtio/virtio_net.c                             | 1 +
 drivers/virtio/virtio_pci_modern.c                      | 1 +
 drivers/virtio/virtio_ring.c                            | 1 +
 drivers/virtio/virtio_rng.c                             | 1 +
 drivers/w1-eeprom/ds2502.c                              | 1 +
 drivers/w1-eeprom/eep_sandbox.c                         | 1 +
 drivers/watchdog/mpc8xx_wdt.c                           | 1 +
 env/callback.c                                          | 1 +
 env/common.c                                            | 1 +
 env/ext4.c                                              | 1 +
 env/fat.c                                               | 1 +
 env/flash.c                                             | 1 +
 env/mmc.c                                               | 1 +
 env/nvram.c                                             | 1 +
 env/ubi.c                                               | 1 +
 examples/api/demo.c                                     | 1 +
 examples/api/glue.c                                     | 1 +
 examples/standalone/atmel_df_pow2.c                     | 1 +
 fs/btrfs/super.c                                        | 1 +
 fs/cbfs/cbfs.c                                          | 1 +
 fs/cramfs/cramfs.c                                      | 1 +
 fs/ext4/ext4_common.c                                   | 1 +
 fs/ext4/ext4_common.h                                   | 1 +
 fs/ext4/ext4_journal.c                                  | 1 +
 fs/ext4/ext4_write.c                                    | 1 +
 fs/ext4/ext4fs.c                                        | 1 +
 fs/fat/fat.c                                            | 1 +
 fs/fat/fat_write.c                                      | 1 +
 fs/fs.c                                                 | 1 +
 fs/fs_internal.c                                        | 1 +
 fs/jffs2/compr_zlib.c                                   | 1 +
 fs/jffs2/jffs2_1pass.c                                  | 1 +
 fs/jffs2/mini_inflate.c                                 | 1 +
 fs/reiserfs/reiserfs.c                                  | 1 +
 fs/ubifs/debug.c                                        | 1 +
 fs/ubifs/io.c                                           | 1 +
 fs/ubifs/key.h                                          | 1 +
 fs/ubifs/log.c                                          | 1 +
 fs/ubifs/lprops.c                                       | 1 +
 fs/ubifs/lpt_commit.c                                   | 1 +
 fs/ubifs/recovery.c                                     | 1 +
 fs/ubifs/replay.c                                       | 1 +
 fs/ubifs/super.c                                        | 1 +
 fs/ubifs/tnc.c                                          | 1 +
 fs/ubifs/ubifs.c                                        | 1 +
 fs/yaffs2/yaffs_mtdif2.c                                | 1 +
 fs/yaffs2/yaffs_uboot_glue.c                            | 1 +
 fs/yaffs2/yaffsfs.c                                     | 1 +
 fs/yaffs2/ydirectenv.h                                  | 1 +
 fs/zfs/zfs.c                                            | 1 +
 include/common.h                                        | 1 -
 include/dm/of.h                                         | 1 +
 include/exception.h                                     | 1 +
 include/exports.h                                       | 1 +
 include/fdt_support.h                                   | 1 +
 include/imx8image.h                                     | 1 +
 include/malloc.h                                        | 2 +-
 include/net.h                                           | 1 +
 include/spi_flash.h                                     | 1 +
 include/test/ut.h                                       | 1 +
 include/tlv_eeprom.h                                    | 1 +
 include/video_console.h                                 | 1 +
 lib/acpi/acpi_device.c                                  | 1 +
 lib/acpi/acpi_dp.c                                      | 1 +
 lib/acpi/acpi_table.c                                   | 1 +
 lib/acpi/acpigen.c                                      | 1 +
 lib/aes.c                                               | 1 +
 lib/aes/aes-decrypt.c                                   | 1 +
 lib/bch.c                                               | 1 +
 lib/bzip2/bzlib.c                                       | 1 +
 lib/charset.c                                           | 1 +
 lib/crc16.c                                             | 1 +
 lib/crc32.c                                             | 1 +
 lib/crypto/pkcs7_verify.c                               | 1 +
 lib/crypto/public_key.c                                 | 1 +
 lib/crypto/x509_public_key.c                            | 1 +
 lib/dhry/dhry_1.c                                       | 1 +
 lib/dhry/dhry_2.c                                       | 1 +
 lib/efi/efi_app.c                                       | 1 +
 lib/efi/efi_stub.c                                      | 1 +
 lib/efi_loader/efi_bootmgr.c                            | 1 +
 lib/efi_loader/efi_boottime.c                           | 1 +
 lib/efi_loader/efi_console.c                            | 1 +
 lib/efi_loader/efi_device_path.c                        | 1 +
 lib/efi_loader/efi_device_path_to_text.c                | 1 +
 lib/efi_loader/efi_disk.c                               | 1 +
 lib/efi_loader/efi_file.c                               | 1 +
 lib/efi_loader/efi_freestanding.c                       | 1 +
 lib/efi_loader/efi_gop.c                                | 1 +
 lib/efi_loader/efi_hii.c                                | 1 +
 lib/efi_loader/efi_image_loader.c                       | 1 +
 lib/efi_loader/efi_load_initrd.c                        | 1 +
 lib/efi_loader/efi_net.c                                | 1 +
 lib/efi_loader/efi_runtime.c                            | 1 +
 lib/efi_loader/efi_setup.c                              | 1 +
 lib/efi_loader/efi_signature.c                          | 1 +
 lib/efi_loader/efi_unicode_collation.c                  | 1 +
 lib/efi_loader/efi_var_file.c                           | 1 +
 lib/efi_loader/efi_var_mem.c                            | 1 +
 lib/efi_loader/efi_variable.c                           | 1 +
 lib/efi_loader/efi_variable_tee.c                       | 1 +
 lib/efi_loader/helloworld.c                             | 1 +
 lib/efi_selftest/efi_selftest_block_device.c            | 1 +
 lib/efi_selftest/efi_selftest_config_table.c            | 1 +
 lib/efi_selftest/efi_selftest_load_initrd.c             | 1 +
 lib/efi_selftest/efi_selftest_loaded_image.c            | 1 +
 lib/efi_selftest/efi_selftest_loadimage.c               | 1 +
 lib/efi_selftest/efi_selftest_manageprotocols.c         | 1 +
 lib/efi_selftest/efi_selftest_mem.c                     | 1 +
 lib/efi_selftest/efi_selftest_memory.c                  | 1 +
 lib/efi_selftest/efi_selftest_rng.c                     | 1 +
 lib/efi_selftest/efi_selftest_set_virtual_address_map.c | 1 +
 lib/efi_selftest/efi_selftest_snp.c                     | 1 +
 lib/efi_selftest/efi_selftest_startimage_exit.c         | 1 +
 lib/efi_selftest/efi_selftest_variables.c               | 1 +
 lib/efi_selftest/efi_selftest_variables_runtime.c       | 1 +
 lib/elf.c                                               | 1 +
 lib/fdtdec.c                                            | 1 +
 lib/fdtdec_test.c                                       | 1 +
 lib/gunzip.c                                            | 1 +
 lib/libavb/avb_sysdeps_posix.c                          | 1 +
 lib/linux_compat.c                                      | 1 +
 lib/list_sort.c                                         | 1 +
 lib/lz4.c                                               | 1 +
 lib/lz4_wrapper.c                                       | 1 +
 lib/lzo/lzo1x_decompress.c                              | 1 +
 lib/membuff.c                                           | 1 +
 lib/of_live.c                                           | 1 +
 lib/optee/optee.c                                       | 1 +
 lib/physmem.c                                           | 1 +
 lib/qsort.c                                             | 1 +
 lib/rsa/rsa-keyprop.c                                   | 1 +
 lib/rsa/rsa-mod-exp.c                                   | 1 +
 lib/rsa/rsa-verify.c                                    | 1 +
 lib/slre.c                                              | 1 +
 lib/smbios.c                                            | 1 +
 lib/strto.c                                             | 1 +
 lib/tpm-common.c                                        | 1 +
 lib/tpm-v1.c                                            | 1 +
 lib/tpm-v2.c                                            | 1 +
 lib/trace.c                                             | 1 +
 lib/uuid.c                                              | 1 +
 lib/zstd/zstd_opt.h                                     | 1 +
 net/arp.c                                               | 1 +
 net/bootp.c                                             | 1 +
 net/cdp.c                                               | 1 +
 net/dns.c                                               | 1 +
 net/eth-uclass.c                                        | 1 +
 net/eth_common.c                                        | 1 +
 net/eth_legacy.c                                        | 1 +
 net/fastboot.c                                          | 1 +
 net/link_local.c                                        | 1 +
 net/mdio-uclass.c                                       | 1 +
 net/net.c                                               | 1 +
 net/net_rand.h                                          | 1 +
 net/nfs.c                                               | 1 +
 net/pcap.c                                              | 1 +
 net/rarp.c                                              | 1 +
 net/sntp.c                                              | 1 +
 net/tftp.c                                              | 1 +
 net/wol.c                                               | 1 +
 post/drivers/flash.c                                    | 1 +
 post/lib_powerpc/multi.c                                | 1 +
 post/lib_powerpc/string.c                               | 1 +
 post/post.c                                             | 1 +
 1228 files changed, 1232 insertions(+), 4 deletions(-)

diff --git a/api/api.c b/api/api.c
index 2e955f7baf24..05f0203584df 100644
--- a/api/api.c
+++ b/api/api.c
@@ -13,6 +13,7 @@
 #include <env_internal.h>
 #include <time.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <linux/types.h>
 #include <api_public.h>
 #include <u-boot/crc.h>
diff --git a/api/api_net.c b/api/api_net.c
index 7515c26e8b44..63ac3ee09c74 100644
--- a/api/api_net.c
+++ b/api/api_net.c
@@ -8,6 +8,7 @@
 #include <config.h>
 #include <common.h>
 #include <net.h>
+#include <linux/string.h>
 #include <linux/types.h>
 #include <api_public.h>
 
diff --git a/arch/arc/lib/relocate.c b/arch/arc/lib/relocate.c
index 7f531c95eec6..a1663c1eb393 100644
--- a/arch/arc/lib/relocate.c
+++ b/arch/arc/lib/relocate.c
@@ -8,6 +8,7 @@
 #include <log.h>
 #include <asm-generic/sections.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 extern ulong __image_copy_start;
 extern ulong __ivt_start;
diff --git a/arch/arm/cpu/arm1136/mx35/generic.c b/arch/arm/cpu/arm1136/mx35/generic.c
index cbf76ab4feec..99e7ec0744fb 100644
--- a/arch/arm/cpu/arm1136/mx35/generic.c
+++ b/arch/arm/cpu/arm1136/mx35/generic.c
@@ -24,6 +24,7 @@
 #endif
 #include <netdev.h>
 #include <spl.h>
+#include <linux/string.h>
 
 #define CLK_CODE(arm, ahb, sel) (((arm) << 16) + ((ahb) << 8) + (sel))
 #define CLK_CODE_ARM(c)		(((c) >> 16) & 0xFF)
diff --git a/arch/arm/cpu/arm926ejs/mxs/mxs.c b/arch/arm/cpu/arm926ejs/mxs/mxs.c
index c9362136fbf9..91ea4f02d02e 100644
--- a/arch/arm/cpu/arm926ejs/mxs/mxs.c
+++ b/arch/arm/cpu/arm926ejs/mxs/mxs.c
@@ -26,6 +26,7 @@
 #include <asm/arch/imx-regs.h>
 #include <asm/arch/sys_proto.h>
 #include <linux/compiler.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/arm/cpu/arm926ejs/mxs/spl_boot.c b/arch/arm/cpu/arm926ejs/mxs/spl_boot.c
index a16a15e79d83..35f503f93b06 100644
--- a/arch/arm/cpu/arm926ejs/mxs/spl_boot.c
+++ b/arch/arm/cpu/arm926ejs/mxs/spl_boot.c
@@ -17,6 +17,7 @@
 #include <asm/arch/sys_proto.h>
 #include <asm/gpio.h>
 #include <linux/compiler.h>
+#include <linux/string.h>
 
 #include "mxs_init.h"
 
diff --git a/arch/arm/cpu/arm926ejs/spear/cpu.c b/arch/arm/cpu/arm926ejs/spear/cpu.c
index 21065410746b..93fd7a6d8dfd 100644
--- a/arch/arm/cpu/arm926ejs/spear/cpu.c
+++ b/arch/arm/cpu/arm926ejs/spear/cpu.c
@@ -10,6 +10,7 @@
 #include <asm/io.h>
 #include <asm/arch/hardware.h>
 #include <asm/arch/spr_misc.h>
+#include <linux/string.h>
 
 int arch_cpu_init(void)
 {
diff --git a/arch/arm/cpu/arm926ejs/spear/spr_misc.c b/arch/arm/cpu/arm926ejs/spear/spr_misc.c
index 044052b32f93..a910b7134f38 100644
--- a/arch/arm/cpu/arm926ejs/spear/spr_misc.c
+++ b/arch/arm/cpu/arm926ejs/spear/spr_misc.c
@@ -17,6 +17,7 @@
 #include <asm/arch/hardware.h>
 #include <asm/arch/spr_emi.h>
 #include <asm/arch/spr_defs.h>
+#include <linux/string.h>
 
 #define CPU		0
 #define DDR		1
diff --git a/arch/arm/cpu/armv7/bcm235xx/clk-bcm235xx.c b/arch/arm/cpu/armv7/bcm235xx/clk-bcm235xx.c
index 39217c5b2bf1..abdbcb068ee9 100644
--- a/arch/arm/cpu/armv7/bcm235xx/clk-bcm235xx.c
+++ b/arch/arm/cpu/armv7/bcm235xx/clk-bcm235xx.c
@@ -14,6 +14,7 @@
 #include <linux/errno.h>
 #include <asm/arch/sysmap.h>
 #include <asm/kona-common/clk.h>
+#include <linux/string.h>
 #include "clk-core.h"
 
 #define CLOCK_1K		1000
diff --git a/arch/arm/cpu/armv7/bcm235xx/clk-core.c b/arch/arm/cpu/armv7/bcm235xx/clk-core.c
index d7edefee2318..a6bd627e20e4 100644
--- a/arch/arm/cpu/armv7/bcm235xx/clk-core.c
+++ b/arch/arm/cpu/armv7/bcm235xx/clk-core.c
@@ -17,6 +17,7 @@
 #include <bitfield.h>
 #include <asm/arch/sysmap.h>
 #include <asm/kona-common/clk.h>
+#include <linux/string.h>
 #include "clk-core.h"
 
 #define CLK_WR_ACCESS_PASSWORD	0x00a5a501
diff --git a/arch/arm/cpu/armv7/bcm281xx/clk-bcm281xx.c b/arch/arm/cpu/armv7/bcm281xx/clk-bcm281xx.c
index 8f6260e7857e..ee0e75304807 100644
--- a/arch/arm/cpu/armv7/bcm281xx/clk-bcm281xx.c
+++ b/arch/arm/cpu/armv7/bcm281xx/clk-bcm281xx.c
@@ -14,6 +14,7 @@
 #include <linux/errno.h>
 #include <asm/arch/sysmap.h>
 #include <asm/kona-common/clk.h>
+#include <linux/string.h>
 #include "clk-core.h"
 
 #define CLOCK_1K		1000
diff --git a/arch/arm/cpu/armv7/bcm281xx/clk-core.c b/arch/arm/cpu/armv7/bcm281xx/clk-core.c
index 26b673a5405e..a70979d09331 100644
--- a/arch/arm/cpu/armv7/bcm281xx/clk-core.c
+++ b/arch/arm/cpu/armv7/bcm281xx/clk-core.c
@@ -17,6 +17,7 @@
 #include <bitfield.h>
 #include <asm/arch/sysmap.h>
 #include <asm/kona-common/clk.h>
+#include <linux/string.h>
 #include "clk-core.h"
 
 #define CLK_WR_ACCESS_PASSWORD	0x00a5a501
diff --git a/arch/arm/cpu/armv7/ls102xa/fdt.c b/arch/arm/cpu/armv7/ls102xa/fdt.c
index d1d09f936500..b2e80751a98c 100644
--- a/arch/arm/cpu/armv7/ls102xa/fdt.c
+++ b/arch/arm/cpu/armv7/ls102xa/fdt.c
@@ -20,6 +20,7 @@
 #include <asm/arch/immap_ls102xa.h>
 #include <fsl_sec.h>
 #include <dm.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/arm/cpu/armv7/vf610/generic.c b/arch/arm/cpu/armv7/vf610/generic.c
index c23ddc12b456..3f266178c98f 100644
--- a/arch/arm/cpu/armv7/vf610/generic.c
+++ b/arch/arm/cpu/armv7/vf610/generic.c
@@ -21,6 +21,7 @@
 #ifdef CONFIG_FSL_ESDHC_IMX
 #include <fsl_esdhc_imx.h>
 #endif
+#include <linux/string.h>
 
 #ifdef CONFIG_FSL_ESDHC_IMX
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/arch/arm/cpu/armv7/virt-v7.c b/arch/arm/cpu/armv7/virt-v7.c
index 5ffeca13d913..8731af9f6871 100644
--- a/arch/arm/cpu/armv7/virt-v7.c
+++ b/arch/arm/cpu/armv7/virt-v7.c
@@ -15,6 +15,7 @@
 #include <asm/gic.h>
 #include <asm/io.h>
 #include <asm/secure.h>
+#include <linux/string.h>
 
 static unsigned int read_id_pfr1(void)
 {
diff --git a/arch/arm/cpu/armv8/cache_v8.c b/arch/arm/cpu/armv8/cache_v8.c
index 15cecb5e0b34..0930d206ccdd 100644
--- a/arch/arm/cpu/armv8/cache_v8.c
+++ b/arch/arm/cpu/armv8/cache_v8.c
@@ -15,6 +15,7 @@
 #include <asm/global_data.h>
 #include <asm/system.h>
 #include <asm/armv8/mmu.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/arm/cpu/armv8/cpu.c b/arch/arm/cpu/armv8/cpu.c
index ea40c55dd2c0..21c10cf6c7ca 100644
--- a/arch/arm/cpu/armv8/cpu.c
+++ b/arch/arm/cpu/armv8/cpu.c
@@ -18,6 +18,7 @@
 #include <asm/system.h>
 #include <asm/secure.h>
 #include <linux/compiler.h>
+#include <linux/string.h>
 
 /*
  * sdelay() - simple spin loop.
diff --git a/arch/arm/cpu/armv8/fsl-layerscape/cpu.c b/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
index 3654cbf3b497..5839f0b9c9ec 100644
--- a/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
+++ b/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
@@ -40,6 +40,7 @@
 #include <asm/arch/clock.h>
 #include <hwconfig.h>
 #include <fsl_qbman.h>
+#include <linux/string.h>
 
 #ifdef CONFIG_TFABOOT
 #include <env_internal.h>
diff --git a/arch/arm/cpu/armv8/fsl-layerscape/fdt.c b/arch/arm/cpu/armv8/fsl-layerscape/fdt.c
index 7400b2cf2924..ab4f4a5eb1ab 100644
--- a/arch/arm/cpu/armv8/fsl-layerscape/fdt.c
+++ b/arch/arm/cpu/armv8/fsl-layerscape/fdt.c
@@ -31,6 +31,7 @@
 #endif
 #include <asm/arch/speed.h>
 #include <fsl_qbman.h>
+#include <linux/string.h>
 
 int fdt_fixup_phy_connection(void *blob, int offset, phy_interface_t phyc)
 {
diff --git a/arch/arm/cpu/armv8/fsl-layerscape/fsl_lsch2_serdes.c b/arch/arm/cpu/armv8/fsl-layerscape/fsl_lsch2_serdes.c
index 41c89b8904ee..4a2f22d03661 100644
--- a/arch/arm/cpu/armv8/fsl-layerscape/fsl_lsch2_serdes.c
+++ b/arch/arm/cpu/armv8/fsl-layerscape/fsl_lsch2_serdes.c
@@ -10,6 +10,7 @@
 #include <linux/errno.h>
 #include <asm/arch/fsl_serdes.h>
 #include <asm/arch/soc.h>
+#include <linux/string.h>
 
 #ifdef CONFIG_SYS_FSL_SRDS_1
 static u8 serdes1_prtcl_map[SERDES_PRCTL_COUNT];
diff --git a/arch/arm/cpu/armv8/fsl-layerscape/fsl_lsch3_serdes.c b/arch/arm/cpu/armv8/fsl-layerscape/fsl_lsch3_serdes.c
index aa6fd6b28ce1..f14636a0f5dc 100644
--- a/arch/arm/cpu/armv8/fsl-layerscape/fsl_lsch3_serdes.c
+++ b/arch/arm/cpu/armv8/fsl-layerscape/fsl_lsch3_serdes.c
@@ -14,6 +14,7 @@
 #include <asm/arch/fsl_serdes.h>
 #include <asm/arch/soc.h>
 #include <fsl-mc/ldpaa_wriop.h>
+#include <linux/string.h>
 
 #ifdef CONFIG_SYS_FSL_SRDS_1
 static u8 serdes1_prtcl_map[SERDES_PRCTL_COUNT];
diff --git a/arch/arm/cpu/armv8/fsl-layerscape/ls1028_ids.c b/arch/arm/cpu/armv8/fsl-layerscape/ls1028_ids.c
index 49df8b37900e..2d25c92c6ee1 100644
--- a/arch/arm/cpu/armv8/fsl-layerscape/ls1028_ids.c
+++ b/arch/arm/cpu/armv8/fsl-layerscape/ls1028_ids.c
@@ -9,6 +9,7 @@
 #include <asm/arch-fsl-layerscape/immap_lsch3.h>
 #include <asm/arch-fsl-layerscape/fsl_icid.h>
 #include <asm/arch-fsl-layerscape/fsl_portals.h>
+#include <linux/string.h>
 
 struct icid_id_table icid_tbl[] = {
 	SET_USB_ICID(1, "snps,dwc3", FSL_USB1_STREAM_ID),
diff --git a/arch/arm/cpu/armv8/fsl-layerscape/mp.c b/arch/arm/cpu/armv8/fsl-layerscape/mp.c
index 5ac545f9df81..8675007da513 100644
--- a/arch/arm/cpu/armv8/fsl-layerscape/mp.c
+++ b/arch/arm/cpu/armv8/fsl-layerscape/mp.c
@@ -14,6 +14,7 @@
 #include <asm/arch/mp.h>
 #include <asm/arch/soc.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "cpu.h"
 #include <asm/arch-fsl-layerscape/soc.h>
 #include <efi_loader.h>
diff --git a/arch/arm/cpu/armv8/fsl-layerscape/spl.c b/arch/arm/cpu/armv8/fsl-layerscape/spl.c
index 7d594a9f7490..7c44dc7a95a8 100644
--- a/arch/arm/cpu/armv8/fsl-layerscape/spl.c
+++ b/arch/arm/cpu/armv8/fsl-layerscape/spl.c
@@ -20,6 +20,7 @@
 #include <asm/arch/fdt.h>
 #include <asm/arch/ppa.h>
 #include <asm/arch/soc.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/arm/cpu/armv8/sec_firmware.c b/arch/arm/cpu/armv8/sec_firmware.c
index c6c4fcc7e073..46d58d176c53 100644
--- a/arch/arm/cpu/armv8/sec_firmware.c
+++ b/arch/arm/cpu/armv8/sec_firmware.c
@@ -18,6 +18,7 @@
 #include <asm/types.h>
 #include <asm/macro.h>
 #include <asm/armv8/sec_firmware.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 extern void c_runtime_cpu_setup(void);
diff --git a/arch/arm/cpu/armv8/spin_table.c b/arch/arm/cpu/armv8/spin_table.c
index 42a0962fdcda..6aafb3b6ea3c 100644
--- a/arch/arm/cpu/armv8/spin_table.c
+++ b/arch/arm/cpu/armv8/spin_table.c
@@ -7,6 +7,7 @@
 #include <common.h>
 #include <linux/libfdt.h>
 #include <asm/spin_table.h>
+#include <linux/string.h>
 
 int spin_table_update_dt(void *fdt)
 {
diff --git a/arch/arm/cpu/armv8/spl_data.c b/arch/arm/cpu/armv8/spl_data.c
index 8fd986a67a21..f8f9fe2e0260 100644
--- a/arch/arm/cpu/armv8/spl_data.c
+++ b/arch/arm/cpu/armv8/spl_data.c
@@ -5,6 +5,7 @@
 
 #include <common.h>
 #include <spl.h>
+#include <linux/string.h>
 
 char __data_save_start[0] __section(.__data_save_start);
 char __data_save_end[0] __section(.__data_save_end);
diff --git a/arch/arm/include/asm/io.h b/arch/arm/include/asm/io.h
index ade1401f3b47..994b47579924 100644
--- a/arch/arm/include/asm/io.h
+++ b/arch/arm/include/asm/io.h
@@ -30,6 +30,7 @@
 #if 0	/* XXX###XXX */
 #include <asm/arch/hardware.h>
 #endif	/* XXX###XXX */
+#include <linux/string.h>
 
 static inline void sync(void)
 {
diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c
index 70c181e45b7e..101f9d9b3ae4 100644
--- a/arch/arm/lib/bootm.c
+++ b/arch/arm/lib/bootm.c
@@ -23,6 +23,7 @@
 #include <dm/root.h>
 #include <env.h>
 #include <image.h>
+#include <linux/string.h>
 #include <u-boot/zlib.h>
 #include <asm/byteorder.h>
 #include <linux/libfdt.h>
diff --git a/arch/arm/lib/eabi_compat.c b/arch/arm/lib/eabi_compat.c
index f7029918d4fb..35ce83a6facd 100644
--- a/arch/arm/lib/eabi_compat.c
+++ b/arch/arm/lib/eabi_compat.c
@@ -6,6 +6,7 @@
  */
 
 #include <common.h>
+#include <linux/string.h>
 
 int raise (int signum)
 {
diff --git a/arch/arm/lib/psci-dt.c b/arch/arm/lib/psci-dt.c
index 0ed29a43f10f..6acefab42c02 100644
--- a/arch/arm/lib/psci-dt.c
+++ b/arch/arm/lib/psci-dt.c
@@ -13,6 +13,7 @@
 #ifdef CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT
 #include <asm/armv8/sec_firmware.h>
 #endif
+#include <linux/string.h>
 
 int fdt_psci(void *fdt)
 {
diff --git a/arch/arm/lib/semihosting.c b/arch/arm/lib/semihosting.c
index 904fddd6c04e..73c860dbb3dd 100644
--- a/arch/arm/lib/semihosting.c
+++ b/arch/arm/lib/semihosting.c
@@ -15,6 +15,7 @@
 #include <command.h>
 #include <env.h>
 #include <log.h>
+#include <linux/string.h>
 
 #define SYSOPEN		0x01
 #define SYSCLOSE	0x02
diff --git a/arch/arm/mach-bcm283x/include/mach/mbox.h b/arch/arm/mach-bcm283x/include/mach/mbox.h
index 2ae2d3d97c36..70029eefdedf 100644
--- a/arch/arm/mach-bcm283x/include/mach/mbox.h
+++ b/arch/arm/mach-bcm283x/include/mach/mbox.h
@@ -6,8 +6,9 @@
 #ifndef _BCM2835_MBOX_H
 #define _BCM2835_MBOX_H
 
-#include <linux/compiler.h>
 #include <asm/arch/base.h>
+#include <linux/compiler.h>
+#include <linux/string.h>
 
 /*
  * The BCM2835 SoC contains (at least) two CPUs; the VideoCore (a/k/a "GPU")
diff --git a/arch/arm/mach-imx/cmd_bmode.c b/arch/arm/mach-imx/cmd_bmode.c
index 19bfd9f9a039..2ad9e6c5f2b9 100644
--- a/arch/arm/mach-imx/cmd_bmode.c
+++ b/arch/arm/mach-imx/cmd_bmode.c
@@ -8,6 +8,7 @@
 #include <asm/mach-imx/boot_mode.h>
 #include <malloc.h>
 #include <command.h>
+#include <linux/string.h>
 
 static const struct boot_mode *modes[2];
 
diff --git a/arch/arm/mach-imx/cmd_nandbcb.c b/arch/arm/mach-imx/cmd_nandbcb.c
index 44fc37695db4..21010d455abe 100644
--- a/arch/arm/mach-imx/cmd_nandbcb.c
+++ b/arch/arm/mach-imx/cmd_nandbcb.c
@@ -18,6 +18,7 @@
 #include <nand.h>
 #include <dm/devres.h>
 #include <linux/bug.h>
+#include <linux/string.h>
 
 #include <asm/io.h>
 #include <jffs2/jffs2.h>
diff --git a/arch/arm/mach-imx/imx8/ahab.c b/arch/arm/mach-imx/imx8/ahab.c
index bbcefc8e9b61..9eb38cac029d 100644
--- a/arch/arm/mach-imx/imx8/ahab.c
+++ b/arch/arm/mach-imx/imx8/ahab.c
@@ -15,6 +15,7 @@
 #include <asm/arch/sys_proto.h>
 #include <asm/arch/image.h>
 #include <console.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/arm/mach-imx/imx8/fdt.c b/arch/arm/mach-imx/imx8/fdt.c
index 776d2b243456..94da4d0951d2 100644
--- a/arch/arm/mach-imx/imx8/fdt.c
+++ b/arch/arm/mach-imx/imx8/fdt.c
@@ -12,6 +12,7 @@
 #include <fdt_support.h>
 #include <linux/libfdt.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/arm/mach-imx/imx8/image.c b/arch/arm/mach-imx/imx8/image.c
index 5abc0d3a39f0..638aac2eafe5 100644
--- a/arch/arm/mach-imx/imx8/image.c
+++ b/arch/arm/mach-imx/imx8/image.c
@@ -14,6 +14,7 @@
 #include <asm/arch/image.h>
 #include <asm/arch/sys_proto.h>
 #include <asm/mach-imx/boot_mode.h>
+#include <linux/string.h>
 
 #define MMC_DEV		0
 #define QSPI_DEV	1
diff --git a/arch/arm/mach-imx/imx8/parse-container.c b/arch/arm/mach-imx/imx8/parse-container.c
index 375098902f8b..ed69abc76d8c 100644
--- a/arch/arm/mach-imx/imx8/parse-container.c
+++ b/arch/arm/mach-imx/imx8/parse-container.c
@@ -9,6 +9,7 @@
 #include <spl.h>
 #include <asm/arch/image.h>
 #include <asm/arch/sci/sci.h>
+#include <linux/string.h>
 
 #define SEC_SECURE_RAM_BASE		0x31800000UL
 #define SEC_SECURE_RAM_END_BASE		(SEC_SECURE_RAM_BASE + 0xFFFFUL)
diff --git a/arch/arm/mach-imx/imx8m/soc.c b/arch/arm/mach-imx/imx8m/soc.c
index 3ad1352f03f2..8c82709024c2 100644
--- a/arch/arm/mach-imx/imx8m/soc.c
+++ b/arch/arm/mach-imx/imx8m/soc.c
@@ -29,6 +29,7 @@
 #include <imx_sip.h>
 #include <linux/arm-smccc.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/arm/mach-imx/mx5/clock.c b/arch/arm/mach-imx/mx5/clock.c
index bbaddd5a33fa..cc93716c74e4 100644
--- a/arch/arm/mach-imx/mx5/clock.c
+++ b/arch/arm/mach-imx/mx5/clock.c
@@ -16,6 +16,7 @@
 #include <asm/arch/clock.h>
 #include <div64.h>
 #include <asm/arch/sys_proto.h>
+#include <linux/string.h>
 
 enum pll_clocks {
 	PLL1_CLOCK = 0,
diff --git a/arch/arm/mach-imx/mx6/module_fuse.c b/arch/arm/mach-imx/mx6/module_fuse.c
index 0f4565e3117b..0305b2a7e02c 100644
--- a/arch/arm/mach-imx/mx6/module_fuse.c
+++ b/arch/arm/mach-imx/mx6/module_fuse.c
@@ -10,6 +10,7 @@
 #include <asm/arch/imx-regs.h>
 #include <asm/mach-imx/module_fuse.h>
 #include <linux/errno.h>
+#include <linux/string.h>
 
 static struct fuse_entry_desc mx6_fuse_descs[] = {
 #if defined(CONFIG_MX6ULL)
diff --git a/arch/arm/mach-imx/spl_imx_romapi.c b/arch/arm/mach-imx/spl_imx_romapi.c
index 9f4d95982e59..dc13a397ea8b 100644
--- a/arch/arm/mach-imx/spl_imx_romapi.c
+++ b/arch/arm/mach-imx/spl_imx_romapi.c
@@ -10,6 +10,7 @@
 #include <asm/global_data.h>
 #include <linux/libfdt.h>
 #include <spl.h>
+#include <linux/string.h>
 
 #include <asm/arch/sys_proto.h>
 
diff --git a/arch/arm/mach-imx/video.c b/arch/arm/mach-imx/video.c
index 1bc9b7cc7e15..4d76ecc29694 100644
--- a/arch/arm/mach-imx/video.c
+++ b/arch/arm/mach-imx/video.c
@@ -4,6 +4,7 @@
 #include <env.h>
 #include <linux/errno.h>
 #include <asm/mach-imx/video.h>
+#include <linux/string.h>
 
 #ifdef CONFIG_IMX_HDMI
 #include <asm/arch/mxc_hdmi.h>
diff --git a/arch/arm/mach-k3/common.c b/arch/arm/mach-k3/common.c
index 3b36e36102c8..97c52dacea80 100644
--- a/arch/arm/mach-k3/common.c
+++ b/arch/arm/mach-k3/common.c
@@ -14,6 +14,7 @@
 #include <spl.h>
 #include <asm/global_data.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include "common.h"
 #include <dm.h>
 #include <remoteproc.h>
diff --git a/arch/arm/mach-keystone/cmd_clock.c b/arch/arm/mach-keystone/cmd_clock.c
index 7165d666e5ed..15fa0ebddeaa 100644
--- a/arch/arm/mach-keystone/cmd_clock.c
+++ b/arch/arm/mach-keystone/cmd_clock.c
@@ -11,6 +11,7 @@
 #include <asm/arch/hardware.h>
 #include <asm/arch/clock.h>
 #include <asm/arch/psc_defs.h>
+#include <linux/string.h>
 
 struct pll_init_data cmd_pll_data = {
 	.pll = MAIN_PLL,
diff --git a/arch/arm/mach-keystone/cmd_mon.c b/arch/arm/mach-keystone/cmd_mon.c
index 049d57347349..f9d5cda827f3 100644
--- a/arch/arm/mach-keystone/cmd_mon.c
+++ b/arch/arm/mach-keystone/cmd_mon.c
@@ -9,6 +9,7 @@
 #include <common.h>
 #include <command.h>
 #include <image.h>
+#include <linux/string.h>
 #include <mach/mon.h>
 asm(".arch_extension sec\n\t");
 
diff --git a/arch/arm/mach-keystone/ddr3_spd.c b/arch/arm/mach-keystone/ddr3_spd.c
index 3803449c2b07..e84f3253b394 100644
--- a/arch/arm/mach-keystone/ddr3_spd.c
+++ b/arch/arm/mach-keystone/ddr3_spd.c
@@ -7,6 +7,7 @@
 
 #include <common.h>
 #include <log.h>
+#include <linux/string.h>
 
 #include <i2c.h>
 #include <ddr_spd.h>
diff --git a/arch/arm/mach-keystone/mon.c b/arch/arm/mach-keystone/mon.c
index 58995d73ac86..bbae14c58f1e 100644
--- a/arch/arm/mach-keystone/mon.c
+++ b/arch/arm/mach-keystone/mon.c
@@ -10,6 +10,7 @@
 #include <asm/unaligned.h>
 #include <common.h>
 #include <command.h>
+#include <linux/string.h>
 #include <mach/mon.h>
 #include <spl.h>
 asm(".arch_extension sec\n\t");
diff --git a/arch/arm/mach-meson/sm.c b/arch/arm/mach-meson/sm.c
index 1a8f23cb1faa..e8036b94a0aa 100644
--- a/arch/arm/mach-meson/sm.c
+++ b/arch/arm/mach-meson/sm.c
@@ -20,6 +20,7 @@
 #include <linux/bitfield.h>
 #include <regmap.h>
 #include <syscon.h>
+#include <linux/string.h>
 
 #define FN_GET_SHARE_MEM_INPUT_BASE	0x82000020
 #define FN_GET_SHARE_MEM_OUTPUT_BASE	0x82000021
diff --git a/arch/arm/mach-mvebu/armada3700/cpu.c b/arch/arm/mach-mvebu/armada3700/cpu.c
index 70f76c7d7074..7ab5c653f1e1 100644
--- a/arch/arm/mach-mvebu/armada3700/cpu.c
+++ b/arch/arm/mach-mvebu/armada3700/cpu.c
@@ -18,6 +18,7 @@
 #include <asm/arch/soc.h>
 #include <asm/armv8/mmu.h>
 #include <sort.h>
+#include <linux/string.h>
 
 /* Armada 3700 */
 #define MVEBU_GPIO_NB_REG_BASE		(MVEBU_REGISTER(0x13800))
diff --git a/arch/arm/mach-mvebu/serdes/axp/high_speed_env_lib.c b/arch/arm/mach-mvebu/serdes/axp/high_speed_env_lib.c
index ea3b4c7d5b72..3ebda4ec6841 100644
--- a/arch/arm/mach-mvebu/serdes/axp/high_speed_env_lib.c
+++ b/arch/arm/mach-mvebu/serdes/axp/high_speed_env_lib.c
@@ -10,6 +10,7 @@
 #include <asm/arch/cpu.h>
 #include <asm/arch/soc.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include "high_speed_env_spec.h"
 #include "board_env_spec.h"
diff --git a/arch/arm/mach-omap2/emif-common.c b/arch/arm/mach-omap2/emif-common.c
index 312f868fbc71..8346d899e475 100644
--- a/arch/arm/mach-omap2/emif-common.c
+++ b/arch/arm/mach-omap2/emif-common.c
@@ -22,6 +22,7 @@
 #include <linux/compiler.h>
 #include <asm/ti-common/ti-edma3.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 static int emif1_enabled = -1, emif2_enabled = -1;
 
diff --git a/arch/arm/mach-omap2/omap3/board.c b/arch/arm/mach-omap2/omap3/board.c
index f08c8ab43a06..c741652f241f 100644
--- a/arch/arm/mach-omap2/omap3/board.c
+++ b/arch/arm/mach-omap2/omap3/board.c
@@ -28,6 +28,7 @@
 #include <asm/gpio.h>
 #include <asm/omap_common.h>
 #include <linux/compiler.h>
+#include <linux/string.h>
 
 /* Declarations */
 extern omap3_sysinfo sysinfo;
diff --git a/arch/arm/mach-omap2/sec-common.c b/arch/arm/mach-omap2/sec-common.c
index 0551bc125e8f..4fca91ffbd0f 100644
--- a/arch/arm/mach-omap2/sec-common.c
+++ b/arch/arm/mach-omap2/sec-common.c
@@ -19,6 +19,7 @@
 #include <init.h>
 #include <log.h>
 #include <stdarg.h>
+#include <linux/string.h>
 
 #include <asm/arch/sys_proto.h>
 #include <asm/cache.h>
diff --git a/arch/arm/mach-rockchip/board.c b/arch/arm/mach-rockchip/board.c
index eed8f589d23e..2c41e58f598d 100644
--- a/arch/arm/mach-rockchip/board.c
+++ b/arch/arm/mach-rockchip/board.c
@@ -17,6 +17,7 @@
 #include <asm/arch-rockchip/clock.h>
 #include <asm/arch-rockchip/periph.h>
 #include <asm/arch-rockchip/misc.h>
+#include <linux/string.h>
 #include <power/regulator.h>
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/arch/arm/mach-rockchip/boot_mode.c b/arch/arm/mach-rockchip/boot_mode.c
index c6d19541ac72..10d8a1ac5e98 100644
--- a/arch/arm/mach-rockchip/boot_mode.c
+++ b/arch/arm/mach-rockchip/boot_mode.c
@@ -13,6 +13,7 @@
 #include <dm/device.h>
 #include <dm/uclass.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #if (CONFIG_ROCKCHIP_BOOT_MODE_REG == 0)
 
diff --git a/arch/arm/mach-rockchip/misc.c b/arch/arm/mach-rockchip/misc.c
index 28c7c7214cbc..3cbb1794254d 100644
--- a/arch/arm/mach-rockchip/misc.c
+++ b/arch/arm/mach-rockchip/misc.c
@@ -16,6 +16,7 @@
 #include <log.h>
 #include <dm/uclass-internal.h>
 #include <misc.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 #include <u-boot/sha256.h>
 
diff --git a/arch/arm/mach-rockchip/spl-boot-order.c b/arch/arm/mach-rockchip/spl-boot-order.c
index e05c12e0cd33..ddc4081dbb47 100644
--- a/arch/arm/mach-rockchip/spl-boot-order.c
+++ b/arch/arm/mach-rockchip/spl-boot-order.c
@@ -9,6 +9,7 @@
 #include <mmc.h>
 #include <spl.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 #if CONFIG_IS_ENABLED(OF_LIBFDT)
 /**
diff --git a/arch/arm/mach-socfpga/clock_manager_arria10.c b/arch/arm/mach-socfpga/clock_manager_arria10.c
index 58d5d3fd8a57..9f46df6b2f95 100644
--- a/arch/arm/mach-socfpga/clock_manager_arria10.c
+++ b/arch/arm/mach-socfpga/clock_manager_arria10.c
@@ -12,6 +12,7 @@
 #include <dm/device-internal.h>
 #include <asm/arch/clock_manager.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #ifdef CONFIG_SPL_BUILD
 
diff --git a/arch/arm/mach-socfpga/misc_s10.c b/arch/arm/mach-socfpga/misc_s10.c
index 733856c33c16..1e9a3f62059f 100644
--- a/arch/arm/mach-socfpga/misc_s10.c
+++ b/arch/arm/mach-socfpga/misc_s10.c
@@ -21,6 +21,7 @@
 #include <asm/pl310.h>
 #include <linux/libfdt.h>
 #include <asm/arch/mailbox_s10.h>
+#include <linux/string.h>
 
 #include <dt-bindings/reset/altr,rst-mgr-s10.h>
 
diff --git a/arch/arm/mach-socfpga/pinmux_arria10.c b/arch/arm/mach-socfpga/pinmux_arria10.c
index f378fce7f02d..a38b19c395e2 100644
--- a/arch/arm/mach-socfpga/pinmux_arria10.c
+++ b/arch/arm/mach-socfpga/pinmux_arria10.c
@@ -8,6 +8,7 @@
 #include <asm/io.h>
 #include <common.h>
 #include <fdtdec.h>
+#include <linux/string.h>
 
 static int do_pinctr_pin(const void *blob, int child, const char *node_name)
 {
diff --git a/arch/arm/mach-stm32mp/cmd_stm32key.c b/arch/arm/mach-stm32mp/cmd_stm32key.c
index eb3d74bc8364..ad857e95c462 100644
--- a/arch/arm/mach-stm32mp/cmd_stm32key.c
+++ b/arch/arm/mach-stm32mp/cmd_stm32key.c
@@ -10,6 +10,7 @@
 #include <dm/device.h>
 #include <dm/uclass.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #define STM32_OTP_HASH_KEY_START 24
 #define STM32_OTP_HASH_KEY_SIZE 8
diff --git a/arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c b/arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c
index d241dbde20e6..0264eafed5eb 100644
--- a/arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c
+++ b/arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c
@@ -9,6 +9,7 @@
 #include <image.h>
 #include <asm/arch/stm32prog.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include "stm32prog.h"
 
 struct stm32prog_data *stm32prog_data;
diff --git a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c
index e749c05d9279..3ac36bcc8d30 100644
--- a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c
+++ b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c
@@ -19,6 +19,7 @@
 #include <linux/mtd/mtd.h>
 #include <linux/printk.h>
 #include <linux/sizes.h>
+#include <linux/string.h>
 
 #include "stm32prog.h"
 
diff --git a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_serial.c b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_serial.c
index 8481a45f65bc..194bdbd75f40 100644
--- a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_serial.c
+++ b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_serial.c
@@ -15,6 +15,7 @@
 #include <dm/device-internal.h>
 #include <linux/delay.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include "stm32prog.h"
 
 /* - configuration part -----------------------------*/
diff --git a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_usb.c b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_usb.c
index 134c3b117f52..33bf7a44b38b 100644
--- a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_usb.c
+++ b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_usb.c
@@ -10,6 +10,7 @@
 #include <asm/arch/stm32prog.h>
 #include <asm/arch/sys_proto.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include "stm32prog.h"
 
 static int stm32prog_set_phase(struct stm32prog_data *data, u8 phase,
diff --git a/arch/arm/mach-stm32mp/fdt.c b/arch/arm/mach-stm32mp/fdt.c
index 9dbc595cc4f8..5a7d761586ce 100644
--- a/arch/arm/mach-stm32mp/fdt.c
+++ b/arch/arm/mach-stm32mp/fdt.c
@@ -11,6 +11,7 @@
 #include <asm/arch/sys_proto.h>
 #include <dt-bindings/pinctrl/stm32-pinfunc.h>
 #include <linux/io.h>
+#include <linux/string.h>
 
 #define ETZPC_DECPROT(n)	(STM32_ETZPC_BASE + 0x10 + 4 * (n))
 #define ETZPC_DECPROT_NB	6
diff --git a/arch/arm/mach-tegra/cboot.c b/arch/arm/mach-tegra/cboot.c
index 6a47c104b723..b89f7badb525 100644
--- a/arch/arm/mach-tegra/cboot.c
+++ b/arch/arm/mach-tegra/cboot.c
@@ -16,6 +16,7 @@
 #include <string.h>
 #include <asm/global_data.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include <linux/ctype.h>
 #include <linux/sizes.h>
diff --git a/arch/arm/mach-tegra/tegra20/emc.c b/arch/arm/mach-tegra/tegra20/emc.c
index d55b09b4ac8c..58abf790bd1b 100644
--- a/arch/arm/mach-tegra/tegra20/emc.c
+++ b/arch/arm/mach-tegra/tegra20/emc.c
@@ -12,6 +12,7 @@
 #include <asm/arch/clock.h>
 #include <asm/arch/emc.h>
 #include <asm/arch/tegra.h>
+#include <linux/string.h>
 
 /*
  * The EMC registers have shadow registers.  When the EMC clock is updated
diff --git a/arch/arm/mach-tegra/tegra20/warmboot.c b/arch/arm/mach-tegra/tegra20/warmboot.c
index 3d3758f6e6f4..b36b2f652ba7 100644
--- a/arch/arm/mach-tegra/tegra20/warmboot.c
+++ b/arch/arm/mach-tegra/tegra20/warmboot.c
@@ -20,6 +20,7 @@
 #include <asm/arch-tegra/pmc.h>
 #include <asm/arch-tegra/fuse.h>
 #include <asm/arch-tegra/warmboot.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/arm/mach-tegra/xusb-padctl-common.c b/arch/arm/mach-tegra/xusb-padctl-common.c
index 5de403c30e4a..42d64cf2c755 100644
--- a/arch/arm/mach-tegra/xusb-padctl-common.c
+++ b/arch/arm/mach-tegra/xusb-padctl-common.c
@@ -9,6 +9,7 @@
 #include <errno.h>
 #include <log.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include "xusb-padctl-common.h"
 
diff --git a/arch/arm/mach-uniphier/base-address.c b/arch/arm/mach-uniphier/base-address.c
index d7456f8df6f2..1ba55eb7ebba 100644
--- a/arch/arm/mach-uniphier/base-address.c
+++ b/arch/arm/mach-uniphier/base-address.c
@@ -10,6 +10,7 @@
 #include <linux/libfdt.h>
 #include <linux/sizes.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 #include "base-address.h"
 #include "sc64-regs.h"
diff --git a/arch/arm/mach-uniphier/board_late_init.c b/arch/arm/mach-uniphier/board_late_init.c
index b33c4b19389b..922919814ba2 100644
--- a/arch/arm/mach-uniphier/board_late_init.c
+++ b/arch/arm/mach-uniphier/board_late_init.c
@@ -12,6 +12,7 @@
 #include <linux/libfdt.h>
 #include <stdio.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include "init.h"
 
diff --git a/arch/arm/mach-uniphier/dram/cmd_ddrmphy.c b/arch/arm/mach-uniphier/dram/cmd_ddrmphy.c
index 629f8b90c9d8..be4ce3265bb8 100644
--- a/arch/arm/mach-uniphier/dram/cmd_ddrmphy.c
+++ b/arch/arm/mach-uniphier/dram/cmd_ddrmphy.c
@@ -9,6 +9,7 @@
 #include <linux/io.h>
 #include <linux/printk.h>
 #include <linux/sizes.h>
+#include <linux/string.h>
 
 #include "../soc-info.h"
 #include "ddrmphy-regs.h"
diff --git a/arch/arm/mach-uniphier/dram/cmd_ddrphy.c b/arch/arm/mach-uniphier/dram/cmd_ddrphy.c
index ca519d1c7e0c..3ccafe206382 100644
--- a/arch/arm/mach-uniphier/dram/cmd_ddrphy.c
+++ b/arch/arm/mach-uniphier/dram/cmd_ddrphy.c
@@ -10,6 +10,7 @@
 #include <linux/io.h>
 #include <linux/printk.h>
 #include <linux/sizes.h>
+#include <linux/string.h>
 
 #include "../soc-info.h"
 #include "ddrphy-regs.h"
diff --git a/arch/arm/mach-versal/mp.c b/arch/arm/mach-versal/mp.c
index c97c311d3130..540c010f52c6 100644
--- a/arch/arm/mach-versal/mp.c
+++ b/arch/arm/mach-versal/mp.c
@@ -9,6 +9,7 @@
 #include <asm/io.h>
 #include <asm/arch/hardware.h>
 #include <asm/arch/sys_proto.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/arm/mach-zynq/ddrc.c b/arch/arm/mach-zynq/ddrc.c
index 28988ef95b5a..65c255da209a 100644
--- a/arch/arm/mach-zynq/ddrc.c
+++ b/arch/arm/mach-zynq/ddrc.c
@@ -8,6 +8,7 @@
 #include <asm/io.h>
 #include <asm/arch/sys_proto.h>
 #include <asm/arch/hardware.h>
+#include <linux/string.h>
 
 #ifndef CONFIG_ZYNQ_DDRC_INIT
 void zynq_ddrc_init(void) {}
diff --git a/arch/arm/mach-zynq/slcr.c b/arch/arm/mach-zynq/slcr.c
index 5d9f4d23f34b..d7c879dc82dc 100644
--- a/arch/arm/mach-zynq/slcr.c
+++ b/arch/arm/mach-zynq/slcr.c
@@ -8,6 +8,7 @@
 #include <malloc.h>
 #include <asm/arch/hardware.h>
 #include <asm/arch/sys_proto.h>
+#include <linux/string.h>
 
 #define SLCR_LOCK_MAGIC		0x767B
 #define SLCR_UNLOCK_MAGIC	0xDF0D
diff --git a/arch/arm/mach-zynq/spl.c b/arch/arm/mach-zynq/spl.c
index 239ce3436a62..eceb6e114c07 100644
--- a/arch/arm/mach-zynq/spl.c
+++ b/arch/arm/mach-zynq/spl.c
@@ -10,6 +10,7 @@
 #include <log.h>
 #include <spl.h>
 #include <generated/dt.h>
+#include <linux/string.h>
 
 #include <asm/io.h>
 #include <asm/spl.h>
diff --git a/arch/arm/mach-zynqmp/cpu.c b/arch/arm/mach-zynqmp/cpu.c
index 29743cae5aab..a03b29acb83f 100644
--- a/arch/arm/mach-zynqmp/cpu.c
+++ b/arch/arm/mach-zynqmp/cpu.c
@@ -15,6 +15,7 @@
 #include <asm/io.h>
 #include <zynqmp_firmware.h>
 #include <asm/cache.h>
+#include <linux/string.h>
 
 #define ZYNQ_SILICON_VER_MASK	0xF000
 #define ZYNQ_SILICON_VER_SHIFT	12
diff --git a/arch/arm/mach-zynqmp/mp.c b/arch/arm/mach-zynqmp/mp.c
index 656678a1551f..b699f36f1d39 100644
--- a/arch/arm/mach-zynqmp/mp.c
+++ b/arch/arm/mach-zynqmp/mp.c
@@ -11,6 +11,7 @@
 #include <asm/arch/sys_proto.h>
 #include <asm/io.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #define LOCK		0
 #define SPLIT		1
diff --git a/arch/microblaze/include/asm/io.h b/arch/microblaze/include/asm/io.h
index 8e6be0ae267f..fd77dcd0218d 100644
--- a/arch/microblaze/include/asm/io.h
+++ b/arch/microblaze/include/asm/io.h
@@ -18,6 +18,7 @@
 #define __MICROBLAZE_IO_H__
 
 #include <asm/types.h>
+#include <linux/string.h>
 
 #define IO_SPACE_LIMIT 0xFFFFFFFF
 
diff --git a/arch/mips/include/asm/io.h b/arch/mips/include/asm/io.h
index d3ad66930131..836cd436872d 100644
--- a/arch/mips/include/asm/io.h
+++ b/arch/mips/include/asm/io.h
@@ -11,6 +11,7 @@
 
 #include <linux/bug.h>
 #include <linux/compiler.h>
+#include <linux/string.h>
 #include <linux/types.h>
 
 #include <asm/addrspace.h>
diff --git a/arch/mips/lib/bootm.c b/arch/mips/lib/bootm.c
index c28bca1bbb89..ec165a32b0a4 100644
--- a/arch/mips/lib/bootm.c
+++ b/arch/mips/lib/bootm.c
@@ -14,6 +14,7 @@
 #include <asm/addrspace.h>
 #include <asm/global_data.h>
 #include <asm/io.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/mips/lib/reloc.c b/arch/mips/lib/reloc.c
index c1c04bc08e86..a0c60c40c861 100644
--- a/arch/mips/lib/reloc.c
+++ b/arch/mips/lib/reloc.c
@@ -33,6 +33,7 @@
 #include <asm/relocs.h>
 #include <asm/sections.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 
 /**
  * read_uint() - Read an unsigned integer from the buffer
diff --git a/arch/mips/lib/traps.c b/arch/mips/lib/traps.c
index 7c2fdf4a1a9d..510ef4c6c090 100644
--- a/arch/mips/lib/traps.c
+++ b/arch/mips/lib/traps.c
@@ -20,6 +20,7 @@
 #include <asm/mipsregs.h>
 #include <asm/addrspace.h>
 #include <asm/system.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/mips/mach-jz47xx/jz4780/jz4780.c b/arch/mips/mach-jz47xx/jz4780/jz4780.c
index 43f5651f8326..de9bd05fcfde 100644
--- a/arch/mips/mach-jz47xx/jz4780/jz4780.c
+++ b/arch/mips/mach-jz47xx/jz4780/jz4780.c
@@ -15,6 +15,7 @@
 #include <asm/global_data.h>
 #include <asm/io.h>
 #include <asm/sections.h>
+#include <linux/string.h>
 #include <mach/jz4780.h>
 #include <mach/jz4780_dram.h>
 #include <mmc.h>
diff --git a/arch/mips/mach-mtmips/cpu.c b/arch/mips/mach-mtmips/cpu.c
index 76ad4f632058..f9cdce5ff8d8 100644
--- a/arch/mips/mach-mtmips/cpu.c
+++ b/arch/mips/mach-mtmips/cpu.c
@@ -10,6 +10,7 @@
 #include <linux/bitops.h>
 #include <linux/io.h>
 #include <linux/sizes.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/nds32/lib/bootm.c b/arch/nds32/lib/bootm.c
index b3b8bc290378..4668ed9af8b1 100644
--- a/arch/nds32/lib/bootm.c
+++ b/arch/nds32/lib/bootm.c
@@ -13,6 +13,7 @@
 #include <image.h>
 #include <log.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 #include <u-boot/zlib.h>
 #include <asm/byteorder.h>
 #include <asm/bootm.h>
diff --git a/arch/nios2/cpu/cpu.c b/arch/nios2/cpu/cpu.c
index b55c8fbc5841..c670d51f1dfb 100644
--- a/arch/nios2/cpu/cpu.c
+++ b/arch/nios2/cpu/cpu.c
@@ -15,6 +15,7 @@
 #include <asm/cache.h>
 #include <asm/global_data.h>
 #include <asm/system.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/nios2/include/asm/io.h b/arch/nios2/include/asm/io.h
index 817cd72e00bd..b22134cf29c4 100644
--- a/arch/nios2/include/asm/io.h
+++ b/arch/nios2/include/asm/io.h
@@ -8,6 +8,7 @@
 #define __ASM_NIOS2_IO_H_
 
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 static inline void sync(void)
 {
diff --git a/arch/powerpc/cpu/mpc83xx/ecc.c b/arch/powerpc/cpu/mpc83xx/ecc.c
index 1343dd3d3a36..903983ded3ef 100644
--- a/arch/powerpc/cpu/mpc83xx/ecc.c
+++ b/arch/powerpc/cpu/mpc83xx/ecc.c
@@ -10,6 +10,7 @@
 #include <irq_func.h>
 #include <mpc83xx.h>
 #include <command.h>
+#include <linux/string.h>
 
 #if defined(CONFIG_DDR_ECC) && defined(CONFIG_DDR_ECC_CMD)
 void ecc_print_status(void)
diff --git a/arch/powerpc/cpu/mpc85xx/commproc.c b/arch/powerpc/cpu/mpc85xx/commproc.c
index 8e8427a08bbe..a63519bb5cd8 100644
--- a/arch/powerpc/cpu/mpc85xx/commproc.c
+++ b/arch/powerpc/cpu/mpc85xx/commproc.c
@@ -25,6 +25,7 @@
 #include <asm-offsets.h>
 #include <asm/cpm_85xx.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/powerpc/cpu/mpc85xx/cpu_init.c b/arch/powerpc/cpu/mpc85xx/cpu_init.c
index fcc2c7be31a9..ad6e79396e76 100644
--- a/arch/powerpc/cpu/mpc85xx/cpu_init.c
+++ b/arch/powerpc/cpu/mpc85xx/cpu_init.c
@@ -35,6 +35,7 @@
 #include <hwconfig.h>
 #include <linux/compiler.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "mp.h"
 #ifdef CONFIG_CHAIN_OF_TRUST
 #include <fsl_validate.h>
diff --git a/arch/powerpc/cpu/mpc85xx/ether_fcc.c b/arch/powerpc/cpu/mpc85xx/ether_fcc.c
index 3c4eb1a7eba9..c6f89e0eba91 100644
--- a/arch/powerpc/cpu/mpc85xx/ether_fcc.c
+++ b/arch/powerpc/cpu/mpc85xx/ether_fcc.c
@@ -30,6 +30,7 @@
 #include <command.h>
 #include <config.h>
 #include <net.h>
+#include <linux/string.h>
 
 #if defined(CONFIG_MII) || defined(CONFIG_CMD_MII)
 #include <miiphy.h>
diff --git a/arch/powerpc/cpu/mpc85xx/fdt.c b/arch/powerpc/cpu/mpc85xx/fdt.c
index 08331f4c6494..4eecbe667ec8 100644
--- a/arch/powerpc/cpu/mpc85xx/fdt.c
+++ b/arch/powerpc/cpu/mpc85xx/fdt.c
@@ -27,6 +27,7 @@
 #ifdef CONFIG_SYS_DPAA_FMAN
 #include <fsl_fman.h>
 #endif
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/powerpc/cpu/mpc85xx/fsl_corenet2_serdes.c b/arch/powerpc/cpu/mpc85xx/fsl_corenet2_serdes.c
index ee5015ec8f3e..29a64b309b29 100644
--- a/arch/powerpc/cpu/mpc85xx/fsl_corenet2_serdes.c
+++ b/arch/powerpc/cpu/mpc85xx/fsl_corenet2_serdes.c
@@ -13,6 +13,7 @@
 #include <linux/delay.h>
 #include <linux/errno.h>
 #include <fsl_errata.h>
+#include <linux/string.h>
 #include "fsl_corenet2_serdes.h"
 
 #ifdef CONFIG_SYS_FSL_SRDS_1
diff --git a/arch/powerpc/cpu/mpc85xx/liodn.c b/arch/powerpc/cpu/mpc85xx/liodn.c
index e552378e78be..a85c81179205 100644
--- a/arch/powerpc/cpu/mpc85xx/liodn.c
+++ b/arch/powerpc/cpu/mpc85xx/liodn.c
@@ -7,6 +7,7 @@
 #include <log.h>
 #include <linux/libfdt.h>
 #include <fdt_support.h>
+#include <linux/string.h>
 
 #include <asm/immap_85xx.h>
 #include <asm/io.h>
diff --git a/arch/powerpc/cpu/mpc85xx/mp.c b/arch/powerpc/cpu/mpc85xx/mp.c
index 653efe09f935..c9854a82a960 100644
--- a/arch/powerpc/cpu/mpc85xx/mp.c
+++ b/arch/powerpc/cpu/mpc85xx/mp.c
@@ -17,6 +17,7 @@
 #include <asm/fsl_law.h>
 #include <fsl_ddr_sdram.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "mp.h"
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/arch/powerpc/cpu/mpc85xx/portals.c b/arch/powerpc/cpu/mpc85xx/portals.c
index 52e2124fb976..c0f18d924b61 100644
--- a/arch/powerpc/cpu/mpc85xx/portals.c
+++ b/arch/powerpc/cpu/mpc85xx/portals.c
@@ -6,6 +6,7 @@
 #include <common.h>
 #include <linux/libfdt.h>
 #include <fdt_support.h>
+#include <linux/string.h>
 
 #include <asm/processor.h>
 #include <asm/io.h>
diff --git a/arch/powerpc/cpu/mpc86xx/mp.c b/arch/powerpc/cpu/mpc86xx/mp.c
index e6795e06c98b..2d23742a2bd9 100644
--- a/arch/powerpc/cpu/mpc86xx/mp.c
+++ b/arch/powerpc/cpu/mpc86xx/mp.c
@@ -12,6 +12,7 @@
 #include <lmb.h>
 #include <asm/io.h>
 #include <asm/mp.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/powerpc/cpu/mpc8xxx/fsl_pamu.c b/arch/powerpc/cpu/mpc8xxx/fsl_pamu.c
index 2c378b761588..bc5958511d71 100644
--- a/arch/powerpc/cpu/mpc8xxx/fsl_pamu.c
+++ b/arch/powerpc/cpu/mpc8xxx/fsl_pamu.c
@@ -11,6 +11,7 @@
 #include <linux/log2.h>
 #include <malloc.h>
 #include <asm/fsl_pamu.h>
+#include <linux/string.h>
 
 struct paace *ppaact;
 struct paace *sec;
diff --git a/arch/powerpc/include/asm/io.h b/arch/powerpc/include/asm/io.h
index 6d76e3e99cca..ccc5e664cf47 100644
--- a/arch/powerpc/include/asm/io.h
+++ b/arch/powerpc/include/asm/io.h
@@ -8,6 +8,7 @@
 #define _PPC_IO_H
 
 #include <asm/byteorder.h>
+#include <linux/string.h>
 
 #ifdef CONFIG_ADDR_MAP
 #include <addr_map.h>
diff --git a/arch/riscv/cpu/cpu.c b/arch/riscv/cpu/cpu.c
index bfa2d4a42693..53fc9455f75d 100644
--- a/arch/riscv/cpu/cpu.c
+++ b/arch/riscv/cpu/cpu.c
@@ -11,6 +11,7 @@
 #include <asm/encoding.h>
 #include <dm/uclass-internal.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 
 /*
  * The variables here must be stored in the data section since they are used
diff --git a/arch/riscv/lib/andes_plic.c b/arch/riscv/lib/andes_plic.c
index 5d310d137b71..3fa92277639c 100644
--- a/arch/riscv/lib/andes_plic.c
+++ b/arch/riscv/lib/andes_plic.c
@@ -19,6 +19,7 @@
 #include <asm/syscon.h>
 #include <cpu.h>
 #include <linux/err.h>
+#include <linux/string.h>
 
 /* pending register */
 #define PENDING_REG(base, hart)	((ulong)(base) + 0x1000 + ((hart) / 4) * 4)
diff --git a/arch/riscv/lib/fdt_fixup.c b/arch/riscv/lib/fdt_fixup.c
index 8c11b8a99e38..d0a334744974 100644
--- a/arch/riscv/lib/fdt_fixup.c
+++ b/arch/riscv/lib/fdt_fixup.c
@@ -11,6 +11,7 @@
 #include <log.h>
 #include <mapmem.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/sandbox/cpu/eth-raw-os.c b/arch/sandbox/cpu/eth-raw-os.c
index da01d1addf9c..8ef8f65ebaf6 100644
--- a/arch/sandbox/cpu/eth-raw-os.c
+++ b/arch/sandbox/cpu/eth-raw-os.c
@@ -7,6 +7,7 @@
 #include <asm/eth-raw-os.h>
 #include <errno.h>
 #include <fcntl.h>
+#include <linux/string.h>
 #include <net/if.h>
 #include <netinet/in.h>
 #include <netinet/ip.h>
diff --git a/arch/sandbox/cpu/os.c b/arch/sandbox/cpu/os.c
index e7ec892bdf07..e4192b07be5f 100644
--- a/arch/sandbox/cpu/os.c
+++ b/arch/sandbox/cpu/os.c
@@ -16,6 +16,7 @@
 #include <termios.h>
 #include <time.h>
 #include <unistd.h>
+#include <linux/string.h>
 #include <sys/mman.h>
 #include <sys/stat.h>
 #include <sys/time.h>
diff --git a/arch/sandbox/cpu/sdl.c b/arch/sandbox/cpu/sdl.c
index 6416cab96c1e..813fdcdac604 100644
--- a/arch/sandbox/cpu/sdl.c
+++ b/arch/sandbox/cpu/sdl.c
@@ -9,6 +9,7 @@
 #include <linux/input.h>
 #include <SDL2/SDL.h>
 #include <asm/state.h>
+#include <linux/string.h>
 
 /**
  * struct buf_info - a data buffer holding audio data
diff --git a/arch/sandbox/cpu/spl.c b/arch/sandbox/cpu/spl.c
index 17a3507406cd..8998f92858e1 100644
--- a/arch/sandbox/cpu/spl.c
+++ b/arch/sandbox/cpu/spl.c
@@ -13,6 +13,7 @@
 #include <asm/global_data.h>
 #include <asm/spl.h>
 #include <asm/state.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/sandbox/cpu/start.c b/arch/sandbox/cpu/start.c
index c50d14eaf229..9845d3e8fcb9 100644
--- a/arch/sandbox/cpu/start.c
+++ b/arch/sandbox/cpu/start.c
@@ -17,6 +17,7 @@
 #include <asm/sections.h>
 #include <asm/state.h>
 #include <linux/ctype.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/sandbox/cpu/state.c b/arch/sandbox/cpu/state.c
index 34b6fff7e7a8..ec432d06429f 100644
--- a/arch/sandbox/cpu/state.c
+++ b/arch/sandbox/cpu/state.c
@@ -10,6 +10,7 @@
 #include <os.h>
 #include <asm/malloc.h>
 #include <asm/state.h>
+#include <linux/string.h>
 
 /* Main state record for the sandbox */
 static struct sandbox_state main_state;
diff --git a/arch/sandbox/lib/bootm.c b/arch/sandbox/lib/bootm.c
index d1d460b84a44..ab9f8a5f9c9c 100644
--- a/arch/sandbox/lib/bootm.c
+++ b/arch/sandbox/lib/bootm.c
@@ -8,6 +8,7 @@
 #include <bootstage.h>
 #include <image.h>
 #include <asm/io.h>
+#include <linux/string.h>
 
 #define	LINUX_ARM_ZIMAGE_MAGIC	0x016f2818
 
diff --git a/arch/sh/lib/board.c b/arch/sh/lib/board.c
index 3fa093a02ea3..f43213a50e99 100644
--- a/arch/sh/lib/board.c
+++ b/arch/sh/lib/board.c
@@ -6,6 +6,7 @@
 #include <common.h>
 #include <init.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/sh/lib/bootm.c b/arch/sh/lib/bootm.c
index dc94f8378566..71d964586c5a 100644
--- a/arch/sh/lib/bootm.c
+++ b/arch/sh/lib/bootm.c
@@ -13,6 +13,7 @@
 #include <image.h>
 #include <asm/byteorder.h>
 #include <asm/zimage.h>
+#include <linux/string.h>
 
 #ifdef CONFIG_SYS_DEBUG
 static void hexdump(unsigned char *buf, int len)
diff --git a/arch/sh/lib/zimageboot.c b/arch/sh/lib/zimageboot.c
index c38f0933f894..d1067a60f1ed 100644
--- a/arch/sh/lib/zimageboot.c
+++ b/arch/sh/lib/zimageboot.c
@@ -15,6 +15,7 @@
 #include <irq_func.h>
 #include <asm/io.h>
 #include <asm/zimage.h>
+#include <linux/string.h>
 
 int do_sh_zimageboot(struct cmd_tbl *cmdtp, int flag, int argc,
 		     char *const argv[])
diff --git a/arch/x86/cpu/acpi_gpe.c b/arch/x86/cpu/acpi_gpe.c
index 9baf4f65b366..47ee817eb7ac 100644
--- a/arch/x86/cpu/acpi_gpe.c
+++ b/arch/x86/cpu/acpi_gpe.c
@@ -13,6 +13,7 @@
 #include <asm/io.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/interrupt-controller/x86-irq.h>
+#include <linux/string.h>
 
 /**
  * struct acpi_gpe_priv - private driver information
diff --git a/arch/x86/cpu/apollolake/fsp_bindings.c b/arch/x86/cpu/apollolake/fsp_bindings.c
index bbf04b5009f1..a76855e3e287 100644
--- a/arch/x86/cpu/apollolake/fsp_bindings.c
+++ b/arch/x86/cpu/apollolake/fsp_bindings.c
@@ -7,6 +7,7 @@
 #include <dm.h>
 #include <log.h>
 #include <asm/arch/fsp_bindings.h>
+#include <linux/string.h>
 
 /**
  * read_u8_prop() - Read an u8 property from devicetree (scalar or array)
diff --git a/arch/x86/cpu/apollolake/pmc.c b/arch/x86/cpu/apollolake/pmc.c
index 192dec7109aa..83d165c0d9b0 100644
--- a/arch/x86/cpu/apollolake/pmc.c
+++ b/arch/x86/cpu/apollolake/pmc.c
@@ -17,6 +17,7 @@
 #include <asm/io.h>
 #include <asm/pci.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 #include <power/acpi_pmc.h>
 
 #define GPIO_GPE_CFG		0x1050
diff --git a/arch/x86/cpu/apollolake/spl.c b/arch/x86/cpu/apollolake/spl.c
index 5a53831dc6a4..a318bca5a62b 100644
--- a/arch/x86/cpu/apollolake/spl.c
+++ b/arch/x86/cpu/apollolake/spl.c
@@ -19,6 +19,7 @@
 #include <asm/arch/iomap.h>
 #include <dm/device-internal.h>
 #include <dm/uclass-internal.h>
+#include <linux/string.h>
 
 /* This reads the next phase from mapped SPI flash */
 static int rom_load_image(struct spl_image_info *spl_image,
diff --git a/arch/x86/cpu/baytrail/acpi.c b/arch/x86/cpu/baytrail/acpi.c
index 07757b88a305..e6c721a16ba9 100644
--- a/arch/x86/cpu/baytrail/acpi.c
+++ b/arch/x86/cpu/baytrail/acpi.c
@@ -14,6 +14,7 @@
 #include <asm/arch/global_nvs.h>
 #include <asm/arch/iomap.h>
 #include <dm/uclass-internal.h>
+#include <linux/string.h>
 
 void acpi_create_fadt(struct acpi_fadt *fadt, struct acpi_facs *facs,
 		      void *dsdt)
diff --git a/arch/x86/cpu/broadwell/me.c b/arch/x86/cpu/broadwell/me.c
index ae16ce264992..4ae084bf4529 100644
--- a/arch/x86/cpu/broadwell/me.c
+++ b/arch/x86/cpu/broadwell/me.c
@@ -10,6 +10,7 @@
 #include <log.h>
 #include <asm/arch/me.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 static inline void me_read_dword_ptr(struct udevice *dev, void *ptr, int offset)
 {
diff --git a/arch/x86/cpu/broadwell/northbridge.c b/arch/x86/cpu/broadwell/northbridge.c
index 141babc51c3a..4f3ccf589e57 100644
--- a/arch/x86/cpu/broadwell/northbridge.c
+++ b/arch/x86/cpu/broadwell/northbridge.c
@@ -11,6 +11,7 @@
 #include <asm/arch/iomap.h>
 #include <asm/arch/pch.h>
 #include <asm/arch/pei_data.h>
+#include <linux/string.h>
 
 __weak asmlinkage void sdram_console_tx_byte(unsigned char byte)
 {
diff --git a/arch/x86/cpu/broadwell/pinctrl_broadwell.c b/arch/x86/cpu/broadwell/pinctrl_broadwell.c
index 85bd37101ba2..2bc3ef97214c 100644
--- a/arch/x86/cpu/broadwell/pinctrl_broadwell.c
+++ b/arch/x86/cpu/broadwell/pinctrl_broadwell.c
@@ -19,6 +19,7 @@
 #include <dt-bindings/gpio/x86-gpio.h>
 #include <dm/pinctrl.h>
 #include <dm/uclass-internal.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/x86/cpu/broadwell/refcode.c b/arch/x86/cpu/broadwell/refcode.c
index 1e0a34de0c8b..ee045a348335 100644
--- a/arch/x86/cpu/broadwell/refcode.c
+++ b/arch/x86/cpu/broadwell/refcode.c
@@ -12,6 +12,7 @@
 #include <init.h>
 #include <log.h>
 #include <asm/arch/pei_data.h>
+#include <linux/string.h>
 
 #define RMODULE_MAGIC		0xf8fe
 #define RMODULE_VERSION_1	1
diff --git a/arch/x86/cpu/broadwell/sdram.c b/arch/x86/cpu/broadwell/sdram.c
index c104a849a545..874b2034b9f6 100644
--- a/arch/x86/cpu/broadwell/sdram.c
+++ b/arch/x86/cpu/broadwell/sdram.c
@@ -24,6 +24,7 @@
 #include <asm/arch/pch.h>
 #include <asm/arch/pei_data.h>
 #include <asm/arch/pm.h>
+#include <linux/string.h>
 
 ulong board_get_usable_ram_top(ulong total_size)
 {
diff --git a/arch/x86/cpu/cpu_x86.c b/arch/x86/cpu/cpu_x86.c
index dc7c8116d040..8b3a9e75d1d4 100644
--- a/arch/x86/cpu/cpu_x86.c
+++ b/arch/x86/cpu/cpu_x86.c
@@ -9,6 +9,7 @@
 #include <errno.h>
 #include <asm/cpu.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/x86/cpu/efi/payload.c b/arch/x86/cpu/efi/payload.c
index 9a73b768e9b8..d9955bb47149 100644
--- a/arch/x86/cpu/efi/payload.c
+++ b/arch/x86/cpu/efi/payload.c
@@ -15,6 +15,7 @@
 #include <asm/e820.h>
 #include <asm/global_data.h>
 #include <asm/post.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/x86/cpu/i386/cpu.c b/arch/x86/cpu/i386/cpu.c
index 7f6b1a93e1bb..f0a01c2295f2 100644
--- a/arch/x86/cpu/i386/cpu.c
+++ b/arch/x86/cpu/i386/cpu.c
@@ -32,6 +32,7 @@
 #include <asm/msr.h>
 #include <asm/mtrr.h>
 #include <asm/processor-flags.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/x86/cpu/intel_common/itss.c b/arch/x86/cpu/intel_common/itss.c
index 2f47bfe20e71..d6bc051397b8 100644
--- a/arch/x86/cpu/intel_common/itss.c
+++ b/arch/x86/cpu/intel_common/itss.c
@@ -19,6 +19,7 @@
 #include <spl.h>
 #include <asm/global_data.h>
 #include <asm/itss.h>
+#include <linux/string.h>
 
 struct itss_platdata {
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
diff --git a/arch/x86/cpu/intel_common/report_platform.c b/arch/x86/cpu/intel_common/report_platform.c
index a3612817c45b..2de29bbbe25e 100644
--- a/arch/x86/cpu/intel_common/report_platform.c
+++ b/arch/x86/cpu/intel_common/report_platform.c
@@ -11,6 +11,7 @@
 #include <asm/pci.h>
 #include <asm/report_platform.h>
 #include <asm/arch/pch.h>
+#include <linux/string.h>
 
 static void report_cpu_info(void)
 {
diff --git a/arch/x86/cpu/ivybridge/sata.c b/arch/x86/cpu/ivybridge/sata.c
index f47ecdffae76..40cb04158681 100644
--- a/arch/x86/cpu/ivybridge/sata.c
+++ b/arch/x86/cpu/ivybridge/sata.c
@@ -14,6 +14,7 @@
 #include <asm/pch_common.h>
 #include <asm/pci.h>
 #include <asm/arch/pch.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/x86/cpu/ivybridge/sdram.c b/arch/x86/cpu/ivybridge/sdram.c
index dd6b8753de68..b9cec969be87 100644
--- a/arch/x86/cpu/ivybridge/sdram.c
+++ b/arch/x86/cpu/ivybridge/sdram.c
@@ -37,6 +37,7 @@
 #include <asm/arch/pch.h>
 #include <asm/post.h>
 #include <asm/arch/sandybridge.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/x86/cpu/mp_init.c b/arch/x86/cpu/mp_init.c
index bd656d09520f..22cd1dbe52af 100644
--- a/arch/x86/cpu/mp_init.c
+++ b/arch/x86/cpu/mp_init.c
@@ -31,6 +31,7 @@
 #include <dm/root.h>
 #include <linux/delay.h>
 #include <linux/linkage.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/x86/cpu/qfw_cpu.c b/arch/x86/cpu/qfw_cpu.c
index 349bab1583ac..2747cb312c75 100644
--- a/arch/x86/cpu/qfw_cpu.c
+++ b/arch/x86/cpu/qfw_cpu.c
@@ -11,6 +11,7 @@
 #include <dm/lists.h>
 #include <dm/uclass-internal.h>
 #include <dm/root.h>
+#include <linux/string.h>
 
 int qemu_cpu_fixup(void)
 {
diff --git a/arch/x86/cpu/quark/acpi.c b/arch/x86/cpu/quark/acpi.c
index 82b776ff65f6..655f2a1ce6ac 100644
--- a/arch/x86/cpu/quark/acpi.c
+++ b/arch/x86/cpu/quark/acpi.c
@@ -9,6 +9,7 @@
 #include <asm/tables.h>
 #include <asm/arch/global_nvs.h>
 #include <asm/arch/iomap.h>
+#include <linux/string.h>
 
 void acpi_create_fadt(struct acpi_fadt *fadt, struct acpi_facs *facs,
 		      void *dsdt)
diff --git a/arch/x86/cpu/quark/dram.c b/arch/x86/cpu/quark/dram.c
index 2287dce12b52..d38c3d0809a7 100644
--- a/arch/x86/cpu/quark/dram.c
+++ b/arch/x86/cpu/quark/dram.c
@@ -18,6 +18,7 @@
 #include <asm/arch/mrc.h>
 #include <asm/arch/msg_port.h>
 #include <asm/arch/quark.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/x86/cpu/quark/smc.c b/arch/x86/cpu/quark/smc.c
index 824fe02d754f..b6167e934aa5 100644
--- a/arch/x86/cpu/quark/smc.c
+++ b/arch/x86/cpu/quark/smc.c
@@ -13,6 +13,7 @@
 #include <asm/arch/device.h>
 #include <asm/arch/mrc.h>
 #include <asm/arch/msg_port.h>
+#include <linux/string.h>
 #include "mrc_util.h"
 #include "hte.h"
 #include "smc.h"
diff --git a/arch/x86/cpu/tangier/acpi.c b/arch/x86/cpu/tangier/acpi.c
index 41bd177e095f..7a0020c74fe0 100644
--- a/arch/x86/cpu/tangier/acpi.c
+++ b/arch/x86/cpu/tangier/acpi.c
@@ -15,6 +15,7 @@
 #include <asm/arch/global_nvs.h>
 #include <asm/arch/iomap.h>
 #include <dm/uclass-internal.h>
+#include <linux/string.h>
 
 void acpi_create_fadt(struct acpi_fadt *fadt, struct acpi_facs *facs,
 		      void *dsdt)
diff --git a/arch/x86/cpu/tangier/sdram.c b/arch/x86/cpu/tangier/sdram.c
index 0f0ab4102be6..e1531385fb89 100644
--- a/arch/x86/cpu/tangier/sdram.c
+++ b/arch/x86/cpu/tangier/sdram.c
@@ -10,6 +10,7 @@
 #include <asm/global_data.h>
 #include <asm/sfi.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
index 83dc09757e0c..f0119c47b856 100644
--- a/arch/x86/include/asm/io.h
+++ b/arch/x86/include/asm/io.h
@@ -8,6 +8,7 @@
 #define _ASM_IO_H
 
 #include <compiler.h>
+#include <linux/string.h>
 
 /*
  * This file contains the definitions for the x86 IO instructions
diff --git a/arch/x86/include/asm/me_common.h b/arch/x86/include/asm/me_common.h
index 49d88623edf9..56e328846cfd 100644
--- a/arch/x86/include/asm/me_common.h
+++ b/arch/x86/include/asm/me_common.h
@@ -13,6 +13,7 @@
 #define __ASM_ME_COMMON_H
 
 #include <linux/compiler.h>
+#include <linux/string.h>
 #include <linux/types.h>
 #include <pci.h>
 
diff --git a/arch/x86/lib/acpi.c b/arch/x86/lib/acpi.c
index 155fffabf080..ffdc9e8257e1 100644
--- a/arch/x86/lib/acpi.c
+++ b/arch/x86/lib/acpi.c
@@ -8,6 +8,7 @@
 #include <acpi/acpi_table.h>
 #include <asm/io.h>
 #include <asm/tables.h>
+#include <linux/string.h>
 
 static struct acpi_rsdp *acpi_valid_rsdp(struct acpi_rsdp *rsdp)
 {
diff --git a/arch/x86/lib/acpi_nhlt.c b/arch/x86/lib/acpi_nhlt.c
index c64dd9c00819..8df5ddd4a7af 100644
--- a/arch/x86/lib/acpi_nhlt.c
+++ b/arch/x86/lib/acpi_nhlt.c
@@ -17,6 +17,7 @@
 #include <asm/acpi_nhlt.h>
 #include <asm/unaligned.h>
 #include <dm/acpi.h>
+#include <linux/string.h>
 
 #define NHLT_RID		1
 #define NHLT_SSID		1
diff --git a/arch/x86/lib/acpi_s3.c b/arch/x86/lib/acpi_s3.c
index 2c70acbe7b0b..244764152b23 100644
--- a/arch/x86/lib/acpi_s3.c
+++ b/arch/x86/lib/acpi_s3.c
@@ -10,6 +10,7 @@
 #include <asm/global_data.h>
 #include <asm/post.h>
 #include <linux/linkage.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/x86/lib/acpi_table.c b/arch/x86/lib/acpi_table.c
index c574f0c62304..c6500f62ad80 100644
--- a/arch/x86/lib/acpi_table.c
+++ b/arch/x86/lib/acpi_table.c
@@ -25,6 +25,7 @@
 #include <asm/arch/global_nvs.h>
 #include <dm/acpi.h>
 #include <linux/err.h>
+#include <linux/string.h>
 
 /*
  * IASL compiles the dsdt entries and writes the hex values
diff --git a/arch/x86/lib/bios.c b/arch/x86/lib/bios.c
index fbdc3b04e361..a4499972c322 100644
--- a/arch/x86/lib/bios.c
+++ b/arch/x86/lib/bios.c
@@ -17,6 +17,7 @@
 #include <asm/i8259.h>
 #include <asm/io.h>
 #include <asm/post.h>
+#include <linux/string.h>
 #include "bios.h"
 
 /* Interrupt handlers for each interrupt the ROM can call */
diff --git a/arch/x86/lib/cmd_boot.c b/arch/x86/lib/cmd_boot.c
index 4facbe5f32fb..b128b43cebe5 100644
--- a/arch/x86/lib/cmd_boot.c
+++ b/arch/x86/lib/cmd_boot.c
@@ -19,6 +19,7 @@
 #include <malloc.h>
 #include <asm/global_data.h>
 #include <asm/u-boot-x86.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/x86/lib/coreboot_table.c b/arch/x86/lib/coreboot_table.c
index 6eab0452fda6..b0377dcee177 100644
--- a/arch/x86/lib/coreboot_table.c
+++ b/arch/x86/lib/coreboot_table.c
@@ -11,6 +11,7 @@
 #include <asm/coreboot_tables.h>
 #include <asm/e820.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/x86/lib/fsp1/fsp_support.c b/arch/x86/lib/fsp1/fsp_support.c
index d84c632f1407..25aa71c6c20a 100644
--- a/arch/x86/lib/fsp1/fsp_support.c
+++ b/arch/x86/lib/fsp1/fsp_support.c
@@ -8,6 +8,7 @@
 #include <log.h>
 #include <asm/fsp1/fsp_support.h>
 #include <asm/post.h>
+#include <linux/string.h>
 
 struct fsp_header *__attribute__((optimize("O0"))) fsp_find_header(void)
 {
diff --git a/arch/x86/lib/fsp2/fsp_meminit.c b/arch/x86/lib/fsp2/fsp_meminit.c
index 022e2cb64e5a..abbe1a011dda 100644
--- a/arch/x86/lib/fsp2/fsp_meminit.c
+++ b/arch/x86/lib/fsp2/fsp_meminit.c
@@ -18,6 +18,7 @@
 #include <asm/fsp2/fsp_internal.h>
 #include <asm/arch/fsp/fsp_configs.h>
 #include <asm/arch/fsp/fsp_m_upd.h>
+#include <linux/string.h>
 
 static int prepare_mrc_cache_type(enum mrc_type_t type,
 				  struct mrc_data_container **cachep)
diff --git a/arch/x86/lib/fsp2/fsp_silicon_init.c b/arch/x86/lib/fsp2/fsp_silicon_init.c
index f86dbfa6c63c..ca064eaf7165 100644
--- a/arch/x86/lib/fsp2/fsp_silicon_init.c
+++ b/arch/x86/lib/fsp2/fsp_silicon_init.c
@@ -18,6 +18,7 @@
 #include <asm/fsp/fsp_infoheader.h>
 #include <asm/fsp2/fsp_internal.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 int fsp_silicon_init(bool s3wake, bool use_spi_flash)
 {
diff --git a/arch/x86/lib/fsp2/fsp_support.c b/arch/x86/lib/fsp2/fsp_support.c
index bcdf429f06ae..1f68479ec586 100644
--- a/arch/x86/lib/fsp2/fsp_support.c
+++ b/arch/x86/lib/fsp2/fsp_support.c
@@ -11,6 +11,7 @@
 #include <asm/fsp/fsp_support.h>
 #include <asm/fsp2/fsp_internal.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 /* The amount of the FSP header to probe to obtain what we need */
 #define PROBE_BUF_SIZE 0x180
diff --git a/arch/x86/lib/mpspec.c b/arch/x86/lib/mpspec.c
index 8021d8f75a4a..78724564605a 100644
--- a/arch/x86/lib/mpspec.c
+++ b/arch/x86/lib/mpspec.c
@@ -19,6 +19,7 @@
 #include <asm/mpspec.h>
 #include <asm/tables.h>
 #include <dm/uclass-internal.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/x86/lib/mrccache.c b/arch/x86/lib/mrccache.c
index b52691568012..12c24e1e46fb 100644
--- a/arch/x86/lib/mrccache.c
+++ b/arch/x86/lib/mrccache.c
@@ -19,6 +19,7 @@
 #include <asm/mrccache.h>
 #include <dm/device-internal.h>
 #include <dm/uclass-internal.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/x86/lib/physmem.c b/arch/x86/lib/physmem.c
index c11101b44ece..1589a8873506 100644
--- a/arch/x86/lib/physmem.c
+++ b/arch/x86/lib/physmem.c
@@ -14,6 +14,7 @@
 #include <asm/cpu.h>
 #include <asm/global_data.h>
 #include <linux/compiler.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/x86/lib/pirq_routing.c b/arch/x86/lib/pirq_routing.c
index caeaec9287fe..8aeba8496a9f 100644
--- a/arch/x86/lib/pirq_routing.c
+++ b/arch/x86/lib/pirq_routing.c
@@ -11,6 +11,7 @@
 #include <asm/global_data.h>
 #include <asm/pci.h>
 #include <asm/pirq_routing.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/x86/lib/relocate.c b/arch/x86/lib/relocate.c
index 6fe515164773..ffccbf54dfcd 100644
--- a/arch/x86/lib/relocate.c
+++ b/arch/x86/lib/relocate.c
@@ -21,6 +21,7 @@
 #include <asm/u-boot-x86.h>
 #include <asm/sections.h>
 #include <elf.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/x86/lib/scu.c b/arch/x86/lib/scu.c
index d29d701631d2..a9d06d82bb45 100644
--- a/arch/x86/lib/scu.c
+++ b/arch/x86/lib/scu.c
@@ -20,6 +20,7 @@
 #include <linux/errno.h>
 #include <linux/io.h>
 #include <linux/kernel.h>
+#include <linux/string.h>
 
 /* SCU register map */
 struct ipc_regs {
diff --git a/arch/x86/lib/sfi.c b/arch/x86/lib/sfi.c
index b48bd5d8f361..2e68504d886c 100644
--- a/arch/x86/lib/sfi.c
+++ b/arch/x86/lib/sfi.c
@@ -20,6 +20,7 @@
 #include <asm/sfi.h>
 #include <asm/tables.h>
 #include <dm/uclass-internal.h>
+#include <linux/string.h>
 
 struct table_info {
 	u32 base;
diff --git a/arch/x86/lib/spl.c b/arch/x86/lib/spl.c
index a220c71b5768..96885c6cc55f 100644
--- a/arch/x86/lib/spl.c
+++ b/arch/x86/lib/spl.c
@@ -24,6 +24,7 @@
 #include <asm/processor.h>
 #include <asm/spl.h>
 #include <asm-generic/sections.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/arch/x86/lib/string.c b/arch/x86/lib/string.c
index c6263cd2f5a8..d85b77a96240 100644
--- a/arch/x86/lib/string.c
+++ b/arch/x86/lib/string.c
@@ -7,6 +7,7 @@
 
 /* From glibc-2.14, sysdeps/i386/memset.c */
 
+#include <linux/string.h>
 #include <linux/types.h>
 #include <linux/compiler.h>
 #include <asm/string.h>
diff --git a/arch/x86/lib/tables.c b/arch/x86/lib/tables.c
index 730552a0ea55..e4ed0f4aae17 100644
--- a/arch/x86/lib/tables.c
+++ b/arch/x86/lib/tables.c
@@ -13,6 +13,7 @@
 #include <asm/mpspec.h>
 #include <asm/tables.h>
 #include <asm/coreboot_tables.h>
+#include <linux/string.h>
 
 /**
  * Function prototype to write a specific configuration table
diff --git a/arch/x86/lib/zimage.c b/arch/x86/lib/zimage.c
index d2b6002008ad..e7c0ff321208 100644
--- a/arch/x86/lib/zimage.c
+++ b/arch/x86/lib/zimage.c
@@ -29,6 +29,7 @@
 #endif
 #include <linux/compiler.h>
 #include <linux/libfdt.h>
+#include <linux/string.h>
 
 /*
  * Memory lay-out:
diff --git a/arch/xtensa/include/asm/io.h b/arch/xtensa/include/asm/io.h
index 76a646e8825c..14e906193602 100644
--- a/arch/xtensa/include/asm/io.h
+++ b/arch/xtensa/include/asm/io.h
@@ -9,6 +9,7 @@
 #ifndef _XTENSA_IO_H
 #define _XTENSA_IO_H
 
+#include <linux/string.h>
 #include <linux/types.h>
 #include <asm/byteorder.h>
 
diff --git a/arch/xtensa/lib/bootm.c b/arch/xtensa/lib/bootm.c
index b51d329c670b..c33bcf2f9edd 100644
--- a/arch/xtensa/lib/bootm.c
+++ b/arch/xtensa/lib/bootm.c
@@ -10,6 +10,7 @@
 #include <cpu_func.h>
 #include <env.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 #include <u-boot/zlib.h>
 #include <asm/byteorder.h>
 #include <asm/addrspace.h>
diff --git a/arch/xtensa/lib/relocate.c b/arch/xtensa/lib/relocate.c
index 91141f581e13..ffe39d4a03ca 100644
--- a/arch/xtensa/lib/relocate.c
+++ b/arch/xtensa/lib/relocate.c
@@ -6,6 +6,7 @@
 #include <relocate.h>
 #include <asm/sections.h>
 #include <asm/string.h>
+#include <linux/string.h>
 
 int clear_bss(void)
 {
diff --git a/board/Arcturus/ucp1020/cmd_arc.c b/board/Arcturus/ucp1020/cmd_arc.c
index 4b30b66e208f..99652dde928a 100644
--- a/board/Arcturus/ucp1020/cmd_arc.c
+++ b/board/Arcturus/ucp1020/cmd_arc.c
@@ -19,6 +19,7 @@
 #include <mmc.h>
 #include <version.h>
 #include <asm/io.h>
+#include <linux/string.h>
 #include <linux/stringify.h>
 
 static ulong fwenv_addr[MAX_FWENV_ADDR];
diff --git a/board/Arcturus/ucp1020/ddr.c b/board/Arcturus/ucp1020/ddr.c
index a3285ebe5cdf..712023faf7d0 100644
--- a/board/Arcturus/ucp1020/ddr.c
+++ b/board/Arcturus/ucp1020/ddr.c
@@ -16,6 +16,7 @@
 #include <fsl_ddr_dimm_params.h>
 #include <asm/io.h>
 #include <asm/fsl_law.h>
+#include <linux/string.h>
 
 #ifdef CONFIG_SYS_DDR_RAW_TIMING
 #if defined(CONFIG_UCP1020) || defined(CONFIG_UCP1020T1)
diff --git a/board/Arcturus/ucp1020/spl.c b/board/Arcturus/ucp1020/spl.c
index 34660e59f44e..b5db24da2942 100644
--- a/board/Arcturus/ucp1020/spl.c
+++ b/board/Arcturus/ucp1020/spl.c
@@ -21,6 +21,7 @@
 #include <fsl_esdhc.h>
 #include <spi_flash.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/Arcturus/ucp1020/ucp1020.c b/board/Arcturus/ucp1020/ucp1020.c
index 24d1d57ec4bd..0846bb0e9ef3 100644
--- a/board/Arcturus/ucp1020/ucp1020.c
+++ b/board/Arcturus/ucp1020/ucp1020.c
@@ -40,6 +40,7 @@
 #include <asm/fsl_law.h>
 #include <asm/fsl_lbc.h>
 #include <asm/mp.h>
+#include <linux/string.h>
 #include "ucp1020.h"
 
 void spi_set_speed(struct spi_slave *slave, uint hz)
diff --git a/board/BuR/common/common.c b/board/BuR/common/common.c
index d2d4ea5835bb..c42711d97330 100644
--- a/board/BuR/common/common.c
+++ b/board/BuR/common/common.c
@@ -17,6 +17,7 @@
 #include <lcd.h>
 #include <asm/global_data.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "bur_common.h"
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/board/BuS/eb_cpu5282/eb_cpu5282.c b/board/BuS/eb_cpu5282/eb_cpu5282.c
index 03a02ffd29c5..fb612c70752f 100644
--- a/board/BuS/eb_cpu5282/eb_cpu5282.c
+++ b/board/BuS/eb_cpu5282/eb_cpu5282.c
@@ -10,6 +10,7 @@
 #include <common.h>
 #include <command.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 #include "asm/m5282.h"
 #include <bmp_layout.h>
 #include <env.h>
diff --git a/board/CZ.NIC/turris_omnia/turris_omnia.c b/board/CZ.NIC/turris_omnia/turris_omnia.c
index 0353d58a361b..b84227a56e0e 100644
--- a/board/CZ.NIC/turris_omnia/turris_omnia.c
+++ b/board/CZ.NIC/turris_omnia/turris_omnia.c
@@ -23,6 +23,7 @@
 #include <fdt_support.h>
 #include <time.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 # include <atsha204a-i2c.h>
 
diff --git a/board/Synology/ds109/ds109.c b/board/Synology/ds109/ds109.c
index bf57ffff4385..7159535ec456 100644
--- a/board/Synology/ds109/ds109.c
+++ b/board/Synology/ds109/ds109.c
@@ -15,6 +15,7 @@
 #include <asm/arch/soc.h>
 #include <asm/arch/mpp.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "ds109.h"
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/board/Synology/ds414/cmd_syno.c b/board/Synology/ds414/cmd_syno.c
index a120c3123ffb..94a56368970e 100644
--- a/board/Synology/ds414/cmd_syno.c
+++ b/board/Synology/ds414/cmd_syno.c
@@ -13,6 +13,7 @@
 #include <spi.h>
 #include <spi_flash.h>
 #include <linux/mtd/mtd.h>
+#include <linux/string.h>
 
 #include <asm/io.h>
 #include "../drivers/ddr/marvell/axp/ddr3_init.h"
diff --git a/board/advantech/imx8qm_rom7720_a1/spl.c b/board/advantech/imx8qm_rom7720_a1/spl.c
index 8493bb01588d..5a9a00905354 100644
--- a/board/advantech/imx8qm_rom7720_a1/spl.c
+++ b/board/advantech/imx8qm_rom7720_a1/spl.c
@@ -10,6 +10,7 @@
 #include <spl.h>
 #include <fsl_esdhc.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 #include <asm/io.h>
 #include <asm/gpio.h>
diff --git a/board/aristainetos/aristainetos.c b/board/aristainetos/aristainetos.c
index a28f67a0b13a..ab73a928d667 100644
--- a/board/aristainetos/aristainetos.c
+++ b/board/aristainetos/aristainetos.c
@@ -34,6 +34,7 @@
 #include <miiphy.h>
 #include <lcd.h>
 #include <led.h>
+#include <linux/string.h>
 #include <power/pmic.h>
 #include <power/regulator.h>
 #include <power/da9063_pmic.h>
diff --git a/board/armltd/vexpress/vexpress_common.c b/board/armltd/vexpress/vexpress_common.c
index d34c03bf9dd5..d359a36c7745 100644
--- a/board/armltd/vexpress/vexpress_common.c
+++ b/board/armltd/vexpress/vexpress_common.c
@@ -29,6 +29,7 @@
 #include <asm/arch/systimer.h>
 #include <asm/arch/sysctrl.h>
 #include <asm/arch/wdt.h>
+#include <linux/string.h>
 #include "../drivers/mmc/arm_pl180_mmci.h"
 
 static struct systimer *systimer_base = (struct systimer *)V2M_TIMER01;
diff --git a/board/armltd/vexpress/vexpress_tc2.c b/board/armltd/vexpress/vexpress_tc2.c
index 8ee24bdde731..fe5389b4e446 100644
--- a/board/armltd/vexpress/vexpress_tc2.c
+++ b/board/armltd/vexpress/vexpress_tc2.c
@@ -11,6 +11,7 @@
 #include <asm/u-boot.h>
 #include <common.h>
 #include <linux/libfdt.h>
+#include <linux/string.h>
 
 #define SCC_BASE	0x7fff0000
 
diff --git a/board/armltd/vexpress64/vexpress64.c b/board/armltd/vexpress64/vexpress64.c
index 6bf2ed23190b..cc118a02f116 100644
--- a/board/armltd/vexpress64/vexpress64.c
+++ b/board/armltd/vexpress64/vexpress64.c
@@ -16,6 +16,7 @@
 #include <asm/io.h>
 #include <linux/compiler.h>
 #include <dm/platform_data/serial_pl01x.h>
+#include <linux/string.h>
 #include "pcie.h"
 #include <asm/armv8/mmu.h>
 
diff --git a/board/atmel/common/mac-spi-nor.c b/board/atmel/common/mac-spi-nor.c
index ced27b65e63b..3b150dac7d86 100644
--- a/board/atmel/common/mac-spi-nor.c
+++ b/board/atmel/common/mac-spi-nor.c
@@ -11,6 +11,7 @@
 #include <net.h>
 #include <linux/mtd/spi-nor.h>
 #include <netdev.h>
+#include <linux/string.h>
 
 #define ETH_ADDR_SIZE			6
 
diff --git a/board/atmel/common/video_display.c b/board/atmel/common/video_display.c
index a5049f4aad41..33725a01f505 100644
--- a/board/atmel/common/video_display.c
+++ b/board/atmel/common/video_display.c
@@ -16,6 +16,7 @@
 #include <asm/global_data.h>
 #include <asm/io.h>
 #include <asm/arch/clk.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/atmel/sama5d3xek/sama5d3xek.c b/board/atmel/sama5d3xek/sama5d3xek.c
index b6f8dcd91dc0..4fe979bc8a56 100644
--- a/board/atmel/sama5d3xek/sama5d3xek.c
+++ b/board/atmel/sama5d3xek/sama5d3xek.c
@@ -19,6 +19,7 @@
 #include <spl.h>
 #include <asm/arch/atmel_mpddrc.h>
 #include <asm/arch/at91_wdt.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/barco/platinum/spl_picon.c b/board/barco/platinum/spl_picon.c
index 253a64d28eba..aa33d1feb32c 100644
--- a/board/barco/platinum/spl_picon.c
+++ b/board/barco/platinum/spl_picon.c
@@ -18,6 +18,7 @@
 #include <asm/mach-imx/iomux-v3.h>
 #include <asm/mach-imx/mxc_i2c.h>
 #include <spl.h>
+#include <linux/string.h>
 
 #include "platinum.h"
 
diff --git a/board/barco/platinum/spl_titanium.c b/board/barco/platinum/spl_titanium.c
index 8c91b752ffe0..ef1e2c419b46 100644
--- a/board/barco/platinum/spl_titanium.c
+++ b/board/barco/platinum/spl_titanium.c
@@ -18,6 +18,7 @@
 #include <asm/mach-imx/iomux-v3.h>
 #include <asm/mach-imx/mxc_i2c.h>
 #include <spl.h>
+#include <linux/string.h>
 
 #include "platinum.h"
 
diff --git a/board/beacon/imx8mm/spl.c b/board/beacon/imx8mm/spl.c
index 12266b22a42f..572dc5191233 100644
--- a/board/beacon/imx8mm/spl.c
+++ b/board/beacon/imx8mm/spl.c
@@ -14,6 +14,7 @@
 #include <asm/arch/sys_proto.h>
 #include <asm/mach-imx/boot_mode.h>
 #include <asm/arch/ddr.h>
+#include <linux/string.h>
 
 #include <dm/uclass.h>
 #include <dm/device.h>
diff --git a/board/beckhoff/mx53cx9020/mx53cx9020.c b/board/beckhoff/mx53cx9020/mx53cx9020.c
index a3657db8266c..e451ef9ef36c 100644
--- a/board/beckhoff/mx53cx9020/mx53cx9020.c
+++ b/board/beckhoff/mx53cx9020/mx53cx9020.c
@@ -18,6 +18,7 @@
 #include <ACEX1K.h>
 #include <asm/gpio.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 enum LED_GPIOS {
 	GPIO_SD1_CD = IMX_GPIO_NR(1, 1),
diff --git a/board/bluewater/gurnard/gurnard.c b/board/bluewater/gurnard/gurnard.c
index c5c8bcc598e6..2ac23674f9c1 100644
--- a/board/bluewater/gurnard/gurnard.c
+++ b/board/bluewater/gurnard/gurnard.c
@@ -35,6 +35,7 @@
 #include <asm/arch/gpio.h>
 #include <dm/uclass-internal.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #ifdef CONFIG_GURNARD_SPLASH
 #include "splash_logo.h"
diff --git a/board/boundary/nitrogen6x/nitrogen6x.c b/board/boundary/nitrogen6x/nitrogen6x.c
index 84e14d1124fc..3cc093ed5307 100644
--- a/board/boundary/nitrogen6x/nitrogen6x.c
+++ b/board/boundary/nitrogen6x/nitrogen6x.c
@@ -35,6 +35,7 @@
 #include <i2c.h>
 #include <input.h>
 #include <netdev.h>
+#include <linux/string.h>
 #include <usb/ehci-ci.h>
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/board/cavium/thunderx/atf.c b/board/cavium/thunderx/atf.c
index 64aa198765fe..a60c944089dd 100644
--- a/board/cavium/thunderx/atf.c
+++ b/board/cavium/thunderx/atf.c
@@ -8,6 +8,7 @@
 #include <asm/cache.h>
 #include <asm/io.h>
 #include <asm/ptrace.h>
+#include <linux/string.h>
 
 #include <asm/system.h>
 #include <cavium/thunderx_svc.h>
diff --git a/board/cobra5272/flash.c b/board/cobra5272/flash.c
index 9aa8f118baf5..cefcc6634ffb 100644
--- a/board/cobra5272/flash.c
+++ b/board/cobra5272/flash.c
@@ -12,6 +12,7 @@
 #include <time.h>
 #include <uuid.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #define PHYS_FLASH_1 CONFIG_SYS_FLASH_BASE
 #define FLASH_BANK_SIZE 0x200000
@@ -72,7 +73,7 @@ unsigned long flash_init(void)
 			(AMD_ID_PL160CB & FLASH_TYPEMASK);
 		flash_info[i].size = FLASH_BANK_SIZE;
 		flash_info[i].sector_count = CONFIG_SYS_MAX_FLASH_SECT;
-		memset (flash_info[i].protect, 0, CONFIG_SYS_MAX_FLASH_SECT);
+		memset(flash_info[i].protect, 0, CONFIG_SYS_MAX_FLASH_SECT);
 		if (i == 0)
 			flashbase = PHYS_FLASH_1;
 		else
diff --git a/board/compulab/cl-som-imx7/spl.c b/board/compulab/cl-som-imx7/spl.c
index 9c7332b43b57..0128b912801c 100644
--- a/board/compulab/cl-som-imx7/spl.c
+++ b/board/compulab/cl-som-imx7/spl.c
@@ -16,6 +16,7 @@
 #include <asm/arch-mx7/mx7-pins.h>
 #include <asm/arch-mx7/clock.h>
 #include <asm/arch-mx7/mx7-ddr.h>
+#include <linux/string.h>
 #include "common.h"
 
 #ifdef CONFIG_FSL_ESDHC_IMX
diff --git a/board/compulab/cm_fx6/cm_fx6.c b/board/compulab/cm_fx6/cm_fx6.c
index 2b11b7ee189b..46da479a45fc 100644
--- a/board/compulab/cm_fx6/cm_fx6.c
+++ b/board/compulab/cm_fx6/cm_fx6.c
@@ -37,6 +37,7 @@
 #include <dm/device-internal.h>
 #include <jffs2/load_kernel.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "common.h"
 #include "../common/eeprom.h"
 #include "../common/common.h"
diff --git a/board/compulab/common/eeprom.c b/board/compulab/common/eeprom.c
index 5206cf5c0ad7..fa4ab7d65672 100644
--- a/board/compulab/common/eeprom.c
+++ b/board/compulab/common/eeprom.c
@@ -13,6 +13,7 @@
 #include <eeprom_field.h>
 #include <asm/setup.h>
 #include <linux/kernel.h>
+#include <linux/string.h>
 #include "eeprom.h"
 
 #ifndef CONFIG_SYS_I2C_EEPROM_ADDR
diff --git a/board/compulab/common/omap3_display.c b/board/compulab/common/omap3_display.c
index cb9ebae7f964..e1511e82eccc 100644
--- a/board/compulab/common/omap3_display.c
+++ b/board/compulab/common/omap3_display.c
@@ -16,6 +16,7 @@
 #include <lcd.h>
 #include <scf0403_lcd.h>
 #include <asm/arch-omap3/dss.h>
+#include <linux/string.h>
 
 enum display_type {
 	NONE,
diff --git a/board/congatec/cgtqmx6eval/cgtqmx6eval.c b/board/congatec/cgtqmx6eval/cgtqmx6eval.c
index 6ae4a1af8921..3f74cd87890f 100644
--- a/board/congatec/cgtqmx6eval/cgtqmx6eval.c
+++ b/board/congatec/cgtqmx6eval/cgtqmx6eval.c
@@ -29,6 +29,7 @@
 #include <i2c.h>
 #include <input.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <power/pmic.h>
 #include <power/pfuze100_pmic.h>
 #include <linux/fb.h>
diff --git a/board/corscience/tricorder/tricorder-eeprom.c b/board/corscience/tricorder/tricorder-eeprom.c
index d0b91864c27f..266f43a0058f 100644
--- a/board/corscience/tricorder/tricorder-eeprom.c
+++ b/board/corscience/tricorder/tricorder-eeprom.c
@@ -9,6 +9,7 @@
 #include <display_options.h>
 #include <eeprom.h>
 #include <i2c.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 
 #include "tricorder-eeprom.h"
diff --git a/board/corscience/tricorder/tricorder.c b/board/corscience/tricorder/tricorder.c
index 3f4a40fd6593..a6fc7f67d02f 100644
--- a/board/corscience/tricorder/tricorder.c
+++ b/board/corscience/tricorder/tricorder.c
@@ -21,6 +21,7 @@
 #include <asm/arch/mux.h>
 #include <asm/arch/sys_proto.h>
 #include <asm/arch/mem.h>
+#include <linux/string.h>
 #include "tricorder.h"
 #include "tricorder-eeprom.h"
 
diff --git a/board/creative/xfi3/spl_boot.c b/board/creative/xfi3/spl_boot.c
index 67c1e9801b9b..64a13cef305c 100644
--- a/board/creative/xfi3/spl_boot.c
+++ b/board/creative/xfi3/spl_boot.c
@@ -11,6 +11,7 @@
 #include <asm/arch/iomux-mx23.h>
 #include <asm/arch/imx-regs.h>
 #include <asm/arch/sys_proto.h>
+#include <linux/string.h>
 
 #define	MUX_CONFIG_EMI	(MXS_PAD_1V8 | MXS_PAD_12MA | MXS_PAD_PULLUP)
 #define	MUX_CONFIG_SSP	(MXS_PAD_3V3 | MXS_PAD_8MA | MXS_PAD_PULLUP)
diff --git a/board/cssi/MCR3000/MCR3000.c b/board/cssi/MCR3000/MCR3000.c
index c20e87149493..2603ad4c57d8 100644
--- a/board/cssi/MCR3000/MCR3000.c
+++ b/board/cssi/MCR3000/MCR3000.c
@@ -19,6 +19,7 @@
 #include <dm/uclass.h>
 #include <wdt.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/davinci/da8xxevm/da850evm.c b/board/davinci/da8xxevm/da850evm.c
index 383a86173849..7b3f303f3a74 100644
--- a/board/davinci/da8xxevm/da850evm.c
+++ b/board/davinci/da8xxevm/da850evm.c
@@ -27,6 +27,7 @@
 #include <hwconfig.h>
 #include <asm/mach-types.h>
 #include <asm/gpio.h>
+#include <linux/string.h>
 
 #ifdef CONFIG_MMC_DAVINCI
 #include <mmc.h>
diff --git a/board/davinci/da8xxevm/omapl138_lcdk.c b/board/davinci/da8xxevm/omapl138_lcdk.c
index 7607e313b752..3f4bd39ec8fd 100644
--- a/board/davinci/da8xxevm/omapl138_lcdk.c
+++ b/board/davinci/da8xxevm/omapl138_lcdk.c
@@ -26,6 +26,7 @@
 #include <mmc.h>
 #include <asm/arch/sdmmc_defs.h>
 #endif
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/dhelectronics/dh_imx6/dh_imx6.c b/board/dhelectronics/dh_imx6/dh_imx6.c
index 2969e90a707d..c8c99a2aa47d 100644
--- a/board/dhelectronics/dh_imx6/dh_imx6.c
+++ b/board/dhelectronics/dh_imx6/dh_imx6.c
@@ -34,6 +34,7 @@
 #include <mmc.h>
 #include <usb.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <usb/ehci-ci.h>
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/board/dhelectronics/dh_imx6/dh_imx6_spl.c b/board/dhelectronics/dh_imx6/dh_imx6_spl.c
index e49e97724a58..dd8f1625be3c 100644
--- a/board/dhelectronics/dh_imx6/dh_imx6_spl.c
+++ b/board/dhelectronics/dh_imx6/dh_imx6_spl.c
@@ -26,6 +26,7 @@
 #include <mmc.h>
 #include <spl.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #define ENET_PAD_CTRL							\
 	(PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm |	\
diff --git a/board/dhelectronics/dh_stm32mp1/board.c b/board/dhelectronics/dh_stm32mp1/board.c
index 73e8c3f9b48f..ddf8f67ae6cf 100644
--- a/board/dhelectronics/dh_stm32mp1/board.c
+++ b/board/dhelectronics/dh_stm32mp1/board.c
@@ -36,6 +36,7 @@
 #include <linux/bitops.h>
 #include <linux/delay.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <power/regulator.h>
 #include <remoteproc.h>
 #include <reset.h>
diff --git a/board/egnite/ethernut5/ethernut5_pwrman.c b/board/egnite/ethernut5/ethernut5_pwrman.c
index 81f1abf2fad9..56c33bfade4b 100644
--- a/board/egnite/ethernut5/ethernut5_pwrman.c
+++ b/board/egnite/ethernut5/ethernut5_pwrman.c
@@ -39,6 +39,7 @@
 #include <asm/io.h>
 #include <i2c.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include "ethernut5_pwrman.h"
 
diff --git a/board/el/el6x/el6x.c b/board/el/el6x/el6x.c
index ddac58f73d28..382a255d1623 100644
--- a/board/el/el6x/el6x.c
+++ b/board/el/el6x/el6x.c
@@ -31,6 +31,7 @@
 #include <asm/arch/sys_proto.h>
 #include <i2c.h>
 #include <input.h>
+#include <linux/string.h>
 #include <power/pmic.h>
 #include <power/pfuze100_pmic.h>
 #include <asm/arch/mx6-ddr.h>
diff --git a/board/engicam/common/board.c b/board/engicam/common/board.c
index df9149e0d6d8..28080d423b39 100644
--- a/board/engicam/common/board.c
+++ b/board/engicam/common/board.c
@@ -17,6 +17,7 @@
 #include <asm/arch/sys_proto.h>
 #include <watchdog.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 #include "board.h"
 
diff --git a/board/engicam/common/spl.c b/board/engicam/common/spl.c
index 6a0612481a8a..d57419a78efe 100644
--- a/board/engicam/common/spl.c
+++ b/board/engicam/common/spl.c
@@ -11,6 +11,7 @@
 #include <serial.h>
 #include <spl.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include <asm/io.h>
 #include <asm/gpio.h>
diff --git a/board/esd/meesc/meesc.c b/board/esd/meesc/meesc.c
index eaa525eb0049..81aa22bc8314 100644
--- a/board/esd/meesc/meesc.c
+++ b/board/esd/meesc/meesc.c
@@ -28,6 +28,7 @@
 #include <asm/arch/at91_pio.h>
 #include <asm/arch/clk.h>
 #include <netdev.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/esd/vme8349/caddy.c b/board/esd/vme8349/caddy.c
index ba91f4b3c843..fc4855a5beae 100644
--- a/board/esd/vme8349/caddy.c
+++ b/board/esd/vme8349/caddy.c
@@ -15,6 +15,7 @@
 #include <pci.h>
 #include <asm/mmu.h>
 #include <asm/io.h>
+#include <linux/string.h>
 
 #include "caddy.h"
 
diff --git a/board/esd/vme8349/vme8349.c b/board/esd/vme8349/vme8349.c
index d388fc6d4901..56dd2269cb8b 100644
--- a/board/esd/vme8349/vme8349.c
+++ b/board/esd/vme8349/vme8349.c
@@ -28,6 +28,7 @@
 #include <spd_sdram.h>
 #include <i2c.h>
 #include <netdev.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/firefly/roc-pc-rk3399/roc-pc-rk3399.c b/board/firefly/roc-pc-rk3399/roc-pc-rk3399.c
index 93e7d776fb2f..7029bf7bf869 100644
--- a/board/firefly/roc-pc-rk3399/roc-pc-rk3399.c
+++ b/board/firefly/roc-pc-rk3399/roc-pc-rk3399.c
@@ -9,6 +9,7 @@
 #include <log.h>
 #include <spl_gpio.h>
 #include <asm/io.h>
+#include <linux/string.h>
 #include <power/regulator.h>
 
 #include <asm/arch-rockchip/cru.h>
diff --git a/board/freescale/common/fsl_validate.c b/board/freescale/common/fsl_validate.c
index 564a8b3b54ff..213545e777f4 100644
--- a/board/freescale/common/fsl_validate.c
+++ b/board/freescale/common/fsl_validate.c
@@ -13,6 +13,7 @@
 #include <command.h>
 #include <log.h>
 #include <malloc.h>
+#include <linux/string.h>
 #include <u-boot/rsa-mod-exp.h>
 #include <hash.h>
 #include <fsl_secboot_err.h>
diff --git a/board/freescale/common/ngpixis.c b/board/freescale/common/ngpixis.c
index 37a6f775a057..a89b07986bb0 100644
--- a/board/freescale/common/ngpixis.c
+++ b/board/freescale/common/ngpixis.c
@@ -32,6 +32,7 @@
 #include <common.h>
 #include <command.h>
 #include <asm/io.h>
+#include <linux/string.h>
 
 #include "ngpixis.h"
 
diff --git a/board/freescale/common/pixis.c b/board/freescale/common/pixis.c
index 4127fbc1396c..99e8069ad299 100644
--- a/board/freescale/common/pixis.c
+++ b/board/freescale/common/pixis.c
@@ -8,6 +8,7 @@
 #include <common.h>
 #include <command.h>
 #include <asm/io.h>
+#include <linux/string.h>
 
 #define pixis_base (u8 *)PIXIS_BASE
 
diff --git a/board/freescale/common/qixis.c b/board/freescale/common/qixis.c
index 1696c24e27bc..8592b0f0f0ac 100644
--- a/board/freescale/common/qixis.c
+++ b/board/freescale/common/qixis.c
@@ -11,6 +11,7 @@
 #include <command.h>
 #include <asm/io.h>
 #include <linux/compiler.h>
+#include <linux/string.h>
 #include <linux/time.h>
 #include <i2c.h>
 #include "qixis.h"
diff --git a/board/freescale/common/sgmii_riser.c b/board/freescale/common/sgmii_riser.c
index 23157930101f..e6481f695167 100644
--- a/board/freescale/common/sgmii_riser.c
+++ b/board/freescale/common/sgmii_riser.c
@@ -19,6 +19,7 @@
 #include <linux/libfdt.h>
 #include <tsec.h>
 #include <fdt_support.h>
+#include <linux/string.h>
 
 void fsl_sgmii_riser_init(struct tsec_info_struct *tsec_info, int num)
 {
diff --git a/board/freescale/common/sys_eeprom.c b/board/freescale/common/sys_eeprom.c
index 728245d81cda..566920d5feb9 100644
--- a/board/freescale/common/sys_eeprom.c
+++ b/board/freescale/common/sys_eeprom.c
@@ -13,6 +13,7 @@
 #include <init.h>
 #include <linux/ctype.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 
 #ifdef CONFIG_SYS_I2C_EEPROM_CCID
diff --git a/board/freescale/corenet_ds/ddr.c b/board/freescale/corenet_ds/ddr.c
index 2c440673e7c3..a8e499869f5d 100644
--- a/board/freescale/corenet_ds/ddr.c
+++ b/board/freescale/corenet_ds/ddr.c
@@ -14,6 +14,7 @@
 #include <fsl_ddr_sdram.h>
 #include <fsl_ddr_dimm_params.h>
 #include <asm/fsl_law.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/freescale/corenet_ds/eth_hydra.c b/board/freescale/corenet_ds/eth_hydra.c
index 8112c12568d2..90ce999be0cb 100644
--- a/board/freescale/corenet_ds/eth_hydra.c
+++ b/board/freescale/corenet_ds/eth_hydra.c
@@ -56,6 +56,7 @@
 #include <malloc.h>
 #include <fdt_support.h>
 #include <fsl_dtsec.h>
+#include <linux/string.h>
 
 #include "../common/ngpixis.h"
 #include "../common/fman.h"
diff --git a/board/freescale/corenet_ds/eth_superhydra.c b/board/freescale/corenet_ds/eth_superhydra.c
index 35daa1e80f3a..296b2b100276 100644
--- a/board/freescale/corenet_ds/eth_superhydra.c
+++ b/board/freescale/corenet_ds/eth_superhydra.c
@@ -57,6 +57,7 @@
 #include <malloc.h>
 #include <fdt_support.h>
 #include <fsl_dtsec.h>
+#include <linux/string.h>
 
 #include "../common/ngpixis.h"
 #include "../common/fman.h"
diff --git a/board/freescale/imx8mm_evk/spl.c b/board/freescale/imx8mm_evk/spl.c
index 64bc60651d3e..fbc13ad128ad 100644
--- a/board/freescale/imx8mm_evk/spl.c
+++ b/board/freescale/imx8mm_evk/spl.c
@@ -19,6 +19,7 @@
 #include <asm/arch/sys_proto.h>
 #include <asm/mach-imx/boot_mode.h>
 #include <asm/arch/ddr.h>
+#include <linux/string.h>
 
 #include <dm/uclass.h>
 #include <dm/device.h>
diff --git a/board/freescale/imx8mn_evk/spl.c b/board/freescale/imx8mn_evk/spl.c
index 6d5c7a5b4676..9f3c58841284 100644
--- a/board/freescale/imx8mn_evk/spl.c
+++ b/board/freescale/imx8mn_evk/spl.c
@@ -20,6 +20,7 @@
 #include <asm/arch/sys_proto.h>
 #include <asm/mach-imx/boot_mode.h>
 #include <asm/arch/ddr.h>
+#include <linux/string.h>
 
 #include <dm/uclass.h>
 #include <dm/device.h>
diff --git a/board/freescale/imx8mq_evk/spl.c b/board/freescale/imx8mq_evk/spl.c
index 82753585f2f0..66a0be0b3df2 100644
--- a/board/freescale/imx8mq_evk/spl.c
+++ b/board/freescale/imx8mq_evk/spl.c
@@ -24,6 +24,7 @@
 #include <fsl_esdhc_imx.h>
 #include <mmc.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <power/pmic.h>
 #include <power/pfuze100_pmic.h>
 #include <spl.h>
diff --git a/board/freescale/imx8qm_mek/imx8qm_mek.c b/board/freescale/imx8qm_mek/imx8qm_mek.c
index c6772206244c..7b280be8e94d 100644
--- a/board/freescale/imx8qm_mek/imx8qm_mek.c
+++ b/board/freescale/imx8qm_mek/imx8qm_mek.c
@@ -18,6 +18,7 @@
 #include <asm/arch/imx8-pins.h>
 #include <asm/arch/iomux.h>
 #include <asm/arch/sys_proto.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/freescale/imx8qm_mek/spl.c b/board/freescale/imx8qm_mek/spl.c
index 944ba745c09f..cdbff80e31bb 100644
--- a/board/freescale/imx8qm_mek/spl.c
+++ b/board/freescale/imx8qm_mek/spl.c
@@ -17,6 +17,7 @@
 #include <dm/device-internal.h>
 #include <dm/lists.h>
 #include <asm/arch/sys_proto.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/freescale/imx8qxp_mek/imx8qxp_mek.c b/board/freescale/imx8qxp_mek/imx8qxp_mek.c
index 7179823a2235..645e99235482 100644
--- a/board/freescale/imx8qxp_mek/imx8qxp_mek.c
+++ b/board/freescale/imx8qxp_mek/imx8qxp_mek.c
@@ -21,6 +21,7 @@
 #include <asm/arch/snvs_security_sc.h>
 #include <asm/arch/iomux.h>
 #include <asm/arch/sys_proto.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/freescale/imx8qxp_mek/spl.c b/board/freescale/imx8qxp_mek/spl.c
index ae6b64ff6ea1..9eb4268ce3fe 100644
--- a/board/freescale/imx8qxp_mek/spl.c
+++ b/board/freescale/imx8qxp_mek/spl.c
@@ -22,6 +22,7 @@
 #include <asm/arch/imx8-pins.h>
 #include <asm/arch/iomux.h>
 #include <asm/arch/sys_proto.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/freescale/ls1012aqds/ls1012aqds.c b/board/freescale/ls1012aqds/ls1012aqds.c
index b77808ea57b7..5c89385acca4 100644
--- a/board/freescale/ls1012aqds/ls1012aqds.c
+++ b/board/freescale/ls1012aqds/ls1012aqds.c
@@ -29,6 +29,7 @@
 #include <spl.h>
 #include <netdev.h>
 #include <fsl_sec.h>
+#include <linux/string.h>
 #include "../common/qixis.h"
 #include "ls1012aqds_qixis.h"
 #include "ls1012aqds_pfe.h"
diff --git a/board/freescale/ls1012ardb/ls1012ardb.c b/board/freescale/ls1012ardb/ls1012ardb.c
index ed6dc9ff712f..02f3ff6aa029 100644
--- a/board/freescale/ls1012ardb/ls1012ardb.c
+++ b/board/freescale/ls1012ardb/ls1012ardb.c
@@ -28,6 +28,7 @@
 #include <fsl_mmdc.h>
 #include <netdev.h>
 #include <fsl_sec.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/freescale/ls1021aiot/dcu.c b/board/freescale/ls1021aiot/dcu.c
index e4fbcbcaad35..55706549852c 100644
--- a/board/freescale/ls1021aiot/dcu.c
+++ b/board/freescale/ls1021aiot/dcu.c
@@ -8,6 +8,7 @@
 #include <common.h>
 #include <fsl_dcu_fb.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 #include "div64.h"
 #include "../common/dcu_sii9022a.h"
 
diff --git a/board/freescale/ls1021aiot/ls1021aiot.c b/board/freescale/ls1021aiot/ls1021aiot.c
index bfe613760427..d257f9723e35 100644
--- a/board/freescale/ls1021aiot/ls1021aiot.c
+++ b/board/freescale/ls1021aiot/ls1021aiot.c
@@ -14,6 +14,7 @@
 #include <asm/arch/ls102xa_stream_id.h>
 #include <asm/global_data.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include <asm/arch/ls102xa_devdis.h>
 #include <asm/arch/ls102xa_soc.h>
diff --git a/board/freescale/ls1021aqds/dcu.c b/board/freescale/ls1021aqds/dcu.c
index f66961ca5907..1bfd94bb7a18 100644
--- a/board/freescale/ls1021aqds/dcu.c
+++ b/board/freescale/ls1021aqds/dcu.c
@@ -11,6 +11,7 @@
 #include <common.h>
 #include <fsl_dcu_fb.h>
 #include <i2c.h>
+#include <linux/string.h>
 #include "div64.h"
 #include "../common/diu_ch7301.h"
 #include "ls1021aqds_qixis.h"
diff --git a/board/freescale/ls1021aqds/ddr.c b/board/freescale/ls1021aqds/ddr.c
index 66fe1519cc6d..e63fe63e40cd 100644
--- a/board/freescale/ls1021aqds/ddr.c
+++ b/board/freescale/ls1021aqds/ddr.c
@@ -12,6 +12,7 @@
 #include <asm/io.h>
 #include <asm/arch/clock.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "ddr.h"
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/board/freescale/ls1021aqds/eth.c b/board/freescale/ls1021aqds/eth.c
index a9f162b974d4..9cf797477b86 100644
--- a/board/freescale/ls1021aqds/eth.c
+++ b/board/freescale/ls1021aqds/eth.c
@@ -20,6 +20,7 @@
 #include <fsl_mdio.h>
 #include <tsec.h>
 #include <malloc.h>
+#include <linux/string.h>
 
 #include "../common/sgmii_riser.h"
 #include "../common/qixis.h"
diff --git a/board/freescale/ls1021aqds/ls1021aqds.c b/board/freescale/ls1021aqds/ls1021aqds.c
index 4169a0fc8592..d3af462e68a3 100644
--- a/board/freescale/ls1021aqds/ls1021aqds.c
+++ b/board/freescale/ls1021aqds/ls1021aqds.c
@@ -25,6 +25,7 @@
 #include <fsl_devdis.h>
 #include <fsl_validate.h>
 #include <fsl_ddr.h>
+#include <linux/string.h>
 #include "../common/sleep.h"
 #include "../common/qixis.h"
 #include "ls1021aqds_qixis.h"
diff --git a/board/freescale/ls1021atsn/ls1021atsn.c b/board/freescale/ls1021atsn/ls1021atsn.c
index c1acd3040c42..010d243754c0 100644
--- a/board/freescale/ls1021atsn/ls1021atsn.c
+++ b/board/freescale/ls1021atsn/ls1021atsn.c
@@ -13,6 +13,7 @@
 #include <asm/arch/fsl_serdes.h>
 #include <asm/global_data.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "../common/sleep.h"
 #include <fsl_validate.h>
 #include <fsl_immap.h>
diff --git a/board/freescale/ls1021atwr/dcu.c b/board/freescale/ls1021atwr/dcu.c
index 7bf283e3d66c..b52d297bb96f 100644
--- a/board/freescale/ls1021atwr/dcu.c
+++ b/board/freescale/ls1021atwr/dcu.c
@@ -8,6 +8,7 @@
 #include <common.h>
 #include <fsl_dcu_fb.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 #include "div64.h"
 #include "../common/dcu_sii9022a.h"
 
diff --git a/board/freescale/ls1021atwr/ls1021atwr.c b/board/freescale/ls1021atwr/ls1021atwr.c
index 0cd38a14b830..72014b2173a0 100644
--- a/board/freescale/ls1021atwr/ls1021atwr.c
+++ b/board/freescale/ls1021atwr/ls1021atwr.c
@@ -30,6 +30,7 @@
 #include <fsl_devdis.h>
 #include <spl.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "../common/sleep.h"
 #ifdef CONFIG_U_QE
 #include <fsl_qe.h>
diff --git a/board/freescale/ls1043aqds/eth.c b/board/freescale/ls1043aqds/eth.c
index 95412df1d7bd..fc4dc210f903 100644
--- a/board/freescale/ls1043aqds/eth.c
+++ b/board/freescale/ls1043aqds/eth.c
@@ -16,6 +16,7 @@
 #include <linux/libfdt.h>
 #include <malloc.h>
 #include <asm/arch/fsl_serdes.h>
+#include <linux/string.h>
 
 #include "../common/qixis.h"
 #include "../common/fman.h"
diff --git a/board/freescale/ls1043ardb/cpld.c b/board/freescale/ls1043ardb/cpld.c
index 5d2e8015a05e..90faa0ba209e 100644
--- a/board/freescale/ls1043ardb/cpld.c
+++ b/board/freescale/ls1043ardb/cpld.c
@@ -8,6 +8,7 @@
 #include <common.h>
 #include <command.h>
 #include <asm/io.h>
+#include <linux/string.h>
 #include "cpld.h"
 
 u8 cpld_read(unsigned int reg)
diff --git a/board/freescale/ls1043ardb/ddr.c b/board/freescale/ls1043ardb/ddr.c
index 08b43ff5e4c5..75346de3726f 100644
--- a/board/freescale/ls1043ardb/ddr.c
+++ b/board/freescale/ls1043ardb/ddr.c
@@ -7,6 +7,7 @@
 #include <fsl_ddr_sdram.h>
 #include <fsl_ddr_dimm_params.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 #include "ddr.h"
 #include <log.h>
 #include <vsprintf.h>
diff --git a/board/freescale/ls1046afrwy/eth.c b/board/freescale/ls1046afrwy/eth.c
index 06ccfe9e8ed5..1b27d3e85381 100644
--- a/board/freescale/ls1046afrwy/eth.c
+++ b/board/freescale/ls1046afrwy/eth.c
@@ -11,6 +11,7 @@
 #include <fsl_dtsec.h>
 #include <fsl_mdio.h>
 #include <malloc.h>
+#include <linux/string.h>
 
 #include "../common/fman.h"
 
diff --git a/board/freescale/ls1046ardb/cpld.c b/board/freescale/ls1046ardb/cpld.c
index 548601a5ae16..252b5adaf5e4 100644
--- a/board/freescale/ls1046ardb/cpld.c
+++ b/board/freescale/ls1046ardb/cpld.c
@@ -8,6 +8,7 @@
 #include <common.h>
 #include <command.h>
 #include <asm/io.h>
+#include <linux/string.h>
 #include "cpld.h"
 
 u8 cpld_read(unsigned int reg)
diff --git a/board/freescale/ls1046ardb/eth.c b/board/freescale/ls1046ardb/eth.c
index 4905302d8cd9..ddfee6217937 100644
--- a/board/freescale/ls1046ardb/eth.c
+++ b/board/freescale/ls1046ardb/eth.c
@@ -11,6 +11,7 @@
 #include <fsl_dtsec.h>
 #include <fsl_mdio.h>
 #include <malloc.h>
+#include <linux/string.h>
 
 #include "../common/fman.h"
 
diff --git a/board/freescale/ls1088a/eth_ls1088aqds.c b/board/freescale/ls1088a/eth_ls1088aqds.c
index bf4f57e6f8aa..f1cccf7d73fb 100644
--- a/board/freescale/ls1088a/eth_ls1088aqds.c
+++ b/board/freescale/ls1088a/eth_ls1088aqds.c
@@ -21,6 +21,7 @@
 #include <fsl-mc/fsl_mc.h>
 #include <fsl-mc/ldpaa_wriop.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include "../common/qixis.h"
 
diff --git a/board/freescale/ls1088a/ls1088a.c b/board/freescale/ls1088a/ls1088a.c
index 41453709eac1..8fcd8ef7cddd 100644
--- a/board/freescale/ls1088a/ls1088a.c
+++ b/board/freescale/ls1088a/ls1088a.c
@@ -27,6 +27,7 @@
 #include <asm/arch/fsl_serdes.h>
 #include <asm/arch/soc.h>
 #include <asm/arch-fsl-layerscape/fsl_icid.h>
+#include <linux/string.h>
 
 #include "../common/qixis.h"
 #include "ls1088a_qixis.h"
diff --git a/board/freescale/ls2080a/ddr.c b/board/freescale/ls2080a/ddr.c
index 29d7bd1c5ee6..a647cc6a3f7a 100644
--- a/board/freescale/ls2080a/ddr.c
+++ b/board/freescale/ls2080a/ddr.c
@@ -10,6 +10,7 @@
 #include <asm/arch/soc.h>
 #include <asm/arch/clock.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 #include "ddr.h"
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/board/freescale/ls2080aqds/eth.c b/board/freescale/ls2080aqds/eth.c
index 4b7f85540dc9..1b8235c9a092 100644
--- a/board/freescale/ls2080aqds/eth.c
+++ b/board/freescale/ls2080aqds/eth.c
@@ -19,6 +19,7 @@
 #include <fsl-mc/fsl_mc.h>
 #include <fsl-mc/ldpaa_wriop.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include "../common/qixis.h"
 
diff --git a/board/freescale/ls2080aqds/ls2080aqds.c b/board/freescale/ls2080aqds/ls2080aqds.c
index 3ab93388724d..87d7e5312f48 100644
--- a/board/freescale/ls2080aqds/ls2080aqds.c
+++ b/board/freescale/ls2080aqds/ls2080aqds.c
@@ -24,6 +24,7 @@
 #include <fsl_sec.h>
 #include <asm/arch/ppa.h>
 #include <asm/arch-fsl-layerscape/fsl_icid.h>
+#include <linux/string.h>
 
 
 #include "../common/qixis.h"
diff --git a/board/freescale/lx2160a/eth_lx2160aqds.c b/board/freescale/lx2160a/eth_lx2160aqds.c
index 437f0bc4cf68..b069e4fb2669 100644
--- a/board/freescale/lx2160a/eth_lx2160aqds.c
+++ b/board/freescale/lx2160a/eth_lx2160aqds.c
@@ -24,6 +24,7 @@
 #include <fsl-mc/fsl_mc.h>
 #include <fsl-mc/ldpaa_wriop.h>
 #include <linux/libfdt.h>
+#include <linux/string.h>
 
 #include "../common/qixis.h"
 
diff --git a/board/freescale/lx2160a/lx2160a.c b/board/freescale/lx2160a/lx2160a.c
index 1d781841c401..8d87b29cfde9 100644
--- a/board/freescale/lx2160a/lx2160a.c
+++ b/board/freescale/lx2160a/lx2160a.c
@@ -30,6 +30,7 @@
 #include <asm/arch/config.h>
 #include <asm/arch/fsl_serdes.h>
 #include <asm/arch/soc.h>
+#include <linux/string.h>
 #include "../common/qixis.h"
 #include "../common/vid.h"
 #include <fsl_immap.h>
diff --git a/board/freescale/mpc8323erdb/mpc8323erdb.c b/board/freescale/mpc8323erdb/mpc8323erdb.c
index cef3216a6fe5..977bd5120597 100644
--- a/board/freescale/mpc8323erdb/mpc8323erdb.c
+++ b/board/freescale/mpc8323erdb/mpc8323erdb.c
@@ -22,6 +22,7 @@
 #include <asm/global_data.h>
 #include <linux/delay.h>
 #include <linux/libfdt.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 #if defined(CONFIG_PCI)
 #include <pci.h>
diff --git a/board/freescale/mpc8349itx/mpc8349itx.c b/board/freescale/mpc8349itx/mpc8349itx.c
index 5b4c290df149..356b0ea2daa3 100644
--- a/board/freescale/mpc8349itx/mpc8349itx.c
+++ b/board/freescale/mpc8349itx/mpc8349itx.c
@@ -24,6 +24,7 @@
 #include <linux/libfdt.h>
 #endif
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include "../../../arch/powerpc/cpu/mpc83xx/hrcw/hrcw.h"
 #include "../../../arch/powerpc/cpu/mpc83xx/elbc/elbc.h"
diff --git a/board/freescale/mpc837xemds/mpc837xemds.c b/board/freescale/mpc837xemds/mpc837xemds.c
index 71875cf8f8ec..c4233aad7411 100644
--- a/board/freescale/mpc837xemds/mpc837xemds.c
+++ b/board/freescale/mpc837xemds/mpc837xemds.c
@@ -21,6 +21,7 @@
 #include <fsl_esdhc.h>
 #include <fsl_mdio.h>
 #include <phy.h>
+#include <linux/string.h>
 #include "pci.h"
 #include "../common/pq-mds-pib.h"
 
diff --git a/board/freescale/mpc837xemds/pci.c b/board/freescale/mpc837xemds/pci.c
index 188e60ac08c4..3e5a64d14f0f 100644
--- a/board/freescale/mpc837xemds/pci.c
+++ b/board/freescale/mpc837xemds/pci.c
@@ -15,6 +15,7 @@
 #include <asm/fsl_i2c.h>
 #include <asm/fsl_mpc83xx_serdes.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 static struct pci_region pci_regions[] = {
 	{
diff --git a/board/freescale/mpc8569mds/mpc8569mds.c b/board/freescale/mpc8569mds/mpc8569mds.c
index 1d2cffbacdf5..b4b75f3642a7 100644
--- a/board/freescale/mpc8569mds/mpc8569mds.c
+++ b/board/freescale/mpc8569mds/mpc8569mds.c
@@ -28,6 +28,7 @@
 #include <fdt_support.h>
 #include <fsl_esdhc.h>
 #include <phy.h>
+#include <linux/string.h>
 
 #include "bcsr.h"
 #if defined(CONFIG_PQ_MDS_PIB)
diff --git a/board/freescale/mpc8610hpcd/mpc8610hpcd_diu.c b/board/freescale/mpc8610hpcd/mpc8610hpcd_diu.c
index 9b96d0d33f29..3e45a3390a2f 100644
--- a/board/freescale/mpc8610hpcd/mpc8610hpcd_diu.c
+++ b/board/freescale/mpc8610hpcd/mpc8610hpcd_diu.c
@@ -13,6 +13,7 @@
 #include <log.h>
 #include <asm/io.h>
 #include <fsl_diu_fb.h>
+#include <linux/string.h>
 #include "../common/pixis.h"
 
 #define PX_BRDCFG0_DLINK	0x10
diff --git a/board/freescale/mx51evk/mx51evk_video.c b/board/freescale/mx51evk/mx51evk_video.c
index 3715c5d738f9..2aa456f1c5f8 100644
--- a/board/freescale/mx51evk/mx51evk_video.c
+++ b/board/freescale/mx51evk/mx51evk_video.c
@@ -11,6 +11,7 @@
 #include <asm/arch/iomux-mx51.h>
 #include <linux/fb.h>
 #include <ipu_pixfmt.h>
+#include <linux/string.h>
 
 #define MX51EVK_LCD_3V3		IMX_GPIO_NR(4, 9)
 #define MX51EVK_LCD_5V		IMX_GPIO_NR(4, 10)
diff --git a/board/freescale/mx53loco/mx53loco_video.c b/board/freescale/mx53loco/mx53loco_video.c
index ff3fc8ce3e6f..67c279adf181 100644
--- a/board/freescale/mx53loco/mx53loco_video.c
+++ b/board/freescale/mx53loco/mx53loco_video.c
@@ -11,6 +11,7 @@
 #include <asm/arch/iomux-mx53.h>
 #include <linux/fb.h>
 #include <ipu_pixfmt.h>
+#include <linux/string.h>
 
 #define MX53LOCO_LCD_POWER		IMX_GPIO_NR(3, 24)
 
diff --git a/board/freescale/mx6memcal/spl.c b/board/freescale/mx6memcal/spl.c
index c82b532f6d53..87020e3ffb15 100644
--- a/board/freescale/mx6memcal/spl.c
+++ b/board/freescale/mx6memcal/spl.c
@@ -16,6 +16,7 @@
 #include <asm/arch/mx6-pins.h>
 #include <asm/arch/sys_proto.h>
 #include <spl.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/freescale/mx6sabreauto/mx6sabreauto.c b/board/freescale/mx6sabreauto/mx6sabreauto.c
index e92ef26d0ad0..f8612c82342e 100644
--- a/board/freescale/mx6sabreauto/mx6sabreauto.c
+++ b/board/freescale/mx6sabreauto/mx6sabreauto.c
@@ -32,6 +32,7 @@
 #include <asm/mach-imx/video.h>
 #include <asm/arch/crm_regs.h>
 #include <pca953x.h>
+#include <linux/string.h>
 #include <power/pmic.h>
 #include <power/pfuze100_pmic.h>
 #include "../common/pfuze.h"
diff --git a/board/freescale/mx6sabresd/mx6sabresd.c b/board/freescale/mx6sabresd/mx6sabresd.c
index bc28173668e2..15f5b654c1b3 100644
--- a/board/freescale/mx6sabresd/mx6sabresd.c
+++ b/board/freescale/mx6sabresd/mx6sabresd.c
@@ -30,6 +30,7 @@
 #include <asm/arch/sys_proto.h>
 #include <i2c.h>
 #include <input.h>
+#include <linux/string.h>
 #include <power/pmic.h>
 #include <power/pfuze100_pmic.h>
 #include "../common/pfuze.h"
diff --git a/board/freescale/mx6slevk/mx6slevk.c b/board/freescale/mx6slevk/mx6slevk.c
index 2c90a35e2c95..24086a124f06 100644
--- a/board/freescale/mx6slevk/mx6slevk.c
+++ b/board/freescale/mx6slevk/mx6slevk.c
@@ -24,6 +24,7 @@
 #include <fsl_esdhc_imx.h>
 #include <i2c.h>
 #include <mmc.h>
+#include <linux/string.h>
 #include <power/pmic.h>
 #include <power/pfuze100_pmic.h>
 #include "../common/pfuze.h"
diff --git a/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c b/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c
index b916ea010290..ef2408715cf5 100644
--- a/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c
+++ b/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c
@@ -27,6 +27,7 @@
 #include <linux/sizes.h>
 #include <mmc.h>
 #include <netdev.h>
+#include <linux/string.h>
 #include <power/pmic.h>
 #include <power/pfuze3000_pmic.h>
 #include "../common/pfuze.h"
diff --git a/board/freescale/p1010rdb/ddr.c b/board/freescale/p1010rdb/ddr.c
index 2625195f81b1..9444a39b6e85 100644
--- a/board/freescale/p1010rdb/ddr.c
+++ b/board/freescale/p1010rdb/ddr.c
@@ -13,6 +13,7 @@
 #include <fsl_ddr_dimm_params.h>
 #include <asm/io.h>
 #include <asm/fsl_law.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/freescale/p1010rdb/p1010rdb.c b/board/freescale/p1010rdb/p1010rdb.c
index 4f87f03965c6..3ffec6a02f1d 100644
--- a/board/freescale/p1010rdb/p1010rdb.c
+++ b/board/freescale/p1010rdb/p1010rdb.c
@@ -29,6 +29,7 @@
 #include <asm/fsl_pci.h>
 #include <hwconfig.h>
 #include <i2c.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/freescale/p1010rdb/spl.c b/board/freescale/p1010rdb/spl.c
index 91be63c2cf40..059ce8e100fd 100644
--- a/board/freescale/p1010rdb/spl.c
+++ b/board/freescale/p1010rdb/spl.c
@@ -16,6 +16,7 @@
 #include <fsl_esdhc.h>
 #include <spi_flash.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 #include "../common/spl.h"
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/board/freescale/p1023rdb/ddr.c b/board/freescale/p1023rdb/ddr.c
index dc7a909e03b2..9971ed544cdc 100644
--- a/board/freescale/p1023rdb/ddr.c
+++ b/board/freescale/p1023rdb/ddr.c
@@ -11,6 +11,7 @@
 #include <fsl_ddr_dimm_params.h>
 #include <asm/io.h>
 #include <asm/fsl_law.h>
+#include <linux/string.h>
 
 /* CONFIG_SYS_DDR_RAW_TIMING */
 /*
diff --git a/board/freescale/p1_p2_rdb_pc/ddr.c b/board/freescale/p1_p2_rdb_pc/ddr.c
index 2346f6a0c274..2c7e5fe4c7b9 100644
--- a/board/freescale/p1_p2_rdb_pc/ddr.c
+++ b/board/freescale/p1_p2_rdb_pc/ddr.c
@@ -12,6 +12,7 @@
 #include <fsl_ddr_dimm_params.h>
 #include <asm/io.h>
 #include <asm/fsl_law.h>
+#include <linux/string.h>
 
 #ifdef CONFIG_SYS_DDR_RAW_TIMING
 #if	defined(CONFIG_P1020RDB_PROTO) || \
diff --git a/board/freescale/p1_p2_rdb_pc/spl.c b/board/freescale/p1_p2_rdb_pc/spl.c
index 101c748838e5..46c5d15ad18b 100644
--- a/board/freescale/p1_p2_rdb_pc/spl.c
+++ b/board/freescale/p1_p2_rdb_pc/spl.c
@@ -17,6 +17,7 @@
 #include <fsl_esdhc.h>
 #include <spi_flash.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 #include "../common/spl.h"
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/board/freescale/p2041rdb/cpld.c b/board/freescale/p2041rdb/cpld.c
index b042fe3bcbc0..84f1b3c77100 100644
--- a/board/freescale/p2041rdb/cpld.c
+++ b/board/freescale/p2041rdb/cpld.c
@@ -14,6 +14,7 @@
 #include <common.h>
 #include <command.h>
 #include <asm/io.h>
+#include <linux/string.h>
 
 #include "cpld.h"
 
diff --git a/board/freescale/qemu-ppce500/qemu-ppce500.c b/board/freescale/qemu-ppce500/qemu-ppce500.c
index aa5774fd7974..b38d03c07a3e 100644
--- a/board/freescale/qemu-ppce500/qemu-ppce500.c
+++ b/board/freescale/qemu-ppce500/qemu-ppce500.c
@@ -23,6 +23,7 @@
 #include <fdtdec.h>
 #include <errno.h>
 #include <malloc.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/freescale/t102xrdb/cpld.c b/board/freescale/t102xrdb/cpld.c
index 47c3b1627e34..5dc3e54bbc37 100644
--- a/board/freescale/t102xrdb/cpld.c
+++ b/board/freescale/t102xrdb/cpld.c
@@ -10,6 +10,7 @@
 #include <common.h>
 #include <command.h>
 #include <asm/io.h>
+#include <linux/string.h>
 #include "cpld.h"
 
 u8 cpld_read(unsigned int reg)
diff --git a/board/freescale/t102xrdb/ddr.c b/board/freescale/t102xrdb/ddr.c
index 818c20cf1b5e..f4cdbf5b4461 100644
--- a/board/freescale/t102xrdb/ddr.c
+++ b/board/freescale/t102xrdb/ddr.c
@@ -15,6 +15,7 @@
 #include <asm/fsl_law.h>
 #include <asm/mpc85xx_gpio.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/freescale/t102xrdb/spl.c b/board/freescale/t102xrdb/spl.c
index 7ed42ed246ff..d8bfbd82791f 100644
--- a/board/freescale/t102xrdb/spl.c
+++ b/board/freescale/t102xrdb/spl.c
@@ -15,6 +15,7 @@
 #include <fsl_esdhc.h>
 #include <spi_flash.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 #include "../common/sleep.h"
 #include "../common/spl.h"
 
diff --git a/board/freescale/t102xrdb/t102xrdb.c b/board/freescale/t102xrdb/t102xrdb.c
index 2770e104ee61..c51555a97e21 100644
--- a/board/freescale/t102xrdb/t102xrdb.c
+++ b/board/freescale/t102xrdb/t102xrdb.c
@@ -21,6 +21,7 @@
 #include <asm/fsl_serdes.h>
 #include <asm/fsl_liodn.h>
 #include <fm_eth.h>
+#include <linux/string.h>
 #include "t102xrdb.h"
 #ifdef CONFIG_TARGET_T1024RDB
 #include "cpld.h"
diff --git a/board/freescale/t104xrdb/cpld.c b/board/freescale/t104xrdb/cpld.c
index ac34095f3b66..6ab7bbdd3322 100644
--- a/board/freescale/t104xrdb/cpld.c
+++ b/board/freescale/t104xrdb/cpld.c
@@ -13,6 +13,7 @@
 #include <common.h>
 #include <command.h>
 #include <asm/io.h>
+#include <linux/string.h>
 
 #include "cpld.h"
 
diff --git a/board/freescale/t104xrdb/spl.c b/board/freescale/t104xrdb/spl.c
index 033a1054ff3c..2e29b3995d8b 100644
--- a/board/freescale/t104xrdb/spl.c
+++ b/board/freescale/t104xrdb/spl.c
@@ -15,6 +15,7 @@
 #include <fsl_esdhc.h>
 #include <spi_flash.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 #include "../common/sleep.h"
 #include "../common/spl.h"
 
diff --git a/board/freescale/t208xqds/eth_t208xqds.c b/board/freescale/t208xqds/eth_t208xqds.c
index 5044b5695b66..e110f3babf18 100644
--- a/board/freescale/t208xqds/eth_t208xqds.c
+++ b/board/freescale/t208xqds/eth_t208xqds.c
@@ -27,6 +27,7 @@
 #include <fsl_dtsec.h>
 #include <asm/fsl_serdes.h>
 #include <hwconfig.h>
+#include <linux/string.h>
 #include "../common/qixis.h"
 #include "../common/fman.h"
 #include "t208xqds_qixis.h"
diff --git a/board/freescale/t208xqds/spl.c b/board/freescale/t208xqds/spl.c
index 6863243b3dd6..4345c29c3b17 100644
--- a/board/freescale/t208xqds/spl.c
+++ b/board/freescale/t208xqds/spl.c
@@ -15,6 +15,7 @@
 #include <fsl_esdhc.h>
 #include <spi_flash.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 #include "../common/qixis.h"
 #include "t208xqds_qixis.h"
 #include "../common/spl.h"
diff --git a/board/freescale/t208xrdb/cpld.c b/board/freescale/t208xrdb/cpld.c
index b9ba62adffcd..81e220ff1149 100644
--- a/board/freescale/t208xrdb/cpld.c
+++ b/board/freescale/t208xrdb/cpld.c
@@ -7,6 +7,7 @@
 
 #include <common.h>
 #include <command.h>
+#include <linux/string.h>
 #include "cpld.h"
 
 u8 cpld_read(unsigned int reg)
diff --git a/board/freescale/t208xrdb/spl.c b/board/freescale/t208xrdb/spl.c
index cfa6789d2df0..a9bf5fb64663 100644
--- a/board/freescale/t208xrdb/spl.c
+++ b/board/freescale/t208xrdb/spl.c
@@ -15,6 +15,7 @@
 #include <fsl_esdhc.h>
 #include <spi_flash.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 #include "../common/spl.h"
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/board/freescale/t4rdb/cpld.c b/board/freescale/t4rdb/cpld.c
index d484509bc20a..5bc149f4ab67 100644
--- a/board/freescale/t4rdb/cpld.c
+++ b/board/freescale/t4rdb/cpld.c
@@ -17,6 +17,7 @@
 #include <common.h>
 #include <command.h>
 #include <asm/io.h>
+#include <linux/string.h>
 
 #include "cpld.h"
 
diff --git a/board/freescale/t4rdb/spl.c b/board/freescale/t4rdb/spl.c
index 42db384a15d6..797631199686 100644
--- a/board/freescale/t4rdb/spl.c
+++ b/board/freescale/t4rdb/spl.c
@@ -18,6 +18,7 @@
 #include <mmc.h>
 #include <fsl_esdhc.h>
 #include <i2c.h>
+#include <linux/string.h>
 
 #include "t4rdb.h"
 
diff --git a/board/gardena/smart-gateway-mt7688/board.c b/board/gardena/smart-gateway-mt7688/board.c
index 8a3a6e348256..0c36f53a5a70 100644
--- a/board/gardena/smart-gateway-mt7688/board.c
+++ b/board/gardena/smart-gateway-mt7688/board.c
@@ -16,6 +16,7 @@
 #include <spi.h>
 #include <spi_flash.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <linux/stringify.h>
 #include <u-boot/crc.h>
 #include <uuid.h>
diff --git a/board/gateworks/gw_ventana/eeprom.c b/board/gateworks/gw_ventana/eeprom.c
index a5a151d85b43..325527ceee13 100644
--- a/board/gateworks/gw_ventana/eeprom.c
+++ b/board/gateworks/gw_ventana/eeprom.c
@@ -13,6 +13,7 @@
 #include <malloc.h>
 #include <asm/bitops.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include "gsc.h"
 #include "ventana_eeprom.h"
diff --git a/board/gateworks/gw_ventana/gsc.c b/board/gateworks/gw_ventana/gsc.c
index bcb6bca3462d..54ca5da4fa02 100644
--- a/board/gateworks/gw_ventana/gsc.c
+++ b/board/gateworks/gw_ventana/gsc.c
@@ -13,6 +13,7 @@
 #include <common.h>
 #include <i2c.h>
 #include <linux/ctype.h>
+#include <linux/string.h>
 
 #include "ventana_eeprom.h"
 #include "gsc.h"
diff --git a/board/gateworks/gw_ventana/gw_ventana.c b/board/gateworks/gw_ventana/gw_ventana.c
index bf4d6913067d..b0cfd2e931a1 100644
--- a/board/gateworks/gw_ventana/gw_ventana.c
+++ b/board/gateworks/gw_ventana/gw_ventana.c
@@ -38,6 +38,7 @@
 #include <pci.h>
 #include <linux/delay.h>
 #include <linux/libfdt.h>
+#include <linux/string.h>
 #include <power/pmic.h>
 #include <power/ltc3676_pmic.h>
 #include <power/pfuze100_pmic.h>
diff --git a/board/gdsys/a38x/hre.c b/board/gdsys/a38x/hre.c
index 699241b3e62a..615973894a1a 100644
--- a/board/gdsys/a38x/hre.c
+++ b/board/gdsys/a38x/hre.c
@@ -11,6 +11,7 @@
 #include <i2c.h>
 #include <mmc.h>
 #include <tpm-v1.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 #include <u-boot/sha1.h>
 #include <asm/byteorder.h>
diff --git a/board/gdsys/a38x/ihs_phys.c b/board/gdsys/a38x/ihs_phys.c
index c23d15092144..31a4aa26b507 100644
--- a/board/gdsys/a38x/ihs_phys.c
+++ b/board/gdsys/a38x/ihs_phys.c
@@ -4,6 +4,7 @@
 #include <asm-generic/gpio.h>
 #include <linux/bitops.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include "ihs_phys.h"
 #include "dt_helpers.h"
diff --git a/board/gdsys/a38x/keyprogram.c b/board/gdsys/a38x/keyprogram.c
index 853981aadbb9..38e25e8fd249 100644
--- a/board/gdsys/a38x/keyprogram.c
+++ b/board/gdsys/a38x/keyprogram.c
@@ -11,6 +11,7 @@
 #include <malloc.h>
 #include <linux/ctype.h>
 #include <asm/unaligned.h>
+#include <linux/string.h>
 
 #include "hre.h"
 
diff --git a/board/gdsys/common/cmd_ioloop.c b/board/gdsys/common/cmd_ioloop.c
index 3ea2bec8ebd5..88bf9b2aadd5 100644
--- a/board/gdsys/common/cmd_ioloop.c
+++ b/board/gdsys/common/cmd_ioloop.c
@@ -9,6 +9,7 @@
 #include <console.h>
 #include <linux/bitops.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include <gdsys_fpga.h>
 
diff --git a/board/gdsys/common/ihs_mdio.c b/board/gdsys/common/ihs_mdio.c
index 5f1215e9e8a6..3a51338d92ab 100644
--- a/board/gdsys/common/ihs_mdio.c
+++ b/board/gdsys/common/ihs_mdio.c
@@ -6,6 +6,7 @@
 
 #include <common.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include <miiphy.h>
 #ifdef CONFIG_GDSYS_LEGACY_DRIVERS
diff --git a/board/gdsys/common/ioep-fpga.c b/board/gdsys/common/ioep-fpga.c
index 7292d7ab5a41..9c01661dc32a 100644
--- a/board/gdsys/common/ioep-fpga.c
+++ b/board/gdsys/common/ioep-fpga.c
@@ -445,6 +445,7 @@ static int get_features(unsigned int fpga, struct fpga_features *features)
 }
 
 #include <linux/bitops.h>
+#include <linux/string.h>
 #endif
 
 bool ioep_fpga_has_osd(unsigned int fpga)
diff --git a/board/gdsys/common/osd.c b/board/gdsys/common/osd.c
index 679f8f30191b..9fe95f020598 100644
--- a/board/gdsys/common/osd.c
+++ b/board/gdsys/common/osd.c
@@ -503,4 +503,5 @@ U_BOOT_CMD(
 	") size_y(max. " __stringify(MAX_Y_CHARS) ")\n"
 );
 
+#include <linux/string.h>
 #endif /* CONFIG_GDSYS_LEGACY_DRIVERS */
diff --git a/board/gdsys/common/osd_cmd.c b/board/gdsys/common/osd_cmd.c
index fe6249794e76..120e1efc81e8 100644
--- a/board/gdsys/common/osd_cmd.c
+++ b/board/gdsys/common/osd_cmd.c
@@ -15,6 +15,7 @@
 #include <hexdump.h>
 #include <video_osd.h>
 #include <malloc.h>
+#include <linux/string.h>
 
 static int do_osd_write(struct cmd_tbl *cmdtp, int flag, int argc,
 			char *const argv[])
diff --git a/board/gdsys/mpc8308/hrcon.c b/board/gdsys/mpc8308/hrcon.c
index b5c681c2d1eb..446a756fbbef 100644
--- a/board/gdsys/mpc8308/hrcon.c
+++ b/board/gdsys/mpc8308/hrcon.c
@@ -21,6 +21,7 @@
 #include <asm/io.h>
 #include <asm/fsl_serdes.h>
 #include <asm/fsl_mpc83xx_serdes.h>
+#include <linux/string.h>
 
 #include "mpc8308.h"
 
diff --git a/board/gdsys/mpc8308/strider.c b/board/gdsys/mpc8308/strider.c
index 91fec74fb032..983d2847614f 100644
--- a/board/gdsys/mpc8308/strider.c
+++ b/board/gdsys/mpc8308/strider.c
@@ -21,6 +21,7 @@
 #include <asm/io.h>
 #include <asm/fsl_serdes.h>
 #include <asm/fsl_mpc83xx_serdes.h>
+#include <linux/string.h>
 
 #include "mpc8308.h"
 
diff --git a/board/gdsys/p1022/controlcenterd-id.c b/board/gdsys/p1022/controlcenterd-id.c
index 495ef8e1f837..6ec49996ab99 100644
--- a/board/gdsys/p1022/controlcenterd-id.c
+++ b/board/gdsys/p1022/controlcenterd-id.c
@@ -24,6 +24,7 @@
 #include <mmc.h>
 #include <tpm-v1.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 #include <u-boot/sha1.h>
 #include <asm/byteorder.h>
diff --git a/board/gdsys/p1022/ddr.c b/board/gdsys/p1022/ddr.c
index eb06d2247111..b2d44da4adcc 100644
--- a/board/gdsys/p1022/ddr.c
+++ b/board/gdsys/p1022/ddr.c
@@ -8,6 +8,7 @@
 #include <common.h>
 #include <i2c.h>
 #include <log.h>
+#include <linux/string.h>
 
 #include <fsl_ddr_sdram.h>
 #include <fsl_ddr_dimm_params.h>
diff --git a/board/ge/bx50v3/bx50v3.c b/board/ge/bx50v3/bx50v3.c
index be5fb0e49cc1..3876b25420bb 100644
--- a/board/ge/bx50v3/bx50v3.c
+++ b/board/ge/bx50v3/bx50v3.c
@@ -29,6 +29,7 @@
 #include <asm/arch/crm_regs.h>
 #include <asm/io.h>
 #include <asm/arch/sys_proto.h>
+#include <linux/string.h>
 #include <power/regulator.h>
 #include <power/da9063_pmic.h>
 #include <input.h>
diff --git a/board/ge/mx53ppd/mx53ppd.c b/board/ge/mx53ppd/mx53ppd.c
index 4de82cd5cd25..7018b29d5acc 100644
--- a/board/ge/mx53ppd/mx53ppd.c
+++ b/board/ge/mx53ppd/mx53ppd.c
@@ -28,6 +28,7 @@
 #include <mmc.h>
 #include <fsl_esdhc_imx.h>
 #include <asm/gpio.h>
+#include <linux/string.h>
 #include <power/pmic.h>
 #include <dialog_pmic.h>
 #include <fsl_pmic.h>
diff --git a/board/google/imx8mq_phanbell/spl.c b/board/google/imx8mq_phanbell/spl.c
index eec3f3d931b2..fd5d745118c5 100644
--- a/board/google/imx8mq_phanbell/spl.c
+++ b/board/google/imx8mq_phanbell/spl.c
@@ -24,6 +24,7 @@
 #include <fsl_esdhc_imx.h>
 #include <mmc.h>
 #include <spl.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/grinn/liteboard/board.c b/board/grinn/liteboard/board.c
index 48392c48e5cc..46c7138b303b 100644
--- a/board/grinn/liteboard/board.c
+++ b/board/grinn/liteboard/board.c
@@ -29,6 +29,7 @@
 #include <mmc.h>
 #include <netdev.h>
 #include <spl.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/imgtec/malta/malta.c b/board/imgtec/malta/malta.c
index c04f727961de..4a6fd7857310 100644
--- a/board/imgtec/malta/malta.c
+++ b/board/imgtec/malta/malta.c
@@ -15,6 +15,7 @@
 #include <rtc.h>
 #include <asm/global_data.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include <asm/addrspace.h>
 #include <asm/io.h>
diff --git a/board/isee/igep00x0/igep00x0.c b/board/isee/igep00x0/igep00x0.c
index e0ca3c2588fa..836a3f91957b 100644
--- a/board/isee/igep00x0/igep00x0.c
+++ b/board/isee/igep00x0/igep00x0.c
@@ -27,6 +27,7 @@
 #include <jffs2/load_kernel.h>
 #include <mtd_node.h>
 #include <fdt_support.h>
+#include <linux/string.h>
 #include "igep00x0.h"
 
 static const struct ns16550_platdata igep_serial = {
diff --git a/board/k+p/kp_imx53/kp_id_rev.c b/board/k+p/kp_imx53/kp_id_rev.c
index 7103a3e0f2b5..3e9315f55226 100644
--- a/board/k+p/kp_imx53/kp_id_rev.c
+++ b/board/k+p/kp_imx53/kp_id_rev.c
@@ -12,6 +12,7 @@
 #include <common.h>
 #include <env.h>
 #include <i2c.h>
+#include <linux/string.h>
 #include "kp_id_rev.h"
 #include <net.h>
 
diff --git a/board/k+p/kp_imx6q_tpc/kp_imx6q_tpc_spl.c b/board/k+p/kp_imx6q_tpc/kp_imx6q_tpc_spl.c
index 103c4531a64c..4bd2e8d0e877 100644
--- a/board/k+p/kp_imx6q_tpc/kp_imx6q_tpc_spl.c
+++ b/board/k+p/kp_imx6q_tpc/kp_imx6q_tpc_spl.c
@@ -18,6 +18,7 @@
 #include <errno.h>
 #include <spl.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/keymile/common/common.c b/board/keymile/common/common.c
index d85a5eac1658..4f64a1805f77 100644
--- a/board/keymile/common/common.c
+++ b/board/keymile/common/common.c
@@ -19,6 +19,7 @@
 #include <asm/io.h>
 #include <linux/ctype.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #if defined(CONFIG_POST)
 #include "post.h"
diff --git a/board/keymile/common/ivm.c b/board/keymile/common/ivm.c
index 60b89fe348c4..ef51e81996b0 100644
--- a/board/keymile/common/ivm.c
+++ b/board/keymile/common/ivm.c
@@ -8,6 +8,7 @@
 #include <cli_hush.h>
 #include <env.h>
 #include <i2c.h>
+#include <linux/string.h>
 #include "common.h"
 
 #define MAC_STR_SZ	20
diff --git a/board/kosagi/novena/novena.c b/board/kosagi/novena/novena.c
index 815ecf55c4df..383d3705734b 100644
--- a/board/kosagi/novena/novena.c
+++ b/board/kosagi/novena/novena.c
@@ -39,6 +39,7 @@
 #include <malloc.h>
 #include <mmc.h>
 #include <netdev.h>
+#include <linux/string.h>
 #include <power/pmic.h>
 #include <power/pfuze100_pmic.h>
 #include <stdio_dev.h>
diff --git a/board/laird/wb50n/wb50n.c b/board/laird/wb50n/wb50n.c
index 8fa989a2a4ff..f1a7555ac9c9 100644
--- a/board/laird/wb50n/wb50n.c
+++ b/board/laird/wb50n/wb50n.c
@@ -20,6 +20,7 @@
 #include <spl.h>
 #include <asm/arch/atmel_mpddrc.h>
 #include <asm/arch/at91_wdt.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/liebherr/display5/display5.c b/board/liebherr/display5/display5.c
index e3a59dbec009..7a061595f25f 100644
--- a/board/liebherr/display5/display5.c
+++ b/board/liebherr/display5/display5.c
@@ -27,6 +27,7 @@
 #include <netdev.h>
 #include <i2c.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include <dm/platform_data/serial_mxc.h>
 #include <dm/platdata.h>
diff --git a/board/liebherr/display5/spl.c b/board/liebherr/display5/spl.c
index b8658c8d6174..a48eba58f9db 100644
--- a/board/liebherr/display5/spl.c
+++ b/board/liebherr/display5/spl.c
@@ -19,6 +19,7 @@
 #include <asm/arch/clock.h>
 #include <asm/arch/mx6-ddr.h>
 #include <asm/arch/mx6-pins.h>
+#include <linux/string.h>
 #include "asm/arch/crm_regs.h"
 #include <asm/arch/sys_proto.h>
 #include <asm/arch/imx-regs.h>
diff --git a/board/liebherr/mccmon6/spl.c b/board/liebherr/mccmon6/spl.c
index 56eae3b4e9ee..1153a7e19f85 100644
--- a/board/liebherr/mccmon6/spl.c
+++ b/board/liebherr/mccmon6/spl.c
@@ -23,6 +23,7 @@
 #include <serial.h>
 #include <spl.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include <asm/arch/mx6-ddr.h>
 /*
diff --git a/board/mediatek/mt7623/mt7623_rfb.c b/board/mediatek/mt7623/mt7623_rfb.c
index 755e879085c2..090270b20d13 100644
--- a/board/mediatek/mt7623/mt7623_rfb.c
+++ b/board/mediatek/mt7623/mt7623_rfb.c
@@ -6,6 +6,7 @@
 #include <common.h>
 #include <mmc.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/menlo/m53menlo/m53menlo.c b/board/menlo/m53menlo/m53menlo.c
index c34baca602cd..eee12ccdc684 100644
--- a/board/menlo/m53menlo/m53menlo.c
+++ b/board/menlo/m53menlo/m53menlo.c
@@ -34,6 +34,7 @@
 #include <netdev.h>
 #include <spl.h>
 #include <splash.h>
+#include <linux/string.h>
 #include <usb/ehci-ci.h>
 #include <video_console.h>
 
diff --git a/board/mscc/jr2/jr2.c b/board/mscc/jr2/jr2.c
index 1cd720c7d844..2aca78ac7941 100644
--- a/board/mscc/jr2/jr2.c
+++ b/board/mscc/jr2/jr2.c
@@ -12,6 +12,7 @@
 #include <miiphy.h>
 #include <linux/bitops.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 enum {
 	BOARD_TYPE_PCB110 = 0xAABBCE00,
diff --git a/board/mscc/luton/luton.c b/board/mscc/luton/luton.c
index 038902d08a9d..ebb9060f3d75 100644
--- a/board/mscc/luton/luton.c
+++ b/board/mscc/luton/luton.c
@@ -10,6 +10,7 @@
 #include <asm/io.h>
 #include <led.h>
 #include <miiphy.h>
+#include <linux/string.h>
 
 enum {
 	BOARD_TYPE_PCB090 = 0xAABBCD00,
diff --git a/board/mscc/ocelot/ocelot.c b/board/mscc/ocelot/ocelot.c
index 51e1aeccf578..d26b93f12bd9 100644
--- a/board/mscc/ocelot/ocelot.c
+++ b/board/mscc/ocelot/ocelot.c
@@ -17,6 +17,7 @@
 #include <miiphy.h>
 #include <linux/bitops.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/mscc/serval/serval.c b/board/mscc/serval/serval.c
index 94c1c42b79b2..0da835828f85 100644
--- a/board/mscc/serval/serval.c
+++ b/board/mscc/serval/serval.c
@@ -10,6 +10,7 @@
 #include <asm/io.h>
 #include <led.h>
 #include <miiphy.h>
+#include <linux/string.h>
 
 enum {
 	BOARD_TYPE_PCB106 = 0xAABBCD00,
diff --git a/board/mscc/servalt/servalt.c b/board/mscc/servalt/servalt.c
index 252d8e3156d5..31269fa88a41 100644
--- a/board/mscc/servalt/servalt.c
+++ b/board/mscc/servalt/servalt.c
@@ -9,6 +9,7 @@
 #include <asm/global_data.h>
 #include <asm/io.h>
 #include <led.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/nokia/rx51/rx51.c b/board/nokia/rx51/rx51.c
index 5cf6a54dc60d..20d82447b017 100644
--- a/board/nokia/rx51/rx51.c
+++ b/board/nokia/rx51/rx51.c
@@ -38,6 +38,7 @@
 #include <asm/arch/mux.h>
 #include <asm/arch/sys_proto.h>
 #include <asm/arch/mmc_host_def.h>
+#include <linux/string.h>
 
 #include "rx51.h"
 #include "tag_omap.h"
diff --git a/board/nvidia/p2371-2180/p2371-2180.c b/board/nvidia/p2371-2180/p2371-2180.c
index 7423a97ad0e3..0f4796b559b5 100644
--- a/board/nvidia/p2371-2180/p2371-2180.c
+++ b/board/nvidia/p2371-2180/p2371-2180.c
@@ -15,6 +15,7 @@
 #include <asm/arch/gpio.h>
 #include <asm/arch/pinmux.h>
 #include <asm/arch-tegra/cboot.h>
+#include <linux/string.h>
 #include "../p2571/max77620_init.h"
 
 void pin_mux_mmc(void)
diff --git a/board/nvidia/p2771-0000/p2771-0000.c b/board/nvidia/p2771-0000/p2771-0000.c
index 508c4d27b7fb..e96edcc1c91f 100644
--- a/board/nvidia/p2771-0000/p2771-0000.c
+++ b/board/nvidia/p2771-0000/p2771-0000.c
@@ -11,6 +11,7 @@
 #include <net.h>
 #include <linux/libfdt.h>
 #include <asm/arch-tegra/cboot.h>
+#include <linux/string.h>
 #include "../p2571/max77620_init.h"
 
 void pin_mux_mmc(void)
diff --git a/board/nvidia/p3450-0000/p3450-0000.c b/board/nvidia/p3450-0000/p3450-0000.c
index e6b66966c1b6..2a16b1e3b468 100644
--- a/board/nvidia/p3450-0000/p3450-0000.c
+++ b/board/nvidia/p3450-0000/p3450-0000.c
@@ -14,6 +14,7 @@
 #include <asm/arch-tegra/cboot.h>
 #include <asm/arch/gpio.h>
 #include <asm/arch/pinmux.h>
+#include <linux/string.h>
 #include "../p2571/max77620_init.h"
 
 void pin_mux_mmc(void)
diff --git a/board/phytec/pcm058/pcm058.c b/board/phytec/pcm058/pcm058.c
index 5e5b129ef1ff..a2304b764d6e 100644
--- a/board/phytec/pcm058/pcm058.c
+++ b/board/phytec/pcm058/pcm058.c
@@ -18,6 +18,7 @@
 #include <asm/mach-imx/boot_mode.h>
 #include <asm/arch/sys_proto.h>
 #include <dm.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/phytec/pfla02/pfla02.c b/board/phytec/pfla02/pfla02.c
index 076ce6711ef0..996fcedfa2cc 100644
--- a/board/phytec/pfla02/pfla02.c
+++ b/board/phytec/pfla02/pfla02.c
@@ -32,6 +32,7 @@
 #include <netdev.h>
 #include <asm/arch/sys_proto.h>
 #include <asm/sections.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/qualcomm/dragonboard410c/dragonboard410c.c b/board/qualcomm/dragonboard410c/dragonboard410c.c
index 646013cfc93d..1aa67f96d3d8 100644
--- a/board/qualcomm/dragonboard410c/dragonboard410c.c
+++ b/board/qualcomm/dragonboard410c/dragonboard410c.c
@@ -19,6 +19,7 @@
 #include <asm/arch/dram.h>
 #include <asm/arch/misc.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/renesas/salvator-x/salvator-x.c b/board/renesas/salvator-x/salvator-x.c
index 1d0cab8914fe..305968222997 100644
--- a/board/renesas/salvator-x/salvator-x.c
+++ b/board/renesas/salvator-x/salvator-x.c
@@ -29,6 +29,7 @@
 #include <asm/arch/sh_sdhi.h>
 #include <i2c.h>
 #include <mmc.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/renesas/sh7752evb/sh7752evb.c b/board/renesas/sh7752evb/sh7752evb.c
index 522b4bd610dc..07c51e7147ee 100644
--- a/board/renesas/sh7752evb/sh7752evb.c
+++ b/board/renesas/sh7752evb/sh7752evb.c
@@ -16,6 +16,7 @@
 #include <spi.h>
 #include <spi_flash.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 int checkboard(void)
 {
diff --git a/board/renesas/sh7753evb/sh7753evb.c b/board/renesas/sh7753evb/sh7753evb.c
index f34dec1dfabd..8f6f2eee9043 100644
--- a/board/renesas/sh7753evb/sh7753evb.c
+++ b/board/renesas/sh7753evb/sh7753evb.c
@@ -16,6 +16,7 @@
 #include <spi.h>
 #include <spi_flash.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 int checkboard(void)
 {
diff --git a/board/renesas/sh7757lcr/sh7757lcr.c b/board/renesas/sh7757lcr/sh7757lcr.c
index e933e3e73061..a81bdbf9cdc8 100644
--- a/board/renesas/sh7757lcr/sh7757lcr.c
+++ b/board/renesas/sh7757lcr/sh7757lcr.c
@@ -15,6 +15,7 @@
 #include <asm/mmc.h>
 #include <spi.h>
 #include <spi_flash.h>
+#include <linux/string.h>
 
 int checkboard(void)
 {
diff --git a/board/renesas/stout/cpld.c b/board/renesas/stout/cpld.c
index b56ed1703f5f..e6e0a3a3e3d1 100644
--- a/board/renesas/stout/cpld.c
+++ b/board/renesas/stout/cpld.c
@@ -12,6 +12,7 @@
 #include <cpu_func.h>
 #include <asm/io.h>
 #include <asm/gpio.h>
+#include <linux/string.h>
 #include "cpld.h"
 
 #define SCLK			(92 + 24)
diff --git a/board/renesas/ulcb/cpld.c b/board/renesas/ulcb/cpld.c
index a20a34a92a8d..c9579a9dd173 100644
--- a/board/renesas/ulcb/cpld.c
+++ b/board/renesas/ulcb/cpld.c
@@ -14,6 +14,7 @@
 #include <errno.h>
 #include <linux/err.h>
 #include <sysreset.h>
+#include <linux/string.h>
 
 #define CPLD_ADDR_MODE		0x00 /* RW */
 #define CPLD_ADDR_MUX		0x02 /* RW */
diff --git a/board/renesas/ulcb/ulcb.c b/board/renesas/ulcb/ulcb.c
index 66aff8e11080..09711559aef4 100644
--- a/board/renesas/ulcb/ulcb.c
+++ b/board/renesas/ulcb/ulcb.c
@@ -27,6 +27,7 @@
 #include <asm/arch/sh_sdhi.h>
 #include <i2c.h>
 #include <mmc.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/samsung/common/gadget.c b/board/samsung/common/gadget.c
index 6d783e61e0d3..da6fbb9b3584 100644
--- a/board/samsung/common/gadget.c
+++ b/board/samsung/common/gadget.c
@@ -5,6 +5,7 @@
  */
 
 #include <common.h>
+#include <linux/string.h>
 #include <linux/usb/ch9.h>
 
 int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name)
diff --git a/board/samsung/origen/tools/mkorigenspl.c b/board/samsung/origen/tools/mkorigenspl.c
index f4be86724503..8f13d26db333 100644
--- a/board/samsung/origen/tools/mkorigenspl.c
+++ b/board/samsung/origen/tools/mkorigenspl.c
@@ -9,6 +9,7 @@
 #include <fcntl.h>
 #include <errno.h>
 #include <string.h>
+#include <linux/string.h>
 #include <sys/stat.h>
 
 #define BUFSIZE			(16*1024)
diff --git a/board/samsung/smdkv310/tools/mksmdkv310spl.c b/board/samsung/smdkv310/tools/mksmdkv310spl.c
index 378b85d72294..e76c9412f7b5 100644
--- a/board/samsung/smdkv310/tools/mksmdkv310spl.c
+++ b/board/samsung/smdkv310/tools/mksmdkv310spl.c
@@ -9,6 +9,7 @@
 #include <fcntl.h>
 #include <errno.h>
 #include <string.h>
+#include <linux/string.h>
 #include <sys/stat.h>
 
 #define CHECKSUM_OFFSET		(14*1024-4)
diff --git a/board/sandisk/sansa_fuze_plus/spl_boot.c b/board/sandisk/sansa_fuze_plus/spl_boot.c
index 633c77408dd6..37f866ccdc3a 100644
--- a/board/sandisk/sansa_fuze_plus/spl_boot.c
+++ b/board/sandisk/sansa_fuze_plus/spl_boot.c
@@ -11,6 +11,7 @@
 #include <asm/arch/iomux-mx23.h>
 #include <asm/arch/imx-regs.h>
 #include <asm/arch/sys_proto.h>
+#include <linux/string.h>
 
 #define	MUX_CONFIG_EMI	(MXS_PAD_1V8 | MXS_PAD_12MA | MXS_PAD_PULLUP)
 #define	MUX_CONFIG_SSP	(MXS_PAD_3V3 | MXS_PAD_4MA | MXS_PAD_PULLUP)
diff --git a/board/sbc8548/ddr.c b/board/sbc8548/ddr.c
index 61bc77c418a9..c3239fd1e1a6 100644
--- a/board/sbc8548/ddr.c
+++ b/board/sbc8548/ddr.c
@@ -6,6 +6,7 @@
 #include <common.h>
 #include <i2c.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include <fsl_ddr_sdram.h>
 #include <fsl_ddr_dimm_params.h>
diff --git a/board/siemens/capricorn/board.c b/board/siemens/capricorn/board.c
index 56973a109087..6f34bd73f0de 100644
--- a/board/siemens/capricorn/board.c
+++ b/board/siemens/capricorn/board.c
@@ -28,6 +28,7 @@
 #include <asm/arch-imx8/clock.h>
 #endif
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "../common/factoryset.h"
 
 #define GPIO_PAD_CTRL \
diff --git a/board/siemens/capricorn/spl.c b/board/siemens/capricorn/spl.c
index 8e077d73aef9..da8936291725 100644
--- a/board/siemens/capricorn/spl.c
+++ b/board/siemens/capricorn/spl.c
@@ -14,6 +14,7 @@
 #include <dm/device.h>
 #include <dm/uclass-internal.h>
 #include <dm/device-internal.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/siemens/common/board.c b/board/siemens/common/board.c
index 1bdf404ac3eb..19f27f6805a6 100644
--- a/board/siemens/common/board.c
+++ b/board/siemens/common/board.c
@@ -34,6 +34,7 @@
 #include <cpsw.h>
 #include <watchdog.h>
 #include <asm/mach-types.h>
+#include <linux/string.h>
 #include "../common/factoryset.h"
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/board/siemens/common/factoryset.c b/board/siemens/common/factoryset.c
index 2e3ae1a54da6..5ceb0871fa0b 100644
--- a/board/siemens/common/factoryset.c
+++ b/board/siemens/common/factoryset.c
@@ -22,6 +22,7 @@
 #include <net.h>
 #include <errno.h>
 #include <g_dnl.h>
+#include <linux/string.h>
 #include "factoryset.h"
 
 #define EEPR_PG_SZ		0x80
diff --git a/board/siemens/pxm2/board.c b/board/siemens/pxm2/board.c
index b5e9b4242cd5..7f36848b2657 100644
--- a/board/siemens/pxm2/board.c
+++ b/board/siemens/pxm2/board.c
@@ -28,6 +28,7 @@
 #include <asm/arch/gpio.h>
 #include <asm/arch/mmc_host_def.h>
 #include <asm/arch/sys_proto.h>
+#include <linux/string.h>
 #include "../../../drivers/video/da8xx-fb.h"
 #include <asm/io.h>
 #include <asm/emif.h>
diff --git a/board/siemens/rut/board.c b/board/siemens/rut/board.c
index e0f232d3b80e..22d8c40a53b1 100644
--- a/board/siemens/rut/board.c
+++ b/board/siemens/rut/board.c
@@ -35,6 +35,7 @@
 #include <video.h>
 #include <watchdog.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "board.h"
 #include "../common/factoryset.h"
 #include "../../../drivers/video/da8xx-fb.h"
diff --git a/board/sks-kinkel/sksimx6/sksimx6.c b/board/sks-kinkel/sksimx6/sksimx6.c
index cec3ade96cfd..bfe4634fdd7f 100644
--- a/board/sks-kinkel/sksimx6/sksimx6.c
+++ b/board/sks-kinkel/sksimx6/sksimx6.c
@@ -26,6 +26,7 @@
 #include <netdev.h>
 #include <miiphy.h>
 #include <micrel.h>
+#include <linux/string.h>
 
 #include <common.h>
 #include <malloc.h>
diff --git a/board/softing/vining_2000/vining_2000.c b/board/softing/vining_2000/vining_2000.c
index aaeeee361e54..1c5863714c67 100644
--- a/board/softing/vining_2000/vining_2000.c
+++ b/board/softing/vining_2000/vining_2000.c
@@ -29,6 +29,7 @@
 #include <i2c.h>
 #include <miiphy.h>
 #include <netdev.h>
+#include <linux/string.h>
 #include <power/pmic.h>
 #include <power/pfuze100_pmic.h>
 #include <usb.h>
diff --git a/board/softing/vining_fpga/socfpga.c b/board/softing/vining_fpga/socfpga.c
index aaedf0345045..34ce6a13003b 100644
--- a/board/softing/vining_fpga/socfpga.c
+++ b/board/softing/vining_fpga/socfpga.c
@@ -15,6 +15,7 @@
 #include <asm/gpio.h>
 #include <i2c.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/solidrun/clearfog/clearfog.c b/board/solidrun/clearfog/clearfog.c
index 3a2f8b817886..a4d60e1540c5 100644
--- a/board/solidrun/clearfog/clearfog.c
+++ b/board/solidrun/clearfog/clearfog.c
@@ -16,6 +16,7 @@
 #include <asm/arch/soc.h>
 #include <linux/bitops.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "../common/tlv_data.h"
 
 #include "../drivers/ddr/marvell/a38x/ddr3_init.h"
diff --git a/board/solidrun/common/tlv_data.c b/board/solidrun/common/tlv_data.c
index 11d6e4a13807..1daf14812ef7 100644
--- a/board/solidrun/common/tlv_data.c
+++ b/board/solidrun/common/tlv_data.c
@@ -6,6 +6,7 @@
 #include <common.h>
 #include <compiler.h>
 #include <tlv_eeprom.h>
+#include <linux/string.h>
 #include "tlv_data.h"
 
 #define SR_TLV_CODE_RAM_SIZE	0x81
diff --git a/board/solidrun/mx6cuboxi/mx6cuboxi.c b/board/solidrun/mx6cuboxi/mx6cuboxi.c
index 3eadc38f6fd4..e56e32e8c849 100644
--- a/board/solidrun/mx6cuboxi/mx6cuboxi.c
+++ b/board/solidrun/mx6cuboxi/mx6cuboxi.c
@@ -38,6 +38,7 @@
 #include <asm/arch/sys_proto.h>
 #include <spl.h>
 #include <usb.h>
+#include <linux/string.h>
 #include <usb/ehci-ci.h>
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/board/st/common/stm32mp_dfu.c b/board/st/common/stm32mp_dfu.c
index 04b56f7a6c41..aab502e3146e 100644
--- a/board/st/common/stm32mp_dfu.c
+++ b/board/st/common/stm32mp_dfu.c
@@ -14,6 +14,7 @@
 #include <mtd_node.h>
 #include <asm/arch/stm32prog.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #define DFU_ALT_BUF_LEN SZ_1K
 
diff --git a/board/st/common/stm32mp_mtdparts.c b/board/st/common/stm32mp_mtdparts.c
index 7151cad6d0f9..b7dfd4cb741e 100644
--- a/board/st/common/stm32mp_mtdparts.c
+++ b/board/st/common/stm32mp_mtdparts.c
@@ -15,6 +15,7 @@
 #include <asm/arch/sys_proto.h>
 #include <asm/global_data.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #define MTDPARTS_LEN		256
 #define MTDIDS_LEN		128
diff --git a/board/st/stm32mp1/stm32mp1.c b/board/st/stm32mp1/stm32mp1.c
index a18b4e33f3f9..b37326b1c3cb 100644
--- a/board/st/stm32mp1/stm32mp1.c
+++ b/board/st/stm32mp1/stm32mp1.c
@@ -40,6 +40,7 @@
 #include <linux/err.h>
 #include <linux/iopoll.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <power/regulator.h>
 #include <usb/dwc2_udc.h>
 
diff --git a/board/sunxi/board.c b/board/sunxi/board.c
index 7812860042f6..193ec8cff574 100644
--- a/board/sunxi/board.c
+++ b/board/sunxi/board.c
@@ -31,6 +31,7 @@
 #include <asm/global_data.h>
 #include <linux/delay.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 #ifndef CONFIG_ARM64
 #include <asm/armv7.h>
diff --git a/board/synopsys/emsdp/emsdp.c b/board/synopsys/emsdp/emsdp.c
index 997120ec5e17..a2eaf36ef13a 100644
--- a/board/synopsys/emsdp/emsdp.c
+++ b/board/synopsys/emsdp/emsdp.c
@@ -11,6 +11,7 @@
 #include <malloc.h>
 #include <asm/global_data.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 
 #include <asm/arcregs.h>
 
diff --git a/board/synopsys/hsdk/hsdk.c b/board/synopsys/hsdk/hsdk.c
index 892b94bb0836..8644a41fe0ba 100644
--- a/board/synopsys/hsdk/hsdk.c
+++ b/board/synopsys/hsdk/hsdk.c
@@ -25,6 +25,7 @@
 #include <dwmmc.h>
 #include <malloc.h>
 #include <usb.h>
+#include <linux/string.h>
 
 #include "clk-lib.h"
 #include "env-lib.h"
diff --git a/board/syteco/zmx25/zmx25.c b/board/syteco/zmx25/zmx25.c
index 2d4c5cce8920..a3e5efad7c60 100644
--- a/board/syteco/zmx25/zmx25.c
+++ b/board/syteco/zmx25/zmx25.c
@@ -23,6 +23,7 @@
 #include <asm/arch/imx-regs.h>
 #include <asm/arch/iomux-mx25.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/technexion/pico-imx6/spl.c b/board/technexion/pico-imx6/spl.c
index 3b36bb8df131..7b6cdd6c3b16 100644
--- a/board/technexion/pico-imx6/spl.c
+++ b/board/technexion/pico-imx6/spl.c
@@ -24,6 +24,7 @@
 #include <asm/io.h>
 #include <asm/arch/sys_proto.h>
 #include <spl.h>
+#include <linux/string.h>
 
 #if defined(CONFIG_SPL_BUILD)
 #include <asm/arch/mx6-ddr.h>
diff --git a/board/technexion/pico-imx6ul/spl.c b/board/technexion/pico-imx6ul/spl.c
index 380777954422..faee99e8d29d 100644
--- a/board/technexion/pico-imx6ul/spl.c
+++ b/board/technexion/pico-imx6ul/spl.c
@@ -17,6 +17,7 @@
 #include <fsl_esdhc_imx.h>
 #include <linux/libfdt.h>
 #include <spl.h>
+#include <linux/string.h>
 
 #if defined(CONFIG_SPL_BUILD)
 
diff --git a/board/technexion/pico-imx7d/spl.c b/board/technexion/pico-imx7d/spl.c
index bed0f21f44d3..ccb094f18845 100644
--- a/board/technexion/pico-imx7d/spl.c
+++ b/board/technexion/pico-imx7d/spl.c
@@ -18,6 +18,7 @@
 #include <asm/gpio.h>
 #include <fsl_esdhc_imx.h>
 #include <spl.h>
+#include <linux/string.h>
 
 #if defined(CONFIG_SPL_BUILD)
 
diff --git a/board/technexion/pico-imx8mq/spl.c b/board/technexion/pico-imx8mq/spl.c
index 8b853a914e85..b434e1e16f29 100644
--- a/board/technexion/pico-imx8mq/spl.c
+++ b/board/technexion/pico-imx8mq/spl.c
@@ -21,6 +21,7 @@
 #include <fsl_esdhc_imx.h>
 #include <mmc.h>
 #include <spl.h>
+#include <linux/string.h>
 
 #include "lpddr4_timing.h"
 
diff --git a/board/theadorable/fpga.c b/board/theadorable/fpga.c
index 3a33e15eacc6..4cfc4bbf0acd 100644
--- a/board/theadorable/fpga.c
+++ b/board/theadorable/fpga.c
@@ -13,6 +13,7 @@
 #include <asm/arch/cpu.h>
 #include <asm/arch/soc.h>
 #include <asm/arch-mvebu/spi.h>
+#include <linux/string.h>
 #include "theadorable.h"
 
 /*
diff --git a/board/theobroma-systems/puma_rk3399/puma-rk3399.c b/board/theobroma-systems/puma_rk3399/puma-rk3399.c
index deeba3084a80..715dcbdc7bc8 100644
--- a/board/theobroma-systems/puma_rk3399/puma-rk3399.c
+++ b/board/theobroma-systems/puma_rk3399/puma-rk3399.c
@@ -11,6 +11,7 @@
 #include <misc.h>
 #include <spl.h>
 #include <syscon.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 #include <usb.h>
 #include <dm/pinctrl.h>
diff --git a/board/ti/am335x/board.c b/board/ti/am335x/board.c
index 211a9bf74467..be474a8472c9 100644
--- a/board/ti/am335x/board.c
+++ b/board/ti/am335x/board.c
@@ -39,6 +39,7 @@
 #include <cpsw.h>
 #include <linux/bitops.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <power/tps65217.h>
 #include <power/tps65910.h>
 #include <env_internal.h>
diff --git a/board/ti/am335x/board.h b/board/ti/am335x/board.h
index 48df914af96c..b8ceddb20b12 100644
--- a/board/ti/am335x/board.h
+++ b/board/ti/am335x/board.h
@@ -20,6 +20,7 @@
  * REG_COS_COUNT_2 do not have any effect on current versions of
  * AM335x.
  */
+#include <linux/string.h>
 #define EMIF_OCP_CONFIG_BEAGLEBONE_BLACK       0x00141414
 #define EMIF_OCP_CONFIG_AM335X_EVM             0x003d3d3d
 
diff --git a/board/ti/am43xx/board.c b/board/ti/am43xx/board.c
index 8f5bf3581f48..ba479672c663 100644
--- a/board/ti/am43xx/board.c
+++ b/board/ti/am43xx/board.c
@@ -28,6 +28,7 @@
 #include <asm/arch/gpio.h>
 #include <asm/emif.h>
 #include <asm/omap_common.h>
+#include <linux/string.h>
 #include "../common/board_detect.h"
 #include "board.h"
 #include <power/pmic.h>
diff --git a/board/ti/am43xx/board.h b/board/ti/am43xx/board.h
index 06b737445d44..e28813f4bb80 100644
--- a/board/ti/am43xx/board.h
+++ b/board/ti/am43xx/board.h
@@ -12,6 +12,7 @@
 #define _BOARD_H_
 
 #include <asm/arch/omap.h>
+#include <linux/string.h>
 
 #define DEV_ATTR_MAX_OFFSET    5
 #define DEV_ATTR_MIN_OFFSET    0
diff --git a/board/ti/am57xx/board.c b/board/ti/am57xx/board.c
index be09d719cbe3..d9b28dff52b3 100644
--- a/board/ti/am57xx/board.c
+++ b/board/ti/am57xx/board.c
@@ -33,6 +33,7 @@
 #include <asm/arch/gpio.h>
 #include <asm/arch/omap.h>
 #include <usb.h>
+#include <linux/string.h>
 #include <linux/usb/gadget.h>
 #include <dwc3-uboot.h>
 #include <dwc3-omap-uboot.h>
diff --git a/board/ti/am65x/evm.c b/board/ti/am65x/evm.c
index 0f5ec260b162..2346595b95d1 100644
--- a/board/ti/am65x/evm.c
+++ b/board/ti/am65x/evm.c
@@ -23,6 +23,7 @@
 #include <spl.h>
 #include <asm/arch/sys_proto.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include "../common/board_detect.h"
 
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
index 888a95849190..25297b0ae0c9 100644
--- a/board/ti/beagle/beagle.c
+++ b/board/ti/beagle/beagle.c
@@ -35,6 +35,7 @@
 #include <asm/mach-types.h>
 #include <asm/omap_musb.h>
 #include <linux/errno.h>
+#include <linux/string.h>
 #include <linux/usb/ch9.h>
 #include <linux/usb/gadget.h>
 #include <linux/usb/musb.h>
diff --git a/board/ti/common/board_detect.c b/board/ti/common/board_detect.c
index 9d1bee1c2559..f51bacfbbcde 100644
--- a/board/ti/common/board_detect.c
+++ b/board/ti/common/board_detect.c
@@ -20,6 +20,7 @@
 #include <errno.h>
 #include <malloc.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include "board_detect.h"
 
diff --git a/board/ti/j721e/evm.c b/board/ti/j721e/evm.c
index 2ab305a902b9..2ef1acec680e 100644
--- a/board/ti/j721e/evm.c
+++ b/board/ti/j721e/evm.c
@@ -24,6 +24,7 @@
 #include <dm.h>
 #include <dm/uclass-internal.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include "../common/board_detect.h"
 
diff --git a/board/ti/ks2_evm/board.c b/board/ti/ks2_evm/board.c
index 9e5f08e33720..078b89073fc1 100644
--- a/board/ti/ks2_evm/board.c
+++ b/board/ti/ks2_evm/board.c
@@ -8,6 +8,7 @@
 
 #include <common.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 #include "board.h"
 #include <env.h>
 #include <hang.h>
diff --git a/board/ti/ks2_evm/board_k2e.c b/board/ti/ks2_evm/board_k2e.c
index 39abb24e1560..b5258b66e102 100644
--- a/board/ti/ks2_evm/board_k2e.c
+++ b/board/ti/ks2_evm/board_k2e.c
@@ -12,6 +12,7 @@
 #include <asm/arch/ddr3.h>
 #include <asm/arch/hardware.h>
 #include <asm/ti-common/keystone_net.h>
+#include <linux/string.h>
 
 unsigned int get_external_clk(u32 clk)
 {
diff --git a/board/ti/ks2_evm/board_k2g.c b/board/ti/ks2_evm/board_k2g.c
index a71024bcbce5..b6ef7164d9fb 100644
--- a/board/ti/ks2_evm/board_k2g.c
+++ b/board/ti/ks2_evm/board_k2g.c
@@ -20,6 +20,7 @@
 #include <remoteproc.h>
 #include <linux/bitops.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "mux-k2g.h"
 #include "../common/board_detect.h"
 
diff --git a/board/ti/ks2_evm/board_k2hk.c b/board/ti/ks2_evm/board_k2hk.c
index 12c4649c3c4c..6a9935c7ef5c 100644
--- a/board/ti/ks2_evm/board_k2hk.c
+++ b/board/ti/ks2_evm/board_k2hk.c
@@ -12,6 +12,7 @@
 #include <asm/arch/clock.h>
 #include <asm/arch/hardware.h>
 #include <asm/ti-common/keystone_net.h>
+#include <linux/string.h>
 
 unsigned int external_clk[ext_clk_count] = {
 	[sys_clk]	=	122880000,
diff --git a/board/ti/ks2_evm/board_k2l.c b/board/ti/ks2_evm/board_k2l.c
index f759ee364666..459530ecb9de 100644
--- a/board/ti/ks2_evm/board_k2l.c
+++ b/board/ti/ks2_evm/board_k2l.c
@@ -12,6 +12,7 @@
 #include <asm/arch/ddr3.h>
 #include <asm/arch/hardware.h>
 #include <asm/ti-common/keystone_net.h>
+#include <linux/string.h>
 
 unsigned int get_external_clk(u32 clk)
 {
diff --git a/board/ti/sdp4430/cmd_bat.c b/board/ti/sdp4430/cmd_bat.c
index 6c1e6ca393c6..2b8f4bc69de2 100644
--- a/board/ti/sdp4430/cmd_bat.c
+++ b/board/ti/sdp4430/cmd_bat.c
@@ -5,6 +5,7 @@
 
 #include <common.h>
 #include <command.h>
+#include <linux/string.h>
 
 #ifdef CONFIG_CMD_BAT
 #include <twl6030.h>
diff --git a/board/toradex/apalis-tk1/apalis-tk1.c b/board/toradex/apalis-tk1/apalis-tk1.c
index 349b3119370b..2883f1b98c5e 100644
--- a/board/toradex/apalis-tk1/apalis-tk1.c
+++ b/board/toradex/apalis-tk1/apalis-tk1.c
@@ -17,6 +17,7 @@
 #include <pci_tegra.h>
 #include <linux/delay.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <power/as3722.h>
 #include <power/pmic.h>
 
diff --git a/board/toradex/apalis_imx6/apalis_imx6.c b/board/toradex/apalis_imx6/apalis_imx6.c
index 17f6094687b7..d17f90f86fda 100644
--- a/board/toradex/apalis_imx6/apalis_imx6.c
+++ b/board/toradex/apalis_imx6/apalis_imx6.c
@@ -15,6 +15,7 @@
 #include <asm/global_data.h>
 #include <linux/bitops.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include <ahci.h>
 #include <asm/arch/clock.h>
diff --git a/board/toradex/colibri_imx6/colibri_imx6.c b/board/toradex/colibri_imx6/colibri_imx6.c
index 64a8406ec77c..1f18552b57c7 100644
--- a/board/toradex/colibri_imx6/colibri_imx6.c
+++ b/board/toradex/colibri_imx6/colibri_imx6.c
@@ -15,6 +15,7 @@
 #include <asm/global_data.h>
 #include <linux/bitops.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include <asm/arch/clock.h>
 #include <asm/arch/crm_regs.h>
diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c
index ab561237e6f7..fbd3f5de13ff 100644
--- a/board/toradex/common/tdx-cfg-block.c
+++ b/board/toradex/common/tdx-cfg-block.c
@@ -5,6 +5,7 @@
 
 #include <common.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 #include "tdx-cfg-block.h"
 #include "tdx-eeprom.h"
 
diff --git a/board/toradex/common/tdx-common.c b/board/toradex/common/tdx-common.c
index fe5295f94bff..888b39fbe42a 100644
--- a/board/toradex/common/tdx-common.c
+++ b/board/toradex/common/tdx-common.c
@@ -8,6 +8,7 @@
 #include <g_dnl.h>
 #include <init.h>
 #include <linux/libfdt.h>
+#include <linux/string.h>
 
 #ifdef CONFIG_DM_VIDEO
 #include <bmp_logo.h>
diff --git a/board/toradex/verdin-imx8mm/spl.c b/board/toradex/verdin-imx8mm/spl.c
index 588da0aeba6b..5ee86dd3f899 100644
--- a/board/toradex/verdin-imx8mm/spl.c
+++ b/board/toradex/verdin-imx8mm/spl.c
@@ -22,6 +22,7 @@
 #include <dm/uclass.h>
 #include <dm/uclass-internal.h>
 #include <hang.h>
+#include <linux/string.h>
 #include <power/bd71837.h>
 #include <power/pmic.h>
 #include <spl.h>
diff --git a/board/udoo/neo/neo.c b/board/udoo/neo/neo.c
index 653ca1ca5a62..aef82e2c2df1 100644
--- a/board/udoo/neo/neo.c
+++ b/board/udoo/neo/neo.c
@@ -32,6 +32,7 @@
 #include <i2c.h>
 #include <miiphy.h>
 #include <netdev.h>
+#include <linux/string.h>
 #include <power/pmic.h>
 #include <power/pfuze3000_pmic.h>
 #include <malloc.h>
diff --git a/board/variscite/dart_6ul/spl.c b/board/variscite/dart_6ul/spl.c
index 071f049caf6c..725600770b7e 100644
--- a/board/variscite/dart_6ul/spl.c
+++ b/board/variscite/dart_6ul/spl.c
@@ -13,6 +13,7 @@
 #include <asm/arch/mx6-pins.h>
 #include <asm/arch/crm_regs.h>
 #include <fsl_esdhc_imx.h>
+#include <linux/string.h>
 
 #define UART_PAD_CTRL  (PAD_CTL_PKE | PAD_CTL_PUE |		\
 	PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED |		\
diff --git a/board/varisys/common/sys_eeprom.c b/board/varisys/common/sys_eeprom.c
index 251d9fd73e56..facda8e5419f 100644
--- a/board/varisys/common/sys_eeprom.c
+++ b/board/varisys/common/sys_eeprom.c
@@ -16,6 +16,7 @@
 #include <i2c.h>
 #include <linux/ctype.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 
 #include "eeprom.h"
diff --git a/board/vscom/baltos/board.c b/board/vscom/baltos/board.c
index 4175d414694b..ed375c58cb9e 100644
--- a/board/vscom/baltos/board.c
+++ b/board/vscom/baltos/board.c
@@ -32,6 +32,7 @@
 #include <i2c.h>
 #include <miiphy.h>
 #include <cpsw.h>
+#include <linux/string.h>
 #include <power/tps65910.h>
 #include <watchdog.h>
 #include "board.h"
diff --git a/board/wandboard/wandboard.c b/board/wandboard/wandboard.c
index 53299c87010a..7d3da302395a 100644
--- a/board/wandboard/wandboard.c
+++ b/board/wandboard/wandboard.c
@@ -33,6 +33,7 @@
 #include <netdev.h>
 #include <phy.h>
 #include <i2c.h>
+#include <linux/string.h>
 #include <power/pmic.h>
 #include <power/pfuze100_pmic.h>
 
diff --git a/board/work-microwave/work_92105/work_92105_display.c b/board/work-microwave/work_92105/work_92105_display.c
index fecbbbdb584a..eefcb8545f50 100644
--- a/board/work-microwave/work_92105/work_92105_display.c
+++ b/board/work-microwave/work_92105/work_92105_display.c
@@ -23,6 +23,7 @@
 #include <version.h>
 #include <vsprintf.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 /*
  * GPO 15 in port 3 is gpio 3*32+15 = 111
diff --git a/board/xes/common/board.c b/board/xes/common/board.c
index 053b07a0b70f..b6aeee3f2ca6 100644
--- a/board/xes/common/board.c
+++ b/board/xes/common/board.c
@@ -5,6 +5,7 @@
 
 #include <common.h>
 #include <env.h>
+#include <linux/string.h>
 #include "fsl_8xxx_misc.h"
 #include <init.h>
 
diff --git a/board/xilinx/versal/board.c b/board/xilinx/versal/board.c
index 55da0df75c43..025212b223c6 100644
--- a/board/xilinx/versal/board.c
+++ b/board/xilinx/versal/board.c
@@ -20,6 +20,7 @@
 #include <dm/device.h>
 #include <dm/uclass.h>
 #include <versalpl.h>
+#include <linux/string.h>
 #include "../common/board.h"
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/board/xilinx/zynq/board.c b/board/xilinx/zynq/board.c
index 09e4184e1728..91446fb9c39c 100644
--- a/board/xilinx/zynq/board.c
+++ b/board/xilinx/zynq/board.c
@@ -18,6 +18,7 @@
 #include <zynqpl.h>
 #include <asm/arch/hardware.h>
 #include <asm/arch/sys_proto.h>
+#include <linux/string.h>
 #include "../common/board.h"
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/board/xilinx/zynq/bootimg.c b/board/xilinx/zynq/bootimg.c
index 2f55078dd768..1a9d3ed3ec5e 100644
--- a/board/xilinx/zynq/bootimg.c
+++ b/board/xilinx/zynq/bootimg.c
@@ -10,6 +10,7 @@
 #include <asm/io.h>
 #include <asm/arch/hardware.h>
 #include <asm/arch/sys_proto.h>
+#include <linux/string.h>
 #include <u-boot/md5.h>
 #include <zynq_bootimg.h>
 
diff --git a/board/xilinx/zynq/cmds.c b/board/xilinx/zynq/cmds.c
index 6c697caa625b..c43727ab87a4 100644
--- a/board/xilinx/zynq/cmds.c
+++ b/board/xilinx/zynq/cmds.c
@@ -12,6 +12,7 @@
 #include <asm/arch/sys_proto.h>
 #include <malloc.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 #include <u-boot/md5.h>
 #include <u-boot/rsa.h>
 #include <u-boot/rsa-mod-exp.h>
diff --git a/board/xilinx/zynqmp/zynqmp.c b/board/xilinx/zynqmp/zynqmp.c
index a64174a915c9..3bd39d5eb47a 100644
--- a/board/xilinx/zynqmp/zynqmp.c
+++ b/board/xilinx/zynqmp/zynqmp.c
@@ -35,6 +35,7 @@
 #include <linux/bitops.h>
 #include <linux/delay.h>
 #include <linux/sizes.h>
+#include <linux/string.h>
 #include "../common/board.h"
 
 #include "pm_cfg_obj.h"
diff --git a/cmd/abootimg.c b/cmd/abootimg.c
index 40e8978f152e..f21b77dbf6f8 100644
--- a/cmd/abootimg.c
+++ b/cmd/abootimg.c
@@ -9,6 +9,7 @@
 #include <command.h>
 #include <image.h>
 #include <mapmem.h>
+#include <linux/string.h>
 
 #define abootimg_addr() \
 	(_abootimg_addr == -1 ? image_load_addr : _abootimg_addr)
diff --git a/cmd/acpi.c b/cmd/acpi.c
index 6fa61c5fb89c..b009368eacee 100644
--- a/cmd/acpi.c
+++ b/cmd/acpi.c
@@ -11,6 +11,7 @@
 #include <asm/acpi_table.h>
 #include <asm/global_data.h>
 #include <dm/acpi.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/cmd/adtimg.c b/cmd/adtimg.c
index aa943007f350..2d43dd147d49 100644
--- a/cmd/adtimg.c
+++ b/cmd/adtimg.c
@@ -9,6 +9,7 @@
 #include <env.h>
 #include <image-android-dt.h>
 #include <common.h>
+#include <linux/string.h>
 
 #define OPT_INDEX	"--index"
 
diff --git a/cmd/aes.c b/cmd/aes.c
index 4c0dad99326a..51bc922b937c 100644
--- a/cmd/aes.c
+++ b/cmd/aes.c
@@ -12,6 +12,7 @@
 #include <asm/byteorder.h>
 #include <linux/compiler.h>
 #include <mapmem.h>
+#include <linux/string.h>
 
 u32 aes_get_key_len(char *command)
 {
diff --git a/cmd/armflash.c b/cmd/armflash.c
index 5e7315eb7cde..2365f16ce4c5 100644
--- a/cmd/armflash.c
+++ b/cmd/armflash.c
@@ -10,6 +10,7 @@
 #include <console.h>
 #include <flash.h>
 #include <asm/io.h>
+#include <linux/string.h>
 
 #define MAX_REGIONS 4
 #define MAX_IMAGES 32
diff --git a/cmd/avb.c b/cmd/avb.c
index 88172a9ee675..5e9db6f23851 100644
--- a/cmd/avb.c
+++ b/cmd/avb.c
@@ -11,6 +11,7 @@
 #include <image.h>
 #include <malloc.h>
 #include <mmc.h>
+#include <linux/string.h>
 
 #define AVB_BOOTARGS	"avb_bootargs"
 static struct AvbOps *avb_ops;
diff --git a/cmd/bcb.c b/cmd/bcb.c
index 81e099fbb1b4..2de6a08beb97 100644
--- a/cmd/bcb.c
+++ b/cmd/bcb.c
@@ -11,6 +11,7 @@
 #include <display_options.h>
 #include <log.h>
 #include <part.h>
+#include <linux/string.h>
 
 enum bcb_cmd {
 	BCB_CMD_LOAD,
diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c
index a940cac7eafd..f9fe3cd0e155 100644
--- a/cmd/bdinfo.c
+++ b/cmd/bdinfo.c
@@ -14,6 +14,7 @@
 #include <vsprintf.h>
 #include <asm/cache.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/cmd/binop.c b/cmd/binop.c
index c85cb51568da..afeffadc44f3 100644
--- a/cmd/binop.c
+++ b/cmd/binop.c
@@ -7,6 +7,7 @@
 #include <malloc.h>
 #include <mapmem.h>
 #include <linux/ctype.h>
+#include <linux/string.h>
 
 enum {
 	OP_ID_XOR,
diff --git a/cmd/blk_common.c b/cmd/blk_common.c
index 87f94b5abbfc..14413da3f6da 100644
--- a/cmd/blk_common.c
+++ b/cmd/blk_common.c
@@ -11,6 +11,7 @@
 #include <common.h>
 #include <blk.h>
 #include <command.h>
+#include <linux/string.h>
 
 int blk_common_cmd(int argc, char *const argv[], enum if_type if_type,
 		   int *cur_devnump)
diff --git a/cmd/blob.c b/cmd/blob.c
index c80e6977b4bf..a3b4f7a32862 100644
--- a/cmd/blob.c
+++ b/cmd/blob.c
@@ -9,6 +9,7 @@
 #include <malloc.h>
 #include <asm/byteorder.h>
 #include <linux/compiler.h>
+#include <linux/string.h>
 
 /**
  * blob_decap() - Decapsulate the data as a blob
diff --git a/cmd/bmp.c b/cmd/bmp.c
index 6040fa5d95d6..3ecf8db5e653 100644
--- a/cmd/bmp.c
+++ b/cmd/bmp.c
@@ -21,6 +21,7 @@
 #include <splash.h>
 #include <video.h>
 #include <asm/byteorder.h>
+#include <linux/string.h>
 
 static int bmp_info (ulong addr);
 
diff --git a/cmd/bootefi.c b/cmd/bootefi.c
index 9808049548db..8fb56106a898 100644
--- a/cmd/bootefi.c
+++ b/cmd/bootefi.c
@@ -25,6 +25,7 @@
 #include <memalign.h>
 #include <asm-generic/sections.h>
 #include <linux/linkage.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/cmd/booti.c b/cmd/booti.c
index 3df70ea9caaf..7df747bc575c 100644
--- a/cmd/booti.c
+++ b/cmd/booti.c
@@ -15,6 +15,7 @@
 #include <asm/global_data.h>
 #include <linux/kernel.h>
 #include <linux/sizes.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 /*
diff --git a/cmd/bootm.c b/cmd/bootm.c
index 7732b97f635d..599251f7181c 100644
--- a/cmd/bootm.c
+++ b/cmd/bootm.c
@@ -19,6 +19,7 @@
 #include <asm/global_data.h>
 #include <linux/ctype.h>
 #include <linux/err.h>
+#include <linux/string.h>
 #include <u-boot/zlib.h>
 #include <mapmem.h>
 
diff --git a/cmd/bootstage.c b/cmd/bootstage.c
index 0e623f216b19..37615c3ffec7 100644
--- a/cmd/bootstage.c
+++ b/cmd/bootstage.c
@@ -6,6 +6,7 @@
 #include <common.h>
 #include <bootstage.h>
 #include <command.h>
+#include <linux/string.h>
 
 static int do_bootstage_report(struct cmd_tbl *cmdtp, int flag, int argc,
 			       char *const argv[])
diff --git a/cmd/cache.c b/cmd/cache.c
index b68d45b98bf2..0ea2c6c033a8 100644
--- a/cmd/cache.c
+++ b/cmd/cache.c
@@ -11,6 +11,7 @@
 #include <command.h>
 #include <cpu_func.h>
 #include <linux/compiler.h>
+#include <linux/string.h>
 
 static int parse_argv(const char *);
 
diff --git a/cmd/cros_ec.c b/cmd/cros_ec.c
index ce1f59a740c1..b4059f0e7dce 100644
--- a/cmd/cros_ec.c
+++ b/cmd/cros_ec.c
@@ -14,6 +14,7 @@
 #include <log.h>
 #include <dm/device-internal.h>
 #include <dm/uclass-internal.h>
+#include <linux/string.h>
 
 /* Note: depends on enum ec_current_image */
 static const char * const ec_current_image_name[] = {"unknown", "RO", "RW"};
diff --git a/cmd/date.c b/cmd/date.c
index 0e1189475313..8e8f54ba405c 100644
--- a/cmd/date.c
+++ b/cmd/date.c
@@ -13,6 +13,7 @@
 #include <rtc.h>
 #include <i2c.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/cmd/dfu.c b/cmd/dfu.c
index 7310595a0278..b19b79c57eb6 100644
--- a/cmd/dfu.c
+++ b/cmd/dfu.c
@@ -18,6 +18,7 @@
 #include <g_dnl.h>
 #include <usb.h>
 #include <net.h>
+#include <linux/string.h>
 
 static int do_dfu(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 {
diff --git a/cmd/echo.c b/cmd/echo.c
index d02a4cfd586a..1d85e23c218c 100644
--- a/cmd/echo.c
+++ b/cmd/echo.c
@@ -6,6 +6,7 @@
 
 #include <common.h>
 #include <command.h>
+#include <linux/string.h>
 
 static int do_echo(struct cmd_tbl *cmdtp, int flag, int argc,
 		   char *const argv[])
diff --git a/cmd/eeprom.c b/cmd/eeprom.c
index 7fa62bba8fc9..654004e14303 100644
--- a/cmd/eeprom.c
+++ b/cmd/eeprom.c
@@ -26,6 +26,7 @@
 #include <i2c.h>
 #include <eeprom_layout.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #ifndef	CONFIG_SYS_I2C_SPEED
 #define	CONFIG_SYS_I2C_SPEED	50000
diff --git a/cmd/efi.c b/cmd/efi.c
index 1c0e62e4a330..11531cd1b4aa 100644
--- a/cmd/efi.c
+++ b/cmd/efi.c
@@ -12,6 +12,7 @@
 #include <malloc.h>
 #include <sort.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 static const char *const type_name[] = {
 	"reserved",
diff --git a/cmd/efidebug.c b/cmd/efidebug.c
index 9874838b005a..cf08e07d6d42 100644
--- a/cmd/efidebug.c
+++ b/cmd/efidebug.c
@@ -16,6 +16,7 @@
 #include <mapmem.h>
 #include <search.h>
 #include <linux/ctype.h>
+#include <linux/string.h>
 
 #define BS systab.boottime
 
diff --git a/cmd/elf.c b/cmd/elf.c
index d44b95d90339..a3cb6e274f4a 100644
--- a/cmd/elf.c
+++ b/cmd/elf.c
@@ -19,6 +19,7 @@
 #include <asm/e820.h>
 #include <linux/linkage.h>
 #endif
+#include <linux/string.h>
 
 /* Allow ports to override the default behavior */
 static unsigned long do_bootelf_exec(ulong (*entry)(int, char * const[]),
diff --git a/cmd/ethsw.c b/cmd/ethsw.c
index f8b8a798bf6a..8e2bd3dfa578 100644
--- a/cmd/ethsw.c
+++ b/cmd/ethsw.c
@@ -12,6 +12,7 @@
 #include <env_flags.h>
 #include <ethsw.h>
 #include <net.h>
+#include <linux/string.h>
 
 static const char *ethsw_name;
 
diff --git a/cmd/fastboot.c b/cmd/fastboot.c
index 48b891b28fc5..90efc85360d6 100644
--- a/cmd/fastboot.c
+++ b/cmd/fastboot.c
@@ -15,6 +15,7 @@
 #include <usb.h>
 #include <watchdog.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <linux/stringify.h>
 
 static int do_fastboot_udp(int argc, char *const argv[],
diff --git a/cmd/fdt.c b/cmd/fdt.c
index 89ab572d8df7..f5f1f6b00171 100644
--- a/cmd/fdt.c
+++ b/cmd/fdt.c
@@ -12,6 +12,7 @@
 #include <env.h>
 #include <image.h>
 #include <linux/ctype.h>
+#include <linux/string.h>
 #include <linux/types.h>
 #include <asm/global_data.h>
 #include <linux/libfdt.h>
diff --git a/cmd/flash.c b/cmd/flash.c
index 240871e8089a..3e7b335109de 100644
--- a/cmd/flash.c
+++ b/cmd/flash.c
@@ -11,6 +11,7 @@
 #include <command.h>
 #include <log.h>
 #include <uuid.h>
+#include <linux/string.h>
 
 #if defined(CONFIG_CMD_MTDPARTS)
 #include <jffs2/jffs2.h>
diff --git a/cmd/fpga.c b/cmd/fpga.c
index 8ae1c936fbb5..3151100aa140 100644
--- a/cmd/fpga.c
+++ b/cmd/fpga.c
@@ -16,6 +16,7 @@
 #include <image.h>
 #include <log.h>
 #include <malloc.h>
+#include <linux/string.h>
 
 static long do_fpga_get_device(char *arg)
 {
diff --git a/cmd/fuse.c b/cmd/fuse.c
index e001619d1720..db504349af1f 100644
--- a/cmd/fuse.c
+++ b/cmd/fuse.c
@@ -13,6 +13,7 @@
 #include <console.h>
 #include <fuse.h>
 #include <linux/errno.h>
+#include <linux/string.h>
 
 static int strtou32(const char *str, unsigned int base, u32 *result)
 {
diff --git a/cmd/gpio.c b/cmd/gpio.c
index 4fdb3135fc1a..e256f83ea103 100644
--- a/cmd/gpio.c
+++ b/cmd/gpio.c
@@ -14,6 +14,7 @@
 #include <malloc.h>
 #include <asm/gpio.h>
 #include <linux/err.h>
+#include <linux/string.h>
 
 __weak int name_to_gpio(const char *name)
 {
diff --git a/cmd/gpt.c b/cmd/gpt.c
index df759416c882..db70ba887b4b 100644
--- a/cmd/gpt.c
+++ b/cmd/gpt.c
@@ -27,6 +27,7 @@
 #include <linux/err.h>
 #include <linux/sizes.h>
 #include <stdlib.h>
+#include <linux/string.h>
 
 static LIST_HEAD(disk_partitions);
 
diff --git a/cmd/hash.c b/cmd/hash.c
index e163cd677420..5b0d75f8662d 100644
--- a/cmd/hash.c
+++ b/cmd/hash.c
@@ -13,6 +13,7 @@
 #include <command.h>
 #include <hash.h>
 #include <linux/ctype.h>
+#include <linux/string.h>
 
 static int do_hash(struct cmd_tbl *cmdtp, int flag, int argc,
 		   char *const argv[])
diff --git a/cmd/i2c.c b/cmd/i2c.c
index cc01119b2107..83e4cfaa255d 100644
--- a/cmd/i2c.c
+++ b/cmd/i2c.c
@@ -78,6 +78,7 @@
 #include <asm/byteorder.h>
 #include <linux/compiler.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 
 /* Display values from last command.
diff --git a/cmd/ide.c b/cmd/ide.c
index b78c38e1590d..8fefaf3f8158 100644
--- a/cmd/ide.c
+++ b/cmd/ide.c
@@ -16,6 +16,7 @@
 #include <image.h>
 #include <asm/byteorder.h>
 #include <asm/io.h>
+#include <linux/string.h>
 
 #include <ide.h>
 #include <ata.h>
diff --git a/cmd/irq.c b/cmd/irq.c
index 1d3e28cb3ce0..614fd942bc2a 100644
--- a/cmd/irq.c
+++ b/cmd/irq.c
@@ -7,6 +7,7 @@
 #include <config.h>
 #include <command.h>
 #include <irq_func.h>
+#include <linux/string.h>
 
 static int do_interrupts(struct cmd_tbl *cmdtp, int flag, int argc,
 			 char *const argv[])
diff --git a/cmd/itest.c b/cmd/itest.c
index a0cf4bee041f..4ccc4cbb8a91 100644
--- a/cmd/itest.c
+++ b/cmd/itest.c
@@ -16,6 +16,7 @@
 #include <command.h>
 #include <env.h>
 #include <mapmem.h>
+#include <linux/string.h>
 
 #include <asm/io.h>
 
diff --git a/cmd/jffs2.c b/cmd/jffs2.c
index 9540988e33e5..e06ab60a77f1 100644
--- a/cmd/jffs2.c
+++ b/cmd/jffs2.c
@@ -81,6 +81,7 @@
 #include <linux/list.h>
 #include <linux/ctype.h>
 #include <cramfs/cramfs_fs.h>
+#include <linux/string.h>
 
 #if defined(CONFIG_CMD_NAND)
 #include <linux/mtd/rawnand.h>
diff --git a/cmd/led.c b/cmd/led.c
index 9433fa886c25..a2b2f1b5e56b 100644
--- a/cmd/led.c
+++ b/cmd/led.c
@@ -9,6 +9,7 @@
 #include <dm.h>
 #include <led.h>
 #include <dm/uclass-internal.h>
+#include <linux/string.h>
 
 #define LED_TOGGLE LEDST_COUNT
 
diff --git a/cmd/legacy_led.c b/cmd/legacy_led.c
index 86cd969e4072..4176f089dfce 100644
--- a/cmd/legacy_led.c
+++ b/cmd/legacy_led.c
@@ -13,6 +13,7 @@
 #include <config.h>
 #include <command.h>
 #include <status_led.h>
+#include <linux/string.h>
 
 struct led_tbl_s {
 	char		*string;	/* String for use in the command */
diff --git a/cmd/load.c b/cmd/load.c
index 4bd463c3a7cb..a651478d920b 100644
--- a/cmd/load.c
+++ b/cmd/load.c
@@ -22,6 +22,7 @@
 #include <asm/cache.h>
 #include <asm/global_data.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/cmd/log.c b/cmd/log.c
index ccefb0cbb8cf..f47ff5d17e9b 100644
--- a/cmd/log.c
+++ b/cmd/log.c
@@ -9,6 +9,7 @@
 #include <dm.h>
 #include <log.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 static char log_fmt_chars[LOGF_COUNT] = "clFLfm";
 
diff --git a/cmd/md5sum.c b/cmd/md5sum.c
index 5ae3ddf85f82..ae2d81470d7f 100644
--- a/cmd/md5sum.c
+++ b/cmd/md5sum.c
@@ -12,6 +12,7 @@
 #include <env.h>
 #include <image.h>
 #include <mapmem.h>
+#include <linux/string.h>
 #include <u-boot/md5.h>
 #include <asm/io.h>
 
diff --git a/cmd/mdio.c b/cmd/mdio.c
index cfa45ad12a0a..d346ccc538d4 100644
--- a/cmd/mdio.c
+++ b/cmd/mdio.c
@@ -13,6 +13,7 @@
 #include <dm.h>
 #include <miiphy.h>
 #include <phy.h>
+#include <linux/string.h>
 
 static char last_op[2];
 static uint last_data;
diff --git a/cmd/mem.c b/cmd/mem.c
index e8559936984f..5970dff8f5ca 100644
--- a/cmd/mem.c
+++ b/cmd/mem.c
@@ -30,6 +30,7 @@
 #include <linux/compiler.h>
 #include <linux/ctype.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/cmd/mii.c b/cmd/mii.c
index fe8602eb7c87..a6524e400e70 100644
--- a/cmd/mii.c
+++ b/cmd/mii.c
@@ -12,6 +12,7 @@
 #include <command.h>
 #include <dm.h>
 #include <miiphy.h>
+#include <linux/string.h>
 
 typedef struct _MII_field_desc_t {
 	ushort hi;
diff --git a/cmd/misc.c b/cmd/misc.c
index 36bca24fb20b..8743a34cff56 100644
--- a/cmd/misc.c
+++ b/cmd/misc.c
@@ -12,6 +12,7 @@
 #include <console.h>
 #include <time.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 static int do_sleep(struct cmd_tbl *cmdtp, int flag, int argc,
 		    char *const argv[])
diff --git a/cmd/mmc.c b/cmd/mmc.c
index e3e75d0fc0e9..bc7e991c86e9 100644
--- a/cmd/mmc.c
+++ b/cmd/mmc.c
@@ -14,6 +14,7 @@
 #include <part.h>
 #include <sparse_format.h>
 #include <image-sparse.h>
+#include <linux/string.h>
 
 static int curr_device = -1;
 
diff --git a/cmd/mp.c b/cmd/mp.c
index c2b5235a373a..a14ebbd0b568 100644
--- a/cmd/mp.c
+++ b/cmd/mp.c
@@ -6,6 +6,7 @@
 #include <common.h>
 #include <command.h>
 #include <cpu_func.h>
+#include <linux/string.h>
 
 static int cpu_status_all(void)
 {
diff --git a/cmd/mtd.c b/cmd/mtd.c
index 485a963bdd0f..fe1e94f6cc4c 100644
--- a/cmd/mtd.c
+++ b/cmd/mtd.c
@@ -16,6 +16,7 @@
 #include <mtd.h>
 #include <dm/devres.h>
 #include <linux/err.h>
+#include <linux/string.h>
 
 #include <linux/ctype.h>
 
diff --git a/cmd/mtdparts.c b/cmd/mtdparts.c
index ed373a8c4dad..077793e88576 100644
--- a/cmd/mtdparts.c
+++ b/cmd/mtdparts.c
@@ -81,6 +81,7 @@
 #include <linux/ctype.h>
 #include <linux/err.h>
 #include <linux/mtd/mtd.h>
+#include <linux/string.h>
 
 #if defined(CONFIG_CMD_NAND)
 #include <linux/mtd/rawnand.h>
diff --git a/cmd/mvebu/bubt.c b/cmd/mvebu/bubt.c
index 4c58fd3c2e25..3df3ffd78a34 100644
--- a/cmd/mvebu/bubt.c
+++ b/cmd/mvebu/bubt.c
@@ -14,6 +14,7 @@
 #include <vsprintf.h>
 #include <errno.h>
 #include <dm.h>
+#include <linux/string.h>
 
 #include <spi_flash.h>
 #include <spi.h>
diff --git a/cmd/nand.c b/cmd/nand.c
index 92d039af8f52..880ee53d837d 100644
--- a/cmd/nand.c
+++ b/cmd/nand.c
@@ -32,6 +32,7 @@
 #include <asm/byteorder.h>
 #include <jffs2/jffs2.h>
 #include <nand.h>
+#include <linux/string.h>
 
 #include "legacy-mtd-utils.h"
 
diff --git a/cmd/net.c b/cmd/net.c
index 9bbcdbcfe076..c505656a949a 100644
--- a/cmd/net.c
+++ b/cmd/net.c
@@ -13,6 +13,7 @@
 #include <env.h>
 #include <image.h>
 #include <net.h>
+#include <linux/string.h>
 
 static int netboot_common(enum proto_t, struct cmd_tbl *, int, char * const []);
 
diff --git a/cmd/nvedit.c b/cmd/nvedit.c
index 554596b27d76..c73472ec2260 100644
--- a/cmd/nvedit.c
+++ b/cmd/nvedit.c
@@ -38,6 +38,7 @@
 #include <asm/global_data.h>
 #include <linux/bitops.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 #include <watchdog.h>
 #include <linux/stddef.h>
diff --git a/cmd/nvedit_efi.c b/cmd/nvedit_efi.c
index 8e31f43e1f9a..4f0148b074c9 100644
--- a/cmd/nvedit_efi.c
+++ b/cmd/nvedit_efi.c
@@ -18,6 +18,7 @@
 #include <rtc.h>
 #include <uuid.h>
 #include <linux/kernel.h>
+#include <linux/string.h>
 
 /*
  * From efi_variable.c,
diff --git a/cmd/nvme.c b/cmd/nvme.c
index e715c570a384..8c025980843c 100644
--- a/cmd/nvme.c
+++ b/cmd/nvme.c
@@ -9,6 +9,7 @@
 #include <command.h>
 #include <dm.h>
 #include <nvme.h>
+#include <linux/string.h>
 
 static int nvme_curr_dev;
 
diff --git a/cmd/onenand.c b/cmd/onenand.c
index fa403369faaf..fa12f0dec757 100644
--- a/cmd/onenand.c
+++ b/cmd/onenand.c
@@ -13,6 +13,7 @@
 #include <command.h>
 #include <malloc.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include <linux/compat.h>
 #include <linux/mtd/mtd.h>
diff --git a/cmd/osd.c b/cmd/osd.c
index bdad5d8e9637..c1ef7eb8cda2 100644
--- a/cmd/osd.c
+++ b/cmd/osd.c
@@ -15,6 +15,7 @@
 #include <hexdump.h>
 #include <video_osd.h>
 #include <malloc.h>
+#include <linux/string.h>
 
 /* Container for selected OSD device */
 static struct udevice *osd_cur;
diff --git a/cmd/part.c b/cmd/part.c
index 3395c17b892a..f53edac8357b 100644
--- a/cmd/part.c
+++ b/cmd/part.c
@@ -21,6 +21,7 @@
 #include <env.h>
 #include <part.h>
 #include <vsprintf.h>
+#include <linux/string.h>
 
 enum cmd_part_info {
 	CMD_PART_INFO_START = 0,
diff --git a/cmd/pci.c b/cmd/pci.c
index f91a4eb8ed06..c2d4e5d4ed67 100644
--- a/cmd/pci.c
+++ b/cmd/pci.c
@@ -22,6 +22,7 @@
 #include <asm/processor.h>
 #include <asm/io.h>
 #include <pci.h>
+#include <linux/string.h>
 
 struct pci_reg_info {
 	const char *name;
diff --git a/cmd/pinmux.c b/cmd/pinmux.c
index 9942b154196c..6f8a3fd94405 100644
--- a/cmd/pinmux.c
+++ b/cmd/pinmux.c
@@ -9,6 +9,7 @@
 #include <errno.h>
 #include <dm/pinctrl.h>
 #include <dm/uclass-internal.h>
+#include <linux/string.h>
 
 #define LIMIT_DEVNAME	30
 
diff --git a/cmd/regulator.c b/cmd/regulator.c
index 0d97334a9019..6e91c1775375 100644
--- a/cmd/regulator.c
+++ b/cmd/regulator.c
@@ -9,6 +9,7 @@
 #include <dm.h>
 #include <dm/uclass-internal.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <power/regulator.h>
 
 #define LIMIT_DEVNAME	20
diff --git a/cmd/remoteproc.c b/cmd/remoteproc.c
index e8b9178e7407..7adf45534003 100644
--- a/cmd/remoteproc.c
+++ b/cmd/remoteproc.c
@@ -9,6 +9,7 @@
 #include <errno.h>
 #include <malloc.h>
 #include <remoteproc.h>
+#include <linux/string.h>
 
 /**
  * print_remoteproc_list() - print all the remote processor devices
diff --git a/cmd/rtc.c b/cmd/rtc.c
index 4ac49d228cb1..b3f46f13eb40 100644
--- a/cmd/rtc.c
+++ b/cmd/rtc.c
@@ -8,6 +8,7 @@
 #include <i2c.h>
 #include <mapmem.h>
 #include <rtc.h>
+#include <linux/string.h>
 
 #define MAX_RTC_BYTES 32
 
diff --git a/cmd/sata.c b/cmd/sata.c
index aa396c1bbdff..9b19ca49b18d 100644
--- a/cmd/sata.c
+++ b/cmd/sata.c
@@ -18,6 +18,7 @@
 #include <sata.h>
 #include <dm/device-internal.h>
 #include <dm/uclass-internal.h>
+#include <linux/string.h>
 
 static int sata_curr_device = -1;
 
diff --git a/cmd/scsi.c b/cmd/scsi.c
index 5f710d289574..61437ef21eb0 100644
--- a/cmd/scsi.c
+++ b/cmd/scsi.c
@@ -11,6 +11,7 @@
 #include <blk.h>
 #include <command.h>
 #include <scsi.h>
+#include <linux/string.h>
 
 static int scsi_curr_dev; /* current device */
 
diff --git a/cmd/setexpr.c b/cmd/setexpr.c
index 770dc24d2b7a..1569d7ad72dd 100644
--- a/cmd/setexpr.c
+++ b/cmd/setexpr.c
@@ -14,6 +14,7 @@
 #include <env.h>
 #include <log.h>
 #include <mapmem.h>
+#include <linux/string.h>
 
 static ulong get_arg(char *s, int w)
 {
diff --git a/cmd/sf.c b/cmd/sf.c
index 249e2eee377d..c74651d23b6e 100644
--- a/cmd/sf.c
+++ b/cmd/sf.c
@@ -20,6 +20,7 @@
 #include <asm/cache.h>
 #include <jffs2/jffs2.h>
 #include <linux/mtd/mtd.h>
+#include <linux/string.h>
 
 #include <asm/io.h>
 #include <dm/device-internal.h>
diff --git a/cmd/sha1sum.c b/cmd/sha1sum.c
index bcc665a5a6c6..677f57b62d74 100644
--- a/cmd/sha1sum.c
+++ b/cmd/sha1sum.c
@@ -10,6 +10,7 @@
 #include <common.h>
 #include <command.h>
 #include <hash.h>
+#include <linux/string.h>
 #include <u-boot/sha1.h>
 
 int do_sha1sum(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
diff --git a/cmd/smccc.c b/cmd/smccc.c
index 0b19f6c68c6e..101959c848ab 100644
--- a/cmd/smccc.c
+++ b/cmd/smccc.c
@@ -9,6 +9,7 @@
 #include <linux/arm-smccc.h>
 #include <linux/compiler.h>
 #include <linux/psci.h>
+#include <linux/string.h>
 
 static int do_call(struct cmd_tbl *cmdtp, int flag, int argc,
 		   char *const argv[])
diff --git a/cmd/spi.c b/cmd/spi.c
index 4aea19141290..df05e828fd1d 100644
--- a/cmd/spi.c
+++ b/cmd/spi.c
@@ -13,6 +13,7 @@
 #include <dm.h>
 #include <errno.h>
 #include <spi.h>
+#include <linux/string.h>
 
 /*-----------------------------------------------------------------------
  * Definitions
diff --git a/cmd/strings.c b/cmd/strings.c
index 85fdc34f08fe..bf4efa4aa3a3 100644
--- a/cmd/strings.c
+++ b/cmd/strings.c
@@ -9,6 +9,7 @@
 #include <config.h>
 #include <common.h>
 #include <command.h>
+#include <linux/string.h>
 
 static char *start_addr, *last_addr;
 
diff --git a/cmd/sysboot.c b/cmd/sysboot.c
index af6a2f1b7f1f..38aa2a2cdb03 100644
--- a/cmd/sysboot.c
+++ b/cmd/sysboot.c
@@ -4,6 +4,7 @@
 #include <command.h>
 #include <env.h>
 #include <fs.h>
+#include <linux/string.h>
 #include "pxe_utils.h"
 
 static char *fs_argv[5];
diff --git a/cmd/test.c b/cmd/test.c
index fa7c48fb9f10..ad69e6dd7a6c 100644
--- a/cmd/test.c
+++ b/cmd/test.c
@@ -8,6 +8,7 @@
 #include <command.h>
 #include <fs.h>
 #include <log.h>
+#include <linux/string.h>
 
 #define OP_INVALID	0
 #define OP_NOT		1
diff --git a/cmd/ti/ddr3.c b/cmd/ti/ddr3.c
index 6b43a7386832..f3c3e7e9fbe5 100644
--- a/cmd/ti/ddr3.c
+++ b/cmd/ti/ddr3.c
@@ -15,6 +15,7 @@
 #include <common.h>
 #include <command.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/cmd/tlv_eeprom.c b/cmd/tlv_eeprom.c
index 5099cbdd95ee..663beeb9f73b 100644
--- a/cmd/tlv_eeprom.c
+++ b/cmd/tlv_eeprom.c
@@ -19,6 +19,7 @@
 #include <net.h>
 #include <asm/global_data.h>
 #include <linux/ctype.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 
 #include "tlv_eeprom.h"
diff --git a/cmd/tpm-v1.c b/cmd/tpm-v1.c
index 0e2168aea670..77cd5e3bd7c7 100644
--- a/cmd/tpm-v1.c
+++ b/cmd/tpm-v1.c
@@ -10,6 +10,7 @@
 #include <asm/unaligned.h>
 #include <tpm-common.h>
 #include <tpm-v1.h>
+#include <linux/string.h>
 #include "tpm-user-utils.h"
 
 static int do_tpm_startup(struct cmd_tbl *cmdtp, int flag, int argc,
diff --git a/cmd/tpm-v2.c b/cmd/tpm-v2.c
index e6742656f578..392811f12795 100644
--- a/cmd/tpm-v2.c
+++ b/cmd/tpm-v2.c
@@ -11,6 +11,7 @@
 #include <mapmem.h>
 #include <tpm-common.h>
 #include <tpm-v2.h>
+#include <linux/string.h>
 #include "tpm-user-utils.h"
 
 static int do_tpm2_startup(struct cmd_tbl *cmdtp, int flag, int argc,
diff --git a/cmd/tsi148.c b/cmd/tsi148.c
index 2eae14f87f1d..cbe898475bac 100644
--- a/cmd/tsi148.c
+++ b/cmd/tsi148.c
@@ -13,6 +13,7 @@
 #include <malloc.h>
 #include <asm/io.h>
 #include <pci.h>
+#include <linux/string.h>
 
 #include <tsi148.h>
 
diff --git a/cmd/ubi.c b/cmd/ubi.c
index 171377cc66b5..afd45bab9435 100644
--- a/cmd/ubi.c
+++ b/cmd/ubi.c
@@ -27,6 +27,7 @@
 #include <ubi_uboot.h>
 #include <linux/errno.h>
 #include <jffs2/load_kernel.h>
+#include <linux/string.h>
 
 #undef ubi_msg
 #define ubi_msg(fmt, ...) printf("UBI: " fmt "\n", ##__VA_ARGS__)
diff --git a/cmd/ufs.c b/cmd/ufs.c
index 858cd49b5970..a04d15a2441c 100644
--- a/cmd/ufs.c
+++ b/cmd/ufs.c
@@ -8,6 +8,7 @@
 #include <common.h>
 #include <command.h>
 #include <ufs.h>
+#include <linux/string.h>
 
 static int do_ufs(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 {
diff --git a/cmd/universe.c b/cmd/universe.c
index 5ff47dde4fbe..37437a1cdddd 100644
--- a/cmd/universe.c
+++ b/cmd/universe.c
@@ -8,6 +8,7 @@
 #include <malloc.h>
 #include <asm/io.h>
 #include <pci.h>
+#include <linux/string.h>
 
 #include <universe.h>
 
diff --git a/cmd/usb.c b/cmd/usb.c
index b9ec29a8457e..04205a7a52e1 100644
--- a/cmd/usb.c
+++ b/cmd/usb.c
@@ -22,6 +22,7 @@
 #include <asm/unaligned.h>
 #include <part.h>
 #include <usb.h>
+#include <linux/string.h>
 
 #ifdef CONFIG_USB_STORAGE
 static int usb_stor_curr_dev = -1; /* current device */
diff --git a/cmd/usb_mass_storage.c b/cmd/usb_mass_storage.c
index 5996c852e8e1..43fdb097078e 100644
--- a/cmd/usb_mass_storage.c
+++ b/cmd/usb_mass_storage.c
@@ -19,6 +19,7 @@
 #include <watchdog.h>
 #include <linux/delay.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 static int ums_read_sector(struct ums *ums_dev,
 			   ulong start, lbaint_t blkcnt, void *buf)
diff --git a/cmd/virtio.c b/cmd/virtio.c
index 3dace5344f7e..8f64ffa8e147 100644
--- a/cmd/virtio.c
+++ b/cmd/virtio.c
@@ -10,6 +10,7 @@
 #include <dm.h>
 #include <virtio_types.h>
 #include <virtio.h>
+#include <linux/string.h>
 
 static int virtio_curr_dev;
 
diff --git a/cmd/w1.c b/cmd/w1.c
index 459094bf8094..5682981f2df2 100644
--- a/cmd/w1.c
+++ b/cmd/w1.c
@@ -10,6 +10,7 @@
 #include <w1.h>
 #include <w1-eeprom.h>
 #include <dm/device-internal.h>
+#include <linux/string.h>
 
 static int w1_bus(void)
 {
diff --git a/cmd/x86/mtrr.c b/cmd/x86/mtrr.c
index e118bba5a2a7..3e46a342a055 100644
--- a/cmd/x86/mtrr.c
+++ b/cmd/x86/mtrr.c
@@ -9,6 +9,7 @@
 #include <asm/msr.h>
 #include <asm/mp.h>
 #include <asm/mtrr.h>
+#include <linux/string.h>
 
 static const char *const mtrr_type_name[MTRR_TYPE_COUNT] = {
 	"Uncacheable",
diff --git a/cmd/ximg.c b/cmd/ximg.c
index 159ba5164898..c9cf4009d0d7 100644
--- a/cmd/ximg.c
+++ b/cmd/ximg.c
@@ -26,6 +26,7 @@
 #include <asm/byteorder.h>
 #include <asm/cache.h>
 #include <asm/io.h>
+#include <linux/string.h>
 
 #ifndef CONFIG_SYS_XIMG_LEN
 /* use 8MByte as default max gunzip size */
diff --git a/cmd/yaffs2.c b/cmd/yaffs2.c
index f29ebcc026e5..1ecb5bea8e26 100644
--- a/cmd/yaffs2.c
+++ b/cmd/yaffs2.c
@@ -14,6 +14,7 @@
  */
 
 #include <common.h>
+#include <linux/string.h>
 
 #include <config.h>
 #include <command.h>
diff --git a/cmd/zfs.c b/cmd/zfs.c
index e429ac88d73c..d01835573a4c 100644
--- a/cmd/zfs.c
+++ b/cmd/zfs.c
@@ -19,6 +19,7 @@
 #include <zfs_common.h>
 #include <linux/stat.h>
 #include <malloc.h>
+#include <linux/string.h>
 
 #if defined(CONFIG_CMD_USB) && defined(CONFIG_USB_STORAGE)
 #include <usb.h>
diff --git a/common/android_ab.c b/common/android_ab.c
index 4943f26d53ab..794df3fde7ad 100644
--- a/common/android_ab.c
+++ b/common/android_ab.c
@@ -11,6 +11,7 @@
 #include <part.h>
 #include <memalign.h>
 #include <linux/err.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 #include <u-boot/crc.h>
 
diff --git a/common/autoboot.c b/common/autoboot.c
index 4341f5f0bb02..6db005259777 100644
--- a/common/autoboot.c
+++ b/common/autoboot.c
@@ -21,6 +21,7 @@
 #include <time.h>
 #include <asm/global_data.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <u-boot/sha256.h>
 #include <bootcount.h>
 
diff --git a/common/avb_verify.c b/common/avb_verify.c
index a2b739626b52..6894f6872e94 100644
--- a/common/avb_verify.c
+++ b/common/avb_verify.c
@@ -12,6 +12,7 @@
 #include <malloc.h>
 #include <part.h>
 #include <tee.h>
+#include <linux/string.h>
 #include <tee/optee_ta_avb.h>
 
 static const unsigned char avb_root_pub[1032] = {
diff --git a/common/bloblist.c b/common/bloblist.c
index e3c2b5fa898b..9abd360db8db 100644
--- a/common/bloblist.c
+++ b/common/bloblist.c
@@ -10,6 +10,7 @@
 #include <mapmem.h>
 #include <spl.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/common/board_f.c b/common/board_f.c
index bf3015d73b17..adf8c837358d 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -55,6 +55,7 @@
 #include <asm/sections.h>
 #include <dm/root.h>
 #include <linux/errno.h>
+#include <linux/string.h>
 
 /*
  * Pointer to initial global data area
diff --git a/common/bootm.c b/common/bootm.c
index 157b0cbc7e86..f9ff1ce78ba8 100644
--- a/common/bootm.c
+++ b/common/bootm.c
@@ -23,6 +23,7 @@
 #if defined(CONFIG_CMD_USB)
 #include <usb.h>
 #endif
+#include <linux/string.h>
 #else
 #include "mkimage.h"
 #endif
diff --git a/common/bootm_os.c b/common/bootm_os.c
index 0b6325db6605..295c6b8c0642 100644
--- a/common/bootm_os.c
+++ b/common/bootm_os.c
@@ -19,6 +19,7 @@
 #include <malloc.h>
 #include <mapmem.h>
 #include <vxworks.h>
+#include <linux/string.h>
 #include <tee/optee.h>
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/common/bootstage.c b/common/bootstage.c
index d5b78b9f4872..6eb837679493 100644
--- a/common/bootstage.c
+++ b/common/bootstage.c
@@ -19,6 +19,7 @@
 #include <asm/global_data.h>
 #include <linux/compiler.h>
 #include <linux/libfdt.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/common/bouncebuf.c b/common/bouncebuf.c
index 6d98920de662..bcca7838bcc7 100644
--- a/common/bouncebuf.c
+++ b/common/bouncebuf.c
@@ -12,6 +12,7 @@
 #include <errno.h>
 #include <bouncebuf.h>
 #include <asm/cache.h>
+#include <linux/string.h>
 
 static int addr_aligned(struct bounce_buffer *state)
 {
diff --git a/common/cli.c b/common/cli.c
index 048eacb9ef97..4fc4c206e4df 100644
--- a/common/cli.c
+++ b/common/cli.c
@@ -19,6 +19,7 @@
 #include <hang.h>
 #include <malloc.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/common/cli_hush.c b/common/cli_hush.c
index 3fbe918ebade..f077707f9f7e 100644
--- a/common/cli_hush.c
+++ b/common/cli_hush.c
@@ -88,6 +88,7 @@
 #define CONFIG_SYS_PROMPT_HUSH_PS2	"> "
 #endif
 #include <asm/global_data.h>
+#include <linux/string.h>
 #endif
 #ifndef __U_BOOT__
 #include <ctype.h>     /* isalpha, isdigit */
diff --git a/common/cli_readline.c b/common/cli_readline.c
index c89bb136b867..927c5066a9e0 100644
--- a/common/cli_readline.c
+++ b/common/cli_readline.c
@@ -15,6 +15,7 @@
 #include <time.h>
 #include <watchdog.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/common/cli_simple.c b/common/cli_simple.c
index 7d91316a0fbd..b7f21bbbe75d 100644
--- a/common/cli_simple.c
+++ b/common/cli_simple.c
@@ -16,6 +16,7 @@
 #include <env.h>
 #include <log.h>
 #include <linux/ctype.h>
+#include <linux/string.h>
 
 #define DEBUG_PARSER	0	/* set to 1 to debug */
 
diff --git a/common/command.c b/common/command.c
index 5cadf732e96e..3bc2038f97f9 100644
--- a/common/command.c
+++ b/common/command.c
@@ -17,6 +17,7 @@
 #include <time.h>
 #include <asm/global_data.h>
 #include <linux/ctype.h>
+#include <linux/string.h>
 
 /*
  * Use puts() instead of printf() to avoid printf buffer overflow
diff --git a/common/common_fit.c b/common/common_fit.c
index a9933081007b..dfb2134fcf11 100644
--- a/common/common_fit.c
+++ b/common/common_fit.c
@@ -9,6 +9,7 @@
 #include <image.h>
 #include <log.h>
 #include <linux/libfdt.h>
+#include <linux/string.h>
 
 ulong fdt_getprop_u32(const void *fdt, int node, const char *prop)
 {
diff --git a/common/console.c b/common/console.c
index 3596f684ac2e..86c42cb8e5b2 100644
--- a/common/console.c
+++ b/common/console.c
@@ -22,6 +22,7 @@
 #include <watchdog.h>
 #include <asm/global_data.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/common/dlmalloc.c b/common/dlmalloc.c
index cf0270a9c115..dc584f792b3a 100644
--- a/common/dlmalloc.c
+++ b/common/dlmalloc.c
@@ -1,6 +1,7 @@
 #include <common.h>
 #include <log.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 #if CONFIG_IS_ENABLED(UNIT_TEST)
 #define DEBUG
diff --git a/common/eeprom/eeprom_layout.c b/common/eeprom/eeprom_layout.c
index 5a9be1da061f..338185d58c36 100644
--- a/common/eeprom/eeprom_layout.c
+++ b/common/eeprom/eeprom_layout.c
@@ -10,6 +10,7 @@
 #include <linux/kernel.h>
 #include <eeprom_layout.h>
 #include <eeprom_field.h>
+#include <linux/string.h>
 
 #define NO_LAYOUT_FIELDS	"Unknown layout. Dumping raw data\n"
 
diff --git a/common/fdt_region.c b/common/fdt_region.c
index ff12c518e97a..66b47c13bdc9 100644
--- a/common/fdt_region.c
+++ b/common/fdt_region.c
@@ -12,6 +12,7 @@
 #ifndef USE_HOSTCC
 #include <fdt.h>
 #include <linux/libfdt.h>
+#include <linux/string.h>
 #else
 #include "fdt_host.h"
 #endif
diff --git a/common/fdt_support.c b/common/fdt_support.c
index a565b470f81e..9b685cc1736a 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -13,6 +13,7 @@
 #include <net.h>
 #include <stdio_dev.h>
 #include <linux/ctype.h>
+#include <linux/string.h>
 #include <linux/types.h>
 #include <asm/global_data.h>
 #include <linux/libfdt.h>
diff --git a/common/flash.c b/common/flash.c
index bb82385c1f74..62f4c98749ae 100644
--- a/common/flash.c
+++ b/common/flash.c
@@ -10,6 +10,7 @@
 #include <flash.h>
 #include <log.h>
 #include <uuid.h>
+#include <linux/string.h>
 
 #include <mtd/cfi_flash.h>
 
diff --git a/common/hash.c b/common/hash.c
index fc64002f736a..e1be8dc05f9d 100644
--- a/common/hash.c
+++ b/common/hash.c
@@ -21,6 +21,7 @@
 #include <asm/global_data.h>
 #include <asm/io.h>
 #include <linux/errno.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 #else
 #include "mkimage.h"
diff --git a/common/image-android.c b/common/image-android.c
index d07b0e0f09b4..7f76be86790c 100644
--- a/common/image-android.c
+++ b/common/image-android.c
@@ -13,6 +13,7 @@
 #include <asm/unaligned.h>
 #include <mapmem.h>
 #include <linux/libfdt.h>
+#include <linux/string.h>
 
 #define ANDROID_IMAGE_DEFAULT_KERNEL_ADDR	0x10008000
 
diff --git a/common/image-cipher.c b/common/image-cipher.c
index 09d8512f8e59..c611eb52948f 100644
--- a/common/image-cipher.c
+++ b/common/image-cipher.c
@@ -10,6 +10,7 @@
 #include <common.h>
 #include <malloc.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 DECLARE_GLOBAL_DATA_PTR;
 #endif /* !USE_HOSdTCC*/
 #include <image.h>
diff --git a/common/image-fdt.c b/common/image-fdt.c
index cb7b7c3ef2c3..41fce043f544 100644
--- a/common/image-fdt.c
+++ b/common/image-fdt.c
@@ -21,6 +21,7 @@
 #include <linux/libfdt.h>
 #include <mapmem.h>
 #include <asm/io.h>
+#include <linux/string.h>
 #include <tee/optee.h>
 
 #ifndef CONFIG_SYS_FDT_PAD
diff --git a/common/image-fit-sig.c b/common/image-fit-sig.c
index 11fbdb0fb4f3..0c36649dce0b 100644
--- a/common/image-fit-sig.c
+++ b/common/image-fit-sig.c
@@ -11,6 +11,7 @@
 #include <log.h>
 #include <malloc.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 DECLARE_GLOBAL_DATA_PTR;
 #endif /* !USE_HOSTCC*/
 #include <fdt_region.h>
diff --git a/common/image-fit.c b/common/image-fit.c
index 973a37969f68..5d5dd7dc40a4 100644
--- a/common/image-fit.c
+++ b/common/image-fit.c
@@ -23,6 +23,7 @@
 #include <asm/io.h>
 #include <malloc.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 DECLARE_GLOBAL_DATA_PTR;
 #endif /* !USE_HOSTCC*/
 
diff --git a/common/image-sig.c b/common/image-sig.c
index 4abd3c080f78..6cb5bedc8a95 100644
--- a/common/image-sig.c
+++ b/common/image-sig.c
@@ -13,6 +13,7 @@
 #include <log.h>
 #include <malloc.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 DECLARE_GLOBAL_DATA_PTR;
 #endif /* !USE_HOSTCC*/
 #include <image.h>
diff --git a/common/image.c b/common/image.c
index d8db73c82ba5..ab0f0439bad2 100644
--- a/common/image.c
+++ b/common/image.c
@@ -16,6 +16,7 @@
 #include <log.h>
 #include <malloc.h>
 #include <asm/cache.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 #include <watchdog.h>
 
diff --git a/common/init/board_init.c b/common/init/board_init.c
index 3f183ee11326..319d59b51641 100644
--- a/common/init/board_init.c
+++ b/common/init/board_init.c
@@ -10,6 +10,7 @@
 #include <bootstage.h>
 #include <init.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/common/iomux.c b/common/iomux.c
index 7cfd9f2e9162..d552e0ee61ac 100644
--- a/common/iomux.c
+++ b/common/iomux.c
@@ -8,6 +8,7 @@
 #include <console.h>
 #include <serial.h>
 #include <malloc.h>
+#include <linux/string.h>
 
 #if CONFIG_IS_ENABLED(CONSOLE_MUX)
 void iomux_printdevs(const int console)
diff --git a/common/kallsyms.c b/common/kallsyms.c
index ce42a932bb85..b8e64c5b6334 100644
--- a/common/kallsyms.c
+++ b/common/kallsyms.c
@@ -6,6 +6,7 @@
  */
 
 #include <common.h>
+#include <linux/string.h>
 
 /* We need the weak marking as this symbol is provided specially */
 extern const char system_map[] __attribute__((weak));
diff --git a/common/kgdb.c b/common/kgdb.c
index 4493a1591986..2f3bb7f6142d 100644
--- a/common/kgdb.c
+++ b/common/kgdb.c
@@ -89,6 +89,7 @@
 
 #include <common.h>
 #include <asm/ptrace.h>
+#include <linux/string.h>
 
 #include <kgdb.h>
 #include <command.h>
diff --git a/common/lcd.c b/common/lcd.c
index ab5614ad0e3d..04736d6c9805 100644
--- a/common/lcd.c
+++ b/common/lcd.c
@@ -16,6 +16,7 @@
 #include <asm/cache.h>
 #include <init.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 #include <linux/types.h>
 #include <stdio_dev.h>
 #include <lcd.h>
diff --git a/common/lcd_console.c b/common/lcd_console.c
index 1a246c492cec..7a10a20d7244 100644
--- a/common/lcd_console.c
+++ b/common/lcd_console.c
@@ -15,6 +15,7 @@
 #if defined(CONFIG_LCD_LOGO)
 #include <bmp_logo.h>
 #endif
+#include <linux/string.h>
 
 static struct console_t cons;
 
diff --git a/common/log.c b/common/log.c
index f40513dc5322..0eeee6a66b0a 100644
--- a/common/log.c
+++ b/common/log.c
@@ -11,6 +11,7 @@
 #include <malloc.h>
 #include <asm/global_data.h>
 #include <dm/uclass.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/common/log_syslog.c b/common/log_syslog.c
index 2477a6995d3e..2f3c93bf8393 100644
--- a/common/log_syslog.c
+++ b/common/log_syslog.c
@@ -9,6 +9,7 @@
 #include <log.h>
 #include <net.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/common/malloc_simple.c b/common/malloc_simple.c
index 0267fb6bec87..805b044515fc 100644
--- a/common/malloc_simple.c
+++ b/common/malloc_simple.c
@@ -13,6 +13,7 @@
 #include <mapmem.h>
 #include <asm/global_data.h>
 #include <asm/io.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/common/menu.c b/common/menu.c
index 5fb2ffbd065d..0d08321e0e7f 100644
--- a/common/menu.c
+++ b/common/menu.c
@@ -9,6 +9,7 @@
 #include <malloc.h>
 #include <errno.h>
 #include <linux/list.h>
+#include <linux/string.h>
 
 #include "menu.h"
 
diff --git a/common/miiphyutil.c b/common/miiphyutil.c
index 7d4d15ed9189..fa273f1c2017 100644
--- a/common/miiphyutil.c
+++ b/common/miiphyutil.c
@@ -15,6 +15,7 @@
 #include <miiphy.h>
 #include <phy.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include <asm/types.h>
 #include <linux/list.h>
diff --git a/common/spl/spl.c b/common/spl/spl.c
index fd050cc63103..bea542ed2e35 100644
--- a/common/spl/spl.c
+++ b/common/spl/spl.c
@@ -22,6 +22,7 @@
 #include <asm/u-boot.h>
 #include <nand.h>
 #include <fat.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 #include <version.h>
 #include <image.h>
diff --git a/common/spl/spl_atf.c b/common/spl/spl_atf.c
index b54b4f0d22e2..6c3e839e8558 100644
--- a/common/spl/spl_atf.c
+++ b/common/spl/spl_atf.c
@@ -17,6 +17,7 @@
 #include <log.h>
 #include <spl.h>
 #include <asm/cache.h>
+#include <linux/string.h>
 
 static struct bl2_to_bl31_params_mem bl31_params_mem;
 static struct bl31_params *bl2_to_bl31_params;
diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c
index da6e021e1bf7..5da3fceb0de6 100644
--- a/common/spl/spl_fit.c
+++ b/common/spl/spl_fit.c
@@ -17,6 +17,7 @@
 #include <asm/global_data.h>
 #include <linux/libfdt.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/common/spl/spl_net.c b/common/spl/spl_net.c
index e140a6306fff..6ac8b65eebd0 100644
--- a/common/spl/spl_net.c
+++ b/common/spl/spl_net.c
@@ -14,6 +14,7 @@
 #include <spl.h>
 #include <net.h>
 #include <linux/libfdt.h>
+#include <linux/string.h>
 
 #if defined(CONFIG_SPL_ETH_SUPPORT) || defined(CONFIG_SPL_USB_ETHER)
 static ulong spl_net_load_read(struct spl_load_info *load, ulong sector,
diff --git a/common/spl/spl_nor.c b/common/spl/spl_nor.c
index 5270401db034..a1966cbad85f 100644
--- a/common/spl/spl_nor.c
+++ b/common/spl/spl_nor.c
@@ -7,6 +7,7 @@
 #include <image.h>
 #include <log.h>
 #include <spl.h>
+#include <linux/string.h>
 
 static ulong spl_nor_load_read(struct spl_load_info *load, ulong sector,
 			       ulong count, void *buf)
diff --git a/common/spl/spl_ram.c b/common/spl/spl_ram.c
index df1d5b43d8b5..7ea0a32b0d72 100644
--- a/common/spl/spl_ram.c
+++ b/common/spl/spl_ram.c
@@ -16,6 +16,7 @@
 #include <mapmem.h>
 #include <spl.h>
 #include <linux/libfdt.h>
+#include <linux/string.h>
 
 #ifndef CONFIG_SPL_LOAD_FIT_ADDRESS
 # define CONFIG_SPL_LOAD_FIT_ADDRESS	0
diff --git a/common/spl/spl_ubi.c b/common/spl/spl_ubi.c
index de6a63bd2d45..6a3679300d7e 100644
--- a/common/spl/spl_ubi.c
+++ b/common/spl/spl_ubi.c
@@ -11,6 +11,7 @@
 #include <onenand_uboot.h>
 #include <ubispl.h>
 #include <spl.h>
+#include <linux/string.h>
 
 int spl_ubi_load_image(struct spl_image_info *spl_image,
 		       struct spl_boot_device *bootdev)
diff --git a/common/spl/spl_ymodem.c b/common/spl/spl_ymodem.c
index 284512478f1b..c1958613299c 100644
--- a/common/spl/spl_ymodem.c
+++ b/common/spl/spl_ymodem.c
@@ -16,6 +16,7 @@
 #include <xyzModem.h>
 #include <asm/u-boot.h>
 #include <linux/libfdt.h>
+#include <linux/string.h>
 
 #define BUF_SIZE 1024
 
diff --git a/common/splash.c b/common/splash.c
index e26b366cb238..31bbbc2f531c 100644
--- a/common/splash.c
+++ b/common/splash.c
@@ -25,6 +25,7 @@
 #include <env.h>
 #include <splash.h>
 #include <lcd.h>
+#include <linux/string.h>
 
 static struct splash_location default_splash_locations[] = {
 	{
diff --git a/common/splash_source.c b/common/splash_source.c
index 2737fc6e7ffa..12ea112a9d48 100644
--- a/common/splash_source.c
+++ b/common/splash_source.c
@@ -21,6 +21,7 @@
 #include <splash.h>
 #include <usb.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/common/stdio.c b/common/stdio.c
index 1c6ad6861060..411796138f7f 100644
--- a/common/stdio.c
+++ b/common/stdio.c
@@ -19,6 +19,7 @@
 #include <serial.h>
 #include <splash.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 #if defined(CONFIG_SYS_I2C)
 #include <i2c.h>
diff --git a/common/update.c b/common/update.c
index 5875524d59be..8851943b15cd 100644
--- a/common/update.c
+++ b/common/update.c
@@ -10,6 +10,7 @@
 #include <cpu_func.h>
 #include <image.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #if !(defined(CONFIG_FIT) && defined(CONFIG_OF_LIBFDT))
 #error "CONFIG_FIT and CONFIG_OF_LIBFDT are required for auto-update feature"
diff --git a/common/usb.c b/common/usb.c
index aad13fd9c557..7dd34df3cd64 100644
--- a/common/usb.c
+++ b/common/usb.c
@@ -39,6 +39,7 @@
 #include <errno.h>
 #include <usb.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #define USB_BUFSIZ	512
 
diff --git a/common/usb_hub.c b/common/usb_hub.c
index af088bd72896..1eee9401dc35 100644
--- a/common/usb_hub.c
+++ b/common/usb_hub.c
@@ -40,6 +40,7 @@
 #include <asm/state.h>
 #endif
 #include <asm/unaligned.h>
+#include <linux/string.h>
 
 #include <usb.h>
 
diff --git a/common/usb_kbd.c b/common/usb_kbd.c
index 3a81a3059956..0fb955c14b6a 100644
--- a/common/usb_kbd.c
+++ b/common/usb_kbd.c
@@ -18,6 +18,7 @@
 #include <time.h>
 #include <watchdog.h>
 #include <asm/byteorder.h>
+#include <linux/string.h>
 
 #include <usb.h>
 
diff --git a/common/usb_storage.c b/common/usb_storage.c
index ff254419951f..492a9374ad24 100644
--- a/common/usb_storage.c
+++ b/common/usb_storage.c
@@ -46,6 +46,7 @@
 #include <dm/device-internal.h>
 #include <dm/lists.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include <part.h>
 #include <usb.h>
diff --git a/disk/part.c b/disk/part.c
index b69fd345f360..45d629508c24 100644
--- a/disk/part.c
+++ b/disk/part.c
@@ -14,6 +14,7 @@
 #include <malloc.h>
 #include <part.h>
 #include <ubifs_uboot.h>
+#include <linux/string.h>
 
 #undef	PART_DEBUG
 
diff --git a/disk/part_amiga.c b/disk/part_amiga.c
index 7eea60b564de..17c595a0a7bd 100644
--- a/disk/part_amiga.c
+++ b/disk/part_amiga.c
@@ -8,6 +8,7 @@
 #include <command.h>
 #include <env.h>
 #include <ide.h>
+#include <linux/string.h>
 #include "part_amiga.h"
 #include <part.h>
 
diff --git a/disk/part_dos.c b/disk/part_dos.c
index 04f53106f7ce..8eaa85e6b299 100644
--- a/disk/part_dos.c
+++ b/disk/part_dos.c
@@ -18,6 +18,7 @@
 #include <command.h>
 #include <ide.h>
 #include <memalign.h>
+#include <linux/string.h>
 #include "part_dos.h"
 #include <part.h>
 
diff --git a/disk/part_efi.c b/disk/part_efi.c
index c0def902feca..b995efc732de 100644
--- a/disk/part_efi.c
+++ b/disk/part_efi.c
@@ -26,6 +26,7 @@
 #include <linux/compiler.h>
 #include <linux/ctype.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/disk/part_iso.c b/disk/part_iso.c
index 822f2c4d9f40..a7d63d64e90b 100644
--- a/disk/part_iso.c
+++ b/disk/part_iso.c
@@ -10,6 +10,7 @@
 #include <part.h>
 #include <asm/cache.h>
 #include <asm/unaligned.h>
+#include <linux/string.h>
 #include "part_iso.h"
 
 #ifdef CONFIG_HAVE_BLOCK_DEVICE
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index f251ee1b74a0..271c2ddf4a87 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -15,6 +15,7 @@
 #include <time.h>
 #include <linux/bitops.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include <command.h>
 #include <dm.h>
diff --git a/drivers/ata/dwc_ahsata.c b/drivers/ata/dwc_ahsata.c
index 562e982e32a6..1ecae1d1c952 100644
--- a/drivers/ata/dwc_ahsata.c
+++ b/drivers/ata/dwc_ahsata.c
@@ -26,6 +26,7 @@
 #include <linux/ctype.h>
 #include <linux/delay.h>
 #include <linux/errno.h>
+#include <linux/string.h>
 #include "dwc_ahsata_priv.h"
 
 struct sata_port_regs {
diff --git a/drivers/ata/fsl_sata.c b/drivers/ata/fsl_sata.c
index 8c6726a62146..d2f802aff86b 100644
--- a/drivers/ata/fsl_sata.c
+++ b/drivers/ata/fsl_sata.c
@@ -19,6 +19,7 @@
 #include <fis.h>
 #include <sata.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "fsl_sata.h"
 
 #if CONFIG_IS_ENABLED(BLK)
diff --git a/drivers/ata/libata.c b/drivers/ata/libata.c
index 47e2c5c1cc40..cdc83c75bb69 100644
--- a/drivers/ata/libata.c
+++ b/drivers/ata/libata.c
@@ -8,6 +8,7 @@
 #include <common.h>
 #include <compiler.h>
 #include <libata.h>
+#include <linux/string.h>
 
 u64 ata_id_n_sectors(u16 *id)
 {
diff --git a/drivers/ata/sata.c b/drivers/ata/sata.c
index 6a38d5002455..fa17ee3ab48c 100644
--- a/drivers/ata/sata.c
+++ b/drivers/ata/sata.c
@@ -15,6 +15,7 @@
 #include <dm.h>
 #include <part.h>
 #include <sata.h>
+#include <linux/string.h>
 
 #ifndef CONFIG_AHCI
 struct blk_desc sata_dev_desc[CONFIG_SYS_SATA_MAX_DEVICE];
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
index 8071fe18a714..9554aeb137d0 100644
--- a/drivers/ata/sata_mv.c
+++ b/drivers/ata/sata_mv.c
@@ -51,6 +51,7 @@
 #include <linux/errno.h>
 #include <asm/io.h>
 #include <linux/mbus.h>
+#include <linux/string.h>
 
 #include <asm/arch/soc.h>
 #if defined(CONFIG_ARCH_KIRKWOOD)
diff --git a/drivers/ata/sata_sil.c b/drivers/ata/sata_sil.c
index d5ba94c17253..c34af206669c 100644
--- a/drivers/ata/sata_sil.c
+++ b/drivers/ata/sata_sil.c
@@ -18,6 +18,7 @@
 #include <libata.h>
 #include <sata.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #if CONFIG_IS_ENABLED(BLK)
 #include <dm.h>
diff --git a/drivers/bios_emulator/atibios.c b/drivers/bios_emulator/atibios.c
index 6c7cc24cbd92..3d1b22f1f54f 100644
--- a/drivers/bios_emulator/atibios.c
+++ b/drivers/bios_emulator/atibios.c
@@ -53,6 +53,7 @@
 #include <malloc.h>
 #include <vbe.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "biosemui.h"
 
 /* Length of the BIOS image */
diff --git a/drivers/bios_emulator/biosemu.c b/drivers/bios_emulator/biosemu.c
index 9d4f07c074d3..e605238d4391 100644
--- a/drivers/bios_emulator/biosemu.c
+++ b/drivers/bios_emulator/biosemu.c
@@ -47,6 +47,7 @@
 
 #include <malloc.h>
 #include <common.h>
+#include <linux/string.h>
 #include "biosemui.h"
 
 BE_sysEnv _BE_env = {{0}};
diff --git a/drivers/bios_emulator/x86emu/debug.c b/drivers/bios_emulator/x86emu/debug.c
index 95f3cc09aad5..1e4b6ba0c6bd 100644
--- a/drivers/bios_emulator/x86emu/debug.c
+++ b/drivers/bios_emulator/x86emu/debug.c
@@ -41,6 +41,7 @@
 #include <common.h>
 #include <linux/ctype.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include "x86emu/x86emui.h"
 
 /*----------------------------- Implementation ----------------------------*/
diff --git a/drivers/block/blk-uclass.c b/drivers/block/blk-uclass.c
index 2fb9f6b765ee..1d90a9349bf5 100644
--- a/drivers/block/blk-uclass.c
+++ b/drivers/block/blk-uclass.c
@@ -14,6 +14,7 @@
 #include <dm/lists.h>
 #include <dm/uclass-internal.h>
 #include <linux/err.h>
+#include <linux/string.h>
 
 static const char *if_typename_str[IF_TYPE_COUNT] = {
 	[IF_TYPE_IDE]		= "ide",
diff --git a/drivers/block/blk_legacy.c b/drivers/block/blk_legacy.c
index e3ee778c29d2..f812169a4f26 100644
--- a/drivers/block/blk_legacy.c
+++ b/drivers/block/blk_legacy.c
@@ -8,6 +8,7 @@
 #include <blk.h>
 #include <part.h>
 #include <linux/err.h>
+#include <linux/string.h>
 
 struct blk_driver *blk_driver_lookup_type(int if_type)
 {
diff --git a/drivers/block/blkcache.c b/drivers/block/blkcache.c
index eca66198edf7..50619dd03a2c 100644
--- a/drivers/block/blkcache.c
+++ b/drivers/block/blkcache.c
@@ -11,6 +11,7 @@
 #include <part.h>
 #include <linux/ctype.h>
 #include <linux/list.h>
+#include <linux/string.h>
 
 #ifdef CONFIG_NEEDS_MANUAL_RELOC
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/drivers/block/ide.c b/drivers/block/ide.c
index a766b5cf0366..01bf76d0023b 100644
--- a/drivers/block/ide.c
+++ b/drivers/block/ide.c
@@ -14,6 +14,7 @@
 #include <watchdog.h>
 #include <asm/io.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #ifdef __PPC__
 # define EIEIO		__asm__ volatile ("eieio")
diff --git a/drivers/block/sandbox.c b/drivers/block/sandbox.c
index 11ebdd52d77e..a3b2e77ef301 100644
--- a/drivers/block/sandbox.c
+++ b/drivers/block/sandbox.c
@@ -15,6 +15,7 @@
 #include <dm/device_compat.h>
 #include <linux/errno.h>
 #include <dm/device-internal.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/clk/altera/clk-arria10.c b/drivers/clk/altera/clk-arria10.c
index a2f105a415f8..b05648e8a545 100644
--- a/drivers/clk/altera/clk-arria10.c
+++ b/drivers/clk/altera/clk-arria10.c
@@ -14,6 +14,7 @@
 #include <dm/lists.h>
 #include <dm/util.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 
 #include <asm/arch/clock_manager.h>
 
diff --git a/drivers/clk/clk-mux.c b/drivers/clk/clk-mux.c
index 8df2a2d01ac6..075d4932a9c4 100644
--- a/drivers/clk/clk-mux.c
+++ b/drivers/clk/clk-mux.c
@@ -31,6 +31,7 @@
 #include <linux/clk-provider.h>
 #include <clk.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include "clk.h"
 #include <linux/err.h>
 
diff --git a/drivers/clk/clk_stm32f.c b/drivers/clk/clk_stm32f.c
index cc48905df542..45f5f567f8d5 100644
--- a/drivers/clk/clk_stm32f.c
+++ b/drivers/clk/clk_stm32f.c
@@ -11,6 +11,7 @@
 #include <stm32_rcc.h>
 #include <linux/bitops.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include <asm/io.h>
 #include <asm/arch/stm32.h>
diff --git a/drivers/clk/clk_versal.c b/drivers/clk/clk_versal.c
index 6f82b60f04db..7a04d68f8dd5 100644
--- a/drivers/clk/clk_versal.c
+++ b/drivers/clk/clk_versal.c
@@ -18,6 +18,7 @@
 #include <asm/arch/sys_proto.h>
 #include <zynqmp_firmware.h>
 #include <linux/err.h>
+#include <linux/string.h>
 
 #define MAX_PARENT			100
 #define MAX_NODES			6
diff --git a/drivers/clk/mvebu/armada-37xx-periph.c b/drivers/clk/mvebu/armada-37xx-periph.c
index 223da22c1b63..30710040ff9b 100644
--- a/drivers/clk/mvebu/armada-37xx-periph.c
+++ b/drivers/clk/mvebu/armada-37xx-periph.c
@@ -17,6 +17,7 @@
 #include <asm/arch/cpu.h>
 #include <dm/device_compat.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 
 #define TBG_SEL		0x0
 #define DIV_SEL0	0x4
diff --git a/drivers/clk/renesas/clk-rcar-gen2.c b/drivers/clk/renesas/clk-rcar-gen2.c
index b423c9414b2e..cbf2ffe6e853 100644
--- a/drivers/clk/renesas/clk-rcar-gen2.c
+++ b/drivers/clk/renesas/clk-rcar-gen2.c
@@ -17,6 +17,7 @@
 #include <log.h>
 #include <asm/global_data.h>
 #include <asm/io.h>
+#include <linux/string.h>
 
 #include <dt-bindings/clock/renesas-cpg-mssr.h>
 
diff --git a/drivers/clk/rockchip/clk_rk322x.c b/drivers/clk/rockchip/clk_rk322x.c
index 054b2fd349b3..b63fb9b3cca9 100644
--- a/drivers/clk/rockchip/clk_rk322x.c
+++ b/drivers/clk/rockchip/clk_rk322x.c
@@ -19,6 +19,7 @@
 #include <linux/bitops.h>
 #include <linux/delay.h>
 #include <linux/log2.h>
+#include <linux/string.h>
 #include <linux/stringify.h>
 
 enum {
diff --git a/drivers/clk/rockchip/clk_rk3288.c b/drivers/clk/rockchip/clk_rk3288.c
index be1f646c070e..a3c5bbf1f6b2 100644
--- a/drivers/clk/rockchip/clk_rk3288.c
+++ b/drivers/clk/rockchip/clk_rk3288.c
@@ -28,6 +28,7 @@
 #include <linux/delay.h>
 #include <linux/err.h>
 #include <linux/log2.h>
+#include <linux/string.h>
 #include <linux/stringify.h>
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/drivers/clk/rockchip/clk_rk3328.c b/drivers/clk/rockchip/clk_rk3328.c
index bf4f1069ea6d..e04042f0bd90 100644
--- a/drivers/clk/rockchip/clk_rk3328.c
+++ b/drivers/clk/rockchip/clk_rk3328.c
@@ -20,6 +20,7 @@
 #include <dt-bindings/clock/rk3328-cru.h>
 #include <linux/bitops.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 struct pll_div {
 	u32 refdiv;
diff --git a/drivers/clk/rockchip/clk_rk3368.c b/drivers/clk/rockchip/clk_rk3368.c
index b87be9a03411..586639344d09 100644
--- a/drivers/clk/rockchip/clk_rk3368.c
+++ b/drivers/clk/rockchip/clk_rk3368.c
@@ -23,6 +23,7 @@
 #include <dt-bindings/clock/rk3368-cru.h>
 #include <linux/delay.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <linux/stringify.h>
 
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
diff --git a/drivers/clk/rockchip/clk_rk3399.c b/drivers/clk/rockchip/clk_rk3399.c
index e3d1438d54fc..c2eaf67f58f7 100644
--- a/drivers/clk/rockchip/clk_rk3399.c
+++ b/drivers/clk/rockchip/clk_rk3399.c
@@ -23,6 +23,7 @@
 #include <linux/bitops.h>
 #include <linux/delay.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
 struct rk3399_clk_plat {
diff --git a/drivers/clk/sifive/fu540-prci.c b/drivers/clk/sifive/fu540-prci.c
index c5148e9a37e5..c8f73a1fa269 100644
--- a/drivers/clk/sifive/fu540-prci.c
+++ b/drivers/clk/sifive/fu540-prci.c
@@ -41,6 +41,7 @@
 #include <dm/uclass.h>
 #include <linux/delay.h>
 #include <linux/err.h>
+#include <linux/string.h>
 
 #include <linux/math64.h>
 #include <linux/clk/analogbits-wrpll-cln28hpc.h>
diff --git a/drivers/core/acpi.c b/drivers/core/acpi.c
index 99c0da500eb2..a28b56a73339 100644
--- a/drivers/core/acpi.c
+++ b/drivers/core/acpi.c
@@ -17,6 +17,7 @@
 #include <dm/acpi.h>
 #include <dm/device-internal.h>
 #include <dm/root.h>
+#include <linux/string.h>
 
 #define MAX_ACPI_ITEMS	100
 
diff --git a/drivers/core/device.c b/drivers/core/device.c
index dd0874e762d7..29b71e240551 100644
--- a/drivers/core/device.c
+++ b/drivers/core/device.c
@@ -32,6 +32,7 @@
 #include <linux/list.h>
 #include <power-domain.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/core/lists.c b/drivers/core/lists.c
index 5beba9181cc3..86a99abfaae3 100644
--- a/drivers/core/lists.c
+++ b/drivers/core/lists.c
@@ -19,6 +19,7 @@
 #include <dm/util.h>
 #include <fdtdec.h>
 #include <linux/compiler.h>
+#include <linux/string.h>
 
 struct driver *lists_driver_lookup_name(const char *name)
 {
diff --git a/drivers/core/of_access.c b/drivers/core/of_access.c
index c23763726bba..26f240b022c4 100644
--- a/drivers/core/of_access.c
+++ b/drivers/core/of_access.c
@@ -29,6 +29,7 @@
 #include <linux/ctype.h>
 #include <linux/err.h>
 #include <linux/ioport.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/core/of_addr.c b/drivers/core/of_addr.c
index 3a67d9bc760c..6316b6515349 100644
--- a/drivers/core/of_addr.c
+++ b/drivers/core/of_addr.c
@@ -15,6 +15,7 @@
 #include <linux/err.h>
 #include <linux/ioport.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 /* Max address size we deal with */
 #define OF_MAX_ADDR_CELLS	4
diff --git a/drivers/core/of_extra.c b/drivers/core/of_extra.c
index 6420e6ec4480..f6597c273507 100644
--- a/drivers/core/of_extra.c
+++ b/drivers/core/of_extra.c
@@ -10,6 +10,7 @@
 #include <dm/of_access.h>
 #include <dm/of_extra.h>
 #include <dm/ofnode.h>
+#include <linux/string.h>
 
 int ofnode_read_fmap_entry(ofnode node, struct fmap_entry *entry)
 {
diff --git a/drivers/core/ofnode.c b/drivers/core/ofnode.c
index a49a54c60f98..31c1d67fe2c0 100644
--- a/drivers/core/ofnode.c
+++ b/drivers/core/ofnode.c
@@ -17,6 +17,7 @@
 #include <dm/ofnode.h>
 #include <linux/err.h>
 #include <linux/ioport.h>
+#include <linux/string.h>
 
 int ofnode_read_u32(ofnode node, const char *propname, u32 *outp)
 {
diff --git a/drivers/core/uclass.c b/drivers/core/uclass.c
index 95c37db5ad0b..98fdb014222b 100644
--- a/drivers/core/uclass.c
+++ b/drivers/core/uclass.c
@@ -20,6 +20,7 @@
 #include <dm/uclass.h>
 #include <dm/uclass-internal.h>
 #include <dm/util.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/cpu/cpu-uclass.c b/drivers/cpu/cpu-uclass.c
index 37e3cf2d8ff0..58c8f833c6fa 100644
--- a/drivers/cpu/cpu-uclass.c
+++ b/drivers/cpu/cpu-uclass.c
@@ -12,6 +12,7 @@
 #include <dm/lists.h>
 #include <dm/root.h>
 #include <linux/err.h>
+#include <linux/string.h>
 
 int cpu_probe_all(void)
 {
diff --git a/drivers/cpu/cpu_sandbox.c b/drivers/cpu/cpu_sandbox.c
index caa26e50f281..7c5ccaa0d00a 100644
--- a/drivers/cpu/cpu_sandbox.c
+++ b/drivers/cpu/cpu_sandbox.c
@@ -7,6 +7,7 @@
 #include <common.h>
 #include <dm.h>
 #include <cpu.h>
+#include <linux/string.h>
 
 int cpu_sandbox_get_desc(const struct udevice *dev, char *buf, int size)
 {
diff --git a/drivers/cpu/imx8_cpu.c b/drivers/cpu/imx8_cpu.c
index aca14157ad55..21ccc1ce31d9 100644
--- a/drivers/cpu/imx8_cpu.c
+++ b/drivers/cpu/imx8_cpu.c
@@ -14,6 +14,7 @@
 #include <asm/arch-imx/cpu.h>
 #include <asm/armv8/cpu.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/cpu/riscv_cpu.c b/drivers/cpu/riscv_cpu.c
index 3c7395a9f207..fcf487d73d06 100644
--- a/drivers/cpu/riscv_cpu.c
+++ b/drivers/cpu/riscv_cpu.c
@@ -15,6 +15,7 @@
 #include <dm/lists.h>
 #include <linux/bitops.h>
 #include <linux/err.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/crypto/ace_sha.c b/drivers/crypto/ace_sha.c
index 261d3efe84e5..0b07ae5fd713 100644
--- a/drivers/crypto/ace_sha.c
+++ b/drivers/crypto/ace_sha.c
@@ -4,6 +4,7 @@
  * Copyright (c) 2012  Samsung Electronics
  */
 #include <common.h>
+#include <linux/string.h>
 #include "ace_sha.h"
 #include <log.h>
 #include <rand.h>
diff --git a/drivers/crypto/fsl/desc_constr.h b/drivers/crypto/fsl/desc_constr.h
index b82ba83e73ac..ef4cd525e3ae 100644
--- a/drivers/crypto/fsl/desc_constr.h
+++ b/drivers/crypto/fsl/desc_constr.h
@@ -8,6 +8,7 @@
  */
 
 #include <linux/compat.h>
+#include <linux/string.h>
 #include "desc.h"
 
 #define IMMEDIATE (1 << 23)
diff --git a/drivers/crypto/fsl/error.c b/drivers/crypto/fsl/error.c
index c76574919c74..d19685b0ec4c 100644
--- a/drivers/crypto/fsl/error.c
+++ b/drivers/crypto/fsl/error.c
@@ -10,6 +10,7 @@
 #include <common.h>
 #include <log.h>
 #include <malloc.h>
+#include <linux/string.h>
 #include "desc.h"
 #include "jr.h"
 
diff --git a/drivers/crypto/fsl/fsl_hash.c b/drivers/crypto/fsl/fsl_hash.c
index 61f953e8a6da..5182f21acb24 100644
--- a/drivers/crypto/fsl/fsl_hash.c
+++ b/drivers/crypto/fsl/fsl_hash.c
@@ -9,6 +9,7 @@
 #include <log.h>
 #include <malloc.h>
 #include <memalign.h>
+#include <linux/string.h>
 #include "jobdesc.h"
 #include "desc.h"
 #include "jr.h"
diff --git a/drivers/crypto/fsl/jobdesc.c b/drivers/crypto/fsl/jobdesc.c
index fbc1aeddeeb4..17777e5551db 100644
--- a/drivers/crypto/fsl/jobdesc.c
+++ b/drivers/crypto/fsl/jobdesc.c
@@ -10,6 +10,7 @@
 #include <common.h>
 #include <cpu_func.h>
 #include <fsl_sec.h>
+#include <linux/string.h>
 #include "desc_constr.h"
 #include "jobdesc.h"
 #include "rsa_caam.h"
diff --git a/drivers/crypto/fsl/jr.c b/drivers/crypto/fsl/jr.c
index 44273c345f95..afca79dfc0a2 100644
--- a/drivers/crypto/fsl/jr.c
+++ b/drivers/crypto/fsl/jr.c
@@ -10,6 +10,7 @@
 #include <linux/kernel.h>
 #include <log.h>
 #include <malloc.h>
+#include <linux/string.h>
 #include "fsl_sec.h"
 #include "jr.h"
 #include "jobdesc.h"
diff --git a/drivers/crypto/fsl/rng.c b/drivers/crypto/fsl/rng.c
index 3c0c2b067f35..e4a952caeec5 100644
--- a/drivers/crypto/fsl/rng.c
+++ b/drivers/crypto/fsl/rng.c
@@ -12,6 +12,7 @@
 #include <dm.h>
 #include <rng.h>
 #include <linux/kernel.h>
+#include <linux/string.h>
 #include "desc_constr.h"
 #include "jobdesc.h"
 #include "jr.h"
diff --git a/drivers/ddr/altera/sdram_arria10.c b/drivers/ddr/altera/sdram_arria10.c
index 4a8f8dea1c4d..b2053bf412ca 100644
--- a/drivers/ddr/altera/sdram_arria10.c
+++ b/drivers/ddr/altera/sdram_arria10.c
@@ -22,6 +22,7 @@
 #include <linux/bitops.h>
 #include <linux/delay.h>
 #include <linux/kernel.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/ddr/altera/sdram_gen5.c b/drivers/ddr/altera/sdram_gen5.c
index 1360bd0a3b82..52cde7d409b8 100644
--- a/drivers/ddr/altera/sdram_gen5.c
+++ b/drivers/ddr/altera/sdram_gen5.c
@@ -18,6 +18,7 @@
 #include <asm/bitops.h>
 #include <asm/io.h>
 #include <dm/device_compat.h>
+#include <linux/string.h>
 
 #include "sequencer.h"
 
diff --git a/drivers/ddr/altera/sdram_soc64.c b/drivers/ddr/altera/sdram_soc64.c
index 66dad034fa29..1312244ae52f 100644
--- a/drivers/ddr/altera/sdram_soc64.c
+++ b/drivers/ddr/altera/sdram_soc64.c
@@ -17,6 +17,7 @@
 #include <reset.h>
 #include <time.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 #include "sdram_soc64.h"
 #include <wait_bit.h>
 #include <asm/arch/firewall.h>
diff --git a/drivers/ddr/altera/sequencer.c b/drivers/ddr/altera/sequencer.c
index 2dbde49a9c3b..7c54f0018251 100644
--- a/drivers/ddr/altera/sequencer.c
+++ b/drivers/ddr/altera/sequencer.c
@@ -9,6 +9,7 @@
 #include <asm/arch/sdram.h>
 #include <errno.h>
 #include <hang.h>
+#include <linux/string.h>
 #include "sequencer.h"
 
 static const struct socfpga_sdr_rw_load_manager *sdr_rw_load_mgr_regs =
diff --git a/drivers/ddr/fsl/ctrl_regs.c b/drivers/ddr/fsl/ctrl_regs.c
index c849ef3a4c7e..247587c646b6 100644
--- a/drivers/ddr/fsl/ctrl_regs.c
+++ b/drivers/ddr/fsl/ctrl_regs.c
@@ -22,6 +22,7 @@
 	defined(CONFIG_ARM)
 #include <asm/arch/clock.h>
 #endif
+#include <linux/string.h>
 
 /*
  * Determine Rtt value.
diff --git a/drivers/ddr/fsl/ddr1_dimm_params.c b/drivers/ddr/fsl/ddr1_dimm_params.c
index e5481eaa0ddd..2ccf1e82f9a6 100644
--- a/drivers/ddr/fsl/ddr1_dimm_params.c
+++ b/drivers/ddr/fsl/ddr1_dimm_params.c
@@ -7,6 +7,7 @@
 #include <fsl_ddr_sdram.h>
 #include <log.h>
 #include <asm/bitops.h>
+#include <linux/string.h>
 
 #include <fsl_ddr.h>
 
diff --git a/drivers/ddr/fsl/ddr2_dimm_params.c b/drivers/ddr/fsl/ddr2_dimm_params.c
index 3b78118a9d82..9ee2dfc24554 100644
--- a/drivers/ddr/fsl/ddr2_dimm_params.c
+++ b/drivers/ddr/fsl/ddr2_dimm_params.c
@@ -7,6 +7,7 @@
 #include <fsl_ddr_sdram.h>
 #include <log.h>
 #include <asm/bitops.h>
+#include <linux/string.h>
 
 #include <fsl_ddr.h>
 /*
diff --git a/drivers/ddr/fsl/ddr3_dimm_params.c b/drivers/ddr/fsl/ddr3_dimm_params.c
index 8464438c544f..d0625ea0e1bf 100644
--- a/drivers/ddr/fsl/ddr3_dimm_params.c
+++ b/drivers/ddr/fsl/ddr3_dimm_params.c
@@ -11,6 +11,7 @@
 #include <common.h>
 #include <fsl_ddr_sdram.h>
 #include <log.h>
+#include <linux/string.h>
 
 #include <fsl_ddr.h>
 
diff --git a/drivers/ddr/fsl/ddr4_dimm_params.c b/drivers/ddr/fsl/ddr4_dimm_params.c
index e2bdc12ef2c4..37e43dc8f172 100644
--- a/drivers/ddr/fsl/ddr4_dimm_params.c
+++ b/drivers/ddr/fsl/ddr4_dimm_params.c
@@ -14,6 +14,7 @@
 #include <fsl_ddr_sdram.h>
 #include <log.h>
 #include <linux/bug.h>
+#include <linux/string.h>
 
 #include <fsl_ddr.h>
 
diff --git a/drivers/ddr/fsl/interactive.c b/drivers/ddr/fsl/interactive.c
index 2f76beb2dbe6..3736ea129a77 100644
--- a/drivers/ddr/fsl/interactive.c
+++ b/drivers/ddr/fsl/interactive.c
@@ -20,6 +20,7 @@
 #include <linux/ctype.h>
 #include <asm/types.h>
 #include <asm/io.h>
+#include <linux/string.h>
 
 #include <fsl_ddr_sdram.h>
 #include <fsl_ddr.h>
diff --git a/drivers/ddr/fsl/main.c b/drivers/ddr/fsl/main.c
index f5299fe31113..5b2ddc3893a9 100644
--- a/drivers/ddr/fsl/main.c
+++ b/drivers/ddr/fsl/main.c
@@ -18,6 +18,7 @@
 #include <init.h>
 #include <log.h>
 #include <asm/bitops.h>
+#include <linux/string.h>
 
 /*
  * CONFIG_SYS_FSL_DDR_SDRAM_BASE_PHY is the physical address from the view
diff --git a/drivers/ddr/marvell/axp/ddr3_hw_training.c b/drivers/ddr/marvell/axp/ddr3_hw_training.c
index 35d98faf58f3..c39f40095fcc 100644
--- a/drivers/ddr/marvell/axp/ddr3_hw_training.c
+++ b/drivers/ddr/marvell/axp/ddr3_hw_training.c
@@ -11,6 +11,7 @@
 #include <asm/arch/cpu.h>
 #include <asm/arch/soc.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include "ddr3_init.h"
 #include "ddr3_hw_training.h"
diff --git a/drivers/ddr/marvell/axp/ddr3_pbs.c b/drivers/ddr/marvell/axp/ddr3_pbs.c
index 069a42fbf5ed..a963b3c55be2 100644
--- a/drivers/ddr/marvell/axp/ddr3_pbs.c
+++ b/drivers/ddr/marvell/axp/ddr3_pbs.c
@@ -10,6 +10,7 @@
 #include <asm/arch/cpu.h>
 #include <asm/arch/soc.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include "ddr3_hw_training.h"
 
diff --git a/drivers/ddr/marvell/axp/ddr3_spd.c b/drivers/ddr/marvell/axp/ddr3_spd.c
index e2305d881450..8927abe17ef0 100644
--- a/drivers/ddr/marvell/axp/ddr3_spd.c
+++ b/drivers/ddr/marvell/axp/ddr3_spd.c
@@ -9,6 +9,7 @@
 #include <asm/io.h>
 #include <asm/arch/cpu.h>
 #include <asm/arch/soc.h>
+#include <linux/string.h>
 
 #include "ddr3_init.h"
 
diff --git a/drivers/ddr/marvell/axp/ddr3_write_leveling.c b/drivers/ddr/marvell/axp/ddr3_write_leveling.c
index d4add4477745..de8dfc299f7e 100644
--- a/drivers/ddr/marvell/axp/ddr3_write_leveling.c
+++ b/drivers/ddr/marvell/axp/ddr3_write_leveling.c
@@ -11,6 +11,7 @@
 #include <asm/arch/cpu.h>
 #include <asm/arch/soc.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include "ddr3_hw_training.h"
 
diff --git a/drivers/dfu/dfu.c b/drivers/dfu/dfu.c
index 3d5de92ecae0..5dc5f80854e8 100644
--- a/drivers/dfu/dfu.c
+++ b/drivers/dfu/dfu.c
@@ -18,6 +18,7 @@
 #include <linux/list.h>
 #include <linux/compiler.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 static LIST_HEAD(dfu_list);
 static int dfu_alt_num;
diff --git a/drivers/dfu/dfu_mmc.c b/drivers/dfu/dfu_mmc.c
index ac5ea2c7d79c..0fd69d0d1e4c 100644
--- a/drivers/dfu/dfu_mmc.c
+++ b/drivers/dfu/dfu_mmc.c
@@ -17,6 +17,7 @@
 #include <mmc.h>
 #include <part.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 static unsigned char *dfu_file_buf;
 static u64 dfu_file_buf_len;
diff --git a/drivers/dfu/dfu_mtd.c b/drivers/dfu/dfu_mtd.c
index 36cd4e945b2a..861a0b370e09 100644
--- a/drivers/dfu/dfu_mtd.c
+++ b/drivers/dfu/dfu_mtd.c
@@ -12,6 +12,7 @@
 #include <mtd.h>
 #include <jffs2/load_kernel.h>
 #include <linux/err.h>
+#include <linux/string.h>
 
 static bool mtd_is_aligned_with_block_size(struct mtd_info *mtd, u64 size)
 {
diff --git a/drivers/dfu/dfu_nand.c b/drivers/dfu/dfu_nand.c
index b8d24d203beb..38f46b2f4129 100644
--- a/drivers/dfu/dfu_nand.c
+++ b/drivers/dfu/dfu_nand.c
@@ -18,6 +18,7 @@
 #include <linux/mtd/mtd.h>
 #include <jffs2/load_kernel.h>
 #include <nand.h>
+#include <linux/string.h>
 
 static int nand_block_op(enum dfu_op op, struct dfu_entity *dfu,
 			u64 offset, void *buf, long *len)
diff --git a/drivers/dfu/dfu_ram.c b/drivers/dfu/dfu_ram.c
index 9b3b71975a19..b2a5b62d425d 100644
--- a/drivers/dfu/dfu_ram.c
+++ b/drivers/dfu/dfu_ram.c
@@ -13,6 +13,7 @@
 #include <errno.h>
 #include <dfu.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 static int dfu_transfer_medium_ram(enum dfu_op op, struct dfu_entity *dfu,
 				   u64 offset, void *buf, long *len)
diff --git a/drivers/dfu/dfu_sf.c b/drivers/dfu/dfu_sf.c
index 318e43c179b2..20e1c2869027 100644
--- a/drivers/dfu/dfu_sf.c
+++ b/drivers/dfu/dfu_sf.c
@@ -13,6 +13,7 @@
 #include <spi_flash.h>
 #include <jffs2/load_kernel.h>
 #include <linux/mtd/mtd.h>
+#include <linux/string.h>
 
 static int dfu_get_medium_size_sf(struct dfu_entity *dfu, u64 *size)
 {
diff --git a/drivers/dfu/dfu_tftp.c b/drivers/dfu/dfu_tftp.c
index 0f2c114668ec..efa25d86f22e 100644
--- a/drivers/dfu/dfu_tftp.c
+++ b/drivers/dfu/dfu_tftp.c
@@ -10,6 +10,7 @@
 #include <errno.h>
 #include <dfu.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 int dfu_tftp_write(char *dfu_entity_name, unsigned int addr, unsigned int len,
 		   char *interface, char *devstring)
diff --git a/drivers/dma/apbh_dma.c b/drivers/dma/apbh_dma.c
index da988f6bb667..a2a76aba84a1 100644
--- a/drivers/dma/apbh_dma.c
+++ b/drivers/dma/apbh_dma.c
@@ -14,6 +14,7 @@
 #include <cpu_func.h>
 #include <asm/cache.h>
 #include <linux/list.h>
+#include <linux/string.h>
 
 #include <common.h>
 #include <malloc.h>
diff --git a/drivers/dma/keystone_nav.c b/drivers/dma/keystone_nav.c
index 443e4b23669a..72b0a7736fcd 100644
--- a/drivers/dma/keystone_nav.c
+++ b/drivers/dma/keystone_nav.c
@@ -9,6 +9,7 @@
 #include <asm/io.h>
 #include <asm/ti-common/keystone_nav.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 struct qm_config qm_memmap = {
 	.stat_cfg	= CONFIG_KSNAV_QM_QUEUE_STATUS_BASE,
diff --git a/drivers/dma/sandbox-dma-test.c b/drivers/dma/sandbox-dma-test.c
index 18e8fe3806c1..f479f2a79e37 100644
--- a/drivers/dma/sandbox-dma-test.c
+++ b/drivers/dma/sandbox-dma-test.c
@@ -16,6 +16,7 @@
 #include <dt-structs.h>
 #include <errno.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #define SANDBOX_DMA_CH_CNT 3
 #define SANDBOX_DMA_BUF_SIZE 1024
diff --git a/drivers/dma/ti-edma3.c b/drivers/dma/ti-edma3.c
index c73ab579cf67..aba4efc15c2e 100644
--- a/drivers/dma/ti-edma3.c
+++ b/drivers/dma/ti-edma3.c
@@ -16,6 +16,7 @@
 #include <asm/omap_common.h>
 #include <asm/ti-common/ti-edma3.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #define EDMA3_SL_BASE(slot)			(0x4000 + ((slot) << 5))
 #define EDMA3_SL_MAX_NUM			512
diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c
index 9de0258ed1da..aa835498d29b 100644
--- a/drivers/dma/ti/k3-udma.c
+++ b/drivers/dma/ti/k3-udma.c
@@ -29,6 +29,7 @@
 #include <linux/soc/ti/cppi5.h>
 #include <linux/soc/ti/ti-udma.h>
 #include <linux/soc/ti/ti_sci_protocol.h>
+#include <linux/string.h>
 
 #include "k3-udma-hwdef.h"
 #include "k3-psil-priv.h"
diff --git a/drivers/fastboot/fb_command.c b/drivers/fastboot/fb_command.c
index 42c8fb83433b..699fc52fc1c3 100644
--- a/drivers/fastboot/fb_command.c
+++ b/drivers/fastboot/fb_command.c
@@ -14,6 +14,7 @@
 #include <part.h>
 #include <stdlib.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 /**
  * image_size - final fastboot image size
diff --git a/drivers/fastboot/fb_common.c b/drivers/fastboot/fb_common.c
index c3735a44af74..3c8338f7c688 100644
--- a/drivers/fastboot/fb_common.c
+++ b/drivers/fastboot/fb_common.c
@@ -14,6 +14,7 @@
 #include <command.h>
 #include <env.h>
 #include <fastboot.h>
+#include <linux/string.h>
 #include <net/fastboot.h>
 
 /**
diff --git a/drivers/fastboot/fb_getvar.c b/drivers/fastboot/fb_getvar.c
index faa785481ade..a7881cc71966 100644
--- a/drivers/fastboot/fb_getvar.c
+++ b/drivers/fastboot/fb_getvar.c
@@ -13,6 +13,7 @@
 #include <part.h>
 #include <version.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 static void getvar_version(char *var_parameter, char *response);
 static void getvar_version_bootloader(char *var_parameter, char *response);
diff --git a/drivers/fastboot/fb_mmc.c b/drivers/fastboot/fb_mmc.c
index d285d0f14fd4..3512e2191f04 100644
--- a/drivers/fastboot/fb_mmc.c
+++ b/drivers/fastboot/fb_mmc.c
@@ -20,6 +20,7 @@
 #include <linux/compat.h>
 #include <android_image.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #define FASTBOOT_MAX_BLK_WRITE 16384
 
diff --git a/drivers/fastboot/fb_nand.c b/drivers/fastboot/fb_nand.c
index 1bf7ccb960b8..c048600d44a7 100644
--- a/drivers/fastboot/fb_nand.c
+++ b/drivers/fastboot/fb_nand.c
@@ -9,6 +9,7 @@
 #include <blk.h>
 #include <flash.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include <fastboot.h>
 #include <image-sparse.h>
diff --git a/drivers/firmware/psci.c b/drivers/firmware/psci.c
index 7d2e49fd3e3b..cb920139b1c0 100644
--- a/drivers/firmware/psci.c
+++ b/drivers/firmware/psci.c
@@ -19,6 +19,7 @@
 #include <linux/errno.h>
 #include <linux/printk.h>
 #include <linux/psci.h>
+#include <linux/string.h>
 
 #define DRIVER_NAME "psci"
 
diff --git a/drivers/firmware/ti_sci.c b/drivers/firmware/ti_sci.c
index 15f5b0b14cce..1a38526d80a8 100644
--- a/drivers/firmware/ti_sci.c
+++ b/drivers/firmware/ti_sci.c
@@ -21,6 +21,7 @@
 #include <linux/err.h>
 #include <linux/soc/ti/k3-sec-proxy.h>
 #include <linux/soc/ti/ti_sci_protocol.h>
+#include <linux/string.h>
 
 #include "ti_sci.h"
 
diff --git a/drivers/fpga/fpga.c b/drivers/fpga/fpga.c
index fe3dfa12335d..4140c8254523 100644
--- a/drivers/fpga/fpga.c
+++ b/drivers/fpga/fpga.c
@@ -12,6 +12,7 @@
 #include <altera.h>             /* altera specific definitions */
 #include <lattice.h>
 #include <dm/device_compat.h>
+#include <linux/string.h>
 
 /* Local definitions */
 #ifndef CONFIG_MAX_FPGA_DEVICES
diff --git a/drivers/fpga/socfpga_arria10.c b/drivers/fpga/socfpga_arria10.c
index e0674b8beba5..de175848e8ba 100644
--- a/drivers/fpga/socfpga_arria10.c
+++ b/drivers/fpga/socfpga_arria10.c
@@ -23,6 +23,7 @@
 #include <watchdog.h>
 #include <linux/bitops.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #define CFGWDTH_32	1
 #define MIN_BITSTREAM_SIZECHECK	230
diff --git a/drivers/fpga/stratix10.c b/drivers/fpga/stratix10.c
index bae31c3db1ee..84f453f76e0c 100644
--- a/drivers/fpga/stratix10.c
+++ b/drivers/fpga/stratix10.c
@@ -9,6 +9,7 @@
 #include <time.h>
 #include <asm/arch/mailbox_s10.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #define RECONFIG_STATUS_POLL_RESP_TIMEOUT_MS		60000
 #define RECONFIG_STATUS_INTERVAL_DELAY_US		1000000
diff --git a/drivers/fpga/versalpl.c b/drivers/fpga/versalpl.c
index 8e2ef4f0da99..5d67ce215ce5 100644
--- a/drivers/fpga/versalpl.c
+++ b/drivers/fpga/versalpl.c
@@ -12,6 +12,7 @@
 #include <versalpl.h>
 #include <zynqmp_firmware.h>
 #include <asm/cache.h>
+#include <linux/string.h>
 
 static ulong versal_align_dma_buffer(ulong *buf, u32 len)
 {
diff --git a/drivers/fpga/xilinx.c b/drivers/fpga/xilinx.c
index cbebefb55fe4..d9f3b82a40ef 100644
--- a/drivers/fpga/xilinx.c
+++ b/drivers/fpga/xilinx.c
@@ -18,6 +18,7 @@
 #include <spartan2.h>
 #include <spartan3.h>
 #include <zynqpl.h>
+#include <linux/string.h>
 
 /* Local Static Functions */
 static int xilinx_validate(xilinx_desc *desc, char *fn);
diff --git a/drivers/gpio/74x164_gpio.c b/drivers/gpio/74x164_gpio.c
index 045685fcd9c8..6d497613cc4d 100644
--- a/drivers/gpio/74x164_gpio.c
+++ b/drivers/gpio/74x164_gpio.c
@@ -19,6 +19,7 @@
 #include <dm/device_compat.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <spi.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/gpio/adi_gpio2.c b/drivers/gpio/adi_gpio2.c
index d0849c85c3bc..8d4ee813985c 100644
--- a/drivers/gpio/adi_gpio2.c
+++ b/drivers/gpio/adi_gpio2.c
@@ -12,6 +12,7 @@
 #include <linux/bug.h>
 #include <linux/errno.h>
 #include <asm/gpio.h>
+#include <linux/string.h>
 
 #define RESOURCE_LABEL_SIZE	16
 
diff --git a/drivers/gpio/axp_gpio.c b/drivers/gpio/axp_gpio.c
index 73058cf40b4b..88993b643e25 100644
--- a/drivers/gpio/axp_gpio.c
+++ b/drivers/gpio/axp_gpio.c
@@ -15,6 +15,7 @@
 #include <dm/lists.h>
 #include <dm/root.h>
 #include <errno.h>
+#include <linux/string.h>
 
 static int axp_gpio_set_value(struct udevice *dev, unsigned pin, int val);
 
diff --git a/drivers/gpio/da8xx_gpio.c b/drivers/gpio/da8xx_gpio.c
index 614c489e45df..0f39972ceeb8 100644
--- a/drivers/gpio/da8xx_gpio.c
+++ b/drivers/gpio/da8xx_gpio.c
@@ -14,6 +14,7 @@
 #include <asm/io.h>
 #include <asm/gpio.h>
 #include <dt-bindings/gpio/gpio.h>
+#include <linux/string.h>
 
 #include "da8xx_gpio.h"
 
diff --git a/drivers/gpio/gpio-uclass.c b/drivers/gpio/gpio-uclass.c
index 36de7bc7cc68..28f4a48900fb 100644
--- a/drivers/gpio/gpio-uclass.c
+++ b/drivers/gpio/gpio-uclass.c
@@ -19,6 +19,7 @@
 #include <dm/device_compat.h>
 #include <linux/bug.h>
 #include <linux/ctype.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/gpio/hi6220_gpio.c b/drivers/gpio/hi6220_gpio.c
index 95de2ae3660d..06151d21fba1 100644
--- a/drivers/gpio/hi6220_gpio.c
+++ b/drivers/gpio/hi6220_gpio.c
@@ -10,6 +10,7 @@
 #include <asm/io.h>
 #include <errno.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 
 static int hi6220_gpio_direction_input(struct udevice *dev, unsigned int gpio)
 {
diff --git a/drivers/gpio/imx_rgpio2p.c b/drivers/gpio/imx_rgpio2p.c
index 1e876f691477..8ff37f2ecccf 100644
--- a/drivers/gpio/imx_rgpio2p.c
+++ b/drivers/gpio/imx_rgpio2p.c
@@ -12,6 +12,7 @@
 #include <asm/gpio.h>
 #include <asm/io.h>
 #include <malloc.h>
+#include <linux/string.h>
 
 enum imx_rgpio2p_direction {
 	IMX_RGPIO2P_DIRECTION_IN,
diff --git a/drivers/gpio/intel_gpio.c b/drivers/gpio/intel_gpio.c
index 6a3a8c4cfaae..975293ff3ab8 100644
--- a/drivers/gpio/intel_gpio.c
+++ b/drivers/gpio/intel_gpio.c
@@ -22,6 +22,7 @@
 #include <asm/arch/gpio.h>
 #include <dm/acpi.h>
 #include <dt-bindings/gpio/x86-gpio.h>
+#include <linux/string.h>
 
 static int intel_gpio_direction_input(struct udevice *dev, uint offset)
 {
diff --git a/drivers/gpio/lpc32xx_gpio.c b/drivers/gpio/lpc32xx_gpio.c
index 1265ee41a60b..6ccc503e6665 100644
--- a/drivers/gpio/lpc32xx_gpio.c
+++ b/drivers/gpio/lpc32xx_gpio.c
@@ -12,6 +12,7 @@
 #include <asm/arch-lpc32xx/gpio.h>
 #include <asm-generic/gpio.h>
 #include <dm.h>
+#include <linux/string.h>
 
 /**
  * LPC32xx GPIOs work in banks but are non-homogeneous:
diff --git a/drivers/gpio/mpc83xx_spisel_boot.c b/drivers/gpio/mpc83xx_spisel_boot.c
index c7b08404d93b..eac0ff82ae69 100644
--- a/drivers/gpio/mpc83xx_spisel_boot.c
+++ b/drivers/gpio/mpc83xx_spisel_boot.c
@@ -9,6 +9,7 @@
 #include <dm.h>
 #include <mapmem.h>
 #include <asm/gpio.h>
+#include <linux/string.h>
 
 struct mpc83xx_spisel_boot {
 	u32 __iomem *spi_cs;
diff --git a/drivers/gpio/mpc8xxx_gpio.c b/drivers/gpio/mpc8xxx_gpio.c
index 1dfd22522c7d..14ecfb42c589 100644
--- a/drivers/gpio/mpc8xxx_gpio.c
+++ b/drivers/gpio/mpc8xxx_gpio.c
@@ -12,6 +12,7 @@
 #include <dm.h>
 #include <mapmem.h>
 #include <asm/gpio.h>
+#include <linux/string.h>
 
 struct ccsr_gpio {
 	u32	gpdir;
diff --git a/drivers/gpio/mxc_gpio.c b/drivers/gpio/mxc_gpio.c
index 88b920a0746b..6f0692997f64 100644
--- a/drivers/gpio/mxc_gpio.c
+++ b/drivers/gpio/mxc_gpio.c
@@ -15,6 +15,7 @@
 #include <asm/io.h>
 #include <dt-structs.h>
 #include <mapmem.h>
+#include <linux/string.h>
 
 enum mxc_gpio_direction {
 	MXC_GPIO_DIRECTION_IN,
diff --git a/drivers/gpio/mxs_gpio.c b/drivers/gpio/mxs_gpio.c
index 0340786712ee..2a9f64d633c1 100644
--- a/drivers/gpio/mxs_gpio.c
+++ b/drivers/gpio/mxs_gpio.c
@@ -15,6 +15,7 @@
 #include <asm/io.h>
 #include <asm/arch/iomux.h>
 #include <asm/arch/imx-regs.h>
+#include <linux/string.h>
 
 #if	defined(CONFIG_MX23)
 #define	PINCTRL_BANKS		3
diff --git a/drivers/gpio/omap_gpio.c b/drivers/gpio/omap_gpio.c
index 4200afba1212..91d664e02ff6 100644
--- a/drivers/gpio/omap_gpio.c
+++ b/drivers/gpio/omap_gpio.c
@@ -25,6 +25,7 @@
 #include <asm/io.h>
 #include <linux/errno.h>
 #include <malloc.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/gpio/pca953x_gpio.c b/drivers/gpio/pca953x_gpio.c
index fd17d1a59102..4ffb3aa27f4d 100644
--- a/drivers/gpio/pca953x_gpio.c
+++ b/drivers/gpio/pca953x_gpio.c
@@ -29,6 +29,7 @@
 #include <dm/device_compat.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 
 #define PCA953X_INPUT           0
 #define PCA953X_OUTPUT          1
diff --git a/drivers/gpio/pic32_gpio.c b/drivers/gpio/pic32_gpio.c
index 50c5376e00d1..00f20c0979cc 100644
--- a/drivers/gpio/pic32_gpio.c
+++ b/drivers/gpio/pic32_gpio.c
@@ -13,6 +13,7 @@
 #include <asm/gpio.h>
 #include <linux/bitops.h>
 #include <linux/compat.h>
+#include <linux/string.h>
 #include <mach/pic32.h>
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/drivers/gpio/rk_gpio.c b/drivers/gpio/rk_gpio.c
index 8cc288581c99..3cabd11b5c5e 100644
--- a/drivers/gpio/rk_gpio.c
+++ b/drivers/gpio/rk_gpio.c
@@ -16,6 +16,7 @@
 #include <asm/arch-rockchip/gpio.h>
 #include <dm/pinctrl.h>
 #include <dt-bindings/clock/rk3288-cru.h>
+#include <linux/string.h>
 
 enum {
 	ROCKCHIP_GPIOS_PER_BANK		= 32,
diff --git a/drivers/gpio/sifive-gpio.c b/drivers/gpio/sifive-gpio.c
index bf3537b76bdb..eb8b8f65e98f 100644
--- a/drivers/gpio/sifive-gpio.c
+++ b/drivers/gpio/sifive-gpio.c
@@ -12,6 +12,7 @@
 #include <errno.h>
 #include <asm/gpio.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 
 static int sifive_gpio_probe(struct udevice *dev)
 {
diff --git a/drivers/gpio/sunxi_gpio.c b/drivers/gpio/sunxi_gpio.c
index 3efccf496fc3..973854ca6135 100644
--- a/drivers/gpio/sunxi_gpio.c
+++ b/drivers/gpio/sunxi_gpio.c
@@ -19,6 +19,7 @@
 #include <asm/gpio.h>
 #include <dm/device-internal.h>
 #include <dt-bindings/gpio/gpio.h>
+#include <linux/string.h>
 
 #define SUNXI_GPIOS_PER_BANK	SUNXI_GPIO_A_NR
 
diff --git a/drivers/gpio/xilinx_gpio.c b/drivers/gpio/xilinx_gpio.c
index 014f120d609f..23de1f44e9c3 100644
--- a/drivers/gpio/xilinx_gpio.c
+++ b/drivers/gpio/xilinx_gpio.c
@@ -12,6 +12,7 @@
 #include <asm/gpio.h>
 #include <dm.h>
 #include <dt-bindings/gpio/gpio.h>
+#include <linux/string.h>
 
 #define XILINX_GPIO_MAX_BANK	2
 
diff --git a/drivers/gpio/zynq_gpio.c b/drivers/gpio/zynq_gpio.c
index d0e90b8d633f..8888d2324c42 100644
--- a/drivers/gpio/zynq_gpio.c
+++ b/drivers/gpio/zynq_gpio.c
@@ -15,6 +15,7 @@
 #include <linux/errno.h>
 #include <dm.h>
 #include <fdtdec.h>
+#include <linux/string.h>
 
 /* Maximum banks */
 #define ZYNQ_GPIO_MAX_BANK	4
diff --git a/drivers/i2c/fsl_i2c.c b/drivers/i2c/fsl_i2c.c
index e7a8dcc82122..c2000104b51f 100644
--- a/drivers/i2c/fsl_i2c.c
+++ b/drivers/i2c/fsl_i2c.c
@@ -18,6 +18,7 @@
 #include <dm.h>
 #include <mapmem.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 /* The maximum number of microseconds we will wait until another master has
  * released the bus.  If not defined in the board header file, then use a
diff --git a/drivers/i2c/i2c-uclass.c b/drivers/i2c/i2c-uclass.c
index 2373aa2ea4c2..c16bda469781 100644
--- a/drivers/i2c/i2c-uclass.c
+++ b/drivers/i2c/i2c-uclass.c
@@ -16,6 +16,7 @@
 #include <asm/gpio.h>
 #endif
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #define I2C_MAX_OFFSET_LEN	4
 
diff --git a/drivers/i2c/ihs_i2c.c b/drivers/i2c/ihs_i2c.c
index 1c39b8c9dfc5..f6cd1222b876 100644
--- a/drivers/i2c/ihs_i2c.c
+++ b/drivers/i2c/ihs_i2c.c
@@ -17,6 +17,7 @@
 #include <asm/unaligned.h>
 #include <linux/bitops.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #ifdef CONFIG_DM_I2C
 struct ihs_i2c_priv {
diff --git a/drivers/i2c/intel_i2c.c b/drivers/i2c/intel_i2c.c
index a7ac09a27e5c..fa36f48df9a1 100644
--- a/drivers/i2c/intel_i2c.c
+++ b/drivers/i2c/intel_i2c.c
@@ -14,6 +14,7 @@
 #include <pci.h>
 #include <time.h>
 #include <asm/io.h>
+#include <linux/string.h>
 
 /* PCI Configuration Space (D31:F3): SMBus */
 #define SMB_BASE		0x20
diff --git a/drivers/i2c/lpc32xx_i2c.c b/drivers/i2c/lpc32xx_i2c.c
index 6af2e975cf35..8aef939981f0 100644
--- a/drivers/i2c/lpc32xx_i2c.c
+++ b/drivers/i2c/lpc32xx_i2c.c
@@ -15,6 +15,7 @@
 #include <asm/arch/i2c.h>
 #include <dm.h>
 #include <mapmem.h>
+#include <linux/string.h>
 
 /*
  * Provide default speed and slave if target did not
diff --git a/drivers/i2c/muxes/i2c-mux-uclass.c b/drivers/i2c/muxes/i2c-mux-uclass.c
index 26897554b0f2..8f6d1547f169 100644
--- a/drivers/i2c/muxes/i2c-mux-uclass.c
+++ b/drivers/i2c/muxes/i2c-mux-uclass.c
@@ -12,6 +12,7 @@
 #include <malloc.h>
 #include <dm/lists.h>
 #include <dm/root.h>
+#include <linux/string.h>
 
 /**
  * struct i2c_mux: Information the uclass stores about an I2C mux
diff --git a/drivers/i2c/mv_i2c.c b/drivers/i2c/mv_i2c.c
index 59675d8d5742..54fa069528b6 100644
--- a/drivers/i2c/mv_i2c.c
+++ b/drivers/i2c/mv_i2c.c
@@ -22,6 +22,7 @@
 #include <log.h>
 #include <asm/io.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "mv_i2c.h"
 
 /* All transfers are described by this data structure */
diff --git a/drivers/i2c/mvtwsi.c b/drivers/i2c/mvtwsi.c
index 21383ecf132f..1cc9cfc2eb8b 100644
--- a/drivers/i2c/mvtwsi.c
+++ b/drivers/i2c/mvtwsi.c
@@ -19,6 +19,7 @@
 #ifdef CONFIG_DM_I2C
 #include <dm.h>
 #endif
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/i2c/stm32f7_i2c.c b/drivers/i2c/stm32f7_i2c.c
index fc60f5285aba..0f5c8446365e 100644
--- a/drivers/i2c/stm32f7_i2c.c
+++ b/drivers/i2c/stm32f7_i2c.c
@@ -15,6 +15,7 @@
 #include <linux/bitops.h>
 #include <linux/delay.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include <dm/device.h>
 #include <linux/err.h>
diff --git a/drivers/i2c/tegra186_bpmp_i2c.c b/drivers/i2c/tegra186_bpmp_i2c.c
index 0a507079a2dc..897627a12360 100644
--- a/drivers/i2c/tegra186_bpmp_i2c.c
+++ b/drivers/i2c/tegra186_bpmp_i2c.c
@@ -11,6 +11,7 @@
 #include <asm/arch-tegra/bpmp_abi.h>
 #include <asm/global_data.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/i2c/tegra_i2c.c b/drivers/i2c/tegra_i2c.c
index 96a436a8dc1f..2cb51473a6c5 100644
--- a/drivers/i2c/tegra_i2c.c
+++ b/drivers/i2c/tegra_i2c.c
@@ -22,6 +22,7 @@
 #include <linux/delay.h>
 #include <linux/err.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 enum i2c_type {
 	TYPE_114,
diff --git a/drivers/input/cros_ec_keyb.c b/drivers/input/cros_ec_keyb.c
index 00bf58f2b5d2..c09a66376af5 100644
--- a/drivers/input/cros_ec_keyb.c
+++ b/drivers/input/cros_ec_keyb.c
@@ -14,6 +14,7 @@
 #include <key_matrix.h>
 #include <log.h>
 #include <stdio_dev.h>
+#include <linux/string.h>
 
 enum {
 	KBC_MAX_KEYS		= 8,	/* Maximum keys held down at once */
diff --git a/drivers/input/i8042.c b/drivers/input/i8042.c
index ca2978e79d5e..b484cebfb4e7 100644
--- a/drivers/input/i8042.c
+++ b/drivers/input/i8042.c
@@ -17,6 +17,7 @@
 #include <asm/global_data.h>
 #include <asm/io.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/input/input.c b/drivers/input/input.c
index 24e76052b88f..37dae11d97a3 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
@@ -19,6 +19,7 @@
 #endif
 #include <time.h>
 #include <linux/input.h>
+#include <linux/string.h>
 
 enum {
 	/* These correspond to the lights on the keyboard */
diff --git a/drivers/input/key_matrix.c b/drivers/input/key_matrix.c
index 4631728b8b51..4742d5759844 100644
--- a/drivers/input/key_matrix.c
+++ b/drivers/input/key_matrix.c
@@ -12,6 +12,7 @@
 #include <log.h>
 #include <malloc.h>
 #include <linux/input.h>
+#include <linux/string.h>
 
 /**
  * Determine if the current keypress configuration can cause key ghosting
diff --git a/drivers/input/keyboard-uclass.c b/drivers/input/keyboard-uclass.c
index f19934e6bb66..a265c02efe70 100644
--- a/drivers/input/keyboard-uclass.c
+++ b/drivers/input/keyboard-uclass.c
@@ -7,6 +7,7 @@
 #include <dm.h>
 #include <keyboard.h>
 #include <log.h>
+#include <linux/string.h>
 
 static int keyboard_start(struct stdio_dev *sdev)
 {
diff --git a/drivers/input/tegra-kbc.c b/drivers/input/tegra-kbc.c
index 74ece4762e3c..3654510858f1 100644
--- a/drivers/input/tegra-kbc.c
+++ b/drivers/input/tegra-kbc.c
@@ -20,6 +20,7 @@
 #include <asm/arch-tegra/timer.h>
 #include <linux/delay.h>
 #include <linux/input.h>
+#include <linux/string.h>
 
 enum {
 	KBC_MAX_GPIO		= 24,
diff --git a/drivers/led/led-uclass.c b/drivers/led/led-uclass.c
index 2859475a6b8e..ae9c3cbd7d3a 100644
--- a/drivers/led/led-uclass.c
+++ b/drivers/led/led-uclass.c
@@ -11,6 +11,7 @@
 #include <dm/device-internal.h>
 #include <dm/root.h>
 #include <dm/uclass-internal.h>
+#include <linux/string.h>
 
 int led_get_by_label(const char *label, struct udevice **devp)
 {
diff --git a/drivers/misc/atsha204a-i2c.c b/drivers/misc/atsha204a-i2c.c
index c79c260783e8..779e1a17607a 100644
--- a/drivers/misc/atsha204a-i2c.c
+++ b/drivers/misc/atsha204a-i2c.c
@@ -18,6 +18,7 @@
 #include <log.h>
 #include <asm/global_data.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 
 #define ATSHA204A_TWLO			60
diff --git a/drivers/misc/cbmem_console.c b/drivers/misc/cbmem_console.c
index 5ba0a542060a..dfa99175d3d0 100644
--- a/drivers/misc/cbmem_console.c
+++ b/drivers/misc/cbmem_console.c
@@ -8,6 +8,7 @@
 #ifndef CONFIG_SYS_COREBOOT
 #error This driver requires coreboot
 #endif
+#include <linux/string.h>
 
 #include <asm/arch/sysinfo.h>
 
diff --git a/drivers/misc/cros_ec.c b/drivers/misc/cros_ec.c
index ccac7a60c129..881dce016fa1 100644
--- a/drivers/misc/cros_ec.c
+++ b/drivers/misc/cros_ec.c
@@ -33,6 +33,7 @@
 #include <dm/device-internal.h>
 #include <dm/of_extra.h>
 #include <dm/uclass-internal.h>
+#include <linux/string.h>
 
 #ifdef DEBUG_TRACE
 #define debug_trace(fmt, b...)	debug(fmt, #b)
diff --git a/drivers/misc/cros_ec_i2c.c b/drivers/misc/cros_ec_i2c.c
index c00f5f764a04..6a5dcc016f20 100644
--- a/drivers/misc/cros_ec_i2c.c
+++ b/drivers/misc/cros_ec_i2c.c
@@ -17,6 +17,7 @@
 #include <i2c.h>
 #include <cros_ec.h>
 #include <log.h>
+#include <linux/string.h>
 
 #ifdef DEBUG_TRACE
 #define debug_trace(fmt, b...)	debug(fmt, #b)
diff --git a/drivers/misc/cros_ec_sandbox.c b/drivers/misc/cros_ec_sandbox.c
index 8575e56a3371..81d2191542c3 100644
--- a/drivers/misc/cros_ec_sandbox.c
+++ b/drivers/misc/cros_ec_sandbox.c
@@ -14,6 +14,7 @@
 #include <log.h>
 #include <os.h>
 #include <time.h>
+#include <linux/string.h>
 #include <u-boot/sha256.h>
 #include <spi.h>
 #include <asm/malloc.h>
diff --git a/drivers/misc/cros_ec_spi.c b/drivers/misc/cros_ec_spi.c
index d8778eeb3874..357e31f7edc3 100644
--- a/drivers/misc/cros_ec_spi.c
+++ b/drivers/misc/cros_ec_spi.c
@@ -19,6 +19,7 @@
 #include <log.h>
 #include <spi.h>
 #include <time.h>
+#include <linux/string.h>
 
 int cros_ec_spi_packet(struct udevice *udev, int out_bytes, int in_bytes)
 {
diff --git a/drivers/misc/ds4510.c b/drivers/misc/ds4510.c
index a2a529156546..d914123fdf9f 100644
--- a/drivers/misc/ds4510.c
+++ b/drivers/misc/ds4510.c
@@ -12,6 +12,7 @@
 #include <i2c.h>
 #include <command.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "ds4510.h"
 
 enum {
diff --git a/drivers/misc/fsl_portals.c b/drivers/misc/fsl_portals.c
index 632430e42099..2c8cec7c421a 100644
--- a/drivers/misc/fsl_portals.c
+++ b/drivers/misc/fsl_portals.c
@@ -8,6 +8,7 @@
 #include <log.h>
 #include <linux/libfdt.h>
 #include <fdt_support.h>
+#include <linux/string.h>
 
 #include <asm/processor.h>
 #include <asm/io.h>
diff --git a/drivers/misc/gdsys_ioep.c b/drivers/misc/gdsys_ioep.c
index 69e16a06a0a7..8c65f1473c3f 100644
--- a/drivers/misc/gdsys_ioep.c
+++ b/drivers/misc/gdsys_ioep.c
@@ -16,6 +16,7 @@
 #include <log.h>
 #include <misc.h>
 #include <regmap.h>
+#include <linux/string.h>
 
 #include "gdsys_ioep.h"
 
diff --git a/drivers/misc/i2c_eeprom_emul.c b/drivers/misc/i2c_eeprom_emul.c
index 6be76ad02ef6..925120ea0d58 100644
--- a/drivers/misc/i2c_eeprom_emul.c
+++ b/drivers/misc/i2c_eeprom_emul.c
@@ -12,6 +12,7 @@
 #include <log.h>
 #include <malloc.h>
 #include <asm/test.h>
+#include <linux/string.h>
 
 #ifdef DEBUG
 #define debug_buffer print_buffer
diff --git a/drivers/misc/ihs_fpga.c b/drivers/misc/ihs_fpga.c
index 00d34a3adc2b..9d9d52e978c0 100644
--- a/drivers/misc/ihs_fpga.c
+++ b/drivers/misc/ihs_fpga.c
@@ -16,6 +16,7 @@
 #include <asm/gpio.h>
 #include <linux/bitops.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include "ihs_fpga.h"
 
diff --git a/drivers/misc/misc_sandbox.c b/drivers/misc/misc_sandbox.c
index f7c5b2e25fa0..9ea2a35db604 100644
--- a/drivers/misc/misc_sandbox.c
+++ b/drivers/misc/misc_sandbox.c
@@ -7,6 +7,7 @@
 #include <common.h>
 #include <dm.h>
 #include <misc.h>
+#include <linux/string.h>
 
 struct misc_sandbox_priv {
 	u8 mem[128];
diff --git a/drivers/misc/mpc83xx_serdes.c b/drivers/misc/mpc83xx_serdes.c
index ab1e34e6f46c..b2f23e1343bf 100644
--- a/drivers/misc/mpc83xx_serdes.c
+++ b/drivers/misc/mpc83xx_serdes.c
@@ -15,6 +15,7 @@
 #include <mapmem.h>
 #include <misc.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include "mpc83xx_serdes.h"
 
diff --git a/drivers/misc/qfw.c b/drivers/misc/qfw.c
index f6eb6583ed0b..fed08422419d 100644
--- a/drivers/misc/qfw.c
+++ b/drivers/misc/qfw.c
@@ -14,6 +14,7 @@
 #include <asm/tables.h>
 #endif
 #include <linux/list.h>
+#include <linux/string.h>
 
 static bool fwcfg_present;
 static bool fwcfg_dma_present;
diff --git a/drivers/misc/rockchip-efuse.c b/drivers/misc/rockchip-efuse.c
index 46ce6305fe68..adaa51ce99b5 100644
--- a/drivers/misc/rockchip-efuse.c
+++ b/drivers/misc/rockchip-efuse.c
@@ -14,6 +14,7 @@
 #include <linux/bitops.h>
 #include <linux/delay.h>
 #include <misc.h>
+#include <linux/string.h>
 
 #define RK3399_A_SHIFT          16
 #define RK3399_A_MASK           0x3ff
diff --git a/drivers/misc/sifive-otp.c b/drivers/misc/sifive-otp.c
index 0a4fa67f335c..7d502febea4f 100644
--- a/drivers/misc/sifive-otp.c
+++ b/drivers/misc/sifive-otp.c
@@ -25,6 +25,7 @@
 #include <linux/io.h>
 #include <misc.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #define BYTES_PER_FUSE		4
 
diff --git a/drivers/misc/tegra186_bpmp.c b/drivers/misc/tegra186_bpmp.c
index 73cc2666e498..c9079b86a7a0 100644
--- a/drivers/misc/tegra186_bpmp.c
+++ b/drivers/misc/tegra186_bpmp.c
@@ -18,6 +18,7 @@
 #include <linux/bitops.h>
 #include <linux/err.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #define BPMP_IVC_FRAME_COUNT 1
 #define BPMP_IVC_FRAME_SIZE 128
diff --git a/drivers/misc/vexpress_config.c b/drivers/misc/vexpress_config.c
index 02e5b586e297..9a9c5f75573e 100644
--- a/drivers/misc/vexpress_config.c
+++ b/drivers/misc/vexpress_config.c
@@ -12,6 +12,7 @@
 #include <linux/bitops.h>
 #include <linux/delay.h>
 #include <misc.h>
+#include <linux/string.h>
 
 #define SYS_CFGDATA		0xa0
 
diff --git a/drivers/mmc/ca_dw_mmc.c b/drivers/mmc/ca_dw_mmc.c
index 562dcb8ee35e..8ae5bd41454e 100644
--- a/drivers/mmc/ca_dw_mmc.c
+++ b/drivers/mmc/ca_dw_mmc.c
@@ -13,6 +13,7 @@
 #include <errno.h>
 #include <dm.h>
 #include <mapmem.h>
+#include <linux/string.h>
 
 #define SD_CLK_SEL_MASK (0x3)
 #define SD_DLL_DEFAULT  (0x143000)
diff --git a/drivers/mmc/davinci_mmc.c b/drivers/mmc/davinci_mmc.c
index 0a05fb13bc98..9b2fe0653c65 100644
--- a/drivers/mmc/davinci_mmc.c
+++ b/drivers/mmc/davinci_mmc.c
@@ -17,6 +17,7 @@
 #include <asm/arch/sdmmc_defs.h>
 #include <asm-generic/gpio.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #define WATCHDOG_COUNT		(100000)
 
diff --git a/drivers/mmc/fsl_esdhc_imx.c b/drivers/mmc/fsl_esdhc_imx.c
index c9f0c2528e63..c3806fd3e6fd 100644
--- a/drivers/mmc/fsl_esdhc_imx.c
+++ b/drivers/mmc/fsl_esdhc_imx.c
@@ -28,6 +28,7 @@
 #include <linux/delay.h>
 #include <linux/err.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <power/regulator.h>
 #include <malloc.h>
 #include <fsl_esdhc_imx.h>
diff --git a/drivers/mmc/fsl_esdhc_spl.c b/drivers/mmc/fsl_esdhc_spl.c
index afe55fad9de6..033fd0edd8f4 100644
--- a/drivers/mmc/fsl_esdhc_spl.c
+++ b/drivers/mmc/fsl_esdhc_spl.c
@@ -8,6 +8,7 @@
 #include <hang.h>
 #include <mmc.h>
 #include <malloc.h>
+#include <linux/string.h>
 
 /*
  * The environment variables are written to just after the u-boot image
diff --git a/drivers/mmc/ftsdc010_mci.c b/drivers/mmc/ftsdc010_mci.c
index 113ed2b7a71b..b26571e0a695 100644
--- a/drivers/mmc/ftsdc010_mci.c
+++ b/drivers/mmc/ftsdc010_mci.c
@@ -22,6 +22,7 @@
 #include <linux/errno.h>
 #include <asm/byteorder.h>
 #include <faraday/ftsdc010.h>
+#include <linux/string.h>
 #include "ftsdc010_mci.h"
 #include <dm.h>
 #include <dt-structs.h>
diff --git a/drivers/mmc/iproc_sdhci.c b/drivers/mmc/iproc_sdhci.c
index 7eda1d606fd6..ef7d8f8b41e8 100644
--- a/drivers/mmc/iproc_sdhci.c
+++ b/drivers/mmc/iproc_sdhci.c
@@ -11,6 +11,7 @@
 #include <sdhci.h>
 #include <asm/global_data.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/mmc/meson_gx_mmc.c b/drivers/mmc/meson_gx_mmc.c
index f70ced37d314..2afc80ff0c5e 100644
--- a/drivers/mmc/meson_gx_mmc.c
+++ b/drivers/mmc/meson_gx_mmc.c
@@ -17,6 +17,7 @@
 #include <asm/arch/sd_emmc.h>
 #include <linux/delay.h>
 #include <linux/log2.h>
+#include <linux/string.h>
 
 static inline void *get_regbase(const struct mmc *mmc)
 {
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
index 544534a78a71..e8c2360f9768 100644
--- a/drivers/mmc/mmc.c
+++ b/drivers/mmc/mmc.c
@@ -21,6 +21,7 @@
 #include <linux/bitops.h>
 #include <linux/delay.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <power/regulator.h>
 #include <malloc.h>
 #include <memalign.h>
diff --git a/drivers/mmc/mmc_spi.c b/drivers/mmc/mmc_spi.c
index 50fcd32674f9..56755c66fd2a 100644
--- a/drivers/mmc/mmc_spi.c
+++ b/drivers/mmc/mmc_spi.c
@@ -14,6 +14,7 @@
 #include <mmc.h>
 #include <stdlib.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 #include <linux/crc7.h>
 #include <asm/byteorder.h>
diff --git a/drivers/mmc/msm_sdhci.c b/drivers/mmc/msm_sdhci.c
index 525c1dc90272..27d8fb84fab5 100644
--- a/drivers/mmc/msm_sdhci.c
+++ b/drivers/mmc/msm_sdhci.c
@@ -16,6 +16,7 @@
 #include <asm/global_data.h>
 #include <asm/io.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 
 /* Non-standard registers needed for SDHCI startup */
 #define SDCC_MCI_POWER   0x0
diff --git a/drivers/mmc/mv_sdhci.c b/drivers/mmc/mv_sdhci.c
index fa7c12837d16..356d161d51fe 100644
--- a/drivers/mmc/mv_sdhci.c
+++ b/drivers/mmc/mv_sdhci.c
@@ -9,6 +9,7 @@
 #include <sdhci.h>
 #include <asm/global_data.h>
 #include <linux/mbus.h>
+#include <linux/string.h>
 
 #define MVSDH_NAME "mv_sdh"
 
diff --git a/drivers/mmc/mxcmmc.c b/drivers/mmc/mxcmmc.c
index 0057273a2a76..5ca4a5140e1b 100644
--- a/drivers/mmc/mxcmmc.c
+++ b/drivers/mmc/mxcmmc.c
@@ -27,6 +27,7 @@
 #include <linux/errno.h>
 #include <asm/io.h>
 #include <asm/arch/clock.h>
+#include <linux/string.h>
 
 #define DRIVER_NAME "mxc-mmc"
 
diff --git a/drivers/mmc/mxsmmc.c b/drivers/mmc/mxsmmc.c
index 2b3a3a992cbc..5bb12b612e3e 100644
--- a/drivers/mmc/mxsmmc.c
+++ b/drivers/mmc/mxsmmc.c
@@ -33,6 +33,7 @@
 #include <asm/arch/sys_proto.h>
 #include <asm/mach-imx/dma.h>
 #include <bouncebuf.h>
+#include <linux/string.h>
 
 #define	MXSMMC_MAX_TIMEOUT	10000
 #define MXSMMC_SMALL_TRANSFER	512
diff --git a/drivers/mmc/pxa_mmc_gen.c b/drivers/mmc/pxa_mmc_gen.c
index 2c081fdc69f0..7d88ca015c12 100644
--- a/drivers/mmc/pxa_mmc_gen.c
+++ b/drivers/mmc/pxa_mmc_gen.c
@@ -18,6 +18,7 @@
 #include <dm/platform_data/pxa_mmc_gen.h>
 #include <malloc.h>
 #include <mmc.h>
+#include <linux/string.h>
 
 /* PXAMMC Generic default config for various CPUs */
 #if defined(CONFIG_CPU_PXA25X)
diff --git a/drivers/mmc/rpmb.c b/drivers/mmc/rpmb.c
index ea7e506666b0..7a596b2f19ba 100644
--- a/drivers/mmc/rpmb.c
+++ b/drivers/mmc/rpmb.c
@@ -13,6 +13,7 @@
 #include <memalign.h>
 #include <mmc.h>
 #include <sdhci.h>
+#include <linux/string.h>
 #include <u-boot/sha256.h>
 #include "mmc_private.h"
 
diff --git a/drivers/mmc/sandbox_mmc.c b/drivers/mmc/sandbox_mmc.c
index e86ea8fe0968..d4780271fc30 100644
--- a/drivers/mmc/sandbox_mmc.c
+++ b/drivers/mmc/sandbox_mmc.c
@@ -11,6 +11,7 @@
 #include <log.h>
 #include <mmc.h>
 #include <asm/test.h>
+#include <linux/string.h>
 
 struct sandbox_mmc_plat {
 	struct mmc_config cfg;
diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c
index 94901e6d6b7d..e9c7207fa362 100644
--- a/drivers/mmc/sdhci.c
+++ b/drivers/mmc/sdhci.c
@@ -22,6 +22,7 @@
 #include <linux/dma-mapping.h>
 #include <phys2bus.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 static void sdhci_reset(struct sdhci_host *host, u8 mask)
 {
diff --git a/drivers/mmc/sh_mmcif.c b/drivers/mmc/sh_mmcif.c
index f7dd2aadc3e1..5f25acd55db9 100644
--- a/drivers/mmc/sh_mmcif.c
+++ b/drivers/mmc/sh_mmcif.c
@@ -22,6 +22,7 @@
 #include <linux/compat.h>
 #include <linux/io.h>
 #include <linux/sizes.h>
+#include <linux/string.h>
 #include "sh_mmcif.h"
 
 #define DRIVER_NAME	"sh_mmcif"
diff --git a/drivers/mmc/snps_dw_mmc.c b/drivers/mmc/snps_dw_mmc.c
index c606ef011bff..f7c64312154c 100644
--- a/drivers/mmc/snps_dw_mmc.c
+++ b/drivers/mmc/snps_dw_mmc.c
@@ -17,6 +17,7 @@
 #include <linux/libfdt.h>
 #include <linux/err.h>
 #include <malloc.h>
+#include <linux/string.h>
 
 #define CLOCK_MIN		400000	/*  400 kHz */
 #define FIFO_MIN		8
diff --git a/drivers/mmc/sti_sdhci.c b/drivers/mmc/sti_sdhci.c
index 11ae392734c3..394c4d19b567 100644
--- a/drivers/mmc/sti_sdhci.c
+++ b/drivers/mmc/sti_sdhci.c
@@ -13,6 +13,7 @@
 #include <asm/arch/sdhci.h>
 #include <asm/global_data.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/mmc/sunxi_mmc.c b/drivers/mmc/sunxi_mmc.c
index f90463059304..96d8f18d0f5a 100644
--- a/drivers/mmc/sunxi_mmc.c
+++ b/drivers/mmc/sunxi_mmc.c
@@ -23,6 +23,7 @@
 #include <asm/arch/mmc.h>
 #include <asm-generic/gpio.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #ifdef CONFIG_DM_MMC
 struct sunxi_mmc_variant {
diff --git a/drivers/mmc/xenon_sdhci.c b/drivers/mmc/xenon_sdhci.c
index 50c5b194cadd..57fe6a4df23d 100644
--- a/drivers/mmc/xenon_sdhci.c
+++ b/drivers/mmc/xenon_sdhci.c
@@ -24,6 +24,7 @@
 #include <malloc.h>
 #include <sdhci.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/mtd/altera_qspi.c b/drivers/mtd/altera_qspi.c
index 346244e1110f..c406963d7573 100644
--- a/drivers/mtd/altera_qspi.c
+++ b/drivers/mtd/altera_qspi.c
@@ -14,6 +14,7 @@
 #include <asm/global_data.h>
 #include <asm/io.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c
index 74cf47b76372..21cdf62478a2 100644
--- a/drivers/mtd/cfi_flash.c
+++ b/drivers/mtd/cfi_flash.c
@@ -34,6 +34,7 @@
 #include <asm/unaligned.h>
 #include <env_internal.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <mtd/cfi_flash.h>
 #include <watchdog.h>
 
diff --git a/drivers/mtd/cfi_mtd.c b/drivers/mtd/cfi_mtd.c
index a5bb0962e556..21ca7bd65d4c 100644
--- a/drivers/mtd/cfi_mtd.c
+++ b/drivers/mtd/cfi_mtd.c
@@ -8,6 +8,7 @@
 #include <common.h>
 #include <flash.h>
 #include <malloc.h>
+#include <linux/string.h>
 
 #include <linux/errno.h>
 #include <linux/mtd/mtd.h>
diff --git a/drivers/mtd/mtd_uboot.c b/drivers/mtd/mtd_uboot.c
index 2499cb52d8c0..16fe4ecdb6e1 100644
--- a/drivers/mtd/mtd_uboot.c
+++ b/drivers/mtd/mtd_uboot.c
@@ -14,6 +14,7 @@
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/partitions.h>
 #include <mtd.h>
+#include <linux/string.h>
 
 #define MTD_NAME_MAX_LEN 20
 
diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c
index cad11805690a..ef3eb456ac87 100644
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
@@ -26,6 +26,7 @@
 #include <linux/compat.h>
 #include <ubi_uboot.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/partitions.h>
diff --git a/drivers/mtd/nand/raw/atmel_nand.c b/drivers/mtd/nand/raw/atmel_nand.c
index 599bdfc0d6df..dcd5f8ff82e4 100644
--- a/drivers/mtd/nand/raw/atmel_nand.c
+++ b/drivers/mtd/nand/raw/atmel_nand.c
@@ -20,6 +20,7 @@
 #include <linux/bug.h>
 #include <linux/delay.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include <malloc.h>
 #include <nand.h>
diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.c b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
index a57013e72c47..3ac5b4445166 100644
--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c
+++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
@@ -29,6 +29,7 @@
 #include <linux/log2.h>
 #include <asm/processor.h>
 #include <dm.h>
+#include <linux/string.h>
 
 #include "brcmnand.h"
 #include "brcmnand_compat.h"
diff --git a/drivers/mtd/nand/raw/denali.c b/drivers/mtd/nand/raw/denali.c
index ab91db85467d..ca99aa88b3d4 100644
--- a/drivers/mtd/nand/raw/denali.c
+++ b/drivers/mtd/nand/raw/denali.c
@@ -23,6 +23,7 @@
 #include <linux/io.h>
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/rawnand.h>
+#include <linux/string.h>
 
 #include "denali.h"
 
diff --git a/drivers/mtd/nand/raw/denali_spl.c b/drivers/mtd/nand/raw/denali_spl.c
index f72142817e7f..7252e0340c6a 100644
--- a/drivers/mtd/nand/raw/denali_spl.c
+++ b/drivers/mtd/nand/raw/denali_spl.c
@@ -10,6 +10,7 @@
 #include <asm/unaligned.h>
 #include <linux/delay.h>
 #include <linux/mtd/rawnand.h>
+#include <linux/string.h>
 #include "denali.h"
 
 #define DENALI_MAP01		(1 << 26)	/* read/write pages in PIO */
diff --git a/drivers/mtd/nand/raw/fsmc_nand.c b/drivers/mtd/nand/raw/fsmc_nand.c
index ad34af30e812..a5ef0ae75e0e 100644
--- a/drivers/mtd/nand/raw/fsmc_nand.c
+++ b/drivers/mtd/nand/raw/fsmc_nand.c
@@ -16,6 +16,7 @@
 #include <linux/mtd/nand_ecc.h>
 #include <linux/mtd/fsmc_nand.h>
 #include <asm/arch/hardware.h>
+#include <linux/string.h>
 
 static u32 fsmc_version;
 static struct fsmc_regs *const fsmc_regs_p = (struct fsmc_regs *)
diff --git a/drivers/mtd/nand/raw/lpc32xx_nand_mlc.c b/drivers/mtd/nand/raw/lpc32xx_nand_mlc.c
index 588fb010ee89..cfa2510b038f 100644
--- a/drivers/mtd/nand/raw/lpc32xx_nand_mlc.c
+++ b/drivers/mtd/nand/raw/lpc32xx_nand_mlc.c
@@ -28,6 +28,7 @@
 #include <asm/arch/clk.h>
 #include <asm/arch/sys_proto.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 /*
  * MLC NAND controller registers.
diff --git a/drivers/mtd/nand/raw/mxs_nand.c b/drivers/mtd/nand/raw/mxs_nand.c
index a7852a841ce2..3ba3afbbf291 100644
--- a/drivers/mtd/nand/raw/mxs_nand.c
+++ b/drivers/mtd/nand/raw/mxs_nand.c
@@ -19,6 +19,7 @@
 #include <asm/cache.h>
 #include <linux/mtd/rawnand.h>
 #include <linux/sizes.h>
+#include <linux/string.h>
 #include <linux/types.h>
 #include <malloc.h>
 #include <linux/errno.h>
diff --git a/drivers/mtd/nand/raw/mxs_nand_spl.c b/drivers/mtd/nand/raw/mxs_nand_spl.c
index ee778e13aa13..2e1f4c522a6a 100644
--- a/drivers/mtd/nand/raw/mxs_nand_spl.c
+++ b/drivers/mtd/nand/raw/mxs_nand_spl.c
@@ -14,6 +14,7 @@
 #include <linux/bitops.h>
 #include <linux/delay.h>
 #include <linux/err.h>
+#include <linux/string.h>
 
 static struct mtd_info *mtd;
 static struct nand_chip nand_chip;
diff --git a/drivers/mtd/nand/raw/nand_base.c b/drivers/mtd/nand/raw/nand_base.c
index 693e088f19ad..a6b3504facd5 100644
--- a/drivers/mtd/nand/raw/nand_base.c
+++ b/drivers/mtd/nand/raw/nand_base.c
@@ -53,6 +53,7 @@
 #include <asm/io.h>
 #include <linux/errno.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 /* Define default oob placement schemes for large and small page devices */
 #ifndef CONFIG_SYS_NAND_DRIVER_ECC_LAYOUT
diff --git a/drivers/mtd/nand/raw/nand_bch.c b/drivers/mtd/nand/raw/nand_bch.c
index bb48ebbb96c7..5733bcb9c624 100644
--- a/drivers/mtd/nand/raw/nand_bch.c
+++ b/drivers/mtd/nand/raw/nand_bch.c
@@ -11,6 +11,7 @@
 #include <log.h>
 #include <dm/devres.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 /*#include <asm/io.h>*/
 #include <linux/types.h>
 
diff --git a/drivers/mtd/nand/raw/nand_spl_loaders.c b/drivers/mtd/nand/raw/nand_spl_loaders.c
index 4befc75c047e..f297205bc795 100644
--- a/drivers/mtd/nand/raw/nand_spl_loaders.c
+++ b/drivers/mtd/nand/raw/nand_spl_loaders.c
@@ -1,3 +1,4 @@
+#include <linux/string.h>
 int nand_spl_load_image(uint32_t offs, unsigned int size, void *dst)
 {
 	unsigned int block, lastblock;
diff --git a/drivers/mtd/nand/raw/nand_util.c b/drivers/mtd/nand/raw/nand_util.c
index 5b74ef0dfdbf..264a1efada9b 100644
--- a/drivers/mtd/nand/raw/nand_util.c
+++ b/drivers/mtd/nand/raw/nand_util.c
@@ -27,6 +27,7 @@
 #include <div64.h>
 #include <asm/cache.h>
 #include <dm/devres.h>
+#include <linux/string.h>
 
 #include <linux/errno.h>
 #include <linux/mtd/mtd.h>
diff --git a/drivers/mtd/nand/raw/omap_gpmc.c b/drivers/mtd/nand/raw/omap_gpmc.c
index 97fd5690f518..9fef305da1c6 100644
--- a/drivers/mtd/nand/raw/omap_gpmc.c
+++ b/drivers/mtd/nand/raw/omap_gpmc.c
@@ -15,6 +15,7 @@
 #include <linux/compiler.h>
 #include <nand.h>
 #include <linux/mtd/omap_elm.h>
+#include <linux/string.h>
 
 #define BADBLOCK_MARKER_LENGTH	2
 #define SECTOR_BYTES		512
diff --git a/drivers/mtd/nand/raw/pxa3xx_nand.c b/drivers/mtd/nand/raw/pxa3xx_nand.c
index bccaa2d82128..e222fb994b0a 100644
--- a/drivers/mtd/nand/raw/pxa3xx_nand.c
+++ b/drivers/mtd/nand/raw/pxa3xx_nand.c
@@ -24,6 +24,7 @@
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/rawnand.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <linux/types.h>
 
 #include "pxa3xx_nand.h"
diff --git a/drivers/mtd/nand/raw/sunxi_nand.c b/drivers/mtd/nand/raw/sunxi_nand.c
index 606e606fe8b6..5fd741f11243 100644
--- a/drivers/mtd/nand/raw/sunxi_nand.c
+++ b/drivers/mtd/nand/raw/sunxi_nand.c
@@ -37,6 +37,7 @@
 #include <linux/delay.h>
 #include <linux/err.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include <linux/kernel.h>
 #include <linux/mtd/mtd.h>
diff --git a/drivers/mtd/nand/raw/sunxi_nand_spl.c b/drivers/mtd/nand/raw/sunxi_nand_spl.c
index 85d8013b1a6b..942f2366849e 100644
--- a/drivers/mtd/nand/raw/sunxi_nand_spl.c
+++ b/drivers/mtd/nand/raw/sunxi_nand_spl.c
@@ -12,6 +12,7 @@
 #include <linux/bitops.h>
 #include <linux/ctype.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 /* registers */
 #define NFC_CTL                    0x00000000
diff --git a/drivers/mtd/nand/raw/tegra_nand.c b/drivers/mtd/nand/raw/tegra_nand.c
index a28f830e8cd2..0b81fe1d4874 100644
--- a/drivers/mtd/nand/raw/tegra_nand.c
+++ b/drivers/mtd/nand/raw/tegra_nand.c
@@ -24,6 +24,7 @@
 #include <bouncebuf.h>
 #include <dm.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include "tegra_nand.h"
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/drivers/mtd/nand/raw/vf610_nfc.c b/drivers/mtd/nand/raw/vf610_nfc.c
index 02ca385ed2d4..457efcc23e6e 100644
--- a/drivers/mtd/nand/raw/vf610_nfc.c
+++ b/drivers/mtd/nand/raw/vf610_nfc.c
@@ -26,6 +26,7 @@
 #include <time.h>
 #include <dm/device_compat.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/rawnand.h>
diff --git a/drivers/mtd/nand/spi/core.c b/drivers/mtd/nand/spi/core.c
index ae8932d377cd..87494854fc28 100644
--- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c
@@ -31,6 +31,7 @@
 #include <linux/bug.h>
 #include <linux/mtd/spinand.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #endif
 
 /* SPI NAND index visible in MTD names */
diff --git a/drivers/mtd/onenand/onenand_base.c b/drivers/mtd/onenand/onenand_base.c
index cfc137c6b956..bd73642752bf 100644
--- a/drivers/mtd/onenand/onenand_base.c
+++ b/drivers/mtd/onenand/onenand_base.c
@@ -28,6 +28,7 @@
 #include <linux/compat.h>
 #include <linux/mtd/mtd.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include "linux/mtd/flashchip.h"
 #include <linux/mtd/onenand.h>
 
diff --git a/drivers/mtd/onenand/onenand_bbt.c b/drivers/mtd/onenand/onenand_bbt.c
index cc1e449f4a72..026280e5e629 100644
--- a/drivers/mtd/onenand/onenand_bbt.c
+++ b/drivers/mtd/onenand/onenand_bbt.c
@@ -21,6 +21,7 @@
 #include <linux/mtd/onenand.h>
 #include <malloc.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include <linux/errno.h>
 
diff --git a/drivers/mtd/onenand/onenand_spl.c b/drivers/mtd/onenand/onenand_spl.c
index ab6f1a8be3ee..463ec9b8d50c 100644
--- a/drivers/mtd/onenand/onenand_spl.c
+++ b/drivers/mtd/onenand/onenand_spl.c
@@ -12,6 +12,7 @@
 #include <linux/bitops.h>
 #include <linux/mtd/onenand_regs.h>
 #include <onenand_uboot.h>
+#include <linux/string.h>
 
 /*
  * Device geometry:
diff --git a/drivers/mtd/onenand/onenand_uboot.c b/drivers/mtd/onenand/onenand_uboot.c
index 3a8c7b867eba..b6ec9eecda6a 100644
--- a/drivers/mtd/onenand/onenand_uboot.c
+++ b/drivers/mtd/onenand/onenand_uboot.c
@@ -18,6 +18,7 @@
 #include <linux/compat.h>
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/onenand.h>
+#include <linux/string.h>
 
 struct mtd_info onenand_mtd;
 struct onenand_chip onenand_chip;
diff --git a/drivers/mtd/onenand/samsung.c b/drivers/mtd/onenand/samsung.c
index c415e5149a01..27143d4d0a5c 100644
--- a/drivers/mtd/onenand/samsung.c
+++ b/drivers/mtd/onenand/samsung.c
@@ -17,6 +17,7 @@
 #include <linux/mtd/flashchip.h>
 #include <linux/mtd/samsung_onenand.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include <asm/io.h>
 #include <linux/errno.h>
diff --git a/drivers/mtd/pic32_flash.c b/drivers/mtd/pic32_flash.c
index ea0dbe9eeee5..71f22406badb 100644
--- a/drivers/mtd/pic32_flash.c
+++ b/drivers/mtd/pic32_flash.c
@@ -14,6 +14,7 @@
 #include <irq_func.h>
 #include <asm/global_data.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 #include <mach/pic32.h>
 #include <wait_bit.h>
 
diff --git a/drivers/mtd/spi/fsl_espi_spl.c b/drivers/mtd/spi/fsl_espi_spl.c
index 5c41d7558c24..9c9975748845 100644
--- a/drivers/mtd/spi/fsl_espi_spl.c
+++ b/drivers/mtd/spi/fsl_espi_spl.c
@@ -8,6 +8,7 @@
 #include <hang.h>
 #include <spi_flash.h>
 #include <malloc.h>
+#include <linux/string.h>
 
 #define ESPI_BOOT_IMAGE_SIZE	0x48
 #define ESPI_BOOT_IMAGE_ADDR	0x50
diff --git a/drivers/mtd/spi/sandbox.c b/drivers/mtd/spi/sandbox.c
index 0b602dc9140a..a63e92d0340c 100644
--- a/drivers/mtd/spi/sandbox.c
+++ b/drivers/mtd/spi/sandbox.c
@@ -16,6 +16,7 @@
 #include <malloc.h>
 #include <spi.h>
 #include <os.h>
+#include <linux/string.h>
 
 #include <spi_flash.h>
 #include "sf_internal.h"
diff --git a/drivers/mtd/spi/sf-uclass.c b/drivers/mtd/spi/sf-uclass.c
index 121804e32693..5e96d3dc6c8d 100644
--- a/drivers/mtd/spi/sf-uclass.c
+++ b/drivers/mtd/spi/sf-uclass.c
@@ -11,6 +11,7 @@
 #include <spi_flash.h>
 #include <asm/global_data.h>
 #include <dm/device-internal.h>
+#include <linux/string.h>
 #include "sf_internal.h"
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/drivers/mtd/spi/sf_dataflash.c b/drivers/mtd/spi/sf_dataflash.c
index c292ddfb893f..11a396f11a20 100644
--- a/drivers/mtd/spi/sf_dataflash.c
+++ b/drivers/mtd/spi/sf_dataflash.c
@@ -20,6 +20,7 @@
 #include <linux/delay.h>
 #include <linux/err.h>
 #include <linux/math64.h>
+#include <linux/string.h>
 
 #include "sf_internal.h"
 
diff --git a/drivers/mtd/spi/sf_mtd.c b/drivers/mtd/spi/sf_mtd.c
index 987fac2501f4..1d8276d59d6e 100644
--- a/drivers/mtd/spi/sf_mtd.c
+++ b/drivers/mtd/spi/sf_mtd.c
@@ -9,6 +9,7 @@
 #include <linux/errno.h>
 #include <linux/mtd/mtd.h>
 #include <spi_flash.h>
+#include <linux/string.h>
 
 static struct mtd_info sf_mtd_info;
 static bool sf_mtd_registered;
diff --git a/drivers/mtd/spi/sf_probe.c b/drivers/mtd/spi/sf_probe.c
index b959e3453a51..b37fed685770 100644
--- a/drivers/mtd/spi/sf_probe.c
+++ b/drivers/mtd/spi/sf_probe.c
@@ -14,6 +14,7 @@
 #include <malloc.h>
 #include <spi.h>
 #include <spi_flash.h>
+#include <linux/string.h>
 
 #include "sf_internal.h"
 
diff --git a/drivers/mtd/spi/spi-nor-core.c b/drivers/mtd/spi/spi-nor-core.c
index 3537fa6aaf78..d236f860df5b 100644
--- a/drivers/mtd/spi/spi-nor-core.c
+++ b/drivers/mtd/spi/spi-nor-core.c
@@ -22,6 +22,7 @@
 #include <linux/math64.h>
 #include <linux/printk.h>
 #include <linux/sizes.h>
+#include <linux/string.h>
 
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/spi-nor.h>
diff --git a/drivers/mtd/spi/spi-nor-tiny.c b/drivers/mtd/spi/spi-nor-tiny.c
index 54f6d773f0fd..91f98aac2d18 100644
--- a/drivers/mtd/spi/spi-nor-tiny.c
+++ b/drivers/mtd/spi/spi-nor-tiny.c
@@ -19,6 +19,7 @@
 #include <linux/math64.h>
 #include <linux/printk.h>
 #include <linux/sizes.h>
+#include <linux/string.h>
 
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/spi-nor.h>
diff --git a/drivers/mtd/ubi/attach.c b/drivers/mtd/ubi/attach.c
index 2ef8fde3d324..7b9ca10ed2aa 100644
--- a/drivers/mtd/ubi/attach.c
+++ b/drivers/mtd/ubi/attach.c
@@ -82,6 +82,7 @@
 #include <linux/bug.h>
 #include <linux/err.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #endif
 
 #include <linux/math64.h>
diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c
index f4e72ae7e561..a449b21b5bf2 100644
--- a/drivers/mtd/ubi/build.c
+++ b/drivers/mtd/ubi/build.c
@@ -34,6 +34,7 @@
 #include <linux/bug.h>
 #include <linux/log2.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #endif
 #include <linux/err.h>
 #include <ubi_uboot.h>
diff --git a/drivers/mtd/ubi/debug.c b/drivers/mtd/ubi/debug.c
index b119cb6e9c05..393419bd1376 100644
--- a/drivers/mtd/ubi/debug.c
+++ b/drivers/mtd/ubi/debug.c
@@ -9,6 +9,7 @@
 #include <malloc.h>
 #include <ubi_uboot.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include "ubi.h"
 #ifndef __UBOOT__
 #include <linux/debugfs.h>
diff --git a/drivers/mtd/ubi/eba.c b/drivers/mtd/ubi/eba.c
index 9d4337bcfffd..9fe5ed791258 100644
--- a/drivers/mtd/ubi/eba.c
+++ b/drivers/mtd/ubi/eba.c
@@ -36,6 +36,7 @@
 #include <u-boot/crc.h>
 #else
 #include <ubi_uboot.h>
+#include <linux/string.h>
 #endif
 
 #include <linux/err.h>
diff --git a/drivers/mtd/ubi/fastmap.c b/drivers/mtd/ubi/fastmap.c
index b54b56375b44..90ed73b8577f 100644
--- a/drivers/mtd/ubi/fastmap.c
+++ b/drivers/mtd/ubi/fastmap.c
@@ -17,6 +17,7 @@
 #include <malloc.h>
 #include <ubi_uboot.h>
 #include <linux/bug.h>
+#include <linux/string.h>
 #endif
 
 #include <linux/compat.h>
diff --git a/drivers/mtd/ubi/io.c b/drivers/mtd/ubi/io.c
index b8b878b9182d..ef819a86d27c 100644
--- a/drivers/mtd/ubi/io.c
+++ b/drivers/mtd/ubi/io.c
@@ -83,6 +83,7 @@
 #else
 #include <hexdump.h>
 #include <ubi_uboot.h>
+#include <linux/string.h>
 #endif
 
 #include "ubi.h"
diff --git a/drivers/mtd/ubi/kapi.c b/drivers/mtd/ubi/kapi.c
index 41680cdad13f..3fac8b2b3088 100644
--- a/drivers/mtd/ubi/kapi.c
+++ b/drivers/mtd/ubi/kapi.c
@@ -16,6 +16,7 @@
 #include <asm/div64.h>
 #else
 #include <ubi_uboot.h>
+#include <linux/string.h>
 #endif
 #include <linux/err.h>
 
diff --git a/drivers/mtd/ubi/upd.c b/drivers/mtd/ubi/upd.c
index 28a362aa14a9..c4856b6c11eb 100644
--- a/drivers/mtd/ubi/upd.c
+++ b/drivers/mtd/ubi/upd.c
@@ -32,6 +32,7 @@
 #else
 #include <div64.h>
 #include <ubi_uboot.h>
+#include <linux/string.h>
 #endif
 #include <linux/err.h>
 #include <linux/math64.h>
diff --git a/drivers/mtd/ubi/vmt.c b/drivers/mtd/ubi/vmt.c
index 0bfedd0debd6..da68f3519daa 100644
--- a/drivers/mtd/ubi/vmt.c
+++ b/drivers/mtd/ubi/vmt.c
@@ -19,6 +19,7 @@
 #else
 #include <div64.h>
 #include <ubi_uboot.h>
+#include <linux/string.h>
 #endif
 #include <linux/math64.h>
 
diff --git a/drivers/mtd/ubi/vtbl.c b/drivers/mtd/ubi/vtbl.c
index a2b5352cb2da..cb4de78fcbba 100644
--- a/drivers/mtd/ubi/vtbl.c
+++ b/drivers/mtd/ubi/vtbl.c
@@ -56,6 +56,7 @@
 #else
 #include <ubi_uboot.h>
 #include <linux/bug.h>
+#include <linux/string.h>
 #endif
 
 #include <linux/err.h>
diff --git a/drivers/mtd/ubispl/ubispl.c b/drivers/mtd/ubispl/ubispl.c
index 03b31f002b95..3ffad5485352 100644
--- a/drivers/mtd/ubispl/ubispl.c
+++ b/drivers/mtd/ubispl/ubispl.c
@@ -10,6 +10,7 @@
 #include <common.h>
 #include <errno.h>
 #include <linux/bug.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 #include <ubispl.h>
 
diff --git a/drivers/net/ag7xxx.c b/drivers/net/ag7xxx.c
index 48cf45d9a8f9..7171479c80de 100644
--- a/drivers/net/ag7xxx.c
+++ b/drivers/net/ag7xxx.c
@@ -25,6 +25,7 @@
 #include <linux/mii.h>
 #include <wait_bit.h>
 #include <asm/io.h>
+#include <linux/string.h>
 
 #include <mach/ath79.h>
 
diff --git a/drivers/net/altera_tse.c b/drivers/net/altera_tse.c
index 8b4ab9627c3b..e97937628004 100644
--- a/drivers/net/altera_tse.c
+++ b/drivers/net/altera_tse.c
@@ -22,6 +22,7 @@
 #include <asm/global_data.h>
 #include <linux/dma-mapping.h>
 #include <asm/io.h>
+#include <linux/string.h>
 #include "altera_tse.h"
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/drivers/net/armada100_fec.c b/drivers/net/armada100_fec.c
index 018891e173c3..2dbd2d870b35 100644
--- a/drivers/net/armada100_fec.c
+++ b/drivers/net/armada100_fec.c
@@ -22,6 +22,7 @@
 #include <linux/mii.h>
 #include <asm/io.h>
 #include <asm/arch/armada100.h>
+#include <linux/string.h>
 #include "armada100_fec.h"
 
 #define  PHY_ADR_REQ     0xFF	/* Magic number to read/write PHY address */
diff --git a/drivers/net/at91_emac.c b/drivers/net/at91_emac.c
index e40b94ad892d..b62829387888 100644
--- a/drivers/net/at91_emac.c
+++ b/drivers/net/at91_emac.c
@@ -20,6 +20,7 @@
 #include <miiphy.h>
 #include <linux/delay.h>
 #include <linux/mii.h>
+#include <linux/string.h>
 
 #undef MII_DEBUG
 #undef ET_DEBUG
diff --git a/drivers/net/ax88180.c b/drivers/net/ax88180.c
index 402bcdb63ed7..a679b6529ff2 100644
--- a/drivers/net/ax88180.c
+++ b/drivers/net/ax88180.c
@@ -44,6 +44,7 @@
 #include <malloc.h>
 #include <linux/delay.h>
 #include <linux/mii.h>
+#include <linux/string.h>
 #include "ax88180.h"
 
 /*
diff --git a/drivers/net/bcm-sf2-eth-gmac.c b/drivers/net/bcm-sf2-eth-gmac.c
index cbe1e85222fa..3ab5841a7d0f 100644
--- a/drivers/net/bcm-sf2-eth-gmac.c
+++ b/drivers/net/bcm-sf2-eth-gmac.c
@@ -8,6 +8,7 @@
 #define DEBUG
 #include <linux/printk.h>
 #endif
+#include <linux/string.h>
 #endif
 
 #include <config.h>
diff --git a/drivers/net/bcm-sf2-eth.c b/drivers/net/bcm-sf2-eth.c
index 040b72e6db06..7ffdd87449ac 100644
--- a/drivers/net/bcm-sf2-eth.c
+++ b/drivers/net/bcm-sf2-eth.c
@@ -10,6 +10,7 @@
 #include <config.h>
 #include <linux/delay.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include <phy.h>
 #include <miiphy.h>
diff --git a/drivers/net/bcm6368-eth.c b/drivers/net/bcm6368-eth.c
index f626412ef00a..8b0205350066 100644
--- a/drivers/net/bcm6368-eth.c
+++ b/drivers/net/bcm6368-eth.c
@@ -20,6 +20,7 @@
 #include <dm/device_compat.h>
 #include <linux/delay.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #define ETH_PORT_STR			"brcm,enetsw-port"
 
diff --git a/drivers/net/calxedaxgmac.c b/drivers/net/calxedaxgmac.c
index 8b2ee49b441c..75b519ccfd1e 100644
--- a/drivers/net/calxedaxgmac.c
+++ b/drivers/net/calxedaxgmac.c
@@ -10,6 +10,7 @@
 #include <linux/delay.h>
 #include <linux/err.h>
 #include <asm/io.h>
+#include <linux/string.h>
 
 #define TX_NUM_DESC			1
 #define RX_NUM_DESC			32
diff --git a/drivers/net/dc2114x.c b/drivers/net/dc2114x.c
index 9f8c6c58d952..8eacba7083c4 100644
--- a/drivers/net/dc2114x.c
+++ b/drivers/net/dc2114x.c
@@ -9,6 +9,7 @@
 #include <pci.h>
 #include <linux/bitops.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #define SROM_DLEVEL	0
 
diff --git a/drivers/net/designware.c b/drivers/net/designware.c
index c2f3a6483ddc..490db2b69fc1 100644
--- a/drivers/net/designware.c
+++ b/drivers/net/designware.c
@@ -29,6 +29,7 @@
 #include <linux/kernel.h>
 #include <asm/io.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <power/regulator.h>
 #include "designware.h"
 
diff --git a/drivers/net/dm9000x.c b/drivers/net/dm9000x.c
index 3ff3824d52f0..9860830da092 100644
--- a/drivers/net/dm9000x.c
+++ b/drivers/net/dm9000x.c
@@ -56,6 +56,7 @@ TODO: external MII is not functional, only internal at the moment.
 #include <asm/io.h>
 #include <dm9000.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include "dm9000x.h"
 
diff --git a/drivers/net/dnet.c b/drivers/net/dnet.c
index fbcf15f26801..888a9990efef 100644
--- a/drivers/net/dnet.c
+++ b/drivers/net/dnet.c
@@ -11,6 +11,7 @@
 #include <common.h>
 #include <log.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #ifndef CONFIG_DNET_AUTONEG_TIMEOUT
 #define CONFIG_DNET_AUTONEG_TIMEOUT	5000000	/* default value */
diff --git a/drivers/net/dwc_eth_qos.c b/drivers/net/dwc_eth_qos.c
index cec3d7eeb7e7..db76ac9c7528 100644
--- a/drivers/net/dwc_eth_qos.c
+++ b/drivers/net/dwc_eth_qos.c
@@ -52,6 +52,7 @@
 #include <linux/bitops.h>
 #include <linux/delay.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 /* Core registers */
 
diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c
index 49be76670214..cf2c56cd123b 100644
--- a/drivers/net/e1000.c
+++ b/drivers/net/e1000.c
@@ -40,6 +40,7 @@ tested on both gig copper and gig fiber boards
 #include <net.h>
 #include <pci.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "e1000.h"
 #include <asm/cache.h>
 
diff --git a/drivers/net/e1000_spi.c b/drivers/net/e1000_spi.c
index 4fcc65d9782c..ed3e987b12bd 100644
--- a/drivers/net/e1000_spi.c
+++ b/drivers/net/e1000_spi.c
@@ -2,6 +2,7 @@
 #include <command.h>
 #include <console.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "e1000.h"
 #include <malloc.h>
 #include <linux/compiler.h>
diff --git a/drivers/net/eepro100.c b/drivers/net/eepro100.c
index feba5327da4d..392d44f89d75 100644
--- a/drivers/net/eepro100.c
+++ b/drivers/net/eepro100.c
@@ -13,6 +13,7 @@
 #include <netdev.h>
 #include <pci.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 /* Ethernet chip registers. */
 #define SCB_STATUS		0	/* Rx/Command Unit Status *Word* */
diff --git a/drivers/net/ep93xx_eth.c b/drivers/net/ep93xx_eth.c
index d1d881d6bd95..a72d9c2471dd 100644
--- a/drivers/net/ep93xx_eth.c
+++ b/drivers/net/ep93xx_eth.c
@@ -26,6 +26,7 @@
 #include <miiphy.h>
 #include <linux/bug.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <linux/types.h>
 #include "ep93xx_eth.h"
 
diff --git a/drivers/net/ethoc.c b/drivers/net/ethoc.c
index a93358af1a71..7c56b7242d49 100644
--- a/drivers/net/ethoc.c
+++ b/drivers/net/ethoc.c
@@ -21,6 +21,7 @@
 #include <miiphy.h>
 #include <asm/cache.h>
 #include <wait_bit.h>
+#include <linux/string.h>
 
 /* register offsets */
 #define	MODER		0x00
diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
index c0fc3133afb4..eef443f5f63e 100644
--- a/drivers/net/fec_mxc.c
+++ b/drivers/net/fec_mxc.c
@@ -21,6 +21,7 @@
 #include <asm/cache.h>
 #include <asm/global_data.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <power/regulator.h>
 
 #include <asm/io.h>
diff --git a/drivers/net/fm/eth.c b/drivers/net/fm/eth.c
index 2f433cedd093..252f96787994 100644
--- a/drivers/net/fm/eth.c
+++ b/drivers/net/fm/eth.c
@@ -25,6 +25,7 @@
 #include <fsl_tgec.h>
 #include <fsl_memac.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include "fm.h"
 
diff --git a/drivers/net/fm/fm.c b/drivers/net/fm/fm.c
index bbb1738c4bdc..247a1c13645c 100644
--- a/drivers/net/fm/fm.c
+++ b/drivers/net/fm/fm.c
@@ -8,6 +8,7 @@
 #include <malloc.h>
 #include <asm/io.h>
 #include <linux/errno.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 #ifdef CONFIG_DM_ETH
 #include <dm.h>
diff --git a/drivers/net/fm/init.c b/drivers/net/fm/init.c
index 2fed64205cb1..8f1a45b3a22e 100644
--- a/drivers/net/fm/init.c
+++ b/drivers/net/fm/init.c
@@ -14,6 +14,7 @@
 #else
 #include <asm/fsl_serdes.h>
 #endif
+#include <linux/string.h>
 
 #include "fm.h"
 
diff --git a/drivers/net/fm/memac_phy.c b/drivers/net/fm/memac_phy.c
index e15c28d50053..53e0760833cb 100644
--- a/drivers/net/fm/memac_phy.c
+++ b/drivers/net/fm/memac_phy.c
@@ -11,6 +11,7 @@
 #include <asm/io.h>
 #include <fsl_memac.h>
 #include <fm_eth.h>
+#include <linux/string.h>
 
 #ifdef CONFIG_SYS_MEMAC_LITTLE_ENDIAN
 #define memac_out_32(a, v)	out_le32(a, v)
diff --git a/drivers/net/fm/tgec_phy.c b/drivers/net/fm/tgec_phy.c
index 22225c2f82f9..ad6c08e431c4 100644
--- a/drivers/net/fm/tgec_phy.c
+++ b/drivers/net/fm/tgec_phy.c
@@ -10,6 +10,7 @@
 #include <asm/io.h>
 #include <fsl_tgec.h>
 #include <fm_eth.h>
+#include <linux/string.h>
 
 /*
  * Write value to the PHY for this device to the register at regnum, waiting
diff --git a/drivers/net/fsl-mc/dpio/qbman_portal.c b/drivers/net/fsl-mc/dpio/qbman_portal.c
index 44ce00041ee0..5a0bef9324fd 100644
--- a/drivers/net/fsl-mc/dpio/qbman_portal.c
+++ b/drivers/net/fsl-mc/dpio/qbman_portal.c
@@ -7,6 +7,7 @@
 #include <malloc.h>
 #include <asm/arch/clock.h>
 #include <linux/bug.h>
+#include <linux/string.h>
 #include "qbman_portal.h"
 
 /* QBMan portal management command codes */
diff --git a/drivers/net/fsl-mc/dpio/qbman_sys.h b/drivers/net/fsl-mc/dpio/qbman_sys.h
index fb760b94f85b..e320e9b905e7 100644
--- a/drivers/net/fsl-mc/dpio/qbman_sys.h
+++ b/drivers/net/fsl-mc/dpio/qbman_sys.h
@@ -22,6 +22,7 @@
  * required. */
 #include <linux/bug.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #undef QBMAN_CCSR_TRACE
 #undef QBMAN_CINH_TRACE
 #undef QBMAN_CENA_TRACE
diff --git a/drivers/net/fsl-mc/mc.c b/drivers/net/fsl-mc/mc.c
index 26e9523288e1..e088d1fc12dc 100644
--- a/drivers/net/fsl-mc/mc.c
+++ b/drivers/net/fsl-mc/mc.c
@@ -28,6 +28,7 @@
 #include <fsl-mc/fsl_dpsparser.h>
 #include <fsl-mc/fsl_qbman_portal.h>
 #include <fsl-mc/ldpaa_wriop.h>
+#include <linux/string.h>
 
 #define MC_RAM_BASE_ADDR_ALIGNMENT  (512UL * 1024 * 1024)
 #define MC_RAM_BASE_ADDR_ALIGNMENT_MASK	(~(MC_RAM_BASE_ADDR_ALIGNMENT - 1))
diff --git a/drivers/net/fsl_enetc.c b/drivers/net/fsl_enetc.c
index 2929ae72092e..d983841bafd5 100644
--- a/drivers/net/fsl_enetc.c
+++ b/drivers/net/fsl_enetc.c
@@ -17,6 +17,7 @@
 #include <miiphy.h>
 #include <linux/bug.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include "fsl_enetc.h"
 
diff --git a/drivers/net/fsl_mcdmafec.c b/drivers/net/fsl_mcdmafec.c
index f3eea57fb9a8..62f9d00ece34 100644
--- a/drivers/net/fsl_mcdmafec.c
+++ b/drivers/net/fsl_mcdmafec.c
@@ -23,6 +23,7 @@
 #include <linux/mii.h>
 #include <asm/immap.h>
 #include <asm/fsl_mcdmafec.h>
+#include <linux/string.h>
 
 #include "MCD_dma.h"
 
diff --git a/drivers/net/fsl_mdio.c b/drivers/net/fsl_mdio.c
index d2edd1751c3e..5f692a27f23c 100644
--- a/drivers/net/fsl_mdio.c
+++ b/drivers/net/fsl_mdio.c
@@ -11,6 +11,7 @@
 #include <fsl_mdio.h>
 #include <asm/io.h>
 #include <linux/errno.h>
+#include <linux/string.h>
 
 #ifdef CONFIG_DM_MDIO
 struct tsec_mdio_priv {
diff --git a/drivers/net/ftmac100.c b/drivers/net/ftmac100.c
index 4b94fd6405a0..c61d13aa21f8 100644
--- a/drivers/net/ftmac100.c
+++ b/drivers/net/ftmac100.c
@@ -16,6 +16,7 @@
 #include <asm/global_data.h>
 #include <linux/delay.h>
 #include <linux/io.h>
+#include <linux/string.h>
 
 #include "ftmac100.h"
 #ifdef CONFIG_DM_ETH
diff --git a/drivers/net/ftmac110.c b/drivers/net/ftmac110.c
index d4a92a70e733..f186148b6197 100644
--- a/drivers/net/ftmac110.c
+++ b/drivers/net/ftmac110.c
@@ -16,6 +16,7 @@
 #include <linux/errno.h>
 #include <asm/io.h>
 #include <linux/dma-mapping.h>
+#include <linux/string.h>
 
 #if defined(CONFIG_MII) || defined(CONFIG_CMD_MII)
 #include <miiphy.h>
diff --git a/drivers/net/gmac_rockchip.c b/drivers/net/gmac_rockchip.c
index 98d7c39f9fee..7cd2451e0846 100644
--- a/drivers/net/gmac_rockchip.c
+++ b/drivers/net/gmac_rockchip.c
@@ -28,6 +28,7 @@
 #include <dm/pinctrl.h>
 #include <dt-bindings/clock/rk3288-cru.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 #include "designware.h"
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/drivers/net/higmacv300.c b/drivers/net/higmacv300.c
index 2aae7f4863c0..0c71c51ceb43 100644
--- a/drivers/net/higmacv300.c
+++ b/drivers/net/higmacv300.c
@@ -18,6 +18,7 @@
 #include <net.h>
 #include <reset.h>
 #include <wait_bit.h>
+#include <linux/string.h>
 
 #define STATION_ADDR_LOW		0x0000
 #define STATION_ADDR_HIGH		0x0004
diff --git a/drivers/net/lan91c96.c b/drivers/net/lan91c96.c
index ce3c406ea6c2..524e9455ccf5 100644
--- a/drivers/net/lan91c96.c
+++ b/drivers/net/lan91c96.c
@@ -50,6 +50,7 @@
 #include <malloc.h>
 #include <time.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "lan91c96.h"
 #include <net.h>
 #include <linux/compiler.h>
diff --git a/drivers/net/ldpaa_eth/ldpaa_eth.c b/drivers/net/ldpaa_eth/ldpaa_eth.c
index bbd2aed0ab24..d5384b216ab2 100644
--- a/drivers/net/ldpaa_eth/ldpaa_eth.c
+++ b/drivers/net/ldpaa_eth/ldpaa_eth.c
@@ -20,6 +20,7 @@
 #include <linux/compat.h>
 #include <fsl-mc/fsl_dpmac.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include <fsl-mc/ldpaa_wriop.h>
 #include "ldpaa_eth.h"
diff --git a/drivers/net/lpc32xx_eth.c b/drivers/net/lpc32xx_eth.c
index 3f281a515c6a..b059accf5247 100644
--- a/drivers/net/lpc32xx_eth.c
+++ b/drivers/net/lpc32xx_eth.c
@@ -19,6 +19,7 @@
 #include <asm/byteorder.h>
 #include <asm/arch/cpu.h>
 #include <asm/arch/config.h>
+#include <linux/string.h>
 
 /*
  * Notes:
diff --git a/drivers/net/macb.c b/drivers/net/macb.c
index cda9b16cc240..26939c6fa466 100644
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
@@ -9,6 +9,7 @@
 #include <log.h>
 #include <asm/global_data.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 /*
  * The u-boot networking stack is a little weird.  It seems like the
diff --git a/drivers/net/mcffec.c b/drivers/net/mcffec.c
index d881c5eb871b..2d307b23afb6 100644
--- a/drivers/net/mcffec.c
+++ b/drivers/net/mcffec.c
@@ -22,6 +22,7 @@
 #include <asm/immap.h>
 #include <linux/delay.h>
 #include <linux/mii.h>
+#include <linux/string.h>
 
 #undef	ET_DEBUG
 #undef	MII_DEBUG
diff --git a/drivers/net/mcfmii.c b/drivers/net/mcfmii.c
index da5075172fa2..c99950d0e9ed 100644
--- a/drivers/net/mcfmii.c
+++ b/drivers/net/mcfmii.c
@@ -10,6 +10,7 @@
 #include <netdev.h>
 #include <asm/global_data.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #ifdef CONFIG_MCF547x_8x
 #include <asm/fsl_mcdmafec.h>
diff --git a/drivers/net/mpc8xx_fec.c b/drivers/net/mpc8xx_fec.c
index 282c2599d3c4..b6f805683e2c 100644
--- a/drivers/net/mpc8xx_fec.c
+++ b/drivers/net/mpc8xx_fec.c
@@ -14,6 +14,7 @@
 #include <asm/global_data.h>
 #include <asm/io.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include <phy.h>
 #include <linux/mii.h>
diff --git a/drivers/net/mscc_eswitch/jr2_switch.c b/drivers/net/mscc_eswitch/jr2_switch.c
index 97b2b081efb1..92debab424f5 100644
--- a/drivers/net/mscc_eswitch/jr2_switch.c
+++ b/drivers/net/mscc_eswitch/jr2_switch.c
@@ -18,6 +18,7 @@
 #include <net.h>
 #include <wait_bit.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include <dt-bindings/mscc/jr2_data.h>
 #include "mscc_xfer.h"
diff --git a/drivers/net/mscc_eswitch/luton_switch.c b/drivers/net/mscc_eswitch/luton_switch.c
index 1d46d0e5e1e2..79f4d19dad97 100644
--- a/drivers/net/mscc_eswitch/luton_switch.c
+++ b/drivers/net/mscc_eswitch/luton_switch.c
@@ -16,6 +16,7 @@
 #include <miiphy.h>
 #include <net.h>
 #include <wait_bit.h>
+#include <linux/string.h>
 
 #include "mscc_xfer.h"
 #include "mscc_mac_table.h"
diff --git a/drivers/net/mscc_eswitch/ocelot_switch.c b/drivers/net/mscc_eswitch/ocelot_switch.c
index bdadaa13c725..de8a44e48bc1 100644
--- a/drivers/net/mscc_eswitch/ocelot_switch.c
+++ b/drivers/net/mscc_eswitch/ocelot_switch.c
@@ -18,6 +18,7 @@
 #include <net.h>
 #include <wait_bit.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include "mscc_xfer.h"
 #include "mscc_mac_table.h"
diff --git a/drivers/net/mscc_eswitch/serval_switch.c b/drivers/net/mscc_eswitch/serval_switch.c
index bbced95f7e47..540799567ec9 100644
--- a/drivers/net/mscc_eswitch/serval_switch.c
+++ b/drivers/net/mscc_eswitch/serval_switch.c
@@ -18,6 +18,7 @@
 #include <net.h>
 #include <wait_bit.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include "mscc_xfer.h"
 #include "mscc_mac_table.h"
diff --git a/drivers/net/mscc_eswitch/servalt_switch.c b/drivers/net/mscc_eswitch/servalt_switch.c
index c8aaf7d4897c..fc79d34b5193 100644
--- a/drivers/net/mscc_eswitch/servalt_switch.c
+++ b/drivers/net/mscc_eswitch/servalt_switch.c
@@ -17,6 +17,7 @@
 #include <net.h>
 #include <wait_bit.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include "mscc_xfer.h"
 #include "mscc_miim.h"
diff --git a/drivers/net/mt7628-eth.c b/drivers/net/mt7628-eth.c
index 8b278c62ba75..3bf8b636ea84 100644
--- a/drivers/net/mt7628-eth.c
+++ b/drivers/net/mt7628-eth.c
@@ -29,6 +29,7 @@
 #include <linux/delay.h>
 #include <linux/err.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 /* Ethernet frame engine register */
 #define PDMA_RELATED		0x0800
diff --git a/drivers/net/mtk_eth.c b/drivers/net/mtk_eth.c
index 774c1e3bb51f..7e7699339964 100644
--- a/drivers/net/mtk_eth.c
+++ b/drivers/net/mtk_eth.c
@@ -28,6 +28,7 @@
 #include <linux/mdio.h>
 #include <linux/mii.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include "mtk_eth.h"
 
diff --git a/drivers/net/mvgbe.c b/drivers/net/mvgbe.c
index bf5f6f4b6723..5ceb37324f31 100644
--- a/drivers/net/mvgbe.c
+++ b/drivers/net/mvgbe.c
@@ -26,6 +26,7 @@
 #include <asm/system.h>
 #include <asm/byteorder.h>
 #include <asm/arch/cpu.h>
+#include <linux/string.h>
 
 #if defined(CONFIG_ARCH_KIRKWOOD)
 #include <asm/arch/soc.h>
diff --git a/drivers/net/mvneta.c b/drivers/net/mvneta.c
index 5fd668b5e42c..6ee0e1c7897b 100644
--- a/drivers/net/mvneta.c
+++ b/drivers/net/mvneta.c
@@ -37,6 +37,7 @@
 #include <linux/compat.h>
 #include <linux/mbus.h>
 #include <asm-generic/gpio.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/net/mvpp2.c b/drivers/net/mvpp2.c
index 37a8a7849f45..06eb619c002d 100644
--- a/drivers/net/mvpp2.c
+++ b/drivers/net/mvpp2.c
@@ -43,6 +43,7 @@
 #include <asm-generic/gpio.h>
 #include <fdt_support.h>
 #include <linux/mdio.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/net/natsemi.c b/drivers/net/natsemi.c
index bfd8cc396b98..e44787d33ba9 100644
--- a/drivers/net/natsemi.c
+++ b/drivers/net/natsemi.c
@@ -57,6 +57,7 @@
 #include <asm/io.h>
 #include <pci.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 /* defines */
 #define EEPROM_SIZE 0xb /*12 16-bit chunks, or 24 bytes*/
diff --git a/drivers/net/ne2000_base.c b/drivers/net/ne2000_base.c
index 25c258dd3f75..2fad46712201 100644
--- a/drivers/net/ne2000_base.c
+++ b/drivers/net/ne2000_base.c
@@ -80,6 +80,7 @@ Add SNMP
 #include <malloc.h>
 #include <time.h>
 #include <linux/compiler.h>
+#include <linux/string.h>
 
 /* forward definition of function used for the uboot interface */
 void uboot_push_packet_len(int len);
diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c
index f1d0630d0204..432d2b0121c8 100644
--- a/drivers/net/netconsole.c
+++ b/drivers/net/netconsole.c
@@ -10,6 +10,7 @@
 #include <log.h>
 #include <stdio_dev.h>
 #include <net.h>
+#include <linux/string.h>
 
 #ifndef CONFIG_NETCONSOLE_BUFFER_SIZE
 #define CONFIG_NETCONSOLE_BUFFER_SIZE 512
diff --git a/drivers/net/ns8382x.c b/drivers/net/ns8382x.c
index d79872af0936..7192156a698c 100644
--- a/drivers/net/ns8382x.c
+++ b/drivers/net/ns8382x.c
@@ -58,6 +58,7 @@
 #include <asm/io.h>
 #include <pci.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 /* defines */
 #define DSIZE     0x00000FFF
diff --git a/drivers/net/pch_gbe.c b/drivers/net/pch_gbe.c
index 20d757f5dff0..c1596a2cd351 100644
--- a/drivers/net/pch_gbe.c
+++ b/drivers/net/pch_gbe.c
@@ -16,6 +16,7 @@
 #include <pci.h>
 #include <miiphy.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "pch_gbe.h"
 
 #if !defined(CONFIG_PHYLIB)
diff --git a/drivers/net/pcnet.c b/drivers/net/pcnet.c
index ad5ac6618f7e..405ae75d0862 100644
--- a/drivers/net/pcnet.c
+++ b/drivers/net/pcnet.c
@@ -18,6 +18,7 @@
 #include <asm/io.h>
 #include <pci.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #define	PCNET_DEBUG_LEVEL	0	/* 0=off, 1=init, 2=rx/tx */
 
diff --git a/drivers/net/pfe_eth/pfe_cmd.c b/drivers/net/pfe_eth/pfe_cmd.c
index 1e69525cb71f..f72413cf132a 100644
--- a/drivers/net/pfe_eth/pfe_cmd.c
+++ b/drivers/net/pfe_eth/pfe_cmd.c
@@ -13,6 +13,7 @@
 #include <command.h>
 #include <log.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <net/pfe_eth/pfe_eth.h>
 
 static inline void pfe_command_help(void)
diff --git a/drivers/net/pfe_eth/pfe_driver.c b/drivers/net/pfe_eth/pfe_driver.c
index 6f443b4ea81c..573ceabcf7e0 100644
--- a/drivers/net/pfe_eth/pfe_driver.c
+++ b/drivers/net/pfe_eth/pfe_driver.c
@@ -7,6 +7,7 @@
 #include <log.h>
 #include <malloc.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <net/pfe_eth/pfe_eth.h>
 #include <net/pfe_eth/pfe_firmware.h>
 
diff --git a/drivers/net/pfe_eth/pfe_firmware.c b/drivers/net/pfe_eth/pfe_firmware.c
index 55e661c0e1d5..1601ec48a59d 100644
--- a/drivers/net/pfe_eth/pfe_firmware.c
+++ b/drivers/net/pfe_eth/pfe_firmware.c
@@ -14,6 +14,7 @@
 #include <log.h>
 #include <malloc.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 #include <net/pfe_eth/pfe_eth.h>
 #include <net/pfe_eth/pfe_firmware.h>
 #include <spi_flash.h>
diff --git a/drivers/net/pfe_eth/pfe_hw.c b/drivers/net/pfe_eth/pfe_hw.c
index 722f5c238fa1..2889dd6b9070 100644
--- a/drivers/net/pfe_eth/pfe_hw.c
+++ b/drivers/net/pfe_eth/pfe_hw.c
@@ -5,6 +5,7 @@
  */
 #include <log.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 #include <net/pfe_eth/pfe_eth.h>
 #include <net/pfe_eth/pfe/pfe_hw.h>
 
diff --git a/drivers/net/phy/aquantia.c b/drivers/net/phy/aquantia.c
index 68cd3d03fd06..59c7abeb667b 100644
--- a/drivers/net/phy/aquantia.c
+++ b/drivers/net/phy/aquantia.c
@@ -13,6 +13,7 @@
 #include <phy.h>
 #include <linux/bitops.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 #include <malloc.h>
 #include <asm/byteorder.h>
diff --git a/drivers/net/phy/atheros.c b/drivers/net/phy/atheros.c
index f922fecd6b5d..29db299c1e79 100644
--- a/drivers/net/phy/atheros.c
+++ b/drivers/net/phy/atheros.c
@@ -12,6 +12,7 @@
 #include <linux/bitfield.h>
 #include <linux/bitops.h>
 #include <dt-bindings/net/qca-ar803x.h>
+#include <linux/string.h>
 
 #define AR803x_PHY_DEBUG_ADDR_REG	0x1d
 #define AR803x_PHY_DEBUG_DATA_REG	0x1e
diff --git a/drivers/net/phy/b53.c b/drivers/net/phy/b53.c
index 21da53c7e5b3..b376ef8f82b9 100644
--- a/drivers/net/phy/b53.c
+++ b/drivers/net/phy/b53.c
@@ -26,6 +26,7 @@
 #include <command.h>
 #include <linux/bitops.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include <errno.h>
 #include <malloc.h>
diff --git a/drivers/net/phy/fixed.c b/drivers/net/phy/fixed.c
index 3228672fc4ae..d3e9e3e3d4af 100644
--- a/drivers/net/phy/fixed.c
+++ b/drivers/net/phy/fixed.c
@@ -12,6 +12,7 @@
 #include <dm.h>
 #include <fdt_support.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/net/phy/miiphybb.c b/drivers/net/phy/miiphybb.c
index bb5aa3513b61..6b031196f44d 100644
--- a/drivers/net/phy/miiphybb.c
+++ b/drivers/net/phy/miiphybb.c
@@ -17,6 +17,7 @@
 #include <ppc_asm.tmpl>
 #include <miiphy.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 #define BB_MII_RELOCATE(v,off) (v += (v?off:0))
 
diff --git a/drivers/net/phy/mv88e61xx.c b/drivers/net/phy/mv88e61xx.c
index 7eff37b24499..832b538f5e92 100644
--- a/drivers/net/phy/mv88e61xx.c
+++ b/drivers/net/phy/mv88e61xx.c
@@ -33,6 +33,7 @@
 #include <log.h>
 #include <linux/bitops.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include <bitfield.h>
 #include <errno.h>
diff --git a/drivers/net/phy/mv88e6352.c b/drivers/net/phy/mv88e6352.c
index 62a7f1921493..40e0edc6d88e 100644
--- a/drivers/net/phy/mv88e6352.c
+++ b/drivers/net/phy/mv88e6352.c
@@ -11,6 +11,7 @@
 #include <linux/delay.h>
 #include <linux/errno.h>
 #include <mv88e6352.h>
+#include <linux/string.h>
 
 #define SMI_HDR		((0x8 | 0x1) << 12)
 #define SMI_BUSY_MASK	(0x8000)
diff --git a/drivers/net/phy/ncsi.c b/drivers/net/phy/ncsi.c
index bf1e832be9f1..862a1564a732 100644
--- a/drivers/net/phy/ncsi.c
+++ b/drivers/net/phy/ncsi.c
@@ -9,6 +9,7 @@
 #include <log.h>
 #include <malloc.h>
 #include <phy.h>
+#include <linux/string.h>
 #include <net/ncsi.h>
 #include <net/ncsi-pkt.h>
 #include <asm/unaligned.h>
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index f82547593864..030dc7538241 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -22,6 +22,7 @@
 #include <linux/delay.h>
 #include <linux/err.h>
 #include <linux/compiler.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/net/pic32_mdio.c b/drivers/net/pic32_mdio.c
index d4049cfea525..802563960a16 100644
--- a/drivers/net/pic32_mdio.c
+++ b/drivers/net/pic32_mdio.c
@@ -12,6 +12,7 @@
 #include <wait_bit.h>
 #include <asm/io.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "pic32_eth.h"
 
 static int pic32_mdio_write(struct mii_dev *bus,
diff --git a/drivers/net/ravb.c b/drivers/net/ravb.c
index 6ab56e6e6538..8f76279c7eed 100644
--- a/drivers/net/ravb.c
+++ b/drivers/net/ravb.c
@@ -25,6 +25,7 @@
 #include <wait_bit.h>
 #include <asm/io.h>
 #include <asm/gpio.h>
+#include <linux/string.h>
 
 /* Registers */
 #define RAVB_REG_CCC		0x000
diff --git a/drivers/net/rtl8139.c b/drivers/net/rtl8139.c
index 71f2aba4c709..1229e94185cb 100644
--- a/drivers/net/rtl8139.c
+++ b/drivers/net/rtl8139.c
@@ -79,6 +79,7 @@
 #include <pci.h>
 #include <linux/bitops.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <linux/types.h>
 
 #define RTL_TIMEOUT	100000
diff --git a/drivers/net/rtl8169.c b/drivers/net/rtl8169.c
index 5ff99273a02c..9157dd1e351a 100644
--- a/drivers/net/rtl8169.c
+++ b/drivers/net/rtl8169.c
@@ -56,6 +56,7 @@
 #include <pci.h>
 #include <linux/delay.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #undef DEBUG_RTL8169
 #undef DEBUG_RTL8169_TX
diff --git a/drivers/net/sandbox-raw-bus.c b/drivers/net/sandbox-raw-bus.c
index fb1ba5a8c83a..6b111d47eea8 100644
--- a/drivers/net/sandbox-raw-bus.c
+++ b/drivers/net/sandbox-raw-bus.c
@@ -11,6 +11,7 @@
 #include <malloc.h>
 #include <dm/device-internal.h>
 #include <dm/lists.h>
+#include <linux/string.h>
 
 static int eth_raw_bus_post_bind(struct udevice *dev)
 {
diff --git a/drivers/net/sandbox-raw.c b/drivers/net/sandbox-raw.c
index 6dddae911b04..bda3ffd003b4 100644
--- a/drivers/net/sandbox-raw.c
+++ b/drivers/net/sandbox-raw.c
@@ -14,6 +14,7 @@
 #include <malloc.h>
 #include <net.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/net/sandbox.c b/drivers/net/sandbox.c
index 555d9147d11e..b63b3aaebcff 100644
--- a/drivers/net/sandbox.c
+++ b/drivers/net/sandbox.c
@@ -15,6 +15,7 @@
 #include <asm/eth.h>
 #include <asm/global_data.h>
 #include <asm/test.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/net/sh_eth.c b/drivers/net/sh_eth.c
index 49b4a91875ab..8f2fe1515e67 100644
--- a/drivers/net/sh_eth.c
+++ b/drivers/net/sh_eth.c
@@ -22,6 +22,7 @@
 #include <linux/delay.h>
 #include <linux/errno.h>
 #include <asm/io.h>
+#include <linux/string.h>
 
 #ifdef CONFIG_DM_ETH
 #include <clk.h>
diff --git a/drivers/net/smc91111.c b/drivers/net/smc91111.c
index 3ae9f805a790..3ae55a1db7da 100644
--- a/drivers/net/smc91111.c
+++ b/drivers/net/smc91111.c
@@ -53,6 +53,7 @@
 #include <malloc.h>
 #include <time.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "smc91111.h"
 #include <net.h>
 
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
index 09372d7f6ba9..0ac1e3fb3d76 100644
--- a/drivers/net/smc911x.c
+++ b/drivers/net/smc911x.c
@@ -12,6 +12,7 @@
 #include <miiphy.h>
 #include <linux/io.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <linux/types.h>
 
 #include "smc911x.h"
diff --git a/drivers/net/sni_ave.c b/drivers/net/sni_ave.c
index 6e228da2984d..9288355fb4ad 100644
--- a/drivers/net/sni_ave.c
+++ b/drivers/net/sni_ave.c
@@ -24,6 +24,7 @@
 #include <linux/io.h>
 #include <linux/iopoll.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #define AVE_GRST_DELAY_MSEC	40
 #define AVE_MIN_XMITSIZE	60
diff --git a/drivers/net/sun8i_emac.c b/drivers/net/sun8i_emac.c
index e74cfa993247..77c03cbf3012 100644
--- a/drivers/net/sun8i_emac.c
+++ b/drivers/net/sun8i_emac.c
@@ -34,6 +34,7 @@
 #if CONFIG_IS_ENABLED(DM_GPIO)
 #include <asm-generic/gpio.h>
 #endif
+#include <linux/string.h>
 
 #define MDIO_CMD_MII_BUSY		BIT(0)
 #define MDIO_CMD_MII_WRITE		BIT(1)
diff --git a/drivers/net/sunxi_emac.c b/drivers/net/sunxi_emac.c
index df18ecc06450..e1176454f2eb 100644
--- a/drivers/net/sunxi_emac.c
+++ b/drivers/net/sunxi_emac.c
@@ -18,6 +18,7 @@
 #include <asm/io.h>
 #include <asm/arch/clock.h>
 #include <asm/arch/gpio.h>
+#include <linux/string.h>
 
 /* EMAC register  */
 struct emac_regs {
diff --git a/drivers/net/ti/cpsw-common.c b/drivers/net/ti/cpsw-common.c
index d5428274d190..9ed0b56cc800 100644
--- a/drivers/net/ti/cpsw-common.c
+++ b/drivers/net/ti/cpsw-common.c
@@ -13,6 +13,7 @@
 #include <cpsw.h>
 #include <dm/device_compat.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/net/ti/cpsw.c b/drivers/net/ti/cpsw.c
index 7521deaaa977..044a74776c35 100644
--- a/drivers/net/ti/cpsw.c
+++ b/drivers/net/ti/cpsw.c
@@ -25,6 +25,7 @@
 #include <asm/arch/cpu.h>
 #include <dm.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include "cpsw_mdio.h"
 
diff --git a/drivers/net/ti/davinci_emac.c b/drivers/net/ti/davinci_emac.c
index 56ea1fec0af6..c2df17d3a6f7 100644
--- a/drivers/net/ti/davinci_emac.c
+++ b/drivers/net/ti/davinci_emac.c
@@ -33,6 +33,7 @@
 #include <asm/arch/emac_defs.h>
 #include <asm/io.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "davinci_emac.h"
 
 unsigned int	emac_dbg = 0;
diff --git a/drivers/net/tsec.c b/drivers/net/tsec.c
index 5d12e4b77558..b7623bf85b13 100644
--- a/drivers/net/tsec.c
+++ b/drivers/net/tsec.c
@@ -20,6 +20,7 @@
 #include <linux/errno.h>
 #include <asm/processor.h>
 #include <asm/io.h>
+#include <linux/string.h>
 
 #ifndef CONFIG_DM_ETH
 /* Default initializations for TSEC controllers. */
diff --git a/drivers/net/uli526x.c b/drivers/net/uli526x.c
index 3191868cae5a..3784f72b87e8 100644
--- a/drivers/net/uli526x.c
+++ b/drivers/net/uli526x.c
@@ -17,6 +17,7 @@
 #include <pci.h>
 #include <miiphy.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 /* some kernel function compatible define */
 
diff --git a/drivers/net/xilinx_axi_emac.c b/drivers/net/xilinx_axi_emac.c
index 2a2e0585a34b..da571efde4e0 100644
--- a/drivers/net/xilinx_axi_emac.c
+++ b/drivers/net/xilinx_axi_emac.c
@@ -19,6 +19,7 @@
 #include <miiphy.h>
 #include <wait_bit.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/net/zynq_gem.c b/drivers/net/zynq_gem.c
index da4b6fba9ff6..9d19e89090c5 100644
--- a/drivers/net/zynq_gem.c
+++ b/drivers/net/zynq_gem.c
@@ -31,6 +31,7 @@
 #include <linux/bitops.h>
 #include <linux/err.h>
 #include <linux/errno.h>
+#include <linux/string.h>
 
 /* Bit/mask specification */
 #define ZYNQ_GEM_PHYMNTNC_OP_MASK	0x40020000 /* operation mask bits */
diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c
index fc64d93ab83b..6d8ab8bf786f 100644
--- a/drivers/nvme/nvme.c
+++ b/drivers/nvme/nvme.c
@@ -16,6 +16,7 @@
 #include <time.h>
 #include <dm/device-internal.h>
 #include <linux/compat.h>
+#include <linux/string.h>
 #include "nvme.h"
 
 #define NVME_Q_DEPTH		2
diff --git a/drivers/pci/fsl_pci_init.c b/drivers/pci/fsl_pci_init.c
index e72a60c13180..ffd160439fdf 100644
--- a/drivers/pci/fsl_pci_init.c
+++ b/drivers/pci/fsl_pci_init.c
@@ -11,6 +11,7 @@
 #include <asm/fsl_serdes.h>
 #include <asm/global_data.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/pci/pci-uclass.c b/drivers/pci/pci-uclass.c
index aec09bd5a545..9aa616ccfa9e 100644
--- a/drivers/pci/pci-uclass.c
+++ b/drivers/pci/pci-uclass.c
@@ -20,6 +20,7 @@
 #endif
 #include <linux/delay.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include "pci_internal.h"
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/drivers/pci/pci_ftpci100.c b/drivers/pci/pci_ftpci100.c
index 32fac878a672..f7a601726725 100644
--- a/drivers/pci/pci_ftpci100.c
+++ b/drivers/pci/pci_ftpci100.c
@@ -11,6 +11,7 @@
 #include <log.h>
 #include <malloc.h>
 #include <pci.h>
+#include <linux/string.h>
 
 #include <faraday/ftpci100.h>
 
diff --git a/drivers/pci/pci_rom.c b/drivers/pci/pci_rom.c
index c69919faafe0..68b9949ba1e2 100644
--- a/drivers/pci/pci_rom.c
+++ b/drivers/pci/pci_rom.c
@@ -41,6 +41,7 @@
 #include <acpi/acpi_s3.h>
 #include <asm/global_data.h>
 #include <linux/screen_info.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/pci/pci_tegra.c b/drivers/pci/pci_tegra.c
index abd4e26543be..8845dc451e55 100644
--- a/drivers/pci/pci_tegra.c
+++ b/drivers/pci/pci_tegra.c
@@ -24,6 +24,7 @@
 #include <time.h>
 #include <linux/delay.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include <asm/io.h>
 #include <asm/gpio.h>
diff --git a/drivers/pci/pcie_imx.c b/drivers/pci/pcie_imx.c
index cbf12371a0f7..16468e733640 100644
--- a/drivers/pci/pcie_imx.c
+++ b/drivers/pci/pcie_imx.c
@@ -24,6 +24,7 @@
 #include <linux/sizes.h>
 #include <errno.h>
 #include <asm/arch/sys_proto.h>
+#include <linux/string.h>
 
 #define PCI_ACCESS_READ  0
 #define PCI_ACCESS_WRITE 1
diff --git a/drivers/pci/pcie_layerscape_fixup_common.c b/drivers/pci/pcie_layerscape_fixup_common.c
index 814650f1e15c..bba410e386f6 100644
--- a/drivers/pci/pcie_layerscape_fixup_common.c
+++ b/drivers/pci/pcie_layerscape_fixup_common.c
@@ -12,6 +12,7 @@
 #include <asm/arch/clock.h>
 #include <asm/arch/soc.h>
 #include <linux/libfdt.h>
+#include <linux/string.h>
 #include "pcie_layerscape_fixup_common.h"
 
 void ft_pci_setup(void *blob, struct bd_info *bd)
diff --git a/drivers/pci_endpoint/sandbox-pci_ep.c b/drivers/pci_endpoint/sandbox-pci_ep.c
index 8e05d5ba8906..d1e552a24662 100644
--- a/drivers/pci_endpoint/sandbox-pci_ep.c
+++ b/drivers/pci_endpoint/sandbox-pci_ep.c
@@ -9,6 +9,7 @@
 #include <pci.h>
 #include <pci_ep.h>
 #include <asm/test.h>
+#include <linux/string.h>
 
 /**
  * struct sandbox_pci_ep_priv - private data for driver
diff --git a/drivers/phy/allwinner/phy-sun4i-usb.c b/drivers/phy/allwinner/phy-sun4i-usb.c
index f050645044c9..db62fd45f8f2 100644
--- a/drivers/phy/allwinner/phy-sun4i-usb.c
+++ b/drivers/phy/allwinner/phy-sun4i-usb.c
@@ -26,6 +26,7 @@
 #include <linux/bitops.h>
 #include <linux/delay.h>
 #include <linux/err.h>
+#include <linux/string.h>
 
 #define REG_ISCR			0x00
 #define REG_PHYCTL_A10			0x04
diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c
index 29749b4c3fa3..75bd0fff5db3 100644
--- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c
+++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c
@@ -19,6 +19,7 @@
 #include <asm/io.h>
 #include <linux/iopoll.h>
 #include <asm/arch-rockchip/clock.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/phy/rockchip/phy-rockchip-typec.c b/drivers/phy/rockchip/phy-rockchip-typec.c
index 6a5dc7ee44f7..9a9a653c7efb 100644
--- a/drivers/phy/rockchip/phy-rockchip-typec.c
+++ b/drivers/phy/rockchip/phy-rockchip-typec.c
@@ -21,6 +21,7 @@
 #include <asm/io.h>
 #include <linux/iopoll.h>
 #include <asm/arch-rockchip/clock.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/pinctrl/exynos/pinctrl-exynos.c b/drivers/pinctrl/exynos/pinctrl-exynos.c
index cc7ef7998950..6034794f6713 100644
--- a/drivers/pinctrl/exynos/pinctrl-exynos.c
+++ b/drivers/pinctrl/exynos/pinctrl-exynos.c
@@ -10,6 +10,7 @@
 #include <errno.h>
 #include <asm/global_data.h>
 #include <asm/io.h>
+#include <linux/string.h>
 #include "pinctrl-exynos.h"
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/drivers/pinctrl/mtmips/pinctrl-mtmips-common.c b/drivers/pinctrl/mtmips/pinctrl-mtmips-common.c
index e361916eb285..d5262438e17b 100644
--- a/drivers/pinctrl/mtmips/pinctrl-mtmips-common.c
+++ b/drivers/pinctrl/mtmips/pinctrl-mtmips-common.c
@@ -10,6 +10,7 @@
 #include <malloc.h>
 #include <dm/pinctrl.h>
 #include <linux/io.h>
+#include <linux/string.h>
 
 #include "pinctrl-mtmips-common.h"
 
diff --git a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c
index b64ad9a21c6e..7541898ac46f 100644
--- a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c
+++ b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c
@@ -36,6 +36,7 @@
 #include <linux/bitops.h>
 #include <linux/libfdt.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/pinctrl/pinctrl-generic.c b/drivers/pinctrl/pinctrl-generic.c
index 313aeccb1eec..7a2131d73ea1 100644
--- a/drivers/pinctrl/pinctrl-generic.c
+++ b/drivers/pinctrl/pinctrl-generic.c
@@ -8,6 +8,7 @@
 #include <dm/device_compat.h>
 #include <linux/compat.h>
 #include <dm/pinctrl.h>
+#include <linux/string.h>
 
 /**
  * pinctrl_pin_name_to_selector() - return the pin selector for a pin
diff --git a/drivers/pinctrl/pinctrl-sandbox.c b/drivers/pinctrl/pinctrl-sandbox.c
index ac0119d1988b..b33122946838 100644
--- a/drivers/pinctrl/pinctrl-sandbox.c
+++ b/drivers/pinctrl/pinctrl-sandbox.c
@@ -10,6 +10,7 @@
 #include <log.h>
 #include <dm/pinctrl.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 
 static const char * const sandbox_pins[] = {
 	"SCL",
diff --git a/drivers/pinctrl/pinctrl-stmfx.c b/drivers/pinctrl/pinctrl-stmfx.c
index c2ea82770e63..2c437c25f69e 100644
--- a/drivers/pinctrl/pinctrl-stmfx.c
+++ b/drivers/pinctrl/pinctrl-stmfx.c
@@ -17,6 +17,7 @@
 #include <linux/bitfield.h>
 #include <linux/bitops.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <power/regulator.h>
 
 /* STMFX pins = GPIO[15:0] + aGPIO[7:0] */
diff --git a/drivers/pinctrl/rockchip/pinctrl-rockchip-core.c b/drivers/pinctrl/rockchip/pinctrl-rockchip-core.c
index 8abad950431c..16efb09b57f9 100644
--- a/drivers/pinctrl/rockchip/pinctrl-rockchip-core.c
+++ b/drivers/pinctrl/rockchip/pinctrl-rockchip-core.c
@@ -13,6 +13,7 @@
 #include <fdtdec.h>
 #include <linux/bitops.h>
 #include <linux/libfdt.h>
+#include <linux/string.h>
 
 #include "pinctrl-rockchip.h"
 
diff --git a/drivers/power/domain/imx8-power-domain-legacy.c b/drivers/power/domain/imx8-power-domain-legacy.c
index 961382f33e1c..980b946fca1e 100644
--- a/drivers/power/domain/imx8-power-domain-legacy.c
+++ b/drivers/power/domain/imx8-power-domain-legacy.c
@@ -15,6 +15,7 @@
 #include <dm/device.h>
 #include <dm/uclass-internal.h>
 #include <asm/arch/sci/sci.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/power/pmic/i2c_pmic_emul.c b/drivers/power/pmic/i2c_pmic_emul.c
index 83d3c292044d..4e72e966cfe8 100644
--- a/drivers/power/pmic/i2c_pmic_emul.c
+++ b/drivers/power/pmic/i2c_pmic_emul.c
@@ -11,6 +11,7 @@
 #include <log.h>
 #include <malloc.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <power/pmic.h>
 #include <power/sandbox_pmic.h>
 
diff --git a/drivers/power/pmic/palmas.c b/drivers/power/pmic/palmas.c
index eb83c88d5641..88f88e0014ca 100644
--- a/drivers/power/pmic/palmas.c
+++ b/drivers/power/pmic/palmas.c
@@ -11,6 +11,7 @@
 #include <i2c.h>
 #include <log.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <power/pmic.h>
 #include <power/regulator.h>
 #include <power/palmas.h>
diff --git a/drivers/power/pmic/pmic-uclass.c b/drivers/power/pmic/pmic-uclass.c
index 7770171917d7..a83131e17365 100644
--- a/drivers/power/pmic/pmic-uclass.c
+++ b/drivers/power/pmic/pmic-uclass.c
@@ -13,6 +13,7 @@
 #include <dm/lists.h>
 #include <dm/device-internal.h>
 #include <dm/uclass-internal.h>
+#include <linux/string.h>
 #include <power/pmic.h>
 #include <linux/ctype.h>
 
diff --git a/drivers/power/power_core.c b/drivers/power/power_core.c
index eeed8e24a90b..9caa4d72b6de 100644
--- a/drivers/power/power_core.c
+++ b/drivers/power/power_core.c
@@ -13,6 +13,7 @@
 #include <command.h>
 #include <log.h>
 #include <malloc.h>
+#include <linux/string.h>
 #include <linux/types.h>
 #include <linux/list.h>
 #include <power/pmic.h>
diff --git a/drivers/power/power_i2c.c b/drivers/power/power_i2c.c
index 5a0455e1195a..41d7113251d9 100644
--- a/drivers/power/power_i2c.c
+++ b/drivers/power/power_i2c.c
@@ -12,6 +12,7 @@
 
 #include <common.h>
 #include <log.h>
+#include <linux/string.h>
 #include <linux/types.h>
 #include <power/pmic.h>
 #include <i2c.h>
diff --git a/drivers/power/regulator/bd71837.c b/drivers/power/regulator/bd71837.c
index 3499bd2c56b2..8c7f71be3e81 100644
--- a/drivers/power/regulator/bd71837.c
+++ b/drivers/power/regulator/bd71837.c
@@ -10,6 +10,7 @@
 #include <log.h>
 #include <linux/bitops.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <power/bd71837.h>
 #include <power/pmic.h>
 #include <power/regulator.h>
diff --git a/drivers/power/regulator/da9063.c b/drivers/power/regulator/da9063.c
index 5055e39cb797..3e5d2596561f 100644
--- a/drivers/power/regulator/da9063.c
+++ b/drivers/power/regulator/da9063.c
@@ -7,6 +7,7 @@
 #include <common.h>
 #include <dm.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 #include <power/da9063_pmic.h>
 #include <power/pmic.h>
 #include <power/regulator.h>
diff --git a/drivers/power/regulator/palmas_regulator.c b/drivers/power/regulator/palmas_regulator.c
index 78909f701894..9bb8c7ff32a9 100644
--- a/drivers/power/regulator/palmas_regulator.c
+++ b/drivers/power/regulator/palmas_regulator.c
@@ -11,6 +11,7 @@
 #include <errno.h>
 #include <dm.h>
 #include <i2c.h>
+#include <linux/string.h>
 #include <power/pmic.h>
 #include <power/regulator.h>
 #include <power/palmas.h>
diff --git a/drivers/power/regulator/pfuze100.c b/drivers/power/regulator/pfuze100.c
index b56843046f27..15f34b915f20 100644
--- a/drivers/power/regulator/pfuze100.c
+++ b/drivers/power/regulator/pfuze100.c
@@ -11,6 +11,7 @@
 #include <dm.h>
 #include <i2c.h>
 #include <log.h>
+#include <linux/string.h>
 #include <power/pmic.h>
 #include <power/regulator.h>
 #include <power/pfuze100_pmic.h>
diff --git a/drivers/power/regulator/regulator-uclass.c b/drivers/power/regulator/regulator-uclass.c
index da679a572c23..c20c42b29d03 100644
--- a/drivers/power/regulator/regulator-uclass.c
+++ b/drivers/power/regulator/regulator-uclass.c
@@ -10,6 +10,7 @@
 #include <log.h>
 #include <dm/uclass-internal.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <power/pmic.h>
 #include <power/regulator.h>
 
diff --git a/drivers/qe/qe.c b/drivers/qe/qe.c
index 79dcbf049a05..cfcc247389af 100644
--- a/drivers/qe/qe.c
+++ b/drivers/qe/qe.c
@@ -15,6 +15,7 @@
 #include <linux/immap_qe.h>
 #include <fsl_qe.h>
 #include <mmc.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 
 #ifdef CONFIG_ARCH_LS1021A
diff --git a/drivers/qe/uccf.c b/drivers/qe/uccf.c
index 9beb5d90aca6..4d5840e77b1b 100644
--- a/drivers/qe/uccf.c
+++ b/drivers/qe/uccf.c
@@ -11,6 +11,7 @@
 #include <linux/errno.h>
 #include <asm/io.h>
 #include <linux/immap_qe.h>
+#include <linux/string.h>
 #include "uccf.h"
 #include <fsl_qe.h>
 
diff --git a/drivers/qe/uec.c b/drivers/qe/uec.c
index 01434543873b..409d806dd8f3 100644
--- a/drivers/qe/uec.c
+++ b/drivers/qe/uec.c
@@ -13,6 +13,7 @@
 #include <linux/errno.h>
 #include <asm/io.h>
 #include <linux/immap_qe.h>
+#include <linux/string.h>
 #include "uccf.h"
 #include "uec.h"
 #include "uec_phy.h"
diff --git a/drivers/qe/uec_phy.c b/drivers/qe/uec_phy.c
index 69c22dd5e261..69a520d4baf9 100644
--- a/drivers/qe/uec_phy.c
+++ b/drivers/qe/uec_phy.c
@@ -16,6 +16,7 @@
 #include <linux/errno.h>
 #include <linux/immap_qe.h>
 #include <asm/io.h>
+#include <linux/string.h>
 #include "uccf.h"
 #include "uec.h"
 #include "uec_phy.h"
diff --git a/drivers/ram/imxrt_sdram.c b/drivers/ram/imxrt_sdram.c
index 8be15340b94c..dcf3590c6c39 100644
--- a/drivers/ram/imxrt_sdram.c
+++ b/drivers/ram/imxrt_sdram.c
@@ -15,6 +15,7 @@
 #include <linux/delay.h>
 #include <linux/err.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 /* SDRAM Command Code */
 #define SD_CC_ARD		0x0     /* Master Bus (AXI) command - Read */
diff --git a/drivers/ram/rockchip/sdram_rk3188.c b/drivers/ram/rockchip/sdram_rk3188.c
index 06f9eba1a5b8..d3ed9bcc29e2 100644
--- a/drivers/ram/rockchip/sdram_rk3188.c
+++ b/drivers/ram/rockchip/sdram_rk3188.c
@@ -27,6 +27,7 @@
 #include <asm/arch-rockchip/sdram_rk3288.h>
 #include <linux/delay.h>
 #include <linux/err.h>
+#include <linux/string.h>
 
 struct chan_info {
 	struct rk3288_ddr_pctl *pctl;
diff --git a/drivers/ram/rockchip/sdram_rk322x.c b/drivers/ram/rockchip/sdram_rk322x.c
index 4a24854a3df8..4154f0c2642f 100644
--- a/drivers/ram/rockchip/sdram_rk322x.c
+++ b/drivers/ram/rockchip/sdram_rk322x.c
@@ -23,6 +23,7 @@
 #include <asm/types.h>
 #include <linux/delay.h>
 #include <linux/err.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 struct chan_info {
diff --git a/drivers/ram/rockchip/sdram_rk3288.c b/drivers/ram/rockchip/sdram_rk3288.c
index 26e8d059b5d8..01f030e01a16 100644
--- a/drivers/ram/rockchip/sdram_rk3288.c
+++ b/drivers/ram/rockchip/sdram_rk3288.c
@@ -27,6 +27,7 @@
 #include <asm/arch-rockchip/sdram_rk3288.h>
 #include <linux/delay.h>
 #include <linux/err.h>
+#include <linux/string.h>
 #include <power/regulator.h>
 #include <power/rk8xx_pmic.h>
 
diff --git a/drivers/ram/rockchip/sdram_rk3328.c b/drivers/ram/rockchip/sdram_rk3328.c
index 98c7feb6cfab..586e82e6ebc0 100644
--- a/drivers/ram/rockchip/sdram_rk3328.c
+++ b/drivers/ram/rockchip/sdram_rk3328.c
@@ -20,6 +20,7 @@
 #include <asm/arch-rockchip/sdram_rk3328.h>
 #include <asm/arch-rockchip/uart.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 struct dram_info {
 #ifdef CONFIG_TPL_BUILD
diff --git a/drivers/ram/stm32_sdram.c b/drivers/ram/stm32_sdram.c
index de5a9bc05697..1b8cb5949660 100644
--- a/drivers/ram/stm32_sdram.c
+++ b/drivers/ram/stm32_sdram.c
@@ -15,6 +15,7 @@
 #include <linux/bitops.h>
 #include <linux/delay.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #define MEM_MODE_MASK	GENMASK(2, 0)
 #define SWP_FMC_OFFSET 10
diff --git a/drivers/ram/stm32mp1/stm32mp1_ddr.c b/drivers/ram/stm32mp1/stm32mp1_ddr.c
index 8b59903e6bf9..350681bcfe54 100644
--- a/drivers/ram/stm32mp1/stm32mp1_ddr.c
+++ b/drivers/ram/stm32mp1/stm32mp1_ddr.c
@@ -15,6 +15,7 @@
 #include <linux/delay.h>
 #include <linux/iopoll.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include "stm32mp1_ddr.h"
 #include "stm32mp1_ddr_regs.h"
 
diff --git a/drivers/ram/stm32mp1/stm32mp1_interactive.c b/drivers/ram/stm32mp1/stm32mp1_interactive.c
index d3b8b3b5afa5..398018e4c253 100644
--- a/drivers/ram/stm32mp1/stm32mp1_interactive.c
+++ b/drivers/ram/stm32mp1/stm32mp1_interactive.c
@@ -14,6 +14,7 @@
 #include <reset.h>
 #include <time.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 #include "stm32mp1_ddr.h"
 #include "stm32mp1_tests.h"
 
diff --git a/drivers/ram/stm32mp1/stm32mp1_ram.c b/drivers/ram/stm32mp1/stm32mp1_ram.c
index 63333a1b1b69..85e01ffd098d 100644
--- a/drivers/ram/stm32mp1/stm32mp1_ram.c
+++ b/drivers/ram/stm32mp1/stm32mp1_ram.c
@@ -13,6 +13,7 @@
 #include <syscon.h>
 #include <asm/io.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include "stm32mp1_ddr.h"
 
 static const char *const clkname[] = {
diff --git a/drivers/ram/stm32mp1/stm32mp1_tests.c b/drivers/ram/stm32mp1/stm32mp1_tests.c
index b0c510ad5e99..a5433ac14024 100644
--- a/drivers/ram/stm32mp1/stm32mp1_tests.c
+++ b/drivers/ram/stm32mp1/stm32mp1_tests.c
@@ -11,6 +11,7 @@
 #include <asm/global_data.h>
 #include <asm/io.h>
 #include <linux/log2.h>
+#include <linux/string.h>
 #include "stm32mp1_tests.h"
 
 #define ADDR_INVALID	0xFFFFFFFF
diff --git a/drivers/ram/stm32mp1/stm32mp1_tuning.c b/drivers/ram/stm32mp1/stm32mp1_tuning.c
index 2fc8e32847c2..222777ad3cf3 100644
--- a/drivers/ram/stm32mp1/stm32mp1_tuning.c
+++ b/drivers/ram/stm32mp1/stm32mp1_tuning.c
@@ -14,6 +14,7 @@
 #include <linux/delay.h>
 #include <linux/iopoll.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include "stm32mp1_ddr_regs.h"
 #include "stm32mp1_ddr.h"
diff --git a/drivers/remoteproc/k3_system_controller.c b/drivers/remoteproc/k3_system_controller.c
index 54209fccb3e2..44271c5baf8e 100644
--- a/drivers/remoteproc/k3_system_controller.c
+++ b/drivers/remoteproc/k3_system_controller.c
@@ -14,6 +14,7 @@
 #include <mailbox.h>
 #include <dm/device_compat.h>
 #include <linux/soc/ti/k3-sec-proxy.h>
+#include <linux/string.h>
 
 #define K3_MSG_R5_TO_M3_M3FW			0x8105
 #define K3_MSG_M3_TO_R5_CERT_RESULT		0x8805
diff --git a/drivers/remoteproc/rproc-elf-loader.c b/drivers/remoteproc/rproc-elf-loader.c
index 1e309c0f4f90..45331107353b 100644
--- a/drivers/remoteproc/rproc-elf-loader.c
+++ b/drivers/remoteproc/rproc-elf-loader.c
@@ -12,6 +12,7 @@
 #include <dm/device_compat.h>
 #include <linux/compat.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 /**
  * struct resource_table - firmware resource table header
diff --git a/drivers/remoteproc/rproc-uclass.c b/drivers/remoteproc/rproc-uclass.c
index 0c2b601c4721..1ed194aa034d 100644
--- a/drivers/remoteproc/rproc-uclass.c
+++ b/drivers/remoteproc/rproc-uclass.c
@@ -17,6 +17,7 @@
 #include <dm/uclass.h>
 #include <dm/uclass-internal.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/remoteproc/ti_k3_dsp_rproc.c b/drivers/remoteproc/ti_k3_dsp_rproc.c
index 3361555c5367..cbebfacb48c1 100644
--- a/drivers/remoteproc/ti_k3_dsp_rproc.c
+++ b/drivers/remoteproc/ti_k3_dsp_rproc.c
@@ -21,6 +21,7 @@
 #include <linux/err.h>
 #include <linux/sizes.h>
 #include <linux/soc/ti/ti_sci_protocol.h>
+#include <linux/string.h>
 #include "ti_sci_proc.h"
 
 #define KEYSTONE_RPROC_LOCAL_ADDRESS_MASK	(SZ_16M - 1)
diff --git a/drivers/remoteproc/ti_k3_r5f_rproc.c b/drivers/remoteproc/ti_k3_r5f_rproc.c
index 1a7f1f8a005f..c3018d74a47e 100644
--- a/drivers/remoteproc/ti_k3_r5f_rproc.c
+++ b/drivers/remoteproc/ti_k3_r5f_rproc.c
@@ -19,6 +19,7 @@
 #include <linux/err.h>
 #include <linux/kernel.h>
 #include <linux/soc/ti/ti_sci_protocol.h>
+#include <linux/string.h>
 #include "ti_sci_proc.h"
 
 /*
diff --git a/drivers/remoteproc/ti_power_proc.c b/drivers/remoteproc/ti_power_proc.c
index 86fa6457ede7..0d78ec439d0e 100644
--- a/drivers/remoteproc/ti_power_proc.c
+++ b/drivers/remoteproc/ti_power_proc.c
@@ -12,6 +12,7 @@
 #include <remoteproc.h>
 #include <asm/global_data.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <mach/psc_defs.h>
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/drivers/rng/meson-rng.c b/drivers/rng/meson-rng.c
index 4b81a623535d..448d4537b05d 100644
--- a/drivers/rng/meson-rng.c
+++ b/drivers/rng/meson-rng.c
@@ -10,6 +10,7 @@
 #include <dm.h>
 #include <rng.h>
 #include <asm/io.h>
+#include <linux/string.h>
 
 struct meson_rng_platdata {
 	fdt_addr_t base;
diff --git a/drivers/rng/stm32mp1_rng.c b/drivers/rng/stm32mp1_rng.c
index 7ef7ff9756d4..4354edd4a1bd 100644
--- a/drivers/rng/stm32mp1_rng.c
+++ b/drivers/rng/stm32mp1_rng.c
@@ -11,6 +11,7 @@
 #include <rng.h>
 #include <linux/bitops.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include <asm/io.h>
 #include <linux/iopoll.h>
diff --git a/drivers/rtc/ds1302.c b/drivers/rtc/ds1302.c
index 189607c3e02a..21655085d1b7 100644
--- a/drivers/rtc/ds1302.c
+++ b/drivers/rtc/ds1302.c
@@ -9,6 +9,7 @@
 #include <command.h>
 #include <rtc.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 /* GPP Pins */
 #define DATA		0x200
diff --git a/drivers/rtc/i2c_rtc_emul.c b/drivers/rtc/i2c_rtc_emul.c
index 7f78ff83cb07..a78dc78cfcc4 100644
--- a/drivers/rtc/i2c_rtc_emul.c
+++ b/drivers/rtc/i2c_rtc_emul.c
@@ -21,6 +21,7 @@
 #include <rtc.h>
 #include <asm/rtc.h>
 #include <asm/test.h>
+#include <linux/string.h>
 
 #ifdef DEBUG
 #define debug_buffer print_buffer
diff --git a/drivers/rtc/rs5c372.c b/drivers/rtc/rs5c372.c
index 97ec001aef56..64ff8c89d40e 100644
--- a/drivers/rtc/rs5c372.c
+++ b/drivers/rtc/rs5c372.c
@@ -23,6 +23,7 @@
 #include <command.h>
 #include <rtc.h>
 #include <i2c.h>
+#include <linux/string.h>
 
 /*
  * Reads are always done starting with register 15, which requires some
diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
index 0ab1d441f40c..2492c3394b97 100644
--- a/drivers/scsi/scsi.c
+++ b/drivers/scsi/scsi.c
@@ -15,6 +15,7 @@
 #include <scsi.h>
 #include <dm/device-internal.h>
 #include <dm/uclass-internal.h>
+#include <linux/string.h>
 
 #if !defined(CONFIG_DM_SCSI)
 # ifdef CONFIG_SCSI_DEV_LIST
diff --git a/drivers/serial/sandbox.c b/drivers/serial/sandbox.c
index 8a7f171e0416..01c924675af9 100644
--- a/drivers/serial/sandbox.c
+++ b/drivers/serial/sandbox.c
@@ -20,6 +20,7 @@
 #include <asm/global_data.h>
 #include <linux/compiler.h>
 #include <asm/state.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/serial/serial-uclass.c b/drivers/serial/serial-uclass.c
index 3dbbd2a79380..a21aee247415 100644
--- a/drivers/serial/serial-uclass.c
+++ b/drivers/serial/serial-uclass.c
@@ -17,6 +17,7 @@
 #include <dm/device-internal.h>
 #include <dm/of_access.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/serial/serial.c b/drivers/serial/serial.c
index f428ddb2ed5b..2f7d65f72d16 100644
--- a/drivers/serial/serial.c
+++ b/drivers/serial/serial.c
@@ -14,6 +14,7 @@
 #include <linux/compiler.h>
 #include <errno.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/serial/usbtty.c b/drivers/serial/usbtty.c
index f1c1a260da51..f0b64809560e 100644
--- a/drivers/serial/usbtty.c
+++ b/drivers/serial/usbtty.c
@@ -14,6 +14,7 @@
 #include <serial.h>
 #include <stdio_dev.h>
 #include <asm/unaligned.h>
+#include <linux/string.h>
 #include "usbtty.h"
 #include "usb_cdc_acm.h"
 #include "usbdescriptors.h"
diff --git a/drivers/smem/msm_smem.c b/drivers/smem/msm_smem.c
index bf1696e85e01..09a1268e2766 100644
--- a/drivers/smem/msm_smem.c
+++ b/drivers/smem/msm_smem.c
@@ -19,6 +19,7 @@
 #include <linux/ioport.h>
 #include <linux/io.h>
 #include <smem.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/soc/soc-uclass.c b/drivers/soc/soc-uclass.c
index c32d647864f2..d22773e478bf 100644
--- a/drivers/soc/soc-uclass.c
+++ b/drivers/soc/soc-uclass.c
@@ -10,6 +10,7 @@
 #include <errno.h>
 #include <dm/lists.h>
 #include <dm/root.h>
+#include <linux/string.h>
 
 int soc_get(struct udevice **devp)
 {
diff --git a/drivers/soc/ti/k3-navss-ringacc.c b/drivers/soc/ti/k3-navss-ringacc.c
index fb04da2717d5..f4a0272f3ae2 100644
--- a/drivers/soc/ti/k3-navss-ringacc.c
+++ b/drivers/soc/ti/k3-navss-ringacc.c
@@ -24,6 +24,7 @@
 #include <linux/printk.h>
 #include <linux/soc/ti/k3-navss-ringacc.h>
 #include <linux/soc/ti/ti_sci_protocol.h>
+#include <linux/string.h>
 
 #define set_bit(bit, bitmap)	__set_bit(bit, bitmap)
 #define clear_bit(bit, bitmap)	__clear_bit(bit, bitmap)
diff --git a/drivers/spi/atcspi200_spi.c b/drivers/spi/atcspi200_spi.c
index 9e7d40d0a81e..7ba208baf2e7 100644
--- a/drivers/spi/atcspi200_spi.c
+++ b/drivers/spi/atcspi200_spi.c
@@ -14,6 +14,7 @@
 #include <asm/global_data.h>
 #include <asm/io.h>
 #include <dm.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/spi/bcmstb_spi.c b/drivers/spi/bcmstb_spi.c
index f400a0f57323..40364fbf57c1 100644
--- a/drivers/spi/bcmstb_spi.c
+++ b/drivers/spi/bcmstb_spi.c
@@ -18,6 +18,7 @@
 #include <malloc.h>
 #include <spi.h>
 #include <time.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/spi/cadence_qspi_apb.c b/drivers/spi/cadence_qspi_apb.c
index 77ec7c6ecda4..f1f510ef65f6 100644
--- a/drivers/spi/cadence_qspi_apb.c
+++ b/drivers/spi/cadence_qspi_apb.c
@@ -37,6 +37,7 @@
 #include <spi.h>
 #include <spi-mem.h>
 #include <malloc.h>
+#include <linux/string.h>
 #include "cadence_qspi.h"
 
 #define CQSPI_REG_POLL_US			1 /* 1us */
diff --git a/drivers/spi/cf_spi.c b/drivers/spi/cf_spi.c
index 242dc9d89095..0f39fe843989 100644
--- a/drivers/spi/cf_spi.c
+++ b/drivers/spi/cf_spi.c
@@ -22,6 +22,7 @@
 #include <malloc.h>
 #include <asm/coldfire/dspi.h>
 #include <asm/io.h>
+#include <linux/string.h>
 
 struct coldfire_spi_priv {
 	struct dspi *regs;
diff --git a/drivers/spi/fsl_espi.c b/drivers/spi/fsl_espi.c
index 3dd98aadbaa7..35f8a58da162 100644
--- a/drivers/spi/fsl_espi.c
+++ b/drivers/spi/fsl_espi.c
@@ -13,6 +13,7 @@
 #include <asm/global_data.h>
 #include <linux/bitops.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include <malloc.h>
 #include <spi.h>
diff --git a/drivers/spi/fsl_qspi.c b/drivers/spi/fsl_qspi.c
index 84b4714c0507..2923fb5fb3d8 100644
--- a/drivers/spi/fsl_qspi.c
+++ b/drivers/spi/fsl_qspi.c
@@ -38,6 +38,7 @@
 #include <linux/err.h>
 #include <spi.h>
 #include <spi-mem.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/spi/ich.c b/drivers/spi/ich.c
index 224c2b07919a..308ace8a5802 100644
--- a/drivers/spi/ich.c
+++ b/drivers/spi/ich.c
@@ -30,6 +30,7 @@
 #include <linux/bitops.h>
 #include <linux/delay.h>
 #include <linux/sizes.h>
+#include <linux/string.h>
 
 #include "ich.h"
 
diff --git a/drivers/spi/meson_spifc.c b/drivers/spi/meson_spifc.c
index 2cdc0186825d..5bc99370a101 100644
--- a/drivers/spi/meson_spifc.c
+++ b/drivers/spi/meson_spifc.c
@@ -17,6 +17,7 @@
 #include <asm/io.h>
 #include <linux/bitfield.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 
 /* register map */
 #define REG_CMD			0x00
diff --git a/drivers/spi/mtk_snfi_spi.c b/drivers/spi/mtk_snfi_spi.c
index c30c8f4ff6d3..7f5d78e357e9 100644
--- a/drivers/spi/mtk_snfi_spi.c
+++ b/drivers/spi/mtk_snfi_spi.c
@@ -17,6 +17,7 @@
 #include <linux/bitops.h>
 #include <linux/io.h>
 #include <linux/iopoll.h>
+#include <linux/string.h>
 
 #define SNFI_MAC_CTL			0x500
 #define MAC_XIO_SEL			BIT(4)
diff --git a/drivers/spi/mxc_spi.c b/drivers/spi/mxc_spi.c
index cb1abf14416e..a2dbd8a96de0 100644
--- a/drivers/spi/mxc_spi.c
+++ b/drivers/spi/mxc_spi.c
@@ -20,6 +20,7 @@
 #include <asm/arch/clock.h>
 #include <asm/mach-imx/spi.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/spi/mxs_spi.c b/drivers/spi/mxs_spi.c
index fb0af02be087..8d7bb35d02f9 100644
--- a/drivers/spi/mxs_spi.c
+++ b/drivers/spi/mxs_spi.c
@@ -29,6 +29,7 @@
 #include <asm/arch/imx-regs.h>
 #include <asm/arch/sys_proto.h>
 #include <asm/mach-imx/dma.h>
+#include <linux/string.h>
 
 #define	MXS_SPI_MAX_TIMEOUT	1000000
 #define	MXS_SPI_PORT_OFFSET	0x2000
diff --git a/drivers/spi/nxp_fspi.c b/drivers/spi/nxp_fspi.c
index c507437f2e7d..b4f928741f34 100644
--- a/drivers/spi/nxp_fspi.c
+++ b/drivers/spi/nxp_fspi.c
@@ -46,6 +46,7 @@
 #include <linux/iopoll.h>
 #include <linux/bug.h>
 #include <linux/err.h>
+#include <linux/string.h>
 
 /*
  * The driver only uses one single LUT entry, that is updated on
diff --git a/drivers/spi/renesas_rpc_spi.c b/drivers/spi/renesas_rpc_spi.c
index 72a9e464776f..1ceb7294bb63 100644
--- a/drivers/spi/renesas_rpc_spi.c
+++ b/drivers/spi/renesas_rpc_spi.c
@@ -18,6 +18,7 @@
 #include <linux/errno.h>
 #include <spi.h>
 #include <wait_bit.h>
+#include <linux/string.h>
 
 #define RPC_CMNCR		0x0000	/* R/W */
 #define RPC_CMNCR_MD		BIT(31)
diff --git a/drivers/spi/spi-mem-nodm.c b/drivers/spi/spi-mem-nodm.c
index 765f05fe5429..841eefc12ce1 100644
--- a/drivers/spi/spi-mem-nodm.c
+++ b/drivers/spi/spi-mem-nodm.c
@@ -7,6 +7,7 @@
 #include <malloc.h>
 #include <spi.h>
 #include <spi-mem.h>
+#include <linux/string.h>
 
 int spi_mem_exec_op(struct spi_slave *slave,
 		    const struct spi_mem_op *op)
diff --git a/drivers/spi/spi-mem.c b/drivers/spi/spi-mem.c
index c095ae9505a2..01e9b6928cfc 100644
--- a/drivers/spi/spi-mem.c
+++ b/drivers/spi/spi-mem.c
@@ -21,6 +21,7 @@
 #include <spi.h>
 #include <spi-mem.h>
 #include <dm/device_compat.h>
+#include <linux/string.h>
 #endif
 
 #ifndef __UBOOT__
diff --git a/drivers/spi/spi-sifive.c b/drivers/spi/spi-sifive.c
index c7345d904280..a11728739866 100644
--- a/drivers/spi/spi-sifive.c
+++ b/drivers/spi/spi-sifive.c
@@ -17,6 +17,7 @@
 #include <linux/bitops.h>
 #include <linux/log2.h>
 #include <clk.h>
+#include <linux/string.h>
 
 #define SIFIVE_SPI_MAX_CS		32
 
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index 22910de0dd93..426d30c6b21e 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -7,6 +7,7 @@
 #include <fdtdec.h>
 #include <malloc.h>
 #include <spi.h>
+#include <linux/string.h>
 
 int spi_set_wordlen(struct spi_slave *slave, unsigned int wordlen)
 {
diff --git a/drivers/spi/tegra210_qspi.c b/drivers/spi/tegra210_qspi.c
index 293b16c6fe93..90ac21f8ad9b 100644
--- a/drivers/spi/tegra210_qspi.c
+++ b/drivers/spi/tegra210_qspi.c
@@ -18,6 +18,7 @@
 #include <fdtdec.h>
 #include <linux/bitops.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "tegra_spi.h"
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/drivers/spi/zynq_qspi.c b/drivers/spi/zynq_qspi.c
index af130d4418b5..7607c5102490 100644
--- a/drivers/spi/zynq_qspi.c
+++ b/drivers/spi/zynq_qspi.c
@@ -15,6 +15,7 @@
 #include <asm/global_data.h>
 #include <asm/io.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/spi/zynqmp_gqspi.c b/drivers/spi/zynqmp_gqspi.c
index cd2c7d40b86e..151618a99f41 100644
--- a/drivers/spi/zynqmp_gqspi.c
+++ b/drivers/spi/zynqmp_gqspi.c
@@ -22,6 +22,7 @@
 #include <dm/device_compat.h>
 #include <linux/bitops.h>
 #include <linux/err.h>
+#include <linux/string.h>
 
 #define GQSPI_GFIFO_STRT_MODE_MASK	BIT(29)
 #define GQSPI_CONFIG_MODE_EN_MASK	(3 << 30)
diff --git a/drivers/sysreset/sysreset_sandbox.c b/drivers/sysreset/sysreset_sandbox.c
index 69c22a70008f..cb90266ab0cb 100644
--- a/drivers/sysreset/sysreset_sandbox.c
+++ b/drivers/sysreset/sysreset_sandbox.c
@@ -10,6 +10,7 @@
 #include <sysreset.h>
 #include <asm/state.h>
 #include <asm/test.h>
+#include <linux/string.h>
 
 static int sandbox_warm_sysreset_request(struct udevice *dev,
 					 enum sysreset_t type)
diff --git a/drivers/tee/broadcom/chimp_optee.c b/drivers/tee/broadcom/chimp_optee.c
index 37f9b094f767..91ebc17c0361 100644
--- a/drivers/tee/broadcom/chimp_optee.c
+++ b/drivers/tee/broadcom/chimp_optee.c
@@ -4,6 +4,7 @@
  */
 
 #include <common.h>
+#include <string.h>
 #include <tee.h>
 #include <broadcom/chimp.h>
 
diff --git a/drivers/tee/optee/core.c b/drivers/tee/optee/core.c
index 5260dab3ac0e..0fc7a0ec7f17 100644
--- a/drivers/tee/optee/core.c
+++ b/drivers/tee/optee/core.c
@@ -11,6 +11,7 @@
 #include <linux/arm-smccc.h>
 #include <linux/err.h>
 #include <linux/io.h>
+#include <linux/string.h>
 
 #include "optee_smc.h"
 #include "optee_msg.h"
diff --git a/drivers/tee/sandbox.c b/drivers/tee/sandbox.c
index 4b91e7db1bc6..2f174fa00f91 100644
--- a/drivers/tee/sandbox.c
+++ b/drivers/tee/sandbox.c
@@ -6,6 +6,7 @@
 #include <dm.h>
 #include <sandboxtee.h>
 #include <tee.h>
+#include <linux/string.h>
 #include <tee/optee_ta_avb.h>
 
 /*
diff --git a/drivers/tee/tee-uclass.c b/drivers/tee/tee-uclass.c
index 112e21688344..76de11c3fb84 100644
--- a/drivers/tee/tee-uclass.c
+++ b/drivers/tee/tee-uclass.c
@@ -10,6 +10,7 @@
 #include <tee.h>
 #include <dm/device-internal.h>
 #include <dm/uclass-internal.h>
+#include <linux/string.h>
 
 /**
  * struct tee_uclass_priv - information of a TEE, stored by the uclass
diff --git a/drivers/thermal/imx_scu_thermal.c b/drivers/thermal/imx_scu_thermal.c
index dc92e6b603e9..b3c823ffcb7b 100644
--- a/drivers/thermal/imx_scu_thermal.c
+++ b/drivers/thermal/imx_scu_thermal.c
@@ -15,6 +15,7 @@
 #include <asm/arch/sci/sci.h>
 #include <linux/delay.h>
 #include <linux/libfdt.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/thermal/imx_tmu.c b/drivers/thermal/imx_tmu.c
index d8acfef49252..b9bdec00c6d9 100644
--- a/drivers/thermal/imx_tmu.c
+++ b/drivers/thermal/imx_tmu.c
@@ -17,6 +17,7 @@
 #include <fuse.h>
 #include <malloc.h>
 #include <thermal.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/tpm/cr50_i2c.c b/drivers/tpm/cr50_i2c.c
index b0075d3bb48c..611dd534dc3a 100644
--- a/drivers/tpm/cr50_i2c.c
+++ b/drivers/tpm/cr50_i2c.c
@@ -20,6 +20,7 @@
 #include <asm/arch/iomap.h>
 #include <asm/arch/pm.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 enum {
 	TIMEOUT_INIT_MS		= 30000, /* Very long timeout for TPM init */
diff --git a/drivers/tpm/tpm-uclass.c b/drivers/tpm/tpm-uclass.c
index 01d7c2f47c15..61331726833a 100644
--- a/drivers/tpm/tpm-uclass.c
+++ b/drivers/tpm/tpm-uclass.c
@@ -9,6 +9,7 @@
 #include <log.h>
 #include <time.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <linux/unaligned/be_byteshift.h>
 #include <tpm-v1.h>
 #include <tpm-v2.h>
diff --git a/drivers/tpm/tpm2_ftpm_tee.c b/drivers/tpm/tpm2_ftpm_tee.c
index 3197e0ebcd3d..a7c94c7429bc 100644
--- a/drivers/tpm/tpm2_ftpm_tee.c
+++ b/drivers/tpm/tpm2_ftpm_tee.c
@@ -18,6 +18,7 @@
 #include <log.h>
 #include <tpm-v2.h>
 #include <tee.h>
+#include <linux/string.h>
 
 #include "tpm_tis.h"
 #include "tpm2_ftpm_tee.h"
diff --git a/drivers/tpm/tpm2_tis_sandbox.c b/drivers/tpm/tpm2_tis_sandbox.c
index 41a15bd49fb1..708d030f5ebf 100644
--- a/drivers/tpm/tpm2_tis_sandbox.c
+++ b/drivers/tpm/tpm2_tis_sandbox.c
@@ -10,6 +10,7 @@
 #include <asm/state.h>
 #include <asm/unaligned.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 
 /* Hierarchies */
diff --git a/drivers/tpm/tpm2_tis_spi.c b/drivers/tpm/tpm2_tis_spi.c
index 195d8be8bf31..52fb3a9235f4 100644
--- a/drivers/tpm/tpm2_tis_spi.c
+++ b/drivers/tpm/tpm2_tis_spi.c
@@ -25,6 +25,7 @@
 #include <linux/delay.h>
 #include <linux/errno.h>
 #include <linux/compiler.h>
+#include <linux/string.h>
 #include <linux/types.h>
 #include <linux/unaligned/be_byteshift.h>
 #include <asm-generic/gpio.h>
diff --git a/drivers/tpm/tpm_atmel_twi.c b/drivers/tpm/tpm_atmel_twi.c
index 9444c1b48137..ade72c056380 100644
--- a/drivers/tpm/tpm_atmel_twi.c
+++ b/drivers/tpm/tpm_atmel_twi.c
@@ -13,6 +13,7 @@
 #include <i2c.h>
 #include <asm/unaligned.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include "tpm_internal.h"
 
diff --git a/drivers/tpm/tpm_tis_infineon.c b/drivers/tpm/tpm_tis_infineon.c
index fe832d413293..e8391eaa1e6d 100644
--- a/drivers/tpm/tpm_tis_infineon.c
+++ b/drivers/tpm/tpm_tis_infineon.c
@@ -30,6 +30,7 @@
 #include <linux/errno.h>
 #include <linux/compiler.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <linux/types.h>
 #include <linux/unaligned/be_byteshift.h>
 
diff --git a/drivers/tpm/tpm_tis_lpc.c b/drivers/tpm/tpm_tis_lpc.c
index 2dd374cf77d1..8929b269ddf1 100644
--- a/drivers/tpm/tpm_tis_lpc.c
+++ b/drivers/tpm/tpm_tis_lpc.c
@@ -19,6 +19,7 @@
 #include <tpm-v1.h>
 #include <asm/io.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #define PREFIX "lpc_tpm: "
 
diff --git a/drivers/tpm/tpm_tis_sandbox.c b/drivers/tpm/tpm_tis_sandbox.c
index f35d69204428..d923e9723ae5 100644
--- a/drivers/tpm/tpm_tis_sandbox.c
+++ b/drivers/tpm/tpm_tis_sandbox.c
@@ -9,6 +9,7 @@
 #include <tpm-v1.h>
 #include <asm/state.h>
 #include <asm/unaligned.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 
 /* TPM NVRAM location indices. */
diff --git a/drivers/tpm/tpm_tis_st33zp24_i2c.c b/drivers/tpm/tpm_tis_st33zp24_i2c.c
index 60af8385b5d7..f648ea406d75 100644
--- a/drivers/tpm/tpm_tis_st33zp24_i2c.c
+++ b/drivers/tpm/tpm_tis_st33zp24_i2c.c
@@ -21,6 +21,7 @@
 #include <tpm-v1.h>
 #include <errno.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <linux/types.h>
 #include <asm/unaligned.h>
 
diff --git a/drivers/tpm/tpm_tis_st33zp24_spi.c b/drivers/tpm/tpm_tis_st33zp24_spi.c
index edd7d7840b96..5c3ce1372444 100644
--- a/drivers/tpm/tpm_tis_st33zp24_spi.c
+++ b/drivers/tpm/tpm_tis_st33zp24_spi.c
@@ -21,6 +21,7 @@
 #include <tpm-v1.h>
 #include <errno.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <linux/types.h>
 #include <asm/unaligned.h>
 #include <linux/compat.h>
diff --git a/drivers/ufs/ufs.c b/drivers/ufs/ufs.c
index 84d84835cfdf..ab17ecf7f131 100644
--- a/drivers/ufs/ufs.c
+++ b/drivers/ufs/ufs.c
@@ -24,6 +24,8 @@
 #include <asm/dma-mapping.h>
 #include <linux/bitops.h>
 #include <linux/delay.h>
+#include <linux/string.h>
+
 #include <linux/dma-mapping.h>
 
 #include "ufs.h"
diff --git a/drivers/usb/cdns3/gadget.c b/drivers/usb/cdns3/gadget.c
index de57029cf40a..d4aaa19dad62 100644
--- a/drivers/usb/cdns3/gadget.c
+++ b/drivers/usb/cdns3/gadget.c
@@ -63,6 +63,7 @@
 #include <linux/delay.h>
 #include <linux/err.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <linux/usb/gadget.h>
 #include <linux/compat.h>
 #include <linux/iopoll.h>
diff --git a/drivers/usb/common/common.c b/drivers/usb/common/common.c
index d27ab90d22d5..5a8d24da8218 100644
--- a/drivers/usb/common/common.c
+++ b/drivers/usb/common/common.c
@@ -10,6 +10,7 @@
 #include <dm.h>
 #include <asm/global_data.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <linux/usb/otg.h>
 #include <linux/usb/ch9.h>
 #include <linux/usb/phy.h>
diff --git a/drivers/usb/common/fsl-dt-fixup.c b/drivers/usb/common/fsl-dt-fixup.c
index 4d7a2acd8e54..5fc887c7cf70 100644
--- a/drivers/usb/common/fsl-dt-fixup.c
+++ b/drivers/usb/common/fsl-dt-fixup.c
@@ -15,6 +15,7 @@
 #include <fsl_errata.h>
 #include <fsl_usb.h>
 #include <fdt_support.h>
+#include <linux/string.h>
 
 #ifndef CONFIG_USB_MAX_CONTROLLER_COUNT
 #define CONFIG_USB_MAX_CONTROLLER_COUNT 1
diff --git a/drivers/usb/dwc3/ep0.c b/drivers/usb/dwc3/ep0.c
index 385bed3e34c4..f9420873bba1 100644
--- a/drivers/usb/dwc3/ep0.c
+++ b/drivers/usb/dwc3/ep0.c
@@ -18,6 +18,7 @@
 #include <linux/bug.h>
 #include <linux/kernel.h>
 #include <linux/list.h>
+#include <linux/string.h>
 
 #include <linux/usb/ch9.h>
 #include <linux/usb/gadget.h>
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 17d04b8b71f0..55324118ae7c 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -24,6 +24,7 @@
 #include <linux/dma-mapping.h>
 #include <linux/list.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include <linux/usb/ch9.h>
 #include <linux/usb/gadget.h>
diff --git a/drivers/usb/dwc3/linux-compat.h b/drivers/usb/dwc3/linux-compat.h
index 82793765bea2..92a3dc2850b0 100644
--- a/drivers/usb/dwc3/linux-compat.h
+++ b/drivers/usb/dwc3/linux-compat.h
@@ -11,6 +11,7 @@
 #ifndef __DWC3_LINUX_COMPAT__
 #define __DWC3_LINUX_COMPAT__
 
+#include <linux/string.h>
 #define dev_WARN(dev, format, arg...)	debug(format, ##arg)
 
 static inline size_t strlcat(char *dest, const char *src, size_t n)
diff --git a/drivers/usb/emul/sandbox_flash.c b/drivers/usb/emul/sandbox_flash.c
index 9c305f46e944..883f6ae6d39b 100644
--- a/drivers/usb/emul/sandbox_flash.c
+++ b/drivers/usb/emul/sandbox_flash.c
@@ -10,6 +10,7 @@
 #include <os.h>
 #include <scsi.h>
 #include <usb.h>
+#include <linux/string.h>
 
 /*
  * This driver emulates a flash stick using the UFI command specification and
diff --git a/drivers/usb/emul/sandbox_keyb.c b/drivers/usb/emul/sandbox_keyb.c
index f562fb7eca2f..9f4b40895629 100644
--- a/drivers/usb/emul/sandbox_keyb.c
+++ b/drivers/usb/emul/sandbox_keyb.c
@@ -10,6 +10,7 @@
 #include <os.h>
 #include <scsi.h>
 #include <usb.h>
+#include <linux/string.h>
 
 /*
  * This driver emulates a USB keyboard using the USB HID specification (boot
diff --git a/drivers/usb/emul/usb-emul-uclass.c b/drivers/usb/emul/usb-emul-uclass.c
index e3419e2fd479..9807cbed1651 100644
--- a/drivers/usb/emul/usb-emul-uclass.c
+++ b/drivers/usb/emul/usb-emul-uclass.c
@@ -9,6 +9,7 @@
 #include <log.h>
 #include <usb.h>
 #include <dm/device-internal.h>
+#include <linux/string.h>
 
 static int copy_to_unicode(char *buff, int length, const char *str)
 {
diff --git a/drivers/usb/eth/asix.c b/drivers/usb/eth/asix.c
index ac4a27fff204..3a0d8dadb35e 100644
--- a/drivers/usb/eth/asix.c
+++ b/drivers/usb/eth/asix.c
@@ -14,6 +14,7 @@
 #include <memalign.h>
 #include <linux/delay.h>
 #include <linux/mii.h>
+#include <linux/string.h>
 #include "usb_ether.h"
 
 /* ASIX AX8817X based USB 2.0 Ethernet Devices */
diff --git a/drivers/usb/eth/asix88179.c b/drivers/usb/eth/asix88179.c
index c142b8b19bfc..b4249d9ad51e 100644
--- a/drivers/usb/eth/asix88179.c
+++ b/drivers/usb/eth/asix88179.c
@@ -12,6 +12,7 @@
 #include <net.h>
 #include <linux/delay.h>
 #include <linux/mii.h>
+#include <linux/string.h>
 #include "usb_ether.h"
 #include <malloc.h>
 #include <memalign.h>
diff --git a/drivers/usb/eth/lan75xx.c b/drivers/usb/eth/lan75xx.c
index 46b92e8d68bd..7d828d75dc61 100644
--- a/drivers/usb/eth/lan75xx.c
+++ b/drivers/usb/eth/lan75xx.c
@@ -8,6 +8,7 @@
 #include <usb.h>
 #include <linux/bitops.h>
 #include <linux/mii.h>
+#include <linux/string.h>
 #include "usb_ether.h"
 #include "lan7x.h"
 
diff --git a/drivers/usb/eth/lan78xx.c b/drivers/usb/eth/lan78xx.c
index e34ad2603fbb..9a7a0d834a13 100644
--- a/drivers/usb/eth/lan78xx.c
+++ b/drivers/usb/eth/lan78xx.c
@@ -8,6 +8,7 @@
 #include <net.h>
 #include <usb.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 #include "usb_ether.h"
 #include "lan7x.h"
 
diff --git a/drivers/usb/eth/lan7x.c b/drivers/usb/eth/lan7x.c
index 0a283619ae53..b14836127835 100644
--- a/drivers/usb/eth/lan7x.c
+++ b/drivers/usb/eth/lan7x.c
@@ -12,6 +12,7 @@
 #include <usb.h>
 #include <linux/ethtool.h>
 #include <linux/mii.h>
+#include <linux/string.h>
 #include "usb_ether.h"
 #include "lan7x.h"
 
diff --git a/drivers/usb/eth/mcs7830.c b/drivers/usb/eth/mcs7830.c
index 02eef9b269d5..5cdd7a10e7c2 100644
--- a/drivers/usb/eth/mcs7830.c
+++ b/drivers/usb/eth/mcs7830.c
@@ -20,6 +20,7 @@
 #include <memalign.h>
 #include <usb.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include "usb_ether.h"
 
diff --git a/drivers/usb/eth/r8152.c b/drivers/usb/eth/r8152.c
index 1845d957f973..40947150a0b0 100644
--- a/drivers/usb/eth/r8152.c
+++ b/drivers/usb/eth/r8152.c
@@ -15,6 +15,7 @@
 #include <linux/delay.h>
 #include <linux/mii.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 #include "usb_ether.h"
 #include "r8152.h"
 
diff --git a/drivers/usb/eth/smsc95xx.c b/drivers/usb/eth/smsc95xx.c
index dacf607ed83b..5d8e93c23379 100644
--- a/drivers/usb/eth/smsc95xx.c
+++ b/drivers/usb/eth/smsc95xx.c
@@ -18,6 +18,7 @@
 #include <asm/unaligned.h>
 #include <linux/delay.h>
 #include <linux/mii.h>
+#include <linux/string.h>
 #include "usb_ether.h"
 
 /* SMSC LAN95xx based USB 2.0 Ethernet Devices */
diff --git a/drivers/usb/eth/usb_ether.c b/drivers/usb/eth/usb_ether.c
index e368ecda0d70..91f34ab175de 100644
--- a/drivers/usb/eth/usb_ether.c
+++ b/drivers/usb/eth/usb_ether.c
@@ -12,6 +12,7 @@
 #include <usb.h>
 #include <asm/cache.h>
 #include <dm/device-internal.h>
+#include <linux/string.h>
 
 #include "usb_ether.h"
 
diff --git a/drivers/usb/gadget/at91_udc.c b/drivers/usb/gadget/at91_udc.c
index e198ef1d34d6..8674f3c9f4fa 100644
--- a/drivers/usb/gadget/at91_udc.c
+++ b/drivers/usb/gadget/at91_udc.c
@@ -22,6 +22,7 @@
 #include <asm/gpio.h>
 #include <asm/hardware.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <mach/at91_matrix.h>
 #include <linux/list.h>
 #include <linux/usb/ch9.h>
diff --git a/drivers/usb/gadget/atmel_usba_udc.c b/drivers/usb/gadget/atmel_usba_udc.c
index ed3b3c14e609..23e107b86214 100644
--- a/drivers/usb/gadget/atmel_usba_udc.c
+++ b/drivers/usb/gadget/atmel_usba_udc.c
@@ -14,6 +14,7 @@
 #include <asm/hardware.h>
 #include <linux/list.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <linux/usb/ch9.h>
 #include <linux/usb/gadget.h>
 #include <linux/usb/atmel_usba_udc.h>
diff --git a/drivers/usb/gadget/ci_udc.c b/drivers/usb/gadget/ci_udc.c
index cdbdbcc5cac1..98a88c102e9f 100644
--- a/drivers/usb/gadget/ci_udc.c
+++ b/drivers/usb/gadget/ci_udc.c
@@ -19,6 +19,7 @@
 #include <linux/errno.h>
 #include <asm/io.h>
 #include <asm/unaligned.h>
+#include <linux/string.h>
 #include <linux/types.h>
 #include <linux/usb/ch9.h>
 #include <linux/usb/gadget.h>
diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c
index 91ed7fcec5af..f353f1a3cd25 100644
--- a/drivers/usb/gadget/composite.c
+++ b/drivers/usb/gadget/composite.c
@@ -11,6 +11,7 @@
 #include <dm/devres.h>
 #include <linux/bitops.h>
 #include <linux/bug.h>
+#include <linux/string.h>
 #include <linux/usb/composite.h>
 
 #define USB_BUFSIZ	4096
diff --git a/drivers/usb/gadget/designware_udc.c b/drivers/usb/gadget/designware_udc.c
index 7fc5d27d436f..d4b94a7cfce0 100644
--- a/drivers/usb/gadget/designware_udc.c
+++ b/drivers/usb/gadget/designware_udc.c
@@ -11,6 +11,7 @@
 #include <serial.h>
 #include <asm/io.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include <env.h>
 #include <usbdevice.h>
diff --git a/drivers/usb/gadget/dwc2_udc_otg.c b/drivers/usb/gadget/dwc2_udc_otg.c
index f548cbc9eb29..8a5edc776ef1 100644
--- a/drivers/usb/gadget/dwc2_udc_otg.c
+++ b/drivers/usb/gadget/dwc2_udc_otg.c
@@ -29,6 +29,7 @@
 #include <linux/bug.h>
 #include <linux/delay.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include <linux/errno.h>
 #include <linux/list.h>
diff --git a/drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c b/drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c
index 1c0505eb28c1..80b7e519978d 100644
--- a/drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c
+++ b/drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c
@@ -21,6 +21,7 @@
 #include <cpu_func.h>
 #include <log.h>
 #include <linux/bug.h>
+#include <linux/string.h>
 
 static u8 clear_feature_num;
 int clear_feature_flag;
diff --git a/drivers/usb/gadget/epautoconf.c b/drivers/usb/gadget/epautoconf.c
index e61fe5d11445..c7b0a9651885 100644
--- a/drivers/usb/gadget/epautoconf.c
+++ b/drivers/usb/gadget/epautoconf.c
@@ -9,6 +9,7 @@
  */
 
 #include <common.h>
+#include <linux/string.h>
 #include <linux/usb/ch9.h>
 #include <linux/errno.h>
 #include <linux/usb/gadget.h>
diff --git a/drivers/usb/gadget/ether.c b/drivers/usb/gadget/ether.c
index a718eae3a0cc..0f9195c7a5c9 100644
--- a/drivers/usb/gadget/ether.c
+++ b/drivers/usb/gadget/ether.c
@@ -16,6 +16,7 @@
 #include <linux/errno.h>
 #include <linux/netdevice.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <linux/usb/ch9.h>
 #include <linux/usb/cdc.h>
 #include <linux/usb/gadget.h>
diff --git a/drivers/usb/gadget/f_dfu.c b/drivers/usb/gadget/f_dfu.c
index 4bedc7d3a190..b7b1e0c1add9 100644
--- a/drivers/usb/gadget/f_dfu.c
+++ b/drivers/usb/gadget/f_dfu.c
@@ -19,6 +19,7 @@
 #include <common.h>
 #include <log.h>
 #include <malloc.h>
+#include <linux/string.h>
 
 #include <linux/usb/ch9.h>
 #include <linux/usb/gadget.h>
diff --git a/drivers/usb/gadget/f_fastboot.c b/drivers/usb/gadget/f_fastboot.c
index fce933dba5f8..e14262676f33 100644
--- a/drivers/usb/gadget/f_fastboot.c
+++ b/drivers/usb/gadget/f_fastboot.c
@@ -18,6 +18,7 @@
 #include <log.h>
 #include <malloc.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <linux/usb/ch9.h>
 #include <linux/usb/gadget.h>
 #include <linux/usb/composite.h>
diff --git a/drivers/usb/gadget/f_mass_storage.c b/drivers/usb/gadget/f_mass_storage.c
index 439a31c2556b..d87701b4a35a 100644
--- a/drivers/usb/gadget/f_mass_storage.c
+++ b/drivers/usb/gadget/f_mass_storage.c
@@ -248,6 +248,7 @@
 #include <g_dnl.h>
 #include <dm/devres.h>
 #include <linux/bug.h>
+#include <linux/string.h>
 
 #include <linux/err.h>
 #include <linux/usb/ch9.h>
diff --git a/drivers/usb/gadget/f_rockusb.c b/drivers/usb/gadget/f_rockusb.c
index 9ae02ae78c1e..2ff3c692edcc 100644
--- a/drivers/usb/gadget/f_rockusb.c
+++ b/drivers/usb/gadget/f_rockusb.c
@@ -13,6 +13,7 @@
 #include <malloc.h>
 #include <memalign.h>
 #include <part.h>
+#include <linux/string.h>
 #include <linux/usb/ch9.h>
 #include <linux/usb/gadget.h>
 #include <linux/usb/composite.h>
diff --git a/drivers/usb/gadget/f_sdp.c b/drivers/usb/gadget/f_sdp.c
index 4169763c094b..120aed4d95ec 100644
--- a/drivers/usb/gadget/f_sdp.c
+++ b/drivers/usb/gadget/f_sdp.c
@@ -23,6 +23,7 @@
 #include <log.h>
 #include <malloc.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include <linux/usb/ch9.h>
 #include <linux/usb/gadget.h>
diff --git a/drivers/usb/gadget/f_thor.c b/drivers/usb/gadget/f_thor.c
index 3c47e6251b1f..4758ccb7c460 100644
--- a/drivers/usb/gadget/f_thor.c
+++ b/drivers/usb/gadget/f_thor.c
@@ -25,6 +25,7 @@
 #include <version.h>
 #include <linux/delay.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <linux/usb/ch9.h>
 #include <linux/usb/gadget.h>
 #include <linux/usb/composite.h>
diff --git a/drivers/usb/gadget/fotg210.c b/drivers/usb/gadget/fotg210.c
index c6eb22bdfd36..1c145eb428e8 100644
--- a/drivers/usb/gadget/fotg210.c
+++ b/drivers/usb/gadget/fotg210.c
@@ -17,6 +17,7 @@
 #include <asm/io.h>
 #include <linux/delay.h>
 #include <linux/errno.h>
+#include <linux/string.h>
 #include <linux/types.h>
 #include <linux/usb/ch9.h>
 #include <linux/usb/gadget.h>
diff --git a/drivers/usb/gadget/g_dnl.c b/drivers/usb/gadget/g_dnl.c
index 86fdd16b0125..c6ecbb301929 100644
--- a/drivers/usb/gadget/g_dnl.c
+++ b/drivers/usb/gadget/g_dnl.c
@@ -9,6 +9,7 @@
 #include <common.h>
 #include <log.h>
 #include <malloc.h>
+#include <linux/string.h>
 
 #include <mmc.h>
 #include <part.h>
diff --git a/drivers/usb/gadget/gadget_chips.h b/drivers/usb/gadget/gadget_chips.h
index 91b0285244ec..70067afa7d43 100644
--- a/drivers/usb/gadget/gadget_chips.h
+++ b/drivers/usb/gadget/gadget_chips.h
@@ -14,6 +14,8 @@
  * Ported to U-Boot by: Thomas Smits <ts.smits at gmail.com> and
  *                      Remy Bohmer <linux at bohmer.net>
  */
+#include <linux/string.h>
+
 #ifdef CONFIG_USB_GADGET_NET2280
 #define	gadget_is_net2280(g)	(!strcmp("net2280", (g)->name))
 #else
diff --git a/drivers/usb/gadget/pxa25x_udc.c b/drivers/usb/gadget/pxa25x_udc.c
index 2d9f2e4e33d0..4f4d2982f88f 100644
--- a/drivers/usb/gadget/pxa25x_udc.c
+++ b/drivers/usb/gadget/pxa25x_udc.c
@@ -31,6 +31,7 @@
 #include <asm/io.h>
 #include <asm/arch/pxa.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include <linux/usb/ch9.h>
 #include <linux/usb/gadget.h>
diff --git a/drivers/usb/gadget/rndis.c b/drivers/usb/gadget/rndis.c
index 13c327ea38ad..92c01adb75d1 100644
--- a/drivers/usb/gadget/rndis.c
+++ b/drivers/usb/gadget/rndis.c
@@ -22,6 +22,7 @@
 #include <log.h>
 #include <net.h>
 #include <malloc.h>
+#include <linux/string.h>
 #include <linux/types.h>
 #include <linux/list.h>
 #include <linux/netdevice.h>
diff --git a/drivers/usb/gadget/usbstring.c b/drivers/usb/gadget/usbstring.c
index 83cdd8a2595e..2870052fec3f 100644
--- a/drivers/usb/gadget/usbstring.c
+++ b/drivers/usb/gadget/usbstring.c
@@ -8,6 +8,7 @@
 
 #include <common.h>
 #include <linux/errno.h>
+#include <linux/string.h>
 #include <linux/usb/ch9.h>
 #include <linux/usb/gadget.h>
 
diff --git a/drivers/usb/host/dwc2.c b/drivers/usb/host/dwc2.c
index ec0b799e1492..7f04ea81bfcc 100644
--- a/drivers/usb/host/dwc2.c
+++ b/drivers/usb/host/dwc2.c
@@ -22,6 +22,7 @@
 #include <asm/io.h>
 #include <dm/device_compat.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <power/regulator.h>
 #include <reset.h>
 
diff --git a/drivers/usb/host/ehci-fsl.c b/drivers/usb/host/ehci-fsl.c
index eed67e77dc67..8c5403fbdb3d 100644
--- a/drivers/usb/host/ehci-fsl.c
+++ b/drivers/usb/host/ehci-fsl.c
@@ -15,6 +15,7 @@
 #include <asm/global_data.h>
 #include <asm/io.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <usb/ehci-ci.h>
 #include <hwconfig.h>
 #include <fsl_usb.h>
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index 26400cac08c1..60e5f4e41bca 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -23,6 +23,7 @@
 #include <dm/device_compat.h>
 #include <linux/compiler.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include "ehci.h"
 
diff --git a/drivers/usb/host/ehci-mx5.c b/drivers/usb/host/ehci-mx5.c
index 516d64953591..ca6cb6b645bb 100644
--- a/drivers/usb/host/ehci-mx5.c
+++ b/drivers/usb/host/ehci-mx5.c
@@ -11,6 +11,7 @@
 #include <asm/global_data.h>
 #include <linux/compiler.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <usb/ehci-ci.h>
 #include <asm/io.h>
 #include <asm/arch/imx-regs.h>
diff --git a/drivers/usb/host/ehci-omap.c b/drivers/usb/host/ehci-omap.c
index 90a024068362..5aa9eb445afc 100644
--- a/drivers/usb/host/ehci-omap.c
+++ b/drivers/usb/host/ehci-omap.c
@@ -15,6 +15,7 @@
 #include <time.h>
 #include <usb.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <usb/ulpi.h>
 #include <errno.h>
 #include <asm/io.h>
diff --git a/drivers/usb/host/ehci-tegra.c b/drivers/usb/host/ehci-tegra.c
index d81f4a03f149..3b9373f2cd64 100644
--- a/drivers/usb/host/ehci-tegra.c
+++ b/drivers/usb/host/ehci-tegra.c
@@ -16,6 +16,7 @@
 #include <asm/arch-tegra/usb.h>
 #include <asm/arch-tegra/clk_rst.h>
 #include <usb.h>
+#include <linux/string.h>
 #include <usb/ulpi.h>
 #include <linux/libfdt.h>
 
diff --git a/drivers/usb/host/ehci-vf.c b/drivers/usb/host/ehci-vf.c
index 86eac41ea667..39d5b1dd9be8 100644
--- a/drivers/usb/host/ehci-vf.c
+++ b/drivers/usb/host/ehci-vf.c
@@ -21,6 +21,7 @@
 #include <asm/mach-imx/iomux-v3.h>
 #include <asm/mach-imx/regs-usbphy.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <usb/ehci-ci.h>
 #include <linux/libfdt.h>
 #include <fdtdec.h>
diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c
index c62d8feecce1..89592f0a1143 100644
--- a/drivers/usb/host/ohci-hcd.c
+++ b/drivers/usb/host/ohci-hcd.c
@@ -34,6 +34,7 @@
 #include <errno.h>
 #include <asm/cache.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #if defined(CONFIG_PCI_OHCI)
 # include <pci.h>
diff --git a/drivers/usb/host/r8a66597-hcd.c b/drivers/usb/host/r8a66597-hcd.c
index 37aa2c55f241..339e260ea33c 100644
--- a/drivers/usb/host/r8a66597-hcd.c
+++ b/drivers/usb/host/r8a66597-hcd.c
@@ -14,6 +14,7 @@
 #include <dm/device_compat.h>
 #include <linux/delay.h>
 #include <linux/iopoll.h>
+#include <linux/string.h>
 #include <power/regulator.h>
 
 #include "r8a66597.h"
diff --git a/drivers/usb/host/r8a66597.h b/drivers/usb/host/r8a66597.h
index 625d4938ccee..b42389b9188a 100644
--- a/drivers/usb/host/r8a66597.h
+++ b/drivers/usb/host/r8a66597.h
@@ -9,6 +9,7 @@
 #define __R8A66597_H__
 
 #include <linux/bitops.h>
+#include <linux/string.h>
 #define SYSCFG0		0x00
 #define SYSCFG1		0x02
 #define SYSSTS0		0x04
diff --git a/drivers/usb/host/sl811-hcd.c b/drivers/usb/host/sl811-hcd.c
index 39d5988b36ab..b33d7dc9ac49 100644
--- a/drivers/usb/host/sl811-hcd.c
+++ b/drivers/usb/host/sl811-hcd.c
@@ -23,6 +23,7 @@
 #include <time.h>
 #include <usb.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "sl811.h"
 
 #include "../../../board/kup/common/kup.h"
diff --git a/drivers/usb/host/usb-uclass.c b/drivers/usb/host/usb-uclass.c
index e5dda79b94c8..6d772000cde6 100644
--- a/drivers/usb/host/usb-uclass.c
+++ b/drivers/usb/host/usb-uclass.c
@@ -15,6 +15,7 @@
 #include <dm/device-internal.h>
 #include <dm/lists.h>
 #include <dm/uclass-internal.h>
+#include <linux/string.h>
 
 extern bool usb_started; /* flag for the started/stopped USB status */
 static bool asynch_allowed;
diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c
index 27f84102db38..44cb31c9c5fb 100644
--- a/drivers/usb/host/xhci-dwc3.c
+++ b/drivers/usb/host/xhci-dwc3.c
@@ -14,6 +14,7 @@
 #include <usb.h>
 #include <dwc3-uboot.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include <usb/xhci.h>
 #include <asm/io.h>
diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c
index 1da0524aa0e9..f4518e3eac99 100644
--- a/drivers/usb/host/xhci-mem.c
+++ b/drivers/usb/host/xhci-mem.c
@@ -23,6 +23,7 @@
 #include <asm/cache.h>
 #include <linux/bug.h>
 #include <linux/errno.h>
+#include <linux/string.h>
 
 #include <usb/xhci.h>
 
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index 126dabc11ba3..4c752f4ad0ef 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -33,6 +33,7 @@
 #include <linux/bug.h>
 #include <linux/delay.h>
 #include <linux/errno.h>
+#include <linux/string.h>
 #include <usb/xhci.h>
 
 #ifndef CONFIG_USB_MAX_CONTROLLER_COUNT
diff --git a/drivers/usb/musb-new/am35x.c b/drivers/usb/musb-new/am35x.c
index ea0a944a87bb..410cf042f66e 100644
--- a/drivers/usb/musb-new/am35x.c
+++ b/drivers/usb/musb-new/am35x.c
@@ -29,6 +29,7 @@
 #include <asm/omap_musb.h>
 #include <linux/bug.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "linux-compat.h"
 #endif
 
diff --git a/drivers/usb/musb-new/mt85xx.c b/drivers/usb/musb-new/mt85xx.c
index 110b5b610f6e..f826b986ba78 100644
--- a/drivers/usb/musb-new/mt85xx.c
+++ b/drivers/usb/musb-new/mt85xx.c
@@ -16,6 +16,7 @@
 #include <dm/root.h>
 #include <linux/delay.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <linux/usb/musb.h>
 #include <usb.h>
 #include "linux-compat.h"
diff --git a/drivers/usb/musb-new/musb_core.c b/drivers/usb/musb-new/musb_core.c
index f29131c69bbd..a696c5a5b476 100644
--- a/drivers/usb/musb-new/musb_core.c
+++ b/drivers/usb/musb-new/musb_core.c
@@ -85,6 +85,7 @@
 #include <linux/bug.h>
 #include <linux/errno.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <linux/usb/ch9.h>
 #include <linux/usb/gadget.h>
 #include <linux/usb/musb.h>
diff --git a/drivers/usb/musb-new/musb_gadget.c b/drivers/usb/musb-new/musb_gadget.c
index fb3b3e45ef08..c6e346d5d805 100644
--- a/drivers/usb/musb-new/musb_gadget.c
+++ b/drivers/usb/musb-new/musb_gadget.c
@@ -25,6 +25,7 @@
 #include <common.h>
 #include <linux/bug.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <linux/usb/ch9.h>
 #include "linux-compat.h"
 #endif
diff --git a/drivers/usb/musb-new/musb_uboot.c b/drivers/usb/musb-new/musb_uboot.c
index c212ecff7af3..0d18ed919a02 100644
--- a/drivers/usb/musb-new/musb_uboot.c
+++ b/drivers/usb/musb-new/musb_uboot.c
@@ -7,6 +7,7 @@
 #include <linux/delay.h>
 #include <linux/err.h>
 #include <linux/errno.h>
+#include <linux/string.h>
 #include <linux/usb/ch9.h>
 #include <linux/usb/gadget.h>
 
diff --git a/drivers/usb/musb-new/pic32.c b/drivers/usb/musb-new/pic32.c
index 8995e78fee49..ce8ec050025b 100644
--- a/drivers/usb/musb-new/pic32.c
+++ b/drivers/usb/musb-new/pic32.c
@@ -15,6 +15,7 @@
 #include <dm/device_compat.h>
 #include <linux/bitops.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <linux/usb/musb.h>
 #include "linux-compat.h"
 #include "musb_core.h"
diff --git a/drivers/usb/musb-new/sunxi.c b/drivers/usb/musb-new/sunxi.c
index 9ae8a0e6b7af..082df93fdd85 100644
--- a/drivers/usb/musb-new/sunxi.c
+++ b/drivers/usb/musb-new/sunxi.c
@@ -33,6 +33,7 @@
 #include <linux/bitops.h>
 #include <linux/delay.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <linux/usb/musb.h>
 #include "linux-compat.h"
 #include "musb_core.h"
diff --git a/drivers/usb/musb-new/ti-musb.c b/drivers/usb/musb-new/ti-musb.c
index d447baf13bba..4867c2e792e4 100644
--- a/drivers/usb/musb-new/ti-musb.c
+++ b/drivers/usb/musb-new/ti-musb.c
@@ -13,6 +13,7 @@
 #include <malloc.h>
 #include <asm/global_data.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <linux/usb/otg.h>
 #include <dm/device-internal.h>
 #include <dm/lists.h>
diff --git a/drivers/usb/musb/am35x.c b/drivers/usb/musb/am35x.c
index f945f1f5e2c5..e749ae97180b 100644
--- a/drivers/usb/musb/am35x.c
+++ b/drivers/usb/musb/am35x.c
@@ -11,6 +11,7 @@
 
 #include <common.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include "am35x.h"
 
diff --git a/drivers/usb/musb/musb_hcd.c b/drivers/usb/musb/musb_hcd.c
index afbc648883bc..99514419e5f8 100644
--- a/drivers/usb/musb/musb_hcd.c
+++ b/drivers/usb/musb/musb_hcd.c
@@ -11,6 +11,7 @@
 #include <log.h>
 #include <usb.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "musb_hcd.h"
 
 /* MSC control transfers */
diff --git a/drivers/video/am335x-fb.c b/drivers/video/am335x-fb.c
index 4354c3efac11..b381b147cddf 100644
--- a/drivers/video/am335x-fb.c
+++ b/drivers/video/am335x-fb.c
@@ -26,6 +26,7 @@
 #include <linux/delay.h>
 #include <linux/err.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include "am335x-fb.h"
 
 #define LCDC_FMAX				200000000
diff --git a/drivers/video/ati_radeon_fb.c b/drivers/video/ati_radeon_fb.c
index c4da2e3ae7f2..c326722c5500 100644
--- a/drivers/video/ati_radeon_fb.c
+++ b/drivers/video/ati_radeon_fb.c
@@ -17,6 +17,7 @@
 
 #include <common.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include <command.h>
 #include <bios_emul.h>
diff --git a/drivers/video/bridge/anx6345.c b/drivers/video/bridge/anx6345.c
index 1c5270ff05ce..5d76cedbcea0 100644
--- a/drivers/video/bridge/anx6345.c
+++ b/drivers/video/bridge/anx6345.c
@@ -11,6 +11,7 @@
 #include <log.h>
 #include <video_bridge.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "../anx98xx-edp.h"
 
 #define DP_MAX_LINK_RATE		0x001
diff --git a/drivers/video/cfb_console.c b/drivers/video/cfb_console.c
index 3a51ad4a9d42..f9e3c1ac43e7 100644
--- a/drivers/video/cfb_console.c
+++ b/drivers/video/cfb_console.c
@@ -76,6 +76,7 @@
 #include <video.h>
 #include <asm/global_data.h>
 #include <linux/compiler.h>
+#include <linux/string.h>
 
 #if defined(CONFIG_VIDEO_MXS)
 #define VIDEO_FB_16BPP_WORD_SWAP
diff --git a/drivers/video/console_truetype.c b/drivers/video/console_truetype.c
index 22b2ea7191ef..26093408453a 100644
--- a/drivers/video/console_truetype.c
+++ b/drivers/video/console_truetype.c
@@ -9,6 +9,7 @@
 #include <malloc.h>
 #include <video.h>
 #include <video_console.h>
+#include <linux/string.h>
 
 /* Functions needed by stb_truetype.h */
 static int tt_floor(double val)
diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c
index 462c318126dd..994b90a9665f 100644
--- a/drivers/video/da8xx-fb.c
+++ b/drivers/video/da8xx-fb.c
@@ -21,6 +21,7 @@
 #include <linux/delay.h>
 #include <linux/list.h>
 #include <linux/fb.h>
+#include <linux/string.h>
 
 #include <linux/errno.h>
 #include <asm/io.h>
diff --git a/drivers/video/dw_hdmi.c b/drivers/video/dw_hdmi.c
index 16db3d38a2c2..b2868413144a 100644
--- a/drivers/video/dw_hdmi.c
+++ b/drivers/video/dw_hdmi.c
@@ -13,6 +13,7 @@
 #include <i2c.h>
 #include <media_bus_format.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "dw_hdmi.h"
 
 struct tmds_n_cts {
diff --git a/drivers/video/dw_mipi_dsi.c b/drivers/video/dw_mipi_dsi.c
index b7bfbb5e5011..547dfc4b81c6 100644
--- a/drivers/video/dw_mipi_dsi.c
+++ b/drivers/video/dw_mipi_dsi.c
@@ -24,6 +24,7 @@
 #include <linux/delay.h>
 #include <linux/iopoll.h>
 #include <video_bridge.h>
+#include <linux/string.h>
 
 #define HWVER_131			0x31333100	/* IP version 1.31 */
 
diff --git a/drivers/video/exynos/exynos_dp.c b/drivers/video/exynos/exynos_dp.c
index 36595556f137..71dae58f08b3 100644
--- a/drivers/video/exynos/exynos_dp.c
+++ b/drivers/video/exynos/exynos_dp.c
@@ -24,6 +24,7 @@
 #include <asm/arch/dp.h>
 #include <asm/arch/pinmux.h>
 #include <asm/arch/power.h>
+#include <linux/string.h>
 
 #include "exynos_dp_lowlevel.h"
 
diff --git a/drivers/video/exynos/exynos_mipi_dsi.c b/drivers/video/exynos/exynos_mipi_dsi.c
index c56eadc8237b..376e6abf2cf6 100644
--- a/drivers/video/exynos/exynos_mipi_dsi.c
+++ b/drivers/video/exynos/exynos_mipi_dsi.c
@@ -20,6 +20,7 @@
 #include <asm/arch/power.h>
 #include <asm/arch/cpu.h>
 #include <asm/arch/clk.h>
+#include <linux/string.h>
 
 #include "exynos_mipi_dsi_lowlevel.h"
 #include "exynos_mipi_dsi_common.h"
diff --git a/drivers/video/fsl_dcu_fb.c b/drivers/video/fsl_dcu_fb.c
index 60b97e40633e..bfa4ed3129b2 100644
--- a/drivers/video/fsl_dcu_fb.c
+++ b/drivers/video/fsl_dcu_fb.c
@@ -18,6 +18,7 @@
 #include <malloc.h>
 #include <video.h>
 #include <video_fb.h>
+#include <linux/string.h>
 #include "videomodes.h"
 
 /* Convert the X,Y resolution pair into a single number */
diff --git a/drivers/video/fsl_diu_fb.c b/drivers/video/fsl_diu_fb.c
index 2c21e293a2c3..e90e23779d79 100644
--- a/drivers/video/fsl_diu_fb.c
+++ b/drivers/video/fsl_diu_fb.c
@@ -10,6 +10,7 @@
 #include <common.h>
 #include <malloc.h>
 #include <asm/io.h>
+#include <linux/string.h>
 
 #include "videomodes.h"
 #include <video_fb.h>
diff --git a/drivers/video/ihs_video_out.c b/drivers/video/ihs_video_out.c
index f02fd13d28ca..2124b826d28d 100644
--- a/drivers/video/ihs_video_out.c
+++ b/drivers/video/ihs_video_out.c
@@ -16,6 +16,7 @@
 #include <regmap.h>
 #include <video_osd.h>
 #include <asm/gpio.h>
+#include <linux/string.h>
 
 static const uint MAX_X_CHARS = 53;
 static const uint MAX_Y_CHARS = 26;
diff --git a/drivers/video/imx/ipu_common.c b/drivers/video/imx/ipu_common.c
index 5908b23acc9b..da7e5c851836 100644
--- a/drivers/video/imx/ipu_common.c
+++ b/drivers/video/imx/ipu_common.c
@@ -14,6 +14,7 @@
 #include <common.h>
 #include <log.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <linux/types.h>
 #include <linux/err.h>
 #include <asm/io.h>
diff --git a/drivers/video/lg4573.c b/drivers/video/lg4573.c
index 45df9c13474e..3e61f7f53ce0 100644
--- a/drivers/video/lg4573.c
+++ b/drivers/video/lg4573.c
@@ -16,6 +16,7 @@
 #include <spi.h>
 #include <asm/gpio.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #define PWR_ON_DELAY_MSECS  120
 
diff --git a/drivers/video/logicore_dp_tx.c b/drivers/video/logicore_dp_tx.c
index 9bc4bbb85d39..e752f457560c 100644
--- a/drivers/video/logicore_dp_tx.c
+++ b/drivers/video/logicore_dp_tx.c
@@ -15,6 +15,7 @@
 #include <dm.h>
 #include <errno.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include "axi.h"
 #include "logicore_dp_dpcd.h"
diff --git a/drivers/video/mali_dp.c b/drivers/video/mali_dp.c
index 7f9443828b2d..e487d6742a12 100644
--- a/drivers/video/mali_dp.c
+++ b/drivers/video/mali_dp.c
@@ -21,6 +21,7 @@
 #include <dm/device_compat.h>
 #include <linux/delay.h>
 #include <linux/sizes.h>
+#include <linux/string.h>
 
 #define MALIDP_CORE_ID		0x0018
 #define MALIDP_REG_BG_COLOR	0x0044
diff --git a/drivers/video/meson/meson_venc.c b/drivers/video/meson/meson_venc.c
index e7366dd2fdea..ce64865d591a 100644
--- a/drivers/video/meson/meson_venc.c
+++ b/drivers/video/meson/meson_venc.c
@@ -12,6 +12,7 @@
 #include <fdtdec.h>
 #include <log.h>
 #include <asm/io.h>
+#include <linux/string.h>
 #include "meson_vpu.h"
 
 enum {
diff --git a/drivers/video/mipi_dsi.c b/drivers/video/mipi_dsi.c
index ecacea1dbebd..5caa6a6fef6c 100644
--- a/drivers/video/mipi_dsi.c
+++ b/drivers/video/mipi_dsi.c
@@ -39,6 +39,7 @@
 #include <mipi_display.h>
 #include <mipi_dsi.h>
 #include <dm/devres.h>
+#include <linux/string.h>
 
 /**
  * DOC: dsi helpers
diff --git a/drivers/video/mx3fb.c b/drivers/video/mx3fb.c
index 9b42ca8d03f0..05b654291879 100644
--- a/drivers/video/mx3fb.c
+++ b/drivers/video/mx3fb.c
@@ -11,6 +11,7 @@
 #include <malloc.h>
 #include <video_fb.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include <asm/arch/imx-regs.h>
 #include <asm/arch/clock.h>
diff --git a/drivers/video/mxsfb.c b/drivers/video/mxsfb.c
index d84adb004bcc..4bb817669f77 100644
--- a/drivers/video/mxsfb.c
+++ b/drivers/video/mxsfb.c
@@ -17,6 +17,7 @@
 #include <malloc.h>
 #include <video.h>
 #include <video_fb.h>
+#include <linux/string.h>
 
 #include <asm/arch/clock.h>
 #include <asm/arch/imx-regs.h>
diff --git a/drivers/video/orisetech_otm8009a.c b/drivers/video/orisetech_otm8009a.c
index 362bf6a6fe4f..acb8f384a882 100644
--- a/drivers/video/orisetech_otm8009a.c
+++ b/drivers/video/orisetech_otm8009a.c
@@ -15,6 +15,7 @@
 #include <asm/gpio.h>
 #include <dm/device_compat.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <power/regulator.h>
 
 #define OTM8009A_BACKLIGHT_DEFAULT	240
diff --git a/drivers/video/raydium-rm68200.c b/drivers/video/raydium-rm68200.c
index 353894503b9b..1efd1607f63e 100644
--- a/drivers/video/raydium-rm68200.c
+++ b/drivers/video/raydium-rm68200.c
@@ -15,6 +15,7 @@
 #include <asm/gpio.h>
 #include <dm/device_compat.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <power/regulator.h>
 
 /*** Manufacturer Command Set ***/
diff --git a/drivers/video/rockchip/rk_edp.c b/drivers/video/rockchip/rk_edp.c
index 36d17deea580..b5fa492e2530 100644
--- a/drivers/video/rockchip/rk_edp.c
+++ b/drivers/video/rockchip/rk_edp.c
@@ -23,6 +23,7 @@
 #include <asm/arch-rockchip/hardware.h>
 #include <dt-bindings/clock/rk3288-cru.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #define MAX_CR_LOOP 5
 #define MAX_EQ_LOOP 5
diff --git a/drivers/video/sandbox_osd.c b/drivers/video/sandbox_osd.c
index 7e722326b3d9..9fb1224bf596 100644
--- a/drivers/video/sandbox_osd.c
+++ b/drivers/video/sandbox_osd.c
@@ -8,6 +8,7 @@
 #include <dm.h>
 #include <malloc.h>
 #include <video_osd.h>
+#include <linux/string.h>
 
 #include "sandbox_osd.h"
 
diff --git a/drivers/video/simplefb.c b/drivers/video/simplefb.c
index e7c2e184ba5c..a45e9aa9e0f2 100644
--- a/drivers/video/simplefb.c
+++ b/drivers/video/simplefb.c
@@ -10,6 +10,7 @@
 #include <log.h>
 #include <video.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 static int simple_video_probe(struct udevice *dev)
 {
diff --git a/drivers/video/stb_truetype.h b/drivers/video/stb_truetype.h
index 5d00bff9fd02..93518d200ff6 100644
--- a/drivers/video/stb_truetype.h
+++ b/drivers/video/stb_truetype.h
@@ -232,6 +232,8 @@
 //
 //  Incomplete text-in-3d-api example, which draws quads properly aligned to be lossless
 //
+#include <linux/string.h>
+
 #if 0
 #define STB_TRUETYPE_IMPLEMENTATION  // force following include to generate implementation
 #include "stb_truetype.h"
diff --git a/drivers/video/sunxi/sunxi_de2.c b/drivers/video/sunxi/sunxi_de2.c
index b657e163f06a..6e3999649d31 100644
--- a/drivers/video/sunxi/sunxi_de2.c
+++ b/drivers/video/sunxi/sunxi_de2.c
@@ -22,6 +22,7 @@
 #include <dm/device-internal.h>
 #include <dm/uclass-internal.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 #include "simplefb_common.h"
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/drivers/video/sunxi/sunxi_display.c b/drivers/video/sunxi/sunxi_display.c
index f52aba4d21c0..d1330314621c 100644
--- a/drivers/video/sunxi/sunxi_display.c
+++ b/drivers/video/sunxi/sunxi_display.c
@@ -12,6 +12,7 @@
 #include <init.h>
 #include <time.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include <asm/arch/clock.h>
 #include <asm/arch/display.h>
diff --git a/drivers/video/sunxi/sunxi_lcd.c b/drivers/video/sunxi/sunxi_lcd.c
index 10f7e2ac2346..c39438ff09af 100644
--- a/drivers/video/sunxi/sunxi_lcd.c
+++ b/drivers/video/sunxi/sunxi_lcd.c
@@ -18,6 +18,7 @@
 #include <asm/arch/lcdc.h>
 #include <asm/arch/gpio.h>
 #include <asm/gpio.h>
+#include <linux/string.h>
 
 struct sunxi_lcd_priv {
 	struct display_timing timing;
diff --git a/drivers/video/tegra124/dp.c b/drivers/video/tegra124/dp.c
index b09943897c18..5fcb03835d11 100644
--- a/drivers/video/tegra124/dp.c
+++ b/drivers/video/tegra124/dp.c
@@ -15,6 +15,7 @@
 #include <asm/io.h>
 #include <asm/arch-tegra/dc.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include "display.h"
 #include "edid.h"
 #include "sor.h"
diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c
index 3a07f36ce278..6912177993d0 100644
--- a/drivers/video/vidconsole-uclass.c
+++ b/drivers/video/vidconsole-uclass.c
@@ -16,6 +16,7 @@
 #include <video_console.h>
 #include <video_font.h>		/* Bitmap font for code page 437 */
 #include <linux/ctype.h>
+#include <linux/string.h>
 
 /*
  * Structure to describe a console color
diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c
index eb234cc9bf41..75a4ea17e36d 100644
--- a/drivers/video/video-uclass.c
+++ b/drivers/video/video-uclass.c
@@ -22,6 +22,7 @@
 #ifdef CONFIG_SANDBOX
 #include <asm/sdl.h>
 #endif
+#include <linux/string.h>
 
 /*
  * Theory of operation:
diff --git a/drivers/video/videomodes.c b/drivers/video/videomodes.c
index ed7373eac84b..8d3aff1a14c1 100644
--- a/drivers/video/videomodes.c
+++ b/drivers/video/videomodes.c
@@ -62,6 +62,7 @@
 #include <errno.h>
 #include <fdtdec.h>
 #include <linux/ctype.h>
+#include <linux/string.h>
 
 #include "videomodes.h"
 
diff --git a/drivers/virtio/virtio-uclass.c b/drivers/virtio/virtio-uclass.c
index 2636cbedfe27..5264fc209c9c 100644
--- a/drivers/virtio/virtio-uclass.c
+++ b/drivers/virtio/virtio-uclass.c
@@ -23,6 +23,7 @@
 #include <virtio.h>
 #include <dm/lists.h>
 #include <linux/bug.h>
+#include <linux/string.h>
 
 static const char *const virtio_drv_name[VIRTIO_ID_MAX_NUM] = {
 	[VIRTIO_ID_NET]		= VIRTIO_NET_DRV_NAME,
diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c
index b951ea3257b1..50f79dcb3b1d 100644
--- a/drivers/virtio/virtio_mmio.c
+++ b/drivers/virtio/virtio_mmio.c
@@ -17,6 +17,7 @@
 #include <linux/compat.h>
 #include <linux/err.h>
 #include <linux/io.h>
+#include <linux/string.h>
 #include "virtio_mmio.h"
 
 static int virtio_mmio_get_config(struct udevice *udev, unsigned int offset,
diff --git a/drivers/virtio/virtio_net.c b/drivers/virtio/virtio_net.c
index 0dbbd7802308..a16268f9d27b 100644
--- a/drivers/virtio/virtio_net.c
+++ b/drivers/virtio/virtio_net.c
@@ -10,6 +10,7 @@
 #include <virtio_types.h>
 #include <virtio.h>
 #include <virtio_ring.h>
+#include <linux/string.h>
 #include "virtio_net.h"
 
 /* Amount of buffers to keep in the RX virtqueue */
diff --git a/drivers/virtio/virtio_pci_modern.c b/drivers/virtio/virtio_pci_modern.c
index 2e5bbade0021..483525872dda 100644
--- a/drivers/virtio/virtio_pci_modern.c
+++ b/drivers/virtio/virtio_pci_modern.c
@@ -18,6 +18,7 @@
 #include <linux/delay.h>
 #include <linux/err.h>
 #include <linux/io.h>
+#include <linux/string.h>
 #include "virtio_pci.h"
 
 #define VIRTIO_PCI_DRV_NAME	"virtio-pci.m"
diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
index 7f1cbc59329e..dfd0ce8db63a 100644
--- a/drivers/virtio/virtio_ring.c
+++ b/drivers/virtio/virtio_ring.c
@@ -15,6 +15,7 @@
 #include <virtio_ring.h>
 #include <linux/bug.h>
 #include <linux/compat.h>
+#include <linux/string.h>
 
 int virtqueue_add(struct virtqueue *vq, struct virtio_sg *sgs[],
 		  unsigned int out_sgs, unsigned int in_sgs)
diff --git a/drivers/virtio/virtio_rng.c b/drivers/virtio/virtio_rng.c
index fc3e19cfaeeb..111f8de2855e 100644
--- a/drivers/virtio/virtio_rng.c
+++ b/drivers/virtio/virtio_rng.c
@@ -10,6 +10,7 @@
 #include <virtio_types.h>
 #include <virtio.h>
 #include <virtio_ring.h>
+#include <linux/string.h>
 
 #define BUFFER_SIZE	16UL
 
diff --git a/drivers/w1-eeprom/ds2502.c b/drivers/w1-eeprom/ds2502.c
index 19ee4b17ea54..42a3560c2372 100644
--- a/drivers/w1-eeprom/ds2502.c
+++ b/drivers/w1-eeprom/ds2502.c
@@ -26,6 +26,7 @@
 #include <linux/err.h>
 #include <w1-eeprom.h>
 #include <w1.h>
+#include <linux/string.h>
 
 #define DS2502_PAGE_SIZE	32
 #define DS2502_PAGE_COUNT	4
diff --git a/drivers/w1-eeprom/eep_sandbox.c b/drivers/w1-eeprom/eep_sandbox.c
index 27c7f9f1b6b8..86c02b9b915b 100644
--- a/drivers/w1-eeprom/eep_sandbox.c
+++ b/drivers/w1-eeprom/eep_sandbox.c
@@ -9,6 +9,7 @@
 #include <dm.h>
 #include <w1-eeprom.h>
 #include <w1.h>
+#include <linux/string.h>
 
 #define W1_F2D_READ_EEPROM      0xf0
 
diff --git a/drivers/watchdog/mpc8xx_wdt.c b/drivers/watchdog/mpc8xx_wdt.c
index c8b104d8f567..3cb50ab091fc 100644
--- a/drivers/watchdog/mpc8xx_wdt.c
+++ b/drivers/watchdog/mpc8xx_wdt.c
@@ -10,6 +10,7 @@
 #include <mpc8xx.h>
 #include <asm/cpm_8xx.h>
 #include <asm/io.h>
+#include <linux/string.h>
 
 void hw_watchdog_reset(void)
 {
diff --git a/env/callback.c b/env/callback.c
index 638a02b28f78..3bcd5c111e8e 100644
--- a/env/callback.c
+++ b/env/callback.c
@@ -8,6 +8,7 @@
 #include <env.h>
 #include <env_internal.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 #if defined(CONFIG_NEEDS_MANUAL_RELOC)
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/env/common.c b/env/common.c
index b6a1f45271ce..1918bfa47ff3 100644
--- a/env/common.c
+++ b/env/common.c
@@ -20,6 +20,7 @@
 #include <search.h>
 #include <errno.h>
 #include <malloc.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/env/ext4.c b/env/ext4.c
index d4869a1a4577..03f8e4e027bb 100644
--- a/env/ext4.c
+++ b/env/ext4.c
@@ -20,6 +20,7 @@
 
 #include <common.h>
 #include <part.h>
+#include <linux/string.h>
 
 #include <command.h>
 #include <env.h>
diff --git a/env/fat.c b/env/fat.c
index 71bf8bfa18f9..adc5e9259c24 100644
--- a/env/fat.c
+++ b/env/fat.c
@@ -19,6 +19,7 @@
 #include <mmc.h>
 #include <asm/cache.h>
 #include <linux/stddef.h>
+#include <linux/string.h>
 
 #ifdef CONFIG_SPL_BUILD
 /* TODO(sjg at chromium.org): Figure out why this is needed */
diff --git a/env/flash.c b/env/flash.c
index ebee9069e4e3..6fb9ba7edefe 100644
--- a/env/flash.c
+++ b/env/flash.c
@@ -20,6 +20,7 @@
 #include <malloc.h>
 #include <search.h>
 #include <errno.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/env/mmc.c b/env/mmc.c
index 3fecdff816ba..9c28141858f7 100644
--- a/env/mmc.c
+++ b/env/mmc.c
@@ -7,6 +7,7 @@
 
 #include <common.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 #include <command.h>
 #include <env.h>
diff --git a/env/nvram.c b/env/nvram.c
index f4126858b5b4..7af5c4cf4b8f 100644
--- a/env/nvram.c
+++ b/env/nvram.c
@@ -31,6 +31,7 @@
 #include <linux/stddef.h>
 #include <search.h>
 #include <errno.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/env/ubi.c b/env/ubi.c
index eb21c4f38b49..f1e9d42dbf46 100644
--- a/env/ubi.c
+++ b/env/ubi.c
@@ -6,6 +6,7 @@
 
 #include <common.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 #include <command.h>
 #include <env.h>
diff --git a/examples/api/demo.c b/examples/api/demo.c
index d586174ce8c9..789847c401ea 100644
--- a/examples/api/demo.c
+++ b/examples/api/demo.c
@@ -7,6 +7,7 @@
 
 #include <common.h>
 #include <env.h>
+#include <linux/string.h>
 #include <linux/types.h>
 #include <api_public.h>
 
diff --git a/examples/api/glue.c b/examples/api/glue.c
index 91d13157a1e4..c90765e8d285 100644
--- a/examples/api/glue.c
+++ b/examples/api/glue.c
@@ -5,6 +5,7 @@
 
 #include <common.h>
 #include <env.h>
+#include <linux/string.h>
 #include <linux/types.h>
 #include <api_public.h>
 #include <u-boot/crc.h>
diff --git a/examples/standalone/atmel_df_pow2.c b/examples/standalone/atmel_df_pow2.c
index 9c74f4994b95..271561d7d96f 100644
--- a/examples/standalone/atmel_df_pow2.c
+++ b/examples/standalone/atmel_df_pow2.c
@@ -10,6 +10,7 @@
 #include <exports.h>
 #include <spi.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #define CMD_ID    0x9f
 #define CMD_STAT  0xd7
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index 913a4d402e91..477a4ab81733 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -10,6 +10,7 @@
 #include <memalign.h>
 #include <part.h>
 #include <linux/compat.h>
+#include <linux/string.h>
 #include "btrfs.h"
 
 #define BTRFS_SUPER_FLAG_SUPP	(BTRFS_HEADER_FLAG_WRITTEN	\
diff --git a/fs/cbfs/cbfs.c b/fs/cbfs/cbfs.c
index 9007aa7d1594..51a59030f60e 100644
--- a/fs/cbfs/cbfs.c
+++ b/fs/cbfs/cbfs.c
@@ -8,6 +8,7 @@
 #include <log.h>
 #include <malloc.h>
 #include <asm/byteorder.h>
+#include <linux/string.h>
 
 /* Offset of master header from the start of a coreboot ROM */
 #define MASTER_HDR_OFFSET	0x38
diff --git a/fs/cramfs/cramfs.c b/fs/cramfs/cramfs.c
index 7ef48bbc064c..975e29d00b11 100644
--- a/fs/cramfs/cramfs.c
+++ b/fs/cramfs/cramfs.c
@@ -32,6 +32,7 @@
 #include <jffs2/jffs2.h>
 #include <jffs2/load_kernel.h>
 #include <cramfs/cramfs_fs.h>
+#include <linux/string.h>
 
 /* These two macros may change in future, to provide better st_ino
    semantics. */
diff --git a/fs/ext4/ext4_common.c b/fs/ext4/ext4_common.c
index c52cc400e1f2..8022d7376348 100644
--- a/fs/ext4/ext4_common.c
+++ b/fs/ext4/ext4_common.c
@@ -28,6 +28,7 @@
 #include <part.h>
 #include <stddef.h>
 #include <linux/stat.h>
+#include <linux/string.h>
 #include <linux/time.h>
 #include <asm/byteorder.h>
 #include "ext4_common.h"
diff --git a/fs/ext4/ext4_common.h b/fs/ext4/ext4_common.h
index beaee9c80bd6..1314cf20df89 100644
--- a/fs/ext4/ext4_common.h
+++ b/fs/ext4/ext4_common.h
@@ -29,6 +29,7 @@
 #include "ext4_journal.h"
 #include "crc16.h"
 #endif
+#include <linux/string.h>
 
 #define YES		1
 #define NO		0
diff --git a/fs/ext4/ext4_journal.c b/fs/ext4/ext4_journal.c
index 361baa35c921..82af0784bd85 100644
--- a/fs/ext4/ext4_journal.c
+++ b/fs/ext4/ext4_journal.c
@@ -20,6 +20,7 @@
 #include <malloc.h>
 #include <ext_common.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 #include "ext4_common.h"
 
 static struct revoke_blk_list *revk_blk_list;
diff --git a/fs/ext4/ext4_write.c b/fs/ext4/ext4_write.c
index f22af45d1b97..7c04c5d3dd62 100644
--- a/fs/ext4/ext4_write.c
+++ b/fs/ext4/ext4_write.c
@@ -29,6 +29,7 @@
 #include <part.h>
 #include <linux/stat.h>
 #include <div64.h>
+#include <linux/string.h>
 #include "ext4_common.h"
 
 static inline void ext4fs_sb_free_inodes_inc(struct ext2_sblock *sb)
diff --git a/fs/ext4/ext4fs.c b/fs/ext4/ext4fs.c
index 691d7e29b6d7..44df0f4a4ad8 100644
--- a/fs/ext4/ext4fs.c
+++ b/fs/ext4/ext4fs.c
@@ -28,6 +28,7 @@
 #include <malloc.h>
 #include <part.h>
 #include <uuid.h>
+#include <linux/string.h>
 #include "ext4_common.h"
 
 int ext4fs_symlinknest;
diff --git a/fs/fat/fat.c b/fs/fat/fat.c
index 28aa5aaa9ffb..dfcc4455830e 100644
--- a/fs/fat/fat.c
+++ b/fs/fat/fat.c
@@ -22,6 +22,7 @@
 #include <asm/cache.h>
 #include <linux/compiler.h>
 #include <linux/ctype.h>
+#include <linux/string.h>
 
 /*
  * Convert a string to lowercase.  Converts at most 'len' characters,
diff --git a/fs/fat/fat_write.c b/fs/fat/fat_write.c
index a2682b5f4655..9facf7609f2e 100644
--- a/fs/fat/fat_write.c
+++ b/fs/fat/fat_write.c
@@ -17,6 +17,7 @@
 #include <linux/ctype.h>
 #include <div64.h>
 #include <linux/math64.h>
+#include <linux/string.h>
 #include "fat.c"
 
 static void uppercase(char *str, int len)
diff --git a/fs/fs.c b/fs/fs.c
index 23fad1da80f6..047390227738 100644
--- a/fs/fs.c
+++ b/fs/fs.c
@@ -26,6 +26,7 @@
 #include <linux/math64.h>
 #include <efi_loader.h>
 #include <squashfs.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/fs/fs_internal.c b/fs/fs_internal.c
index 8b19811a639a..55d6d26ba5fa 100644
--- a/fs/fs_internal.c
+++ b/fs/fs_internal.c
@@ -11,6 +11,7 @@
 #include <log.h>
 #include <part.h>
 #include <memalign.h>
+#include <linux/string.h>
 
 int fs_devread(struct blk_desc *blk, struct disk_partition *partition,
 	       lbaint_t sector, int byte_offset, int byte_len, char *buf)
diff --git a/fs/jffs2/compr_zlib.c b/fs/jffs2/compr_zlib.c
index d306b6dc4cfe..12c5ed65e135 100644
--- a/fs/jffs2/compr_zlib.c
+++ b/fs/jffs2/compr_zlib.c
@@ -37,6 +37,7 @@
 
 #include <common.h>
 #include <config.h>
+#include <string.h>
 #include <jffs2/jffs2.h>
 #include <jffs2/mini_inflate.h>
 
diff --git a/fs/jffs2/jffs2_1pass.c b/fs/jffs2/jffs2_1pass.c
index a98745c50ead..c5b142973985 100644
--- a/fs/jffs2/jffs2_1pass.c
+++ b/fs/jffs2/jffs2_1pass.c
@@ -118,6 +118,7 @@
 #include <div64.h>
 #include <linux/compiler.h>
 #include <linux/stat.h>
+#include <linux/string.h>
 #include <linux/time.h>
 #include <u-boot/crc.h>
 #include <watchdog.h>
diff --git a/fs/jffs2/mini_inflate.c b/fs/jffs2/mini_inflate.c
index 3072eedd8c16..117e8f58b304 100644
--- a/fs/jffs2/mini_inflate.c
+++ b/fs/jffs2/mini_inflate.c
@@ -9,6 +9,7 @@
 
 #include <config.h>
 #include <jffs2/mini_inflate.h>
+#include <linux/string.h>
 
 /* The order that the code lengths in section 3.2.7 are in */
 static unsigned char huffman_order[] = {16, 17, 18,  0,  8,  7,  9,  6, 10,  5,
diff --git a/fs/reiserfs/reiserfs.c b/fs/reiserfs/reiserfs.c
index 635aab2eba7c..cf053e12d948 100644
--- a/fs/reiserfs/reiserfs.c
+++ b/fs/reiserfs/reiserfs.c
@@ -18,6 +18,7 @@
 #include <common.h>
 #include <malloc.h>
 #include <linux/ctype.h>
+#include <linux/string.h>
 #include <linux/time.h>
 #include <asm/byteorder.h>
 #include <reiserfs.h>
diff --git a/fs/ubifs/debug.c b/fs/ubifs/debug.c
index 4f0f680131f1..2bd0073cc591 100644
--- a/fs/ubifs/debug.c
+++ b/fs/ubifs/debug.c
@@ -20,6 +20,7 @@
 #include <time.h>
 #include <dm/devres.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #ifndef __UBOOT__
 #include <linux/module.h>
diff --git a/fs/ubifs/io.c b/fs/ubifs/io.c
index eb14b8954471..57e0847464ce 100644
--- a/fs/ubifs/io.c
+++ b/fs/ubifs/io.c
@@ -68,6 +68,7 @@
 #else
 #include <linux/compat.h>
 #include <linux/err.h>
+#include <linux/string.h>
 #endif
 #include "ubifs.h"
 
diff --git a/fs/ubifs/key.h b/fs/ubifs/key.h
index 70c2faf331b8..f5b19525621e 100644
--- a/fs/ubifs/key.h
+++ b/fs/ubifs/key.h
@@ -33,6 +33,7 @@
  * reserved for "." and "..". %2 is reserved for "end of readdir" marker. This
  * function makes sure the reserved values are not used.
  */
+#include <linux/string.h>
 static inline uint32_t key_mask_hash(uint32_t hash)
 {
 	hash &= UBIFS_S_KEY_HASH_MASK;
diff --git a/fs/ubifs/log.c b/fs/ubifs/log.c
index 77ff52575eaa..0c8671a88478 100644
--- a/fs/ubifs/log.c
+++ b/fs/ubifs/log.c
@@ -19,6 +19,7 @@
 #include <log.h>
 #include <dm/devres.h>
 #include <linux/err.h>
+#include <linux/string.h>
 #endif
 #include "ubifs.h"
 
diff --git a/fs/ubifs/lprops.c b/fs/ubifs/lprops.c
index a9e22abe6b40..83e6b2d5df2c 100644
--- a/fs/ubifs/lprops.c
+++ b/fs/ubifs/lprops.c
@@ -20,6 +20,7 @@
 #include <log.h>
 #include <malloc.h>
 #include <linux/err.h>
+#include <linux/string.h>
 #endif
 #include "ubifs.h"
 
diff --git a/fs/ubifs/lpt_commit.c b/fs/ubifs/lpt_commit.c
index 3ca8d704aaf3..583f113902ef 100644
--- a/fs/ubifs/lpt_commit.c
+++ b/fs/ubifs/lpt_commit.c
@@ -24,6 +24,7 @@
 #include <linux/compat.h>
 #include <linux/err.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include "crc16.h"
 #endif
 #include "ubifs.h"
diff --git a/fs/ubifs/recovery.c b/fs/ubifs/recovery.c
index 6b6884fb2098..cf2b8a48b8a5 100644
--- a/fs/ubifs/recovery.c
+++ b/fs/ubifs/recovery.c
@@ -43,6 +43,7 @@
 #include <u-boot/crc.h>
 #else
 #include <linux/err.h>
+#include <linux/string.h>
 #endif
 #include "ubifs.h"
 
diff --git a/fs/ubifs/replay.c b/fs/ubifs/replay.c
index aa7f281ef6b5..0862fe4ebf3b 100644
--- a/fs/ubifs/replay.c
+++ b/fs/ubifs/replay.c
@@ -25,6 +25,7 @@
 #include <dm/devres.h>
 #include <linux/compat.h>
 #include <linux/err.h>
+#include <linux/string.h>
 #endif
 #include "ubifs.h"
 #include <linux/bug.h>
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c
index 347f83656424..1ce46ef542d5 100644
--- a/fs/ubifs/super.c
+++ b/fs/ubifs/super.c
@@ -38,6 +38,7 @@
 #include <linux/printk.h>
 #include <linux/stat.h>
 #include <linux/err.h>
+#include <linux/string.h>
 #include "ubifs.h"
 #include <ubi_uboot.h>
 #include <linux/stringify.h>
diff --git a/fs/ubifs/tnc.c b/fs/ubifs/tnc.c
index e8b8f1683804..c8aef71d86a5 100644
--- a/fs/ubifs/tnc.c
+++ b/fs/ubifs/tnc.c
@@ -30,6 +30,7 @@
 #include <linux/compat.h>
 #include <linux/err.h>
 #include <linux/stat.h>
+#include <linux/string.h>
 #endif
 #include "ubifs.h"
 
diff --git a/fs/ubifs/ubifs.c b/fs/ubifs/ubifs.c
index d6be5c947d7e..76ea7a8031e1 100644
--- a/fs/ubifs/ubifs.c
+++ b/fs/ubifs/ubifs.c
@@ -18,6 +18,7 @@
 #include <malloc.h>
 #include <memalign.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 #include "ubifs.h"
 #include <part.h>
 #include <dm/devres.h>
diff --git a/fs/yaffs2/yaffs_mtdif2.c b/fs/yaffs2/yaffs_mtdif2.c
index 81a4d964f3e9..9cf4deee99e1 100644
--- a/fs/yaffs2/yaffs_mtdif2.c
+++ b/fs/yaffs2/yaffs_mtdif2.c
@@ -17,6 +17,7 @@
 #include <common.h>
 #include <linux/bug.h>
 #include <linux/errno.h>
+#include <linux/string.h>
 
 #include "yportenv.h"
 #include "yaffs_trace.h"
diff --git a/fs/yaffs2/yaffs_uboot_glue.c b/fs/yaffs2/yaffs_uboot_glue.c
index 913eb323f382..3528a70dc054 100644
--- a/fs/yaffs2/yaffs_uboot_glue.c
+++ b/fs/yaffs2/yaffs_uboot_glue.c
@@ -23,6 +23,7 @@
 #include <div64.h>
 #include <malloc.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 
 #include <config.h>
 #include "nand.h"
diff --git a/fs/yaffs2/yaffsfs.c b/fs/yaffs2/yaffsfs.c
index 510faaeed149..2643cc51057a 100644
--- a/fs/yaffs2/yaffsfs.c
+++ b/fs/yaffs2/yaffsfs.c
@@ -12,6 +12,7 @@
  */
 
 #include <div64.h>
+#include <linux/string.h>
 #include "yaffsfs.h"
 #include "yaffs_guts.h"
 #include "yaffscfg.h"
diff --git a/fs/yaffs2/ydirectenv.h b/fs/yaffs2/ydirectenv.h
index d274f22e84d0..a68c76378673 100644
--- a/fs/yaffs2/ydirectenv.h
+++ b/fs/yaffs2/ydirectenv.h
@@ -23,6 +23,7 @@
 #include <common.h>
 #include <malloc.h>
 #include <linux/compat.h>
+#include <linux/string.h>
 
 #include "yaffs_osglue.h"
 
diff --git a/fs/zfs/zfs.c b/fs/zfs/zfs.c
index 1fec96cd5ce5..8958a2562277 100644
--- a/fs/zfs/zfs.c
+++ b/fs/zfs/zfs.c
@@ -14,6 +14,7 @@
 #include <log.h>
 #include <malloc.h>
 #include <linux/stat.h>
+#include <linux/string.h>
 #include <linux/time.h>
 #include <linux/ctype.h>
 #include <asm/byteorder.h>
diff --git a/include/common.h b/include/common.h
index a904f41c366b..69fa19324832 100644
--- a/include/common.h
+++ b/include/common.h
@@ -16,7 +16,6 @@
 #include <config.h>
 #include <errno.h>
 #include <linux/types.h>
-#include <linux/string.h>
 #include <stdarg.h>
 #include <stdio.h>
 #include <linux/kernel.h>
diff --git a/include/dm/of.h b/include/dm/of.h
index 6bef73b441c1..a64822f7e91f 100644
--- a/include/dm/of.h
+++ b/include/dm/of.h
@@ -9,6 +9,7 @@
 
 #include <asm/u-boot.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 /* integer value within a device tree property which references another node */
 typedef u32 phandle;
diff --git a/include/exception.h b/include/exception.h
index a7f21e73d753..7f4638e42523 100644
--- a/include/exception.h
+++ b/include/exception.h
@@ -6,6 +6,7 @@
  */
 
 #include <command.h>
+#include <linux/string.h>
 
 static int do_exception(struct cmd_tbl *cmdtp, int flag, int argc,
 			char *const argv[])
diff --git a/include/exports.h b/include/exports.h
index 4b9aa5ff405f..902f8b559b23 100644
--- a/include/exports.h
+++ b/include/exports.h
@@ -5,6 +5,7 @@
 #include <time.h>
 #include <asm/global_data.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #ifndef __ASSEMBLY__
 #ifdef CONFIG_PHY_AQUANTIA
diff --git a/include/fdt_support.h b/include/fdt_support.h
index 9684cffe80b2..443bfe5e3a31 100644
--- a/include/fdt_support.h
+++ b/include/fdt_support.h
@@ -338,6 +338,7 @@ int fdt_overlay_apply_verbose(void *fdt, void *fdto);
  */
 int fdt_get_cells_len(const void *blob, char *nr_cells_name);
 
+#include <linux/string.h>
 #endif /* ifdef CONFIG_OF_LIBFDT */
 
 #ifdef USE_HOSTCC
diff --git a/include/imx8image.h b/include/imx8image.h
index 00c614ab6cc5..72daa6ed5d38 100644
--- a/include/imx8image.h
+++ b/include/imx8image.h
@@ -10,6 +10,7 @@
 
 #include <image.h>
 #include <inttypes.h>
+#include <linux/string.h>
 #include "imagetool.h"
 
 #define __packed   __attribute__((packed))
diff --git a/include/malloc.h b/include/malloc.h
index f66c2e86176c..36f8556f9fe0 100644
--- a/include/malloc.h
+++ b/include/malloc.h
@@ -215,7 +215,6 @@
 
 */
 
-
 #ifndef __MALLOC_H__
 #define __MALLOC_H__
 
@@ -230,6 +229,7 @@
 #else
 #define __STD_C     0
 #endif /*__cplusplus*/
+#include <linux/string.h>
 #endif /*__STDC__*/
 #endif /*__STD_C*/
 
diff --git a/include/net.h b/include/net.h
index 1bf9867f8cf8..26163f9f097b 100644
--- a/include/net.h
+++ b/include/net.h
@@ -12,6 +12,7 @@
 #ifndef __NET_H__
 #define __NET_H__
 
+#include <linux/string.h>
 #include <linux/types.h>
 #include <asm/cache.h>
 #include <asm/byteorder.h>	/* for nton* / ntoh* stuff */
diff --git a/include/spi_flash.h b/include/spi_flash.h
index 85cae32cc733..d9eb9cb3eeb7 100644
--- a/include/spi_flash.h
+++ b/include/spi_flash.h
@@ -9,6 +9,7 @@
 #ifndef _SPI_FLASH_H_
 #define _SPI_FLASH_H_
 
+#include <linux/string.h>
 #include <linux/types.h>
 #include <linux/mtd/spi-nor.h>
 
diff --git a/include/test/ut.h b/include/test/ut.h
index 3295cd4e5481..96456386d214 100644
--- a/include/test/ut.h
+++ b/include/test/ut.h
@@ -11,6 +11,7 @@
 #include <command.h>
 #include <hexdump.h>
 #include <linux/err.h>
+#include <linux/string.h>
 #include <test/test.h>
 
 struct unit_test_state;
diff --git a/include/tlv_eeprom.h b/include/tlv_eeprom.h
index 9f4a109dca9b..f7e130296a7f 100644
--- a/include/tlv_eeprom.h
+++ b/include/tlv_eeprom.h
@@ -8,6 +8,7 @@
 #define __TLV_EEPROM_H_
 
 #include <compiler.h>
+#include <linux/string.h>
 
 /*
  *  The Definition of the TlvInfo EEPROM format can be found at onie.org or
diff --git a/include/video_console.h b/include/video_console.h
index 06b798ef10c5..b033dc24b390 100644
--- a/include/video_console.h
+++ b/include/video_console.h
@@ -7,6 +7,7 @@
 #define __video_console_h
 
 #include <video.h>
+#include <linux/string.h>
 
 struct video_priv;
 
diff --git a/lib/acpi/acpi_device.c b/lib/acpi/acpi_device.c
index 3c75b6d96291..cefbb5f69c5b 100644
--- a/lib/acpi/acpi_device.c
+++ b/lib/acpi/acpi_device.c
@@ -16,6 +16,7 @@
 #include <acpi/acpigen.h>
 #include <asm-generic/gpio.h>
 #include <dm/acpi.h>
+#include <linux/string.h>
 
 /**
  * acpi_device_path_fill() - Find the root device and build a path from there
diff --git a/lib/acpi/acpi_dp.c b/lib/acpi/acpi_dp.c
index 579cab477151..194e79d7d038 100644
--- a/lib/acpi/acpi_dp.c
+++ b/lib/acpi/acpi_dp.c
@@ -14,6 +14,7 @@
 #include <acpi/acpigen.h>
 #include <acpi/acpi_dp.h>
 #include <dm/acpi.h>
+#include <linux/string.h>
 
 static void acpi_dp_write_array(struct acpi_ctx *ctx,
 				const struct acpi_dp *array);
diff --git a/lib/acpi/acpi_table.c b/lib/acpi/acpi_table.c
index a3b0fb3bce00..d6abb6068a6b 100644
--- a/lib/acpi/acpi_table.c
+++ b/lib/acpi/acpi_table.c
@@ -15,6 +15,7 @@
 #include <acpi/acpi_table.h>
 #include <asm/global_data.h>
 #include <dm/acpi.h>
+#include <linux/string.h>
 
 int acpi_create_dmar(struct acpi_dmar *dmar, enum dmar_flags flags)
 {
diff --git a/lib/acpi/acpigen.c b/lib/acpi/acpigen.c
index c609ef4daa4b..0906b1d30306 100644
--- a/lib/acpi/acpigen.c
+++ b/lib/acpi/acpigen.c
@@ -16,6 +16,7 @@
 #include <acpi/acpi_device.h>
 #include <acpi/acpi_table.h>
 #include <dm/acpi.h>
+#include <linux/string.h>
 
 u8 *acpigen_get_current(struct acpi_ctx *ctx)
 {
diff --git a/lib/aes.c b/lib/aes.c
index bc6d4dfd4e09..ab1f8d67a53f 100644
--- a/lib/aes.c
+++ b/lib/aes.c
@@ -25,6 +25,7 @@
 #include <common.h>
 #include <display_options.h>
 #include <log.h>
+#include <linux/string.h>
 #else
 #include <string.h>
 #endif
diff --git a/lib/aes/aes-decrypt.c b/lib/aes/aes-decrypt.c
index 345029fa7847..06b5e0274094 100644
--- a/lib/aes/aes-decrypt.c
+++ b/lib/aes/aes-decrypt.c
@@ -6,6 +6,7 @@
 #ifndef USE_HOSTCC
 #include <common.h>
 #include <malloc.h>
+#include <linux/string.h>
 #endif
 #include <image.h>
 #include <uboot_aes.h>
diff --git a/lib/bch.c b/lib/bch.c
index 72b4fdcc9c44..7f82cef242b0 100644
--- a/lib/bch.c
+++ b/lib/bch.c
@@ -59,6 +59,7 @@
 #include <malloc.h>
 #include <ubi_uboot.h>
 #include <dm/devres.h>
+#include <linux/string.h>
 
 #include <linux/bitops.h>
 #include <linux/printk.h>
diff --git a/lib/bzip2/bzlib.c b/lib/bzip2/bzlib.c
index 377b269b06db..010ff4d73314 100644
--- a/lib/bzip2/bzlib.c
+++ b/lib/bzip2/bzlib.c
@@ -2,6 +2,7 @@
 #include <common.h>
 #include <malloc.h>
 #include <watchdog.h>
+#include <linux/string.h>
 
 /*
  * This file is a modified version of bzlib.c from the bzip2-1.0.2
diff --git a/lib/charset.c b/lib/charset.c
index a28034ee1f1e..55a487253fa9 100644
--- a/lib/charset.c
+++ b/lib/charset.c
@@ -9,6 +9,7 @@
 #include <charset.h>
 #include <capitalization.h>
 #include <malloc.h>
+#include <linux/string.h>
 
 static struct capitalization_table capitalization_table[] =
 #ifdef CONFIG_EFI_UNICODE_CAPITALIZATION
diff --git a/lib/crc16.c b/lib/crc16.c
index f46ba727c9a8..aa6d117ae174 100644
--- a/lib/crc16.c
+++ b/lib/crc16.c
@@ -26,6 +26,7 @@
 #include <arpa/inet.h>
 #else
 #include <common.h>
+#include <linux/string.h>
 #endif
 #include <u-boot/crc.h>
 
diff --git a/lib/crc32.c b/lib/crc32.c
index e9be3bf386e7..aa210cea0558 100644
--- a/lib/crc32.c
+++ b/lib/crc32.c
@@ -14,6 +14,7 @@
 #else
 #include <common.h>
 #include <efi_loader.h>
+#include <linux/string.h>
 #endif
 #include <compiler.h>
 #include <u-boot/crc.h>
diff --git a/lib/crypto/pkcs7_verify.c b/lib/crypto/pkcs7_verify.c
index db02f346f764..5ca268ee00cc 100644
--- a/lib/crypto/pkcs7_verify.c
+++ b/lib/crypto/pkcs7_verify.c
@@ -16,6 +16,7 @@
 #include <linux/compat.h>
 #include <linux/asn1.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <u-boot/rsa-checksum.h>
 #include <crypto/public_key.h>
 #include <crypto/pkcs7_parser.h>
diff --git a/lib/crypto/public_key.c b/lib/crypto/public_key.c
index 8eb14aac20d5..17c3947c82df 100644
--- a/lib/crypto/public_key.c
+++ b/lib/crypto/public_key.c
@@ -14,6 +14,7 @@
 #include <linux/compat.h>
 #include <linux/err.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #else
 #include <linux/module.h>
 #include <linux/export.h>
diff --git a/lib/crypto/x509_public_key.c b/lib/crypto/x509_public_key.c
index 518dc9067310..f79b4ea6b0fc 100644
--- a/lib/crypto/x509_public_key.c
+++ b/lib/crypto/x509_public_key.c
@@ -14,6 +14,7 @@
 #include <linux/err.h>
 #include <linux/errno.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #else
 #include <linux/module.h>
 #endif
diff --git a/lib/dhry/dhry_1.c b/lib/dhry/dhry_1.c
index dcc224fb387d..b36c1672b4a3 100644
--- a/lib/dhry/dhry_1.c
+++ b/lib/dhry/dhry_1.c
@@ -44,6 +44,7 @@ char SCCSid[] = "@(#) @(#)dhry_1.c:3.4 -- 5/15/91 19:30:21";
 
 #include <common.h>
 #include <malloc.h>
+#include <string.h>
 
 #include "dhry.h"
 
diff --git a/lib/dhry/dhry_2.c b/lib/dhry/dhry_2.c
index 1ba879673e30..02cd9827e892 100644
--- a/lib/dhry/dhry_2.c
+++ b/lib/dhry/dhry_2.c
@@ -40,6 +40,7 @@
 /* SCCSid is defined in dhry_1.c */
 
 #include <common.h>
+#include <string.h>
 #include "dhry.h"
 
 #ifndef REG
diff --git a/lib/efi/efi_app.c b/lib/efi/efi_app.c
index 907bacd716a7..878c1cd6e5cd 100644
--- a/lib/efi/efi_app.c
+++ b/lib/efi/efi_app.c
@@ -17,6 +17,7 @@
 #include <malloc.h>
 #include <asm/global_data.h>
 #include <linux/err.h>
+#include <linux/string.h>
 #include <linux/types.h>
 #include <efi.h>
 #include <efi_api.h>
diff --git a/lib/efi/efi_stub.c b/lib/efi/efi_stub.c
index 7d650d512e30..b19e6d21a799 100644
--- a/lib/efi/efi_stub.c
+++ b/lib/efi/efi_stub.c
@@ -19,6 +19,7 @@
 #include <asm/cpu.h>
 #include <asm/io.h>
 #include <linux/err.h>
+#include <linux/string.h>
 #include <linux/types.h>
 
 #ifndef CONFIG_X86
diff --git a/lib/efi_loader/efi_bootmgr.c b/lib/efi_loader/efi_bootmgr.c
index 1e06e6096392..45442789db15 100644
--- a/lib/efi_loader/efi_bootmgr.c
+++ b/lib/efi_loader/efi_bootmgr.c
@@ -14,6 +14,7 @@
 #include <efi_loader.h>
 #include <efi_variable.h>
 #include <asm/unaligned.h>
+#include <linux/string.h>
 
 static const struct efi_boot_services *bs;
 static const struct efi_runtime_services *rs;
diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
index d07e36caa3f4..b39ca817dde5 100644
--- a/lib/efi_loader/efi_boottime.c
+++ b/lib/efi_loader/efi_boottime.c
@@ -14,6 +14,7 @@
 #include <time.h>
 #include <asm/global_data.h>
 #include <linux/libfdt_env.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 #include <bootm.h>
 #include <pe.h>
diff --git a/lib/efi_loader/efi_console.c b/lib/efi_loader/efi_console.c
index 426de779517c..48c7940e5bfe 100644
--- a/lib/efi_loader/efi_console.c
+++ b/lib/efi_loader/efi_console.c
@@ -14,6 +14,7 @@
 #include <env.h>
 #include <stdio_dev.h>
 #include <video_console.h>
+#include <linux/string.h>
 
 #define EFI_COUT_MODE_2 2
 #define EFI_MAX_COUT_MODE 3
diff --git a/lib/efi_loader/efi_device_path.c b/lib/efi_loader/efi_device_path.c
index 7ae14f342396..d3b1e273b9b8 100644
--- a/lib/efi_loader/efi_device_path.c
+++ b/lib/efi_loader/efi_device_path.c
@@ -18,6 +18,7 @@
 #include <sandboxblockdev.h>
 #include <asm-generic/unaligned.h>
 #include <linux/compat.h> /* U16_MAX */
+#include <linux/string.h>
 
 #ifdef CONFIG_SANDBOX
 const efi_guid_t efi_guid_host_dev = U_BOOT_HOST_DEV_GUID;
diff --git a/lib/efi_loader/efi_device_path_to_text.c b/lib/efi_loader/efi_device_path_to_text.c
index 5ae4833fa78c..ece99eb94243 100644
--- a/lib/efi_loader/efi_device_path_to_text.c
+++ b/lib/efi_loader/efi_device_path_to_text.c
@@ -8,6 +8,7 @@
 #include <common.h>
 #include <blk.h>
 #include <efi_loader.h>
+#include <linux/string.h>
 
 #define MAC_OUTPUT_LEN 22
 #define UNKNOWN_OUTPUT_LEN 23
diff --git a/lib/efi_loader/efi_disk.c b/lib/efi_loader/efi_disk.c
index 7bd1ccec4501..6a66b5cf2923 100644
--- a/lib/efi_loader/efi_disk.c
+++ b/lib/efi_loader/efi_disk.c
@@ -15,6 +15,7 @@
 #include <log.h>
 #include <part.h>
 #include <malloc.h>
+#include <linux/string.h>
 
 struct efi_system_partition efi_system_partition;
 
diff --git a/lib/efi_loader/efi_file.c b/lib/efi_loader/efi_file.c
index 44fafae05868..5954397e4daf 100644
--- a/lib/efi_loader/efi_file.c
+++ b/lib/efi_loader/efi_file.c
@@ -13,6 +13,7 @@
 #include <mapmem.h>
 #include <fs.h>
 #include <part.h>
+#include <linux/string.h>
 
 /* GUID for file system information */
 const efi_guid_t efi_file_system_info_guid = EFI_FILE_SYSTEM_INFO_GUID;
diff --git a/lib/efi_loader/efi_freestanding.c b/lib/efi_loader/efi_freestanding.c
index bd0dff162f6b..87c1633804c9 100644
--- a/lib/efi_loader/efi_freestanding.c
+++ b/lib/efi_loader/efi_freestanding.c
@@ -9,6 +9,7 @@
  */
 
 #include <common.h>
+#include <linux/string.h>
 
 /**
  * memcmp() - compare memory areas
diff --git a/lib/efi_loader/efi_gop.c b/lib/efi_loader/efi_gop.c
index 1206b2d7a2c8..c26493af6ca0 100644
--- a/lib/efi_loader/efi_gop.c
+++ b/lib/efi_loader/efi_gop.c
@@ -13,6 +13,7 @@
 #include <malloc.h>
 #include <video.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/lib/efi_loader/efi_hii.c b/lib/efi_loader/efi_hii.c
index 77e330285a72..92ae7e44e0a4 100644
--- a/lib/efi_loader/efi_hii.c
+++ b/lib/efi_loader/efi_hii.c
@@ -10,6 +10,7 @@
 #include <efi_loader.h>
 #include <malloc.h>
 #include <asm/unaligned.h>
+#include <linux/string.h>
 
 const efi_guid_t efi_guid_hii_database_protocol
 		= EFI_HII_DATABASE_PROTOCOL_GUID;
diff --git a/lib/efi_loader/efi_image_loader.c b/lib/efi_loader/efi_image_loader.c
index eea42cc20436..79338e9a61d3 100644
--- a/lib/efi_loader/efi_image_loader.c
+++ b/lib/efi_loader/efi_image_loader.c
@@ -15,6 +15,7 @@
 #include <sort.h>
 #include <crypto/pkcs7_parser.h>
 #include <linux/err.h>
+#include <linux/string.h>
 
 const efi_guid_t efi_global_variable_guid = EFI_GLOBAL_VARIABLE_GUID;
 const efi_guid_t efi_guid_device_path = EFI_DEVICE_PATH_PROTOCOL_GUID;
diff --git a/lib/efi_loader/efi_load_initrd.c b/lib/efi_loader/efi_load_initrd.c
index 574a83d7e308..800ff9fc41a6 100644
--- a/lib/efi_loader/efi_load_initrd.c
+++ b/lib/efi_loader/efi_load_initrd.c
@@ -11,6 +11,7 @@
 #include <fs.h>
 #include <efi_loader.h>
 #include <efi_load_initrd.h>
+#include <linux/string.h>
 
 static const efi_guid_t efi_guid_load_file2_protocol =
 		EFI_LOAD_FILE2_PROTOCOL_GUID;
diff --git a/lib/efi_loader/efi_net.c b/lib/efi_loader/efi_net.c
index 22f0123eca47..b056e08b3ecd 100644
--- a/lib/efi_loader/efi_net.c
+++ b/lib/efi_loader/efi_net.c
@@ -19,6 +19,7 @@
 #include <efi_loader.h>
 #include <malloc.h>
 #include <net.h>
+#include <linux/string.h>
 
 static const efi_guid_t efi_net_guid = EFI_SIMPLE_NETWORK_PROTOCOL_GUID;
 static const efi_guid_t efi_pxe_base_code_protocol_guid =
diff --git a/lib/efi_loader/efi_runtime.c b/lib/efi_loader/efi_runtime.c
index d0235c46e185..ddc6e6a4cdee 100644
--- a/lib/efi_loader/efi_runtime.c
+++ b/lib/efi_loader/efi_runtime.c
@@ -15,6 +15,7 @@
 #include <malloc.h>
 #include <rtc.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 
 /* For manual relocation support */
diff --git a/lib/efi_loader/efi_setup.c b/lib/efi_loader/efi_setup.c
index 6196c0a06cd7..51fc48b780bc 100644
--- a/lib/efi_loader/efi_setup.c
+++ b/lib/efi_loader/efi_setup.c
@@ -9,6 +9,7 @@
 #include <bootm.h>
 #include <efi_loader.h>
 #include <efi_variable.h>
+#include <linux/string.h>
 
 #define OBJ_LIST_NOT_INITIALIZED 1
 
diff --git a/lib/efi_loader/efi_signature.c b/lib/efi_loader/efi_signature.c
index 79dee27421b2..3d18edd04d79 100644
--- a/lib/efi_loader/efi_signature.c
+++ b/lib/efi_loader/efi_signature.c
@@ -15,6 +15,7 @@
 #include <crypto/public_key.h>
 #include <linux/compat.h>
 #include <linux/oid_registry.h>
+#include <linux/string.h>
 #include <u-boot/rsa.h>
 #include <u-boot/sha256.h>
 
diff --git a/lib/efi_loader/efi_unicode_collation.c b/lib/efi_loader/efi_unicode_collation.c
index 6655c68092e4..e002ed6a3925 100644
--- a/lib/efi_loader/efi_unicode_collation.c
+++ b/lib/efi_loader/efi_unicode_collation.c
@@ -10,6 +10,7 @@
 #include <cp1250.h>
 #include <cp437.h>
 #include <efi_loader.h>
+#include <linux/string.h>
 
 /* Characters that may not be used in FAT 8.3 file names */
 static const char illegal[] = "+,<=>:;\"/\\|?*[]\x7f";
diff --git a/lib/efi_loader/efi_var_file.c b/lib/efi_loader/efi_var_file.c
index b171d2d1a8f7..91c458ceea4b 100644
--- a/lib/efi_loader/efi_var_file.c
+++ b/lib/efi_loader/efi_var_file.c
@@ -15,6 +15,7 @@
 #include <mapmem.h>
 #include <efi_loader.h>
 #include <efi_variable.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 
 #define PART_STR_LEN 10
diff --git a/lib/efi_loader/efi_var_mem.c b/lib/efi_loader/efi_var_mem.c
index 8f4a5a5e4709..33501ad0c061 100644
--- a/lib/efi_loader/efi_var_mem.c
+++ b/lib/efi_loader/efi_var_mem.c
@@ -8,6 +8,7 @@
 #include <common.h>
 #include <efi_loader.h>
 #include <efi_variable.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 
 struct efi_var_file __efi_runtime_data *efi_var_buf;
diff --git a/lib/efi_loader/efi_variable.c b/lib/efi_loader/efi_variable.c
index a10b9caa8b03..d613de2ebb34 100644
--- a/lib/efi_loader/efi_variable.c
+++ b/lib/efi_loader/efi_variable.c
@@ -20,6 +20,7 @@
 #include <uuid.h>
 #include <crypto/pkcs7_parser.h>
 #include <linux/compat.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 #include <asm/sections.h>
 
diff --git a/lib/efi_loader/efi_variable_tee.c b/lib/efi_loader/efi_variable_tee.c
index be6f3dfad469..08f7c95e37bf 100644
--- a/lib/efi_loader/efi_variable_tee.c
+++ b/lib/efi_loader/efi_variable_tee.c
@@ -14,6 +14,7 @@
 #include <tee.h>
 #include <malloc.h>
 #include <mm_communication.h>
+#include <linux/string.h>
 
 #define OPTEE_PAGE_SIZE BIT(12)
 extern struct efi_var_file __efi_runtime_data *efi_var_buf;
diff --git a/lib/efi_loader/helloworld.c b/lib/efi_loader/helloworld.c
index 9ae2ee338987..2598fdfd124b 100644
--- a/lib/efi_loader/helloworld.c
+++ b/lib/efi_loader/helloworld.c
@@ -11,6 +11,7 @@
 
 #include <common.h>
 #include <efi_api.h>
+#include <linux/string.h>
 
 static const efi_guid_t loaded_image_guid = EFI_LOADED_IMAGE_PROTOCOL_GUID;
 static const efi_guid_t fdt_guid = EFI_FDT_GUID;
diff --git a/lib/efi_selftest/efi_selftest_block_device.c b/lib/efi_selftest/efi_selftest_block_device.c
index 5eb297d285af..63d340342a9d 100644
--- a/lib/efi_selftest/efi_selftest_block_device.c
+++ b/lib/efi_selftest/efi_selftest_block_device.c
@@ -14,6 +14,7 @@
  */
 
 #include <efi_selftest.h>
+#include <linux/string.h>
 #include "efi_selftest_disk_image.h"
 #include <asm/cache.h>
 
diff --git a/lib/efi_selftest/efi_selftest_config_table.c b/lib/efi_selftest/efi_selftest_config_table.c
index 2bf12b5bb68e..6f6a8757ac54 100644
--- a/lib/efi_selftest/efi_selftest_config_table.c
+++ b/lib/efi_selftest/efi_selftest_config_table.c
@@ -9,6 +9,7 @@
  */
 
 #include <efi_selftest.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 
 static const struct efi_system_table *sys_table;
diff --git a/lib/efi_selftest/efi_selftest_load_initrd.c b/lib/efi_selftest/efi_selftest_load_initrd.c
index e16163caca85..144443ff6854 100644
--- a/lib/efi_selftest/efi_selftest_load_initrd.c
+++ b/lib/efi_selftest/efi_selftest_load_initrd.c
@@ -41,6 +41,7 @@
 #include <efi_selftest.h>
 #include <efi_loader.h>
 #include <efi_load_initrd.h>
+#include <linux/string.h>
 
 static struct efi_boot_services *boottime;
 
diff --git a/lib/efi_selftest/efi_selftest_loaded_image.c b/lib/efi_selftest/efi_selftest_loaded_image.c
index 5889ab126175..01f6dee2ea6e 100644
--- a/lib/efi_selftest/efi_selftest_loaded_image.c
+++ b/lib/efi_selftest/efi_selftest_loaded_image.c
@@ -8,6 +8,7 @@
  */
 
 #include <efi_selftest.h>
+#include <linux/string.h>
 
 static efi_guid_t loaded_image_protocol_guid =
 	EFI_GUID(0x5b1b31a1, 0x9562, 0x11d2,
diff --git a/lib/efi_selftest/efi_selftest_loadimage.c b/lib/efi_selftest/efi_selftest_loadimage.c
index 06a87df8620c..f251cbc33bce 100644
--- a/lib/efi_selftest/efi_selftest_loadimage.c
+++ b/lib/efi_selftest/efi_selftest_loadimage.c
@@ -11,6 +11,7 @@
  */
 
 #include <efi_selftest.h>
+#include <linux/string.h>
 /* Include containing the efi_selftest_miniapp_exit.efi application */
 #include "efi_miniapp_file_image_exit.h"
 
diff --git a/lib/efi_selftest/efi_selftest_manageprotocols.c b/lib/efi_selftest/efi_selftest_manageprotocols.c
index 8edb1e4d4671..f22cad4c1c0f 100644
--- a/lib/efi_selftest/efi_selftest_manageprotocols.c
+++ b/lib/efi_selftest/efi_selftest_manageprotocols.c
@@ -12,6 +12,7 @@
  */
 
 #include <efi_selftest.h>
+#include <linux/string.h>
 
 /*
  * The test currently does not actually call the interface function.
diff --git a/lib/efi_selftest/efi_selftest_mem.c b/lib/efi_selftest/efi_selftest_mem.c
index 51f0fec39b9b..c5f0d7ccfa15 100644
--- a/lib/efi_selftest/efi_selftest_mem.c
+++ b/lib/efi_selftest/efi_selftest_mem.c
@@ -11,6 +11,7 @@
  */
 
 #include <efi_selftest.h>
+#include <linux/string.h>
 
 static struct efi_boot_services *boottime;
 
diff --git a/lib/efi_selftest/efi_selftest_memory.c b/lib/efi_selftest/efi_selftest_memory.c
index 4d32a2800613..2efb6e42aa25 100644
--- a/lib/efi_selftest/efi_selftest_memory.c
+++ b/lib/efi_selftest/efi_selftest_memory.c
@@ -11,6 +11,7 @@
  */
 
 #include <efi_selftest.h>
+#include <linux/string.h>
 
 #define EFI_ST_NUM_PAGES 8
 
diff --git a/lib/efi_selftest/efi_selftest_rng.c b/lib/efi_selftest/efi_selftest_rng.c
index fca9749d072d..ecf13a41fafc 100644
--- a/lib/efi_selftest/efi_selftest_rng.c
+++ b/lib/efi_selftest/efi_selftest_rng.c
@@ -9,6 +9,7 @@
 
 #include <efi_selftest.h>
 #include <efi_rng.h>
+#include <linux/string.h>
 
 #define RNG_LEN 9
 
diff --git a/lib/efi_selftest/efi_selftest_set_virtual_address_map.c b/lib/efi_selftest/efi_selftest_set_virtual_address_map.c
index a4e5a50f632b..b9045fe1143b 100644
--- a/lib/efi_selftest/efi_selftest_set_virtual_address_map.c
+++ b/lib/efi_selftest/efi_selftest_set_virtual_address_map.c
@@ -9,6 +9,7 @@
  */
 
 #include <efi_selftest.h>
+#include <linux/string.h>
 
 static const struct efi_boot_services *boottime;
 static const struct efi_runtime_services *runtime;
diff --git a/lib/efi_selftest/efi_selftest_snp.c b/lib/efi_selftest/efi_selftest_snp.c
index 79f04678039f..3357048c7f44 100644
--- a/lib/efi_selftest/efi_selftest_snp.c
+++ b/lib/efi_selftest/efi_selftest_snp.c
@@ -16,6 +16,7 @@
 
 #include <efi_selftest.h>
 #include <net.h>
+#include <linux/string.h>
 
 /*
  * MAC address for broadcasts
diff --git a/lib/efi_selftest/efi_selftest_startimage_exit.c b/lib/efi_selftest/efi_selftest_startimage_exit.c
index 11207b8162f7..1406dfc91721 100644
--- a/lib/efi_selftest/efi_selftest_startimage_exit.c
+++ b/lib/efi_selftest/efi_selftest_startimage_exit.c
@@ -10,6 +10,7 @@
  */
 
 #include <efi_selftest.h>
+#include <linux/string.h>
 /* Include containing the miniapp.efi application */
 #include "efi_miniapp_file_image_exit.h"
 
diff --git a/lib/efi_selftest/efi_selftest_variables.c b/lib/efi_selftest/efi_selftest_variables.c
index 2c16f3db6cc3..dfbdeb99f31c 100644
--- a/lib/efi_selftest/efi_selftest_variables.c
+++ b/lib/efi_selftest/efi_selftest_variables.c
@@ -9,6 +9,7 @@
  */
 
 #include <efi_selftest.h>
+#include <linux/string.h>
 
 #define EFI_ST_MAX_DATA_SIZE 16
 #define EFI_ST_MAX_VARNAME_SIZE 80
diff --git a/lib/efi_selftest/efi_selftest_variables_runtime.c b/lib/efi_selftest/efi_selftest_variables_runtime.c
index 3226069c0b21..619da67a292a 100644
--- a/lib/efi_selftest/efi_selftest_variables_runtime.c
+++ b/lib/efi_selftest/efi_selftest_variables_runtime.c
@@ -10,6 +10,7 @@
  */
 
 #include <efi_selftest.h>
+#include <linux/string.h>
 
 #define EFI_ST_MAX_DATA_SIZE 16
 #define EFI_ST_MAX_VARNAME_SIZE 40
diff --git a/lib/elf.c b/lib/elf.c
index d074e4e0a7d9..4c5b050da2e1 100644
--- a/lib/elf.c
+++ b/lib/elf.c
@@ -15,6 +15,7 @@
 #include <asm/e820.h>
 #include <linux/linkage.h>
 #endif
+#include <linux/string.h>
 
 /*
  * A very simple ELF64 loader, assumes the image is valid, returns the
diff --git a/lib/fdtdec.c b/lib/fdtdec.c
index c3724790a6ec..37bacdd7b335 100644
--- a/lib/fdtdec.c
+++ b/lib/fdtdec.c
@@ -26,6 +26,7 @@
 #include <asm/sections.h>
 #include <linux/ctype.h>
 #include <linux/lzo.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/lib/fdtdec_test.c b/lib/fdtdec_test.c
index e0c6e0971cd9..28260468e077 100644
--- a/lib/fdtdec_test.c
+++ b/lib/fdtdec_test.c
@@ -12,6 +12,7 @@
 #include <linux/libfdt.h>
 #include <malloc.h>
 #include <os.h>
+#include <linux/string.h>
 
 /* The size of our test fdt blob */
 #define FDT_SIZE	(16 * 1024)
diff --git a/lib/gunzip.c b/lib/gunzip.c
index bee3b9261f34..1073bebac063 100644
--- a/lib/gunzip.c
+++ b/lib/gunzip.c
@@ -13,6 +13,7 @@
 #include <image.h>
 #include <malloc.h>
 #include <memalign.h>
+#include <linux/string.h>
 #include <u-boot/crc.h>
 #include <watchdog.h>
 #include <u-boot/zlib.h>
diff --git a/lib/libavb/avb_sysdeps_posix.c b/lib/libavb/avb_sysdeps_posix.c
index 6ffdb0b7eb35..88135b90850c 100644
--- a/lib/libavb/avb_sysdeps_posix.c
+++ b/lib/libavb/avb_sysdeps_posix.c
@@ -7,6 +7,7 @@
 #include <malloc.h>
 #include <stdarg.h>
 #include <stdlib.h>
+#include <linux/string.h>
 
 #include "avb_sysdeps.h"
 
diff --git a/lib/linux_compat.c b/lib/linux_compat.c
index c83426f59dc2..8b9b562f98ea 100644
--- a/lib/linux_compat.c
+++ b/lib/linux_compat.c
@@ -4,6 +4,7 @@
 #include <memalign.h>
 #include <asm/cache.h>
 #include <linux/compat.h>
+#include <linux/string.h>
 
 struct p_current cur = {
 	.pid = 1,
diff --git a/lib/list_sort.c b/lib/list_sort.c
index 1c9e06173270..44d85ff43fee 100644
--- a/lib/list_sort.c
+++ b/lib/list_sort.c
@@ -9,6 +9,7 @@
 #include <common.h>
 #include <malloc.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #endif
 #include <linux/list.h>
 #include <linux/list_sort.h>
diff --git a/lib/lz4.c b/lib/lz4.c
index 046c34e39063..e803c087a269 100644
--- a/lib/lz4.c
+++ b/lib/lz4.c
@@ -8,6 +8,7 @@
    - LZ4 public forum : https://groups.google.com/forum/#!forum/lz4c
 */
 
+#include <linux/string.h>
 
 /**************************************
 *  Reading and writing into memory
diff --git a/lib/lz4_wrapper.c b/lib/lz4_wrapper.c
index e0f7d3688ee5..edce13da6bde 100644
--- a/lib/lz4_wrapper.c
+++ b/lib/lz4_wrapper.c
@@ -8,6 +8,7 @@
 #include <image.h>
 #include <lz4.h>
 #include <linux/kernel.h>
+#include <linux/string.h>
 #include <linux/types.h>
 #include <asm/unaligned.h>
 
diff --git a/lib/lzo/lzo1x_decompress.c b/lib/lzo/lzo1x_decompress.c
index 65fef0b0eb90..48800c91ccff 100644
--- a/lib/lzo/lzo1x_decompress.c
+++ b/lib/lzo/lzo1x_decompress.c
@@ -15,6 +15,7 @@
 #include <linux/lzo.h>
 #include <asm/byteorder.h>
 #include <asm/unaligned.h>
+#include <linux/string.h>
 #include "lzodefs.h"
 
 #define HAVE_IP(x, ip_end, ip) ((size_t)(ip_end - ip) < (x))
diff --git a/lib/membuff.c b/lib/membuff.c
index 36dc43a523fb..b0fc716a04be 100644
--- a/lib/membuff.c
+++ b/lib/membuff.c
@@ -10,6 +10,7 @@
 #include <errno.h>
 #include <log.h>
 #include <malloc.h>
+#include <linux/string.h>
 #include "membuff.h"
 
 void membuff_purge(struct membuff *mb)
diff --git a/lib/of_live.c b/lib/of_live.c
index 05a45ed34af2..c27a7a6e24fe 100644
--- a/lib/of_live.c
+++ b/lib/of_live.c
@@ -15,6 +15,7 @@
 #include <malloc.h>
 #include <dm/of_access.h>
 #include <linux/err.h>
+#include <linux/string.h>
 
 static void *unflatten_dt_alloc(void **mem, unsigned long size,
 				unsigned long align)
diff --git a/lib/optee/optee.c b/lib/optee/optee.c
index ed9731680233..ec1e29cc3f69 100644
--- a/lib/optee/optee.c
+++ b/lib/optee/optee.c
@@ -10,6 +10,7 @@
 #include <log.h>
 #include <malloc.h>
 #include <linux/libfdt.h>
+#include <linux/string.h>
 #include <tee/optee.h>
 
 #define optee_hdr_err_msg \
diff --git a/lib/physmem.c b/lib/physmem.c
index fc90ce4d7cfd..43f034766ab8 100644
--- a/lib/physmem.c
+++ b/lib/physmem.c
@@ -13,6 +13,7 @@
 #include <mapmem.h>
 #include <physmem.h>
 #include <linux/compiler.h>
+#include <linux/string.h>
 
 phys_addr_t __weak arch_phys_memset(phys_addr_t s, int c, phys_size_t n)
 {
diff --git a/lib/qsort.c b/lib/qsort.c
index 2f18588dfccd..40f90d28866f 100644
--- a/lib/qsort.c
+++ b/lib/qsort.c
@@ -16,6 +16,7 @@
  * bcc and gcc. */
 
 #include <log.h>
+#include <linux/string.h>
 #include <linux/types.h>
 #include <common.h>
 #include <exports.h>
diff --git a/lib/rsa/rsa-keyprop.c b/lib/rsa/rsa-keyprop.c
index 1e83eedc82cf..4114e33d36e0 100644
--- a/lib/rsa/rsa-keyprop.c
+++ b/lib/rsa/rsa-keyprop.c
@@ -14,6 +14,7 @@
 #include <malloc.h>
 #include <asm/byteorder.h>
 #include <crypto/internal/rsa.h>
+#include <linux/string.h>
 #include <u-boot/rsa-mod-exp.h>
 
 /**
diff --git a/lib/rsa/rsa-mod-exp.c b/lib/rsa/rsa-mod-exp.c
index a437cbe26f28..d8cd3ecd88d6 100644
--- a/lib/rsa/rsa-mod-exp.c
+++ b/lib/rsa/rsa-mod-exp.c
@@ -12,6 +12,7 @@
 #include <linux/errno.h>
 #include <asm/types.h>
 #include <asm/unaligned.h>
+#include <linux/string.h>
 #else
 #include "fdt_host.h"
 #include "mkimage.h"
diff --git a/lib/rsa/rsa-verify.c b/lib/rsa/rsa-verify.c
index 2057f6819db8..22ec890b407f 100644
--- a/lib/rsa/rsa-verify.c
+++ b/lib/rsa/rsa-verify.c
@@ -14,6 +14,7 @@
 #include <asm/types.h>
 #include <asm/unaligned.h>
 #include <dm.h>
+#include <linux/string.h>
 #else
 #include "fdt_host.h"
 #include "mkimage.h"
diff --git a/lib/slre.c b/lib/slre.c
index e82a9e7635b1..da17c018d839 100644
--- a/lib/slre.c
+++ b/lib/slre.c
@@ -26,6 +26,7 @@
 #endif /* SLRE_TEST */
 
 #include <errno.h>
+#include <linux/string.h>
 
 #include <slre.h>
 
diff --git a/lib/smbios.c b/lib/smbios.c
index 11790443e1a9..12f0a3a4ffdc 100644
--- a/lib/smbios.c
+++ b/lib/smbios.c
@@ -16,6 +16,7 @@
 #include <dm.h>
 #include <dm/uclass-internal.h>
 #endif
+#include <linux/string.h>
 
 /**
  * smbios_add_string() - add a string to the string area
diff --git a/lib/strto.c b/lib/strto.c
index c00bb5895df4..009e67d417a2 100644
--- a/lib/strto.c
+++ b/lib/strto.c
@@ -12,6 +12,7 @@
 #include <common.h>
 #include <errno.h>
 #include <linux/ctype.h>
+#include <linux/string.h>
 
 /* from lib/kstrtox.c */
 static const char *_parse_integer_fixup_radix(const char *s, unsigned int *base)
diff --git a/lib/tpm-common.c b/lib/tpm-common.c
index e4af87f76aa7..adfe49190699 100644
--- a/lib/tpm-common.c
+++ b/lib/tpm-common.c
@@ -11,6 +11,7 @@
 #include <log.h>
 #include <asm/unaligned.h>
 #include <tpm-common.h>
+#include <linux/string.h>
 #include "tpm-utils.h"
 
 enum tpm_version tpm_get_version(struct udevice *dev)
diff --git a/lib/tpm-v1.c b/lib/tpm-v1.c
index a846fe00dd3e..e7221dd8f2e9 100644
--- a/lib/tpm-v1.c
+++ b/lib/tpm-v1.c
@@ -10,6 +10,7 @@
 #include <dm.h>
 #include <log.h>
 #include <asm/unaligned.h>
+#include <linux/string.h>
 #include <u-boot/sha1.h>
 #include <tpm-common.h>
 #include <tpm-v1.h>
diff --git a/lib/tpm-v2.c b/lib/tpm-v2.c
index a4c352e3ef75..594ccb6c2348 100644
--- a/lib/tpm-v2.c
+++ b/lib/tpm-v2.c
@@ -9,6 +9,7 @@
 #include <tpm-common.h>
 #include <tpm-v2.h>
 #include <linux/bitops.h>
+#include <linux/string.h>
 #include "tpm-utils.h"
 
 u32 tpm2_startup(struct udevice *dev, enum tpm2_startup_types mode)
diff --git a/lib/trace.c b/lib/trace.c
index 854e495ed715..1b59e7d1cb96 100644
--- a/lib/trace.c
+++ b/lib/trace.c
@@ -10,6 +10,7 @@
 #include <asm/global_data.h>
 #include <asm/io.h>
 #include <asm/sections.h>
+#include <linux/string.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/lib/uuid.c b/lib/uuid.c
index e62d5ca2643f..ec6beedd55a5 100644
--- a/lib/uuid.c
+++ b/lib/uuid.c
@@ -15,6 +15,7 @@
 #include <asm/io.h>
 #include <part_efi.h>
 #include <malloc.h>
+#include <linux/string.h>
 
 /*
  * UUID - Universally Unique IDentifier - 128 bits unique number.
diff --git a/lib/zstd/zstd_opt.h b/lib/zstd/zstd_opt.h
index af0aaf5b20d4..25f78bdba24f 100644
--- a/lib/zstd/zstd_opt.h
+++ b/lib/zstd/zstd_opt.h
@@ -9,6 +9,7 @@
 #ifndef ZSTD_OPT_H_91842398743
 #define ZSTD_OPT_H_91842398743
 
+#include <linux/string.h>
 #define ZSTD_LITFREQ_ADD 2
 #define ZSTD_FREQ_DIV 4
 #define ZSTD_MAX_PRICE (1 << 30)
diff --git a/net/arp.c b/net/arp.c
index 7913812b9a22..52f4f31e5295 100644
--- a/net/arp.c
+++ b/net/arp.c
@@ -15,6 +15,7 @@
 #include <net.h>
 #include <time.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 
 #include "arp.h"
 
diff --git a/net/bootp.c b/net/bootp.c
index 23b5b8ad9b95..6038e7a86c60 100644
--- a/net/bootp.c
+++ b/net/bootp.c
@@ -19,6 +19,7 @@
 #include <time.h>
 #include <uuid.h>
 #include <linux/delay.h>
+#include <linux/string.h>
 #include <net/tftp.h>
 #include "bootp.h"
 #ifdef CONFIG_LED_STATUS
diff --git a/net/cdp.c b/net/cdp.c
index fac020468194..af4ea9cd41a2 100644
--- a/net/cdp.c
+++ b/net/cdp.c
@@ -14,6 +14,7 @@
 #if defined(CONFIG_CDP_VERSION)
 #include <timestamp.h>
 #endif
+#include <linux/string.h>
 
 #include "cdp.h"
 
diff --git a/net/dns.c b/net/dns.c
index 677e39dd0318..12182c9501ce 100644
--- a/net/dns.c
+++ b/net/dns.c
@@ -29,6 +29,7 @@
 #include <net.h>
 #include <time.h>
 #include <asm/unaligned.h>
+#include <linux/string.h>
 
 #include "dns.h"
 
diff --git a/net/eth-uclass.c b/net/eth-uclass.c
index 9b5c3c04eccb..42eb460e833a 100644
--- a/net/eth-uclass.c
+++ b/net/eth-uclass.c
@@ -14,6 +14,7 @@
 #include <asm/global_data.h>
 #include <dm/device-internal.h>
 #include <dm/uclass-internal.h>
+#include <linux/string.h>
 #include <net/pcap.h>
 #include "eth_internal.h"
 #include <eth_phy.h>
diff --git a/net/eth_common.c b/net/eth_common.c
index 58f899a02405..44047abe7c96 100644
--- a/net/eth_common.c
+++ b/net/eth_common.c
@@ -11,6 +11,7 @@
 #include <env.h>
 #include <miiphy.h>
 #include <net.h>
+#include <linux/string.h>
 #include "eth_internal.h"
 
 int eth_env_get_enetaddr_by_index(const char *base_name, int index,
diff --git a/net/eth_legacy.c b/net/eth_legacy.c
index 5e51164a8cd3..efd325d46ab2 100644
--- a/net/eth_legacy.c
+++ b/net/eth_legacy.c
@@ -16,6 +16,7 @@
 #include <asm/global_data.h>
 #include <linux/bug.h>
 #include <linux/errno.h>
+#include <linux/string.h>
 #include <net/pcap.h>
 #include "eth_internal.h"
 
diff --git a/net/fastboot.c b/net/fastboot.c
index c35953f3e333..4f1fed9e7787 100644
--- a/net/fastboot.c
+++ b/net/fastboot.c
@@ -9,6 +9,7 @@
 #include <net.h>
 #include <time.h>
 #include <linux/printk.h>
+#include <linux/string.h>
 #include <net/fastboot.h>
 
 /* Fastboot port # defined in spec */
diff --git a/net/link_local.c b/net/link_local.c
index 16bc5c8b90ad..0ddd1bd061fb 100644
--- a/net/link_local.c
+++ b/net/link_local.c
@@ -17,6 +17,7 @@
 #include <net.h>
 #include <rand.h>
 #include <time.h>
+#include <linux/string.h>
 #include "arp.h"
 #include "net_rand.h"
 
diff --git a/net/mdio-uclass.c b/net/mdio-uclass.c
index 66ee2e19763a..1c9ce801dc86 100644
--- a/net/mdio-uclass.c
+++ b/net/mdio-uclass.c
@@ -13,6 +13,7 @@
 #include <dm/device_compat.h>
 #include <dm/uclass-internal.h>
 #include <linux/compat.h>
+#include <linux/string.h>
 
 /* DT node properties for MAC-PHY interface */
 #define PHY_MODE_STR_CNT	2
diff --git a/net/net.c b/net/net.c
index 8ee76fba4902..02f2ea5be5b3 100644
--- a/net/net.c
+++ b/net/net.c
@@ -98,6 +98,7 @@
 #include <log.h>
 #include <net.h>
 #include <time.h>
+#include <linux/string.h>
 #include <net/fastboot.h>
 #include <net/tftp.h>
 #if defined(CONFIG_CMD_PCAP)
diff --git a/net/net_rand.h b/net/net_rand.h
index 4bf9bd817e5f..3181aa358cc4 100644
--- a/net/net_rand.h
+++ b/net/net_rand.h
@@ -10,6 +10,7 @@
 #define __NET_RAND_H__
 
 #include <common.h>
+#include <linux/string.h>
 
 /*
  * Return a seed for the PRNG derived from the eth0 MAC address.
diff --git a/net/nfs.c b/net/nfs.c
index 8a3b04adcdc6..3d7ebeaff09c 100644
--- a/net/nfs.c
+++ b/net/nfs.c
@@ -35,6 +35,7 @@
 #include <net.h>
 #include <malloc.h>
 #include <mapmem.h>
+#include <linux/string.h>
 #include "nfs.h"
 #include "bootp.h"
 #include <time.h>
diff --git a/net/pcap.c b/net/pcap.c
index 4036d8a3fa53..981f8f750e23 100644
--- a/net/pcap.c
+++ b/net/pcap.c
@@ -5,6 +5,7 @@
 
 #include <common.h>
 #include <net.h>
+#include <linux/string.h>
 #include <net/pcap.h>
 #include <time.h>
 #include <asm/io.h>
diff --git a/net/rarp.c b/net/rarp.c
index a676a4253b5e..6fd07bc6f14b 100644
--- a/net/rarp.c
+++ b/net/rarp.c
@@ -8,6 +8,7 @@
 #include <command.h>
 #include <log.h>
 #include <net.h>
+#include <linux/string.h>
 #include <net/tftp.h>
 #include "nfs.h"
 #include "bootp.h"
diff --git a/net/sntp.c b/net/sntp.c
index 8ecc0117ca74..e814af66b794 100644
--- a/net/sntp.c
+++ b/net/sntp.c
@@ -12,6 +12,7 @@
 #include <net.h>
 #include <rtc.h>
 #include <time.h>
+#include <linux/string.h>
 
 #include "sntp.h"
 
diff --git a/net/tftp.c b/net/tftp.c
index 9ba34d858c2f..d52133214858 100644
--- a/net/tftp.c
+++ b/net/tftp.c
@@ -17,6 +17,7 @@
 #include <net.h>
 #include <time.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 #include <net/tftp.h>
 #include "bootp.h"
 #ifdef CONFIG_SYS_DIRECT_FLASH_TFTP
diff --git a/net/wol.c b/net/wol.c
index 0a625668a992..e985f4adc59d 100644
--- a/net/wol.c
+++ b/net/wol.c
@@ -7,6 +7,7 @@
 #include <command.h>
 #include <env.h>
 #include <net.h>
+#include <linux/string.h>
 #include "wol.h"
 
 static ulong wol_timeout = WOL_DEFAULT_TIMEOUT;
diff --git a/post/drivers/flash.c b/post/drivers/flash.c
index 07eab332d21b..7c6caa4f1977 100644
--- a/post/drivers/flash.c
+++ b/post/drivers/flash.c
@@ -10,6 +10,7 @@
 #include <malloc.h>
 #include <post.h>
 #include <flash.h>
+#include <linux/string.h>
 
 #if CONFIG_POST & CONFIG_SYS_POST_FLASH
 
diff --git a/post/lib_powerpc/multi.c b/post/lib_powerpc/multi.c
index f082e4c546cc..31134a9f1b56 100644
--- a/post/lib_powerpc/multi.c
+++ b/post/lib_powerpc/multi.c
@@ -7,6 +7,7 @@
 #include <common.h>
 #include <irq_func.h>
 #include <log.h>
+#include <linux/string.h>
 
 /*
  * CPU test
diff --git a/post/lib_powerpc/string.c b/post/lib_powerpc/string.c
index fc460ceb9f0b..c292f8f0f8e0 100644
--- a/post/lib_powerpc/string.c
+++ b/post/lib_powerpc/string.c
@@ -6,6 +6,7 @@
 
 #include <common.h>
 #include <irq_func.h>
+#include <linux/string.h>
 
 /*
  * CPU test
diff --git a/post/post.c b/post/post.c
index c344ec5810f7..65162e6d985a 100644
--- a/post/post.c
+++ b/post/post.c
@@ -15,6 +15,7 @@
 #include <div64.h>
 #include <post.h>
 #include <asm/global_data.h>
+#include <linux/string.h>
 
 #ifdef CONFIG_SYS_POST_HOTKEYS_GPIO
 #include <asm/gpio.h>
-- 
2.17.1



More information about the U-Boot mailing list