Re: [U-Boot] [PATCH v4 26/26] sunxi: A64: add 32-bit SPL support
On Mon, Jan 16, 2017 at 09:47:06AM +, André Przywara wrote: > On 16/01/17 08:55, Maxime Ripard wrote: > > On Fri, Jan 13, 2017 at 09:42:28AM +, Andre Przywara wrote: > >>> Re wanting to build SPL either as 32-bit or 64-bit, could this be a > >>> Kconfig option perhaps? > >> > >> Sounds like a direction worth to investigate. > >> In the moment we have two separate defconfig files, because CPU_V7 and > >> ARM64 are actually mutually exclusive, which is really a pain and the > >> main reason that part wasn't merged. > > > > I really like that option. > > So I gave this a try this weekend, I have something like: > > +choice > + prompt "32/64 bit build selection" > + depends on MACH_SUN50I > + > +config SUNXI_64BIT_BUILD > + bool "64-bit Aarch64 build" > + select ARM64 > + > +config SUNXI_32BIT_BUILD > + bool "32-bit ARM build" > + select CPU_V7 > + select PHYS_64BIT > + > +endchoice > > I then set CONFIG_SUNXI_64BIT_BUILD=y in the defconfig. > That seems to work, however switching to a 32-bit build requires either > a) a separate defconfig - which is what we didn't want > b) manually toggling this via menuconfig > c) sed-ing these two lines in .config > > I was hoping that there was some simple command line way of toggling a > Kconfig option, à la: > $ make pine64_plus_defconfig CONFIG_SUNXI_32BIT_BUILD=y > > But that didn't work. > mergeconfig.sh wasn't helpful as well. > > Any ideas on how we could easily switch between the two options? I know that Linux has a way to append defconfig fragments (originally for android options iirc). That could be worth a look. Maxime -- Maxime Ripard, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com signature.asc Description: PGP signature ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH v4 26/26] sunxi: A64: add 32-bit SPL support
On 16/01/17 08:55, Maxime Ripard wrote: > On Fri, Jan 13, 2017 at 09:42:28AM +, Andre Przywara wrote: >>> Re wanting to build SPL either as 32-bit or 64-bit, could this be a >>> Kconfig option perhaps? >> >> Sounds like a direction worth to investigate. >> In the moment we have two separate defconfig files, because CPU_V7 and >> ARM64 are actually mutually exclusive, which is really a pain and the >> main reason that part wasn't merged. > > I really like that option. So I gave this a try this weekend, I have something like: +choice + prompt "32/64 bit build selection" + depends on MACH_SUN50I + +config SUNXI_64BIT_BUILD + bool "64-bit Aarch64 build" + select ARM64 + +config SUNXI_32BIT_BUILD + bool "32-bit ARM build" + select CPU_V7 + select PHYS_64BIT + +endchoice I then set CONFIG_SUNXI_64BIT_BUILD=y in the defconfig. That seems to work, however switching to a 32-bit build requires either a) a separate defconfig - which is what we didn't want b) manually toggling this via menuconfig c) sed-ing these two lines in .config I was hoping that there was some simple command line way of toggling a Kconfig option, à la: $ make pine64_plus_defconfig CONFIG_SUNXI_32BIT_BUILD=y But that didn't work. mergeconfig.sh wasn't helpful as well. Any ideas on how we could easily switch between the two options? Cheers, Andre. ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH v4 26/26] sunxi: A64: add 32-bit SPL support
On Fri, Jan 13, 2017 at 09:42:28AM +, Andre Przywara wrote: > > Re wanting to build SPL either as 32-bit or 64-bit, could this be a > > Kconfig option perhaps? > > Sounds like a direction worth to investigate. > In the moment we have two separate defconfig files, because CPU_V7 and > ARM64 are actually mutually exclusive, which is really a pain and the > main reason that part wasn't merged. I really like that option. Maxime -- Maxime Ripard, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com signature.asc Description: PGP signature ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH v4 26/26] sunxi: A64: add 32-bit SPL support
Hi, On 13/01/17 02:19, Simon Glass wrote: > Hi Andre, > > On 2 January 2017 at 04:48, Andre Przywarawrote: >> When compiling the SPL for the Allwinner A64 in AArch64 mode, we can't >> use the more compact Thumb2 encoding, which only exists for AArch32 >> code. This makes the SPL rather big, up to a point where any code >> additions or even a different compiler may easily exceed the 32KB limit >> that the Allwinner BROM imposes. >> Introduce a separate, mostly generic sun50i-a64 configuration, which >> defines the CPU_V7 symbol and thus will create a 32-bit binary using >> the memory-saving Thumb2 encoding. >> This should only be used for the SPL, the U-Boot proper should still be >> using the existing 64-bit configuration. The SPL code can switch to >> AArch64 if needed, so a 32-bit SPL can be combined with a 64-bit U-Boot >> proper to eventually launch arm64 kernels. >> >> Signed-off-by: Andre Przywara >> --- >> board/sunxi/Kconfig| 14 -- >> configs/pine64_plus_defconfig | 2 +- >> configs/sun50i_spl32_defconfig | 10 ++ >> 3 files changed, 23 insertions(+), 3 deletions(-) >> create mode 100644 configs/sun50i_spl32_defconfig > > Following up on the previous discussion, I take it that one on problem > is that U-Boot does not support building SPL with one toolchain and > U-Boot proper with another? Yes. For the time being I have a script [1] that first configures and compiles everything with an ARM cross compiler, then repeats this with an aarch64 cross compiler. Then I combine the 32-bit SPL and the 64-bit U-Boot proper. While we are at it: I didn't find a Makefile target to just compile the SPL (or just U-Boot proper), is that worth looking at? Or can we somehow influence Kconfig options on the command line to achieve that on that level? > Re wanting to build SPL either as 32-bit or 64-bit, could this be a > Kconfig option perhaps? Sounds like a direction worth to investigate. In the moment we have two separate defconfig files, because CPU_V7 and ARM64 are actually mutually exclusive, which is really a pain and the main reason that part wasn't merged. > Anyway, if this is what we have for now, fine. But I'd like to see at > least a TODO suggesting a better solution. So yes, the series was now merged omitting the 32-bit SPL part, which is really optional. For the time being we seem to get away with only 64-bit, but I will definitely revisit this after having handled the higher priority patches in my queue. Cheers, Andre. [1] http://pastebin.com/kH7u2h7M ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH v4 26/26] sunxi: A64: add 32-bit SPL support
Hi Andre, On 2 January 2017 at 04:48, Andre Przywarawrote: > When compiling the SPL for the Allwinner A64 in AArch64 mode, we can't > use the more compact Thumb2 encoding, which only exists for AArch32 > code. This makes the SPL rather big, up to a point where any code > additions or even a different compiler may easily exceed the 32KB limit > that the Allwinner BROM imposes. > Introduce a separate, mostly generic sun50i-a64 configuration, which > defines the CPU_V7 symbol and thus will create a 32-bit binary using > the memory-saving Thumb2 encoding. > This should only be used for the SPL, the U-Boot proper should still be > using the existing 64-bit configuration. The SPL code can switch to > AArch64 if needed, so a 32-bit SPL can be combined with a 64-bit U-Boot > proper to eventually launch arm64 kernels. > > Signed-off-by: Andre Przywara > --- > board/sunxi/Kconfig| 14 -- > configs/pine64_plus_defconfig | 2 +- > configs/sun50i_spl32_defconfig | 10 ++ > 3 files changed, 23 insertions(+), 3 deletions(-) > create mode 100644 configs/sun50i_spl32_defconfig Following up on the previous discussion, I take it that one on problem is that U-Boot does not support building SPL with one toolchain and U-Boot proper with another? Re wanting to build SPL either as 32-bit or 64-bit, could this be a Kconfig option perhaps? Anyway, if this is what we have for now, fine. But I'd like to see at least a TODO suggesting a better solution. Regards, Simon ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot