openwrt/target/linux/octeon/image/Makefile
Christian Svensson 6bf0e76494 octeon: n821: add Cisco vEdge 1000 base
This is the first commit to introduce the base for the N821 board used
in Cisco vEdge 1000.

This commit does not include the custom CPLD drivers but rather
everything else that is already present in the upstream kernel.

This results in an image that boots, but e.g. the SFP ports are not
usable.

Hardware:

  - CPU: Cavium Networks CN6130, 4 cores @ 1.0 GHz
  - Flash:
    - 16 MiB SPI NOR presented as 2x8 MiB for A/B boot recovery
    - 8192 MiB eMMC
  - RAM: 4096 MiB
  - Ethernet 1Gbit ports: 1x
  - Ethernet SFP ports: 8x
  - USB ports: 2x 3.0 Type-A on front panel
  - Serial: Two, one internal and one external
  - JTAG: Yes
  - LED count: 18x
  - Button count: 1x
  - GPIOs: 1x
  - Power: 2x redundant DC 12V barrel plug
  - Extra: Slot for SD card on front

See the OpenWrt wiki for more hardware details.

Installation:

  - Flash squashfs to /dev/sda2 and put kernel on /dev/sda1.
  - Update uboot's bootcmd environment variable to match.

Full installation guide will be added to OpenWrt wiki when sysupgrade
support is added.

Signed-off-by: Christian Svensson <blue@cmd.nu>
Signed-off-by: Tommy Nevtelen <tommy@nevtelen.com>
Tested-by: Viktor Ekmark <viktor@ekmark.se>
Tested-by: Daniel Wennberg <github@networkninja.se>
2023-07-15 17:05:58 +02:00

116 lines
3.4 KiB
Makefile

# SPDX-License-Identifier: GPL-2.0-only
#
# Copyright (C) 2009-2010 OpenWrt.org
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/image.mk
define Build/append-dtb-to-elf
$(TARGET_CROSS)objcopy --update-section .appended_dtb=$(KDIR)/image-$(DEVICE_DTS).dtb $@
endef
define Build/strip-kernel
# Workaround pre-SDK-1.9.0 u-boot versions not handling the .notes section
$(TARGET_CROSS)strip -R .notes $@ -o $@.stripped && mv $@.stripped $@
endef
DTS_DIR := $(DTS_DIR)/cavium-octeon
define Device/Default
PROFILES = Default $$(DEVICE_NAME)
KERNEL_NAME := vmlinux.elf
KERNEL_INITRAMFS_NAME := vmlinux-initramfs.elf
KERNEL := kernel-bin | strip-kernel | patch-cmdline
IMAGES := sysupgrade.tar
IMAGE/sysupgrade.tar/squashfs := append-rootfs | pad-extra 128k | sysupgrade-tar rootfs=$$$$@
IMAGE/sysupgrade.tar := sysupgrade-tar
endef
define Device/generic
DEVICE_VENDOR := Generic
DEVICE_MODEL := Octeon
FILESYSTEMS := ext4
endef
TARGET_DEVICES += generic
ITUSROUTER_CMDLINE:=console=ttyS0,115200 root=/dev/mmcblk1p2 rootfstype=squashfs,ext4,f2fs rootwait
define Device/itus_shield-router
DEVICE_VENDOR := Itus Networks
DEVICE_MODEL := Shield Router
CMDLINE := $(ITUSROUTER_CMDLINE)
IMAGE/sysupgrade.tar/squashfs += | append-metadata
endef
TARGET_DEVICES += itus_shield-router
ER_CMDLINE:=-mtdparts=phys_mapped_flash:640k(boot0)ro,640k(boot1)ro,64k(eeprom)ro root=/dev/mmcblk0p2 rootfstype=squashfs,ext4 rootwait
define Device/ubnt_edgerouter
DEVICE_VENDOR := Ubiquiti
DEVICE_MODEL := EdgeRouter
BOARD_NAME := er
CMDLINE := $(ER_CMDLINE)
SUPPORTED_DEVICES += er
endef
TARGET_DEVICES += ubnt_edgerouter
define Device/ubnt_edgerouter-e300
DEVICE_VENDOR := Ubiquiti
DEVICE_PACKAGES += kmod-gpio-button-hotplug kmod-leds-gpio kmod-of-mdio kmod-sfp kmod-usb3 kmod-usb-dwc3 kmod-usb-storage-uas
KERNEL := kernel-bin | patch-cmdline | append-dtb-to-elf
KERNEL_DEPENDS := $$(wildcard $(DTS_DIR)/$(DEVICE_DTS).dts)
CMDLINE := root=/dev/mmcblk0p2 rootfstype=squashfs,ext4 rootwait
endef
define Device/ubnt_edgerouter-4
$(Device/ubnt_edgerouter-e300)
DEVICE_MODEL := EdgeRouter 4
DEVICE_DTS := cn7130_ubnt_edgerouter-4
endef
TARGET_DEVICES += ubnt_edgerouter-4
define Device/ubnt_edgerouter-6p
$(Device/ubnt_edgerouter-e300)
DEVICE_MODEL := EdgeRouter 6P
DEVICE_DTS := cn7130_ubnt_edgerouter-6p
endef
TARGET_DEVICES += ubnt_edgerouter-6p
ERLITE_CMDLINE:=-mtdparts=phys_mapped_flash:512k(boot0)ro,512k(boot1)ro,64k(eeprom)ro root=/dev/sda2 rootfstype=squashfs,ext4 rootwait
define Device/ubnt_edgerouter-lite
DEVICE_VENDOR := Ubiquiti
DEVICE_MODEL := EdgeRouter Lite
BOARD_NAME := erlite
CMDLINE := $(ERLITE_CMDLINE)
SUPPORTED_DEVICES += erlite
endef
TARGET_DEVICES += ubnt_edgerouter-lite
define Device/ubnt_unifi-usg
$(Device/ubnt_edgerouter-lite)
DEVICE_MODEL := UniFi Security Gateway
BOARD_NAME := ubnt,usg
DEVICE_PACKAGES += kmod-gpio-button-hotplug kmod-leds-gpio
DEVICE_DTS := cn5020_ubnt_usg
KERNEL += | append-dtb-to-elf
endef
TARGET_DEVICES += ubnt_unifi-usg
define Device/cisco_vedge1000
DEVICE_VENDOR := Cisco Viptela
DEVICE_MODEL := vEdge 1000
BOARD_NAME := cisco,vedge1000
DEVICE_PACKAGES += \
kmod-hwmon-jc42 \
kmod-hwmon-max6697 \
kmod-of-mdio \
kmod-rtc-ds1307 \
kmod-usb-dwc3 \
kmod-usb-storage-uas \
kmod-usb3
KERNEL := kernel-bin | append-dtb-elf
KERNEL_DEPENDS := $$(wildcard $(DTS_DIR)/$(DEVICE_DTS).dts)
DEVICE_DTS := cn6130_cisco_vedge1000
endef
TARGET_DEVICES += cisco_vedge1000
$(eval $(call BuildImage))