From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeroen Hofstee Date: Wed, 24 Sep 2014 21:27:17 +0200 Subject: [U-Boot] ARM: rpi_b: query internal MAC address from firmware In-Reply-To: <1411530303-23893-1-git-send-email-swarren@wwwdotorg.org> References: <1411530303-23893-1-git-send-email-swarren@wwwdotorg.org> Message-ID: <54231B15.3020103@myspectrum.nl> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hello Stephan, On 24-09-14 05:45, Stephen Warren wrote: > The built-in SMSC 95xx chip doesn't know its own MAC address. Instead, > we must query it from the VC firmware; it's probably encoded in fuses > on the BCM2835. > > Signed-off-by: Stephen Warren > --- > This depends on "usb: dwc2: Add driver for Synopsis DWC2 USB IP block > from Marek Vasut". > > arch/arm/include/asm/arch-bcm2835/mbox.h | 14 ++++++++++++++ > board/raspberrypi/rpi_b/rpi_b.c | 26 ++++++++++++++++++++++++++ > include/configs/rpi_b.h | 1 + > 3 files changed, 41 insertions(+) > [snip] > > +int misc_init_r(void) > +{ > + ALLOC_ALIGN_BUFFER(struct msg_get_mac_address, msg, 1, 16); > + int ret; > + > + BCM2835_MBOX_INIT_HDR(msg); > + BCM2835_MBOX_INIT_TAG(&msg->get_mac_address, GET_MAC_ADDRESS); > + > + ret = bcm2835_mbox_call_prop(BCM2835_MBOX_PROP_CHAN, &msg->hdr); > + if (ret) { > + printf("bcm2835: Could not query MAC address\n"); > + /* Ignore error; not critical */ > + return 0; > + } > + > + eth_setenv_enetaddr("usbethaddr", msg->get_mac_address.body.resp.mac); > + > + return 0; > +} > + Normally this should be within a check for if (!getenv("usbethaddr")). Any reason to deviate from that? Regards, Jeroen