[U-Boot] [PATCH 3/5] net: sandbox: Convert sandbox mock eth driver to livetree
Simon Glass
sjg at chromium.org
Tue Jun 26 23:18:23 UTC 2018
Hi Joe,
On 26 June 2018 at 14:19, Joe Hershberger <joe.hershberger at ni.com> wrote:
> Use the dev_ functions to access DT properties.
>
> Also correct the reading of the fake MAC address. The format from the DT
> is u32s, so to accurately read the MAC from the DT, we need to cast each
> value to a u8.
>
> Signed-off-by: Joe Hershberger <joe.hershberger at ni.com>
> ---
>
> drivers/net/sandbox.c | 15 +++++++++++----
> 1 file changed, 11 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/sandbox.c b/drivers/net/sandbox.c
> index b34712bd06..d5a30c05b8 100644
> --- a/drivers/net/sandbox.c
> +++ b/drivers/net/sandbox.c
> @@ -56,13 +56,20 @@ void sandbox_eth_skip_timeout(void)
> static int sb_eth_start(struct udevice *dev)
> {
> struct eth_sandbox_priv *priv = dev_get_priv(dev);
> + /* The DT integers are 32-bits */
> + const u32 mac[ARP_HLEN];
>
> debug("eth_sandbox: Start\n");
>
> - fdtdec_get_byte_array(gd->fdt_blob, dev_of_offset(dev),
> - "fake-host-hwaddr", priv->fake_host_hwaddr,
> - ARP_HLEN);
> + if (dev_read_u32_array(dev, "fake-host-hwaddr", mac, ARP_HLEN)) {
> + printf("'fake-host-hwaddr' is missing from the DT\n");
> + return -EINVAL;
> + }
This is not equivalent - I think you need a dev_read_u8_array() or similar.
> + for (int i = 0; i < ARP_HLEN; i++)
> + priv->fake_host_hwaddr[i] = (uint8_t)mac[i];
> +
> priv->recv_packet_buffer = net_rx_packets[0];
> +
> return 0;
> }
>
> @@ -204,7 +211,7 @@ static int sb_eth_ofdata_to_platdata(struct udevice *dev)
> {
> struct eth_pdata *pdata = dev_get_platdata(dev);
>
> - pdata->iobase = devfdt_get_addr(dev);
> + pdata->iobase = dev_read_addr(dev);
> return 0;
> }
>
> --
> 2.11.0
>
Regards,
Simon
More information about the U-Boot
mailing list