openwrt/target/linux/bcm27xx/image/Makefile
Josef Schlehofer 31ccc27f41 bcm27xx: bcm2711: add kmod-usb-net-lan78xx
Some vendors like Seeedstudio in their product [1] with Raspberry Pi
Compute Module 4 uses Microchip LAN7800 (USB 3.0 to Gigabit
Ethernet Bridge) - USB 3.0 extended from PCIe of CM4.

lsusb output:
```
Bus 002 Device 002: ID 0424:7800 Microchip LAN7800
```

Raspberry Pi 4 and even Compute Module 4 has many resources available
and for just one kernel module it is not necessary to add additional specific CM4 profiles.
Let's include it by default, so the both Ethernet ports will be usable
to have better user-experience. Because previous generation of Raspberry
Pi included LAN7800 Gigabit Ethernet by default and it is enabled there
[2] in kernel without additional kernel module, which was added recently [3].

After this commit in dmesg can be found this:

```
root@OpenWrt:~# dmesg | grep lan
[    7.038889] lan78xx 2-3:1.0 (unnamed net_device) (uninitialized): int urb period 64
[    7.090484] usbcore: registered new interface driver lan78xx
```

Tested and works with sysupgrade image.

[1] https://www.seeedstudio.com/Dual-GbE-Carrier-Board-with-4GB-RAM-32GB-eMMC-RPi-CM4-Case-p-5029.html
[2] 32c74552b2/target/linux/bcm27xx/bcm2709/config-5.4 (L437)
[3] 31647d8be8

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2022-03-19 16:13:58 +01:00

171 lines
5.3 KiB
Makefile

# SPDX-License-Identifier: GPL-2.0-only
#
# Copyright (C) 2012-2019 OpenWrt.org
# Copyright (C) 2016-2017 LEDE project
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/image.mk
FAT32_BLOCK_SIZE=1024
FAT32_BLOCKS=$(shell echo $$(($(CONFIG_TARGET_KERNEL_PARTSIZE)*1024*1024/$(FAT32_BLOCK_SIZE))))
define Build/Compile
$(CP) $(LINUX_DIR)/COPYING $(KDIR)/COPYING.linux
endef
### Image scripts ###
define Build/boot-common
rm -f $@.boot
mkfs.fat -n boot -C $@.boot $(FAT32_BLOCKS)
mcopy -i $@.boot $(KDIR)/COPYING.linux ::
mcopy -i $@.boot $(KDIR)/LICENCE.broadcom ::
mcopy -i $@.boot cmdline.txt ::
mcopy -i $@.boot config.txt ::
mcopy -i $@.boot distroconfig.txt ::
mcopy -i $@.boot $(IMAGE_KERNEL) ::$(KERNEL_IMG)
$(foreach dts,$(shell echo $(DEVICE_DTS)),mcopy -i $@.boot $(DTS_DIR)/$(dts).dtb ::;)
mmd -i $@.boot ::/overlays
mcopy -i $@.boot $(DTS_DIR)/overlays/*.dtbo ::/overlays/
mcopy -i $@.boot $(DTS_DIR)/overlays/README ::/overlays/
endef
define Build/boot-2708
mcopy -i $@.boot $(KDIR)/bootcode.bin ::
mcopy -i $@.boot $(KDIR)/start.elf ::
mcopy -i $@.boot $(KDIR)/start_cd.elf ::
mcopy -i $@.boot $(KDIR)/start_x.elf ::
mcopy -i $@.boot $(KDIR)/fixup.dat ::
mcopy -i $@.boot $(KDIR)/fixup_cd.dat ::
mcopy -i $@.boot $(KDIR)/fixup_x.dat ::
endef
define Build/boot-2711
mcopy -i $@.boot $(KDIR)/start4.elf ::
mcopy -i $@.boot $(KDIR)/start4cd.elf ::
mcopy -i $@.boot $(KDIR)/start4x.elf ::
mcopy -i $@.boot $(KDIR)/fixup4.dat ::
mcopy -i $@.boot $(KDIR)/fixup4cd.dat ::
mcopy -i $@.boot $(KDIR)/fixup4x.dat ::
endef
define Build/sdcard-img
./gen_rpi_sdcard_img.sh $@ $@.boot $(IMAGE_ROOTFS) \
$(CONFIG_TARGET_KERNEL_PARTSIZE) $(CONFIG_TARGET_ROOTFS_PARTSIZE)
endef
### Devices ###
define Device/Default
DEVICE_VENDOR := Raspberry Pi
KERNEL := kernel-bin
KERNEL_IMG := kernel.img
IMAGES := factory.img.gz sysupgrade.img.gz
IMAGE/sysupgrade.img.gz := boot-common | boot-2708 | sdcard-img | gzip | append-metadata
IMAGE/factory.img.gz := boot-common | boot-2708 | sdcard-img | gzip
endef
define Device/rpi
DEVICE_MODEL := B/B+/CM/Zero/ZeroW
DEVICE_DTS := \
bcm2708-rpi-b bcm2708-rpi-b-rev1 bcm2708-rpi-b-plus \
bcm2708-rpi-cm \
bcm2708-rpi-zero bcm2708-rpi-zero-w
SUPPORTED_DEVICES := \
rpi-b rpi-b-plus rpi-cm rpi-zero rpi-zero-w \
raspberrypi,model-b raspberrypi,model-b-plus raspberrypi,model-b-rev2 \
raspberrypi,compute-module raspberrypi,compute-module-1 \
raspberrypi,model-zero raspberrypi,model-zero-w
DEVICE_PACKAGES := \
cypress-firmware-43430-sdio \
cypress-nvram-43430-sdio-rpi-zero-w \
kmod-brcmfmac wpad-basic-wolfssl
endef
ifeq ($(SUBTARGET),bcm2708)
TARGET_DEVICES += rpi
endif
define Device/rpi-2
DEVICE_MODEL := 2B/2B 1.2
DEVICE_VARIANT := (32bit)
DEVICE_ALT0_VENDOR := Raspberry Pi
DEVICE_ALT0_MODEL := 3B/3B+/3CM
DEVICE_ALT0_VARIANT := (32bit)
DEVICE_ALT1_VENDOR := Raspberry Pi
DEVICE_ALT1_MODEL := 4B/400/4CM
DEVICE_ALT1_VARIANT := (32bit)
DEVICE_DTS := \
bcm2709-rpi-2-b bcm2710-rpi-2-b \
bcm2710-rpi-3-b bcm2710-rpi-3-b-plus \
bcm2711-rpi-4-b bcm2711-rpi-400 \
bcm2710-rpi-cm3 bcm2711-rpi-cm4
SUPPORTED_DEVICES := \
rpi-2-b rpi-3-b rpi-3-b-plus rpi-cm \
raspberrypi,2-model-b raspberrypi,2-model-b-rev2 \
raspberrypi,3-model-b raspberrypi,3-model-b-plus \
raspberrypi,3-compute-module raspberrypi,compute-module-3 \
raspberrypi,400 raspberrypi,4-compute-module raspberrypi,4-model-b
DEVICE_PACKAGES := \
cypress-firmware-43430-sdio \
cypress-nvram-43430-sdio-rpi-3b \
cypress-firmware-43455-sdio \
cypress-nvram-43455-sdio-rpi-3b-plus cypress-nvram-43455-sdio-rpi-4b \
kmod-brcmfmac wpad-basic-wolfssl
IMAGE/sysupgrade.img.gz := boot-common | boot-2708 | boot-2711 | sdcard-img | gzip | append-metadata
IMAGE/factory.img.gz := boot-common | boot-2708 | boot-2711 | sdcard-img | gzip
endef
ifeq ($(SUBTARGET),bcm2709)
TARGET_DEVICES += rpi-2
endif
define Device/rpi-3
DEVICE_MODEL := 3B/3B+/3CM
DEVICE_VARIANT := (64bit)
DEVICE_ALT0_VENDOR := Raspberry Pi
DEVICE_ALT0_MODEL := 2B-1.2
DEVICE_ALT0_VARIANT := (64bit)
KERNEL_IMG := kernel8.img
DEVICE_DTS := \
broadcom/bcm2710-rpi-2-b \
broadcom/bcm2710-rpi-3-b broadcom/bcm2710-rpi-3-b-plus \
broadcom/bcm2710-rpi-cm3
SUPPORTED_DEVICES := \
rpi-3-b rpi-3-b-plus \
raspberrypi,2-model-b-rev2 \
raspberrypi,3-model-b raspberrypi,3-model-b-plus \
raspberrypi,3-compute-module raspberrypi,compute-module-3
DEVICE_PACKAGES := \
cypress-firmware-43430-sdio \
cypress-nvram-43430-sdio-rpi-3b \
cypress-firmware-43455-sdio \
cypress-nvram-43455-sdio-rpi-3b-plus \
kmod-brcmfmac wpad-basic-wolfssl
endef
ifeq ($(SUBTARGET),bcm2710)
TARGET_DEVICES += rpi-3
endif
define Device/rpi-4
DEVICE_MODEL := 4B/400/4CM
DEVICE_VARIANT := (64bit)
KERNEL_IMG := kernel8.img
DEVICE_DTS := \
broadcom/bcm2711-rpi-400 \
broadcom/bcm2711-rpi-4-b \
broadcom/bcm2711-rpi-cm4
SUPPORTED_DEVICES := \
raspberrypi,400 \
raspberrypi,4-compute-module \
raspberrypi,4-model-b
DEVICE_PACKAGES := \
cypress-firmware-43455-sdio \
cypress-nvram-43455-sdio-rpi-4b \
kmod-brcmfmac wpad-basic-wolfssl \
kmod-usb-net-lan78xx
IMAGE/sysupgrade.img.gz := boot-common | boot-2711 | sdcard-img | gzip | append-metadata
IMAGE/factory.img.gz := boot-common | boot-2711 | sdcard-img | gzip
endef
ifeq ($(SUBTARGET),bcm2711)
TARGET_DEVICES += rpi-4
endif
$(eval $(call BuildImage))