aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ath79/image/Makefile
Commit message (Collapse)AuthorAgeFilesLines
* Revert "ath79: add empty squashfs-lzma filesystem"Daniel Golle2023-05-121-3/+0
| | | | | | | | | | This reverts commit 91e3419a33f3f0baa2fb25680f5c9a7b2240102b. Now that squashfs3-lzma generates reproducible output we can drop the empty binary. Having a binary file in the tree is not nice and we actually also use squashfs3-lzma for devices which expect the kernel to be loaded from a squashfs3... Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* ath79: add empty squashfs-lzma filesystemPaul Spooren2023-05-081-0/+3
| | | | | | | | | | | | | | | | | The filesystem is currently created on every build to trick the boot loader of some FRITZ! devices into accepting the image. Sadly the resulting squashfs-lzma filesystem is not reproducible. To fix this, create a squashfs filesystem once and include it into the repository. Creation happend as shown below rm -rf empty_dir mkdir empty_dir ./staging_dir/host/bin/mksquashfs-lzma \ empty_dir/ empty-squashfs-lzma \ -noappend -root-owned -be -nopad -b 65536 -fixed-time 0 Signed-off-by: Paul Spooren <mail@aparcar.org>
* ath79: image: don't depend on other COMPILE targetsAlexander Couzens2022-12-191-1/+1
| | | | | | | | | A device COMPILE target should not depend on another COMPILE. Otherwise race condition may happen. The loader is very small. Compiling it twice shouldn't have a huge impact. Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
* ath79: switch some RedBoot based devices to OKLI loaderTomasz Maciej Nowak2022-06-241-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After the kernel has switched version to 5.10, JA76PF2 and RouterStations lost the capability to sysupgrade the OpenWrt version. The cause is the lack of porting the patches responsible for partial flash erase block writing and these boards FIS directory and RedBoot config partitions share the same erase block. Because of that the FIS directory can't be updated to accommodate kernel/rootfs partition size changes. This could be remedied by bootloader update, but it is very intrusive and could potentially lead to non-trivial recovery procedure, if something went wrong. The less difficult option is to use OpenWrt kernel loader, which will let us use static partition sizes and employ mtd splitter to dynamically adjust kernel and rootfs partition sizes. On sysupgrade from ath79 19.07 or 21.02 image, which still let to modify FIS directory, the loader will be written to kernel partition, while the kernel+rootfs to rootfs partition. The caveats are: * image format changes, no possible upgrade from ar71xx target images * downgrade to any older OpenWrt version will require TFTP recovery or usage of bootloader command line interface To downgrade to 19.07 or 21.02, or to upgrade if one is already on OpenWrt with kernel 5.10, for RouterStations use TFTP recovery procedure. For JA76PF2 use instructions from this commit message: commit 0cc87b3bacee ("ath79: image: disable sysupgrade images for routerstations and ja76pf2"), replacing kernel image with loader (loader.bin suffix) and rootfs image with firmware (firmware.bin suffix). Fixes: b10d6044599d ("kernel: add linux 5.10 support") Fixes: 15aa53d7ee65 ("ath79: switch to Kernel 5.10") Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com> (mkubntimage was moved to generic-ubnt.mk) Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* ath79: move ubnt-xm to tinyNick Hainke2022-06-111-0/+1
| | | | | | | | | | | | | ath79 has was bumped to 5.10. With this, as with every kernel change, the kernel has become larger. However, although the kernel gets bigger, there are still enough flash resources. But the RAM reaches its capacity limits. The tiny image comes with fewer kernel flags enabled and fewer daemons. Improves: 15aa53d7ee65 ("ath79: switch to Kernel 5.10") Tested-by: Robert Foss <me@robertfoss.se> Signed-off-by: Nick Hainke <vincent@systemli.org>
* ath79: lzma-loader: fix & re-enable per-board CONFIG_BOARD_DEVChristian Lamparter2021-10-221-2/+5
| | | | | | | | | | | | | | | | | | | Back in the AR71XX days, the lzma-loader code could be customized based on the $BOARD variable. These would be passed as a compile-time -DCONFIG_BOARD_$DEVICE_MODEL flag to the compiler. Hence, the lzma-loader would be able to include device-specific fixups. Note: There's still a fixup for the TpLink TL-WR1043ND V1 found in the lzma-loader's board.c code. But since the days of AR71XX I couldn't find a forum post or bug reported. So, I left it as is to not break anything by enabling it. => If you have a TL-WR1043ND V1 and you have problem with the ethernet: let me know. Because otherwise, the fixup might simply no longer needed with ath79 and it can be removed. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* ath79: add recipe for common setup with loader-okli-compileAdrian Schmutzler2021-10-021-0/+8
| | | | | | | These instructions are repeated for a few devices now, let's move them to shared definition so we do not repeat ourselves too often. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* treewide: call check-size before append-metadataAdrian Schmutzler2021-07-101-1/+1
| | | | | | | | | | sysupgrade metadata is not flashed to the device, so check-size should be called _before_ adding metadata to the image. While at it, do some obvious wrapping improvements. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Acked-by: Paul Spooren <mail@aparcar.org>
* ath79: add support for Qualcomm AP143 reference boardsZoltan HERPAI2021-06-051-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Specifications: SoC: QCA9533 DRAM: 32Mb DDR1 Flash: 8/16Mb SPI-NOR LAN: 4x 10/100Mbps via AR8229 switch (integrated into SoC) on GMII WAN: 1x 10/100Mbps via MII WLAN: QCA9530 USB: 1x 2.0 UART: standard QCA UART header JTAG: yes Button: 1x WPS, 1x reset LEDs: 8x LEDs A version with 4Mb flash is also available, but due to lack of enough space it's not supported. As the original flash layout does not provide enough space for the kernel (1472k), the firmware uses OKLI and concat flash to overcome the limitation without changing the boot address of the bootloaders. Installation: 1. Original bootloader Connect the board to ethernet Set up a server with an IP address of 192.168.1.10 Make the openwrt-ath79-generic-qca_ap143-8m-squashfs-factory.bin available via TFTP tftpboot 0x80060000 openwrt-ath79-generic-qca_ap143-8m-squashfs-factory.bin erase 0x9f050000 +$filesize cp.b $fileaddr 0x9f050000 $filesize Reboot the board. 2. pepe2k's u-boot_mod Connect the board to ethernet Set up a server with an IP address of 192.168.1.10 Make the openwrt-ath79-generic-qca_ap143-8m-squashfs-factory.bin available via TFTP, as "firmware.bin" run fw_upg Reboot the board. For the 16M version of the board, please use openwrt-ath79-generic-qca_ap143-16m-squashfs-factory.bin Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu> [use fwconcatX names, drop redundant uart status, fix IMAGE_SIZE, set up IMAGE/factory.bin without metadata] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: set lzma-loader variables to null by defaultMichael Pratt2021-05-161-0/+4
| | | | | | | | | | | | | This fixes a small regression where the lzma-loader variable values are being shared between boards that require different configurations. If not set to "" globally, a device without these settings will just take the last values another device has set before in the queue. Fixes: 1b8bd17c2d07 ("ath79: lzma-loader: allow setting custom kernel magic") Signed-off-by: Michael Pratt <mcpratt@pm.me> [add detailed explanation to the commit message] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: lzma-loader: allow setting custom kernel magicMichael Pratt2021-04-081-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | ...and max flash offset The mtdsplit parser was recently refactored to allow the kernel to have custom image header magic. Let's also do this for the lzma-loader For example: When implemented together, this allows the kernel to "appear" to be a rootfs by OEM software in order to write an image that is actually kernel + rootfs. At the same time, it would boot to openwrt normally by setting the same magic in DTS. Both of the variables have a default value that is unchanged when not defined in the makefiles This has no effect on the size of the loader when lzma compressed. Signed-off-by: Michael Pratt <mcpratt@pm.me>
* ath79: fix factory image generation for Netgear and Zyxel boardsPaul Fertser2021-02-141-0/+2
| | | | | | | | | | | | | The factory images need to embed specific IDs to pass verification with the OEM firmware (including TFTP recovery), so they need to be per-device variables. Fixes: ab1584a797ad ("ath79: netgear: trim down uImage customisations") Fixes: 459c8c9ef816 ("ath79: add support for ZyXEL NBG6616") Reported-by: Marcin Juszkiewicz <marcin-openwrt@juszkiewicz.com.pl> Signed-off-by: Paul Fertser <fercerpav@gmail.com> [minor commit message adjustments, sort DEVICE_VARS] 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>
* ath79: restore sysupgrade support for ja76pf2 and routerstationsTomasz Maciej Nowak2020-12-011-0/+8
| | | | | | | | | | | | | | | | | | | Because the bug described in FS#2428 has been fixed with bf2870c1d9e1 ("kernel: fix mtd partition erase < parent_erasesize writes") these devices can now safely do sysupgrade. Restore sysupgrade support disabled in: 0cc87b3bacee ("ath79: image: disable sysupgrade images for routerstations and ja76pf2") cc5256a8bfa0 ("ath79: base-files: disable sysupgrade for routerstations and ja76pf2") Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com> [move Build block, remove check-size argument, wrap sysupgrade line, make commit message easier to read] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: drop Build/loader-kernel-cmdlineAdrian Schmutzler2020-09-061-5/+0
| | | | | | | | | | | | This is the same as loader-kernel since the KERNEL_CMDLINE parameter has been removed in [1] and not used at all anyway. Remove it. [1] f77db1a59036 ("ath79: cleanup image build code") Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Acked-by: Paul Spooren <mail@aparcar.org>
* treewide: simplify inclusion of subtarget image filesAdrian Schmutzler2020-06-111-12/+8
| | | | | | | | | | | | | | Many target use a repetitive if-include scheme for their subtarget image files, though their names are consistent with the subtarget names. This patch removes these redundant conditions and just uses the variable for the include where the target setup allows it. For sunxi, this includes a trivial rename of the subtarget image Makefiles. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* treewide: omit IMAGE_SIZE argument from check-sizeSungbo Eo2020-03-211-1/+1
| | | | | | | | | Now that check-size uses IMAGE_SIZE by default, we can skip the argument from image recipes to reduce redundancy. Signed-off-by: Sungbo Eo <mans0n@gorani.run> [do not touch ar71xx] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add mikrotik subtargetRoger Pueyo Centelles2020-03-171-0/+3
| | | | | | | | | | | | | | | | | This commit creates the ath79/mikrotik subtarget in order to support MikroTik devices based on Qualcomm Atheros MIPS SoCs. MikroTik devices need a couple of specific features: the split MiNOR firmware MTD format, which is not used by other devices, and the 4k sector erase size on SPI NOR storage, which can not be added to the ath79/generic and ath79/nand subtargets now. Additionally, the commit moves the two MikroTik devices already in the generic and nand subtargets to this new one. Tested on the RB922 board and the wAP AC router. Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
* build: image: move IMAGE_SIZE to image.mkSungbo Eo2020-03-111-1/+1
| | | | | | | | | | IMAGE_SIZE is widely used in many targets. Declare it in the default template to clean up redundant code. This also prevents deriving IMAGE_SIZE unintentionally from the previously defined device. While at it, remove duplicate KERNEL_SIZE declaration. Signed-off-by: Sungbo Eo <mans0n@gorani.run>
* ath79: move lzma-loader to the end of available RAMAdrian Schmutzler2020-01-231-1/+0
| | | | | | | | | | | | | | | | | | | | | In certain cases, the uncompressed initramfs image will overwrite the lzma-loader, which is currently only 10 MB away from kernel image start. To prevent this, change LZMA_TEXT_START to 24 MB, so loader and compressed image have 8 MB at the end of RAM and uncompressed image has 24 MB available. This is only enabled for ath79 at the moment, as there we can be sure that all devices have 32+ MB RAM and TARGET_INITRAMFS_COMPRESSION_LZMA is not enabled there. Despite, since lzma-loader is currently build specifically for ath79 anyway, there is no need to re-specify LOADADDR and LZMA_TEXT_START in image/Makefile, so the values are set directly in image/lzma-loader/Makefile and the overwrite in image/Makefile is removed. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* ath79: rename ATH_SOC to SOCAdrian Schmutzler2019-12-201-3/+2
| | | | | | | This replaces ATH_SOC by the newly introduced common SOC device variable. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: revert erroneous second addition of files for WNDR4300Adrian Schmutzler2019-11-031-1/+0
| | | | | | | | | | | | | There are two recent commits stating to add support for Netgear WNDR4300, where the second one seems to be just leftover from an earlier patch having been rebased. Since the first patch already provides support in the most recent state, just revert the second one. This reverts commit cd87272eb241b1ea7955c1631ad2bb8d38e9fae9. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add support for Netgear WNDR4300Michal Cieslakiewicz2019-11-021-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds ath79 support for Netgear WNDR4300. Router was previously supported by ar71xx target only. Note: device requires 'ar934x-nand' driver in kernel. Specification ============= * Description: Netgear WNDR4300 * Loader: U-boot * SOC: Atheros AR9344 (560 MHz) * RAM: 128 MiB * Flash: 128 MiB (NAND) - U-boot binary: 256 KiB - U-boot environment: 256 KiB - ART: 256 KiB - POT: 512 KiB - Language: 2 MiB - Config: 512 KiB - Traffic Meter: 3 MiB - Firmware: 25 MiB - ART Backup: 256 KiB - Reserved: 96 MiB * Ethernet: 5 x 10/100/1000 (4 x LAN, 1 x WAN) (AR8327) * Wireless: - 2.4 GHz b/g/n (internal) - 5 GHz a/n (AR9580) * USB: yes, 1 x USB 2.0 * Buttons: - Reset - WiFi (rfkill) - WPS * LEDs: - Power (amber/green) - WAN (amber/green) - WLAN 2G (green) - WLAN 5G (blue) - 4 x LAN (amber/green) - USB (green) - WPS (amber/green) * UART: 4-pin connector JP1, 3.3V (Vcc, TX, RX, GND), 115200 8N1 * Power supply: DC 12V 2.5A * MAC addresses: LAN=WLAN2G on case label, WAN +1, WLAN5G +2 Installation ============ * TFTP recovery * TFTP via U-boot prompt * sysupgrade * Web interface Note about partitioning: firmware partition offset (0x6c0000) is hardcoded into vendor's u-boot, so this partition cannot be moved and resized to include Netgear-specific flash areas (pot, language, config, traffic_meter) not used by OpenWrt. Test build configuration ======================== CONFIG_TARGET_ath79=y CONFIG_TARGET_ath79_nand=y CONFIG_TARGET_ath79_nand_DEVICE_netgear_wndr4300=y CONFIG_ALL_KMODS=y CONFIG_DEVEL=y CONFIG_CCACHE=y CONFIG_COLLECT_KERNEL_DEBUG=y CONFIG_IMAGEOPT=y Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
* ath79: add support for PISEN WMB001NChuanhong Guo2019-08-081-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Specifications: - SoC: AR9341 - RAM: 64M - Flash: 16M - Ethernet: 1 * FE port - WiFi: ar934x-wmac - Sound: WM8918 DAC 1 * 3.5mm headphone jack 2 * RCA connectors for speakers 1 * SPDIF out - USB: 1 * USB2.0 port Flash instruction: Upload generated factory image via vendor's web interface. Notes: A. Audio stuff: 1. Since AR934x, all pins for peripheral blocks can be mapped to any available GPIOs. We currently don't have a PCM/I2S driver for AR934x so pinmux for i2s and SPDIF are bound to i2c gpio node. This should be moved into I2S node when a PCM/I2S driver is available. 2. The i2c-gpio node is for WM8918. DT binding for it can't be added currently due to a missing clock from I2S PLL. B. Factory image: Image contains a image header and a tar.gz archive. 1. Header: A 288 byte header that has nothing to do with appended tarball. Format: 0x0-0x7 and 0x18-0x1F: magic values 0x20: Model number string 0xFC: Action string. It's either "update" or "backup" 0x11C: A 1 byte checksum. It's XOR result of 0x8-0x11B Firmware doesn't care about the rest of the header as long as checksum result is correct. The same header is used for backup and update routines so the magic values and model number can be obtained by generating a backup bin and grab values from it. 2. Tarball: It contains two files named uImage and rootfs, which will be flashed into corresponding mtd partition. Writing a special utility that can only output a fixed binary blob is overkill so factory image header is placed under image/bin instead. C. LED The wifi led has "Wi-Fi" marked on the case but vendor's firmware used it as system status indicator. I did the same in this device support patch. D. Firmware Factory u-boot is built without 'savenv' support so it's impossible to change kernel offset. A 2MB kernel partition won't be enough in the future. OKLI loader is used here to migrate this problem: 1. add OKLI image magic support into uImage parser. 2. build an OKLI loader, compress it with lzma and add a normal uImage header. 3. flash the loader to where the original kernel supposed to be. 4. create a uImage firmware using OKLI loader. 5. flash the created firmware to where rootfs supposed to be. By doing so, u-boot will start OKLI loader, which will then load the actual kernel at 0x20000. The kernel partition is 2MB, which is too much for our loader. To save this space, "mtd-concat" is used here: 1. create a 64K (1 erase block) partition for OKLI loader and create another partition with the left space. 2. concatenate rootfs and this partition into a virtual flash. 3. use the virtual flash for firmware partition. Currently OKLI loader is flashed with factory image only. sysupgrade won't replace it. Since it only has one function and it works for several years, its unlikely to have some bugs that requires a replacement. Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
* ath79: add support for Buffalo BHR-4GRV2INAGAKI Hiroshi2018-08-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Buffalo BHR-4GRV2 is a wired router, based on Qualcomm Atheros QCA9558. Ported from ar71xx target. Specification: - Qualcomm Atheros QCA9558 - 64 MB of RAM - 16 MB of Flash - 5x 10/100/1000 Ethernet - QCA8337N - 4x LEDs, 2x keys - UART header on PCB - Vcc, TX, RX, GND from LED side - 115200n8 Flash instruction using factory image: 1. Connect the computer to the LAN port of BHR-4GRV2 2. Connect power cable to BHR-4GRV2 and turn on it 3. Access to "http://192.168.12.1/" and open firmware update page ("ファームウェア更新") 4. Select the OpenWrt factory image and click update ("更新実行") button 5. Wait ~120 seconds to complete flashing Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
* ath79: add Netgear WNR612 v2Zoltan HERPAI2018-06-261-0/+1
| | | | | | | | | | | | | | | Netgear WNR612 v2: - cpu Atheros AR7240 (Python) @400MHz - flash 4MB - ram 32MB - ethernet 10/100: 1xwan + 2xlan (only two) - radio AR9285 As there is a rebranded WNR612v2 called ON Networks N150R, add a dtsi which includes all device support, and add a separate dts for the device only (with a separate one for the subsequent N150R). Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
* ath79: add initial nand support for gl-ar300mMarty E. Plummer2018-06-181-0/+3
| | | | Signed-off-by: Marty E. Plummer <hanetzer@startmail.com>
* ath79: lzma-loader: sync with ar71xx targetMatthias Schiffer2018-06-061-1/+2
| | | | | | | | | | | | | | Import all improvements made in the lzma-loader since development on the ath79 target started. This also reverts fe594bf90d09 ("ath79: fix loader-okli, lzma-loader"), as is obsoleted by 2ad60168b6af ("ar71xx: lzma-loader: move padding workaround to gzip step"). Likely, many of the changes should be ported to the ramips lzma-loader as well, but I don't have a device to test this. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
* ath79: add tiny subtargetAlex Maclean2018-06-011-0/+3
| | | | Signed-off-by: Alex Maclean <monkeh@monkeh.net>
* ath79: remove unused copy-file build stepMatthias Schiffer2018-05-171-3/+0
| | | | Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
* ath79: add and enforce image metadataMathias Kresin2018-05-171-1/+3
| | | | | | Add metadata to images and make the metdata mandatory. Signed-off-by: Mathias Kresin <dev@kresin.me>
* ath79: cleanup image build codeMathias Kresin2018-05-171-10/+5
| | | | | | | | | | Remove recipes for not yet migrated boards. Drop variables which aren't required due to the switch to devicetree like boardname. Drop the legacy image build code. Boards added to this target shouldn't use the legacy image build code anyway. Signed-off-by: Mathias Kresin <dev@kresin.me>
* ath79: Ubiquiti Airmax M: add relocate-kernel to invalidate cacheMatthias Schiffer2018-05-081-0/+13
| | | | | | Apply ar71xx fix for broken Ubiquiti bootloader to ath79 as well. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
* ath79: add new OF only target for QCA MIPS siliconJohn Crispin2018-05-071-0/+66
This target aims to replace ar71xx mid-term. The big part that is still missing is making the MMIO/AHB wifi work using OF. NAND and mikrotik subtargets will follow. Signed-off-by: John Crispin <john@phrozen.org>