From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2] arm: mxs: add support for I2SE's Duckbill boards
Date: Sun, 13 Dec 2015 23:45:41 +0100 [thread overview]
Message-ID: <201512132345.42059.marex@denx.de> (raw)
In-Reply-To: <1616113.RToidEMaQO@kerker>
On Sunday, December 13, 2015 at 10:53:30 PM, Michael Heimpold wrote:
> Hi Marek,
Hi!
> thanks for your review. My comments inline below.
np :)
> Am Sunday 13 December 2015, 16:40:14 schrieb Marek Vasut:
> > On Sunday, December 13, 2015 at 12:09:58 PM, Michael Heimpold wrote:
> >
> > Commit message describing the board would be real nice.
>
> Ok, I'll add it in v3.
>
> [...]
>
> > > #define MACH_TYPE_COLIBRI_T30 4493
> > > #define MACH_TYPE_APALIS_T30 4513
> > > #define MACH_TYPE_OMAPL138_LCDK 2495
> > >
> > > +#define MACH_TYPE_DUCKBILL 4754
> >
> > This board is still using mach id to boot kernel ? Wow ...
>
> Not really. But I looked at other iMX28 boards and all still define such
> a MACH_TYPE. For historic reasons, only?
Yes, they are (probably) capable of booting some obscure pre-DT kernel versions.
> However, I think it does not hurt,
> so some customers who think they still need to go with old Freescale kernel
> could use this...
OK
> [...]
>
> > > +
> > > +#ifdef CONFIG_CMD_MMC
> >
> > #ifdef[SPACE] please, not [TAB]
>
> I heavily used m28evk and mx28evk as reference, so I thought
> that tab is the preferred style, but I can change, have no strong opinion
> on this...
Space please ;-)
> > [...]
> >
> > > +void mx28_adjust_mac(int dev_id, unsigned char *mac)
> > > +{
> > > + mac[0] = 0x00;
> > > + mac[1] = 0x01;
> > > + mac[2] = 0x87;
HERE
> > > +}
> > > +#endif
> > > +
> > > +#ifdef CONFIG_OF_BOARD_SETUP
> > > +int ft_board_setup(void *blob, bd_t *bd)
> > > +{
> > > + uint8_t enetaddr[6];
> > > + u32 mac = 0;
> > > +
> > > + enetaddr[0] = 0x00;
> > > + enetaddr[1] = 0x01;
> > > + enetaddr[2] = 0x87;
HERE
> > Looks like there are two copies of the same OUI ?
>
> I'm not sure, whether I understand the question correctly?
See the "HERE" markers above, you have two copies of the same thing in
the code for whatever reason.
> All Duckbill devices only have one Ethernet interface. For this
> interface the MAC is programmed into the first OTP fuse register
> as this seems to be best practise on this platform. Since this register
> is only 24 bit, the first two byte must be adjusted by board code.
> The "Duckbill SPI" is an evaluation platform for QCA7000 powerline
> chip. On this devices, the second OTP register is programmed with
> a second MAC adress, but this address must be passed via DT to kernel.
> Both addresses usually have the same OUI, thats correct.
See above, it's just a nitpick.
> > > +#ifdef CONFIG_MXS_OCOTP
> > > + /* only Duckbill SPI has a MAC for the QCA7k */
> > > + fuse_read(0, 1, &mac);
> > > +#endif
> > > +
> > > + if (mac != 0) {
> > > + enetaddr[3] = (mac >> 16) & 0xff;
> > > + enetaddr[4] = (mac >> 8) & 0xff;
> > > + enetaddr[5] = mac & 0xff;
> > > +
> > > + fdt_find_and_setprop(blob,
> > > +
> > > "/apb at 80000000/apbh at 80000000/ssp at 80014000/ethernet at 0", +
> > >
> > > "local-mac-address", enetaddr, 6, 1);
> >
> > You can use aliases {} to locate the ethernet node here.
>
> "can" == "should" ? :-)
Yes, it's a good idea. It's also how U-Boot patches $ethaddr into the
DT, it uses the aliases to do that.
> I'll have a look, but AFAIR in linux' imx28.dtsi, ethernet1 alias is
> already used for mac1. I'm not sure, if I can redefine it in board DT
> to point to SPI node...
You can always define ethernet2 .
> [...]
>
> > > +
> > > + /* MX28_PAD_LCD_D17__GPIO_1_17: v1 = pull-down, v2 = pull-up */
> > > + system_rev =
> > > + gpio_get_value(MX28_PAD_LCD_D17__GPIO_1_17);
> >
> > Does gpio_get_value() always return 0/1 value ? I don't think so.
>
> Hm, on mxs this seems to be the case, and include/asm-generic/gpio.h
> tells this, too - but also tells, that this interface described there is
> deprecated? It seems that I do not see the forest for the trees looking
> for the API docu... Anyway, I would simply add !! to do the trick...
I think that's a good idea, I wouldn't depend on it returning 0/1 .
> [...]
>
> > > +/* FEC Ethernet on SoC */
> > > +#ifdef CONFIG_CMD_NET
> > > +#define CONFIG_FEC_MXC
> > > +#define CONFIG_NET_MULTI
> > > +#define CONFIG_MX28_FEC_MAC_IN_OCOTP
> > > +#define CONFIG_FEC_MXC_PHYADDR 1
> > > +#define IMX_FEC_BASE MXS_ENET0_BASE
> >
> > This IMX_FEC_BASE is definitelly unused on MXS.
>
> I use fecmxc_initialize in the board setup, not fecmxc_initialize_multi,
> and thus this define is required. However, I could switch to
> fecmxc_initialize_multi and the I could drop CONFIG_FEC_MXC_PHYADDR
> and IMX_FEC_BASE...
Oh I see. Whichever you prefer then.
> > > +#endif
> > > +
> > > +#define CONFIG_IPADDR 192.168.1.10
> > > +#define CONFIG_SERVERIP 192.168.1.1
> > > +#define CONFIG_NETMASK 255.255.255.0
> > > +#define CONFIG_GATEWAYIP 192.168.1.254
> >
> > Definitelly remove these, you should never ever hard-code these settings
> > into U-Boot.
>
> I don't understand. This are only default settings in case, U-Boot starts
> with an empty environment. Other boards do the same, so what's wrong here?
Other boards should not do that, that's the agreement AFAICT.
> > > +/* BOOTP options */
> > > +#define CONFIG_BOOTP_SUBNETMASK
> > > +#define CONFIG_BOOTP_GATEWAY
> > > +#define CONFIG_BOOTP_HOSTNAME
> >
> > DTTO
>
> These defines affect what is requested in the DHCP/BOOTP packet. I do not
> think, it can drop it.
Ah ok, you need that on your board. OK.
> > > +/* SPI */
> > > +#ifdef CONFIG_CMD_SPI
> > > +#define CONFIG_DEFAULT_SPI_BUS 2
> >
> > Add default CS please
>
> I think I'll prefer to drop the SPI block completely, no real usage.
Don't you use SPI for your ethernet device ?
> > > +#define CONFIG_DEFAULT_SPI_MODE SPI_MODE_0
> > > +#endif
> > > +
> > > +/* Boot Linux */
> > > +#define CONFIG_BOOTDELAY 1
> > > +#define CONFIG_BOOTFILE "zImage"
> >
> > Why don't you switch to fitImage ?
>
> I don't see a huge gain: zImage and DT are loaded from /boot on ext4
> filesystem, so customers can easily change both files without fiddling
> to create fit image...
On the other hand, there is no real integrity protection in zImage. That's
the real gain. Also, adding cryptographic support into the system is then
easy.
> > > +#define CONFIG_LOADADDR 0x42000000
> > > +#define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR
> > > +#define CONFIG_REVISION_TAG
> > > +#define CONFIG_SERIAL_TAG
> > > +#define CONFIG_OF_BOARD_SETUP
> > > +#define CONFIG_BOOT_RETRY_TIME 120 /* retry autoboot after
> >
> > 120 seconds */
> >
> > > +#define CONFIG_BOOT_RETRY_TIME_MIN 1 /* can go down to 1
second */
> > > +#define CONFIG_AUTOBOOT_KEYED
> > > +#define CONFIG_AUTOBOOT_PROMPT "Autobooting in %d seconds, " \
> > > + "press <c> to stop\n"
> > > +#define CONFIG_AUTOBOOT_DELAY_STR "\x63" /* allows retry after
retry
>
> time
>
> > How does this work ?
>
> Hardware misses a pull-up on debug uart Rx. Using autoboot feature prevents
> U-Boot to not stop the boot process because of a "ghost input" on serial
> line.
Eep.
> > > */ +#define CONFIG_AUTOBOOT_STOP_STR " " /* stop autoboot with
<Space>
> > > */ +#define CONFIG_RESET_TO_RETRY /* reset board to
retry
> >
> > booting */ +
> >
> > > [...]
>
> Thanks,
> Michael
next prev parent reply other threads:[~2015-12-13 22:45 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-13 11:09 [U-Boot] [PATCH v2] arm: mxs: add support for I2SE's Duckbill boards Michael Heimpold
2015-12-13 15:40 ` Marek Vasut
2015-12-13 21:53 ` Michael Heimpold
2015-12-13 22:45 ` Marek Vasut [this message]
2016-01-03 14:56 ` Stefano Babic
2016-01-03 20:44 ` Marek Vasut
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201512132345.42059.marex@denx.de \
--to=marex@denx.de \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.