openwrtv4/target/linux/kirkwood/image/Makefile

140 lines
3.7 KiB
Makefile
Raw Normal View History

#
# Copyright (C) 2009-2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/image.mk
KERNEL_LOADADDR:=0x8000
define Device/Default
PROFILES := Default
KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts)
KERNEL := kernel-bin | append-dtb | uImage none
KERNEL_NAME := zImage
KERNEL_SUFFIX := -uImage
KERNEL_IN_UBI := 1
PAGESIZE := 2048
SUBPAGESIZE := 512
BLOCKSIZE := 128k
IMAGES := sysupgrade.bin factory.bin
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
IMAGE/factory.bin := append-ubi
SUPPORTED_DEVICES := $(subst _,$(comma),$(1))
endef
define Device/seagate_dockstar
DEVICE_DTS := kirkwood-dockstar
DEVICE_TITLE := Seagate FreeAgent Dockstar
BOARD_NAME := dockstar
SUPPORTED_DEVICES += dockstar
endef
TARGET_DEVICES += seagate_dockstar
define Device/seagate_goflexnet
DEVICE_TITLE := Seagate GoFlexNet
DEVICE_DTS := kirkwood-goflexnet
BOARD_NAME := goflexnet
SUPPORTED_DEVICES += goflexnet
endef
TARGET_DEVICES += seagate_goflexnet
define Device/seagate_goflexhome
DEVICE_TITLE := Seagate GoFlexHome
DEVICE_DTS := kirkwood-goflexhome
BOARD_NAME := goflexhome
SUPPORTED_DEVICES += goflexhome
endef
TARGET_DEVICES += seagate_goflexhome
define Device/linksys_audi
DEVICE_TITLE := Linksys EA3500 (Audi)
DEVICE_PACKAGES := kmod-mwl8k swconfig wpad-mini
DEVICE_DTS := kirkwood-linksys-audi
KERNEL_SIZE := 2624k
KERNEL_IN_UBI := 0
UBINIZE_OPTS := -E 5
IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
BOARD_NAME := linksys-audi
SUPPORTED_DEVICES += linksys-audi
endef
TARGET_DEVICES += linksys_audi
define Device/linksys_viper
DEVICE_TITLE := Linksys E4200v2 / EA4500 (Viper)
DEVICE_PACKAGES := kmod-mwl8k swconfig wpad-mini
DEVICE_DTS := kirkwood-linksys-viper
KERNEL_SIZE := 2688k
KERNEL_IN_UBI := 0
UBINIZE_OPTS := -E 5
IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
BOARD_NAME := linksys-viper
SUPPORTED_DEVICES += linksys-viper
endef
TARGET_DEVICES += linksys_viper
define Device/iom_iconnect-1.1
DEVICE_TITLE := Iomega Iconnect
DEVICE_DTS := kirkwood-iconnect
BOARD_NAME := iconnect
SUPPORTED_DEVICES += iconnect
endef
TARGET_DEVICES += iom_iconnect-1.1
define Device/zyxel_nsa310b
kirkwood: add ZyXEL NSA310b The ZyXEL NSA310 device is a Kirkwood based NAS: - SoC: Marvell 88F6702 1200Mhz - SDRAM memory: 256MB DDR2 400Mhz - Gigabit ethernet: Realtek (over pcie) - Flash memory: 128MB - 1 Power button - 1 Power LED (blue) - 5 Status LED (green/red) - 1 Copy/Sync button - 1 Reset button - 2 SATA II port (1 internal and 1 external) - 2 USB 2.0 ports (1 front and 1 back) - Smart fan The stock u-boot cannot read ubi so it should be replaced with the LEDE/OpenWRT's u-boot or with a u-boot from here https://github.com/mibodhi/u-boot-kirkwood This device's boot ROM supports "kwboot" tool (in mainline u-boot, built automatically if CONFIG_KIRKWOOD is declared) that sends an uboot image to the board over serial connection, it is very easy to unbrick. The stock bootloader can use usb and read from FAT filesystems, so the installation process is simple, place the uboot file on a USB flashdrive formatted as FAT (here it is "openwrt-kirkwood-nsa310.bin", then connect TTL to the board and write the following commands in the bootloader console: usb reset fatload usb 0 0x1000000 openwrt-kirkwood-nsa310.bin nand write 0x1000000 0x00000 0x100000 reset Now you are rebooting in the new u-boot, write this in its console to install the firmware: usb reset fatload usb 0 0x2000000 lede-kirkwood-nsa310b-squashfs-factory.bin nand erase.part ubi nand write 0x2000000 ubi 0x600000 If your firmware file is bigger than 6 MiBs you should write its size in hex instead of 0x600000 above, or remove that number entirely (it will take a while in this case). If you are using another uboot that can read ubi, set mtdparts like this mtdparts=mtdparts=orion_nand:0x00c0000(uboot),0x80000(uboot_env),0x7ec0000(ubi) And set your bootcmd to be like this bootcmd=run setenv bootargs; ubi part ubi; ubi read 0x800000 kernel; bootm 0x800000 Then you can install the firmware as described above. After you installed (or configured) the u-boot for booting the firmware, write the device's mac address in the ethaddr u-boot env. The MAC address is usually on a sticker under the device (one of the two codes is the serial), it should begin with "107BEF" as it is assigned to ZyXEL. write in the u-boot console (use your MAC address instead of the example) setenv ethaddr 10:7B:EF:00:00:00 saveenv to save the mac address in the u-boot. Signed-off-by: Alberto Bursi <alberto.bursi@outlook.it>
2017-01-23 19:34:29 +00:00
DEVICE_TITLE := ZyXEL NSA310b
DEVICE_DTS := kirkwood-nsa310b
DEVICE_PACKAGES := kmod-r8169 kmod-gpio-button-hotplug kmod-hwmon-lm85
BOARD_NAME := nsa310b
kirkwood: add ZyXEL NSA310b The ZyXEL NSA310 device is a Kirkwood based NAS: - SoC: Marvell 88F6702 1200Mhz - SDRAM memory: 256MB DDR2 400Mhz - Gigabit ethernet: Realtek (over pcie) - Flash memory: 128MB - 1 Power button - 1 Power LED (blue) - 5 Status LED (green/red) - 1 Copy/Sync button - 1 Reset button - 2 SATA II port (1 internal and 1 external) - 2 USB 2.0 ports (1 front and 1 back) - Smart fan The stock u-boot cannot read ubi so it should be replaced with the LEDE/OpenWRT's u-boot or with a u-boot from here https://github.com/mibodhi/u-boot-kirkwood This device's boot ROM supports "kwboot" tool (in mainline u-boot, built automatically if CONFIG_KIRKWOOD is declared) that sends an uboot image to the board over serial connection, it is very easy to unbrick. The stock bootloader can use usb and read from FAT filesystems, so the installation process is simple, place the uboot file on a USB flashdrive formatted as FAT (here it is "openwrt-kirkwood-nsa310.bin", then connect TTL to the board and write the following commands in the bootloader console: usb reset fatload usb 0 0x1000000 openwrt-kirkwood-nsa310.bin nand write 0x1000000 0x00000 0x100000 reset Now you are rebooting in the new u-boot, write this in its console to install the firmware: usb reset fatload usb 0 0x2000000 lede-kirkwood-nsa310b-squashfs-factory.bin nand erase.part ubi nand write 0x2000000 ubi 0x600000 If your firmware file is bigger than 6 MiBs you should write its size in hex instead of 0x600000 above, or remove that number entirely (it will take a while in this case). If you are using another uboot that can read ubi, set mtdparts like this mtdparts=mtdparts=orion_nand:0x00c0000(uboot),0x80000(uboot_env),0x7ec0000(ubi) And set your bootcmd to be like this bootcmd=run setenv bootargs; ubi part ubi; ubi read 0x800000 kernel; bootm 0x800000 Then you can install the firmware as described above. After you installed (or configured) the u-boot for booting the firmware, write the device's mac address in the ethaddr u-boot env. The MAC address is usually on a sticker under the device (one of the two codes is the serial), it should begin with "107BEF" as it is assigned to ZyXEL. write in the u-boot console (use your MAC address instead of the example) setenv ethaddr 10:7B:EF:00:00:00 saveenv to save the mac address in the u-boot. Signed-off-by: Alberto Bursi <alberto.bursi@outlook.it>
2017-01-23 19:34:29 +00:00
endef
TARGET_DEVICES += zyxel_nsa310b
kirkwood: add ZyXEL NSA310b The ZyXEL NSA310 device is a Kirkwood based NAS: - SoC: Marvell 88F6702 1200Mhz - SDRAM memory: 256MB DDR2 400Mhz - Gigabit ethernet: Realtek (over pcie) - Flash memory: 128MB - 1 Power button - 1 Power LED (blue) - 5 Status LED (green/red) - 1 Copy/Sync button - 1 Reset button - 2 SATA II port (1 internal and 1 external) - 2 USB 2.0 ports (1 front and 1 back) - Smart fan The stock u-boot cannot read ubi so it should be replaced with the LEDE/OpenWRT's u-boot or with a u-boot from here https://github.com/mibodhi/u-boot-kirkwood This device's boot ROM supports "kwboot" tool (in mainline u-boot, built automatically if CONFIG_KIRKWOOD is declared) that sends an uboot image to the board over serial connection, it is very easy to unbrick. The stock bootloader can use usb and read from FAT filesystems, so the installation process is simple, place the uboot file on a USB flashdrive formatted as FAT (here it is "openwrt-kirkwood-nsa310.bin", then connect TTL to the board and write the following commands in the bootloader console: usb reset fatload usb 0 0x1000000 openwrt-kirkwood-nsa310.bin nand write 0x1000000 0x00000 0x100000 reset Now you are rebooting in the new u-boot, write this in its console to install the firmware: usb reset fatload usb 0 0x2000000 lede-kirkwood-nsa310b-squashfs-factory.bin nand erase.part ubi nand write 0x2000000 ubi 0x600000 If your firmware file is bigger than 6 MiBs you should write its size in hex instead of 0x600000 above, or remove that number entirely (it will take a while in this case). If you are using another uboot that can read ubi, set mtdparts like this mtdparts=mtdparts=orion_nand:0x00c0000(uboot),0x80000(uboot_env),0x7ec0000(ubi) And set your bootcmd to be like this bootcmd=run setenv bootargs; ubi part ubi; ubi read 0x800000 kernel; bootm 0x800000 Then you can install the firmware as described above. After you installed (or configured) the u-boot for booting the firmware, write the device's mac address in the ethaddr u-boot env. The MAC address is usually on a sticker under the device (one of the two codes is the serial), it should begin with "107BEF" as it is assigned to ZyXEL. write in the u-boot console (use your MAC address instead of the example) setenv ethaddr 10:7B:EF:00:00:00 saveenv to save the mac address in the u-boot. Signed-off-by: Alberto Bursi <alberto.bursi@outlook.it>
2017-01-23 19:34:29 +00:00
define Device/zyxel_nsa325
DEVICE_TITLE := ZyXEL NSA325 (v1 and v2)
DEVICE_DTS := kirkwood-nsa325
DEVICE_PACKAGES := kmod-gpio-button-hotplug kmod-rtc-pcf8563 kmod-usb3
BOARD_NAME := nsa325
endef
TARGET_DEVICES += zyxel_nsa325
define Device/cisco_on100
DEVICE_TITLE := Cisco Systems ON100
DEVICE_DTS := kirkwood-on100
DEVICE_PACKAGES := kmod-i2c-mv64xxx
KERNEL_SIZE := 5376k
KERNEL_IN_UBI := 0
UBINIZE_OPTS := -E 5
IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
BOARD_NAME := on100
endef
TARGET_DEVICES += cisco_on100
define Device/cloudengines_pogoe02
DEVICE_TITLE := Cloud Engines Pogoplug E02
DEVICE_DTS := kirkwood-pogo_e02
BOARD_NAME := pogo_e02
SUPPORTED_DEVICES += pogo_e02
endef
TARGET_DEVICES += cloudengines_pogoe02
kirkwood: add pogoplug v4 also known as POGO-V4-A3-02 or POGO-V4-A3-01 SoC: Marvell 88F6192 800Mhz SDRAM memory: 128MB Gigabit ethernet: 1 Marvell 88E1310 Flash memory: 128MB 2 status LEDs (one green one red) 1 "Eject" button on the back (used as "Reset" button) 1 USB 2.0 port (on upper side) 1 sata slot (power + data) for 2.5'' drives (upper side) 2 USB 3.0 ports from a controller on PCIe x1 of the SoC 1 full-size SDcard slot (fits a whole SD card into it) This device supports the (linux-only) kwboot tool to send a new uboot over serial console, so it is easy to unbrick in case the uboot is erased and the device won't boot. ----- Install instructions: ----- Since it's not possible to get ssh access to these devices, the only way to take control is to solder pins to get TTL serial access. Case can be opened by removing screws beneath two rubber feet at back of device, then lifting while prying the sides of the upper part out to unhook a latch on each side about 2/3rds of the way toward the front. Serial connection pins are those labeled "J11", left of SD as you face SD opening. Pins are (from left to right, i.e. the first in the list is the nearest to the SD slot) GND, Rx, Tx. Do not connect +V pin if you use a USB (self-powered) TTL-to-USB dongle. Any USB TTL-to-USB converter will work. Baud rate is 115200, parity "none", databits "8", flow control "none". Stock uboot is unable to read ubi partitions (nor usb) so we will replace it first with our uboot. Start a TFTP server at IP address 169.254.254.254, and place the uboot.kwb file in the folder of the server. Start the serial session and then power up the device. As soon as you see text on the serial start pressing random letter keys to stop the boot process. If you see something like the following line you can proceed: CE>> Otherwise if text is still scrolling by you missed the opportunity, pull the plug and try again. write printenv ethaddr The uboot will write something like this: ethaddr=00:50:43:00:02:02 This is the device's MAC address, also present in the sticker under the device. Write this down as we will need to add it in the new uboot configuration. Use the following commands to load the new uboot: tftp 0x20000 u-boot.kwb If the uboot confirms that the transfer was successful, then you can write it to flash with the following commands: nand erase 0 0x200000 nand write 0x20000 0 0x1c0000 if after the last command the uboot wrote "xxxx bytes written: OK" then it was written correctly and we can proceed. If it did not go well, try again or ask assistence in forums. Shutting down or rebooting at this time will brick the device, to unbrick it you will need to use the kwboot tool from a Linux PC or Virtual Machine. Now write: reset and press enter, the device will reboot and you should see again text scrolling by. Press a random key to stop it, and now you should see pogoplugv4> We now add the MAC address back, write: setenv ethaddr '00:50:43:00:02:02' Confirm that the uboot has understood by writing printenv ethaddr If all looks ok, save the setting with saveenv At this point the uboot is configured, and we only need to load the firmware in the flash memory. Follow the steps below in "Firmware recovery procedure". ---- Firmware recovery procedure ---- The new uboot allows easy recovery from a bad firmware upgrade where you can't access the device anymore over ssh or luci. Take a USB flash drive formatted as FAT32, and copy the initramfs image file in it (it will have "initramfs" in the file name), then rename it as "initramfs.bin". Insert the USB drive in the USB 2.0 port of the pogoplug (the port at the top). Power up the device, and wait for it to finish booting. The uboot should find and load the "initramfs.bin" from usb and if you are connected with serial you should see the linux kernel boot log (text scrolling by). Once it is done, press Enter and you will be greeted by the OpenWRT banner. If you were not connected with serial just wait a bit and, you will be able to access it with ssh or luci web interface (once you find its IP). The recovery "initramfs" images are run from RAM, so you will have to do a normal sysupgrade (firmware upgrade) to write a firmware image to flash memory. Signed-off-by: Alberto Bursi <alberto.bursi@outlook.it>
2018-01-02 15:07:19 +00:00
define Device/cloudengines_pogoplugv4
DEVICE_TITLE := Cloud Engines Pogoplug V4
DEVICE_DTS := kirkwood-pogoplug-series-4
DEVICE_PACKAGES := kmod-usb3
endef
TARGET_DEVICES += cloudengines_pogoplugv4
define Device/raidsonic_ib-nas62x0
DEVICE_TITLE := RaidSonic ICY BOX IB-NAS62x0
DEVICE_DTS := kirkwood-ib62x0
BOARD_NAME := ib62x0
SUPPORTED_DEVICES += ib62x0
endef
TARGET_DEVICES += raidsonic_ib-nas62x0
$(eval $(call BuildImage))