openwrt/target/linux/mvebu/image/cortexa72.mk

119 lines
3.4 KiB
Makefile
Raw Normal View History

mvebu: add support for RB5009UG+S+IN This patch adds support for Mikrotik RB5009UG+S+IN. Specifications: - SoC: Marvell Armada 7040 (88F7040) - 4 cores, ARMv8 Cortex-A72, 1.4GHz, 64bit - RAM: 1024MB DDR4 - Flash: 16MB SPI NOR flash, 1024MB NAND - Ethernet: * Marvell 88E6393X - Amethyst: * one 2.5G RJ45 port via Qualcomm QCA8081 PHY * seven 1G RJ45 ports via built-in PHY-s * one 10G SFP+ cage * All ports share the same 10G switch uplink to the CPU - LED: User, SFP, Hdr1, Hdr2 - Buttons: Reset - UART: 115200 8n1 on the MikroTik 16 pin header - USB: One USB3 port - Power: 24-57 V via * DC jack * 802.3af/at PoE on Ethernet 1 * 2-pin terminal on the side 16 Pin header pinout: 1 GND Vcc RX ? GND #--------------------# |.-. .-. .-. .-. .-. | |'-' '-' '-' '-' '-' | |.-. .-. .-. .-. .-. | |'-' '-' '-' '-' '-' | #--------------------# 2 CLK DO /CS TX DI Do note that the default RouterBoot has disabled UART even when the required hard-config bit is set to indicate UART support. Patched RouterBoot must be used if UART is desired. Also, since ARM64 Linux support does not support in any way appending the DTB to the kernel image we use mainline U-Boot with added RB5009 support in order to boot OpenWrt. MikroTik uses YAFFS to store the boot kernel and we use YAFUT to put U-Boot as the kernel which RouterBoot then simply boots as an ELF. Install instructions: NOTE: In case you are using an existing out of tree version of OpenWrt make sure to reinstall RouterOS via Netinstall to return the expected partition layout. 1. Prepare FAT or EXT4 formatted USB drive with OpenWrt initramfs: * Copy bin/targets/mvebu/cortexa72/openwrt-mvebu-cortexa72-mikrotik_rb5009-initramfs-uImage.itb to the root of FAT or EXT4 formatted USB drive. * Plug in the drive to the RB5009 USB port 2. Boot the modified OpenWrt built U-Boot ELF: u-boot.elf from bin/targets/mvebu/cortexa72/u-boot-rb5009/u-boot.elf Consult OpenWrt wiki for common instructions on switching to boot from Ethernet once as well as serving the file: https://openwrt.org/toh/mikrotik/common Once U-Boot is booted it will attempt to boot in the following order: 1. NAND 2. USB 3. Network NAND is expected to fail but USB or Networking need to serve the OpenWrt initramfs image and after booting it will be accessible from LAN ports on the default 192.168.1.1 IP with default credentials. 3. Flash modified RouterBoot that enables UART (Optional but recommended): https://public.robimarko.eu/RB5009/70x0-7.15-uart.fwf * Copy the file over to the booted OpenWrt initramfs to /tmp * Run: mtd erase RouterBOOT-primary * Run: mtd write /tmp/70x0-7.15-uart.fwf RouterBOOT-primary 4. Install U-Boot to boot OpenWrt: * Copy the u-boot.elf from bin/targets/mvebu/cortexa72/u-boot-rb5009/u-boot.elf to OpenWrt initramfs to /tmp. * Run: . /lib/functions.sh * Run: yafut -d /dev/mtd$(find_mtd_index "YAFFS") -w -i /tmp/u-boot.elf -o kernel -T This will use yafut to copy the U-Boot as kernel in YAFFS so that RouterBoot boots it. 5. Wipe the NAND UBI partition: * Run: ubiformat /dev/mtd$(find_mtd_index "ubi") -y This will prepare the existing RouterOS rootfs partition for OpenWrt. 6. Flash OpenWrt: * Copy the bin/targets/mvebu/cortexa72/openwrt-mvebu-cortexa72-mikrotik_rb5009-squashfs-sysupgrade.bin to OpenWrt initramfs to /tmp. * Run: sysupgrade /tmp/openwrt-mvebu-cortexa72-mikrotik_rb5009-squashfs-sysupgrade.bin Device will reboot, boot U-Boot and then OpenWrt. Recovery: In case you need to reinstall OpenWrt if it crashes after U-Boot, there is a recovery mechanism in OpenWrt to boot the OpenWrt initramfs. You need to hold the reset button while U-Boot is booting and then it will boot the OpenWrt initramfs from: 1. USB 2. Networking In recovery mode U-Boot will light all of the LED-s except for the switch ones. In case you want to return to RouterOS, you can simply do that via Netinstall like on any other MikroTik board. Credits also go to Serhii Serhieiev <adron@mstnt.com> who origininally figured out the RouterBoot modification for UART, the missing 10G MVPP2 support in U-Boot as well as the custom aux loader to boot directly via RouterBoot. Link: https://github.com/openwrt/openwrt/pull/15765 Signed-off-by: Robert Marko <robimarko@gmail.com>
2022-02-09 07:45:47 +00:00
define Device/FitImage
KERNEL_SUFFIX := -uImage.itb
KERNEL = kernel-bin | gzip | fit gzip $$(KDIR)/image-$$(DEVICE_DTS).dtb
KERNEL_NAME := Image
endef
define Device/UbiFit
KERNEL_IN_UBI := 1
IMAGES := factory.ubi sysupgrade.bin
IMAGE/factory.ubi := append-ubi
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
endef
mvebu: add Globalscale MOCHAbin Globalscale MOCHAbin is a Armada 7040 based development board. Specifications: * Armada 7040 Quad core ARMv8 Cortex A-72 @ 1.4GHz * 2 / 4 / 8 GB of DDR4 DRAM * 16 GB eMMC * 4MB SPI-NOR (Bootloader) * 1x M.2-2280 B-key socket (for SSD expansion, SATA3 only) * 1x M.2-2250 B-key socket (for modems, USB2.0 and I2C only) * 1x Mini-PCIe 3.0 (x1, USB2.0 and I2C) * 1x SATA 7+15 socket (SATA3) * 1x 16-pin (2×8) MikroBus Connector * 1x SIM card slot (Connected to the mini-PCIe and both M.2 slots) * 2x USB3.0 Type-A ports via SMSC USB5434B hub * Cortex 2x5 JTAG * microUSB port for UART (PL2303GL/PL2303SA onboard) * 1x 10G SFP+ * 1x 1G SFP (Connected to 88E1512 PHY) * 1x 1G RJ45 with PoE PD (Connected to 88E1512 PHY) * 4x 1G RJ45 ports via Topaz 88E6141 switch * RTC with battery holder (SoC provided, requires CR2032 battery) * 1x 12V DC IN * 1x Power switch * 1x 12V fan header (3-pin, power only) * 1x mini-PCIe LED header (2x0.1" pins) * 1x M.2-2280 LED header (2x0.1" pins) * 6x Bootstrap jumpers * 1x Power LED (Green) * 3x Tri-color RGB LEDs (Controllable) * 1x Microchip ATECC608B secure element Note that 1G SFP and 1G WAN cannot be used at the same time as they are in parallel connected to the same PHY. Installation: Copy dtb from build_dir to bin/ and run tftpserver there: $ cp ./build_dir/target-aarch64_cortex-a72_musl/linux-mvebu_cortexa72/image-armada-7040-mochabin.dtb bin/targets/mvebu/cortexa72/ $ in.tftpd -L -s bin/targets/mvebu/cortexa72/ Connect to the device UART via microUSB port and power on the device. Power on the device and hit any key to stop the autoboot. Set serverip (host IP) and ipaddr (any free IP address on the same subnet), e.g: $ setenv serverip 192.168.1.10 # Host $ setenv ipaddr 192.168.1.15 # Device Set the ethernet device (Example for the 1G WAN): $ setenv ethact mvpp2-2 Ping server to confirm network is working: $ ping $serverip Using mvpp2-2 device host 192.168.1.15 is alive Tftpboot the firmware: $ tftpboot $kernel_addr_r openwrt-mvebu-cortexa72-globalscale_mochabin-initramfs-kernel.bin $ tftpboot $fdt_addr_r image-armada-7040-mochabin.dtb Boot the image: $ booti $kernel_addr_r - $fdt_addr_r Once the initramfs is booted, transfer openwrt-mvebu-cortexa72-globalscale_mochabin-squashfs-sdcard.img.gz to /tmp dir on the device. Gunzip and dd the image: $ gunzip /tmp/openwrt-mvebu-cortexa72-globalscale_mochabin-squashfs-sdcard.img.gz $ dd if=/tmp/openwrt-mvebu-cortexa72-globalscale_mochabin-squashfs-sdcard.img of=/dev/mmcblk0 && sync Reboot the device. Hit any key to stop the autoboot. Reset U-boot env and set the bootcmd: $ env default -a $ setenv bootcmd 'load mmc 0 ${loadaddr} boot.scr && source ${loadaddr}' Optionally I would advise to edit the console env variable to remove earlycon as that causes the kernel to never use the driver for the serial console. Earlycon should be used only for debugging before the kernel can configure the console and will otherwise cause various issues with the console. $ setenv console 'console=ttyS0,115200' Save and reset $ saveenv $ reset OpenWrt should boot from eMMC now. Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2021-09-27 21:14:51 +00:00
define Device/globalscale_mochabin
$(call Device/Default-arm64)
DEVICE_VENDOR := Globalscale
DEVICE_MODEL := MOCHAbin
SOC := armada-7040
endef
TARGET_DEVICES += globalscale_mochabin
define Device/marvell_armada7040-db
$(call Device/Default-arm64)
DEVICE_VENDOR := Marvell
DEVICE_MODEL := Armada 7040 Development Board
DEVICE_DTS := armada-7040-db
IMAGE/sdcard.img.gz := boot-img-ext4 | sdcard-img-ext4 | gzip | append-metadata
endef
TARGET_DEVICES += marvell_armada7040-db
define Device/marvell_armada8040-db
$(call Device/Default-arm64)
DEVICE_VENDOR := Marvell
DEVICE_MODEL := Armada 8040 Development Board
mvebu: initial support for Marvell Armada 7k and 8k DB boards Add initial support for cortex-a72 based Armada DB-88F8040-Modular and DB-88F7040-Modular development boards. DB-88F8040-Modular specifications: - Quad-core ARMv8 Cortex A72 CPU (up to 2 GHz) - DDR4 DIMM - 64 bits + ECC - 2 x 128 Mb SPI NOR flash memory - 2 x 1G Ethernet port via RGMII (RJ45) - 2 x SD card ports (4 bit port on CP, 8 bit port on AP) - 2 SERDES modules with the following interfaces each: - 2 x SATA Rev 3.0 port (Port1 via SERDES module CON4 (active port), Port0 via SERDES Module CON2 or CON1 (optional port)) - 3 x PCI Express (PCIe) Gen 3.0 (Port2 via SERDES module CON5 (active port), Port1 via SERDES module CON7 (optional port), Port0 via SERDES module CON6 (optional port)) - 2 x USB3 (USB 2.0 backward compatible) host (via SERDES module CON9 and CON10) - 1 x 10G port over SFP+ connector (via SERDES module CON8) - 1 x MCI interface by two over USB Type C connector - 4 x serial COM port driven by the 88F8040 UART interface and converted to USB via FTDI IC - I2C Master Interface - CP I2C 2x EEPROM @ Address 0x50 and 0x57 - 1 x I/O Expander @ Address 0x21 - Sample at Reset (SatR) memory device @ Address 0x4C and 0x4E - I2C Slave Interface (via SERDES module) - Connection to each device on the board via an I2C multiplexer - JTAG interface for CPU emulator - Board dimensions: 270 mm x 240 mm (main + SERDES module) - SERDES Module Dimensions: 70 mm x 105 mm DB-88F7040-Modular specifications: - Quad-core ARMv8 Cortex A72 CPU - CPU core operating speed of up to 1.6 GHz for Dual Core, 1.4 GHz for Quad Core - DDR4 - 32 bit + ECC on Module - SLM1366-V1 (DB-DDR4-40B-MODULE) 4 GByte 32-bit - 1 x 128Mb SPI NOR flash memory - 2 x 1G Ethernet port: 1 over RGMII (RJ45) and 1 over SGMII - SD card 4 bits port on AP - eMMc Module on CP - 1 SERDES Modules with the following interfaces each: - 1 x SATA Rev 3.0 port (via SERDES module CON4) - 1 x PCI Express (PCIe) Gen 3.0 (via SERDES module CON5) - 2 x USB 3.0 (USB 2.0 backward compatible) host (via SERDES module CON9 and CON10) - 1 x 10G port over SFP+ connector (via SERDES module CON8) - 2 x MCi interface by one over USB Type C connector - 4 x Serial COM port driven by the 88F7040 UA - RT interface and converted to USB via FTDI IC - I2C Master Interface - 2 x EEPROM at address 0x57 and 0x50 in AP and 2 x EEPROM at address 0x57 and 0x50 in CP - 1 x I/O Expander at address 0x21 - Sample at Reset (SatR) memory device at address 0x4C and 0x4E - I2C Slave Interface (via SERDES module) - Connection to each device on the board via an I2C multiplexer - JTAG interface for CPU emulator - Board dimensions - 270 mm x 240 mm (main + SERDES module) - SERDES Module Dimensions - 70 mm x 105 mm Booting from USB flash drive (dd sdcard image to the flash drive): 1. reset U-Boot environment: env default -a saveenv 2. prepare U-Boot manually (make sure to set correct dtb file name): setenv bootargs_root 'root=/dev/sda2 rw rootdelay=2 ip=dhcp' setenv fdtfile armada-7040-db.dtb setenv image_name Image setenv bootcmd 'usb start; ext4load usb 0:1 $kernel_addr $image_name; ext4load usb 0:1 $fdt_addr $fdtfile; setenv bootargs $console $mtdparts $bootargs_root; booti $kernel_addr - $fdt_addr' saveenv boot Signed-off-by: Damir Samardzic <damir.samardzic@sartura.hr>
2018-05-07 07:25:53 +00:00
DEVICE_DTS := armada-8040-db
IMAGE/sdcard.img.gz := boot-img-ext4 | sdcard-img-ext4 | gzip | append-metadata
mvebu: initial support for Marvell Armada 7k and 8k DB boards Add initial support for cortex-a72 based Armada DB-88F8040-Modular and DB-88F7040-Modular development boards. DB-88F8040-Modular specifications: - Quad-core ARMv8 Cortex A72 CPU (up to 2 GHz) - DDR4 DIMM - 64 bits + ECC - 2 x 128 Mb SPI NOR flash memory - 2 x 1G Ethernet port via RGMII (RJ45) - 2 x SD card ports (4 bit port on CP, 8 bit port on AP) - 2 SERDES modules with the following interfaces each: - 2 x SATA Rev 3.0 port (Port1 via SERDES module CON4 (active port), Port0 via SERDES Module CON2 or CON1 (optional port)) - 3 x PCI Express (PCIe) Gen 3.0 (Port2 via SERDES module CON5 (active port), Port1 via SERDES module CON7 (optional port), Port0 via SERDES module CON6 (optional port)) - 2 x USB3 (USB 2.0 backward compatible) host (via SERDES module CON9 and CON10) - 1 x 10G port over SFP+ connector (via SERDES module CON8) - 1 x MCI interface by two over USB Type C connector - 4 x serial COM port driven by the 88F8040 UART interface and converted to USB via FTDI IC - I2C Master Interface - CP I2C 2x EEPROM @ Address 0x50 and 0x57 - 1 x I/O Expander @ Address 0x21 - Sample at Reset (SatR) memory device @ Address 0x4C and 0x4E - I2C Slave Interface (via SERDES module) - Connection to each device on the board via an I2C multiplexer - JTAG interface for CPU emulator - Board dimensions: 270 mm x 240 mm (main + SERDES module) - SERDES Module Dimensions: 70 mm x 105 mm DB-88F7040-Modular specifications: - Quad-core ARMv8 Cortex A72 CPU - CPU core operating speed of up to 1.6 GHz for Dual Core, 1.4 GHz for Quad Core - DDR4 - 32 bit + ECC on Module - SLM1366-V1 (DB-DDR4-40B-MODULE) 4 GByte 32-bit - 1 x 128Mb SPI NOR flash memory - 2 x 1G Ethernet port: 1 over RGMII (RJ45) and 1 over SGMII - SD card 4 bits port on AP - eMMc Module on CP - 1 SERDES Modules with the following interfaces each: - 1 x SATA Rev 3.0 port (via SERDES module CON4) - 1 x PCI Express (PCIe) Gen 3.0 (via SERDES module CON5) - 2 x USB 3.0 (USB 2.0 backward compatible) host (via SERDES module CON9 and CON10) - 1 x 10G port over SFP+ connector (via SERDES module CON8) - 2 x MCi interface by one over USB Type C connector - 4 x Serial COM port driven by the 88F7040 UA - RT interface and converted to USB via FTDI IC - I2C Master Interface - 2 x EEPROM at address 0x57 and 0x50 in AP and 2 x EEPROM at address 0x57 and 0x50 in CP - 1 x I/O Expander at address 0x21 - Sample at Reset (SatR) memory device at address 0x4C and 0x4E - I2C Slave Interface (via SERDES module) - Connection to each device on the board via an I2C multiplexer - JTAG interface for CPU emulator - Board dimensions - 270 mm x 240 mm (main + SERDES module) - SERDES Module Dimensions - 70 mm x 105 mm Booting from USB flash drive (dd sdcard image to the flash drive): 1. reset U-Boot environment: env default -a saveenv 2. prepare U-Boot manually (make sure to set correct dtb file name): setenv bootargs_root 'root=/dev/sda2 rw rootdelay=2 ip=dhcp' setenv fdtfile armada-7040-db.dtb setenv image_name Image setenv bootcmd 'usb start; ext4load usb 0:1 $kernel_addr $image_name; ext4load usb 0:1 $fdt_addr $fdtfile; setenv bootargs $console $mtdparts $bootargs_root; booti $kernel_addr - $fdt_addr' saveenv boot Signed-off-by: Damir Samardzic <damir.samardzic@sartura.hr>
2018-05-07 07:25:53 +00:00
endef
TARGET_DEVICES += marvell_armada8040-db
mvebu: initial support for Marvell Armada 7k and 8k DB boards Add initial support for cortex-a72 based Armada DB-88F8040-Modular and DB-88F7040-Modular development boards. DB-88F8040-Modular specifications: - Quad-core ARMv8 Cortex A72 CPU (up to 2 GHz) - DDR4 DIMM - 64 bits + ECC - 2 x 128 Mb SPI NOR flash memory - 2 x 1G Ethernet port via RGMII (RJ45) - 2 x SD card ports (4 bit port on CP, 8 bit port on AP) - 2 SERDES modules with the following interfaces each: - 2 x SATA Rev 3.0 port (Port1 via SERDES module CON4 (active port), Port0 via SERDES Module CON2 or CON1 (optional port)) - 3 x PCI Express (PCIe) Gen 3.0 (Port2 via SERDES module CON5 (active port), Port1 via SERDES module CON7 (optional port), Port0 via SERDES module CON6 (optional port)) - 2 x USB3 (USB 2.0 backward compatible) host (via SERDES module CON9 and CON10) - 1 x 10G port over SFP+ connector (via SERDES module CON8) - 1 x MCI interface by two over USB Type C connector - 4 x serial COM port driven by the 88F8040 UART interface and converted to USB via FTDI IC - I2C Master Interface - CP I2C 2x EEPROM @ Address 0x50 and 0x57 - 1 x I/O Expander @ Address 0x21 - Sample at Reset (SatR) memory device @ Address 0x4C and 0x4E - I2C Slave Interface (via SERDES module) - Connection to each device on the board via an I2C multiplexer - JTAG interface for CPU emulator - Board dimensions: 270 mm x 240 mm (main + SERDES module) - SERDES Module Dimensions: 70 mm x 105 mm DB-88F7040-Modular specifications: - Quad-core ARMv8 Cortex A72 CPU - CPU core operating speed of up to 1.6 GHz for Dual Core, 1.4 GHz for Quad Core - DDR4 - 32 bit + ECC on Module - SLM1366-V1 (DB-DDR4-40B-MODULE) 4 GByte 32-bit - 1 x 128Mb SPI NOR flash memory - 2 x 1G Ethernet port: 1 over RGMII (RJ45) and 1 over SGMII - SD card 4 bits port on AP - eMMc Module on CP - 1 SERDES Modules with the following interfaces each: - 1 x SATA Rev 3.0 port (via SERDES module CON4) - 1 x PCI Express (PCIe) Gen 3.0 (via SERDES module CON5) - 2 x USB 3.0 (USB 2.0 backward compatible) host (via SERDES module CON9 and CON10) - 1 x 10G port over SFP+ connector (via SERDES module CON8) - 2 x MCi interface by one over USB Type C connector - 4 x Serial COM port driven by the 88F7040 UA - RT interface and converted to USB via FTDI IC - I2C Master Interface - 2 x EEPROM at address 0x57 and 0x50 in AP and 2 x EEPROM at address 0x57 and 0x50 in CP - 1 x I/O Expander at address 0x21 - Sample at Reset (SatR) memory device at address 0x4C and 0x4E - I2C Slave Interface (via SERDES module) - Connection to each device on the board via an I2C multiplexer - JTAG interface for CPU emulator - Board dimensions - 270 mm x 240 mm (main + SERDES module) - SERDES Module Dimensions - 70 mm x 105 mm Booting from USB flash drive (dd sdcard image to the flash drive): 1. reset U-Boot environment: env default -a saveenv 2. prepare U-Boot manually (make sure to set correct dtb file name): setenv bootargs_root 'root=/dev/sda2 rw rootdelay=2 ip=dhcp' setenv fdtfile armada-7040-db.dtb setenv image_name Image setenv bootcmd 'usb start; ext4load usb 0:1 $kernel_addr $image_name; ext4load usb 0:1 $fdt_addr $fdtfile; setenv bootargs $console $mtdparts $bootargs_root; booti $kernel_addr - $fdt_addr' saveenv boot Signed-off-by: Damir Samardzic <damir.samardzic@sartura.hr>
2018-05-07 07:25:53 +00:00
mvebu: add support for MACCHIATObin Single Shot Add support for Marvell MACCHIATObin Single Shot, cortex-a72 based Marvell ARMADA 8040 Community board. Single Shot was broken as the device tree is different on the Double Shot Board. Specifications: - Quad core Cortex-A72 (up to 2GHz) - DDR4 DIMM slot with optional ECC and single/dual chip select support - Dual 10GbE (1/2.5/10GbE) SFP+ 2.5GbE (1/2.5GbE) via SFP 1GbE via copper - SPI Flash - 3 X SATA 3.0 connectors - MicroSD connector - eMMC - PCI x4 3.0 slot - USB 2.0 Headers (Internal) - USB 3.0 connector - Console port (UART) over microUSB connector - 20-pin Connector for CPU JTAG debugger - 2 X UART Headers - 12V input via DC Jack - ATX type power connector - Form Factor: Mini-ITX (170 mm x 170 mm) More details at http://macchiatobin.net Installation: Write the Image to your Micro SD Card and insert it in the MACCHIATObin Single Shot SD Card Slot. In the U-Boot Environment: 1. reset U-Boot environment: env default -a saveenv 2. prepare U-Boot with boot script: setenv bootcmd "load mmc 1:1 0x4d00000 boot.scr; source 0x4d00000" saveenv or manually (hanging lines indicate wrapped one-line command): setenv fdt_name armada-8040-mcbin-singleshot.dtb setenv image_name Image setenv bootcmd 'mmc dev 1; ext4load mmc 1:1 $kernel_addr $image_name;ext4load mmc 1:1 $fdt_addr $fdt_name;setenv bootargs $console root=/dev/mmcblk1p2 rw rootwait; booti $kernel_addr - $fdt_addr' saveenv On newer Bootloaders (18.12) the Variables have been changed, use: setenv fdt_name armada-8040-mcbin-singleshot.dtb setenv image_name Image setenv bootcmd 'mmc dev 1; ext4load mmc 1:1 $kernel_addr_r $image_name;ext4load mmc 1:1 $fdt_addr_r $fdt_name;setenv bootargs $console root=/dev/mmcblk1p2 rw rootwait; booti $kernel_addr_r - $fdt_addr_r' Reported-by: Alexandra Alth <alexandra@alth.de> Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl> Tested-by: Alexandra Alth <alexandra@alth.de> [add specs and installation as provided by Alexandra Alth] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-10 17:35:22 +00:00
define Device/marvell_macchiatobin-doubleshot
$(call Device/Default-arm64)
DEVICE_VENDOR := SolidRun
DEVICE_MODEL := MACCHIATObin
mvebu: add support for MACCHIATObin Single Shot Add support for Marvell MACCHIATObin Single Shot, cortex-a72 based Marvell ARMADA 8040 Community board. Single Shot was broken as the device tree is different on the Double Shot Board. Specifications: - Quad core Cortex-A72 (up to 2GHz) - DDR4 DIMM slot with optional ECC and single/dual chip select support - Dual 10GbE (1/2.5/10GbE) SFP+ 2.5GbE (1/2.5GbE) via SFP 1GbE via copper - SPI Flash - 3 X SATA 3.0 connectors - MicroSD connector - eMMC - PCI x4 3.0 slot - USB 2.0 Headers (Internal) - USB 3.0 connector - Console port (UART) over microUSB connector - 20-pin Connector for CPU JTAG debugger - 2 X UART Headers - 12V input via DC Jack - ATX type power connector - Form Factor: Mini-ITX (170 mm x 170 mm) More details at http://macchiatobin.net Installation: Write the Image to your Micro SD Card and insert it in the MACCHIATObin Single Shot SD Card Slot. In the U-Boot Environment: 1. reset U-Boot environment: env default -a saveenv 2. prepare U-Boot with boot script: setenv bootcmd "load mmc 1:1 0x4d00000 boot.scr; source 0x4d00000" saveenv or manually (hanging lines indicate wrapped one-line command): setenv fdt_name armada-8040-mcbin-singleshot.dtb setenv image_name Image setenv bootcmd 'mmc dev 1; ext4load mmc 1:1 $kernel_addr $image_name;ext4load mmc 1:1 $fdt_addr $fdt_name;setenv bootargs $console root=/dev/mmcblk1p2 rw rootwait; booti $kernel_addr - $fdt_addr' saveenv On newer Bootloaders (18.12) the Variables have been changed, use: setenv fdt_name armada-8040-mcbin-singleshot.dtb setenv image_name Image setenv bootcmd 'mmc dev 1; ext4load mmc 1:1 $kernel_addr_r $image_name;ext4load mmc 1:1 $fdt_addr_r $fdt_name;setenv bootargs $console root=/dev/mmcblk1p2 rw rootwait; booti $kernel_addr_r - $fdt_addr_r' Reported-by: Alexandra Alth <alexandra@alth.de> Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl> Tested-by: Alexandra Alth <alexandra@alth.de> [add specs and installation as provided by Alexandra Alth] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-10 17:35:22 +00:00
DEVICE_VARIANT := Double Shot
DEVICE_ALT0_VENDOR := SolidRun
DEVICE_ALT0_MODEL := Armada 8040 Community Board
mvebu: add support for MACCHIATObin Single Shot Add support for Marvell MACCHIATObin Single Shot, cortex-a72 based Marvell ARMADA 8040 Community board. Single Shot was broken as the device tree is different on the Double Shot Board. Specifications: - Quad core Cortex-A72 (up to 2GHz) - DDR4 DIMM slot with optional ECC and single/dual chip select support - Dual 10GbE (1/2.5/10GbE) SFP+ 2.5GbE (1/2.5GbE) via SFP 1GbE via copper - SPI Flash - 3 X SATA 3.0 connectors - MicroSD connector - eMMC - PCI x4 3.0 slot - USB 2.0 Headers (Internal) - USB 3.0 connector - Console port (UART) over microUSB connector - 20-pin Connector for CPU JTAG debugger - 2 X UART Headers - 12V input via DC Jack - ATX type power connector - Form Factor: Mini-ITX (170 mm x 170 mm) More details at http://macchiatobin.net Installation: Write the Image to your Micro SD Card and insert it in the MACCHIATObin Single Shot SD Card Slot. In the U-Boot Environment: 1. reset U-Boot environment: env default -a saveenv 2. prepare U-Boot with boot script: setenv bootcmd "load mmc 1:1 0x4d00000 boot.scr; source 0x4d00000" saveenv or manually (hanging lines indicate wrapped one-line command): setenv fdt_name armada-8040-mcbin-singleshot.dtb setenv image_name Image setenv bootcmd 'mmc dev 1; ext4load mmc 1:1 $kernel_addr $image_name;ext4load mmc 1:1 $fdt_addr $fdt_name;setenv bootargs $console root=/dev/mmcblk1p2 rw rootwait; booti $kernel_addr - $fdt_addr' saveenv On newer Bootloaders (18.12) the Variables have been changed, use: setenv fdt_name armada-8040-mcbin-singleshot.dtb setenv image_name Image setenv bootcmd 'mmc dev 1; ext4load mmc 1:1 $kernel_addr_r $image_name;ext4load mmc 1:1 $fdt_addr_r $fdt_name;setenv bootargs $console root=/dev/mmcblk1p2 rw rootwait; booti $kernel_addr_r - $fdt_addr_r' Reported-by: Alexandra Alth <alexandra@alth.de> Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl> Tested-by: Alexandra Alth <alexandra@alth.de> [add specs and installation as provided by Alexandra Alth] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-10 17:35:22 +00:00
DEVICE_ALT0_VARIANT := Double Shot
DEVICE_PACKAGES += kmod-i2c-mux-pca954x
DEVICE_DTS := armada-8040-mcbin
SUPPORTED_DEVICES := marvell,armada8040-mcbin-doubleshot marvell,armada8040-mcbin
mvebu: initial support for Marvell Armada 7k and 8k DB boards Add initial support for cortex-a72 based Armada DB-88F8040-Modular and DB-88F7040-Modular development boards. DB-88F8040-Modular specifications: - Quad-core ARMv8 Cortex A72 CPU (up to 2 GHz) - DDR4 DIMM - 64 bits + ECC - 2 x 128 Mb SPI NOR flash memory - 2 x 1G Ethernet port via RGMII (RJ45) - 2 x SD card ports (4 bit port on CP, 8 bit port on AP) - 2 SERDES modules with the following interfaces each: - 2 x SATA Rev 3.0 port (Port1 via SERDES module CON4 (active port), Port0 via SERDES Module CON2 or CON1 (optional port)) - 3 x PCI Express (PCIe) Gen 3.0 (Port2 via SERDES module CON5 (active port), Port1 via SERDES module CON7 (optional port), Port0 via SERDES module CON6 (optional port)) - 2 x USB3 (USB 2.0 backward compatible) host (via SERDES module CON9 and CON10) - 1 x 10G port over SFP+ connector (via SERDES module CON8) - 1 x MCI interface by two over USB Type C connector - 4 x serial COM port driven by the 88F8040 UART interface and converted to USB via FTDI IC - I2C Master Interface - CP I2C 2x EEPROM @ Address 0x50 and 0x57 - 1 x I/O Expander @ Address 0x21 - Sample at Reset (SatR) memory device @ Address 0x4C and 0x4E - I2C Slave Interface (via SERDES module) - Connection to each device on the board via an I2C multiplexer - JTAG interface for CPU emulator - Board dimensions: 270 mm x 240 mm (main + SERDES module) - SERDES Module Dimensions: 70 mm x 105 mm DB-88F7040-Modular specifications: - Quad-core ARMv8 Cortex A72 CPU - CPU core operating speed of up to 1.6 GHz for Dual Core, 1.4 GHz for Quad Core - DDR4 - 32 bit + ECC on Module - SLM1366-V1 (DB-DDR4-40B-MODULE) 4 GByte 32-bit - 1 x 128Mb SPI NOR flash memory - 2 x 1G Ethernet port: 1 over RGMII (RJ45) and 1 over SGMII - SD card 4 bits port on AP - eMMc Module on CP - 1 SERDES Modules with the following interfaces each: - 1 x SATA Rev 3.0 port (via SERDES module CON4) - 1 x PCI Express (PCIe) Gen 3.0 (via SERDES module CON5) - 2 x USB 3.0 (USB 2.0 backward compatible) host (via SERDES module CON9 and CON10) - 1 x 10G port over SFP+ connector (via SERDES module CON8) - 2 x MCi interface by one over USB Type C connector - 4 x Serial COM port driven by the 88F7040 UA - RT interface and converted to USB via FTDI IC - I2C Master Interface - 2 x EEPROM at address 0x57 and 0x50 in AP and 2 x EEPROM at address 0x57 and 0x50 in CP - 1 x I/O Expander at address 0x21 - Sample at Reset (SatR) memory device at address 0x4C and 0x4E - I2C Slave Interface (via SERDES module) - Connection to each device on the board via an I2C multiplexer - JTAG interface for CPU emulator - Board dimensions - 270 mm x 240 mm (main + SERDES module) - SERDES Module Dimensions - 70 mm x 105 mm Booting from USB flash drive (dd sdcard image to the flash drive): 1. reset U-Boot environment: env default -a saveenv 2. prepare U-Boot manually (make sure to set correct dtb file name): setenv bootargs_root 'root=/dev/sda2 rw rootdelay=2 ip=dhcp' setenv fdtfile armada-7040-db.dtb setenv image_name Image setenv bootcmd 'usb start; ext4load usb 0:1 $kernel_addr $image_name; ext4load usb 0:1 $fdt_addr $fdtfile; setenv bootargs $console $mtdparts $bootargs_root; booti $kernel_addr - $fdt_addr' saveenv boot Signed-off-by: Damir Samardzic <damir.samardzic@sartura.hr>
2018-05-07 07:25:53 +00:00
endef
mvebu: add support for MACCHIATObin Single Shot Add support for Marvell MACCHIATObin Single Shot, cortex-a72 based Marvell ARMADA 8040 Community board. Single Shot was broken as the device tree is different on the Double Shot Board. Specifications: - Quad core Cortex-A72 (up to 2GHz) - DDR4 DIMM slot with optional ECC and single/dual chip select support - Dual 10GbE (1/2.5/10GbE) SFP+ 2.5GbE (1/2.5GbE) via SFP 1GbE via copper - SPI Flash - 3 X SATA 3.0 connectors - MicroSD connector - eMMC - PCI x4 3.0 slot - USB 2.0 Headers (Internal) - USB 3.0 connector - Console port (UART) over microUSB connector - 20-pin Connector for CPU JTAG debugger - 2 X UART Headers - 12V input via DC Jack - ATX type power connector - Form Factor: Mini-ITX (170 mm x 170 mm) More details at http://macchiatobin.net Installation: Write the Image to your Micro SD Card and insert it in the MACCHIATObin Single Shot SD Card Slot. In the U-Boot Environment: 1. reset U-Boot environment: env default -a saveenv 2. prepare U-Boot with boot script: setenv bootcmd "load mmc 1:1 0x4d00000 boot.scr; source 0x4d00000" saveenv or manually (hanging lines indicate wrapped one-line command): setenv fdt_name armada-8040-mcbin-singleshot.dtb setenv image_name Image setenv bootcmd 'mmc dev 1; ext4load mmc 1:1 $kernel_addr $image_name;ext4load mmc 1:1 $fdt_addr $fdt_name;setenv bootargs $console root=/dev/mmcblk1p2 rw rootwait; booti $kernel_addr - $fdt_addr' saveenv On newer Bootloaders (18.12) the Variables have been changed, use: setenv fdt_name armada-8040-mcbin-singleshot.dtb setenv image_name Image setenv bootcmd 'mmc dev 1; ext4load mmc 1:1 $kernel_addr_r $image_name;ext4load mmc 1:1 $fdt_addr_r $fdt_name;setenv bootargs $console root=/dev/mmcblk1p2 rw rootwait; booti $kernel_addr_r - $fdt_addr_r' Reported-by: Alexandra Alth <alexandra@alth.de> Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl> Tested-by: Alexandra Alth <alexandra@alth.de> [add specs and installation as provided by Alexandra Alth] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-10 17:35:22 +00:00
TARGET_DEVICES += marvell_macchiatobin-doubleshot
define Device/marvell_macchiatobin-singleshot
$(call Device/Default-arm64)
DEVICE_VENDOR := SolidRun
DEVICE_MODEL := MACCHIATObin
DEVICE_VARIANT := Single Shot
DEVICE_ALT0_VENDOR := SolidRun
DEVICE_ALT0_MODEL := Armada 8040 Community Board
DEVICE_ALT0_VARIANT := Single Shot
DEVICE_PACKAGES += kmod-i2c-mux-pca954x
mvebu: add support for MACCHIATObin Single Shot Add support for Marvell MACCHIATObin Single Shot, cortex-a72 based Marvell ARMADA 8040 Community board. Single Shot was broken as the device tree is different on the Double Shot Board. Specifications: - Quad core Cortex-A72 (up to 2GHz) - DDR4 DIMM slot with optional ECC and single/dual chip select support - Dual 10GbE (1/2.5/10GbE) SFP+ 2.5GbE (1/2.5GbE) via SFP 1GbE via copper - SPI Flash - 3 X SATA 3.0 connectors - MicroSD connector - eMMC - PCI x4 3.0 slot - USB 2.0 Headers (Internal) - USB 3.0 connector - Console port (UART) over microUSB connector - 20-pin Connector for CPU JTAG debugger - 2 X UART Headers - 12V input via DC Jack - ATX type power connector - Form Factor: Mini-ITX (170 mm x 170 mm) More details at http://macchiatobin.net Installation: Write the Image to your Micro SD Card and insert it in the MACCHIATObin Single Shot SD Card Slot. In the U-Boot Environment: 1. reset U-Boot environment: env default -a saveenv 2. prepare U-Boot with boot script: setenv bootcmd "load mmc 1:1 0x4d00000 boot.scr; source 0x4d00000" saveenv or manually (hanging lines indicate wrapped one-line command): setenv fdt_name armada-8040-mcbin-singleshot.dtb setenv image_name Image setenv bootcmd 'mmc dev 1; ext4load mmc 1:1 $kernel_addr $image_name;ext4load mmc 1:1 $fdt_addr $fdt_name;setenv bootargs $console root=/dev/mmcblk1p2 rw rootwait; booti $kernel_addr - $fdt_addr' saveenv On newer Bootloaders (18.12) the Variables have been changed, use: setenv fdt_name armada-8040-mcbin-singleshot.dtb setenv image_name Image setenv bootcmd 'mmc dev 1; ext4load mmc 1:1 $kernel_addr_r $image_name;ext4load mmc 1:1 $fdt_addr_r $fdt_name;setenv bootargs $console root=/dev/mmcblk1p2 rw rootwait; booti $kernel_addr_r - $fdt_addr_r' Reported-by: Alexandra Alth <alexandra@alth.de> Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl> Tested-by: Alexandra Alth <alexandra@alth.de> [add specs and installation as provided by Alexandra Alth] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-10 17:35:22 +00:00
DEVICE_DTS := armada-8040-mcbin-singleshot
SUPPORTED_DEVICES := marvell,armada8040-mcbin-singleshot
endef
TARGET_DEVICES += marvell_macchiatobin-singleshot
mvebu: add support for RB5009UG+S+IN This patch adds support for Mikrotik RB5009UG+S+IN. Specifications: - SoC: Marvell Armada 7040 (88F7040) - 4 cores, ARMv8 Cortex-A72, 1.4GHz, 64bit - RAM: 1024MB DDR4 - Flash: 16MB SPI NOR flash, 1024MB NAND - Ethernet: * Marvell 88E6393X - Amethyst: * one 2.5G RJ45 port via Qualcomm QCA8081 PHY * seven 1G RJ45 ports via built-in PHY-s * one 10G SFP+ cage * All ports share the same 10G switch uplink to the CPU - LED: User, SFP, Hdr1, Hdr2 - Buttons: Reset - UART: 115200 8n1 on the MikroTik 16 pin header - USB: One USB3 port - Power: 24-57 V via * DC jack * 802.3af/at PoE on Ethernet 1 * 2-pin terminal on the side 16 Pin header pinout: 1 GND Vcc RX ? GND #--------------------# |.-. .-. .-. .-. .-. | |'-' '-' '-' '-' '-' | |.-. .-. .-. .-. .-. | |'-' '-' '-' '-' '-' | #--------------------# 2 CLK DO /CS TX DI Do note that the default RouterBoot has disabled UART even when the required hard-config bit is set to indicate UART support. Patched RouterBoot must be used if UART is desired. Also, since ARM64 Linux support does not support in any way appending the DTB to the kernel image we use mainline U-Boot with added RB5009 support in order to boot OpenWrt. MikroTik uses YAFFS to store the boot kernel and we use YAFUT to put U-Boot as the kernel which RouterBoot then simply boots as an ELF. Install instructions: NOTE: In case you are using an existing out of tree version of OpenWrt make sure to reinstall RouterOS via Netinstall to return the expected partition layout. 1. Prepare FAT or EXT4 formatted USB drive with OpenWrt initramfs: * Copy bin/targets/mvebu/cortexa72/openwrt-mvebu-cortexa72-mikrotik_rb5009-initramfs-uImage.itb to the root of FAT or EXT4 formatted USB drive. * Plug in the drive to the RB5009 USB port 2. Boot the modified OpenWrt built U-Boot ELF: u-boot.elf from bin/targets/mvebu/cortexa72/u-boot-rb5009/u-boot.elf Consult OpenWrt wiki for common instructions on switching to boot from Ethernet once as well as serving the file: https://openwrt.org/toh/mikrotik/common Once U-Boot is booted it will attempt to boot in the following order: 1. NAND 2. USB 3. Network NAND is expected to fail but USB or Networking need to serve the OpenWrt initramfs image and after booting it will be accessible from LAN ports on the default 192.168.1.1 IP with default credentials. 3. Flash modified RouterBoot that enables UART (Optional but recommended): https://public.robimarko.eu/RB5009/70x0-7.15-uart.fwf * Copy the file over to the booted OpenWrt initramfs to /tmp * Run: mtd erase RouterBOOT-primary * Run: mtd write /tmp/70x0-7.15-uart.fwf RouterBOOT-primary 4. Install U-Boot to boot OpenWrt: * Copy the u-boot.elf from bin/targets/mvebu/cortexa72/u-boot-rb5009/u-boot.elf to OpenWrt initramfs to /tmp. * Run: . /lib/functions.sh * Run: yafut -d /dev/mtd$(find_mtd_index "YAFFS") -w -i /tmp/u-boot.elf -o kernel -T This will use yafut to copy the U-Boot as kernel in YAFFS so that RouterBoot boots it. 5. Wipe the NAND UBI partition: * Run: ubiformat /dev/mtd$(find_mtd_index "ubi") -y This will prepare the existing RouterOS rootfs partition for OpenWrt. 6. Flash OpenWrt: * Copy the bin/targets/mvebu/cortexa72/openwrt-mvebu-cortexa72-mikrotik_rb5009-squashfs-sysupgrade.bin to OpenWrt initramfs to /tmp. * Run: sysupgrade /tmp/openwrt-mvebu-cortexa72-mikrotik_rb5009-squashfs-sysupgrade.bin Device will reboot, boot U-Boot and then OpenWrt. Recovery: In case you need to reinstall OpenWrt if it crashes after U-Boot, there is a recovery mechanism in OpenWrt to boot the OpenWrt initramfs. You need to hold the reset button while U-Boot is booting and then it will boot the OpenWrt initramfs from: 1. USB 2. Networking In recovery mode U-Boot will light all of the LED-s except for the switch ones. In case you want to return to RouterOS, you can simply do that via Netinstall like on any other MikroTik board. Credits also go to Serhii Serhieiev <adron@mstnt.com> who origininally figured out the RouterBoot modification for UART, the missing 10G MVPP2 support in U-Boot as well as the custom aux loader to boot directly via RouterBoot. Link: https://github.com/openwrt/openwrt/pull/15765 Signed-off-by: Robert Marko <robimarko@gmail.com>
2022-02-09 07:45:47 +00:00
define Device/mikrotik_rb5009
$(call Device/Default-arm64)
$(Device/NAND-128K)
$(call Device/FitImage)
$(call Device/UbiFit)
DEVICE_VENDOR := MikroTik
DEVICE_MODEL := RB5009
SOC := armada-7040
KERNEL_LOADADDR := 0x22000000
DEVICE_PACKAGES += kmod-i2c-gpio yafut
endef
TARGET_DEVICES += mikrotik_rb5009
define Device/marvell_clearfog-gt-8k
$(call Device/Default-arm64)
DEVICE_VENDOR := SolidRun
DEVICE_MODEL := Clearfog
DEVICE_VARIANT := GT-8K
DEVICE_PACKAGES += kmod-i2c-mux-pca954x kmod-crypto-hw-safexcel
DEVICE_DTS := armada-8040-clearfog-gt-8k
SUPPORTED_DEVICES := marvell,armada8040-clearfog-gt-8k
endef
TARGET_DEVICES += marvell_clearfog-gt-8k
define Device/iei_puzzle-m901
$(call Device/Default-arm64)
SOC := cn9131
DEVICE_VENDOR := iEi
DEVICE_MODEL := Puzzle-M901
DEVICE_PACKAGES += kmod-rtc-ds1307
endef
TARGET_DEVICES += iei_puzzle-m901
define Device/iei_puzzle-m902
$(call Device/Default-arm64)
SOC := cn9132
DEVICE_VENDOR := iEi
DEVICE_MODEL := Puzzle-M902
DEVICE_PACKAGES += kmod-rtc-ds1307
endef
TARGET_DEVICES += iei_puzzle-m902
define Device/solidrun_clearfog-pro
$(call Device/Default-arm64)
SOC := cn9130
DEVICE_VENDOR := SolidRun
DEVICE_MODEL := ClearFog Pro
DEVICE_PACKAGES += kmod-i2c-mux-pca954x
BOOT_SCRIPT := clearfog-pro
endef
TARGET_DEVICES += solidrun_clearfog-pro