All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: gpio: mvebu: switch to regmap for register access
@ 2017-06-09  3:36 Chris Packham
  2017-06-09  4:09 ` Chris Packham
  0 siblings, 1 reply; 3+ messages in thread
From: Chris Packham @ 2017-06-09  3:36 UTC (permalink / raw)
  To: Thomas Petazzoni, linux-gpio@vger.kernel.org
  Cc: Gregory Clement, linus.walleij@linaro.org

Hi Thomas,

Doing some more testing against linux-next and I've found that this 
patch causes a flood of bad interrupts on my armada-xp-98dx3236 based 
board (kernel startup output below). If I revert this patch I can boot 
as normal.

This doesn't happen on the 98dx3236 DB or another Armada-385 based board 
I have so it's probably related something specific to this board 
(probably one of the i2c gpios based on the log messages).

Any thoughts on where I should start looking?

Booting Linux on physical CPU 0x0
Linux version 4.12.0-rc4-next-20170606-at1+ (chrisp@chrisp-dl) (gcc 
version 4.9.3 (crosstool-NG crosstool-ng-1.22.0) ) #98 SMP PREEMP
T Fri Jun 9 03:18:42 UTC 2017
CPU: ARMv7 Processor [562f5842] revision 2 (ARMv7), cr=10c5387d
CPU: div instructions available: patching division code
CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
OF: fdt: Machine model: x220/52
Memory policy: Data cache writealloc
On node 0 totalpages: 131072
free_area_init_node: node 0, pgdat 8092b100, node_mem_map 9fbfa000
   Normal zone: 1024 pages used for memmap
   Normal zone: 0 pages reserved
   Normal zone: 131072 pages, LIFO batch:31
percpu: Embedded 15 pages/cpu @9fbde000 s31040 r8192 d22208 u61440
pcpu-alloc: s31040 r8192 d22208 u61440 alloc=15*4096
pcpu-alloc: [0] 0
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
Kernel command line: console=ttyS0,115200 root=/dev/ram0 
releasefile=linuxbox_armv7-tb233.rel bootversion=6.2.4-devel loglevel=8 mtdo
ops.mtddev=errlog mvebu_edac.edac_op_state=0 reladdr=0x1000000,df49d3
PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Memory: 499368K/524288K available (5120K kernel code, 174K rwdata, 1380K 
rodata, 1024K init, 122K bss, 24920K reserved, 0K cma-reserv
ed)
Virtual kernel memory layout:
     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
     vmalloc : 0xa0800000 - 0xff800000   (1520 MB)
     lowmem  : 0x80000000 - 0xa0000000   ( 512 MB)
     modules : 0x7f000000 - 0x80000000   (  16 MB)
       .text : 0x80008000 - 0x80600000   (6112 kB)
       .init : 0x80800000 - 0x80900000   (1024 kB)
       .data : 0x80900000 - 0x8092b800   ( 174 kB)
        .bss : 0x809308e8 - 0x8094f480   ( 123 kB)
SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Preemptible hierarchical RCU implementation.
         RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1.
         Tasks RCU enabled.
RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
L2C: DT/platform modifies aux control register: 0x1a08e700 -> 0x1a08e702
Aurora cache controller enabled, 8 ways, 512 kB
Aurora: CACHE_ID 0x00000100, AUX_CTRL 0x1a08e702
Switching to timer-based delay loop, resolution 40ns
sched_clock: 32 bits at 25MHz, resolution 40ns, wraps every 85899345900ns
clocksource: armada_370_xp_clocksource: mask: 0xffffffff max_cycles: 
0xffffffff, max_idle_ns: 76450417870 ns
Calibrating delay loop (skipped), value calculated using timer 
frequency.. 50.00 BogoMIPS (lpj=250000)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
CPU: Testing write buffer coherency: ok
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
Setting up static identity map for 0x100000 - 0x100060
mvebu-soc-id: MVEBU SoC ID=0xF410, Rev=0x4
mvebu-pmsu: Initializing Power Management Service Unit
Hierarchical SRCU implementation.
smp: Bringing up secondary CPUs ...
smp: Brought up 1 node, 1 CPU
SMP: Total of 1 processors activated (50.00 BogoMIPS).
CPU: All CPU(s) started in SVC mode.
devtmpfs: initialized
VFP support v0.3: implementor 56 architecture 2 part 20 variant 9 rev 6
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, 
max_idle_ns: 19112604462750000 ns
futex hash table entries: 256 (order: 2, 16384 bytes)
pinctrl core: initialized pinctrl subsystem
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
clocksource: Switched to clocksource armada_370_xp_clocksource
NET: Registered protocol family 2
TCP established hash table entries: 4096 (order: 2, 16384 bytes)
TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
UDP hash table entries: 256 (order: 1, 8192 bytes)
UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
NET: Registered protocol family 1
PCI: CLS 0 bytes, default 64
Trying to unpack rootfs image as initramfs...
rootfs image is not initramfs (junk in compressed archive); looks like 
an initrd
Freeing initrd memory: 11756K
workingset: timestamp_bits=30 max_order=17 bucket_order=0
squashfs: version 4.0 (2009/01/31) Phillip Lougher
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
io scheduler mq-deadline registered
io scheduler kyber registered
armada-xp-pinctrl f1018000.pin-ctrl: registered pinctrl driver
GPIO line 31 (bb-override) hogged as output/low
mvebu-pcie soc:pcie-controller@82000000: PCI host bridge to bus 0000:00
pci_bus 0000:00: root bus resource [io  0x1000-0xfffff]
pci_bus 0000:00: root bus resource [mem 0xf8000000-0xffdfffff]
pci_bus 0000:00: root bus resource [bus 00-ff]
pci 0000:00:01.0: [11ab:f410] type 01 class 0x060400
PCI: bus0: Fast back to back transfers disabled
pci 0000:00:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring
pci 0000:01:00.0: [11ab:f410] type 00 class 0x020000
pci 0000:01:00.0: reg 0x10: [mem 0xe8000000-0xe80fffff 64bit pref]
pci 0000:01:00.0: reg 0x18: can't handle BAR above 4GB (bus address 
0xfffffffffc000000)
pci 0000:01:00.0: reg 0x18: [mem size 0x04000000 64bit pref]
pci 0000:01:00.0: reg 0x20: [mem 0xe8800000-0xe8ffffff 64bit pref]
pci 0000:01:00.0: supports D1 D2
PCI: bus1: Fast back to back transfers disabled
pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
pci 0000:00:01.0: BAR 8: assigned [mem 0xf8000000-0xfdffffff]
pci 0000:01:00.0: BAR 2: assigned [mem 0xf8000000-0xfbffffff 64bit pref]
pci 0000:01:00.0: BAR 4: assigned [mem 0xfc000000-0xfc7fffff 64bit pref]
pci 0000:01:00.0: BAR 0: assigned [mem 0xfc800000-0xfc8fffff 64bit pref]
pci 0000:00:01.0: PCI bridge to [bus 01]
pci 0000:00:01.0:   bridge window [mem 0xf8000000-0xfdffffff]
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
console [ttyS0] disabled
f1012000.serial: ttyS0 at MMIO 0xf1012000 (irq = 19, base_baud = 
12500000) is a 16550A
console [ttyS0] enabled
f1012100.serial: ttyS1 at MMIO 0xf1012100 (irq = 20, base_baud = 
12500000) is a 16550A
brd: module loaded
loop: module loaded
pxa3xx-nand f10d0000.nand: This platform can't do DMA on this device
nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xf1
nand: Micron MT29F1G08ABAEAWP
nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
pxa3xx-nand f10d0000.nand: ECC strength 16, ECC step size 2048
Bad block table found at page 65472, version 0x01
Bad block table found at page 65408, version 0x01
3 ofpart partitions found on MTD device pxa3xx_nand-0
Creating 3 MTD partitions on "pxa3xx_nand-0":
0x000000000000-0x000007000000 : "user"
0x000007000000-0x000007800000 : "errlog"
random: fast init done
mtdoops: ready 0, 1 (no erase)
mtdoops: Attached to MTD device 1
0x000007800000-0x000008000000 : "nand-bbt"
m25p80 spi0.0: m25p128 (16384 Kbytes)
4 ofpart partitions found on MTD device spi0.0
Creating 4 MTD partitions on "spi0.0":
0x000000000000-0x000000100000 : "u-boot"
0x000000100000-0x000000140000 : "u-boot-env"
0x000000140000-0x000000fc0000 : "unused"
0x000000fc0000-0x000001000000 : "idprom"
1 ofpart partitions found on MTD device spi0.1
Creating 1 MTD partitions on "spi0.1":
0x000000000000-0x000000020000 : "nvs"
libphy: Fixed MDIO Bus: probed
libphy: orion_mdio_bus: probed
usbcore: registered new interface driver asix
usbcore: registered new interface driver cdc_ether
usbcore: registered new interface driver smsc75xx
usbcore: registered new interface driver usb-storage
i2c /dev entries driver
irq 0, desc: 9c004700, depth: 1, count: 0, unhandled: 0
->handle_irq():  8015948c,
handle_bad_irq+0x0/0x294
->irq_data.chip(): 8090ed08,
no_irq_chip+0x0/0x88
->action():   (null)
    IRQ_NOPROBE set
  IRQ_NOREQUEST set
unexpected IRQ trap at vector 00
irq 0, desc: 9c004700, depth: 1, count: 0, unhandled: 0
->handle_irq():  8015948c,
handle_bad_irq+0x0/0x294
->irq_data.chip(): 8090ed08,
no_irq_chip+0x0/0x88
->action():   (null)
    IRQ_NOPROBE set
  IRQ_NOREQUEST set
unexpected IRQ trap at vector 00
irq 0, desc: 9c004700, depth: 1, count: 0, unhandled: 0
->handle_irq():  8015948c,
handle_bad_irq+0x0/0x294
->irq_data.chip(): 8090ed08,
no_irq_chip+0x0/0x88
->action():   (null)
    IRQ_NOPROBE set
  IRQ_NOREQUEST set
unexpected IRQ trap at vector 00
irq 0, desc: 9c004700, depth: 1, count: 0, unhandled: 0
->handle_irq():  8015948c,
handle_bad_irq+0x0/0x294
->irq_data.chip(): 8090ed08,
no_irq_chip+0x0/0x88
->action():   (null)
    IRQ_NOPROBE set
  IRQ_NOREQUEST set
unexpected IRQ trap at vector 00

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: gpio: mvebu: switch to regmap for register access
  2017-06-09  3:36 gpio: mvebu: switch to regmap for register access Chris Packham
@ 2017-06-09  4:09 ` Chris Packham
  2017-06-09 10:04   ` Gregory CLEMENT
  0 siblings, 1 reply; 3+ messages in thread
From: Chris Packham @ 2017-06-09  4:09 UTC (permalink / raw)
  To: Thomas Petazzoni, linux-gpio@vger.kernel.org
  Cc: Gregory Clement, linus.walleij@linaro.org

On 09/06/17 15:36, Chris Packham wrote:
> Hi Thomas,
> 
> Doing some more testing against linux-next and I've found that this
> patch causes a flood of bad interrupts on my armada-xp-98dx3236 based
> board (kernel startup output below). If I revert this patch I can boot
> as normal.
> 
> This doesn't happen on the 98dx3236 DB or another Armada-385 based board
> I have so it's probably related something specific to this board
> (probably one of the i2c gpios based on the log messages).
> 
> Any thoughts on where I should start looking?

Sure enough I think the problem is related to a pca9555 connected to one 
of the CPU gpios.

	gpio@27 {
		#address-cells = <2>;
		#size-cells = <0>;
		compatible = "nxp,pca9555";
		reg = <0x27>;
		gpio-controller;
		#gpio-cells = <2>;
		interrupt-parent = <&gpio0>;
		interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
	};

If I remove the interrupt properties I don't see the problem.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: gpio: mvebu: switch to regmap for register access
  2017-06-09  4:09 ` Chris Packham
@ 2017-06-09 10:04   ` Gregory CLEMENT
  0 siblings, 0 replies; 3+ messages in thread
From: Gregory CLEMENT @ 2017-06-09 10:04 UTC (permalink / raw)
  To: Chris Packham
  Cc: Thomas Petazzoni, linux-gpio@vger.kernel.org,
	linus.walleij@linaro.org

Hi Chris,
 
 On ven., juin 09 2017, Chris Packham <Chris.Packham@alliedtelesis.co.nz> wrote:

> On 09/06/17 15:36, Chris Packham wrote:
>> Hi Thomas,
>> 
>> Doing some more testing against linux-next and I've found that this
>> patch causes a flood of bad interrupts on my armada-xp-98dx3236 based
>> board (kernel startup output below). If I revert this patch I can boot
>> as normal.
>> 
>> This doesn't happen on the 98dx3236 DB or another Armada-385 based board
>> I have so it's probably related something specific to this board
>> (probably one of the i2c gpios based on the log messages).
>> 
>> Any thoughts on where I should start looking?
>
> Sure enough I think the problem is related to a pca9555 connected to one 
> of the CPU gpios.
>
> 	gpio@27 {
> 		#address-cells = <2>;
> 		#size-cells = <0>;
> 		compatible = "nxp,pca9555";
> 		reg = <0x27>;
> 		gpio-controller;
> 		#gpio-cells = <2>;
> 		interrupt-parent = <&gpio0>;
> 		interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
> 	};
>
> If I remove the interrupt properties I don't see the problem.

I found the bug and I've just sent a fix for it.

Thanks for the report,

Gregory

-- 
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-06-09 10:04 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-06-09  3:36 gpio: mvebu: switch to regmap for register access Chris Packham
2017-06-09  4:09 ` Chris Packham
2017-06-09 10:04   ` Gregory CLEMENT

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.