[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