From eacce51ca97e0b1461a14810b2d63a9545e37db4 Mon Sep 17 00:00:00 2001 From: Piotr Dymacz Date: Wed, 31 Aug 2016 01:14:20 +0200 Subject: [PATCH] Add support for Comfast CF-E520N (QCA9531 based) --- Makefile | 3 ++ README.md | 2 ++ READMEPL.md | 2 ++ u-boot/Makefile | 7 ++++ u-boot/include/configs/ap143.h | 66 ++++++++++++++++++++++++++-------- 5 files changed, 66 insertions(+), 14 deletions(-) diff --git a/Makefile b/Makefile index 1e3789c..3ddea26 100644 --- a/Makefile +++ b/Makefile @@ -217,6 +217,9 @@ $(COMMON_ETHS27_TARGETS): 8devices_carambola2: @$(call build,256,1) +comfast_cf-e520n: + @$(call build,64,1,ETH_CONFIG=_s27) + d-link_dir-505: @$(call build,64,1) diff --git a/README.md b/README.md index 9fb3b0c..5c44c5e 100644 --- a/README.md +++ b/README.md @@ -94,6 +94,7 @@ Currently supported devices: - TP-Link TL-WR802N - Wallys DR531 - Zbtlink ZBT-WE1526 + - Comfast CF-E520N I tested this modification on most of these devices, with OpenWrt and OFW firmware. If you are not sure about the version of your device, please contact with me **before** you try to make an upgrade. Changing bootloader to a wrong version will probably damage your router and you will need special hardware to fix it, so please, **be very careful**. @@ -129,6 +130,7 @@ More information about supported devices: | [TP-Link TL-WR802N](https://wikidevi.com/wiki/TP-LINK_TL-WR802N_v1.0) | QCA9533 | 4 MiB | 32 MiB DDR1 | 64 KiB, LZMA | RO | | Wallys DR531 | QCA9531 | 8 MiB | 64 MiB DDR2 | 192 KiB | R/W | | Zbtlink ZBT-WE1526 | QCA9531 | 16 MiB | 128 MiB DDR2 | 256 KiB | R/W | +| Comfast CF-E520N | QCA9531 | 8 MiB | 32 MiB DDR2 | 64 KiB, LZMA | RO | *(LZMA) - U-Boot binary image is compressed with LZMA.* *(R/W) - environment exists in separate FLASH block which allows you to save it and keep after power down.* diff --git a/READMEPL.md b/READMEPL.md index 2e8df93..81a205a 100644 --- a/READMEPL.md +++ b/READMEPL.md @@ -91,6 +91,7 @@ Lista obecnie wspieranych urządzeń: - TP-Link TL-WR802N - Wallys DR531 - Zbtlink ZBT-WE1526 + - Comfast CF-E520N Przetestowałem swoją modyfikację na większości z wymienionych powyżej urządzeń, z obrazami OpenWrt i oficjalnym firmware producenta. Jeżeli nie jesteś pewien wersji sprzętowej swojego urządzenia, proszę skontaktuj się ze mną **zanim** dokonasz wymiany obrazu bootloadera. Zmiana na niewłaściwą wersję najprawdopodobniej doprowadzi do uszkodzenia Twojego urządzenia i jedyną możliwością jego ponownego uruchomienia będzie przeprogramowanie kości FLASH w zewnętrznym programatorze. @@ -126,6 +127,7 @@ Dodatkowe informacje o wspieranych urządzeniach: | [TP-Link TL-WR802N](https://wikidevi.com/wiki/TP-LINK_TL-WR802N_v1.0) | QCA9533 | 4 MiB | 32 MiB DDR1 | 64 KiB, LZMA | RO | | Wallys DR531 | QCA9531 | 8 MiB | 64 MiB DDR2 | 192 KiB | R/W | | Zbtlink ZBT-WE1526 | QCA9531 | 16 MiB | 128 MiB DDR2 | 256 KiB | R/W | +| Comfast CF-E520N | QCA9531 | 8 MiB | 32 MiB DDR2 | 64 KiB, LZMA | RO | *(LZMA) - obraz binarny U-Boot został dodatkowo skompresowany przy pomocy LZMA.* *(R/W) - zmienne środowiskowe przechowywane są w osobnym bloku FLASH, co pozwala na ich zachowanie po odłączeniu zasilaniu.* diff --git a/u-boot/Makefile b/u-boot/Makefile index f25fdfb..5278509 100644 --- a/u-boot/Makefile +++ b/u-boot/Makefile @@ -388,6 +388,13 @@ qca953x_common: unconfig config_common @$(call define_add,CONFIG_FOR_8DEVICES_CARAMBOLA2,1) @$(MKCONFIG) -a ap121 mips mips ap121 ar7240 ar7240 +comfast_cf-e520n: qca953x_common + @$(call config_init,Comfast CF-E520N,8,17,1,QCA_QCA953X_SOC) + @$(call define_add,CONFIG_FOR_COMFAST_CF_E520N,1) + @$(call define_add,CFG_ATHRS27_PHY,1) + @$(call define_add,CFG_ATH_GMAC_NMACS,2) + @$(MKCONFIG) -a ap143 mips mips ap143 ar7240 ar7240 + d-link_dir-505: ar933x_common @$(call config_init,D-Link DIR-505,8,11,1,QCA_AR933X_SOC) @$(call define_add,CONFIG_FOR_DLINK_DIR505_A1,1) diff --git a/u-boot/include/configs/ap143.h b/u-boot/include/configs/ap143.h index 3315ad6..91f6ebb 100644 --- a/u-boot/include/configs/ap143.h +++ b/u-boot/include/configs/ap143.h @@ -21,8 +21,15 @@ * GPIO configuration * ================== */ -#if defined(CONFIG_FOR_TPLINK_WR820N_CN) ||\ - defined(CONFIG_FOR_TPLINK_WR802N) +#if defined(CONFIG_FOR_COMFAST_CF_E520N) + + #define CONFIG_QCA_GPIO_MASK_LED_ACT_L GPIO11 + #define CONFIG_QCA_GPIO_MASK_OUT CONFIG_QCA_GPIO_MASK_LED_ACT_L + #define CONFIG_QCA_GPIO_MASK_IN GPIO17 + #define CONFIG_QCA_GPIO_MASK_OUT_INIT_H CONFIG_QCA_GPIO_MASK_LED_ACT_L + +#elif defined(CONFIG_FOR_TPLINK_WR820N_CN) ||\ + defined(CONFIG_FOR_TPLINK_WR802N) #define CONFIG_QCA_GPIO_MASK_LED_ACT_L GPIO13 #define CONFIG_QCA_GPIO_MASK_OUT CONFIG_QCA_GPIO_MASK_LED_ACT_L @@ -62,7 +69,13 @@ * Default bootargs * ================ */ -#if defined(CONFIG_FOR_TPLINK_WR820N_CN) +#if defined(CONFIG_FOR_COMFAST_CF_E520N) + + #define CONFIG_BOOTARGS "console=ttyS0,115200 root=31:03 "\ + "rootfstype=jffs2 init=/sbin/init "\ + "mtdparts=ath-nor0:64k(u-boot),64k(art),1536k(uImage),6464k(rootfs),64k(mib0)" + +#elif defined(CONFIG_FOR_TPLINK_WR820N_CN) #define CONFIG_BOOTARGS "console=ttyS0,115200 root=31:02 "\ "rootfstype=squashfs init=/sbin/init "\ @@ -94,7 +107,8 @@ * Load address and boot command * ============================= */ -#if defined(CONFIG_FOR_TPLINK_WR820N_CN) ||\ +#if defined(CONFIG_FOR_COMFAST_CF_E520N) ||\ + defined(CONFIG_FOR_TPLINK_WR820N_CN) ||\ defined(CONFIG_FOR_TPLINK_WR802N) ||\ defined(CONFIG_FOR_TPLINK_WR841N_V9) #define CFG_LOAD_ADDR 0x9F020000 @@ -111,9 +125,13 @@ * Environment configuration * ========================= */ -#if defined(CONFIG_FOR_TPLINK_WR820N_CN) ||\ - defined(CONFIG_FOR_TPLINK_WR802N) ||\ - defined(CONFIG_FOR_TPLINK_WR841N_V9) +#if defined(CONFIG_FOR_COMFAST_CF_E520N) + #define CFG_ENV_ADDR 0x9F018000 + #define CFG_ENV_SIZE 0x7C00 + #define CFG_ENV_SECT_SIZE 0x10000 +#elif defined(CONFIG_FOR_TPLINK_WR820N_CN) ||\ + defined(CONFIG_FOR_TPLINK_WR802N) ||\ + defined(CONFIG_FOR_TPLINK_WR841N_V9) #define CFG_ENV_ADDR 0x9F01EC00 #define CFG_ENV_SIZE 0x1000 #define CFG_ENV_SECT_SIZE 0x10000 @@ -141,9 +159,13 @@ * MAC address/es, model and WPS pin offsets in FLASH * ================================================== */ -#if defined(CONFIG_FOR_TPLINK_WR820N_CN) ||\ - defined(CONFIG_FOR_TPLINK_WR802N) ||\ - defined(CONFIG_FOR_TPLINK_WR841N_V9) +#if defined(CONFIG_FOR_COMFAST_CF_E520N) + #define OFFSET_MAC_DATA_BLOCK 0x10000 + #define OFFSET_MAC_DATA_BLOCK_LENGTH 0x10000 + #define OFFSET_MAC_ADDRESS 0x00000 +#elif defined(CONFIG_FOR_TPLINK_WR820N_CN) ||\ + defined(CONFIG_FOR_TPLINK_WR802N) ||\ + defined(CONFIG_FOR_TPLINK_WR841N_V9) #define OFFSET_MAC_DATA_BLOCK 0x010000 #define OFFSET_MAC_DATA_BLOCK_LENGTH 0x010000 #define OFFSET_MAC_ADDRESS 0x00FC00 @@ -159,6 +181,18 @@ #define OFFSET_MAC_ADDRESS 0x000000 #endif +/* + * ========================= + * Custom changes per device + * ========================= + */ + +/* Comfast CF-E520N is limited to 64 KB only, disable some commands */ +#if defined(CONFIG_FOR_COMFAST_CF_E520N) + #undef CONFIG_CMD_DHCP + #undef CONFIG_CMD_LOADB +#endif + /* * =========================== * HTTP recovery configuration @@ -171,7 +205,8 @@ #endif /* Firmware size limit */ -#if defined(CONFIG_FOR_TPLINK_WR820N_CN) ||\ +#if defined(CONFIG_FOR_COMFAST_CF_E520N) ||\ + defined(CONFIG_FOR_TPLINK_WR820N_CN) ||\ defined(CONFIG_FOR_TPLINK_WR802N) ||\ defined(CONFIG_FOR_TPLINK_WR841N_V9) #define WEBFAILSAFE_UPLOAD_LIMITED_AREA_IN_BYTES (192 * 1024) @@ -189,12 +224,14 @@ defined(CONFIG_FOR_TPLINK_WR802N) ||\ defined(CONFIG_FOR_TPLINK_WR841N_V9) #define CONFIG_QCA_PLL QCA_PLL_PRESET_550_400_200 -#elif defined(CONFIG_FOR_WALLYS_DR531) ||\ +#elif defined(CONFIG_FOR_COMFAST_CF_E520N) ||\ + defined(CONFIG_FOR_WALLYS_DR531) ||\ defined(CONFIG_FOR_ZBTLINK_ZBT_WE1526) #define CONFIG_QCA_PLL QCA_PLL_PRESET_650_400_200 #endif -#if defined(CONFIG_FOR_TPLINK_WR820N_CN) ||\ +#if defined(CONFIG_FOR_COMFAST_CF_E520N) ||\ + defined(CONFIG_FOR_TPLINK_WR820N_CN) ||\ defined(CONFIG_FOR_TPLINK_WR802N) ||\ defined(CONFIG_FOR_TPLINK_WR841N_V9) @@ -218,7 +255,8 @@ * For upgrade scripts in environment * ================================== */ -#if !defined(CONFIG_FOR_WALLYS_DR531) &&\ +#if !defined(CONFIG_FOR_COMFAST_CF_E520N) &&\ + !defined(CONFIG_FOR_WALLYS_DR531) &&\ !defined(CONFIG_FOR_ZBTLINK_ZBT_WE1526) #define CONFIG_UPG_UBOOT_SIZE_BACKUP_HEX 0x20000 #endif -- 2.25.1