On Tue, Nov 22, 2022 at 10:25:50PM +0100, Arnd Bergmann wrote: > On Mon, Nov 21, 2022, at 18:12, Thierry Reding wrote: > > firmware: tegra: bpmp: Do not support big-endian > > I pulled the branch, but I think this patch is inconsistent with > our normal approach: Since all ARMv7 and ARMv8 processors can > run with both big-endian and little-endian kernels, we normally > try to keep drivers portable between both ways, even though we > don't expect anyone to actually want a big-endian kernel any > more. Changing portable code to nonportable code doesn't seem > helpful here. The only reason I dropped this is because the driver is in itself inconsistent. Parts of it use byte-swapping for 32-bit values and other parts don't. I was originally going to fix big-endian support but it would've required changes to the BPMP ABI header to avoid sparse warnings in lots of places, then these ABI changes would've needed to trickle up to the canonical source, etc. All of that didn't seem worth the effort if we couldn't even test this in any way. So the easiest fix was to stop pretending and drop the partial support. > On the other hand, there are already examples of important > drivers that are fundamentally incompatible with big-endian > mode, notably drivers/efi/, which is required on a lot of > machines. > > You don't have to revert this patch, but it would be helpful > to mark code that is explicitly unportable with a 'depends > on !CPU_BIG_ENDIAN' line in Kconfig. If you agree, I can > add that. Yes, feel free to add that. > Do you know of other tegra drivers that only work on > little-endian? I'm not aware of any that explicitly wouldn't work with big endian, but it's not something we've ever tested. I know that people have in the past done experiments with running emulated Tegra on QEMU in big endian mode, but it's probably not something that's very common. Thierry
Attachment:
signature.asc
Description: PGP signature