Message ID | 1504676558-12635-1-git-send-email-priyanka.jain@nxp.com |
---|---|
State | Changes Requested |
Delegated to: | York Sun |
Headers | show |
Series | [U-Boot,v2] board/ls2080ardb: Update board env based on SoC | expand |
On 09/05/2017 10:42 PM, Priyanka Jain wrote: > As per current implementation, default value of board env is > based on board filename i.e ls2080ardb. > > With distro support changes, this env is used to decide upon > kernel dtb which is different for other SoCs (ls2088a, ls2081a) > combination supported with this board. > > Add support to modify board env at runtime based on SoC type > > Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com> > --- > Changes for v2: > Replace setenv() with env_set() > > board/freescale/ls2080ardb/ls2080ardb.c | 12 ++++++++++++ > 1 files changed, 12 insertions(+), 0 deletions(-) > > diff --git a/board/freescale/ls2080ardb/ls2080ardb.c b/board/freescale/ls2080ardb/ls2080ardb.c > index 07ba026..dba0988 100644 > --- a/board/freescale/ls2080ardb/ls2080ardb.c > +++ b/board/freescale/ls2080ardb/ls2080ardb.c > @@ -247,6 +247,8 @@ int misc_init_r(void) > char *env_hwconfig; > u32 __iomem *dcfg_ccsr = (u32 __iomem *)DCFG_BASE; > u32 val; > + struct ccsr_gur __iomem *gur = (void *)(CONFIG_SYS_FSL_GUTS_ADDR); > + u32 svr = gur_in32(&gur->svr); > > val = in_le32(dcfg_ccsr + DCFG_RCWSR13 / 4); > > @@ -274,6 +276,16 @@ int misc_init_r(void) > > if (adjust_vdd(0)) > printf("Warning: Adjusting core voltage failed.\n"); > + /* > + * Default value of board env is based on filename which is > + * ls2080ardb. Modify board env for other supported SoCs > + */ > + if ((SVR_SOC_VER(svr) == SVR_LS2088A) || > + (SVR_SOC_VER(svr) == SVR_LS2048A)) > + setenv("board", "ls2088ardb"); > + else if ((SVR_SOC_VER(svr) == SVR_LS2081A) || > + (SVR_SOC_VER(svr) == SVR_LS2041A)) > + setenv("board", "ls2081ardb"); > > return 0; > } > You are still using setenv(). York
> -----Original Message----- > From: York Sun > Sent: Friday, September 15, 2017 2:42 AM > To: Priyanka Jain <priyanka.jain@nxp.com>; u-boot@lists.denx.de > Subject: Re: [PATCH][v2]board/ls2080ardb: Update board env based on SoC > > On 09/05/2017 10:42 PM, Priyanka Jain wrote: > > As per current implementation, default value of board env is based on > > board filename i.e ls2080ardb. > > > > With distro support changes, this env is used to decide upon kernel > > dtb which is different for other SoCs (ls2088a, ls2081a) combination > > supported with this board. > > > > Add support to modify board env at runtime based on SoC type > > > > Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com> > > --- > > Changes for v2: > > Replace setenv() with env_set() > > > > board/freescale/ls2080ardb/ls2080ardb.c | 12 ++++++++++++ > > 1 files changed, 12 insertions(+), 0 deletions(-) > > > > diff --git a/board/freescale/ls2080ardb/ls2080ardb.c > > b/board/freescale/ls2080ardb/ls2080ardb.c > > index 07ba026..dba0988 100644 > > --- a/board/freescale/ls2080ardb/ls2080ardb.c > > +++ b/board/freescale/ls2080ardb/ls2080ardb.c > > @@ -247,6 +247,8 @@ int misc_init_r(void) > > char *env_hwconfig; > > u32 __iomem *dcfg_ccsr = (u32 __iomem *)DCFG_BASE; > > u32 val; > > + struct ccsr_gur __iomem *gur = (void > *)(CONFIG_SYS_FSL_GUTS_ADDR); > > + u32 svr = gur_in32(&gur->svr); > > > > val = in_le32(dcfg_ccsr + DCFG_RCWSR13 / 4); > > > > @@ -274,6 +276,16 @@ int misc_init_r(void) > > > > if (adjust_vdd(0)) > > printf("Warning: Adjusting core voltage failed.\n"); > > + /* > > + * Default value of board env is based on filename which is > > + * ls2080ardb. Modify board env for other supported SoCs > > + */ > > + if ((SVR_SOC_VER(svr) == SVR_LS2088A) || > > + (SVR_SOC_VER(svr) == SVR_LS2048A)) > > + setenv("board", "ls2088ardb"); > > + else if ((SVR_SOC_VER(svr) == SVR_LS2081A) || > > + (SVR_SOC_VER(svr) == SVR_LS2041A)) > > + setenv("board", "ls2081ardb"); > > > > return 0; > > } > > > > You are still using setenv(). > > York Sorry, send wrong patch by mistake. Have send v3 for this
diff --git a/board/freescale/ls2080ardb/ls2080ardb.c b/board/freescale/ls2080ardb/ls2080ardb.c index 07ba026..dba0988 100644 --- a/board/freescale/ls2080ardb/ls2080ardb.c +++ b/board/freescale/ls2080ardb/ls2080ardb.c @@ -247,6 +247,8 @@ int misc_init_r(void) char *env_hwconfig; u32 __iomem *dcfg_ccsr = (u32 __iomem *)DCFG_BASE; u32 val; + struct ccsr_gur __iomem *gur = (void *)(CONFIG_SYS_FSL_GUTS_ADDR); + u32 svr = gur_in32(&gur->svr); val = in_le32(dcfg_ccsr + DCFG_RCWSR13 / 4); @@ -274,6 +276,16 @@ int misc_init_r(void) if (adjust_vdd(0)) printf("Warning: Adjusting core voltage failed.\n"); + /* + * Default value of board env is based on filename which is + * ls2080ardb. Modify board env for other supported SoCs + */ + if ((SVR_SOC_VER(svr) == SVR_LS2088A) || + (SVR_SOC_VER(svr) == SVR_LS2048A)) + setenv("board", "ls2088ardb"); + else if ((SVR_SOC_VER(svr) == SVR_LS2081A) || + (SVR_SOC_VER(svr) == SVR_LS2041A)) + setenv("board", "ls2081ardb"); return 0; }
As per current implementation, default value of board env is based on board filename i.e ls2080ardb. With distro support changes, this env is used to decide upon kernel dtb which is different for other SoCs (ls2088a, ls2081a) combination supported with this board. Add support to modify board env at runtime based on SoC type Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com> --- Changes for v2: Replace setenv() with env_set() board/freescale/ls2080ardb/ls2080ardb.c | 12 ++++++++++++ 1 files changed, 12 insertions(+), 0 deletions(-)