mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 04:13:31 +00:00
update ar71xx to kernel 4.9 again
This commit is contained in:
parent
140a51482d
commit
9032647645
@ -13,7 +13,7 @@ FEATURES:=usbgadget
|
||||
CPU_TYPE:=24kc
|
||||
SUBTARGETS:=generic nand mikrotik
|
||||
|
||||
KERNEL_PATCHVER:=4.4
|
||||
KERNEL_PATCHVER:=4.9
|
||||
|
||||
include $(INCLUDE_DIR)/target.mk
|
||||
|
||||
|
@ -223,8 +223,8 @@ CONFIG_ATH79_MACH_UBNT=y
|
||||
CONFIG_ATH79_MACH_UBNT_UNIFIAC=y
|
||||
CONFIG_ATH79_MACH_UBNT_XM=y
|
||||
CONFIG_ATH79_MACH_WEIO=y
|
||||
CONFIG_ATH79_MACH_WHR_HP_G300N=y
|
||||
# CONFIG_ATH79_MACH_WI2A_AC200I is not set
|
||||
CONFIG_ATH79_MACH_WHR_HP_G300N=y
|
||||
CONFIG_ATH79_MACH_WLAE_AG300N=y
|
||||
CONFIG_ATH79_MACH_WLR8100=y
|
||||
CONFIG_ATH79_MACH_WNDAP360=y
|
||||
@ -374,7 +374,6 @@ CONFIG_MIPS_CLOCK_VSYSCALL=y
|
||||
CONFIG_MIPS_CMDLINE_FROM_BOOTLOADER=y
|
||||
# CONFIG_MIPS_CMDLINE_FROM_DTB is not set
|
||||
# CONFIG_MIPS_ELF_APPENDED_DTB is not set
|
||||
CONFIG_MIPS_FPU_EMULATOR=y
|
||||
# CONFIG_MIPS_HUGE_TLB_SUPPORT is not set
|
||||
CONFIG_MIPS_L1_CACHE_SHIFT=5
|
||||
CONFIG_MIPS_MACHINE=y
|
||||
|
@ -35,15 +35,15 @@
|
||||
#define ARCHER_C25_GPIO_SHIFT_SRCLR 19 /* MR, Master Reset */
|
||||
#define ARCHER_C25_GPIO_SHIFT_RCLK 16 /* STCP, Storage Reg Clock Input */
|
||||
|
||||
#define ARCHER_C25_74HC_GPIO_BASE QCA956X_GPIO_COUNT
|
||||
#define ARCHER_C25_74HC_GPIO_LED_WAN_AMBER 27
|
||||
#define ARCHER_C25_74HC_GPIO_LED_WAN_GREEN 28
|
||||
#define ARCHER_C25_74HC_GPIO_LED_WLAN2 29
|
||||
#define ARCHER_C25_74HC_GPIO_LED_WLAN5 30
|
||||
#define ARCHER_C25_74HC_GPIO_LED_LAN1 23
|
||||
#define ARCHER_C25_74HC_GPIO_LED_LAN2 24
|
||||
#define ARCHER_C25_74HC_GPIO_LED_LAN3 25
|
||||
#define ARCHER_C25_74HC_GPIO_LED_LAN4 26
|
||||
#define ARCHER_C25_74HC_GPIO_BASE 32
|
||||
#define ARCHER_C25_74HC_GPIO_LED_WAN_AMBER (ARCHER_C25_74HC_GPIO_BASE + 4)
|
||||
#define ARCHER_C25_74HC_GPIO_LED_WAN_GREEN (ARCHER_C25_74HC_GPIO_BASE + 5)
|
||||
#define ARCHER_C25_74HC_GPIO_LED_WLAN2 (ARCHER_C25_74HC_GPIO_BASE + 6)
|
||||
#define ARCHER_C25_74HC_GPIO_LED_WLAN5 (ARCHER_C25_74HC_GPIO_BASE + 7)
|
||||
#define ARCHER_C25_74HC_GPIO_LED_LAN1 (ARCHER_C25_74HC_GPIO_BASE + 0)
|
||||
#define ARCHER_C25_74HC_GPIO_LED_LAN2 (ARCHER_C25_74HC_GPIO_BASE + 1)
|
||||
#define ARCHER_C25_74HC_GPIO_LED_LAN3 (ARCHER_C25_74HC_GPIO_BASE + 2)
|
||||
#define ARCHER_C25_74HC_GPIO_LED_LAN4 (ARCHER_C25_74HC_GPIO_BASE + 3)
|
||||
|
||||
#define ARCHER_C25_V1_SSR_BIT_0 0
|
||||
#define ARCHER_C25_V1_SSR_BIT_1 1
|
||||
|
@ -43,15 +43,15 @@
|
||||
#define ARCHER_C59_GPIO_SHIFT_SRCLR 19
|
||||
#define ARCHER_C59_GPIO_SHIFT_RCLK 20
|
||||
|
||||
#define ARCHER_C59_74HC_GPIO_BASE QCA956X_GPIO_COUNT
|
||||
#define ARCHER_C59_74HC_GPIO_LED_POWER 23
|
||||
#define ARCHER_C59_74HC_GPIO_LED_WLAN2 24
|
||||
#define ARCHER_C59_74HC_GPIO_LED_WLAN5 25
|
||||
#define ARCHER_C59_74HC_GPIO_LED_LAN 26
|
||||
#define ARCHER_C59_74HC_GPIO_LED_WAN_GREEN 27
|
||||
#define ARCHER_C59_74HC_GPIO_LED_WAN_AMBER 28
|
||||
#define ARCHER_C59_74HC_GPIO_LED_WPS 29
|
||||
#define ARCHER_C59_74HC_GPIO_LED_USB 30
|
||||
#define ARCHER_C59_74HC_GPIO_BASE 32
|
||||
#define ARCHER_C59_74HC_GPIO_LED_POWER (ARCHER_C59_74HC_GPIO_BASE + 0)
|
||||
#define ARCHER_C59_74HC_GPIO_LED_WLAN2 (ARCHER_C59_74HC_GPIO_BASE + 1)
|
||||
#define ARCHER_C59_74HC_GPIO_LED_WLAN5 (ARCHER_C59_74HC_GPIO_BASE + 2)
|
||||
#define ARCHER_C59_74HC_GPIO_LED_LAN (ARCHER_C59_74HC_GPIO_BASE + 3)
|
||||
#define ARCHER_C59_74HC_GPIO_LED_WAN_GREEN (ARCHER_C59_74HC_GPIO_BASE + 4)
|
||||
#define ARCHER_C59_74HC_GPIO_LED_WAN_AMBER (ARCHER_C59_74HC_GPIO_BASE + 5)
|
||||
#define ARCHER_C59_74HC_GPIO_LED_WPS (ARCHER_C59_74HC_GPIO_BASE + 6)
|
||||
#define ARCHER_C59_74HC_GPIO_LED_USB (ARCHER_C59_74HC_GPIO_BASE + 7)
|
||||
|
||||
#define ARCHER_C59_V1_SSR_BIT_0 0
|
||||
#define ARCHER_C59_V1_SSR_BIT_1 1
|
||||
|
@ -56,7 +56,7 @@
|
||||
#define ARCHER_C7_GPIO_LED_USB1 7
|
||||
#define ARCHER_C7_GPIO_LED_USB2 8
|
||||
|
||||
#define ARCHER_C7_74HC_GPIO_BASE QCA956X_GPIO_COUNT
|
||||
#define ARCHER_C7_74HC_GPIO_BASE 32
|
||||
#define ARCHER_C7_GPIO_LED_WPS (ARCHER_C7_74HC_GPIO_BASE + 0)
|
||||
#define ARCHER_C7_GPIO_LED_LAN1 (ARCHER_C7_74HC_GPIO_BASE + 1)
|
||||
#define ARCHER_C7_GPIO_LED_LAN2 (ARCHER_C7_74HC_GPIO_BASE + 2)
|
||||
|
@ -53,7 +53,7 @@
|
||||
#define RB91X_FLAG_USB BIT(0)
|
||||
#define RB91X_FLAG_PCIE BIT(1)
|
||||
|
||||
#define RB91X_LATCH_GPIO_BASE AR934X_GPIO_COUNT
|
||||
#define RB91X_LATCH_GPIO_BASE 32
|
||||
#define RB91X_LATCH_GPIO(_x) (RB91X_LATCH_GPIO_BASE + (_x))
|
||||
|
||||
#define RB91X_SSR_GPIO_BASE (RB91X_LATCH_GPIO_BASE + AR934X_GPIO_COUNT)
|
||||
|
@ -49,15 +49,15 @@
|
||||
#define TL_WR942N_V1_GPIO_LED_WPS 21
|
||||
#define TL_WR942N_V1_GPIO_LED_STATUS 22
|
||||
|
||||
#define TL_WR942N_V1_74HC_GPIO_BASE QCA956X_GPIO_COUNT
|
||||
#define TL_WR942N_V1_74HC_GPIO_LED_LAN4 23
|
||||
#define TL_WR942N_V1_74HC_GPIO_LED_LAN3 24
|
||||
#define TL_WR942N_V1_74HC_GPIO_LED_LAN2 25
|
||||
#define TL_WR942N_V1_74HC_GPIO_LED_LAN1 26
|
||||
#define TL_WR942N_V1_74HC_GPIO_LED_WAN_GREEN 27
|
||||
#define TL_WR942N_V1_74HC_GPIO_LED_WAN_AMBER 28
|
||||
#define TL_WR942N_V1_74HC_GPIO_LED_WLAN 29
|
||||
#define TL_WR942N_V1_74HC_GPIO_HUB_RESET 30 /* from u-boot sources */
|
||||
#define TL_WR942N_V1_74HC_GPIO_BASE 32
|
||||
#define TL_WR942N_V1_74HC_GPIO_LED_LAN4 (TL_WR942N_V1_74HC_GPIO_BASE + 0)
|
||||
#define TL_WR942N_V1_74HC_GPIO_LED_LAN3 (TL_WR942N_V1_74HC_GPIO_BASE + 1)
|
||||
#define TL_WR942N_V1_74HC_GPIO_LED_LAN2 (TL_WR942N_V1_74HC_GPIO_BASE + 2)
|
||||
#define TL_WR942N_V1_74HC_GPIO_LED_LAN1 (TL_WR942N_V1_74HC_GPIO_BASE + 3)
|
||||
#define TL_WR942N_V1_74HC_GPIO_LED_WAN_GREEN (TL_WR942N_V1_74HC_GPIO_BASE + 4)
|
||||
#define TL_WR942N_V1_74HC_GPIO_LED_WAN_AMBER (TL_WR942N_V1_74HC_GPIO_BASE + 5)
|
||||
#define TL_WR942N_V1_74HC_GPIO_LED_WLAN (TL_WR942N_V1_74HC_GPIO_BASE + 6)
|
||||
#define TL_WR942N_V1_74HC_GPIO_HUB_RESET (TL_WR942N_V1_74HC_GPIO_BASE + 7) /* from u-boot sources */
|
||||
|
||||
#define TL_WR942N_V1_SSR_BIT_0 0
|
||||
#define TL_WR942N_V1_SSR_BIT_1 1
|
||||
|
@ -39,9 +39,31 @@
|
||||
|
||||
struct rb4xx_nand_info {
|
||||
struct nand_chip chip;
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
|
||||
struct mtd_info mtd;
|
||||
#endif
|
||||
};
|
||||
|
||||
static inline struct rb4xx_nand_info *mtd_to_rbinfo(struct mtd_info *mtd)
|
||||
{
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
|
||||
return container_of(mtd, struct rb4xx_nand_info, mtd);
|
||||
#else
|
||||
struct nand_chip *chip = mtd_to_nand(mtd);
|
||||
|
||||
return container_of(chip, struct rb4xx_nand_info, chip);
|
||||
#endif
|
||||
}
|
||||
|
||||
static struct mtd_info *rbinfo_to_mtd(struct rb4xx_nand_info *nfc)
|
||||
{
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
|
||||
return &nfc->mtd;
|
||||
#else
|
||||
return nand_to_mtd(&nfc->chip);
|
||||
#endif
|
||||
}
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
|
||||
/*
|
||||
* We need to use the OLD Yaffs-1 OOB layout, otherwise the RB bootloader
|
||||
@ -191,6 +213,7 @@ static void rb4xx_nand_read_buf(struct mtd_info *mtd, unsigned char *buf,
|
||||
static int rb4xx_nand_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct rb4xx_nand_info *info;
|
||||
struct mtd_info *mtd;
|
||||
int ret;
|
||||
|
||||
printk(KERN_INFO DRV_DESC " version " DRV_VERSION "\n");
|
||||
@ -259,8 +282,12 @@ static int rb4xx_nand_probe(struct platform_device *pdev)
|
||||
}
|
||||
|
||||
info->chip.priv = &info;
|
||||
info->mtd.priv = &info->chip;
|
||||
info->mtd.owner = THIS_MODULE;
|
||||
mtd = rbinfo_to_mtd(info);
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
|
||||
mtd->priv = &info->chip;
|
||||
#endif
|
||||
mtd->owner = THIS_MODULE;
|
||||
|
||||
info->chip.cmd_ctrl = rb4xx_nand_cmd_ctrl;
|
||||
info->chip.dev_ready = rb4xx_nand_dev_ready;
|
||||
@ -270,30 +297,33 @@ static int rb4xx_nand_probe(struct platform_device *pdev)
|
||||
|
||||
info->chip.chip_delay = 25;
|
||||
info->chip.ecc.mode = NAND_ECC_SOFT;
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0)
|
||||
info->chip.ecc.algo = NAND_ECC_HAMMING;
|
||||
#endif
|
||||
info->chip.options = NAND_NO_SUBPAGE_WRITE;
|
||||
|
||||
platform_set_drvdata(pdev, info);
|
||||
|
||||
ret = nand_scan_ident(&info->mtd, 1, NULL);
|
||||
ret = nand_scan_ident(mtd, 1, NULL);
|
||||
if (ret) {
|
||||
ret = -ENXIO;
|
||||
goto err_free_info;
|
||||
}
|
||||
|
||||
if (info->mtd.writesize == 512)
|
||||
if (mtd->writesize == 512)
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
|
||||
info->chip.ecc.layout = &rb4xx_nand_ecclayout;
|
||||
#else
|
||||
mtd_set_ooblayout(&info->mtd, &rb4xx_nand_ecclayout_ops);
|
||||
mtd_set_ooblayout(mtd, &rb4xx_nand_ecclayout_ops);
|
||||
#endif
|
||||
|
||||
ret = nand_scan_tail(&info->mtd);
|
||||
ret = nand_scan_tail(mtd);
|
||||
if (ret) {
|
||||
return -ENXIO;
|
||||
goto err_set_drvdata;
|
||||
}
|
||||
|
||||
mtd_device_register(&info->mtd, rb4xx_nand_partitions,
|
||||
mtd_device_register(mtd, rb4xx_nand_partitions,
|
||||
ARRAY_SIZE(rb4xx_nand_partitions));
|
||||
if (ret)
|
||||
goto err_release_nand;
|
||||
@ -301,7 +331,7 @@ static int rb4xx_nand_probe(struct platform_device *pdev)
|
||||
return 0;
|
||||
|
||||
err_release_nand:
|
||||
nand_release(&info->mtd);
|
||||
nand_release(mtd);
|
||||
err_set_drvdata:
|
||||
platform_set_drvdata(pdev, NULL);
|
||||
err_free_info:
|
||||
@ -322,7 +352,7 @@ static int rb4xx_nand_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct rb4xx_nand_info *info = platform_get_drvdata(pdev);
|
||||
|
||||
nand_release(&info->mtd);
|
||||
nand_release(rbinfo_to_mtd(info));
|
||||
platform_set_drvdata(pdev, NULL);
|
||||
kfree(info);
|
||||
gpio_free(RB4XX_NAND_GPIO_NCE);
|
||||
|
@ -41,13 +41,30 @@
|
||||
|
||||
struct rb750_nand_info {
|
||||
struct nand_chip chip;
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
|
||||
struct mtd_info mtd;
|
||||
#endif
|
||||
struct rb7xx_nand_platform_data *pdata;
|
||||
};
|
||||
|
||||
static inline struct rb750_nand_info *mtd_to_rbinfo(struct mtd_info *mtd)
|
||||
{
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
|
||||
return container_of(mtd, struct rb750_nand_info, mtd);
|
||||
#else
|
||||
struct nand_chip *chip = mtd_to_nand(mtd);
|
||||
|
||||
return container_of(chip, struct rb750_nand_info, chip);
|
||||
#endif
|
||||
}
|
||||
|
||||
static struct mtd_info *rbinfo_to_mtd(struct rb750_nand_info *nfc)
|
||||
{
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
|
||||
return &nfc->mtd;
|
||||
#else
|
||||
return nand_to_mtd(&nfc->chip);
|
||||
#endif
|
||||
}
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
|
||||
@ -304,6 +321,7 @@ static int rb750_nand_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct rb750_nand_info *info;
|
||||
struct rb7xx_nand_platform_data *pdata;
|
||||
struct mtd_info *mtd;
|
||||
int ret;
|
||||
|
||||
printk(KERN_INFO DRV_DESC " version " DRV_VERSION "\n");
|
||||
@ -317,8 +335,12 @@ static int rb750_nand_probe(struct platform_device *pdev)
|
||||
return -ENOMEM;
|
||||
|
||||
info->chip.priv = &info;
|
||||
info->mtd.priv = &info->chip;
|
||||
info->mtd.owner = THIS_MODULE;
|
||||
|
||||
mtd = rbinfo_to_mtd(info);
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
|
||||
mtd->priv = &info->chip;
|
||||
#endif
|
||||
mtd->owner = THIS_MODULE;
|
||||
|
||||
info->chip.select_chip = rb750_nand_select_chip;
|
||||
info->chip.cmd_ctrl = rb750_nand_cmd_ctrl;
|
||||
@ -329,6 +351,9 @@ static int rb750_nand_probe(struct platform_device *pdev)
|
||||
|
||||
info->chip.chip_delay = 25;
|
||||
info->chip.ecc.mode = NAND_ECC_SOFT;
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0)
|
||||
info->chip.ecc.algo = NAND_ECC_HAMMING;
|
||||
#endif
|
||||
info->chip.options = NAND_NO_SUBPAGE_WRITE;
|
||||
|
||||
info->pdata = pdata;
|
||||
@ -337,26 +362,26 @@ static int rb750_nand_probe(struct platform_device *pdev)
|
||||
|
||||
rb750_nand_gpio_init(info);
|
||||
|
||||
ret = nand_scan_ident(&info->mtd, 1, NULL);
|
||||
ret = nand_scan_ident(mtd, 1, NULL);
|
||||
if (ret) {
|
||||
ret = -ENXIO;
|
||||
goto err_free_info;
|
||||
}
|
||||
|
||||
if (info->mtd.writesize == 512)
|
||||
if (mtd->writesize == 512)
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
|
||||
info->chip.ecc.layout = &rb750_nand_ecclayout;
|
||||
#else
|
||||
mtd_set_ooblayout(&info->mtd, &rb750_nand_ecclayout_ops);
|
||||
mtd_set_ooblayout(mtd, &rb750_nand_ecclayout_ops);
|
||||
#endif
|
||||
|
||||
ret = nand_scan_tail(&info->mtd);
|
||||
ret = nand_scan_tail(mtd);
|
||||
if (ret) {
|
||||
return -ENXIO;
|
||||
goto err_set_drvdata;
|
||||
}
|
||||
|
||||
ret = mtd_device_register(&info->mtd, rb750_nand_partitions,
|
||||
ret = mtd_device_register(mtd, rb750_nand_partitions,
|
||||
ARRAY_SIZE(rb750_nand_partitions));
|
||||
if (ret)
|
||||
goto err_release_nand;
|
||||
@ -364,7 +389,7 @@ static int rb750_nand_probe(struct platform_device *pdev)
|
||||
return 0;
|
||||
|
||||
err_release_nand:
|
||||
nand_release(&info->mtd);
|
||||
nand_release(mtd);
|
||||
err_set_drvdata:
|
||||
platform_set_drvdata(pdev, NULL);
|
||||
err_free_info:
|
||||
@ -376,7 +401,7 @@ static int rb750_nand_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct rb750_nand_info *info = platform_get_drvdata(pdev);
|
||||
|
||||
nand_release(&info->mtd);
|
||||
nand_release(rbinfo_to_mtd(info));
|
||||
platform_set_drvdata(pdev, NULL);
|
||||
kfree(info);
|
||||
|
||||
|
@ -40,7 +40,9 @@
|
||||
|
||||
struct rb91x_nand_info {
|
||||
struct nand_chip chip;
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
|
||||
struct mtd_info mtd;
|
||||
#endif
|
||||
struct device *dev;
|
||||
|
||||
int gpio_nce;
|
||||
@ -54,9 +56,25 @@ struct rb91x_nand_info {
|
||||
|
||||
static inline struct rb91x_nand_info *mtd_to_rbinfo(struct mtd_info *mtd)
|
||||
{
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
|
||||
return container_of(mtd, struct rb91x_nand_info, mtd);
|
||||
#else
|
||||
struct nand_chip *chip = mtd_to_nand(mtd);
|
||||
|
||||
return container_of(chip, struct rb91x_nand_info, chip);
|
||||
#endif
|
||||
}
|
||||
|
||||
static struct mtd_info *rbinfo_to_mtd(struct rb91x_nand_info *nfc)
|
||||
{
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
|
||||
return &nfc->mtd;
|
||||
#else
|
||||
return nand_to_mtd(&nfc->chip);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
|
||||
/*
|
||||
* We need to use the OLD Yaffs-1 OOB layout, otherwise the RB bootloader
|
||||
@ -340,6 +358,7 @@ static int rb91x_nand_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct rb91x_nand_info *rbni;
|
||||
struct rb91x_nand_platform_data *pdata;
|
||||
struct mtd_info *mtd;
|
||||
int ret;
|
||||
|
||||
pr_info(DRV_DESC "\n");
|
||||
@ -362,8 +381,12 @@ static int rb91x_nand_probe(struct platform_device *pdev)
|
||||
rbni->gpio_nle = pdata->gpio_nle;
|
||||
|
||||
rbni->chip.priv = &rbni;
|
||||
rbni->mtd.priv = &rbni->chip;
|
||||
rbni->mtd.owner = THIS_MODULE;
|
||||
mtd = rbinfo_to_mtd(rbni);
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
|
||||
mtd->priv = &rbni->chip;
|
||||
#endif
|
||||
mtd->owner = THIS_MODULE;
|
||||
|
||||
rbni->chip.cmd_ctrl = rb91x_nand_cmd_ctrl;
|
||||
rbni->chip.dev_ready = rb91x_nand_dev_ready;
|
||||
@ -373,6 +396,9 @@ static int rb91x_nand_probe(struct platform_device *pdev)
|
||||
|
||||
rbni->chip.chip_delay = 25;
|
||||
rbni->chip.ecc.mode = NAND_ECC_SOFT;
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0)
|
||||
rbni->chip.ecc.algo = NAND_ECC_HAMMING;
|
||||
#endif
|
||||
rbni->chip.options = NAND_NO_SUBPAGE_WRITE;
|
||||
|
||||
platform_set_drvdata(pdev, rbni);
|
||||
@ -381,22 +407,22 @@ static int rb91x_nand_probe(struct platform_device *pdev)
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = nand_scan_ident(&rbni->mtd, 1, NULL);
|
||||
ret = nand_scan_ident(mtd, 1, NULL);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (rbni->mtd.writesize == 512)
|
||||
if (mtd->writesize == 512)
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
|
||||
rbni->chip.ecc.layout = &rb91x_nand_ecclayout;
|
||||
#else
|
||||
mtd_set_ooblayout(&rbni->mtd, &rb91x_nand_ecclayout_ops);
|
||||
mtd_set_ooblayout(mtd, &rb91x_nand_ecclayout_ops);
|
||||
#endif
|
||||
|
||||
ret = nand_scan_tail(&rbni->mtd);
|
||||
ret = nand_scan_tail(mtd);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = mtd_device_register(&rbni->mtd, rb91x_nand_partitions,
|
||||
ret = mtd_device_register(mtd, rb91x_nand_partitions,
|
||||
ARRAY_SIZE(rb91x_nand_partitions));
|
||||
if (ret)
|
||||
goto err_release_nand;
|
||||
@ -404,7 +430,7 @@ static int rb91x_nand_probe(struct platform_device *pdev)
|
||||
return 0;
|
||||
|
||||
err_release_nand:
|
||||
nand_release(&rbni->mtd);
|
||||
nand_release(mtd);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -412,7 +438,7 @@ static int rb91x_nand_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct rb91x_nand_info *info = platform_get_drvdata(pdev);
|
||||
|
||||
nand_release(&info->mtd);
|
||||
nand_release(rbinfo_to_mtd(info));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -358,7 +358,6 @@ define Device/dr344
|
||||
MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,6336k(rootfs),1408k(kernel),64k(nvram),64k(art)ro,7744k@0x50000(firmware)
|
||||
IMAGE/sysupgrade.bin := append-rootfs | pad-rootfs | pad-to $$$$(ROOTFS_SIZE) | append-kernel | check-size $$$$(IMAGE_SIZE)
|
||||
endef
|
||||
TARGET_DEVICES += dr344
|
||||
|
||||
define Device/dr531
|
||||
DEVICE_TITLE := Wallys DR531
|
||||
|
@ -37,11 +37,13 @@ CFLAGS = -D__KERNEL__ -Wall -Wstrict-prototypes -Wno-trigraphs -Os \
|
||||
-mabi=32 -march=mips32r2 \
|
||||
-Wa,-32 -Wa,-march=mips32r2 -Wa,-mips32r2 -Wa,--trap
|
||||
CFLAGS += -D_LZMA_PROB32
|
||||
CFLAGS += -flto
|
||||
|
||||
ASFLAGS = $(CFLAGS) -D__ASSEMBLY__
|
||||
|
||||
LDFLAGS = -static --gc-sections -no-warn-mismatch
|
||||
LDFLAGS += -e startup -T loader.lds -Ttext $(LZMA_TEXT_START)
|
||||
LDFLAGS = -static -Wl,--gc-sections -Wl,-no-warn-mismatch
|
||||
LDFLAGS += -Wl,-e,startup -T loader.lds -Wl,-Ttext,$(LZMA_TEXT_START)
|
||||
LDFLAGS += -flto -fwhole-program
|
||||
|
||||
O_FORMAT = $(shell $(OBJDUMP) -i | head -2 | grep elf32)
|
||||
|
||||
@ -86,7 +88,7 @@ data.o: $(LOADER_DATA)
|
||||
$(LD) -r -b binary --oformat $(O_FORMAT) -T lzma-data.lds -o $@ $<
|
||||
|
||||
loader: $(OBJECTS)
|
||||
$(LD) $(LDFLAGS) -o $@ $(OBJECTS)
|
||||
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJECTS)
|
||||
|
||||
loader.bin: loader
|
||||
$(OBJCOPY) $(BIN_FLAGS) $< $@
|
||||
|
@ -42,6 +42,19 @@ LEAF(startup)
|
||||
mtc0 t0, CP0_STATUS
|
||||
ehb
|
||||
|
||||
/*
|
||||
* Some bootloaders set the 'Kseg0 coherency algorithm' to
|
||||
* 'Cacheable, noncoherent, write-through, no write allocate'
|
||||
* and this cause performance issues. Let's go and change it to
|
||||
* 'Cacheable, noncoherent, write-back, write allocate'
|
||||
*/
|
||||
mfc0 t0, CP0_CONFIG
|
||||
li t1, ~7 #~CONF_CM_CMASK
|
||||
and t0, t1
|
||||
ori t0, 3 #CONF_CM_CACHABLE_NONCOHERENT
|
||||
mtc0 t0, CP0_CONFIG
|
||||
nop
|
||||
|
||||
mtc0 zero, CP0_COUNT
|
||||
mtc0 zero, CP0_COMPARE
|
||||
ehb
|
||||
|
@ -150,7 +150,7 @@ define Device/archer-c60-v1
|
||||
MTDPARTS := spi0.0:64k(u-boot)ro,64k(mac)ro,1344k(kernel),6592k(rootfs),64k(tplink)ro,64k(art)ro,7936k@0x20000(firmware)
|
||||
SUPPORTED_DEVICES := archer-c60-v1
|
||||
endef
|
||||
TARGET_DEVICES += archer-c25-v1 archer-c58-v1 archer-c59-v1 archer-c60-v1
|
||||
TARGET_DEVICES += archer-c25-v1 archer-c59-v1
|
||||
|
||||
define Device/archer-c5-v1
|
||||
$(Device/tplink-16mlzma)
|
||||
@ -1043,7 +1043,6 @@ define Device/tl-wr902ac-v1
|
||||
append-metadata | check-size $$$$(IMAGE_SIZE)
|
||||
MTDPARTS := spi0.0:128k(u-boot)ro,7360k(firmware),640k(tplink)ro,64k(art)ro
|
||||
endef
|
||||
TARGET_DEVICES += tl-wr902ac-v1
|
||||
|
||||
define Device/tl-wr940n-v4
|
||||
$(Device/tplink-8mlzma)
|
||||
@ -1118,4 +1117,4 @@ define Device/tl-wr942n-v1
|
||||
MTDPARTS := spi0.0:128k(u-boot)ro,1344k(kernel),13120k(rootfs),64k(product-info)ro,64k(partition-table)ro,256k(oem-config)ro,1344k(oem-vars)ro,64k(ART)ro,14464k@0x20000(firmware)
|
||||
SUPPORTED_DEVICES := tl-wr942n-v1
|
||||
endef
|
||||
TARGET_DEVICES += tl-wr940n-v4 tl-wr941nd-v2 tl-wr941nd-v3 tl-wr941nd-v4 tl-wr941nd-v5 tl-wr941nd-v6 tl-wr941nd-v6-cn tl-wr942n-v1
|
||||
TARGET_DEVICES += tl-wr940n-v4 tl-wr941nd-v2 tl-wr941nd-v3 tl-wr941nd-v4 tl-wr941nd-v5 tl-wr941nd-v6 tl-wr941nd-v6-cn
|
||||
|
@ -256,4 +256,3 @@ define Device/ubnt-unifi-outdoor-plus
|
||||
BOARDNAME := UBNT-UOP
|
||||
DEVICE_PROFILE := UBNT
|
||||
endef
|
||||
TARGET_DEVICES += ubnt-uap-pro ubnt-unifi-outdoor-plus
|
||||
|
@ -231,6 +231,7 @@ CONFIG_MTD_NAND_RB4XX=y
|
||||
CONFIG_MTD_NAND_RB750=y
|
||||
CONFIG_MTD_NAND_RB91X=y
|
||||
# CONFIG_MTD_REDBOOT_PARTS is not set
|
||||
CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
|
||||
# CONFIG_MTD_SPLIT_EVA_FW is not set
|
||||
# CONFIG_MTD_SPLIT_TPLINK_FW is not set
|
||||
# CONFIG_MTD_TPLINK_PARTS is not set
|
||||
|
Loading…
Reference in New Issue
Block a user