AnsweredAssumed Answered

Remove unused phys from p1010rdb

Question asked by yensid on Feb 26, 2014

I'm still resonably new to embedded linux and I have a question about removing the hardware support from linux for 2 phys we won't be using from the P1010RDB.  We have our own PCB modeled after the P1010RDB and a P1010RDB.  Our PCB only has one phy on eTsec1 setup as RGMII, and the other connections for eTsec2 & 3 are left open.  I removed support from p1010si-post.dtsi, p1010si-pre.dtsi, and p1010rdb.dtsi for the unused hardware as well as the U-boot configuration file.  When I boot up the p1010RDB with this changes, only one phy/ethernet port is found, and the system comes up normally.  When I run this same uboot, kernel, fdt, and rfs on our PCB only one phy/eTsecnet port is found but then the kernel will panic later in boot. The panic appears related to the caam crypto device interrupt later while booting. 

 

Thanks and any advice is appreciated!

 

Wake-up & Kernel Panic:

.....

libphy: Fixed MDIO Bus: probed

libphy: Freescale PowerQUICC MII Bus: probed

fsl-gianfar ethernet.1: ptp 1588 is initialized.

fsl-gianfar ethernet.1 eth0: mac: 00:01:02:03:04:09

fsl-gianfar ethernet.1 eth0: Running with NAPI enabled

fsl-gianfar ethernet.1 eth0: RX BD ring size for Q[0]: 256

fsl-gianfar ethernet.1 eth0: RX BD ring size for Q[1]: 256

fsl-gianfar ethernet.1 eth0: RX BD ring size for Q[2]: 256

fsl-gianfar ethernet.1 eth0: RX BD ring size for Q[3]: 256

fsl-gianfar ethernet.1 eth0: RX BD ring size for Q[4]: 256

fsl-gianfar ethernet.1 eth0: RX BD ring size for Q[5]: 256

fsl-gianfar ethernet.1 eth0: RX BD ring size for Q[6]: 256

fsl-gianfar ethernet.1 eth0: RX BD ring size for Q[7]: 256

fsl-gianfar ethernet.1 eth0: TX BD ring size for Q[0]: 256

fsl-gianfar ethernet.1 eth0: TX BD ring size for Q[1]: 256

fsl-gianfar ethernet.1 eth0: TX BD ring size for Q[2]: 256

fsl-gianfar ethernet.1 eth0: TX BD ring size for Q[3]: 256

fsl-gianfar ethernet.1 eth0: TX BD ring size for Q[4]: 256

fsl-gianfar ethernet.1 eth0: TX BD ring size for Q[5]: 256

fsl-gianfar ethernet.1 eth0: TX BD ring size for Q[6]: 256

fsl-gianfar ethernet.1 eth0: TX BD ring size for Q[7]: 256

ucc_geth: QE UCC Gigabit Ethernet Controller

e1000: Intel(R) PRO/1000 Network Driver - version 7.3.21-k8-NAPI

e1000: Copyright (c) 1999-2006 Intel Corporation.

e1000e: Intel(R) PRO/1000 Network Driver - 2.1.4-k

e1000e: Copyright(c) 1999 - 2012 Intel Corporation.

igb: Intel(R) Gigabit Ethernet Network Driver - version 4.1.2-k

igb: Copyright (c) 2007-2012 Intel Corporation.

ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver

ehci-pci: EHCI PCI platform driver

ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver

fsl-ehci fsl-ehci.0: Freescale On-Chip EHCI Host Controller

fsl-ehci fsl-ehci.0: new USB bus registered, assigned bus number 1

fsl-ehci fsl-ehci.0: irq 28, io mem 0xffe22000

fsl-ehci fsl-ehci.0: USB 2.0 started, EHCI 1.00

hub 1-0:1.0: USB hub found

hub 1-0:1.0: 1 port detected

Initializing USB Mass Storage driver...

usbcore: registered new interface driver usb-storage

USB Mass Storage support registered.

EDAC MC: Ver: 3.0.0

sdhci: Secure Digital Host Controller Interface driver

sdhci: Copyright(c) Pierre Ossman

sdhci-pltfm: SDHCI platform and OF driver helper

platform ffe31000.jr: failed to flush job ring 0

platform ffe32000.jr: failed to flush job ring 1

platform ffe33000.jr: failed to flush job ring 2

platform ffe34000.jr: failed to flush job ring 3

caam ffe30000.crypto: device ID = 0x0a14010000000000 (Era 3)

caam ffe30000.crypto: job rings = 4, qi = 0

caam ffe30000.crypto: fsl,sec-v4.4 algorithms registered in /proc/crypto

Unable to handle kernel paging request for data at address 0x00000014

Faulting instruction address: 0xc0428ef4

Oops: Kernel access of bad area, sig: 11 [#1]

P1010 RDB

Modules linked in:

NIP: c0428ef4 LR: c0428ee4 CTR: c000b980

REGS: ef03fdb0 TRAP: 0300   Not tainted  (3.8.13-rt9-QorIQ-SDK-V1.4)

MSR: 00029000 <CE,EE,ME>  CR: 82ad2e22  XER: 00000000

DEAR: 00000014, ESR: 00000000

TASK = ef040000[1] 'swapper' THREAD: ef03e000

GPR00: c0583c84 ef03fe60 ef040000 00000000 008e7dec 00000dec 00000000 00000000

GPR08: c077336c ffffffff 00000000 008e7dec 82adbe28 00000000 c00027fc 00000000

GPR16: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000000ec

GPR24: c04330a0 c08d7d40 00000018 c08e7dec ef2b7880 ef2c5c10 00000000 008e7dec

NIP [c0428ef4] caam_jr_enqueue+0xd4/0x220

LR [c0428ee4] caam_jr_enqueue+0xc4/0x220

Call Trace:

[ef03fe60] [c057c02c] klist_iter_exit+0x28/0x44 (unreliable)

[ef03fe90] [c0583c84] caam_init_buf.constprop.7+0x184/0x1c4

[ef03feb0] [c0752f0c] caam_rng_init+0x110/0x164

[ef03fec0] [c0002260] do_one_initcall+0x150/0x1b8

[ef03fef0] [c07328d0] kernel_init_freeable+0x114/0x1d0

[ef03ff30] [c0002810] kernel_init+0x14/0x10c

[ef03ff40] [c000d1a4] ret_from_kernel_thread+0x64/0x6c

Instruction dump:

7fa3eb78 7fc5f378 7fe6fb78 7d2903a6 4e800421 2f830000 409e0130 4bc1bee9

813c0044 811c0064 815c0008 7c0004ac <814a0014> 0c0a0000 4c00012c 2f8a0000

---[ end trace 3f1a64d749b4c834 ]---

 

 

Kernel panic - not syncing: Fatal exception in interrupt

Rebooting in 180 seconds..

 

Patch Showing Code Removed from the files mentioned above.

Index: git/arch/powerpc/boot/dts/fsl/p1010si-pre.dtsi

===================================================================

--- git.orig/arch/powerpc/boot/dts/fsl/p1010si-pre.dtsi 2014-02-26 10:18:56.956325280 -0500

+++ git/arch/powerpc/boot/dts/fsl/p1010si-pre.dtsi 2014-02-26 10:19:33.952325241 -0500

@@ -46,8 +46,6 @@

  serial0 = &serial0;

  serial1 = &serial1;

  ethernet0 = &enet0;

- ethernet1 = &enet1;

- ethernet2 = &enet2;

  pci0 = &pci0;

  pci1 = &pci1;

  can0 = &can0;

Index: git/arch/powerpc/boot/dts/fsl/p1010si-post.dtsi

===================================================================

--- git.orig/arch/powerpc/boot/dts/fsl/p1010si-post.dtsi 2014-02-26 10:18:51.572325286 -0500

+++ git/arch/powerpc/boot/dts/fsl/p1010si-post.dtsi 2014-02-26 10:19:45.796325228 -0500

@@ -180,27 +180,6 @@

  };

  };

 

-/include/ "pq3-etsec2-1.dtsi"

- enet1: ethernet@b1000 {

- fsl,pmc-handle = <&etsec2_clk>;

-

- queue-group@b1000 {

- fsl,rx-bit-map = <0xff>;

- fsl,tx-bit-map = <0xff>;

- };

- };

-

-/include/ "pq3-etsec2-2.dtsi"

- enet2: ethernet@b2000 {

- fsl,pmc-handle = <&etsec3_clk>;

-

- queue-group@b2000 {

- fsl,rx-bit-map = <0xff>;

- fsl,tx-bit-map = <0xff>;

- };

-

- };

-

  global-utilities@e0000 {

  compatible = "fsl,p1010-guts";

  reg = <0xe0000 0x1000>;

Index: git/arch/powerpc/boot/dts/p1010rdb.dtsi

===================================================================

--- git.orig/arch/powerpc/boot/dts/p1010rdb.dtsi 2014-02-26 10:18:45.072325293 -0500

+++ git/arch/powerpc/boot/dts/p1010rdb.dtsi 2014-02-26 10:19:54.164325219 -0500

@@ -203,34 +203,6 @@

  reg = <0x1>;

  };

 

- phy1: ethernet-phy@1 {

- interrupts = <2 1 0 0>;

- reg = <0x0>;

- };

-

- phy2: ethernet-phy@2 {

- interrupts = <2 1 0 0>;

- reg = <0x2>;

- };

-

- tbi-phy@3 {

- device_type = "tbi-phy";

- reg = <0x3>;

- };

- };

-

- mdio@25000 {

- tbi0: tbi-phy@11 {

- reg = <0x11>;

- device_type = "tbi-phy";

- };

- };

-

- mdio@26000 {

- tbi1: tbi-phy@11 {

- reg = <0x11>;

- device_type = "tbi-phy";

- };

  };

 

  ptp_timer: ptimer@b0e00 {

@@ -247,17 +219,4 @@

  ptimer-handle = <&ptp_timer>;

  };

 

- enet1: ethernet@b1000 {

- phy-handle = <&phy1>;

- tbi-handle = <&tbi0>;

- phy-connection-type = "sgmii";

- ptimer-handle = <&ptp_timer>;

- };

-

- enet2: ethernet@b2000 {

- phy-handle = <&phy2>;

- tbi-handle = <&tbi1>;

- phy-connection-type = "sgmii";

- ptimer-handle = <&ptp_timer>;

- };

};

Outcomes