5.2: arm-smmu e0600000.smmu: Unexpected global fault, this could be serious
When trying to boot 5.2 on a seattle platform, I'm getting these errors:
[ 5056.934028] arm-smmu e0600000.smmu: Unexpected global fault, this could be serious [ 5056.953895] arm-smmu e0600000.smmu: Unexpected global fault, this could be serious [ 5056.961452] arm_smmu_global_fault: 2959 callbacks suppressed [ 5056.961456] arm-smmu e0600000.smmu: GFSR 0x00000001, GFSYNR0 0x00000000, GFSYNR1 0x00000001, GFSYNR2 0x00000000 [ 5056.977276] arm-smmu e0600000.smmu: Unexpected global fault, this could be serious [ 5056.984838] arm-smmu e0600000.smmu: GFSR 0x80000000, GFSYNR0 0x00000000, GFSYNR1 0x00000001, GFSYNR2 0x00000000 [ 5057.007296] arm-smmu e0600000.smmu: GFSR 0x00000001, GFSYNR0 0x00000000, GFSYNR1 0x00000001, GFSYNR2 0x00000000 [ 5057.017475] arm-smmu e0600000.smmu: GFSR 0x80000000, GFSYNR0 0x00000000, GFSYNR1 0x00000001, GFSYNR2 0x00000000 [ 5057.039919] arm-smmu e0600000.smmu: GFSR 0x00000001, GFSYNR0 0x00000000, GFSYNR1 0x00000001, GFSYNR2 0x00000000 [ 5057.050098] arm-smmu e0600000.smmu: GFSR 0x80000000, GFSYNR0 0x00000000, GFSYNR1 0x00000001, GFSYNR2 0x00000000 [ 5057.072592] arm-smmu e0600000.smmu: GFSR 0x00000001, GFSYNR0 0x00000000, GFSYNR1 0x00000001, GFSYNR2 0x00000000 [ 5057.082766] arm-smmu e0600000.smmu: GFSR 0x80000000, GFSYNR0 0x00000000, GFSYNR1 0x00000001, GFSYNR2 0x00000000 [ 5057.105167] arm-smmu e0600000.smmu: GFSR 0x00000001, GFSYNR0 0x00000000, GFSYNR1 0x00000001, GFSYNR2 0x00000000 [ 5057.115342] arm-smmu e0600000.smmu: GFSR 0x80000000, GFSYNR0 0x00000000, GFSYNR1 0x00000001, GFSYNR2 0x00000000 [ 5061.847674] arm_smmu_global_fault: 2964 callbacks suppressed
The errors start as soon as the network interface is being brought up, and causes networking to fail to work.
Andreas.
Signature · 8 lines
Andreas Schwab, SUSE Labs, [email protected] GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7 "And now for something completely different." _______________________________________________ linux-arm-kernel mailing list [email protected] http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Quoted 18 lines · Andreas Schwab
When trying to boot 5.2 on a seattle platform, I'm getting these errors:
[ 5056.934028] arm-smmu e0600000.smmu: Unexpected global fault, this could be serious [ 5056.953895] arm-smmu e0600000.smmu: Unexpected global fault, this could be serious [ 5056.961452] arm_smmu_global_fault: 2959 callbacks suppressed [ 5056.961456] arm-smmu e0600000.smmu: GFSR 0x00000001, GFSYNR0 0x00000000, GFSYNR1 0x00000001, GFSYNR2 0x00000000 [ 5056.977276] arm-smmu e0600000.smmu: Unexpected global fault, this could be serious [ 5056.984838] arm-smmu e0600000.smmu: GFSR 0x80000000, GFSYNR0 0x00000000, GFSYNR1 0x00000001, GFSYNR2 0x00000000 [ 5057.007296] arm-smmu e0600000.smmu: GFSR 0x00000001, GFSYNR0 0x00000000, GFSYNR1 0x00000001, GFSYNR2 0x00000000 [ 5057.017475] arm-smmu e0600000.smmu: GFSR 0x80000000, GFSYNR0 0x00000000, GFSYNR1 0x00000001, GFSYNR2 0x00000000 [ 5057.039919] arm-smmu e0600000.smmu: GFSR 0x00000001, GFSYNR0 0x00000000, GFSYNR1 0x00000001, GFSYNR2 0x00000000 [ 5057.050098] arm-smmu e0600000.smmu: GFSR 0x80000000, GFSYNR0 0x00000000, GFSYNR1 0x00000001, GFSYNR2 0x00000000 [ 5057.072592] arm-smmu e0600000.smmu: GFSR 0x00000001, GFSYNR0 0x00000000, GFSYNR1 0x00000001, GFSYNR2 0x00000000 [ 5057.082766] arm-smmu e0600000.smmu: GFSR 0x80000000, GFSYNR0 0x00000000, GFSYNR1 0x00000001, GFSYNR2 0x00000000 [ 5057.105167] arm-smmu e0600000.smmu: GFSR 0x00000001, GFSYNR0 0x00000000, GFSYNR1 0x00000001, GFSYNR2 0x00000000 [ 5057.115342] arm-smmu e0600000.smmu: GFSR 0x80000000, GFSYNR0 0x00000000, GFSYNR1 0x00000001, GFSYNR2 0x00000000 [ 5061.847674] arm_smmu_global_fault: 2964 callbacks suppressed
Quoted 2 lines
The errors start as soon as the network interface is being brought up, and causes networking to fail to work.
Urgh, it finally happened... :(
I take it you have firmware still using the old "mmu-masters" DT binding on that machine? I was really hoping that that might have died out in the wild by now.
The way the legacy binding is handled turns out to interact badly with the disable_bypass option, so CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT is presumably now tripping you up. The immediate workaround would be to turn that off and/or boot with "arm-smmu.disable_bypass=0" to ensure it's overridden. If you can update the firmware to something newer using either the generic "iommus" binding or ACPI (I believe Seattle is supported in EDK2 these days) that would remove the problem entirely.
In principle it should be possible to make the kernel driver support disable_bypass with old firmware, but it's non-trivial and thus I chose not to pursue it unless a worthwhile justification came along. Alternatively I guess we could write off the old binding as "not security-focused" and just force the option back off if we detect both together - that's less than ideal, but would at least be simple to do.
Robin.
_______________________________________________
linux-arm-kernel mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Quoted 2 lines · Robin Murphy
I take it you have firmware still using the old "mmu-masters" DT binding on that machine?
Yes.
Quoted 5 lines
The way the legacy binding is handled turns out to interact badly with the
disable_bypassoption, soCONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULTis presumably now tripping you up. The immediate workaround would be to turn that off and/or boot with "arm-smmu.disable_bypass=0" to ensure it's overridden.
I will try the command line parameter.
Quoted 3 lines
If you can update the firmware to something newer using either the generic "iommus" binding or ACPI (I believe Seattle is supported in EDK2 these days) that would remove the problem entirely.
AMD won't be releasing any new firmware for their seattle platform.
Andreas.
Signature · 8 lines
Andreas Schwab, SUSE Labs, [email protected] GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7 "And now for something completely different." _______________________________________________ linux-arm-kernel mailing list [email protected] http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Quoted 5 lines · Robin Murphy
The way the legacy binding is handled turns out to interact badly with the
disable_bypassoption, soCONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULTis presumably now tripping you up. The immediate workaround would be to turn that off and/or boot with "arm-smmu.disable_bypass=0" to ensure it's overridden.
I can confirm that booting with arm-smmu.disable_bypass=0 works.
Andreas.
Signature · 8 lines
Andreas Schwab, SUSE Labs, [email protected] GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7 "And now for something completely different." _______________________________________________ linux-arm-kernel mailing list [email protected] http://lists.infradead.org/mailman/listinfo/linux-arm-kernel