[PATCH 1/3] imx: imx8mm_beacon: Eliminate a few extras to free up SPL space

2022-11-08 Thread sbabic
> There are a few functions which are not essential for use in
> SPL, but they take up enough space to make other preferred
> features not fit.  Remove the extras.
> Signed-off-by: Adam Ford 
> Reviewed-by: Fabio Estevam 
> diff --git a/board/beacon/imx8mm/spl.c b/board/beacon/imx8mm/spl.c
> index a93cc93878..b0e9d918da 100644
> --- a/board/beacon/imx8mm/spl.c
> +++ b/board/beacon/imx8mm/spl.c
> @@ -44,11 +44,6 @@ static void spl_dram_init(void)
>   ddr_init(&dram_timing);
>  }
>  
> -void spl_board_init(void)
> -{
> - debug("Normal Boot\n");
> -}
> -
>  #ifdef CONFIG_SPL_LOAD_FIT
>  int board_fit_config_name_match(const char *name)
>  {
> diff --git a/configs/imx8mm_beacon_defconfig b/configs/imx8mm_beacon_defconfig
> index e37ce01c19..f6a1012d8a 100644
> --- a/configs/imx8mm_beacon_defconfig
> +++ b/configs/imx8mm_beacon_defconfig
> @@ -29,7 +29,6 @@ CONFIG_DEFAULT_FDT_FILE="imx8mm-beacon-kit.dtb"
>  CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
>  CONFIG_SPL_BSS_START_ADDR=0x91
>  CONFIG_SPL_BSS_MAX_SIZE=0x2000
> -CONFIG_SPL_BOARD_INIT=y
>  # CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
>  CONFIG_SPL_STACK=0x92
>  CONFIG_SYS_SPL_MALLOC=y
> @@ -88,12 +87,9 @@ CONFIG_DM_PCA953X=y
>  CONFIG_DM_I2C=y
>  CONFIG_SUPPORT_EMMC_BOOT=y
>  CONFIG_MMC_IO_VOLTAGE=y
> -CONFIG_SPL_MMC_IO_VOLTAGE=y
>  CONFIG_MMC_UHS_SUPPORT=y
> -CONFIG_SPL_MMC_UHS_SUPPORT=y
>  CONFIG_MMC_HS400_ES_SUPPORT=y
>  CONFIG_MMC_HS400_SUPPORT=y
> -CONFIG_SPL_MMC_HS400_SUPPORT=y
>  CONFIG_FSL_USDHC=y
>  CONFIG_MTD=y
>  CONFIG_DM_MTD=y
> @@ -113,14 +109,12 @@ CONFIG_PINCTRL_IMX8M=y
>  CONFIG_POWER_DOMAIN=y
>  CONFIG_IMX8M_POWER_DOMAIN=y
>  CONFIG_DM_PMIC=y
> +# CONFIG_SPL_PMIC_CHILDREN is not set
>  CONFIG_DM_PMIC_BD71837=y
>  CONFIG_SPL_DM_PMIC_BD71837=y
>  CONFIG_DM_REGULATOR=y
> -CONFIG_SPL_DM_REGULATOR=y
>  CONFIG_DM_REGULATOR_BD71837=y
> -CONFIG_SPL_DM_REGULATOR_BD71837=y
>  CONFIG_DM_REGULATOR_FIXED=y
> -CONFIG_SPL_DM_REGULATOR_FIXED=y
>  CONFIG_DM_REGULATOR_GPIO=y
>  CONFIG_DM_SERIAL=y
>  CONFIG_MXC_UART=y
Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=
DENX Software Engineering GmbH,  Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sba...@denx.de
=


Re: [PATCH 1/3] imx: imx8mm_beacon: Eliminate a few extras to free up SPL space

2022-10-25 Thread Tim Harvey
On Mon, Oct 24, 2022 at 6:29 PM Peng Fan  wrote:
>
>
>
> On 10/25/2022 4:47 AM, Tim Harvey wrote:
> > On Mon, Oct 24, 2022 at 1:26 PM Adam Ford  wrote:
> >>
> >> On Mon, Oct 24, 2022 at 2:57 PM Tim Harvey  wrote:
> >>>
> >>> On Sat, Oct 22, 2022 at 7:28 AM Adam Ford  wrote:
> 
>  There are a few functions which are not essential for use in
>  SPL, but they take up enough space to make other preferred
>  features not fit.  Remove the extras.
> 
>  Signed-off-by: Adam Ford 
> 
>  diff --git a/board/beacon/imx8mm/spl.c b/board/beacon/imx8mm/spl.c
>  index a93cc93878..b0e9d918da 100644
>  --- a/board/beacon/imx8mm/spl.c
>  +++ b/board/beacon/imx8mm/spl.c
>  @@ -44,11 +44,6 @@ static void spl_dram_init(void)
>   ddr_init(&dram_timing);
>    }
> 
>  -void spl_board_init(void)
>  -{
>  -   debug("Normal Boot\n");
>  -}
>  -
>    #ifdef CONFIG_SPL_LOAD_FIT
>    int board_fit_config_name_match(const char *name)
>    {
>  diff --git a/configs/imx8mm_beacon_defconfig 
>  b/configs/imx8mm_beacon_defconfig
>  index e37ce01c19..f6a1012d8a 100644
>  --- a/configs/imx8mm_beacon_defconfig
>  +++ b/configs/imx8mm_beacon_defconfig
>  @@ -29,7 +29,6 @@ CONFIG_DEFAULT_FDT_FILE="imx8mm-beacon-kit.dtb"
>    CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
>    CONFIG_SPL_BSS_START_ADDR=0x91
>    CONFIG_SPL_BSS_MAX_SIZE=0x2000
>  -CONFIG_SPL_BOARD_INIT=y
>    # CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
>    CONFIG_SPL_STACK=0x92
>    CONFIG_SYS_SPL_MALLOC=y
>  @@ -88,12 +87,9 @@ CONFIG_DM_PCA953X=y
>    CONFIG_DM_I2C=y
>    CONFIG_SUPPORT_EMMC_BOOT=y
>    CONFIG_MMC_IO_VOLTAGE=y
>  -CONFIG_SPL_MMC_IO_VOLTAGE=y
>    CONFIG_MMC_UHS_SUPPORT=y
>  -CONFIG_SPL_MMC_UHS_SUPPORT=y
>    CONFIG_MMC_HS400_ES_SUPPORT=y
>    CONFIG_MMC_HS400_SUPPORT=y
>  -CONFIG_SPL_MMC_HS400_SUPPORT=y
>    CONFIG_FSL_USDHC=y
>    CONFIG_MTD=y
>    CONFIG_DM_MTD=y
>  @@ -113,14 +109,12 @@ CONFIG_PINCTRL_IMX8M=y
>    CONFIG_POWER_DOMAIN=y
>    CONFIG_IMX8M_POWER_DOMAIN=y
>    CONFIG_DM_PMIC=y
>  +# CONFIG_SPL_PMIC_CHILDREN is not set
>    CONFIG_DM_PMIC_BD71837=y
>    CONFIG_SPL_DM_PMIC_BD71837=y
>    CONFIG_DM_REGULATOR=y
>  -CONFIG_SPL_DM_REGULATOR=y
>    CONFIG_DM_REGULATOR_BD71837=y
>  -CONFIG_SPL_DM_REGULATOR_BD71837=y
>    CONFIG_DM_REGULATOR_FIXED=y
>  -CONFIG_SPL_DM_REGULATOR_FIXED=y
>    CONFIG_DM_REGULATOR_GPIO=y
>    CONFIG_DM_SERIAL=y
>    CONFIG_MXC_UART=y
>  --
>  2.34.1
> 
> >>>
> >>> Adam,
> >>>
> >>> I'm looking at your patches as I'm also trying to strip down the
> >>> imx8mm-venice SPL so that I can fit DM USB support. It seems that
> >>> all/most of the imx8m boards have a spl_board_init() which calls
> >>> arch_misc_init(). I'm curious why your not calling that function?
> >>
> >> As of right now, we're not using the CAAM which is initialized in
> >> arch_misc_init.  If/When we do, we'll likely have to pull that in.
> >>
> >
> > ok - makes sense.
> >
> >>>
> >>> Another config that I've found to save a lot of space for imx8m
> >>> without any negative impact I can see is CONFIG_SPL_MMC_TINY=y
> >>
> >> I experimented a bit with that too, but I hadn't fully tested
> >> switching between booting between MMC1 and MMC2, so I wasn't quite
> >> ready to enable it, but I'll spend some more time with it to see how
> >> much more space I can shave off SPL.
> >> Getting rid of the PMIC children in SPL helped me quite a bit.
> >
> > I see. It appears to save about 2K and Fabio's imx8mm clk reduction
> > series that made it in saves another 800 bytes or so.
> >
> > Regardless I'm still oversize for imx8mm-venice by 2K bytes and
> > looking for things to prune. My issue is that I have 4 DRAM configs to
> > support which suck up 3K each I believe.
>
> Why has so many DRAM configs? Use one image to support multiple boards?
>
> Regards,
> Peng.
>

Peng,

Yes, imx8mm_venice_defconfig covers 6 different dtbs and 4 different
DRAM configs (512MiB, 1GiB, 2GiB, 4GiB) which bloats the SPL to the
point that I can't add SDP support... specifically DM USB.

Tim


Re: [PATCH 1/3] imx: imx8mm_beacon: Eliminate a few extras to free up SPL space

2022-10-24 Thread Peng Fan




On 10/25/2022 4:47 AM, Tim Harvey wrote:

On Mon, Oct 24, 2022 at 1:26 PM Adam Ford  wrote:


On Mon, Oct 24, 2022 at 2:57 PM Tim Harvey  wrote:


On Sat, Oct 22, 2022 at 7:28 AM Adam Ford  wrote:


There are a few functions which are not essential for use in
SPL, but they take up enough space to make other preferred
features not fit.  Remove the extras.

Signed-off-by: Adam Ford 

diff --git a/board/beacon/imx8mm/spl.c b/board/beacon/imx8mm/spl.c
index a93cc93878..b0e9d918da 100644
--- a/board/beacon/imx8mm/spl.c
+++ b/board/beacon/imx8mm/spl.c
@@ -44,11 +44,6 @@ static void spl_dram_init(void)
 ddr_init(&dram_timing);
  }

-void spl_board_init(void)
-{
-   debug("Normal Boot\n");
-}
-
  #ifdef CONFIG_SPL_LOAD_FIT
  int board_fit_config_name_match(const char *name)
  {
diff --git a/configs/imx8mm_beacon_defconfig b/configs/imx8mm_beacon_defconfig
index e37ce01c19..f6a1012d8a 100644
--- a/configs/imx8mm_beacon_defconfig
+++ b/configs/imx8mm_beacon_defconfig
@@ -29,7 +29,6 @@ CONFIG_DEFAULT_FDT_FILE="imx8mm-beacon-kit.dtb"
  CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
  CONFIG_SPL_BSS_START_ADDR=0x91
  CONFIG_SPL_BSS_MAX_SIZE=0x2000
-CONFIG_SPL_BOARD_INIT=y
  # CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
  CONFIG_SPL_STACK=0x92
  CONFIG_SYS_SPL_MALLOC=y
@@ -88,12 +87,9 @@ CONFIG_DM_PCA953X=y
  CONFIG_DM_I2C=y
  CONFIG_SUPPORT_EMMC_BOOT=y
  CONFIG_MMC_IO_VOLTAGE=y
-CONFIG_SPL_MMC_IO_VOLTAGE=y
  CONFIG_MMC_UHS_SUPPORT=y
-CONFIG_SPL_MMC_UHS_SUPPORT=y
  CONFIG_MMC_HS400_ES_SUPPORT=y
  CONFIG_MMC_HS400_SUPPORT=y
-CONFIG_SPL_MMC_HS400_SUPPORT=y
  CONFIG_FSL_USDHC=y
  CONFIG_MTD=y
  CONFIG_DM_MTD=y
@@ -113,14 +109,12 @@ CONFIG_PINCTRL_IMX8M=y
  CONFIG_POWER_DOMAIN=y
  CONFIG_IMX8M_POWER_DOMAIN=y
  CONFIG_DM_PMIC=y
+# CONFIG_SPL_PMIC_CHILDREN is not set
  CONFIG_DM_PMIC_BD71837=y
  CONFIG_SPL_DM_PMIC_BD71837=y
  CONFIG_DM_REGULATOR=y
-CONFIG_SPL_DM_REGULATOR=y
  CONFIG_DM_REGULATOR_BD71837=y
-CONFIG_SPL_DM_REGULATOR_BD71837=y
  CONFIG_DM_REGULATOR_FIXED=y
-CONFIG_SPL_DM_REGULATOR_FIXED=y
  CONFIG_DM_REGULATOR_GPIO=y
  CONFIG_DM_SERIAL=y
  CONFIG_MXC_UART=y
--
2.34.1



Adam,

I'm looking at your patches as I'm also trying to strip down the
imx8mm-venice SPL so that I can fit DM USB support. It seems that
all/most of the imx8m boards have a spl_board_init() which calls
arch_misc_init(). I'm curious why your not calling that function?


As of right now, we're not using the CAAM which is initialized in
arch_misc_init.  If/When we do, we'll likely have to pull that in.



ok - makes sense.



Another config that I've found to save a lot of space for imx8m
without any negative impact I can see is CONFIG_SPL_MMC_TINY=y


I experimented a bit with that too, but I hadn't fully tested
switching between booting between MMC1 and MMC2, so I wasn't quite
ready to enable it, but I'll spend some more time with it to see how
much more space I can shave off SPL.
Getting rid of the PMIC children in SPL helped me quite a bit.


I see. It appears to save about 2K and Fabio's imx8mm clk reduction
series that made it in saves another 800 bytes or so.

Regardless I'm still oversize for imx8mm-venice by 2K bytes and
looking for things to prune. My issue is that I have 4 DRAM configs to
support which suck up 3K each I believe.


Why has so many DRAM configs? Use one image to support multiple boards?

Regards,
Peng.



Tim


Re: [PATCH 1/3] imx: imx8mm_beacon: Eliminate a few extras to free up SPL space

2022-10-24 Thread Tim Harvey
On Mon, Oct 24, 2022 at 1:52 PM Adam Ford  wrote:
>
> On Mon, Oct 24, 2022 at 3:47 PM Tim Harvey  wrote:
> >
> > On Mon, Oct 24, 2022 at 1:26 PM Adam Ford  wrote:
> > >
> > > On Mon, Oct 24, 2022 at 2:57 PM Tim Harvey  wrote:
> > > >
> > > > On Sat, Oct 22, 2022 at 7:28 AM Adam Ford  wrote:
> > > > >
> > > > > There are a few functions which are not essential for use in
> > > > > SPL, but they take up enough space to make other preferred
> > > > > features not fit.  Remove the extras.
> > > > >
> > > > > Signed-off-by: Adam Ford 
> > > > >
> > > > > diff --git a/board/beacon/imx8mm/spl.c b/board/beacon/imx8mm/spl.c
> > > > > index a93cc93878..b0e9d918da 100644
> > > > > --- a/board/beacon/imx8mm/spl.c
> > > > > +++ b/board/beacon/imx8mm/spl.c
> > > > > @@ -44,11 +44,6 @@ static void spl_dram_init(void)
> > > > > ddr_init(&dram_timing);
> > > > >  }
> > > > >
> > > > > -void spl_board_init(void)
> > > > > -{
> > > > > -   debug("Normal Boot\n");
> > > > > -}
> > > > > -
> > > > >  #ifdef CONFIG_SPL_LOAD_FIT
> > > > >  int board_fit_config_name_match(const char *name)
> > > > >  {
> > > > > diff --git a/configs/imx8mm_beacon_defconfig 
> > > > > b/configs/imx8mm_beacon_defconfig
> > > > > index e37ce01c19..f6a1012d8a 100644
> > > > > --- a/configs/imx8mm_beacon_defconfig
> > > > > +++ b/configs/imx8mm_beacon_defconfig
> > > > > @@ -29,7 +29,6 @@ CONFIG_DEFAULT_FDT_FILE="imx8mm-beacon-kit.dtb"
> > > > >  CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
> > > > >  CONFIG_SPL_BSS_START_ADDR=0x91
> > > > >  CONFIG_SPL_BSS_MAX_SIZE=0x2000
> > > > > -CONFIG_SPL_BOARD_INIT=y
> > > > >  # CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
> > > > >  CONFIG_SPL_STACK=0x92
> > > > >  CONFIG_SYS_SPL_MALLOC=y
> > > > > @@ -88,12 +87,9 @@ CONFIG_DM_PCA953X=y
> > > > >  CONFIG_DM_I2C=y
> > > > >  CONFIG_SUPPORT_EMMC_BOOT=y
> > > > >  CONFIG_MMC_IO_VOLTAGE=y
> > > > > -CONFIG_SPL_MMC_IO_VOLTAGE=y
> > > > >  CONFIG_MMC_UHS_SUPPORT=y
> > > > > -CONFIG_SPL_MMC_UHS_SUPPORT=y
> > > > >  CONFIG_MMC_HS400_ES_SUPPORT=y
> > > > >  CONFIG_MMC_HS400_SUPPORT=y
> > > > > -CONFIG_SPL_MMC_HS400_SUPPORT=y
> > > > >  CONFIG_FSL_USDHC=y
> > > > >  CONFIG_MTD=y
> > > > >  CONFIG_DM_MTD=y
> > > > > @@ -113,14 +109,12 @@ CONFIG_PINCTRL_IMX8M=y
> > > > >  CONFIG_POWER_DOMAIN=y
> > > > >  CONFIG_IMX8M_POWER_DOMAIN=y
> > > > >  CONFIG_DM_PMIC=y
> > > > > +# CONFIG_SPL_PMIC_CHILDREN is not set
> > > > >  CONFIG_DM_PMIC_BD71837=y
> > > > >  CONFIG_SPL_DM_PMIC_BD71837=y
> > > > >  CONFIG_DM_REGULATOR=y
> > > > > -CONFIG_SPL_DM_REGULATOR=y
> > > > >  CONFIG_DM_REGULATOR_BD71837=y
> > > > > -CONFIG_SPL_DM_REGULATOR_BD71837=y
> > > > >  CONFIG_DM_REGULATOR_FIXED=y
> > > > > -CONFIG_SPL_DM_REGULATOR_FIXED=y
> > > > >  CONFIG_DM_REGULATOR_GPIO=y
> > > > >  CONFIG_DM_SERIAL=y
> > > > >  CONFIG_MXC_UART=y
> > > > > --
> > > > > 2.34.1
> > > > >
> > > >
> > > > Adam,
> > > >
> > > > I'm looking at your patches as I'm also trying to strip down the
> > > > imx8mm-venice SPL so that I can fit DM USB support. It seems that
> > > > all/most of the imx8m boards have a spl_board_init() which calls
> > > > arch_misc_init(). I'm curious why your not calling that function?
> > >
> > > As of right now, we're not using the CAAM which is initialized in
> > > arch_misc_init.  If/When we do, we'll likely have to pull that in.
> > >
> >
> > ok - makes sense.
> >
> > > >
> > > > Another config that I've found to save a lot of space for imx8m
> > > > without any negative impact I can see is CONFIG_SPL_MMC_TINY=y
> > >
> > > I experimented a bit with that too, but I hadn't fully tested
> > > switching between booting between MMC1 and MMC2, so I wasn't quite
> > > ready to enable it, but I'll spend some more time with it to see how
> > > much more space I can shave off SPL.
> > > Getting rid of the PMIC children in SPL helped me quite a bit.
> >
> > I see. It appears to save about 2K and Fabio's imx8mm clk reduction
> > series that made it in saves another 800 bytes or so.
> >
> > Regardless I'm still oversize for imx8mm-venice by 2K bytes and
> > looking for things to prune. My issue is that I have 4 DRAM configs to
> > support which suck up 3K each I believe.
>
> Can you split the DRAM configs into different _defconfig files so only
> the DRAM config you want is built-in?
>

Yes that would work but I hate adding multiple firmware images. I
already have issues with users selecting the wrong firmware between
imx8mm/n/p as it is.

I'm thinking I should be able to move dram configs to binman blobs
like was recently done with the ddr4 training blobs.

Tim


Re: [PATCH 1/3] imx: imx8mm_beacon: Eliminate a few extras to free up SPL space

2022-10-24 Thread Adam Ford
On Mon, Oct 24, 2022 at 3:47 PM Tim Harvey  wrote:
>
> On Mon, Oct 24, 2022 at 1:26 PM Adam Ford  wrote:
> >
> > On Mon, Oct 24, 2022 at 2:57 PM Tim Harvey  wrote:
> > >
> > > On Sat, Oct 22, 2022 at 7:28 AM Adam Ford  wrote:
> > > >
> > > > There are a few functions which are not essential for use in
> > > > SPL, but they take up enough space to make other preferred
> > > > features not fit.  Remove the extras.
> > > >
> > > > Signed-off-by: Adam Ford 
> > > >
> > > > diff --git a/board/beacon/imx8mm/spl.c b/board/beacon/imx8mm/spl.c
> > > > index a93cc93878..b0e9d918da 100644
> > > > --- a/board/beacon/imx8mm/spl.c
> > > > +++ b/board/beacon/imx8mm/spl.c
> > > > @@ -44,11 +44,6 @@ static void spl_dram_init(void)
> > > > ddr_init(&dram_timing);
> > > >  }
> > > >
> > > > -void spl_board_init(void)
> > > > -{
> > > > -   debug("Normal Boot\n");
> > > > -}
> > > > -
> > > >  #ifdef CONFIG_SPL_LOAD_FIT
> > > >  int board_fit_config_name_match(const char *name)
> > > >  {
> > > > diff --git a/configs/imx8mm_beacon_defconfig 
> > > > b/configs/imx8mm_beacon_defconfig
> > > > index e37ce01c19..f6a1012d8a 100644
> > > > --- a/configs/imx8mm_beacon_defconfig
> > > > +++ b/configs/imx8mm_beacon_defconfig
> > > > @@ -29,7 +29,6 @@ CONFIG_DEFAULT_FDT_FILE="imx8mm-beacon-kit.dtb"
> > > >  CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
> > > >  CONFIG_SPL_BSS_START_ADDR=0x91
> > > >  CONFIG_SPL_BSS_MAX_SIZE=0x2000
> > > > -CONFIG_SPL_BOARD_INIT=y
> > > >  # CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
> > > >  CONFIG_SPL_STACK=0x92
> > > >  CONFIG_SYS_SPL_MALLOC=y
> > > > @@ -88,12 +87,9 @@ CONFIG_DM_PCA953X=y
> > > >  CONFIG_DM_I2C=y
> > > >  CONFIG_SUPPORT_EMMC_BOOT=y
> > > >  CONFIG_MMC_IO_VOLTAGE=y
> > > > -CONFIG_SPL_MMC_IO_VOLTAGE=y
> > > >  CONFIG_MMC_UHS_SUPPORT=y
> > > > -CONFIG_SPL_MMC_UHS_SUPPORT=y
> > > >  CONFIG_MMC_HS400_ES_SUPPORT=y
> > > >  CONFIG_MMC_HS400_SUPPORT=y
> > > > -CONFIG_SPL_MMC_HS400_SUPPORT=y
> > > >  CONFIG_FSL_USDHC=y
> > > >  CONFIG_MTD=y
> > > >  CONFIG_DM_MTD=y
> > > > @@ -113,14 +109,12 @@ CONFIG_PINCTRL_IMX8M=y
> > > >  CONFIG_POWER_DOMAIN=y
> > > >  CONFIG_IMX8M_POWER_DOMAIN=y
> > > >  CONFIG_DM_PMIC=y
> > > > +# CONFIG_SPL_PMIC_CHILDREN is not set
> > > >  CONFIG_DM_PMIC_BD71837=y
> > > >  CONFIG_SPL_DM_PMIC_BD71837=y
> > > >  CONFIG_DM_REGULATOR=y
> > > > -CONFIG_SPL_DM_REGULATOR=y
> > > >  CONFIG_DM_REGULATOR_BD71837=y
> > > > -CONFIG_SPL_DM_REGULATOR_BD71837=y
> > > >  CONFIG_DM_REGULATOR_FIXED=y
> > > > -CONFIG_SPL_DM_REGULATOR_FIXED=y
> > > >  CONFIG_DM_REGULATOR_GPIO=y
> > > >  CONFIG_DM_SERIAL=y
> > > >  CONFIG_MXC_UART=y
> > > > --
> > > > 2.34.1
> > > >
> > >
> > > Adam,
> > >
> > > I'm looking at your patches as I'm also trying to strip down the
> > > imx8mm-venice SPL so that I can fit DM USB support. It seems that
> > > all/most of the imx8m boards have a spl_board_init() which calls
> > > arch_misc_init(). I'm curious why your not calling that function?
> >
> > As of right now, we're not using the CAAM which is initialized in
> > arch_misc_init.  If/When we do, we'll likely have to pull that in.
> >
>
> ok - makes sense.
>
> > >
> > > Another config that I've found to save a lot of space for imx8m
> > > without any negative impact I can see is CONFIG_SPL_MMC_TINY=y
> >
> > I experimented a bit with that too, but I hadn't fully tested
> > switching between booting between MMC1 and MMC2, so I wasn't quite
> > ready to enable it, but I'll spend some more time with it to see how
> > much more space I can shave off SPL.
> > Getting rid of the PMIC children in SPL helped me quite a bit.
>
> I see. It appears to save about 2K and Fabio's imx8mm clk reduction
> series that made it in saves another 800 bytes or so.
>
> Regardless I'm still oversize for imx8mm-venice by 2K bytes and
> looking for things to prune. My issue is that I have 4 DRAM configs to
> support which suck up 3K each I believe.

Can you split the DRAM configs into different _defconfig files so only
the DRAM config you want is built-in?

adam
>
> Tim


Re: [PATCH 1/3] imx: imx8mm_beacon: Eliminate a few extras to free up SPL space

2022-10-24 Thread Tim Harvey
On Mon, Oct 24, 2022 at 1:26 PM Adam Ford  wrote:
>
> On Mon, Oct 24, 2022 at 2:57 PM Tim Harvey  wrote:
> >
> > On Sat, Oct 22, 2022 at 7:28 AM Adam Ford  wrote:
> > >
> > > There are a few functions which are not essential for use in
> > > SPL, but they take up enough space to make other preferred
> > > features not fit.  Remove the extras.
> > >
> > > Signed-off-by: Adam Ford 
> > >
> > > diff --git a/board/beacon/imx8mm/spl.c b/board/beacon/imx8mm/spl.c
> > > index a93cc93878..b0e9d918da 100644
> > > --- a/board/beacon/imx8mm/spl.c
> > > +++ b/board/beacon/imx8mm/spl.c
> > > @@ -44,11 +44,6 @@ static void spl_dram_init(void)
> > > ddr_init(&dram_timing);
> > >  }
> > >
> > > -void spl_board_init(void)
> > > -{
> > > -   debug("Normal Boot\n");
> > > -}
> > > -
> > >  #ifdef CONFIG_SPL_LOAD_FIT
> > >  int board_fit_config_name_match(const char *name)
> > >  {
> > > diff --git a/configs/imx8mm_beacon_defconfig 
> > > b/configs/imx8mm_beacon_defconfig
> > > index e37ce01c19..f6a1012d8a 100644
> > > --- a/configs/imx8mm_beacon_defconfig
> > > +++ b/configs/imx8mm_beacon_defconfig
> > > @@ -29,7 +29,6 @@ CONFIG_DEFAULT_FDT_FILE="imx8mm-beacon-kit.dtb"
> > >  CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
> > >  CONFIG_SPL_BSS_START_ADDR=0x91
> > >  CONFIG_SPL_BSS_MAX_SIZE=0x2000
> > > -CONFIG_SPL_BOARD_INIT=y
> > >  # CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
> > >  CONFIG_SPL_STACK=0x92
> > >  CONFIG_SYS_SPL_MALLOC=y
> > > @@ -88,12 +87,9 @@ CONFIG_DM_PCA953X=y
> > >  CONFIG_DM_I2C=y
> > >  CONFIG_SUPPORT_EMMC_BOOT=y
> > >  CONFIG_MMC_IO_VOLTAGE=y
> > > -CONFIG_SPL_MMC_IO_VOLTAGE=y
> > >  CONFIG_MMC_UHS_SUPPORT=y
> > > -CONFIG_SPL_MMC_UHS_SUPPORT=y
> > >  CONFIG_MMC_HS400_ES_SUPPORT=y
> > >  CONFIG_MMC_HS400_SUPPORT=y
> > > -CONFIG_SPL_MMC_HS400_SUPPORT=y
> > >  CONFIG_FSL_USDHC=y
> > >  CONFIG_MTD=y
> > >  CONFIG_DM_MTD=y
> > > @@ -113,14 +109,12 @@ CONFIG_PINCTRL_IMX8M=y
> > >  CONFIG_POWER_DOMAIN=y
> > >  CONFIG_IMX8M_POWER_DOMAIN=y
> > >  CONFIG_DM_PMIC=y
> > > +# CONFIG_SPL_PMIC_CHILDREN is not set
> > >  CONFIG_DM_PMIC_BD71837=y
> > >  CONFIG_SPL_DM_PMIC_BD71837=y
> > >  CONFIG_DM_REGULATOR=y
> > > -CONFIG_SPL_DM_REGULATOR=y
> > >  CONFIG_DM_REGULATOR_BD71837=y
> > > -CONFIG_SPL_DM_REGULATOR_BD71837=y
> > >  CONFIG_DM_REGULATOR_FIXED=y
> > > -CONFIG_SPL_DM_REGULATOR_FIXED=y
> > >  CONFIG_DM_REGULATOR_GPIO=y
> > >  CONFIG_DM_SERIAL=y
> > >  CONFIG_MXC_UART=y
> > > --
> > > 2.34.1
> > >
> >
> > Adam,
> >
> > I'm looking at your patches as I'm also trying to strip down the
> > imx8mm-venice SPL so that I can fit DM USB support. It seems that
> > all/most of the imx8m boards have a spl_board_init() which calls
> > arch_misc_init(). I'm curious why your not calling that function?
>
> As of right now, we're not using the CAAM which is initialized in
> arch_misc_init.  If/When we do, we'll likely have to pull that in.
>

ok - makes sense.

> >
> > Another config that I've found to save a lot of space for imx8m
> > without any negative impact I can see is CONFIG_SPL_MMC_TINY=y
>
> I experimented a bit with that too, but I hadn't fully tested
> switching between booting between MMC1 and MMC2, so I wasn't quite
> ready to enable it, but I'll spend some more time with it to see how
> much more space I can shave off SPL.
> Getting rid of the PMIC children in SPL helped me quite a bit.

I see. It appears to save about 2K and Fabio's imx8mm clk reduction
series that made it in saves another 800 bytes or so.

Regardless I'm still oversize for imx8mm-venice by 2K bytes and
looking for things to prune. My issue is that I have 4 DRAM configs to
support which suck up 3K each I believe.

Tim


Re: [PATCH 1/3] imx: imx8mm_beacon: Eliminate a few extras to free up SPL space

2022-10-24 Thread Adam Ford
On Mon, Oct 24, 2022 at 2:57 PM Tim Harvey  wrote:
>
> On Sat, Oct 22, 2022 at 7:28 AM Adam Ford  wrote:
> >
> > There are a few functions which are not essential for use in
> > SPL, but they take up enough space to make other preferred
> > features not fit.  Remove the extras.
> >
> > Signed-off-by: Adam Ford 
> >
> > diff --git a/board/beacon/imx8mm/spl.c b/board/beacon/imx8mm/spl.c
> > index a93cc93878..b0e9d918da 100644
> > --- a/board/beacon/imx8mm/spl.c
> > +++ b/board/beacon/imx8mm/spl.c
> > @@ -44,11 +44,6 @@ static void spl_dram_init(void)
> > ddr_init(&dram_timing);
> >  }
> >
> > -void spl_board_init(void)
> > -{
> > -   debug("Normal Boot\n");
> > -}
> > -
> >  #ifdef CONFIG_SPL_LOAD_FIT
> >  int board_fit_config_name_match(const char *name)
> >  {
> > diff --git a/configs/imx8mm_beacon_defconfig 
> > b/configs/imx8mm_beacon_defconfig
> > index e37ce01c19..f6a1012d8a 100644
> > --- a/configs/imx8mm_beacon_defconfig
> > +++ b/configs/imx8mm_beacon_defconfig
> > @@ -29,7 +29,6 @@ CONFIG_DEFAULT_FDT_FILE="imx8mm-beacon-kit.dtb"
> >  CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
> >  CONFIG_SPL_BSS_START_ADDR=0x91
> >  CONFIG_SPL_BSS_MAX_SIZE=0x2000
> > -CONFIG_SPL_BOARD_INIT=y
> >  # CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
> >  CONFIG_SPL_STACK=0x92
> >  CONFIG_SYS_SPL_MALLOC=y
> > @@ -88,12 +87,9 @@ CONFIG_DM_PCA953X=y
> >  CONFIG_DM_I2C=y
> >  CONFIG_SUPPORT_EMMC_BOOT=y
> >  CONFIG_MMC_IO_VOLTAGE=y
> > -CONFIG_SPL_MMC_IO_VOLTAGE=y
> >  CONFIG_MMC_UHS_SUPPORT=y
> > -CONFIG_SPL_MMC_UHS_SUPPORT=y
> >  CONFIG_MMC_HS400_ES_SUPPORT=y
> >  CONFIG_MMC_HS400_SUPPORT=y
> > -CONFIG_SPL_MMC_HS400_SUPPORT=y
> >  CONFIG_FSL_USDHC=y
> >  CONFIG_MTD=y
> >  CONFIG_DM_MTD=y
> > @@ -113,14 +109,12 @@ CONFIG_PINCTRL_IMX8M=y
> >  CONFIG_POWER_DOMAIN=y
> >  CONFIG_IMX8M_POWER_DOMAIN=y
> >  CONFIG_DM_PMIC=y
> > +# CONFIG_SPL_PMIC_CHILDREN is not set
> >  CONFIG_DM_PMIC_BD71837=y
> >  CONFIG_SPL_DM_PMIC_BD71837=y
> >  CONFIG_DM_REGULATOR=y
> > -CONFIG_SPL_DM_REGULATOR=y
> >  CONFIG_DM_REGULATOR_BD71837=y
> > -CONFIG_SPL_DM_REGULATOR_BD71837=y
> >  CONFIG_DM_REGULATOR_FIXED=y
> > -CONFIG_SPL_DM_REGULATOR_FIXED=y
> >  CONFIG_DM_REGULATOR_GPIO=y
> >  CONFIG_DM_SERIAL=y
> >  CONFIG_MXC_UART=y
> > --
> > 2.34.1
> >
>
> Adam,
>
> I'm looking at your patches as I'm also trying to strip down the
> imx8mm-venice SPL so that I can fit DM USB support. It seems that
> all/most of the imx8m boards have a spl_board_init() which calls
> arch_misc_init(). I'm curious why your not calling that function?

As of right now, we're not using the CAAM which is initialized in
arch_misc_init.  If/When we do, we'll likely have to pull that in.

>
> Another config that I've found to save a lot of space for imx8m
> without any negative impact I can see is CONFIG_SPL_MMC_TINY=y

I experimented a bit with that too, but I hadn't fully tested
switching between booting between MMC1 and MMC2, so I wasn't quite
ready to enable it, but I'll spend some more time with it to see how
much more space I can shave off SPL.
Getting rid of the PMIC children in SPL helped me quite a bit.

thanks!

adam

>
> Best Regards,
>
> Tim


Re: [PATCH 1/3] imx: imx8mm_beacon: Eliminate a few extras to free up SPL space

2022-10-24 Thread Tim Harvey
On Sat, Oct 22, 2022 at 7:28 AM Adam Ford  wrote:
>
> There are a few functions which are not essential for use in
> SPL, but they take up enough space to make other preferred
> features not fit.  Remove the extras.
>
> Signed-off-by: Adam Ford 
>
> diff --git a/board/beacon/imx8mm/spl.c b/board/beacon/imx8mm/spl.c
> index a93cc93878..b0e9d918da 100644
> --- a/board/beacon/imx8mm/spl.c
> +++ b/board/beacon/imx8mm/spl.c
> @@ -44,11 +44,6 @@ static void spl_dram_init(void)
> ddr_init(&dram_timing);
>  }
>
> -void spl_board_init(void)
> -{
> -   debug("Normal Boot\n");
> -}
> -
>  #ifdef CONFIG_SPL_LOAD_FIT
>  int board_fit_config_name_match(const char *name)
>  {
> diff --git a/configs/imx8mm_beacon_defconfig b/configs/imx8mm_beacon_defconfig
> index e37ce01c19..f6a1012d8a 100644
> --- a/configs/imx8mm_beacon_defconfig
> +++ b/configs/imx8mm_beacon_defconfig
> @@ -29,7 +29,6 @@ CONFIG_DEFAULT_FDT_FILE="imx8mm-beacon-kit.dtb"
>  CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
>  CONFIG_SPL_BSS_START_ADDR=0x91
>  CONFIG_SPL_BSS_MAX_SIZE=0x2000
> -CONFIG_SPL_BOARD_INIT=y
>  # CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
>  CONFIG_SPL_STACK=0x92
>  CONFIG_SYS_SPL_MALLOC=y
> @@ -88,12 +87,9 @@ CONFIG_DM_PCA953X=y
>  CONFIG_DM_I2C=y
>  CONFIG_SUPPORT_EMMC_BOOT=y
>  CONFIG_MMC_IO_VOLTAGE=y
> -CONFIG_SPL_MMC_IO_VOLTAGE=y
>  CONFIG_MMC_UHS_SUPPORT=y
> -CONFIG_SPL_MMC_UHS_SUPPORT=y
>  CONFIG_MMC_HS400_ES_SUPPORT=y
>  CONFIG_MMC_HS400_SUPPORT=y
> -CONFIG_SPL_MMC_HS400_SUPPORT=y
>  CONFIG_FSL_USDHC=y
>  CONFIG_MTD=y
>  CONFIG_DM_MTD=y
> @@ -113,14 +109,12 @@ CONFIG_PINCTRL_IMX8M=y
>  CONFIG_POWER_DOMAIN=y
>  CONFIG_IMX8M_POWER_DOMAIN=y
>  CONFIG_DM_PMIC=y
> +# CONFIG_SPL_PMIC_CHILDREN is not set
>  CONFIG_DM_PMIC_BD71837=y
>  CONFIG_SPL_DM_PMIC_BD71837=y
>  CONFIG_DM_REGULATOR=y
> -CONFIG_SPL_DM_REGULATOR=y
>  CONFIG_DM_REGULATOR_BD71837=y
> -CONFIG_SPL_DM_REGULATOR_BD71837=y
>  CONFIG_DM_REGULATOR_FIXED=y
> -CONFIG_SPL_DM_REGULATOR_FIXED=y
>  CONFIG_DM_REGULATOR_GPIO=y
>  CONFIG_DM_SERIAL=y
>  CONFIG_MXC_UART=y
> --
> 2.34.1
>

Adam,

I'm looking at your patches as I'm also trying to strip down the
imx8mm-venice SPL so that I can fit DM USB support. It seems that
all/most of the imx8m boards have a spl_board_init() which calls
arch_misc_init(). I'm curious why your not calling that function?

Another config that I've found to save a lot of space for imx8m
without any negative impact I can see is CONFIG_SPL_MMC_TINY=y

Best Regards,

Tim


Re: [PATCH 1/3] imx: imx8mm_beacon: Eliminate a few extras to free up SPL space

2022-10-22 Thread Fabio Estevam
On Sat, Oct 22, 2022 at 11:28 AM Adam Ford  wrote:
>
> There are a few functions which are not essential for use in
> SPL, but they take up enough space to make other preferred
> features not fit.  Remove the extras.
>
> Signed-off-by: Adam Ford 

Reviewed-by: Fabio Estevam 


[PATCH 1/3] imx: imx8mm_beacon: Eliminate a few extras to free up SPL space

2022-10-22 Thread Adam Ford
There are a few functions which are not essential for use in
SPL, but they take up enough space to make other preferred
features not fit.  Remove the extras.

Signed-off-by: Adam Ford 

diff --git a/board/beacon/imx8mm/spl.c b/board/beacon/imx8mm/spl.c
index a93cc93878..b0e9d918da 100644
--- a/board/beacon/imx8mm/spl.c
+++ b/board/beacon/imx8mm/spl.c
@@ -44,11 +44,6 @@ static void spl_dram_init(void)
ddr_init(&dram_timing);
 }
 
-void spl_board_init(void)
-{
-   debug("Normal Boot\n");
-}
-
 #ifdef CONFIG_SPL_LOAD_FIT
 int board_fit_config_name_match(const char *name)
 {
diff --git a/configs/imx8mm_beacon_defconfig b/configs/imx8mm_beacon_defconfig
index e37ce01c19..f6a1012d8a 100644
--- a/configs/imx8mm_beacon_defconfig
+++ b/configs/imx8mm_beacon_defconfig
@@ -29,7 +29,6 @@ CONFIG_DEFAULT_FDT_FILE="imx8mm-beacon-kit.dtb"
 CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
 CONFIG_SPL_BSS_START_ADDR=0x91
 CONFIG_SPL_BSS_MAX_SIZE=0x2000
-CONFIG_SPL_BOARD_INIT=y
 # CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
 CONFIG_SPL_STACK=0x92
 CONFIG_SYS_SPL_MALLOC=y
@@ -88,12 +87,9 @@ CONFIG_DM_PCA953X=y
 CONFIG_DM_I2C=y
 CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_MMC_IO_VOLTAGE=y
-CONFIG_SPL_MMC_IO_VOLTAGE=y
 CONFIG_MMC_UHS_SUPPORT=y
-CONFIG_SPL_MMC_UHS_SUPPORT=y
 CONFIG_MMC_HS400_ES_SUPPORT=y
 CONFIG_MMC_HS400_SUPPORT=y
-CONFIG_SPL_MMC_HS400_SUPPORT=y
 CONFIG_FSL_USDHC=y
 CONFIG_MTD=y
 CONFIG_DM_MTD=y
@@ -113,14 +109,12 @@ CONFIG_PINCTRL_IMX8M=y
 CONFIG_POWER_DOMAIN=y
 CONFIG_IMX8M_POWER_DOMAIN=y
 CONFIG_DM_PMIC=y
+# CONFIG_SPL_PMIC_CHILDREN is not set
 CONFIG_DM_PMIC_BD71837=y
 CONFIG_SPL_DM_PMIC_BD71837=y
 CONFIG_DM_REGULATOR=y
-CONFIG_SPL_DM_REGULATOR=y
 CONFIG_DM_REGULATOR_BD71837=y
-CONFIG_SPL_DM_REGULATOR_BD71837=y
 CONFIG_DM_REGULATOR_FIXED=y
-CONFIG_SPL_DM_REGULATOR_FIXED=y
 CONFIG_DM_REGULATOR_GPIO=y
 CONFIG_DM_SERIAL=y
 CONFIG_MXC_UART=y
-- 
2.34.1