On Sun, Jan 29, 2023 at 10:08:14PM +0100, Mark Kettenis wrote: > > Date: Sun, 22 Jan 2023 20:47:03 +0900 > > From: SASANO Takayoshi <u...@mx5.nisiq.net> > > > > Hi, > > > > Two issues. > > > > 1. I am trying to build ATF v2.8 with modified ports' Makefile. > > > > Only A64's ATF fails to build with follwing errors: > > > > aarch64-none-elf-ld.bfd: address 0x500dd of /usr/ports/pobj/arm-trusted-fir > > mware-2.8.0/arm-trusted-firmware-2.8.0/build/sun50i_a64/debug/bl31/bl31.elf > > section `.data' is not within region `RAM' > > aarch64-none-elf-ld.bfd: /usr/ports/pobj/arm-trusted-firmware-2.8.0/arm-tru > > sted-firmware-2.8.0/build/sun50i_a64/debug/bl31/bl31.elf section `.rela.dyn > > ' will not fit in region `RAM' > > aarch64-none-elf-ld.bfd: address 0x500dd of /usr/ports/pobj/arm-trusted-fir > > mware-2.8.0/arm-trusted-firmware-2.8.0/build/sun50i_a64/debug/bl31/bl31.elf > > section `.data' is not within region `RAM' > > aarch64-none-elf-ld.bfd: BL31 image has exceeded its limit. > > aarch64-none-elf-ld.bfd: region `RAM' overflowed by 224 bytes > > > > I found workaround for something errata wastes RAM area. > > /usr/ports/pobj/arm-trusted-firmware-2.8.0/arm-trusted-firmware-2.8.0/build > > /sun50i_a64/debug/bl31/bl31.map says that: > > > > .text.psci_system_off > > 0x0000000000049fc4 0x5c /usr/ports/pobj/arm-trusted-f > > irmware-2.8.0/arm-trusted-firmware-2.8.0/build/sun50i_a64/debug/bl31/psci_s > > ystem_off.o > > 0x0000000000049fc4 psci_system_off > > .text.psci_system_off.stub > > 0x000000000004a020 0x10 linker stubs > > .text.psci_system_reset > > 0x000000000004b020 0x5c /usr/ports/pobj/arm-trusted-f > > irmware-2.8.0/arm-trusted-firmware-2.8.0/build/sun50i_a64/debug/bl31/psci_s > > ystem_off.o > > 0x000000000004b020 psci_system_reset > > > > It looks dangerous to disable workaround. Is there any good idea to > > build ATF v2.8 for A64? > > This might need a newer gcc version that generates slightly smaller > code, or maybe a newer binutils version that packs it tighter. > > > 2. Allwinner H6 PMIC issue > > > > (repost from ports@, same as > > https://marc.info/?l=openbsd-ports&m=167133709916806&w=2) > > > > Some Allwinner H6 based board does not work ethernet and HDMI > > (currently not used) due to improper setting of AXP805 PMIC. > > > > To avoid this issue, Armbian uses old ATF (v2.2). Our ATF ports cannot > > downgrade, so using SUNXI_SETUP_REGULATORS=0 option to disable PMIC > > handling in ATF. > > > > This option is discussed at ATF's code review, see > > https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/12676 > > > > To reduce side-effect of this change, it is the best that compiling both > > (SUNXI_SETUP_REGULATORS=0 and 1) bl31 object separately, but looks > > difficult. > > > > So this suggestion is fixed to 0, please tell me if there is better idea. > > Maybe jsg@ has a good idea how to build both?
I agree codesize may change with a newer toolchain. Not sure about the other part. > > > > Index: Makefile > > =================================================================== > > RCS file: /cvs/ports/sysutils/arm-trusted-firmware/Makefile,v > > retrieving revision 1.19 > > diff -u -p -r1.19 Makefile > > --- Makefile 8 Aug 2022 15:27:59 -0000 1.19 > > +++ Makefile 18 Dec 2022 02:15:39 -0000 > > @@ -35,9 +35,15 @@ PLATFORMS=\ > > > > do-build: > > .for P in ${PLATFORMS} > > +. if "$P" == "sun50i_h6" > > + cd ${WRKSRC} && \ > > + ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} \ > > + V=1 PLAT=${P} DEBUG=1 SUNXI_SETUP_REGULATORS=0 bl31 > > +.else > > cd ${WRKSRC} && \ > > ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} \ > > V=1 PLAT=${P} DEBUG=1 bl31 > > +. endif > > .endfor > > > > do-install: > > > > -- > > SASANO Takayoshi (JG1UAA) <u...@mx5.nisiq.net> > > > > >