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>;
- };
};