Seguridad Wireless - Wifi

Equipos y materiales => Puntos de acceso, routers, switchs y bridges => Openwrt & LEDE => Mensaje iniciado por: Ficht en 02-11-2018, 23:11 (Viernes)

Título: Fallos en registros de gpiochip MIPS32 BRCM63XX bcm6368
Publicado por: Ficht en 02-11-2018, 23:11 (Viernes)
El problema lo estoy viendo en el observa telecom vh4032n, que falla la cuenta del gpiochip , parece que empieza a contar en el GPIO480 y tendría que ser el 474, esto parece que viene del kernel, lo estoy viendo a partir del 4.9 en adelante (comprobado el último trunck => fallando)
Pregunto además, si alguien sabe que puedo tocar en el entorno de compilación para intentar corregir esto al menos de manera local? [Pinta chungo] (el dts de la placa está bien)

Comparativa de arranque con kernel 4.4 "no falla" y kernel 4.9 " si falla.
Citar
KERNEL 4.9 FALLA
CFE version 1.0.37-102.15 for BCM96368 (32bit,SP,BE)
Build Date: Wed Feb 10 09:57:47 CST 2010 (link@hpnb)
Copyright (C) 2000-2009 Broadcom Corporation.

Parallel flash device: name AM29LV320MT, id 0x2201, size 32768KB
CPU type 0x2A031: 400MHz, Bus: 160MHz, Ref: 64MHz
CPU running TP0
Total memory: 134217728 bytes (128MB)
Boot Address 0xb8000000


Board IP address                  : 192.168.1.1:ffffff00 
Host IP address                   : 192.168.1.100 
Gateway IP address                :   
Run from flash/host (f/h)         : f 
Default host run file name        : vmlinux 
Default host flash file name      : bcm963xx_fs_kernel 
Boot delay (0-9 seconds)          : 1 
Board Id (0-4)                    : 96368VVW 
Number of MAC Addresses (1-32)    : 11 
Base MAC Address                  : d8:61:94:33:4e:60 
PSI Size (1-64) KBytes            : 64 
Main Thread Number [0|1]          : 0 
Serial Number (20)                : V140B19003101 
Vendor Specific 01 (40)           : mHVTkWXU3Gk3dC 
Vendor Specific 02 (40)           :   
Vendor Specific 03 (40)           :   

*** Press any key to stop auto run (1 seconds) ***
Auto run second count down: 0
Booting from only image (0xb8020000) ...
Code Address: 0x80A00000, Entry Address: 0x80a00000
LZMA: Prossible old LZMA format, trying to decompress..
Decompression OK!
Entry at 0x80a00000
Closing network.
Disabling Switch ports.
Flushing Receive Buffers...
46 buffers found.
Closing DMA Channels.
Starting program at 0x80a00000
[    0.000000] Linux version 4.9.77 (hg556a@hg556a) (gcc version 5.5.0 (OpenWrt GCC 5.5.0 r6164-9f5a4f8) ) #0 SMP Fri Feb 16 19:09:34 2018
[    0.000000] Detected Broadcom 0x6368 CPU revision b2
[    0.000000] CPU frequency is 400 MHz
[    0.000000] 128MB of RAM installed
[    0.000000] board_bcm963xx: Boot address 0xb8000000
[    0.000000] board_bcm963xx: CFE version: 1.0.37-102.15
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 0002a031 (Broadcom BMIPS4350)
[    0.000000] board: board name: VH4032N
[    0.000000] MIPS: machine is Observa VH4032N
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 08000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 16 bytes.
[    0.000000] Primary data cache 32kB, 2-way, VIPT, cache aliases, linesize 16 bytes
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] percpu: Embedded 12 pages/cpu @8110a000 s17392 r8192 d23568 u49152
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
[    0.000000] Kernel command line: rootfstype=squashfs,jffs2 noinitrd console=ttyS0,115200
[    0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Memory: 121108K/131072K available (5121K kernel code, 283K rwdata, 1656K rodata, 1316K init, 233K bss, 9964K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=16, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000] NR_IRQS:256
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 9556302233 ns
[    0.000015] sched_clock: 32 bits at 200MHz, resolution 5ns, wraps every 10737418237ns
[    0.008124] Calibrating delay loop... 397.82 BogoMIPS (lpj=795648)
[    0.042776] pid_max: default: 32768 minimum: 301
[    0.047765] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.054539] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.067955] SMP: Booting CPU1...
[   10.505232] Primary instruction cache 64kB, VIPT, 4-way, linesize 16 bytes.
[   10.505249] Primary data cache 32kB, 2-way, VIPT, cache aliases, linesize 16 bytes
[   10.505571] CPU1 revision is: 0002a031 (Broadcom BMIPS4350)
[    0.120108] Synchronize counters for CPU 1:
[    0.120110] done.
[    0.120120] SMP: CPU1 is running
[    0.130012] Brought up 2 CPUs
[    0.141697] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.151747] futex hash table entries: 512 (order: 1, 8192 bytes)
[    0.158084] pinctrl core: initialized pinctrl subsystem
[    0.164797] NET: Registered protocol family 16
[    0.197755] registering PCI controller with io_map_base unset
[    0.266816] usbcore: registered new interface driver usbfs
[    0.272974] usbcore: registered new interface driver hub
[    0.278661] usbcore: registered new device driver usb
[    0.283990] Linux video capture interface: v2.00
[    0.289947] PCI host bridge to bus 0000:00
[    0.294186] pci_bus 0000:00: root bus resource [mem 0x30000000-0x37ffffff]
[    0.301239] pci_bus 0000:00: root bus resource [io  0x8000000-0x800ffff]
[    0.308140] pci_bus 0000:00: root bus resource [??? 0x00000000 flags 0x0]
[    0.315125] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[    0.331179] pci 0000:00:01.0: BAR 0: assigned [mem 0x30000000-0x30003fff]
[    0.341839] clocksource: Switched to clocksource MIPS
[    0.350524] PCI: Enabling device 0000:00:01.0 (0000 -> 0002)
[    0.361312] random: fast init done
[    0.386464] ssb: Found chip with id 0xA8D6, rev 0x00 and package 0x08
[    0.438153] ssb_fallback_sprom: pci bus/device num mismatch: expected 0/0, but got 0/1
[    0.475622] ssb: Sonics Silicon Backplane found on PCI device 0000:00:01.0
[    0.483461] NET: Registered protocol family 2
[    0.489576] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    0.496827] TCP bind hash table entries: 1024 (order: 1, 8192 bytes)
[    0.503444] TCP: Hash tables configured (established 1024 bind 1024)
[    0.510354] UDP hash table entries: 256 (order: 1, 8192 bytes)
[    0.516452] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[    0.523451] NET: Registered protocol family 1
[    0.531141] Crashlog allocated RAM at address 0x3f00000
[    0.537519] workingset: timestamp_bits=30 max_order=15 bucket_order=0
[    0.563429] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.569458] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.585614] io scheduler noop registered
[    0.589652] io scheduler deadline registered (default)
[    0.597094] requesting hog GPIO usb-hub-reset-gpio (chip bcm63xx-gpio.0, offset 27) failed, -517
[    0.606191] gpiochip_add_data: GPIOs 480..511 (bcm63xx-gpio.0) failed to register
[    0.614992] bcm6368-pinctrl 10000080.pin-controller: registered at mmio b0000080

[    0.626799] 10000100.serial: ttyS0 at MMIO 0x10000100 (irq = 10, base_baud = 1562500) is a bcm63xx_uart
[    0.636557] console [ttyS0] enabled
[    0.636557] console [ttyS0] enabled
[    0.643712] bootconsole [early0] disabled
[    0.643712] bootconsole [early0] disabled
[    0.653176] bcm63xx-rng bcm63xx-rng: registered RNG driver
[    0.660422] 18000000.nor: Found 1 x16 devices at 0x0 in 16-bit bank. Manufacturer ID 0x000001 Chip ID 0x002201
[    0.670758] Amd/Fujitsu Extended Query Table at 0x0040
[    0.676041]   Amd/Fujitsu Extended Query version 1.3.
[    0.681228] number of CFI chips: 1
[    0.684758] 3 ofpart partitions found on MTD device 18000000.nor
[    0.690907] Creating 3 MTD partitions on "18000000.nor":
[    0.696385] 0x000000000000-0x000000020000 : "CFE"
[    0.703937] 0x000000020000-0x000001fe0000 : "linux"
[    0.712420] parser_imagetag: rootfs: CFE image tag found at 0x0 with version 6, board type 96368VVW
[    0.721815] parser_imagetag: Partition 0 is kernel offset 100 and length 21163c
[    0.729373] parser_imagetag: Partition 1 is rootfs offset 21173c and length 1dae8c4
[    0.737239] parser_imagetag: Spare partition is offset 420004 and length 1b9fffc
[    0.744926] 2 bcm963xx-imagetag partitions found on MTD device linux
[    0.751450] Creating 2 MTD partitions on "linux":
[    0.756293] 0x000000000100-0x00000021173c : "kernel"
[    0.763869] 0x00000021173c-0x000001fc0000 : "rootfs"
[    0.771760] mtd: device 3 (rootfs) set to be root filesystem
[    0.777682] 1 squashfs-split partitions found on MTD device rootfs
[    0.784063] 0x000000420000-0x000001fc0000 : "rootfs_data"
[    0.792067] 0x000001fe0000-0x000002000000 : "nvram"
[    0.801547] bcm63xx-spi 10000800.spi: at [mem 0x10000800-0x10000f0b flags 0x200] (irq 9, FIFOs size 542)
[    0.814281] libphy: Fixed MDIO Bus: probed
[    0.862987] b53_common: found switch: BCM63xx, rev 0
Citar
KERNEL 4.4 NO FALLA
Parallel flash device: name AM29LV320MT, id 0x2201, size 32768KB
CPU type 0x2A031: 400MHz, Bus: 160MHz, Ref: 64MHz
CPU running TP0
Total memory: 134217728 bytes (128MB)
Boot Address 0xb8000000


Board IP address                  : 192.168.1.1:ffffff00 
Host IP address                   : 192.168.1.100 
Gateway IP address                :   
Run from flash/host (f/h)         : f 
Default host run file name        : vmlinux 
Default host flash file name      : bcm963xx_fs_kernel 
Boot delay (0-9 seconds)          : 1 
Board Id (0-4)                    : 96368VVW 
Number of MAC Addresses (1-32)    : 11 
Base MAC Address                  : d8:61:94:33:4e:60 
PSI Size (1-64) KBytes            : 64 
Main Thread Number [0|1]          : 0 
Serial Number (20)                : V140B19003101 
Vendor Specific 01 (40)           : mHVTkWXU3Gk3dC 
Vendor Specific 02 (40)           :   
Vendor Specific 03 (40)           :   

*** Press any key to stop auto run (1 seconds) ***
Auto run second count down: 0
Booting from only image (0xb8020000) ...
Code Address: 0x80A00000, Entry Address: 0x80a00000
LZMA: Prossible old LZMA format, trying to decompress..
Decompression OK!
Entry at 0x80a00000
Closing network.
Disabling Switch ports.
Flushing Receive Buffers...
12 buffers found.
Closing DMA Channels.
Starting program at 0x80a00000
[    0.000000] Linux version 4.4.61 (hg556a@hg556a) (gcc version 5.4.0 (LEDE GCC 5.4.0 r3316-7eb58cf109) ) #0 SMP Mon Apr 17 16:15:53 2017
[    0.000000] Detected Broadcom 0x6368 CPU revision b2
[    0.000000] CPU frequency is 400 MHz
[    0.000000] 128MB of RAM installed
[    0.000000] board_bcm963xx: Boot address 0xb8000000
[    0.000000] board_bcm963xx: CFE version: 1.0.37-102.15
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 0002a031 (Broadcom BMIPS4350)
[    0.000000] board: board name: VH4032N
[    0.000000] MIPS: machine is Observa VH4032N
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 08000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 16 bytes.
[    0.000000] Primary data cache 32kB, 2-way, VIPT, cache aliases, linesize 16 bytes
[    0.000000] PERCPU: Embedded 9 pages/cpu @81106000 s8080 r8192 d20592 u36864
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
[    0.000000] Kernel command line: root=/dev/mtdblock2 rootfstype=squashfs,jffs2 noinitrd console=ttyS0,115200
[    0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Memory: 121164K/131072K available (5153K kernel code, 275K rwdata, 1640K rodata, 1308K init, 216K bss, 9908K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=16, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000] NR_IRQS:256
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 9556302233 ns
[    0.000015] sched_clock: 32 bits at 200MHz, resolution 5ns, wraps every 10737418237ns
[    0.008116] Calibrating delay loop... 397.82 BogoMIPS (lpj=795648)
[    0.042765] pid_max: default: 32768 minimum: 301
[    0.047764] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.054541] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.067550] SMP: Booting CPU1...
[    8.825014] Primary instruction cache 64kB, VIPT, 4-way, linesize 16 bytes.
[    8.825030] Primary data cache 32kB, 2-way, VIPT, cache aliases, linesize 16 bytes
[    8.825360] CPU1 revision is: 0002a031 (Broadcom BMIPS4350)
[    0.119659] Synchronize counters for CPU 1: done.
[    0.119666] SMP: CPU1 is running
[    0.119870] Brought up 2 CPUs
[    0.130013] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.130060] futex hash table entries: 512 (order: 1, 8192 bytes)
[    0.134267] NET: Registered protocol family 16
[    0.160888] registering PCI controller with io_map_base unset
[    0.247000] usbcore: registered new interface driver usbfs
[    0.252872] usbcore: registered new interface driver hub
[    0.258521] usbcore: registered new device driver usb
[    0.264173] media: Linux media interface: v0.10
[    0.269068] Linux video capture interface: v2.00
[    0.275225] PCI host bridge to bus 0000:00
[    0.279473] pci_bus 0000:00: root bus resource [mem 0x30000000-0x37ffffff]
[    0.286527] pci_bus 0000:00: root bus resource [io  0x8000000-0x800ffff]
[    0.293424] pci_bus 0000:00: root bus resource [??? 0x00000000 flags 0x0]
[    0.300407] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[    0.316484] pci 0000:00:01.0: BAR 0: assigned [mem 0x30000000-0x30003fff]
[    0.327765] clocksource: Switched to clocksource MIPS
[    0.337050] PCI: Enabling device 0000:00:01.0 (0000 -> 0002)
[    0.364116] ssb: Found chip with id 0xA8D6, rev 0x00 and package 0x08
[    0.407802] ssb_fallback_sprom: pci bus/device num mismatch: expected 0/0, but got 0/1
[    0.437310] ssb: Sonics Silicon Backplane found on PCI device 0000:00:01.0
[    0.445233] NET: Registered protocol family 2
[    0.451459] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    0.458708] TCP bind hash table entries: 1024 (order: 1, 8192 bytes)
[    0.465327] TCP: Hash tables configured (established 1024 bind 1024)
[    0.472224] UDP hash table entries: 256 (order: 1, 8192 bytes)
[    0.478336] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[    0.485389] NET: Registered protocol family 1
[    0.493581] Crashlog allocated RAM at address 0x3f00000
[    0.519693] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.525788] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.541849] io scheduler noop registered
[    0.545970] io scheduler deadline registered (default)
[    0.560040] bcm63xx_uart.0: ttyS0 at MMIO 0xb0000100 (irq = 10, base_baud = 1562500) is a bcm63xx_uart
[    0.569706] console [ttyS0] enabled
[    0.569706] console [ttyS0] enabled
[    0.576857] bootconsole [early0] disabled
[    0.576857] bootconsole [early0] disabled
[    0.586312] bcm63xx-rng bcm63xx-rng: registered RNG driver
[    0.594106] 18000000.nor: Found 1 x16 devices at 0x0 in 16-bit bank. Manufacturer ID 0x000001 Chip ID 0x002201
[    0.604490] Amd/Fujitsu Extended Query Table at 0x0040
[    0.609776]   Amd/Fujitsu Extended Query version 1.3.
[    0.614948] number of CFI chips: 1
[    0.618794] bcm63xxpart: CFE boot tag found with version 6 and board type 96368VVW
[    0.626684] 5 bcm63xxpart partitions found on MTD device 18000000.nor
[    0.633324] Creating 5 MTD partitions on "18000000.nor":
[    0.638780] 0x000000000000-0x000000020000 : "CFE"
[    0.646224] 0x000000020100-0x00000023f710 : "kernel"
[    0.653850] 0x00000023f710-0x000001fe0000 : "rootfs"
[    0.662161] mtd: device 2 (rootfs) set to be root filesystem
[    0.668099] 1 squashfs-split partitions found on MTD device rootfs
[    0.674539] 0x000001800000-0x000001fe0000 : "rootfs_data"
[    0.682828] 0x000000020000-0x000001fe0000 : "linux"
[    0.690349] 0x000001fe0000-0x000002000000 : "nvram"
[    0.700244] bcm63xx-spi bcm6358-spi: at [mem 0xb0000800-0xb0000f0b flags 0x200] (irq 9, FIFOs size 542)
[    0.748633] b53_common: found switch: BCM63xx, rev 0

Mal...
Citar
root@OpenWrt:/# cat /sys/kernel/debug/gpio
gpiochip0: GPIOs 506-511, parent: platform/10000080.pin-controller, bcm63xx-gpio.1:
 gpio-508 (                    |reset               ) in  hi   
 gpio-509 (                    |wps                 ) in  hi   
root@OpenWrt:/#
Título: Re:Fallos en registros de gpiochip MIPS32 BRCM63XX bcm6368
Publicado por: danitool en 31-12-2018, 11:50 (Lunes)
Hola Ficht!

Antes de nada, gracias por informar del error. Resulta que el problema viene del GPIO hog, que se usa para sacar el hub USB fuera del reset. Después de haber adoptado el nuevo driver del pinctrl para brcm63xx aparecieron diversos problemas en varios routers. Pues parece que al vh4032n le tocó éste.
Para solucionarlo hace algún tiempo envié un workaround básico para no usar el GPIO hog porque la solución no parecía simple. A Jonas Gorski como me temía no le gustó la solución, pero trabajó en ello.

Finalmente Jonas ha arreglado el problema.  Los proximos firmwares snapshot deberían tener esto arreglado, y con suerte más adelante también las versiones 18.06 . Este es el commit.

https://git.openwrt.org/?p=openwrt/openwrt.git;a=commitdiff;h=6d6127e537

Saludos
Título: Re:Fallos en registros de gpiochip MIPS32 BRCM63XX bcm6368
Publicado por: Ficht en 04-01-2019, 22:19 (Viernes)
Gracias Dani.
Lo actualizo!!