On Thu, Oct 03, 2019 at 10:27:12AM -0300, Fabio Estevam wrote: > Hi Patrick, > > [Adding Troy, NXP U-Boot folks and Stefano] > > Thanks for your contribution.
Thanks for looking at it! > On Tue, Oct 1, 2019 at 4:15 PM Patrick Wildt <[email protected]> wrote: > > > > This adds basic support for the Nitrogen8M board. It's based on > > the NXP i.MX8MQ and provides 2GB of memory. This code has been > > based on the i.MX8M EVK board support, and Boundary Devices' git > > repository. So far the eMMC and onboard Ethernet can be used to > > boot, with more device support yet to be implemented. Please > > note that this only supports the 2G version, with 1 rank bit, > > which is Boundary Devices' "nitrogen8m" defconfig as well. > > > > Signed-off-by: Patrick Wildt <[email protected]> > > > > > +/ { > > + model = "Boundary Devices i.MX8MQ Nitrogen8M"; > > + compatible = "boundary,imx8mq-nitrogen8m", "fsl,imx8mq"; > > + > > + chosen { > > + bootargs = "console=ttymxc0,115200 > > earlycon=ec_imx6q,0x30860000,115200"; > > + }; > > This earlycon part should be removed. Sure, ok. > > + /* P1 400mts 1D */ > > + .drate = 400, > > + .fw_type = FW_1D_IMAGE, > > + .fsp_cfg = lpddr4_fsp1_cfg, > > + .fsp_cfg_num = ARRAY_SIZE(lpddr4_fsp1_cfg), > > + }, > > +#if 0 > > No if 0 please. That was taken from Boundary Devices directly, I'll get rid of it. > > +static int setup_fec(void) > > +{ > > + struct iomuxc_gpr_base_regs *gpr = > > + (struct iomuxc_gpr_base_regs *)IOMUXC_GPR_BASE_ADDR; > > + > > + /* Pull PHY into reset */ > > + gpio_request(IMX_GPIO_NR(1, 9), "fec1_rst"); > > + gpio_direction_output(IMX_GPIO_NR(1, 9), 0); > > + > > + /* Set bootstrap pins for AR8035 */ > > + gpio_request(IMX_GPIO_NR(1, 26), "fec1_rd0"); > > + gpio_direction_output(IMX_GPIO_NR(1, 26), 0); > > + gpio_request(IMX_GPIO_NR(1, 27), "fec1_rd1"); > > + gpio_direction_output(IMX_GPIO_NR(1, 27), 0); > > + gpio_request(IMX_GPIO_NR(1, 28), "fec1_rd2"); > > + gpio_direction_output(IMX_GPIO_NR(1, 28), 0); > > + gpio_request(IMX_GPIO_NR(1, 29), "fec1_rd3"); > > + gpio_direction_output(IMX_GPIO_NR(1, 29), 1); > > + gpio_request(IMX_GPIO_NR(1, 24), "fec1_rx_ctl"); > > + gpio_direction_output(IMX_GPIO_NR(1, 24), 0); > > + gpio_request(IMX_GPIO_NR(1, 25), "fec1_rxc"); > > + gpio_direction_output(IMX_GPIO_NR(1, 25), 1); > > + imx_iomux_v3_setup_multiple_pads(fec1_strap_pads, > > + ARRAY_SIZE(fec1_strap_pads)); > > There is DM support from the FEC, so no need to have all this board code. I should have added a better comment for this whole block I think, sorry. This does not bootrstrap the FEC, but it bootstrap the Phy. The thing is that Boundary Devices configures the Phy by pulling the Ethernet TX/RX pins to specific modes. When the Phy is pulled from reset, it will sample those pins and configure itself based on the information. I don't think the FEC driver takes care of it, and I highly doubt it is supposed to take care of it. > > + > > + /* > > + * 9e (1e = 30) default .9 V > > + * 0.6V to 1.23V in 10 MV steps > > These commands look too cryptic. I agree. This code is taken from Boundary devices. I will try to find the datasheet for the controller and come up with something nicer. > > + */ > > + > > + /* Enable I2C1A, ARM/DRAM */ > > + i2c_write(I2C_MUX_ADDR, 1, 1, NULL, 0); > > + /* > > + * .6 + .40 = 1.00 > > + */ > > + val8 = 0x80 + 40; > > Please add defines for these values. Thanks! Patrick _______________________________________________ U-Boot mailing list [email protected] https://lists.denx.de/listinfo/u-boot

