[U-Boot] [PATCH 1/2] mx6: Add initial support for the Hummingboard solo

Fabio Estevam festevam at gmail.com
Fri Jan 3 12:18:39 CET 2014


Hi Stefano,

On Fri, Jan 3, 2014 at 8:04 AM, Stefano Babic <sbabic at denx.de> wrote:

> Indeed - I will push only fixes for 2014.01. However, new board could
> flow before release into my -next branch.

Thanks for your review.  Ok, understood.

>> +
>> +This file contains information for the port of U-Boot to the Hummingboard.
>> +
>> +For more details about Hummingboard, please refer to:
>> +http://cubox-i.com
>
> I read the pages, but it is misleading. cubox-i.com reports information
> only about the cubox-i, and this seems another hardware. I know this is
> not a problem of the patch, but maybe it is better to refer only to the
> wiki page
> http://imx.solid-run.com/wiki/index.php?title=Carrier-One_Hardware (I
> assume that Hummingbird = Carrier-One).

Yes, hummingboard is the new name for the carrier-one board.

Maybe Rabeeh could update the website.

>> +Building U-boot for Hummingboard
>> +--------------------------------
>> +
>> +To build U-Boot for the Hummingboard Solo version:
>> +
>> +$ make hummingboard_solo_config
>> +$ make
>> +
>> +Flashing U-boot into the SD card
>> +--------------------------------
>> +
>> +- After the 'make' command completes, the generated 'u-boot.imx' binary must be
>> +flashed into the SD card:
>> +
>> +$ sudo dd if=u-boot.imx of=/dev/mmcblk0 bs=1k seek=1; sync
>
> This is the generic description valid for most iMXes. We have a better
> and detailed description in doc/README.imximage. I think we should add a
> reference to doc/README.imximage.

Will add a reference to doc/README.imximage, thanks.

>
>> +
>> +(Note - the SD card node may vary, so adjust this as needed).
>> +
>> +- Insert the micro SD card into the slot located in the bottom of the board
>> +
>> +- Connect a 3.3V USB to serial converter cable to the host PC. The MX6 UART
>> +signals are available in the 26 pin connector as shown at:
>> +http://imx.solid-run.com/wiki/index.php?title=Carrier-One_Hardware
>> +(Check for "26 pin header layout").
>
> ok, this is clear. Maybe it will help if we add a warning to use a 3.3V
> converter to access the UART's pins. It is your choice: I think that the
> HW description on the site should be improved most as the documentation
> here, but some good hints cannot disturb ;-)

Got it. Rabeeh on Cc could probably help updating the website.

>> +int dram_init(void)
>> +{
>> +     gd->ram_size = ((phys_size_t)CONFIG_DDR_MB * 1024 * 1024);
>
> On the documentation, I read that the Carrier-One HW has 2GB RAM.
> http://imx.solid-run.com/wiki/index.php?title=Carrier-One_Hardware#Detailed_hardware_specification
>
> Why is only 512MB supported ? Or the solo has only 512MB and in the
> DUAl/QUAD 2GB ?

The solo variant of humming board has only 512MB.

>> +static void setup_iomux_enet(void)
>> +{
>> +     imx_iomux_v3_setup_multiple_pads(enet_pads, ARRAY_SIZE(enet_pads));
>> +
>> +     /*
>> +      * Reset AR8035 PHY. Since it runs 25MHz reference clock, it
>> +      * requires two resets.
>
> Only for my knowledge: why do we require twice in case of 25 Mhz source
> ? Where is it described ?

Jon or Rabeeh, could you please comment?

> We have enable_fec_anatop_clock() (same function with same name !) in
> arch/arm/cpu/armv7/mx6/clock.c. The function is *identical* with the
> exception that the first two bits of pll_enet are cleared
>
>         reg &= 0xfffffffc; /* Set PLL to generate 25MHz */
>
> We can sure avoid duplication, adding a function parameter to the
> original function. It is used by now only by mx6slevk board.

Agreed.

Will Otavio's patch (http://patchwork.ozlabs.org/patch/301916/) be
applied into your master branch or only for next?

Then I could extend the enable_fec_anatop_clock() function as you
suggested and avoid the code duplication.

>> +
>> +int board_eth_init(bd_t *bis)
>> +{
>> +     int ret;
>> +     struct iomuxc_base_regs *const iomuxc_regs =
>> +                     (struct iomuxc_base_regs *)IOMUXC_BASE_ADDR;
>> +     struct anatop_regs __iomem *anatop =
>> +                     (struct anatop_regs __iomem *)ANATOP_BASE_ADDR;
>> +     s32 timeout = 100000;
>> +
>> +     enable_fec_anatop_clock();
>> +     /* set gpr1[21] */
>> +     clrsetbits_le32(&iomuxc_regs->gpr[1], 0, (1 << 21));
>
> Change these two lines using defines (defines for GPR1 are missing in
> imx-regs.h, please add them).

Will do.

>
>> +
>> +     while (timeout--) {
>
> I think board_eth_init() is called after relocation, and then tiemrs are
> available. Sure that udelay does not work here ?

Will try udelay.

>
>> +             if (readl(&anatop->pll_enet) & BM_ANADIG_PLL_ENET_LOCK)
>> +                     break;
>> +     }
>
> It is not clear to me why we need this. The setup of the clock is done
> by enable_fec_anatop_clock(), why do we need to check again here ?

Good point. Will check it.

>> +Active  arm         armv7          mx6         solidrun        hummingboard        hummingboard_solo                           hummingboard:IMX_CONFIG=board/solidrun/hummingboard/hummingboard_solo.cfg,MX6S,DDR_MB=512
>
> We need also the Maintainer's address, you or Jon.

Ok, will add Jon's email.

>> +#define MACH_TYPE_HUMMINGBOARD               4773
>> +#define CONFIG_MACH_TYPE             MACH_TYPE_HUMMINGBOARD
>
> You can drop CONFIG_MACH_TYPE if it is used only here.

Ok, will do it.

>> +#define CONFIG_FEC_XCV_TYPE          RGMII
>> +#define CONFIG_ETHPRIME                      "FEC"
>
> Really required ? I do not see a second ethernet.

Ok, will remove CONFIG_ETHPRIME.

Regards,

Fabio Estevam


More information about the U-Boot mailing list