RE: [PATCH] drm/amdgpu: drop the long-double-128 powerpc check/hack
[Public] > -Original Message- > From: amd-gfx On Behalf Of > Daniel Kolesa > Sent: Wednesday, February 1, 2023 1:46 PM > To: linuxppc-dev@lists.ozlabs.org > Cc: d...@danny.cz; sta...@vger.kernel.org; > tpear...@raptorengineering.com; amd-...@lists.freedesktop.org; > alexdeuc...@gmail.com; torva...@linux-foundation.org > Subject: [PATCH] drm/amdgpu: drop the long-double-128 powerpc > check/hack > > Commit c653c591789b ("drm/amdgpu: Re-enable DCN for 64-bit powerpc") > introduced this check as a workaround for the driver not building with > toolchains that default to 64-bit long double. > > The reason things worked on 128-bit-long-double toolchains and not > otherwise was however largely accidental. The real issue was that some files > containing floating point code were compiled without -mhard-float, while > others were compiled with -mhard-float. > > The PowerPC compilers tag object files that use long doubles with a special > ABI tag in order to differentiate 64-bit long double, IBM long double and IEEE > 128-bit long double. When no long double is used in a source file, the file > does not receive the ABI tag. > Since only regular doubles are used in the AMDGPU source, there is no ABI > tag on the soft-float object files with 128-bit-ldbl compilers, and therefore > no > error. With 64-bit long double, the double and long double types are equal, > and an ABI tag is introduced. > > Of course, this resulted in the real bug, which was mixing of hard and soft > float object files, getting hidden, which makes this check technically > incorrect. > > Since then, work has been done to ensure that all float code is separately > compiled. This was also necessary in order to enable > AArch64 support in the display stack, as AArch64 does not have any soft-float > ABI, and all code that does not explicitly conatain floats is compiled with - > mgeneral-regs-only, which prevents float-using code from being compiled at > all. That means AArch64 support will from now on always safeguard against > such cases happening ever again. > > In mainline, this work is now fully done, so this check is fully redundant and > does not do anything except preventing AMDGPU DC from being built on > systems such as those using musl libc. The last piece of work to enable this > was commit c92b7fe0d92a > ("drm/amd/display: move remaining FPU code to dml folder") and this has > since been backported to 6.1 stable (in 6.1.7). > > Relevant issue: https://gitlab.freedesktop.org/drm/amd/-/issues/2288 > > Signed-off-by: Daniel Kolesa Acked-by: Alex Deucher > --- > arch/powerpc/Kconfig| 4 > drivers/gpu/drm/amd/display/Kconfig | 2 +- > 2 files changed, 1 insertion(+), 5 deletions(-) > > diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index > b8c4ac56b..267805072 100644 > --- a/arch/powerpc/Kconfig > +++ b/arch/powerpc/Kconfig > @@ -289,10 +289,6 @@ config PPC > # Please keep this list sorted alphabetically. > # > > -config PPC_LONG_DOUBLE_128 > - depends on PPC64 && ALTIVEC > - def_bool $(success,test "$(shell,echo __LONG_DOUBLE_128__ | > $(CC) -E -P -)" = 1) > - > config PPC_BARRIER_NOSPEC > bool > default y > diff --git a/drivers/gpu/drm/amd/display/Kconfig > b/drivers/gpu/drm/amd/display/Kconfig > index 2efe93f74..94645b6ef 100644 > --- a/drivers/gpu/drm/amd/display/Kconfig > +++ b/drivers/gpu/drm/amd/display/Kconfig > @@ -8,7 +8,7 @@ config DRM_AMD_DC > depends on BROKEN || !CC_IS_CLANG || X86_64 || SPARC64 || > ARM64 > select SND_HDA_COMPONENT if SND_HDA_CORE > # !CC_IS_CLANG: > https://github.com/ClangBuiltLinux/linux/issues/1752 > - select DRM_AMD_DC_DCN if (X86 || PPC_LONG_DOUBLE_128 || > (ARM64 && KERNEL_MODE_NEON && !CC_IS_CLANG)) > + select DRM_AMD_DC_DCN if (X86 || PPC64 || (ARM64 && > KERNEL_MODE_NEON > +&& !CC_IS_CLANG)) > help > Choose this option if you want to use the new display engine > support for AMDGPU. This adds required support for Vega and > -- > 2.34.1
RE: [PATCH] drm/amdgpu: Re-enable DCN for 64-bit powerpc
[Public] > -Original Message- > From: amd-gfx On Behalf Of > Michael Ellerman > Sent: Monday, July 25, 2022 8:39 AM > To: linuxppc-dev@lists.ozlabs.org > Cc: d...@danny.cz; linux-ker...@vger.kernel.org; amd- > g...@lists.freedesktop.org; tpear...@raptorengineering.com; > alexdeuc...@gmail.com; torva...@linux-foundation.org; linux@roeck- > us.net > Subject: [PATCH] drm/amdgpu: Re-enable DCN for 64-bit powerpc > > Commit d11219ad53dc ("amdgpu: disable powerpc support for the newer > display engine") disabled the DCN driver for all of powerpc due to unresolved > build failures with some compilers. > > Further digging shows that the build failures only occur with compilers that > default to 64-bit long double. > > Both the ppc64 and ppc64le ABIs define long double to be 128-bits, but there > are compilers in the wild that default to 64-bits. The compilers provided by > the major distros (Fedora, Ubuntu) default to 128-bits and are not affected > by the build failure. > > There is a compiler flag to force 128-bit long double, which may be the > correct long term fix, but as an interim fix only allow building the DCN > driver if > long double is 128-bits by default. > > The bisection in commit d11219ad53dc must have gone off the rails at some > point, the build failure occurs all the way back to the original commit that > enabled DCN support on powerpc, at least with some toolchains. > > Depends-on: d11219ad53dc ("amdgpu: disable powerpc support for the > newer display engine") > Fixes: 16a9dea110a6 ("amdgpu: Enable initial DCN support on POWER") > Signed-off-by: Michael Ellerman > Link: > https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitla > b.freedesktop.org%2Fdrm%2Famd%2F- > %2Fissues%2F2100data=05%7C01%7Calexander.deucher%40amd.com > %7C3bfc6788a65444cb7ffe08da6e3ee794%7C3dd8961fe4884e608e11a82d994 > e183d%7C0%7C0%7C637943513703402010%7CUnknown%7CTWFpbGZsb3d8 > eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3 > D%7C3000%7C%7C%7Csdata=MTWp8MSgFBltLYbrPHCAyR8VdVEHakp > KVMkNEBRx%2FrI%3Dreserved=0 > --- > arch/powerpc/Kconfig| 4 > drivers/gpu/drm/amd/display/Kconfig | 2 +- > 2 files changed, 5 insertions(+), 1 deletion(-) > > Alex, are you OK if I take this via the powerpc tree for v5.19? No problem. Acked-by: Alex Deucher FWIW, We should have all of this PPC FP stuff cleared up in 5.20. Alex > > cheers > > diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index > 7aa12e88c580..287cc2d4a4b3 100644 > --- a/arch/powerpc/Kconfig > +++ b/arch/powerpc/Kconfig > @@ -281,6 +281,10 @@ config PPC > # Please keep this list sorted alphabetically. > # > > +config PPC_LONG_DOUBLE_128 > + depends on PPC64 > + def_bool $(success,test "$(shell,echo __LONG_DOUBLE_128__ | > $(CC) -E > +-P -)" = 1) > + > config PPC_BARRIER_NOSPEC > bool > default y > diff --git a/drivers/gpu/drm/amd/display/Kconfig > b/drivers/gpu/drm/amd/display/Kconfig > index 0ba0598eba20..ec6771e87e73 100644 > --- a/drivers/gpu/drm/amd/display/Kconfig > +++ b/drivers/gpu/drm/amd/display/Kconfig > @@ -6,7 +6,7 @@ config DRM_AMD_DC > bool "AMD DC - Enable new display engine" > default y > select SND_HDA_COMPONENT if SND_HDA_CORE > - select DRM_AMD_DC_DCN if X86 && !(KCOV_INSTRUMENT_ALL && > KCOV_ENABLE_COMPARISONS) > + select DRM_AMD_DC_DCN if (X86 || PPC_LONG_DOUBLE_128) && > +!(KCOV_INSTRUMENT_ALL && KCOV_ENABLE_COMPARISONS) > help > Choose this option if you want to use the new display engine > support for AMDGPU. This adds required support for Vega and > -- > 2.35.3
RE: Radeon NI: GIT kernel with the nislands_smc commit doesn't boot on a Freescale P5040 board and P.A.Semi Nemo board
[AMD Public Use] + Gustavo, amd-gfx > -Original Message- > From: Christian Zigotzky > Sent: Friday, April 30, 2021 8:00 AM > To: gustavo...@kernel.org; Deucher, Alexander > > Cc: R.T.Dickinson ; Darren Stevens zone.net>; mad skateman ; linuxppc-dev > ; Olof Johansson ; > Maling list - DRI developers ; Michel > Dänzer ; Christian Zigotzky > Subject: Radeon NI: GIT kernel with the nislands_smc commit doesn't > boot on a Freescale P5040 board and P.A.Semi Nemo board > > Hello, > > The Nemo board (A-EON AmigaOne X1000) [1] and the FSL P5040 Cyrus+ > board (A-EON AmigaOne X5000) [2] with installed AMD Radeon HD6970 NI > graphics cards (Cayman XT) [3] don't boot with the latest git kernel > anymore after the commit "drm/radeon/nislands_smc.h: Replace > one-element array with flexible-array member in struct NISLANDS_SMC_SWSTATE > branch" [4]. > This git kernel boots in a virtual e5500 QEMU machine with a VirtIO-GPU [5]. > > I bisected today [6]. > > Result: drm/radeon/nislands_smc.h: Replace one-element array with > flexible-array member in struct NISLANDS_SMC_SWSTATE branch > (434fb1e7444a2efc3a4ebd950c7f771ebfcffa31) [4] is the first bad commit. > > I was able to revert this commit [7] and after a new compiling, the > kernel boots without any problems on my AmigaOnes. > > After that I created a patch for reverting this commit for new git test > kernels. > [3] > > The kernel compiles and boots with this patch on my AmigaOnes. Please > find attached the kernel config files. > > Please check the first bad commit. > > Thanks, > Christian > > [1] > https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fen. > wikipedia.org%2Fwiki%2FAmigaOne_X1000data=04%7C01%7Calexand > er.deucher%40amd.com%7C0622549383fb4320346b08d90bcf7be1%7C3dd89 > 61fe4884e608e11a82d994e183d%7C0%7C0%7C637553808670161651%7CUnkn > own%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik > 1haWwiLCJXVCI6Mn0%3D%7C1000sdata=PNSrApUdMrku20hH7dEKlJJ > TBi7Qp5JOkqpA4MvKqdE%3Dreserved=0 > [2] > https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwiki. > a miga.org%2Findex.php%3Ftitle%3DX5000data=04%7C01%7Calexander > .deucher%40amd.com%7C0622549383fb4320346b08d90bcf7be1%7C3dd8961f > e4884e608e11a82d994e183d%7C0%7C0%7C637553808670161651%7CUnknow > n%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1ha > WwiLCJXVCI6Mn0%3D%7C1000sdata=B8Uvhs25%2FP3RfnL1AgICN3Y4 > CEXeCE1yIoi3vvwvGto%3Dreserved=0 > [3] > https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fforu > m.hyperion- > entertainment.com%2Fviewtopic.php%3Ff%3D35%26t%3D4377data= > 04%7C01%7Calexander.deucher%40amd.com%7C0622549383fb4320346b08d > 90bcf7be1%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C63755380 > 8670161651%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIj > oiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000sdata=TokXplD > Tvg3%2BZMPLCgR1fs%2BN2X9MIfLXLW67MAM2Qsk%3Dreserved=0 > [4] > https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit. > k ernel.org%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Ftorvalds%2Flinux.git% > 2Fcommit%2F%3Fid%3D434fb1e7444a2efc3a4ebd950c7f771ebfcffa31d > ata=04%7C01%7Calexander.deucher%40amd.com%7C0622549383fb4320346 > b08d90bcf7be1%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C6375 > 53808670161651%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiL > CJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000sdata=JC > M4xvPEnWdckcTPbQ2Ujv%2FAiMMsFMzzl4Pr%2FRPlcMQ%3Dreserve > d=0 > [5] qemu-system-ppc64 -M ppce500 -cpu e5500 -m 1024 -kernel uImage - > drive format=raw,file=MintPPC32-X5000.img,index=0,if=virtio -netdev > user,id=mynet0 -device virtio-net-pci,netdev=mynet0 -append "rw > root=/dev/vda" -device virtio-vga -usb -device usb-ehci,id=ehci > -device usb- tablet -device virtio-keyboard-pci -smp 4 -vnc :1 [6] > https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fforu > m.hyperion- > entertainment.com%2Fviewtopic.php%3Fp%3D53074%23p53074data > =04%7C01%7Calexander.deucher%40amd.com%7C0622549383fb4320346b08 > d90bcf7be1%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C6375538 > 08670161651%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQ > IjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000sdata=RXfSlY > A3bDEFas0%2Fk2vMWsl2l0nuhS2ecjZgSBLc%2Bs4%3Dreserved=0 > [7] git revert 434fb1e7444a2efc3a4ebd950c7f771ebfcffa3