[PATCH v2 3/3] imx(25,35): save boot location into $boot_loc env.

Sascha Hauer s.hauer at pengutronix.de
Tue Jan 11 06:32:39 EST 2011


On Tue, Jan 11, 2011 at 09:34:35PM +1100, Marc Reilly wrote:
> 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 :)

Great. That's a good way to end this discussion with everyone being
satisfied ;)

> 
> nor onenand nand mmc prom_i2c prom_spi -- do these names sound ok for 
> everyone?

I agree with Eric about the prefixes.

> 
> > 
> > > +
> > > +	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 :)

boot_source was my first idea aswell and I already asked my collegues
about it. For them boot_source and boot_location have the same meaning.

> I'm also happy with barebox_loc, so no dramas.

ok, then lets go for it.

> 
> > 
> > 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..

Oh, I took v1 I guess. I didn't realize they differ.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list