Re: [PATCH] soc: imx: Makefile: only build soc-imx8 when CONFIG_ARM64

From: Arnd Bergmann
Date: Fri Jan 24 2020 - 11:44:51 EST


On Fri, Jan 24, 2020 at 4:54 PM Adam Ford <aford173@xxxxxxxxx> wrote:
> On Wed, Jan 15, 2020 at 4:39 AM Arnd Bergmann <arnd@xxxxxxxx> wrote:
> > On Wed, Jan 15, 2020 at 3:38 AM Peng Fan <peng.fan@xxxxxxx> wrote:
>
> I would be interested in learning more about running the i.MX8M in
> 32-bit mode. I'm looking at running Linux on a device with < 1GB of
> RAM, so having 32-bit pointers and instructions would be preferred.
> My preference would be to run as ARMv7 for migration purposes, but I'm
> open to alternatives.
>
> Does anyone have any suggestions on where I might find some generic
> stuff for either iMX8M or generic ARMv8 docs for doing something like
> this?

By far the easiest way is to just run a 64-bit kernel and 32-bit user space,
which should give you 90% of the space savings. This requires no further
work, just pick the 32-bit distro of your choice.

The get the last few percent of memory savings and run a 64-bit kernel,
at least a bit of porting effort should be needed. In principle you should
be able to pass the dtb file for your machine to a 32-bit kernel, but
all drivers have to be there and you need to adjust a few dependencies
to allow 32-bit builds such as

config CLK_IMX8MM
bool "IMX8MM CCM Clock Driver"
- depends on ARCH_MXC && ARM64
+ depends on ARCH_MXC && ARM64
help
Build the driver for i.MX8MM CCM Clock Driver

and then there will likely be a few bugs.

Arnd