[U-Boot] [PATCH 4/4] Added initial support for PRTLVT2-based boards.
David Jander
david.jander at protonic.nl
Fri Aug 20 12:22:18 CEST 2010
On Friday 20 August 2010 11:51:18 am Stefano Babic wrote:
> Hi David,
>
> in addition to Wolfgang's comments:
> > +static u32 system_rev;
> > +struct io_board_ctrl *mx51_io_board;
>
> Structure is not used, and probably does not match your board. You
> should drop it.
Ok, I was already wondering what this did here.... I'll just remove it.
> > +#define POUT_HS (PAD_CTL_DRV_HIGH | PAD_CTL_SRE_FAST)
> > +#define POUT_MS (PAD_CTL_DRV_MAX | PAD_CTL_SRE_FAST)
> > +#define POUT_LS (PAD_CTL_DRV_MEDIUM)
> > +#define PIN_HYS (PAD_CTL_HYS_ENABLE)
> > +#define PIN_HYS_PULL (PAD_CTL_HYS_ENABLE | PAD_CTL_PKE_ENABLE |
> > PAD_CTL_PUE_PULL) +#define PIN_HYS_KEEP (PAD_CTL_HYS_ENABLE |
> > PAD_CTL_PKE_ENABLE)
> > +#define PIO_OD (PIN_HYS_PULL | PAD_CTL_22K_PU |
> > PAD_CTL_ODE_OPENDRAIN_ENABLE | PAD_CTL_DRV_MEDIUM)
>
> Consider to put these defines in include/asm/arch-mx51/iomux.h. They
> could be usefult for other boards, too.
Hmmm. In that case they should have other names, and one should probably make
the set complete with all combinations, and I doubt it'll make sense anymore
then....
This subset of possibilities is too specific to our board I fear.
I had already been complaining about some seemingly arbitrary combinations of
IO-pad settings being used in SoC-driver code in the linux kernel. IMHO, one
should never choose a specific combination of settings without excactly
knowing it is electrically correct for that specific pin on that specific
board... not only because it works, but also from EMC considerations.
I also think, that in theory this would make the kernel board-specific in that
case... not something one would want I believe. For that reason, I keep
thinking that correct and thorough IO-pad setup specific for each board should
be done in the boot-loader.... never in the kernel.
OTOH, maybe one could come up with some commonly-used combinations... but
which ones?
> > + /* Raise the core frequency to 800MHz */
> > + /* printf("Core at 400 MHz!\n"); */
> > + /* writel(0x1, &mxc_ccm->cacrr); */
> > + writel(0x0, &mxc_ccm->cacrr);
>
> Comment is misleading. Remove what is not needed.
Sorry, I was too lazy to make a configuration option out of this... will fix
it.
> > + /* Setup other io's */
> > + for(t=0; other_io_conf[t].pin>=0; t++) {
>
> Add spaces when needed.
Ok.
> > +#ifdef BOARD_LATE_INIT
>
> Probably it is better (and in mx51evk, too) to remove the #ifdef,
> because we need to initialize the pmic, else some functionalities cannot
> work. It is mandatory that power_init is called.
I agree. I had always been "about to remove it" ;-)
> > diff --git a/board/Protonic/prtlvt2/prtlvt2.h
> > b/board/Protonic/prtlvt2/prtlvt2.h +#ifndef
> > __BOARD_FREESCALE_MX51_EVK_H__
> > +#define __BOARD_FREESCALE_MX51_EVK_H__
> > +
> > +#ifndef __ASSEMBLY__
> > +struct io_board_ctrl {
> > + u16 led_ctrl; /* 0x00 */
> > + u16 resv1[0x03];
> > + u16 sb_stat; /* 0x08 */
> > + u16 resv2[0x03];
> > + u16 int_stat; /* 0x10 */
> > + u16 resv3[0x07];
> > + u16 int_rest; /* 0x20 */
> > + u16 resv4[0x0B];
> > + u16 int_mask; /* 0x38 */
> > + u16 resv5[0x03];
> > + u16 id1; /* 0x40 */
> > + u16 resv6[0x03];
> > + u16 id2; /* 0x48 */
> > + u16 resv7[0x03];
> > + u16 version; /* 0x50 */
> > + u16 resv8[0x03];
> > + u16 id3; /* 0x58 */
> > + u16 resv9[0x03];
> > + u16 sw_reset; /* 0x60 */
> > +};
> > +#endif
>
> Is this structure really used ? I have not seen in code. Or does it come
> only from mx51evk ? You can remove the whole file, if it is not needed.
No idea what it does. It's copied from MX51EVK. I will try removing it.
Best regards,
--
David Jander
Protonic Holland.
More information about the U-Boot
mailing list