From: Scott Wood <scottwood@freescale.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] powerpc/p1022ds: boot from SD card/SPI flash with SPL
Date: Fri, 10 May 2013 19:45:11 -0500 [thread overview]
Message-ID: <1368233111.19683.20@snotra> (raw)
In-Reply-To: <B3A295C5BD5B13458B2F5C6AFAD910466D95DB@039-SN2MPN1-023.039d.mgd.msft.net> (from B40530@freescale.com on Fri May 10 03:44:29 2013)
On 05/10/2013 03:44:29 AM, Zhang Ying-B40530 wrote:
>
>
>
> This patch needs to be broken into several patches that each take
> care of one logical problem; it's too hard to properly review (and
> have the right people pay attention to certain parts) in its current
> state.
> [Zhang Ying]
> It only can be broken to two patches, one for SD boot, another for
> SPI boot.
You can also separate out logical changes in support of your eventual
goal (as it looks like you already started doing with the
CONFIG_SPL_ENV_SUPPORT patch and such).
> > @@ -83,5 +107,6 @@ SECTIONS
> > *(.sbss*)
> > *(.bss*)
> > }
> > + . = ALIGN(4);
> > __bss_end = .;
> > }
>
> This seems unrelated.
> [Zhang Ying]
> It is necessary. In the function clear_bss(), the address of bss is
> on the basis of the __bss_start, and then to four bytes of
> incremental growth, finally the last stop is based on the address and
> __bss_end is equal or not.
It may be necessary, but I don't see what it has to do with SD/SPI boot
other than by chance. Make this a separate patch with a changelog that
explains the problem.
> > diff --git a/board/freescale/common/sdhc_boot.c
> > b/board/freescale/common/sdhc_boot.c
> > index e432318..96b0680 100644
> > --- a/board/freescale/common/sdhc_boot.c
> > +++ b/board/freescale/common/sdhc_boot.c
>
> > + val = *(u16 *)(tmp_buf + ESDHC_BOOT_IMAGE_SIGN_ADDR);
> > + if ((u16)ESDHC_BOOT_IMAGE_SIGN != val) {
> > + free(tmp_buf);
> > + return;
> > + }
>
> Why do you need this cast?
> [Zhang Ying]
> The offset 0x1FE of the config data sector should contain the value
> 0x55AA. If the value in this location doesn't match 0x55AA, it means
> that the SD/MMC card doesn't contain a valid user code.
But why do you need to cast ESDHC_BOOT_IMAGE_SIGN to (u16)?
And the other cast probably violates C99 aliasing rules.
> > + *
> > + * You should have received a copy of the GNU General Public
> License
> > + * along with this program; if not, write to the Free Software
> > + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
> > + * MA 02111-1307 USA
> > + */
> > +
> > +#ifndef __SDHC_BOOT_H_
> > +#define __SDHC_BOOT_H_ 1
> > +
> > +
> > +int mmc_get_env_addr(struct mmc *mmc, u32 *env_addr); void
> > +mmc_get_env(void); void mmc_boot(void);
> > +
> > +#endif /* __SDHC_BOOT_H_ */
>
> Does this stuff really belong in board/freescale? Should probably at
> least be in arch/powerpc/cpu/mpc85xx, if not more generic.
> [Zhang Ying]
> Ok, whether we can handle like this: sdhc_boot.c and spi_boot.c will
> be deleted. All this stuff in the sdhc_boot.c will be moved to
> drivers/mmc/fsl_esdhc.c, and the functions in the spi_boot.c will be
> moved to drivers/mmc/fsl_espi.c.
Maybe drivers/mmc/fsl_espi_spl.c and such?
> > +void hang(void)
> > +{
> > + puts("### ERROR ### Please RESET the board ###\n");
> > + for (;;)
> > + ;
> > +}
>
> Whitespace
> [Zhang Ying]
> ?
I'm not sure what I meant here. :-P
Maybe I meant to put this comment elsewhere, or trimmed the wrong
context...
> > diff --git a/common/Makefile b/common/Makefile index
> 0e0fff1..bc80414
> > 100644
> > --- a/common/Makefile
> > +++ b/common/Makefile
> > @@ -225,6 +225,11 @@ COBJS-$(CONFIG_SPL_NET_SUPPORT) += env_common.o
> > COBJS-$(CONFIG_SPL_NET_SUPPORT) += env_flags.o
> > COBJS-$(CONFIG_SPL_NET_SUPPORT) += env_nowhere.o
> > COBJS-$(CONFIG_SPL_NET_SUPPORT) += miiphyutil.o
> > +COBJS-$(CONFIG_SPL_HWCONFIG_SUPPORT) += hwconfig.o
> > +COBJS-$(CONFIG_SPL_INIT_DDR_SUPPORT) += ddr_spd.o
> > +COBJS-$(CONFIG_SPL_ENV_SUPPORT) += env_attr.o
> > +COBJS-$(CONFIG_SPL_ENV_SUPPORT) += env_flags.o
> > +COBJS-$(CONFIG_SPL_ENV_SUPPORT) += env_callback.o
>
> CONFIG_SPL_ENV_SUPPORT should replace CONFIG_SPL_NET_SUPPORT here
> (and add it to the boards that already have CONFIG_SPL_NET_SUPPORT).
> This sort of refactoring needs to be a separate patch, BTW.
>
> Can ddr_spd.o and hwconfig just use their normal CONFIG symbols (i.e.
> move the existing makefile line out of the !SPL ifdef)? It's getting
> a bit excessive with all the new SPL symbols.
> [Zhang Ying]
> If do it, the SPL's size will increase. I fear this will affect the
> other SPL no CONFIG_SPL_NET_SUPPORT is defined.
Which SPL in particular are you concerned about, that uses
common/Makefile at all, and have CONFIG_SPD and/or CONFIG_HWCONFIG?
How much will they grow, after gc-sections (mainly all that's left is
anonymous strings)?
> > +Where $file is the target file. Also keep in mind the u-boot.bin
> > file needs
> > +to be the u-boot built for your particular platform and target
> media.
> > +
> > +Hint: To generate a u-boot.bin for a P1022DS booting from SD I
> would
> > run the
> > +following in the u-boot repository:
> > +
> > + $ make P1022DS_SDCARD
>
> s/Hint/Example/ and s/from SD I would run/from SD, run/
> [Zhang Ying]
> run bootsd? This is another independent requirement. If we want, we
> can do it in another project.
Hmm? I was just fixing up the wording -- change "Hint" to "Example"
and change "from SD I would run" to "from SD, run".
That said, yes I would like to see "run bootsd". :-)
-Scott
next prev parent reply other threads:[~2013-05-11 0:45 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-08 10:04 [U-Boot] [PATCH] powerpc/p1022ds: boot from SD card/SPI flash with SPL ying.zhang at freescale.com
2013-05-09 0:12 ` Scott Wood
2013-05-10 8:44 ` Zhang Ying-B40530
2013-05-11 0:45 ` Scott Wood [this message]
2013-05-13 10:17 ` Zhang Ying-B40530
2013-05-13 14:47 ` Scott Wood
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1368233111.19683.20@snotra \
--to=scottwood@freescale.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.