[U-Boot] [PATCH] powerpc/p1010rdb-pb: add support for p1010rdb-pb board
Scott Wood
scottwood at freescale.com
Wed Sep 4 17:56:32 CEST 2013
On Thu, 2013-08-29 at 06:10 -0500, Liu Shengzhou-B36685 wrote:
> > -----Original Message-----
> > From: Wood Scott-B07421
> > Sent: Wednesday, August 14, 2013 8:35 AM
> > To: Liu Shengzhou-B36685
> > Cc: u-boot at lists.denx.de
> > Subject: Re: [U-Boot] [PATCH] powerpc/p1010rdb-pb: add support for p1010rdb-pb
> > board
> >
> > > struct law_entry law_table[] = {
> > > -#ifndef CONFIG_SDCARD
> > > SET_LAW(CONFIG_SYS_FLASH_BASE_PHYS, LAW_SIZE_32M, LAW_TRGT_IF_IFC),
> > > SET_LAW(CONFIG_SYS_CPLD_BASE_PHYS, LAW_SIZE_128K, LAW_TRGT_IF_IFC),
> > > SET_LAW(CONFIG_SYS_NAND_BASE_PHYS, LAW_SIZE_1M, LAW_TRGT_IF_IFC),
> > > -#endif };
> >
> > If this is applicable to the current board as well (is that P1010RDB-PA?), then
> > it isn't related to adding PB support and thus belongs in a separate patch.
> >
> As P1010RDB-PA will no longer be supported officially,
Why? Don't confuse Freescale supporting the board with U-Boot
supporting the board.
> but we still keep previous code for P1010RDB-PA.
> will add some description for P1010RDB-PA in commit message.
I don't see how this answers my question.
> > > +uint pin_mux;
> > This is too generic for a global variable. Does it even need to be global?
>
> Will rename to "static uint sd_ifc_mux", need to be global for invoking in several different functions.
If it's static, it's not global.
> > > +#if defined(CONFIG_P1010RDB) && defined(DEBUG)
> > > void cpld_show(void)
> > > {
> > > struct cpld_data *cpld_data = (void *)(CONFIG_SYS_CPLD_BASE);
> > >
> > > - printf("CPLD: V%x.%x PCBA: V%x.0\n",
> > > - in_8(&cpld_data->cpld_ver) & 0xF0,
> > > - in_8(&cpld_data->cpld_ver) & 0x0F,
> > > - in_8(&cpld_data->pcba_ver) & 0x0F);
> >
> > Why are you removing this? Where is cpld_show() called?
> >
> previous code for debug, actually no longer needed, will remove cpld_show().
Make such cleanup a separate patch.
> > > @@ -246,6 +446,16 @@ void fdt_del_sdhc(void *blob)
> > > }
> > > }
> > >
> > > +void fdt_del_ifc(void *blob)
> > > +{
> > > + int nodeoff = 0;
> > > +
> > > + while ((nodeoff = fdt_node_offset_by_compatible(blob, 0,
> > > + "fsl,ifc")) >= 0) {
> > > + fdt_del_node(blob, nodeoff);
> > > + }
> > > +}
> >
> > Is this PB-specific? If no, why is it in this patch? If not, why isn't the
> > caller guarded by the PB ifdef?
> >
> for both PA and PB, this patch also tune for PA(though PA no longer be supported officially).
Why is it in this patch?
> > > +
> > > +U_BOOT_CMD(
> > > + mux, 2, 0, pin_mux_cmd,
> > > + "configure multiplexing pin for IFC/SDHC bus in runtime",
> > > + "bus_type (e.g. mux sdhc)"
> > > +);
> >
> > Are you sure this is a good idea? What happens to the drivers using said
> > hardware at the time? Granted they should be idle when not running a command
> > that actively uses them, but still... Usually we use hwconfig for this sort of thing.
>
> The patch supports two ways simultaneously:
> 1) mux command: for temporary use case in runtime for accessing IFC and SDHC without reboot,
> this way is very useful in practice and in some test cases.
> 2) hwconfig: for long-term use case.
This should be a separate patch from basic board support.
> > > -#define CONFIG_SYS_DDR_MODE_2_800 0x8000c000
> > > +#define CONFIG_SYS_DDR_MODE_1_800 0x00441420
> > > +#define CONFIG_SYS_DDR_MODE_2_800 0x00000000
> > > #define CONFIG_SYS_DDR_INTERVAL_800 0x0C300100
> > > -#define CONFIG_SYS_DDR_WRLVL_CONTROL_800 0x8655A608
> > > +#define CONFIG_SYS_DDR_WRLVL_CONTROL_800 0x8675f608
> >
> > Shouldn't this be ifdeffed by the board revision?
>
> No, this is for both PA and PB. old parameters were not the optimal,
> will add some description for P1010RDB-PA in commit message.
Separate patch.
-Scott
More information about the U-Boot
mailing list