148 Commits

Author SHA1 Message Date
jmpfbmx
21bf699652 mtk: Bring back DrvGen and DTBO building logic
Signed-off-by: jmpfbmx <jmpf.bmx@gmail.com>
Change-Id: I19726ab77ad96a1edfabf1a3115c504150833308
2024-08-02 15:06:15 +03:00
Zillion
7ea2ad13ad scripts: import T225XXU6DWL9
Signed-off-by: Zillion <DevZillion@proton.me>
2024-07-26 22:07:03 +03:00
bo.ye
4f099f5a37 [ALPS05525109] [Do NOT Sync]Merge branch android-4.19-stable into alps-trunk-s0.basic
[Detail]
	Target: a175946a5a

MTK-Commit-Id: 2765eae88b32b52fa0e8d892ec7b1b897550f4a1

Feature: Others
Change-Id: Ia70d9ce11c361253362a469134bd0642b7f7dee6
CR-Id: ALPS05525109
Signed-off-by: Breeze Li <Breeze.Li@mediatek.com>
2021-01-29 03:17:04 +08:00
skylake.huang
44013ca498 [ALPS04993874] [Do NOT Sync]Merge branch android-4.19 into alps-trunk-r0.basic
[Detail]
	Parent: b777b6f211
		Merge 4.19.84 into android-4.19
	Start: fc5e40ccb8
		ANDROID: Fix allmodconfig build with CC=clang
	Target: 8cb4870403
		Merge 4.19.98 into android-4.19

MTK-Commit-Id: 75dca67052f72d6c1bebb09bf06b97ac98dbfd47

Feature: Others
Change-Id: I7b0950e537a0153c87e8defc27ef7eacfef50ce5
CR-Id: ALPS04993874
Signed-off-by: Breeze.Li <breeze.li@mediatek.com>
2021-01-28 18:18:07 +08:00
Miles Chen
047190922f [ALPS04983743] dtc: remove prebuilt dtc_overlay
Use native dtc but pass an additional -@ parameter to it
to support device treee overlay.

MTK-Commit-Id: 15890268ae90e069d343b3aa13b3671567860dfd

Change-Id: I5697faa4f650a2748706e180ea750cc5dd79b206
Signed-off-by: Miles Chen <miles.chen@mediatek.com>
CR-Id: ALPS04983743
Feature: [Module]Kernel Maintenance
2021-01-28 16:33:11 +08:00
Miles Chen
f3736d077f [ALPS04969781] Revert "[ALPS04969781] kernel: Refine DT build"
This reverts commit 29218d45e46361811353549fcb64a2ec3691ee2a.

MTK-Commit-Id: 6bf98f8a6ef643a2a1243f8a87acf22c7d61ef0b

Change-Id: I608de604aa847b3d2decde09ec5608713c7dd320
Feature: [Module]Kernel Maintenance
Signed-off-by: Miles Chen <miles.chen@mediatek.com>
CR-Id: ALPS04969781
2021-01-28 15:54:40 +08:00
Miles Chen
280c081051 [ALPS04969781] kernel: Refine DT build
Only use dtc_overlay if BUILD_ARM64_DTB_OVERLAY_IMAG is enabled

MTK-Commit-Id: 29218d45e46361811353549fcb64a2ec3691ee2a

Change-Id: Ida13f95019ee00b0e384e9d3c78011d0afd77d35
Feature: [Module]Kernel Maintenance
Signed-off-by: Miles Chen <miles.chen@mediatek.com>
CR-Id: ALPS04969781
2021-01-28 15:52:01 +08:00
Alan Hu
077440b7a5 [ALPS04936259] kernel: DTBO migration
migrate DTBO build flow to kernel-4.19

MTK-Commit-Id: 77fad3a275886ce6bc01be405ff3d0f0634142dc

Change-Id: Ib729ed284cec8c92839850739f3c3587db7b24ef
CR-Id: ALPS04936259
Feature: [Module]Kernel Maintenance
Signed-off-by: Alan Hu <alan.hu@mediatek.com>
2021-01-28 15:25:35 +08:00
YC
7b7903a187 [ALPS04902901] core: force compile dts
a. add force compile dts to check dts build error
   , related flow should be removed when DTS flow is ready
b. fix dts build error

MTK-Commit-Id: adc1cdd43d6a04343071eb97e3e13b30aa5f9cce

Change-Id: I314c45119635c12098ddc5d798098f7ecf7254ee
Signed-off-by: YC <yu-chang.wang@mediatek.com>
CR-Id: ALPS04902901
Feature: [Module]Kernel Maintenance
2021-01-28 14:53:33 +08:00
Alistair Delva
9fc96c1eb6 ANDROID: GKI: scripts: Makefile: update the lz4 command (#2)
When the command was switched over from 'lz4c' to 'lz4', it changed the
meaning of '-c' in a subtle way. In the older lz4c tool, this '-cX'
seems to be a different flag, meaning the compression level. In the
newer lz4 tool, it means to compress to stdout. However, since kbuild
already specifies stdout as a file name, '-c' is superfluous, and
generates a warning:

Warning : stdout won't be used ! Do you want multiple input files (-m) ?

Fix it by removing the extra stdout flag.

Bug: 159285792
Bug: 160031736
Test: build/build.sh
Signed-off-by: Alistair Delva <adelva@google.com>
Change-Id: I96247317ccb31f224c6a8e6e453cddde5e0c2550
2020-07-02 00:44:44 +00:00
Alistair Delva
087f91d22a ANDROID: GKI: scripts: Makefile: update the lz4 command
Use 'lz4' instead of 'lz4c' and increase the compression level. This
also optimizes for decompression speed at this higher level.

Bug: 159285792
Test: launch_cvd -kernel_path bzImage
Signed-off-by: Alistair Delva <adelva@google.com>
Change-Id: I9604cc7d1f3600dec27ceb460f7c29d977a919b1
2020-06-22 22:32:00 +00:00
Rob Herring
5db05cf0f6 kbuild: disable dtc simple_bus_reg warnings by default
[ Upstream commit 70523a3ce5ff928faa43bb2cad554dc63438e3e7 ]

The updated version of dtc has a bug fix for simple_bus_reg warnings
and lots of warnings are generated now. So disable this warning by
default.

Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-12-13 08:52:18 +01:00
Masahiro Yamada
d503ac531a kbuild: rename LDFLAGS to KBUILD_LDFLAGS
Commit a0f97e06a4 ("kbuild: enable 'make CFLAGS=...' to add
additional options to CC") renamed CFLAGS to KBUILD_CFLAGS.

Commit 222d394d30 ("kbuild: enable 'make AFLAGS=...' to add
additional options to AS") renamed AFLAGS to KBUILD_AFLAGS.

Commit 06c5040cdb ("kbuild: enable 'make CPPFLAGS=...' to add
additional options to CPP") renamed CPPFLAGS to KBUILD_CPPFLAGS.

For some reason, LDFLAGS was not renamed.

Using a well-known variable like LDFLAGS may result in accidental
override of the variable.

Kbuild generally uses KBUILD_ prefixed variables for the internally
appended options, so here is one more conversion to sanitize the
naming convention.

I did not touch Makefiles under tools/ since the tools build system
is a different world.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Reviewed-by: Palmer Dabbelt <palmer@sifive.com>
2018-08-24 08:22:08 +09:00
Masahiro Yamada
43fee2b238 kbuild: do not redirect the first prerequisite for filechk
Currently, filechk unconditionally opens the first prerequisite and
redirects it as the stdin of a filechk_* rule.  Hence, every target
using $(call filechk,...) must list something as the first prerequisite
even if it is unneeded.

'< $<' is actually unneeded in most cases.  Each rule can explicitly
adds it if necessary.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2018-07-28 10:34:10 +09:00
Masahiro Yamada
2fb9279f2c kbuild: change ld_flags to contain LDFLAGS_$(@F)
Put $(LDFLAGS_$(@F)) into ld_flags so that $(LDFLAGS_pcap.o) and
$(LDFLAGS_vde.o) in arch/um/drivers/Makefile are absorbed.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
2018-07-19 08:40:27 +09:00
Masahiro Yamada
f60b992e30 kbuild: replace $(LDFLAGS) $(ldflags-y) with $(ld_flags)
$(LDFLAGS) $(ldflags-y) is equivalent to $(ld_flags).

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
2018-07-19 08:40:27 +09:00
Linus Torvalds
289cf155d9 Merge tag 'devicetree-for-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
Pull DeviceTree updates from Rob Herring:

 - Sync dtc with upstream version v1.4.6-21-g84e414b0b5bc. This adds new
   warnings which are either fixed or disabled by default (enabled with
   W=1).

 - Validate an untrusted offset in DT overlay function
   update_usages_of_a_phandle_reference

 - Fix a use after free error of_platform_device_destroy

 - Fix an off by 1 string errors in unittest

 - Avoid creating a struct device for OPP nodes

 - Update DT specific submitting-patches.txt with patch content and
   subject requirements.

 - Move some bindings to their proper subsystem locations

 - Add vendor prefixes for Kaohsiung, SiFive, Avnet, Wi2Wi, Logic PD,
   and ArcherMind

 - Add documentation for "no-gpio-delays" property in FSI bus GPIO
   master

 - Add compatible for r8a77990 SoC ravb ethernet block

 - More wack-a-mole removal of 'status' property in examples

* tag 'devicetree-for-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (25 commits)
  dt-bindings: submitting-patches: add guidance on patch content and subject
  of: platform: stop accessing invalid dev in of_platform_device_destroy
  dt-bindings: net: ravb: Add support for r8a77990 SoC
  dt-bindings: Add vendor prefix for ArcherMind
  dt-bindings: fsi-master-gpio: Document "no-gpio-delays" property
  dt-bindings: Add vendor prefix for Logic PD
  of: overlay: validate offset from property fixups
  of: unittest: for strings, account for trailing \0 in property length field
  drm: rcar-du: disable dtc graph-endpoint warnings on DT overlays
  kbuild: disable new dtc graph and unit-address warnings
  scripts/dtc: Update to upstream version v1.4.6-21-g84e414b0b5bc
  MAINTAINERS: add keyword for devicetree overlay notifiers
  dt-bindings: define vendor prefix for Wi2Wi, Inc.
  dt-bindings: Add vendor prefix for Avnet, Inc.
  dt-bindings: Relocate Tegra20 memory controller bindings
  dt-bindings: Add "sifive" vendor prefix
  dt-bindings: exynos: move ADC binding to iio/adc/ directory
  dt-bindings: powerpc/4xx: move 4xx NDFC and EMAC bindings to subsystem directories
  dt-bindings: move various RNG bindings to rng/ directory
  dt-bindings: move various timer bindings to timer/ directory
  ...
2018-06-07 14:06:31 -07:00
Rob Herring
74656b6829 kbuild: disable new dtc graph and unit-address warnings
dtc gained some new warnings for OF graphs and unique unit addresses,
but they are currently much too noisy. So turn off
'graph_child_address', 'graph_port', and 'unique_unit_address' warnings
by default. They can be enabled by building dtbs with W=1.

Acked-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Michal Marek <michal.lkml@markovi.net>
Cc: linux-kbuild@vger.kernel.org
Signed-off-by: Rob Herring <robh@kernel.org>
2018-05-14 19:45:01 -05:00
Masahiro Yamada
d59fbbd09d kbuild: replace hardcoded bison in cmd_bison_h with $(YACC)
Commit 73a4f6dbe7 ("kbuild: add LEX and YACC variables") missed to
update cmd_bison_h somehow.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2018-05-05 10:24:52 +09:00
Masahiro Yamada
54a702f705 kbuild: mark $(targets) as .SECONDARY and remove .PRECIOUS markers
GNU Make automatically deletes intermediate files that are updated
in a chain of pattern rules.

Example 1) %.dtb.o <- %.dtb.S <- %.dtb <- %.dts
Example 2) %.o <- %.c <- %.c_shipped

A couple of makefiles mark such targets as .PRECIOUS to prevent Make
from deleting them, but the correct way is to use .SECONDARY.

  .SECONDARY
    Prerequisites of this special target are treated as intermediate
    files but are never automatically deleted.

  .PRECIOUS
    When make is interrupted during execution, it may delete the target
    file it is updating if the file was modified since make started.
    If you mark the file as precious, make will never delete the file
    if interrupted.

Both can avoid deletion of intermediate files, but the difference is
the behavior when Make is interrupted; .SECONDARY deletes the target,
but .PRECIOUS does not.

The use of .PRECIOUS is relatively rare since we do not want to keep
partially constructed (possibly corrupted) targets.

Another difference is that .PRECIOUS works with pattern rules whereas
.SECONDARY does not.

  .PRECIOUS: $(obj)/%.lex.c

works, but

  .SECONDARY: $(obj)/%.lex.c

has no effect.  However, for the reason above, I do not want to use
.PRECIOUS which could cause obscure build breakage.

The targets specified as .SECONDARY must be explicit.  $(targets)
contains all targets that need to include .*.cmd files.  So, the
intermediates you want to keep are mostly in there.  Therefore, mark
$(targets) as .SECONDARY.  It means primary targets are also marked
as .SECONDARY, but I do not see any drawback for this.

I replaced some .SECONDARY / .PRECIOUS markers with 'targets'.  This
will make Kbuild search for non-existing .*.cmd files, but this is
not a noticeable performance issue.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: Frank Rowand <frowand.list@gmail.com>
Acked-by: Ingo Molnar <mingo@kernel.org>
2018-04-07 19:04:02 +09:00
Masahiro Yamada
a7f9241909 kbuild: add %.dtb.S and %.dtb to 'targets' automatically
Another common pattern that consists of chained commands is to compile
a DTB as binary data into the kernel image or a module.  It is used in
several places in the source tree.  Support it in the core Makefile.

$(call if_changed,dt_S_dtb) is more suitable than $(call cmd,dt_S_dtb)
in case cmd_dt_S_dtb is changed in the future.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: Frank Rowand <frowand.list@gmail.com>
2018-04-07 19:04:02 +09:00
Masahiro Yamada
833e622459 genksyms: generate lexer and parser during build instead of shipping
Now that the kernel build supports flex and bison, remove the _shipped
files and generate them during the build instead.

There are no more shipped lexer and parser, so I ripped off the rules
in scripts/Malefile.lib that were used for REGENERATE_PARSERS.

The genksyms parser has ambiguous grammar, which would emit warnings:

 scripts/genksyms/parse.y: warning: 9 shift/reduce conflicts [-Wconflicts-sr]
 scripts/genksyms/parse.y: warning: 5 reduce/reduce conflicts [-Wconflicts-rr]

They are normally suppressed, but displayed when W=1 is given.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2018-04-07 19:04:02 +09:00
Linus Torvalds
9c2dd8405c Merge tag 'devicetree-for-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
Pull DeviceTree updates from Rob Herring:

 - Sync dtc to upstream version v1.4.6-9-gaadd0b65c987. This adds a
   bunch more warnings (hidden behind W=1).

 - Build dtc lexer and parser files instead of using shipped versions.

 - Rework overlay apply API to take an FDT as input and apply overlays
   in a single step.

 - Add a phandle lookup cache. This improves boot time by hundreds of
   msec on systems with large DT.

 - Add trivial mcp4017/18/19 potentiometers bindings.

 - Remove VLA stack usage in DT code.

* tag 'devicetree-for-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (26 commits)
  of: unittest: fix an error code in of_unittest_apply_overlay()
  of: unittest: move misplaced function declaration
  of: unittest: Remove VLA stack usage
  of: overlay: Fix forgotten reference to of_overlay_apply()
  of: Documentation: Fix forgotten reference to of_overlay_apply()
  of: unittest: local return value variable related cleanups
  of: unittest: remove unneeded local return value variables
  dt-bindings: trivial: add various mcp4017/18/19 potentiometers
  of: unittest: fix an error test in of_unittest_overlay_8()
  of: cache phandle nodes to reduce cost of of_find_node_by_phandle()
  dt-bindings: rockchip-dw-mshc: use consistent clock names
  MAINTAINERS: Add linux/of_*.h headers to appropriate subsystems
  scripts: turn off some new dtc warnings by default
  scripts/dtc: Update to upstream version v1.4.6-9-gaadd0b65c987
  scripts/dtc: generate lexer and parser during build instead of shipping
  powerpc: boot: add strrchr function
  of: overlay: do not include path in full_name of added nodes
  of: unittest: clean up changeset test
  arm64/efi: Make strrchr() available to the EFI namespace
  ARM: boot: add strrchr function
  ...
2018-04-05 21:03:42 -07:00
Masahiro Yamada
a95b37e20d kbuild: get <linux/compiler_types.h> out of <linux/kconfig.h>
Since commit 28128c61e0 ("kconfig.h: Include compiler types to avoid
missed struct attributes"), <linux/kconfig.h> pulls in kernel-space
headers to unrelated places.

Commit 0f9da844d8 ("MIPS: boot: Define __ASSEMBLY__ for its.S build")
suppress the build error by defining __ASSEMBLY__, but ITS (i.e. DTS)
is not assembly, and should not include <linux/compiler_types.h> in the
first place.

Looking at arch/s390/tools/Makefile, host programs gen_facilities and
gen_opcode_table now pull in <linux/compiler_types.h> as well.

The motivation for that commit was to define necessary attributes
before any struct is defined.  Obviously, this happens only in C.

It is enough to include <linux/compiler_types.h> only when compiling
C files, and only when compiling kernel space.  Move the include to
c_flags.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2018-03-31 12:22:38 +09:00
Masahiro Yamada
f98fe47ce5 kbuild: link $(real-obj-y) instead of $(obj-y) into built-in.a
In Kbuild, Makefiles can add the same object to obj-y multiple
times.  So,

   obj-y += foo.o
   obj-y += foo.o

is fine.

However, this is not true when the same object is added multiple
times via composite objects.  For example,

   obj-y    += foo.o bar.o
   foo-objs := foo-bar-common.o foo-only.o
   bar-objs := foo-bar-common.o bar-only.o

causes build error because two instances of foo-bar-common.o are
linked into the vmlinux.

Makefiles tend to invent ugly work-around, for example
  - lib/zstd/Makefile
  - drivers/net/ethernet/cavium/liquidio/Makefile

The technique used in Kbuild to avoid the multiple definition error
is to use $(filter $(obj-y), $^).  Here, $^ lists the names of all
the prerequisites with duplicated names removed.

By replacing it with $(filter $(real-obj-y), $^) we can do likewise
for composite objects.  For built-in objects, we do not need to keep
the composite object structure.  We can simply expand them, and link
$(real-obj-y) to built-in.a.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2018-03-26 02:01:27 +09:00