aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mpc85xx/image
Commit message (Collapse)AuthorAgeFilesLines
* mpc85xx: add support for Watchguard Firebox T10David Bauer2023-03-101-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hardware -------- SoC: Freescale P1010 RAM: 512MB FLASH: 1 MB SPI-NOR 512 MB NAND ETH: 3x Gigabite Ethernet (Atheros AR8033) SERIAL: Cisco RJ-45 (115200 8N1) RTC: Battery-Backed RTC (I2C) Installation ------------ 1. Patch U-Boot by dumping the content of the SPI-Flash using a SPI programmer. The SHA1 hash for the U-Boot password is currently unknown. A tool for patching U-Boot is available at https://github.com/blocktrron/t10-uboot-patcher/ You can also patch the unknown password yourself. The SHA1 hash is E597301A1D89FF3F6D318DBF4DBA0A5ABC5ECBEA 2. Interrupt the bootmenu by pressing CTRL+C. A password prompt appears. The patched password is '1234' (without quotation marks) 3. Download the OpenWrt initramfs image. Copy it to a TFTP server reachable at 10.0.1.13/24 and rename it to uImage. 4. Connect the TFTP server to ethernet port 0 of the Watchguard T10. 5. Download and boot the initramfs image by entering "tftpboot; bootm;" in U-Boot. 6. After OpenWrt booted, create a UBI volume on the old data partition. The "ubi" mtd partition should be mtd7, check this using $ cat /proc/mtd Create a UBI partition by executing $ ubiformat /dev/mtd7 -y 7. Increase the loadable kernel-size of U-Boot by executing $ fw_setenv SysAKernSize 800000 8. Transfer the OpenWrt sysupgrade image to the Watchguard T10 using scp. Install the image by using sysupgrade: $ sysupgrade -n <path-to-sysupgrade> Note: The LAN ports of the T10 are 1 & 2 while 0 is WAN. You might have to change the ethernet-port. 9. OpenWrt should now boot from the internal NAND. Enjoy. Signed-off-by: David Bauer <mail@david-bauer.net> (cherry picked from commit 35f6d795134e9b089c4e763a7f58cba7d4e15e42)
* mpc85xx: p1010: make TP-Link WDR4900 v1 build againMatthias Schiffer2022-10-141-3/+17
| | | | | | | | Add the spi-loader as a pre-kernel stage, so we can lift the kernel size limit. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net> (cherry picked from commit 2fa53c9214b7b93fd82ad1ff885145b9e1c1f71b)
* mpc85xx: add SPI kernel loader for TP-Link TL-WDR4900 v1Matthias Schiffer2022-10-1422-0/+1364
| | | | | | | | | | | Similar to the lzma-loader on our MIPS targets, the spi-loader acts as a second-stage loader that will then load and start the actual kernel. As the TL-WDR4900 uses SPI-NOR and the P1010 family does not have support for memory mapping of this type of flash, this loader needs to contain a basic driver for the FSL ESPI controller. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net> (cherry picked from commit a296055b82fbb20457273492069ce9d62009e2a1)
* mpc85xx: Fix output location of padded dtbMartin Kennedy2022-05-012-3/+3
| | | | | | | | | | | | | | | | | | | | | | In commit 7e614820a892 ("mpc85xx: add support for Extreme Networks WS-AP3825i"), we borrowed a recipe convention from apm821xx for device tree blob padding. Unfortunately, in the apm821xx target, the image recipes name the device tree blob differently, meaning that in mpc85xx, the padded dtb is never consumed. Change the definition of `Build/dtb` so that it outputs the padded dtb to the correct location for it to be consumed. Also, rename the recipe to `Build/pad-dtb`, so it is clear we are building and padding the device tree blob. This change fixes Github issue #9779 [1]. [1]: https://github.com/openwrt/openwrt/issues/9779 Fixes: 7e614820a892 ("mpc85xx: add support for Extreme Networks WS-AP3825i") Signed-off-by: Martin Kennedy <hurricos@gmail.com> (cherry picked from commit 1d06277407d3e294589ecde46328303a9f3803fd)
* mpc85xx: add support for Extreme Networks WS-AP3825iMartin Kennedy2022-03-162-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hardware: - SoC: Freescale P1020 - CPU: 2x e500v2 @ 800MHz - Flash: 64MiB NOR (1x Intel JS28F512) - Memory: 256MiB (2x ProMOS DDR3 V73CAG01168RBJ-I9H 1Gb) - WiFi1: 2.4+5GHz abgn 3x3 (Atheros AR9590) - Wifi2: 5GHz an+ac 3x3 (Qualcomm Atheros QCA9890) - ETH: 2x PoE Gigabit Ethernet (2x Atheros AR8035) - Power: 12V (center-positive barrel) or 48V PoE (active or passive) - Serial: Cisco-compatible RJ45 next to 12V power socket (115200 baud) - LED Driver: TI LV164A - LEDs: (not functioning) - 2x Power (Green + Orange) - 4x ETH (ETH1 + ETH2) x (Green + Orange) - 2x WiFi (WiFi2 + WiFi1) Installation: 1. Grab the OpenWrt initramfs <openwrt-initramfs-bin>, e.g. openwrt-mpc85xx-p1020-extreme-networks_ws-ap3825i-initramfs-kernel.bin. Place it in the root directory of a DHCP+TFTP server, e.g. OpenWrt `dnsmasq` with configuration `dhcp.server.enable_tftp='1'`. 2. Connect to the serial port and boot the AP with options e.g. 115200,N,8. Stop autoboot in U-Boot by pressing Enter after 'Scanning JFFS2 FS:' begins, then waiting for the prompt to be interrupted. Credentials are identical to the one in the APs interface. By default it is admin / new2day: if these do not work, follow the OEM's reset procedure using the reset button. 3. Set the bootcmd so the AP can boot OpenWrt by executing: ```uboot setenv boot_openwrt "cp.b 0xEC000000 0x2000000 0x2000000; interrupts off; bootm start 0x2000000; bootm loados; fdt resize; fdt boardsetup; fdt chosen; bootm prep; bootm go;" setenv bootcmd "run boot_openwrt" saveenv ``` If you plan on going back to the vendor firmware - the bootcmd for it is stored in the boot_flash variable. 4. Load the initramfs image to RAM and boot by executing ```uboot setenv ipaddr <ipv4 client address>; setenv serverip <tftp server address>; tftpboot 0x2000000 <openwrt-initramfs-bin>; interrupts off; bootm start 0x2000000; bootm loados; fdt resize; fdt boardsetup; fdt chosen; bootm prep; bootm go; ``` 5. Make a backup of the "firmware" partition if you ever wish to go back to the vendor firmware. 6. Upload the OpenWrt sysupgrade image via SCP to the devices /tmp folder. 7. Flash OpenWrt using sysupgrade. ```ash sysupgrade /tmp/<openwrt-sysupgrade-bin> ``` Notes: - We must step through the `bootm` process manually to avoid fdt relocation. To explain: the stock U-boot (and stock Linux) are configured with a very large CONFIG_SYS_BOOTMAPSZ (and the device's stock Linux kernel is configured to be able to handle it). The U-boot version predates the check for the `fdt_high` variable, meaning that upon fdt relocation, the fdt can (and will) be moved to a very high address; the default appears to be 0x9ffa000. This address is so high that when the Linux kernel starts reading the fdt at the beginning of the boot process, it encounters a memory access exception and panics[5]. While it is possible to reduce the highest address the fdt will be relocated to by setting `bootm_size`, this also has the side effect of limiting the amount of RAM the kernel can use[3]. - Because it is not relocated, the flattened device tree needs to be padded in the build process to guarantee that `fdt resize` has enough space. - The primary ethernet MAC address is stored (and set) in U-boot; they are shimmed into the device tree by 'fdt boardsetup' through the 'local-mac-address' property of the respective ethernet node, so OpenWrt does not need to set this at runtime. Note that U-boot indexes the ethernet nodes by alias, which is why the device tree explicitly aliases ethernet1 to enet2. - LEDs do not function under OpenWrt. Each of 8 LEDs is connected to an output of a TI LV164A shift register, which is wired to GPIO lines and operates through bit-banged SPI. Unfortunately, I am unable to get the spi-gpio driver to recognize the `led_spi` device tree node at all, as confirmed by patching in printk messages demonstrating spi-gpio.c::spi_gpio_probe never runs. It is possible to manually articulate the shift register by exporting the GPIO lines and stepping their values through the sysfs. - Though they do not function under OpenWrt, I have left the pinout details of the LEDs and shift register in the device tree to represent real hardware. - An archive of the u-boot and Linux source for the AP3825i (which is one device of a range of devices code-named 'CHANTRY') be found here[1]. - The device has an identical case to both the Enterasys WS-AP3725i and Adtran BSAP-2030[2] (and potentially other Adtran BSAPs). Given that there is no FCC ID for the board itself (only its WLAN modules), it's likely these are generic boards, and even that the WS-AP3725i is identical, with only a change in WLAN card. I have ordered one to confirm this. - For additional information: the process of porting the board is documented in an OpenWrt forum thread[4]. [1]: magnet:?xt=urn:btih:f5306a5dfd06d42319e4554565429f84dde96bbc [2]: https://forum.openwrt.org/t/support-for-adtran-bluesocket-bsap-2030/48538 [3]: https://forum.openwrt.org/t/adding-openwrt-support-for-ws-ap3825i/101168/29 [4]: https://forum.openwrt.org/t/adding-openwrt-support-for-ws-ap3825i/101168 [5]: https://forum.openwrt.org/t/adding-openwrt-support-for-ws-ap3825i/101168/26 Tested-by: Martin Kennedy <hurricos@gmail.com> Signed-off-by: Martin Kennedy <hurricos@gmail.com>
* mpc85xx: HiveAP-330: add tmp125 temperature sensorChristian Lamparter2022-02-251-1/+1
| | | | | | | | | | | the Aerohive HiveAP-330 and HiveAP-350 come equipped with an TI TMP125 temperature chip. This patch wires up the necessary support for this sensor and exposes it through hwmon / thermal sensor framework. Upstream support is coming, but it has to go through hwmon-next first. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* mpc85xx: add HiveAP-350 alternative name for HiveAP-330Christian Lamparter2022-02-191-0/+2
| | | | | | | The HiveAP-350 has six external antennas connectors. (It also has twice the flash?) Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* mpc85xx: Patch HiveAP 330 u-boot to fix bootMartin Kennedy2022-02-191-10/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When Kernel 5.10 was enabled for mpc85xx, the kernel once again became too large upon decompression (>7MB or so) to decompress itself on boot (see FS#4110[1]). There have been many attempts to fix booting from a compressed kernel on the HiveAP-330: - b683f1c36d8a ("mpc85xx: Use gzip compressed kernel on HiveAP-330") - 98089bb8ba82 ("mpc85xx: Use uncompressed kernel on the HiveAP-330") - 26cb167a5ca7 ("mpc85xx: Fix Aerohive HiveAP-330 initramfs image") We can no longer compress the kernel due to size, and the stock bootloader does not support any other types of compression. Since an uncompressed kernel no longer fits in the 8MiB kernel partition at 0x2840000, we need to patch u-boot to autoboot by running variable which isn't set by the bootloader on each autoboot. This commit repartitions the HiveAP, requiring a new COMPAT_VERSION, and uses the DEVICE_COMPAT_MESSAGE to guide the user to patch u-boot, which changes the variable run on boot to be `owrt_boot`; the user can then set the value of that variable appropriately. The following has been documented in the device's OpenWrt wiki page: <https://openwrt.org/toh/aerohive/hiveap-330>. Please look there first/too for more information. The from-stock and upgrade from a previous installation now becomes: 0) setup a network with a dhcp server and a tftp server at serverip (192.168.1.101) with the initramfs image in the servers root directory. 1) Hook into UART (9600 baud) and enter U-Boot. You may need to enter a password of administrator or AhNf?d@ta06 if prompted. If the password doesn't work. Try reseting the device by pressing and holding the reset button with the stock OS. 2) Once in U-Boot, set the new owrt_boot and tftp+boot the initramfs image: Use copy and paste! # fw_setenv owrt_boot 'setenv bootargs \"console=ttyS0,$baudrate\";bootm 0xEC040000 - 0xEC000000' # save # dhcp # setenv bootargs console=ttyS0,$baudrate # tftpboot 0x1000000 192.168.1.101:openwrt-mpc85xx-p1020-aerohive_hiveap-330-initramfs-kernel.bin # bootm 3) Once openwrt booted: carefully copy and paste this into the root shell. One step at a time # 3.0 install kmod-mtd-rw from the internet and load it opkg update; opkg install kmod-mtd-rw insmod mtd-rw i_want_a_brick=y # 3.1 create scripts that modifies uboot cat <<- "EOF" > /tmp/uboot-update.sh . /lib/functions/system.sh cp "/dev/mtd$(find_mtd_index 'u-boot')" /tmp/uboot cp /tmp/uboot /tmp/uboot_patched ofs=$(strings -n80 -td < /tmp/uboot | grep '^ [0-9]* setenv bootargs.*cp\.l' | cut -f2 -d' ') for off in $ofs; do printf "run owrt_boot; " | dd of=/tmp/uboot_patched bs=1 seek=${off} conv=notrunc done md5sum /tmp/uboot* EOF # 3.2 run the script to do the modification sh /tmp/uboot-update.sh # verify that /tmp/uboot and /tmp/uboot_patched are good # # my uboot was: (is printed during boot) # U-Boot 2009.11 (Jan 12 2017 - 00:27:25), Build: jenkins-HiveOS-Honolulu_AP350_Rel-245 # # d84b45a2e8aca60d630fbd422efc6b39 /tmp/uboot # 6dc420f24c2028b9cf7f0c62c0c7f692 /tmp/uboot_patched # 98ebc7e7480ce9148cd2799357a844b0 /tmp/uboot-update.sh <-- just for reference # 3.3 this produces the /tmp/u-boot_patched file. mtd write /tmp/uboot_patched u-boot 3) scp over the sysupgrade file to /tmp/ and run sysupgrade to flash OpenWrt: sysupgrade -n /tmp/openwrt-mpc85xx-p1020-aerohive_hiveap-330-squashfs-sysupgrade.bin 4) after the reboot, you are good to go. Other notes: - Note that after this sysupgrade, the AP will be unavailable for 7 minutes to reformat flash. The tri-color LED does not blink in any way to indicate this, though there is no risk in interrupting this process, other than the jffs2 reformat being reset. - Add a uci-default to fix the compat version. This will prevent updates from previous versions without going through the installation process. - Enable CONFIG_MTD_SPLIT_UIMAGE_FW and adjust partitioning to combine the kernel and rootfs into a single dts partition to maximize storage space, though in practice the kernel can grow no larger than 16MiB due to constraints of the older mpc85xx u-boot platform. - Because of that limit, KERNEL_SIZE has been raised to 16m. - A .tar.gz of the u-boot source for the AP330 (a.k.a. Goldengate) can be found here[2]. - The stock-jffs2 partition is also removed to make more space -- this is possible only now that it is no longer split away from the rootfs. - the console-override is gone. The device will now get the console through the bootargs. This has the advantage that you can set a different baudrate in uboot and the linux kernel will stick with it! - due to the repartitioning, the partition layout and names got a makeover. - the initramfs+fdt method is now combined into a MultiImage initramfs. The separate fdt download is no longer needed. - added uboot-envtools to the mpc85xx target. All targets have uboot and this way its available in the initramfs. [1]: https://bugs.openwrt.org/index.php?do=details&task_id=4110 [2]: magnet:?xt=urn:btih:e53b27006979afb632af5935fa0f2affaa822a59 Tested-by: Martin Kennedy <hurricos@gmail.com> Signed-off-by: Martin Kennedy <hurricos@gmail.com> (rewrote parts of the commit message, Initramfs-MultiImage, dropped bootargs-override, added wiki entry + link, uboot-envtools) Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* build: move Build/copy-file to image-commands.mkChristian Lamparter2022-01-151-4/+0
| | | | | | This is makro is present in more than one place. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* mpc85xx: switch to Kernel 5.10Adrian Schmutzler2021-10-051-0/+1
| | | | | | | | This has testing support for 7 months. Time to switch. TL-WDR4900 is disabled due to kernel size limitation. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* mpc85xx: remove fdt.bin imageDavid Bauer2021-02-261-1/+1
| | | | | | | | | When converting the fdt binary to be created as an artifact, the image receipt was dropped but the entry in the target images list was not. Fixes commit 1e41de2f48e2 ("mpc85xx: convert TL-WDR4900 v1 to simpleImage") Signed-off-by: David Bauer <mail@david-bauer.net>
* target: use SPDX license identifiers on MakefilesAdrian Schmutzler2021-02-101-4/+2
| | | | | | Use SPDX license tags to allow machines to check licenses. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* treewide: provide global default for SUPPORTED_DEVICESAdrian Schmutzler2021-01-231-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The majority of our targets provide a default value for the variable SUPPORTED_DEVICES, which is used in images to check against the compatible on a running device: SUPPORTED_DEVICES := $(subst _,$(comma),$(1)) At the moment, this is implemented in the Device/Default block of the individual targets or even subtargets. However, since we standardized device names and compatible in the recent past, almost all targets are following the same scheme now: device/image name: vendor_model compatible: vendor,model The equal redundant definitions are a symptom of this process. Consequently, this patch moves the definition to image.mk making it a global default. For the few targets not using the scheme above, SUPPORTED_DEVICES will be defined to a different value in Device/Default anyway, overwriting the default. In other words: This change is supposed to be cosmetic. This can be used as a global measure to get the current compatible with: $(firstword $(SUPPORTED_DEVICES)) (Though this is not precisely an achievement of this commit.) Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* mpc85xx: restructure image receiptsDavid Bauer2020-05-184-105/+93
| | | | | | | Move the image receipts into separate per-subtarget files like it is done on most other targets. Signed-off-by: David Bauer <mail@david-bauer.net>
* mpc85xx: rename generic subtarget to p1010David Bauer2020-05-181-1/+1
| | | | | | | | The mpc85xx-generic subtarget supports the QorIQ SoCs of the p1010 family. Rename the subtarget to reflect this affiliation as it's the case with the other mpc85xx subtargets. Signed-off-by: David Bauer <mail@david-bauer.net>
* kernel: make kmod-hwmon-core selected by dependent modulesSungbo Eo2020-03-131-1/+1
| | | | | | | | | | | | | | | | | | Currently kmod-hwmon-* will not get into images unless kmod-hwmon-core is added to DEVICE_PACKAGES as well. By changing the dependencies from "depends on" to "select", we do not have the issue anymore. Furthermore, we can remove most occurrences of the package from DEVICE_PACKAGES and similar variables, as it is now pulled by dependent modules such as: - kmod-hwmon-gpiofan - kmod-hwmon-lm63 - kmod-hwmon-lm75 - kmod-hwmon-lm85 - kmod-hwmon-lm90 Signed-off-by: Sungbo Eo <mans0n@gorani.run> [do not touch ar71xx, adjust line wrapping] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* treewide: move mktplinkfw to tplink-v1-image in image-commands.mkAdrian Schmutzler2020-01-081-27/+4
| | | | | | | | | | | | | | | | | | | | | This move the slightly different target-specific implementations of mktplinkfw from the targets to include/image-commands.mk and renames it to tplink-v1-image. Having a common version will increase consistency between implementation and will complete the tplink build command already present in the new location. Due to the slight differences of the original implementations, this also does some adjustments to the device build commands/variables. This also moves rootfs_align as this is required as dependency. Tested on: - TL-WDR4300 v1 (ath79, factory) - TL-WDR4900 v1 (mpc85xx, sysupgrade) - RE210 v1 (ramips, see Tested-by) Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Tested-by: Christoph Krapp <achterin@googlemail.com>
* mpc85xx: add support for Enterasys WS-AP3710iDavid Bauer2019-12-131-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hardware -------- SoC: NXP P1020 (2x e500 @ 800MHz) RAM: 256M DDR3 (Micron) FLASH: 32M NOR (Spansion S29GL128S) BTN: 1x Reset WiFi: 1x Atheros AR9590 2.4 bgn 3x3 2x Atheros AR9590 5.0 an 3x3 ETH: 1x Gigabit Ethernet (Atheros AR8033) LED: System (green/red) - Radio{0,1} (green) LAN (connected to PHY) - GE blue - FE green Serial is a Cisco-compatible RJ45 next to the ethernet port. 115200-N-8 are the settings for OS and U-Boot. Installation ------------ 1. Grab the OpenWrt initramfs, rename it to 01C8A8C0.img. Place it in the root directory of a TFTP server and serve it at 192.168.200.200/24. 2. Connect to the serial port and boot the AP. Stop autoboot in U-Boot by pressing Enter when prompted. Credentials are identical to the one in the APs interface. By default it is admin / new2day. 3. Set the bootcmd so the AP can boot OpenWrt by executing $ setenv boot_openwrt "setenv bootargs; cp.b 0xee000000 0x1000000 0x1000000; bootm 0x1000000" $ setenv bootcmd "run boot_openwrt" $ saveenv If you plan on going back to the vendor firmware - the bootcmd for it is stored in the boot_flash variable. 4. Load the initramfs image to RAM and boot by executing $ tftpboot 0x1000000 192.168.200.200:01C8A8C0.img; bootm 5. Make a backup of the "firmware" partition if you ever wish to go back to the vendor firmware. 6. Upload the OpenWrt sysupgrade image via SCP to the devices /tmp folder. 7. Flash OpenWrt using sysupgrade. $ sysupgrade -n /tmp/openwrt-sysupgrade.bin Signed-off-by: David Bauer <mail@david-bauer.net>
* mpc85xx: add vendor to Makefile node name, derive SUPPORTED_DEVICESAdrian Schmutzler2019-11-271-15/+13
| | | | | | | | | | | | | | By adding the vendor to the Makefile device definition node name, one can derive the standard compatible used in SUPPORTED_DEVICES instead of having to specify it manually. Despite, this moves the naming scheme closer to what is used for other targets (ath79, ramips). Build-tested on all subtargets. Run-tested on TP-Link TL-WDR4900 v1. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* mpc85xx: split up DEVICE_TITLEMoritz Warning2019-07-161-5/+12
| | | | | | Splits up DEVICE_TITLE into DEVICE_VENDOR, DEVICE_MODEL and DEVICE_VARIANT. Signed-off-by: Moritz Warning <moritzwarning@web.de>
* mpc85xx: Use gzip compressed kernel on HiveAP-330Pawel Dembicki2019-07-071-1/+1
| | | | | | | | | | | | | | | | | | | After commit 1e41de2f48 ("mpc85xx: convert TL-WDR4900 v1 to simpleImage") XZ compression of zImage was enabled. This change exposed a problem with the HiveAP-330 images, which was fixed by foregoing the compression on the kernel altogether with commit 98089bb8ba8 ("mpc85xx: Use uncompressed kernel on the HiveAP-330"). This patch adds back the gzip compression of the kernel image by utilizing the generic OpenWRT uImage method instead of relying on the PowerPC bootwrapper script that did it previously. Compile-tested: p1020/hiveap-330 Tested-by: Chris Blake <chrisrblake93@gmail.com> [run-tested] Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [filled in even more text]
* mpc85xx: Use uncompressed kernel on the HiveAP-330Chris Blake2019-06-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It seems that newer builds of OpenWRT have a gzip kernel larger than 2MB~, which for some reason fails to boot on this board. However, we have 8MB of kernel space and currently the uncompressed kernel is 6.5MB~, so we have some space to grow until a better solution is worked out. Before: ## Booting kernel from Legacy Image at ee840000 ... Image Name: Linux-4.19.53 Created: 2019-06-22 11:17:48 UTC Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 2315724 Bytes = 2.2 MB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## Loading init Ramdisk from Legacy Image at 02000000 ... Image Name: OpenWrt fake ramdisk Created: 2019-06-22 11:17:48 UTC Image Type: PowerPC Linux RAMDisk Image (uncompressed) Data Size: 0 Bytes = 0 kB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## Flattened Device Tree blob at ec000000 Booting using the fdt blob at 0xec000000 Uncompressing Kernel Image ... Error: Bad gzipped data GUNZIP: uncompress, out-of-mem or overwrite error - must RESET board to recover Loading Ramdisk to 10000000, end 10000000 ... OK Loading Device Tree to 00ffa000, end 00fffc78 ... OK ft_fixup_l2cache: FDT_ERR_NOTFOUND After: ## Booting kernel from Legacy Image at ee840000 ... Image Name: POWERPC OpenWrt Linux-4.19.53 Created: 2019-06-22 11:17:48 UTC Image Type: PowerPC Linux Kernel Image (uncompressed) Data Size: 6724584 Bytes = 6.4 MB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## Loading init Ramdisk from Legacy Image at 02000000 ... Image Name: OpenWrt fake ramdisk Created: 2019-06-22 11:17:48 UTC Image Type: PowerPC Linux RAMDisk Image (uncompressed) Data Size: 0 Bytes = 0 kB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## Flattened Device Tree blob at ec000000 Booting using the fdt blob at 0xec000000 Loading Kernel Image ... OK OK Loading Ramdisk to 10000000, end 10000000 ... OK Loading Device Tree to 00ffa000, end 00fffc78 ... OK Signed-off-by: Chris Blake <chrisrblake93@gmail.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [75 cpl limit]
* mpc85xx: re-enable TL-WDR4900v1 imagesPawel Dembicki2019-06-101-1/+1
| | | | | | | | | This reverts commit 324e94f31bfd ("mpc85xx: disable bricking TL-WDR4900v1 images") The previous commit fixes the TL-WDR4900v1. Enable the target again. Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* mpc85xx: convert TL-WDR4900 v1 to simpleImageChristian Lamparter2019-06-101-2/+6
| | | | | | | | | | | | | | | | | Converts the TP-Link WDR4900 v1 to use the simpleImage in the hopes of prolonging the life of the device. While at it, the patch makes the fdt.bin an ARTIFACT and sets the KERNEL_SIZE to 2684 KiB as a precaution since the stock u-boot is using a fixed kernel size. Note: Give the image some time, it will take much longer to extract and boot. [tested for 4.14/4.19] Signed-off-by: Christian Lamparter <chunkeey@gmail.com> Co-authored-by: Pawel Dembicki <paweldembicki@gmail.com> Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
* mpc85xx: disable bricking TL-WDR4900v1 imagesChristian Lamparter2019-04-151-1/+1
| | | | | | | | | | | | | | | | | | The current mpc85xx build is failing because the TL-WDR4900v1 kernel image no longer fits into the partition. Extending the kernel is not possible without updating u-boot's kernel loader commands. This patch disables the WDR4900v1 until the kernel image size issue is fixed so the buildbot can still compile the Sophos RED 15w Rev.1 . Installing the WDR4900v1 images would cause the routers to get bricked. For the discussion, please go to: <https://github.com/openwrt/openwrt/pull/1773> Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* mpc85xx: generic: Check kernel size for the TL-WDR4900Pawel Dembicki2019-04-131-0/+1
| | | | | | | | | | | TP-Link TL-WDR 4900 have u-boot with read-only env. Boot command read only 0x29F000 data from flash. Bigger images causes crc error. It can't be changed. This patch add kernel size checking. Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [utilize KERNEL_SIZE]
* mpc85xx: clean up device package selectionDavid Bauer2019-04-131-4/+2
| | | | | | | Remove wireless and USB packages from the device-specific package selection as they are already selected by the target itself. Signed-off-by: David Bauer <mail@david-bauer.net>
* mpc85xx: Fix Aerohive HiveAP-330 initramfs imageChris Blake2019-03-021-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At some point our initramfs image grew over 6MB, which is causing an issue when uncompressing in the stock bootloader: => bootm 0x5000000 - 0x1000000; Image Name: Linux-4.19.24 Created: 2019-02-23 1:58:20 UTC Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 6752470 Bytes = 6.4 MB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Booting using the fdt blob at 0x1000000 Uncompressing Kernel Image ... Error: inflate() returned -5 GUNZIP: uncompress, out-of-mem or overwrite error - must RESET board to recover Loading Device Tree to 00ffa000, end 00fffc78 ... OK To get around this, we need to move to an uncompressed image for the initramfs image. While this makes a larger image, it is thankfully bootable so people can then convert their devices to run OpenWRT. It's worth noting the non-initramfs image is under 3M, so it will be ages before we have any issues with the flashed kernel. Signed-off-by: Chris Blake <chrisrblake93@gmail.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [keep commit message at less than 75 characters per line]
* mpc85xx: add support for OCEDO PandaDavid Bauer2019-01-261-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CPU: FSL P1020 (2x 800MHz E500 PPC) RAM: 1GB DDR3 FLASH: 256MiB NAND WiFi: 2x Atheros AR9382 2x2:2 abgn ETH: 2x BCM54616S - 1x BCM53128 8-port switch LED: 5x LEDs (Power, WiFi1, WiFi2, N/D, SYS) BTN: 1x RESET Installation ------------ 1. Download initrams kernel image, dtb binary and sysupgrade image. 2. Place initramfs kernel into tftp root directory. Rename to "panda-uimage-factory". 3. Place dtb binary into tftp root directory. Rename to "panda.fdt". 4. Start tftp server on 192.168.100.8/24. 5. Power up the device with the reset button pressed. It will download the initrams and dtb via tftp and boot into OpenWRT in RAM. 6. SSH into the device and remove the factory partitions. > ubirmvol /dev/ubi0 --name=kernel1 > ubirmvol /dev/ubi0 --name=rootfs1 > ubirmvol /dev/ubi0 --name=devicetree1 You will have around 60 MiB of free space with that. You can also delete "kernel2", "devicetree2", "rootfs2" and "storage" respectively in case you do not want to go back to the vendor firmware. 7. Modify the U-Boot bootcmd to allow for booting OpenWRT > fw_setenv bootcmd_owrt "ubi part ubi && ubi read 0x1000000 kernel && bootm 0x1000000" > fw_setenv bootargs_owrt "setenv bootargs console=ttyS0,115200 ubi.mtd=3,2048" > fw_setenv bootcmd "run bootargs_owrt; run bootcmd_owrt" 8. Transfer the sysupgrade image via scp into the /tmp directory. 9. Upgrade the device > sysupgrade -n /tmp/<imagename> Signed-off-by: David Bauer <mail@david-bauer.net>
* mpc85xx: add support for Sophos RED 15w Rev.1David Bauer2019-01-131-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hardware ======== CPU: Freescale P1010 PowerPC RAM: 128M DDR3 NAND: 128MiB ETH: RTL8211F SGMII PHY RTL8367B 5-port RGMII switch (not connected to SoC - unmanaged) WiFi: SparkLan WPEA-121N - Atheros AR9382 2T2R abgn USB: 1x USB 2.0 LED: System, Router, Internet, Tunnel controllable LAN1-4, WAN, Power non-controllable BTN: None Installation ============ 1. Power on the device while attached to the Console port. 2. Halt the U-Boot by pressing Enter when prompted. 3. Set the correct bootcmd for booting OpenWRT: > setenv bootargs_owrt "setenv bootargs console=ttyS0,115200" > setenv bootcmd "run bootargs_owrt; nand read 0x1000000 0x300000 0x800000; bootm 0x1000000;" > saveenv 5. Rename OpenWRT initramfs image to 'kernel.bin' and place it in a TFTP server root-directory served on 192.168.1.2/24. Connect your computer to one of the LAN-ports. 4. Boot OpenWRT initramfs image with > run bootargs_owrt; tftpboot 0x1000000 192.168.1.2:kernel.bin; bootm 0x1000000; 6. (Optional) Make a Backup of 'sophos-os1', 'sophos-os2' and 'sophos-data' in case you ever want to go back to the vendor firmware. 7. Create Ubi Volume on mtd4 by executing > ubiformat /dev/mtd4 -y 8. Transfer OpenWRT sysupgrade image to the device via SCP and install it with > sysupgrade -n <openwrt-image-file> Back to Stock ============= If you want to go back to the stock firmware, here is the bootcmd of the vendor firmware: > setenv bootargs console=ttyS0,115200 root=/dev/mtdblock5; nand read 0xc00000 0x00300000 0x100000; nand read 0x1000000 0x00400000 0x00800000; bootm 0x1000000 - 0xc00000 Set it via 'setenv' from the U-Boot shell and don't forget to save it using 'saveenv'! After this, boot the OpenWRT initramfs image just like you would for installation. Write back the three vendor partitions using mtd. Reboot the device afterwards. Signed-off-by: David Bauer <mail@david-bauer.net> [refresh and reorder patches] Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* mpc85xx: disable initramfs image in TL-WDR4900Pawel Dembicki2019-01-131-0/+1
| | | | | | | | | | Initramfs image isn't required for this device and regular initramfs generation isn't work properly. It create not working binaries. This patch disable initramfs image for TL-WDR4900. Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
* mpc85xx: add support for Freescale (NXP) P2020RDBPawel Dembicki2019-01-131-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit add initial support for Freescale (NXP) P2020RDB Hardware: SoC: P2020 2x1GHz DRAM: 512-1GB DDR3 2 + 4 GBE (2 separate ports and four in VSC7385) Flash: 16MB NOR, 32MB NAND, 16MB SPI-NOR PCIE x1 and mPCIE x1 SD Reader Interfaces: GBE RJ45 x6 USB2.0 x1 UART x2 I2C x2 JTAG x1 SD x1 PCIE x2 (PCIE and mPCIE) Flash instructions: Place sysupgrade image to 0x80000 address in NOR. Eg. (no brakelines in setenv command): setenv 'firmware_flash tftpboot $loadaddr $firmwarefile; protect off $norfdtaddr +$filesize; erase $norfdtaddr +$filesize; cp.b $loadaddr $norfdtaddr $filesize; protect on $norfdtaddr +$filesize; cmp.b $loadaddr $norfdtaddr $filesize' setenv firmwarefile firmware.bin run firmware_flash Boot (no brakeline in setenv command): setenv bootcmd 'setenv bootargs root=/dev/mtdblock3 rw console=$consoledev, $baudrate rootfstype=squashfs $othbootargs; bootm $norfdtaddr' saveenv boot Known issues: -Switch is unmanaged (VSC 7385 is connected via eLBC, driver uses SPI) -No SD reader support Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [refreshed patches]
* mpc85xx: tl-wdr4900-v1: convert to mtdsplit imagePawel Dembicki2019-01-051-13/+26
| | | | | | | | | | | | | | | Currently, the image creation process for the TP-Link tl-wdr4900-v1 needs a fixed sized kernel and places the rootfs partition at a fixed offset. With the upcoming move to 4.19 the kernel will no longer fit into the existing allocated space for the kernel partition. This patch converts the device to utilize the established tplink,firmware mtdsplitter, which can deal with a dynamic kernel/rootfs size. Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [reworded commit]
* treewide: use wpad-basic for not small flash targetsMathias Kresin2018-10-161-2/+2
| | | | | | | | | | | | Add out of the box support for 802.11r and 802.11w to all targets not suffering from small flash. Signed-off-by: Mathias Kresin <dev@kresin.me> Mathias did all the heavy lifting on this, but I'm the one who should get shouted at for committing. Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
* build: consolidate fake uImage header build commandsMathias Kresin2018-04-201-11/+1
| | | | | | | | | | | Merge the two existing functions and use a parameter for the type header field. It updates the syntax of the former mpc85xx fake ramdisk header command to be compatible with mkimage from u-boot 2018.03 and fixes the build error spotted by the build bot. Signed-off-by: Mathias Kresin <dev@kresin.me>
* mpc85xx: use image metadataMathias Kresin2017-10-251-2/+4
| | | | | | | Append and enforce image metadata. Remove the device specific image checks, they are replaced by image metadata. Signed-off-by: Mathias Kresin <dev@kresin.me>
* mpc85xx: use new build code styleChris Blake2017-10-251-83/+53
| | | | | | | | | | The following moves the mpc85xx target (generic & P1020) to the new build code style. Compile & Flash tested on an Aerohive HiveAP-330. Signed-off-by: Chris Blake <chrisrblake93@gmail.com> Signed-off-by: Mathias Kresin <dev@kresin.me>
* mpc85xx: Add Aerohive HiveAP-330 Access PointChris Blake2017-10-141-1/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following adds the Aerohive HiveAP-330 Access Point to LEDE under the mpc85xx/p1020 subtarget. Hardware: - SoC: Freescale P1020NSE2DFB - NAND: Intel JS28F512M29EWH 64MB - Memory: 2x ProMOS V59C1G01168QBJ3 128MB (Total of 256MB) - 2.4GHz WiFi: Atheros AR9390-AL1A - 5.0GHz WiFi: Atheros AR9390-AL1A - Eth1: Atheros AR8035-A PoE - Eth2: Atheros AR8035-A - TPM: Atmel AT97SC3204 - LED Driver: TI LP5521 Flashing: 1. Hook into UART (9600 baud) and enter U-Boot. You may need to enter a password of administrator or AhNf?d@ta06 if prompted. 2. Once in U-Boot, tftp boot the initramfs image: dhcp; tftpboot 0x1000000 192.168.1.101:lede- mpc85xx-p1020-hiveap-330-initramfs.zImage; tftpboot 0x6000000 192.168.1.101:lede-mpc85xx-p1020-hiveap-330.fdt; bootm 0x1000000 - 0x6000000; 3. Once booted, scp over the sysupgrade file and sysupgrade the device to flash LEDE to the NAND. sysupgrade /tmp/lede-mpc85xx-p1020-hiveap-330-sysupgrade.img Signed-off-by: Chris Blake <chrisrblake93@gmail.com>
* target/mpc85xx: check for 'generic' subtarget for initramfs image fileJohn Crispin2016-03-031-0/+2
| | | | | | | | | | | | | Copy 'cuImage.tl-wdr4900-v1-initramfs' only for the 'generic' subtarget. This is a follow-up to: http://git.openwrt.org/?p=openwrt.git;a=commitdiff;h=b889fe55c1844aec2c03da28fecb03e958c21f18 We build our initramfs images more rarely, so it took a while to catch this too. Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com> SVN-Revision: 48892
* mpc85xx: update to linux 4.4, remove unnecessary patchesFelix Fietkau2016-01-171-2/+2
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 48297
* mpc85xx: fix another typo in the image makefileFelix Fietkau2014-12-111-1/+1
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 43625
* mpc85xx: fix typo in image nameFelix Fietkau2014-12-111-1/+1
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 43622
* mpc85xx: fix initramfs imagesFelix Fietkau2014-12-111-8/+6
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 43620
* mpc85xx: fix missing dts target for kernel 3.14John Crispin2014-11-241-1/+1
| | | | | | | | | | With kernel 3.14 dts target p1010rdb was renamed to p1010rdb-pa. To maintain compatibility define p1010rdb-pa as new standard and copy p1010rdb.dts to p1010rdb-pa.dts under 3.10. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> SVN-Revision: 43371
* target/linux/*/image/Makefile: use new dts path variableJohn Crispin2014-07-211-1/+1
| | | | | | Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 41791
* mpc85xx: Fix building ramdisk imagesGabor Juhos2014-01-231-6/+2
| | | | | | | Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 39368
* targets: prepare for supporting normal and initramfs imagesFlorian Fainelli2013-06-271-1/+1
| | | | | | | | | | | | In order to support both normal images and initramfs, ensure that each target sets KERNELNAME properly so that the generic kernel building code can copy the corresponding files over $(KDIR) with the appropriate extension. Update the various paths to the kernel and wrapper images from $(LINUX_DIR)/arch/$(ARCH)/boot/$(foo) to $(KDIR)/$(foo). Signed-off-by: Florian Fainelli <florian@openwrt.org> SVN-Revision: 37049
* mpc85xx: Generate fdt for P1020RDBGabor Juhos2013-04-121-1/+1
| | | | | | | Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 36321
* mpc85xx: add profile and build image for the TL-WDR4900 v1 boardGabor Juhos2013-03-151-3/+45
| | | | | | | | | Now that the ethernet switch is working, create firmware images to make impatient users happy. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 36051
* mpc85xx: use a foreach loop to copy boot imagesGabor Juhos2013-02-201-1/+4
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 35689