CMA on raspberry pi 4
by Thomas H.P. Andersen
Hi,
I have looked into the CMA setting issue a bit. This is what I have found
so far.
The rpi4 needs CMA to be in ZONE_DMA (lower 1GB of memory) as this is the
only area that the peripherals on the rpi4 can address.
The DT sets the allowed range to allocate the CMA from (
arch/arm/boot/dts/bcm2711.dtsi#L869
<https://github.com/torvalds/linux/blob/master/arch/arm/boot/dts/bcm2711.d...>),
but it seems to not work here. What does work is instead to set the offset
manually. I replaced "cma=256MB" with "cma=256M@704M" and then it boots.
Note that it has to be 256M instead of 256MB.
Removing the cma option on the command line was known as a workaround.
Without that we would fall back to the build config of 64MB cma which was
located at offset 0x38000000. This left 64MB at the end of ZONE_DMA, and I
chose offset 704M so that those 64MB would still be free. Not sure if that
is needed or not. The crashkernel needs to be in ZONE_DMA as well but it
seems to be set to 0 size.
I have tested on 5.7 rc2 from rawhide.
This probably belongs in a bug report. What would be the correct place to
file that? From what I can tell upstream has been tested with cma settings
without problems (as long as the requested CMA size can fit in ZONE_DMA).
From that it seems like fedora-specific issue. Not sure though.
Cheers,
Thomas
3 years, 8 months
aarch64 mock gcc/annobin errors
by Sam Varshavchik
I'm running an F32 aarch64 guest qemu VM on an x86_64 F32 host, and, in that
VM, I attempted to build something fairly simple via mock. This is my reward:
configure:3590: gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-
D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-
strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -
specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -
fstack-clash-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -
specs=/usr/lib/rpm/redhat/redhat-hardened-ld conftest.c >&5
annobin: conftest.c: AArch64: The annobin plugin is out of date with respect
to gcc
*** WARNING *** there are active plugins, do not report this as a bug unless
you can reproduce it without enabling any plugins.
Event | Plugins
PLUGIN_FINISH_UNIT | annobin: Generate final annotations
PLUGIN_START_UNIT | annobin: Generate global annotations
PLUGIN_ALL_PASSES_START | annobin: Generate per-function annotations
PLUGIN_ALL_PASSES_END | annobin: Register per-function end symbol
conftest.c:1: internal compiler error: Segmentation fault
First time I've seen something like that, any idea what to do here, for this?
This if from a first build in mock, which presumably pulled in the most
recent versions of all rpms into the chroot.
3 years, 8 months