Commit 63b903df authored by Masahiro Yamada's avatar Masahiro Yamada
Browse files

net: wan: wanxl: use allow to pass CROSS_COMPILE_M68k for rebuilding firmware

As far as I understood from the Kconfig help text, this build rule is
used to rebuild the driver firmware, which runs on an old m68k-based
chip. So, you need m68k tools for the firmware rebuild.

wanxl.c is a PCI driver, but CONFIG_M68K does not select CONFIG_HAVE_PCI.
So, you cannot enable CONFIG_WANXL_BUILD_FIRMWARE for ARCH=m68k. In other
words, ifeq ($(ARCH),m68k) is false here.

I am keeping the dead code for now, but rebuilding the firmware requires
'as68k' and 'ld68k', which I do not have in hand.

Instead, the kernel.org m68k GCC [1] successfully built it.

Allowing a user to pass in CROSS_COMPILE_M68K= is handier.

[1] https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/9.2.0/x86_64-gcc-9.2.0-nolibc-m68k-linux.tar.xz



Suggested-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
parent f463c351
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -200,7 +200,7 @@ config WANXL_BUILD_FIRMWARE
	depends on WANXL && !PREVENT_FIRMWARE_BUILD
	help
	  Allows you to rebuild firmware run by the QUICC processor.
	  It requires as68k, ld68k and hexdump programs.
	  It requires m68k toolchains and hexdump programs.

	  You should never need this option, say N.

+6 −6
Original line number Diff line number Diff line
@@ -40,17 +40,17 @@ $(obj)/wanxl.o: $(obj)/wanxlfw.inc

ifeq ($(CONFIG_WANXL_BUILD_FIRMWARE),y)
ifeq ($(ARCH),m68k)
  AS68K = $(AS)
  LD68K = $(LD)
  M68KAS = $(AS)
  M68KLD = $(LD)
else
  AS68K = as68k
  LD68K = ld68k
  M68KAS = $(CROSS_COMPILE_M68K)as
  M68KLD = $(CROSS_COMPILE_M68K)ld
endif

quiet_cmd_build_wanxlfw = BLD FW  $@
      cmd_build_wanxlfw = \
	$(CPP) -D__ASSEMBLY__ -Wp,-MD,$(depfile) -I$(srctree)/include/uapi $< | $(AS68K) -m68360 -o $(obj)/wanxlfw.o; \
	$(LD68K) --oformat binary -Ttext 0x1000 $(obj)/wanxlfw.o -o $(obj)/wanxlfw.bin; \
	$(CPP) -D__ASSEMBLY__ -Wp,-MD,$(depfile) -I$(srctree)/include/uapi $< | $(M68KAS) -m68360 -o $(obj)/wanxlfw.o; \
	$(M68KLD) --oformat binary -Ttext 0x1000 $(obj)/wanxlfw.o -o $(obj)/wanxlfw.bin; \
	hexdump -ve '"\n" 16/1 "0x%02X,"' $(obj)/wanxlfw.bin | sed 's/0x  ,//g;1s/^/static const u8 firmware[]={/;$$s/,$$/\n};\n/' >$(obj)/wanxlfw.inc; \
	rm -f $(obj)/wanxlfw.bin $(obj)/wanxlfw.o