[U-Boot] [PATCH 1/6] h2200: Add support for iPAQ h2200

Marek Vasut marex at denx.de
Sat Sep 22 20:21:55 CEST 2012


Dear Łukasz Dałek,

> On 22.09.2012 20:00, Marek Vasut wrote:
> > Dear Łukasz Dałek,
> > 
> >> On 22.09.2012 19:04, Marek Vasut wrote:
> >>> Dear Łukasz Dałek,
> >>> 
> >>>> On 19.09.2012 23:02, Marek Vasut wrote:
> >>>>>> and at the offset
> >>>>>> + * 0x40 ascii characters 'ECEC', secondly 1st stage
> >>>>>> + * loads code from flash into SDRAM at address 0xa0040000
> >>>>>> + * so all instructions which reinitializes memory
> >>>>>> + * controller have to be disabled.
> >>>>>> + */
> >>>>>> +
> >>>>>> +static inline void writelrb(uint32_t val, uint32_t addr)
> >>>>> 
> >>>>> Replace this with clrsetbits_le32()
> >>>> 
> >>>> I've copied writelrb and pxa2xx_dram_init from pxa2xx.c
> >>>> and I think there is a reason why it's done that way and not by
> >>>> clrsetbits_le32. But if you insist I can replace all calls to writelrb
> >>>> by clrsetbits.
> >>> 
> >>> And can you elaborate on the reason please?
> >>> 
> >>> (hint: clrsetbits() wasn't there by the time)
> >> 
> >> I don't know what was the reason. I didn't change becuse I didn't
> >> want to break it.
> > 
> > If you have time, replace it with clrsetbits() please ... in the original
> > file.
> 
> In arch/arm/cpu/pxa/pxa2xx.c?

Yes, and you don't need the copy of it now.

> >>>>>> +{
> >>>>>> +	writel(val, addr);
> >>>>>> +	asm volatile("" : : : "memory");
> >>>>>> +	readl(addr);
> >>>>>> +	asm volatile("" : : : "memory");
> >>>>>> +}
> >>>>>> +
> >>>>>> +static void h2200_pxa2xx_dram_init(void)
> >>>>> 
> >>>>> Why do you duplicate it ?!
> >>>>> 
> >>>>> [...]
> >>>> 
> >>>> Because code in pxa2xx.c disable and then re-enable memory.
> >>>> And u-boot is executed from memory (1st stage bootloder
> >>>> copied it there).
> >>> 
> >>> So don't reinit the memory at all, just skip this whole part.
> >> 
> >> 1st stage loader doesn't init everything (for example MSC).
> > 
> > So I checked ... every board calls the dram init on it's own in
> > dram_init() ... so just don't do that.
> 
> Do what? Don't call modified pxa2xx_dram_init?

What exactly do you need to do ? What registers do you need to set ? How come 
the bootloader kick dram in, but won't configure MSC ?

Split out the MSC config and memory config maybe ?

> >>>>> +
> >>>>> +# define CONFIG_USB_ETHER		1
> >>>>> +# define CONFIG_USBNET_DEV_ADDR		"de:ad:be:ef:00:01"
> >>>>> +# define CONFIG_USBNET_HOST_ADDR	"de:ad:be:ef:00:02"
> >>>>> Definitelly not, any mac address setting should not be present, Joe ?
> >>>> 
> >>>> So tell me how should I specify mac addresses? By EXTRA_ENV_SETTINGS?
> >>> 
> >>> Joe explained it, your adapter doesn't carry it's own mac?
> >> 
> >> No.
> > 
> > Then leave it in ?
> 
> leave CONFIG_USBNET_DEV_ADDR...?
> 
> Łukasz Dałek

Best regards,
Marek Vasut


More information about the U-Boot mailing list