[PATCH v2 3/3] imx(25, 35): save boot location into $boot_loc env.
Marc Reilly
marc at cpdesign.com.au
Tue Jan 11 05:34:35 EST 2011
Hi Sascha,
> > +
> > +#if defined(CONFIG_ARCH_IMX25) || defined(CONFIG_ARCH_IMX35)
> > +static int imx_boot_save_loc(void)
> > +{
> > + const char *bootloc = NULL;
> > + uint32_t reg;
> > +
> > + reg = readl(IMX_CCM_BASE + CCM_RCSR);
> > +
> > + switch ((reg >> CCM_RCSR_MEM_CTRL_SHIFT) & 0x3) {
> > + case 0x03: /* SD/MMC, I2C, SPI is the source */
> > + bootloc = "expansion";
> > + break;
> > + case 0x01: /* NAND is the source */
> > + bootloc = "nand";
> > + break;
> > + case 0x00: /* NOR, OneNand is the source */
> > + bootloc = "weim";
> > + break;
> > + default:
> > + break;
> > + }
>
> This is not exactly what I meant. Your original "nor" and "mmc" strings
> were ok. The boards in the tree do not support booting from eeproms (am
> I wrong?),
I don't think any existing boards have the hardware, although I think barebox
could handle it from a SW point of view. From memory the only source not
copied by out the boot rom is NOR.
> so bootloc has the correct value for the boards in the tree.
> Now with this patch we have a situation that when somebody adds a board
> which can boot from eeprom, he will update this function and "expansion"
> will become "mmc" or "eeprom" breaking your environment scripts.
I'll do another round where I handle all of them.. (like I should have done
before :)
nor onenand nand mmc prom_i2c prom_spi -- do these names sound ok for
everyone?
>
> > +
> > + if (bootloc) {
> > + setenv("boot_loc", bootloc);
> > + export("boot_loc");
> > + }
>
> I just asked two collegues about the meaning of a boot_location variable
> and they both said this would be the variable where Linux should be
> booted from.
Isn't that already kernel_loc?
> Maybe barebox_location is a better name?
Then how about boot_source? (or boot_src). Or boot_media? These seem to me to
be a better fit, but I don't have any colleagues to bounce them off :)
I'm also happy with barebox_loc, so no dramas.
>
> I already took the first two patches, so you don't have to resend them.
Just to check - did you take from v1 or v2? in v2 For the second patch in V2 I
also added the MEM_TYPE_SHIFT defines..
Cheers
Marc
More information about the barebox
mailing list