Changeset 42126


Ignore:
Timestamp:
2014-08-11T13:37:14+02:00 (3 years ago)
Author:
jogo
Message:

brcm63xx: use dtb board detection for HW556

This requires individual images for each board version for now.
Linux partition was shrunk to ensure writing thewrong image won't
erase wifi calibration data.

Signed-off-by: Jonas Gorski <jogo@…>

Location:
trunk/target/linux/brcm63xx
Files:
3 added
18 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/brcm63xx/image/Makefile

    r42125 r42126  
    7373                --load-addr $(LOADADDR) --tag-version 7 \ 
    7474                --block-size 0x20000 --image-offset $(4) 
    75 endef 
    76  
    77 define Image/Build/CFEHW556 
    78         # Generate the tagged image 
    79         $(STAGING_DIR_HOST)/bin/imagetag -i $(KDIR)/vmlinux.lzma.cfe -f $(KDIR)/root.$(1) \ 
    80         --output $(BIN_DIR)/openwrt-$(2)-$(1)-cfe.bin \ 
    81         --boardid $(2) --chipid $(3) --entry $(LOADADDR) \ 
    82         --load-addr $(LOADADDR) --tag-version 8 --rsa-signature "$(5)" \ 
    83         --image-offset $(4) --info1 "$(6)" --block-size 0x20000 
    8475endef 
    8576 
     
    229220  TARGET_IMAGES += $(4) 
    230221endef 
     222 
     223define HW556ImageDTB 
     224  define Image/Build/$(2) 
     225        $$(call Image/Build/CFEDTB,$$(1),$(1),HW556,6358,$(2),EchoLife_HG556a,--image-offset 0x20000 --block-size 0x20000 --tag-version 8) 
     226  endef 
     227 
     228  TARGET_DTBS += $(1) 
     229  TARGET_IMAGES += $(2) 
     230endef 
     231 
    231232 
    232233define Image/Build 
     
    352353        $(call Image/Build/CFEHW553,$(1),HW553,6358,0x20000,HW553) 
    353354 
    354         #HW556 
    355         $(call Image/Build/CFEHW556,$(1),HW556,6358,0x20000,EchoLife_HG556a,OpenWRT-$(REVISION)) 
    356  
    357355        # T-Com Speedport W 303V Typ B 
    358356        $(call Image/Build/SPW303V,$(1),96358-502V,6358,SPW303V) 
     
    389387# D-Link DVA-G3810BN/TL 
    390388$(eval $(call CfeImageDTB,dva-g3810bn_tl,96358VW,6358,DVAG3810BN)) 
     389# Huawei HW556 
     390$(eval $(call HW556ImageDTB,hg556a-a,HW556-A)) 
     391$(eval $(call HW556ImageDTB,hg556a-b,HW556-B)) 
     392$(eval $(call HW556ImageDTB,hg556a-c,HW556-C)) 
    391393 
    392394$(eval $(call BuildImage)) 
  • trunk/target/linux/brcm63xx/patches-3.14/534-board_hw556.patch

    r42125 r42126  
    99 #include <linux/spi/spi.h> 
    1010 #include <linux/spi/spi_gpio.h> 
    11 @@ -3006,6 +3007,492 @@ static struct board_info __initdata boar 
     11@@ -3006,6 +3007,495 @@ static struct board_info __initdata boar 
    1212        }, 
    1313 }; 
     
    105105+static struct board_info __initdata board_HW556_A = { 
    106106+       .name                                   = "HW556_A", 
     107+       .of_board_id                            = "huawei,hg556a-a", 
    107108+       .expected_cpu_id                        = 0x6358, 
    108109+ 
     
    232233+static struct board_info __initdata board_HW556_B = { 
    233234+       .name                                   = "HW556_B", 
     235+       .of_board_id                            = "huawei,hg556a-b", 
    234236+       .expected_cpu_id                        = 0x6358, 
    235237+ 
     
    366368+static struct board_info __initdata board_HW556_C = { 
    367369+       .name                                   = "HW556_C", 
     370+       .of_board_id                            = "huawei,hg556a-c", 
    368371+       .expected_cpu_id                        = 0x6358, 
    369372+ 
     
    502505 static struct board_info __initdata board_spw303v = { 
    503506        .name                   = "96358-502V", 
    504 @@ -3446,6 +3933,10 @@ static const struct board_info __initcon 
     507@@ -3446,6 +3936,10 @@ static const struct board_info __initcon 
    505508        &board_nb4_fxc_r2, 
    506509        &board_ct6373_1, 
     
    513516        &board_DVAG3810BN, 
    514517 #endif 
    515 @@ -3465,13 +3956,37 @@ static void __init boardid_fixup(u8 *boo 
    516         struct bcm_tag *tag = (struct bcm_tag *)(boot_addr + CFE_OFFSET_64K); 
    517         char *board_name = (char *)bcm63xx_nvram_get_name(); 
    518   
    519 -       if (BCMCPU_IS_6358() && (!strcmp(board_name, "96358VW"))) { 
    520 -               u8 *p = boot_addr + NB4_PID_OFFSET; 
    521 - 
    522 -               /* Extract nb4 PID */ 
    523 -               if (!memcmp(p, "NB4-", 4)) { 
    524 -                       memcpy(board_name, p, sizeof("NB4-XXX-rX")); 
    525 -                       return; 
    526 +       if (BCMCPU_IS_6358()) { 
    527 +               if (!strcmp(board_name, "96358VW")) { 
    528 +                       u8 *p = boot_addr + NB4_PID_OFFSET; 
    529 + 
    530 +                       /* Extract nb4 PID */ 
    531 +                       if (!memcmp(p, "NB4-", 4)) { 
    532 +                               memcpy(board_name, p, sizeof("NB4-XXX-rX")); 
    533 +                               return; 
    534 +                       } 
    535 +               } else if (!strcmp(board_name, "HW556")) { 
    536 +                       /* 
    537 +                        * HW556 has different wlan caldatas depending on 
    538 +                        * hardware version. 
    539 +                        * Detect hardware version and change board id 
    540 +                        */ 
    541 +                       u8 cal_data_ath9k[4] = { 0xa5, 0x5a, 0, 0 }; 
    542 +                       u8 cal_data_rt3062[4] = { 0x62, 0x30, 1, 0 }; 
    543 + 
    544 +                       if (!memcmp(boot_addr + 0xeffe00, 
    545 +                                   &cal_data_rt3062, 4)) { 
    546 +                               /* Ralink 0xeffe00 */ 
    547 +                               memcpy(board_name, "HW556_A", 7); 
    548 +                       } else if (!memcmp(boot_addr + 0xf7e000, 
    549 +                                          &cal_data_ath9k, 4)) { 
    550 +                               /* Atheros 0xf7e000 */ 
    551 +                               memcpy(board_name, "HW556_B", 7); 
    552 +                       } else if (!memcmp(boot_addr + 0xefe000, 
    553 +                                          &cal_data_ath9k, 4)) { 
    554 +                               /* Atheros 0xefe000 */ 
    555 +                               memcpy(board_name, "HW556_C", 7); 
    556 +                       } 
    557                 } 
    558         } 
    559   
    560518--- a/drivers/mtd/bcm63xxpart.c 
    561519+++ b/drivers/mtd/bcm63xxpart.c 
  • trunk/target/linux/brcm63xx/patches-3.14/535-board_rta770w.patch

    r42125 r42126  
    6262  
    6363 /* 
    64 @@ -3895,6 +3949,7 @@ static const struct board_info __initcon 
     64@@ -3898,6 +3952,7 @@ static const struct board_info __initcon 
    6565 #ifdef CONFIG_BCM63XX_CPU_6345 
    6666        &board_96345gw2, 
  • trunk/target/linux/brcm63xx/patches-3.14/536-board_fast2704.patch

    r42125 r42126  
    136136  
    137137 /* 
    138 @@ -3939,6 +4055,7 @@ static const struct board_info __initcon 
     138@@ -3942,6 +4058,7 @@ static const struct board_info __initcon 
    139139        &board_963281TAN, 
    140140        &board_A4001N1, 
  • trunk/target/linux/brcm63xx/patches-3.14/537-board_fast2504n.patch

    r42125 r42126  
    77--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    88+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    9 @@ -3894,6 +3894,96 @@ static struct board_info __initdata boar 
     9@@ -3897,6 +3897,96 @@ static struct board_info __initdata boar 
    1010        .devs = nb6_devices, 
    1111        .num_devs = ARRAY_SIZE(nb6_devices), 
     
    104104  
    105105 /* 
    106 @@ -4115,6 +4205,7 @@ static const struct board_info __initcon 
     106@@ -4118,6 +4208,7 @@ static const struct board_info __initcon 
    107107  
    108108 #ifdef CONFIG_BCM63XX_CPU_6362 
  • trunk/target/linux/brcm63xx/patches-3.14/555-board_96318ref.patch

    r42125 r42126  
    9595  */ 
    9696 #ifdef CONFIG_BCM63XX_CPU_6328 
    97 @@ -4369,6 +4456,9 @@ static const struct board_info __initcon 
     97@@ -4372,6 +4459,9 @@ static const struct board_info __initcon 
    9898 #ifdef CONFIG_BCM63XX_CPU_3368 
    9999        &board_cvg834g, 
  • trunk/target/linux/brcm63xx/patches-3.14/556-board_96318ref_p300.patch

    r42125 r42126  
    9696  
    9797 /* 
    98 @@ -4458,6 +4546,7 @@ static const struct board_info __initcon 
     98@@ -4461,6 +4549,7 @@ static const struct board_info __initcon 
    9999 #endif 
    100100 #ifdef CONFIG_BCM63XX_CPU_6318 
  • trunk/target/linux/brcm63xx/patches-3.14/557-board_bcm963269bhr.patch

    r42125 r42126  
    11--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    22+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    3 @@ -4538,6 +4538,75 @@ static struct board_info __initdata boar 
     3@@ -4541,6 +4541,75 @@ static struct board_info __initdata boar 
    44 #endif /* CONFIG_BCM63XX_CPU_6368 */ 
    55  
     
    7777  */ 
    7878 static const struct board_info __initconst *bcm963xx_boards[] = { 
    79 @@ -4622,6 +4691,9 @@ static const struct board_info __initcon 
     79@@ -4625,6 +4694,9 @@ static const struct board_info __initcon 
    8080        &board_96368mvwg, 
    8181        &board_96368mvngr, 
  • trunk/target/linux/brcm63xx/patches-3.14/558-board_AR1004G.patch

    r42125 r42126  
    6262 /* BT Voyager 2110 */ 
    6363 static struct board_info __initdata board_V2110 = { 
    64 @@ -4658,6 +4704,7 @@ static const struct board_info __initcon 
     64@@ -4661,6 +4707,7 @@ static const struct board_info __initcon 
    6565        &board_96348A_122, 
    6666        &board_CPVA502plus, 
  • trunk/target/linux/brcm63xx/patches-3.14/559-board_vw6339gu.patch

    r42125 r42126  
    11--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    22+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    3 @@ -4650,6 +4650,108 @@ static struct board_info __initdata boar 
     3@@ -4653,6 +4653,108 @@ static struct board_info __initdata boar 
    44                }, 
    55        }, 
     
    110110  
    111111 /* 
    112 @@ -4740,6 +4842,7 @@ static const struct board_info __initcon 
     112@@ -4743,6 +4845,7 @@ static const struct board_info __initcon 
    113113 #endif 
    114114 #ifdef CONFIG_BCM63XX_CPU_63268 
  • trunk/target/linux/brcm63xx/patches-3.14/560-board_963268gu_p300.patch

    r42125 r42126  
    11--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    22+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    3 @@ -4587,6 +4587,131 @@ static struct board_info __initdata boar 
     3@@ -4590,6 +4590,131 @@ static struct board_info __initdata boar 
    44  * known 63268/63269 boards 
    55  */ 
     
    133133        .name                           = "963269BHR", 
    134134        .expected_cpu_id                = 0x63268, 
    135 @@ -4841,6 +4966,7 @@ static const struct board_info __initcon 
     135@@ -4844,6 +4969,7 @@ static const struct board_info __initcon 
    136136        &board_96368mvngr, 
    137137 #endif 
  • trunk/target/linux/brcm63xx/patches-3.14/561-board_WAP-5813n.patch

    r42125 r42126  
    99 #include <linux/spi/spi.h> 
    1010 #include <linux/spi/spi_gpio.h> 
    11 @@ -4581,6 +4582,117 @@ static struct board_info __initdata boar 
     11@@ -4584,6 +4585,117 @@ static struct board_info __initdata boar 
    1212        .has_ohci0 = 1, 
    1313        .has_ehci0 = 1, 
     
    127127  
    128128 /* 
    129 @@ -4964,6 +5076,7 @@ static const struct board_info __initcon 
     129@@ -4967,6 +5079,7 @@ static const struct board_info __initcon 
    130130 #ifdef CONFIG_BCM63XX_CPU_6368 
    131131        &board_96368mvwg, 
  • trunk/target/linux/brcm63xx/patches-3.14/562-board_VR-3025u.patch

    r42125 r42126  
    11--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    22+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    3 @@ -4583,6 +4583,116 @@ static struct board_info __initdata boar 
     3@@ -4586,6 +4586,116 @@ static struct board_info __initdata boar 
    44        .has_ehci0 = 1, 
    55 }; 
     
    118118        .alias = "eth0", 
    119119 }; 
    120 @@ -5076,6 +5186,7 @@ static const struct board_info __initcon 
     120@@ -5079,6 +5189,7 @@ static const struct board_info __initcon 
    121121 #ifdef CONFIG_BCM63XX_CPU_6368 
    122122        &board_96368mvwg, 
  • trunk/target/linux/brcm63xx/patches-3.14/563-board_VR-3025un.patch

    r42125 r42126  
    11--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    22+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    3 @@ -4693,6 +4693,116 @@ static struct board_info __initdata boar 
     3@@ -4696,6 +4696,116 @@ static struct board_info __initdata boar 
    44        }, 
    55 }; 
     
    118118        .alias = "eth0", 
    119119 }; 
    120 @@ -5187,6 +5297,7 @@ static const struct board_info __initcon 
     120@@ -5190,6 +5300,7 @@ static const struct board_info __initcon 
    121121        &board_96368mvwg, 
    122122        &board_96368mvngr, 
  • trunk/target/linux/brcm63xx/patches-3.14/564-board_P870HW-51a_v2.patch

    r42125 r42126  
    11--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    22+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    3 @@ -4592,6 +4592,96 @@ static struct sprom_fixup __initdata vr3 
     3@@ -4595,6 +4595,96 @@ static struct sprom_fixup __initdata vr3 
    44        { .offset = 115, .value = 0xfad9 }, 
    55 }; 
     
    9898        .name                                   = "96368M-1541N", 
    9999        .expected_cpu_id                = 0x6368, 
    100 @@ -5296,6 +5386,7 @@ static const struct board_info __initcon 
     100@@ -5299,6 +5389,7 @@ static const struct board_info __initcon 
    101101 #ifdef CONFIG_BCM63XX_CPU_6368 
    102102        &board_96368mvwg, 
  • trunk/target/linux/brcm63xx/patches-3.14/565-board_hw520.patch

    r42125 r42126  
    5858        .name                           = "HW553", 
    5959        .expected_cpu_id                = 0x6358, 
    60 @@ -5369,6 +5419,7 @@ static const struct board_info __initcon 
     60@@ -5372,6 +5422,7 @@ static const struct board_info __initcon 
    6161        &board_nb4_fxc_r1, 
    6262        &board_nb4_fxc_r2, 
  • trunk/target/linux/brcm63xx/patches-3.14/566-board_A4001N.patch

    r42125 r42126  
    9797        .name                                   = "963281T_TEF", 
    9898        .expected_cpu_id                        = 0x6328, 
    99 @@ -5367,6 +5456,7 @@ static const struct board_info __initcon 
     99@@ -5370,6 +5459,7 @@ static const struct board_info __initcon 
    100100        &board_AR5381u, 
    101101        &board_AR5387un, 
  • trunk/target/linux/brcm63xx/patches-3.14/567-board_dsl-2751b_e1.patch

    r42125 r42126  
    143143  
    144144 /* 
    145 @@ -5450,6 +5585,7 @@ static const struct board_info __initcon 
     145@@ -5453,6 +5588,7 @@ static const struct board_info __initcon 
    146146 #ifdef CONFIG_BCM63XX_CPU_6318 
    147147        &board_96318ref, 
Note: See TracChangeset for help on using the changeset viewer.