Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 3 Apr 2019 03:42:40 -0700 (PDT)
From:      "Rodney W. Grimes" <freebsd-rwg@gndrsh.dnsmgr.net>
To:        Daniel Braniss <danny@cs.huji.ac.il>
Cc:        "Rodney W. Grimes" <freebsd-rwg@gndrsh.dnsmgr.net>, Ian Lepore <ian@freebsd.org>, ticso@cicely.de, "freebsd-arm@freebsd.org" <arm@freebsd.org>
Subject:   Re: network booting allwinner(nanopi)
Message-ID:  <201904031042.x33Ageqk026771@gndrsh.dnsmgr.net>
In-Reply-To: <B1FF704A-C13E-4FBF-BA38-ADC444BD114C@cs.huji.ac.il>

next in thread | previous in thread | raw e-mail | index | archive | help
> > On 3 Apr 2019, at 11:53, Rodney W. Grimes <freebsd-rwg@gndrsh.dnsmgr.ne=
t> wrote:
> >=20
> >> On Mon, 2019-04-01 at 08:52 +0300, Daniel Braniss wrote:
> >>>> On 29 Mar 2019, at 22:36, Bernd Walter <ticso@cicely7.cicely.de>
> >>>> wrote:
> >>>>=20
> >>>> On Fri, Mar 29, 2019 at 09:34:30AM +0300, Daniel Braniss wrote:
> >>>>> Hi,
> >>>>> with last weeks head (r345465),
> >>>>> I tried - again - to netboot and the old way no longer works
> >>>>> 	usb start
> >>>>> 	setenv loaderdev net
> >>>>> 	boot
> >>>>>=20
> >>>>> now it complains allot:-) but no dice.
> >>>>> So, is there a way that netboot works?
> >>>>=20
> >>>> On a Pi1 project I put the following in loader.conf:
> >>>> currdev=3D"net0"
> >>>> This requires the loader.conf to be on the SD card however.
> >>>> I used an UFS partition for that, but I assume that the msdosfs
> >>>> partition would work too as the loader can read that filesystem
> >>>> as well.
> >>>>=20
> >>>> --=20
> >>>> B.Walter <bernd@bwct.de> http://www.bwct.de
> >>>> Modbus/TCP Ethernet I/O Baugruppen, ARM basierte FreeBSD Rechner
> >>>> uvm.
> >>>=20
> >>> well, this is what I get:
> >>> U-Boot SPL 2019.01 (Mar 24 2019 - 10:15:37 +0200)
> >>> DRAM: 512 MiB
> >>> Trying to boot from MMC1
> >>>=20
> >>>=20
> >>> U-Boot 2019.01 (Mar 24 2019 - 10:15:37 +0200) Allwinner Technology
> >>>=20
> >>> CPU:   Allwinner H3 (SUN8I 1680)
> >>> Model: FriendlyARM NanoPi NEO
> >>> DRAM:  512 MiB
> >>> MMC:   SUNXI SD/MMC: 0
> >>> Loading Environment from FAT... *** Warning - bad CRC, using default
> >>> environment
> >>>=20
> >>> In:    serial
> >>> Out:   serial
> >>> Err:   serial
> >>> Net:   phy interface0
> >>>=20
> >>> Error: ethernet@1c30000 address not set.
> >>> eth-1: ethernet@1c30000
> >>> starting USB...
> >>> USB0:   USB EHCI 1.00
> >>> USB1:   USB OHCI 1.0
> >>> USB2:   USB EHCI 1.00
> >>> USB3:   USB OHCI 1.0
> >>> scanning bus 0 for devices... 1 USB Device(s) found
> >>> scanning bus 2 for devices... 1 USB Device(s) found
> >>>      scanning usb for storage devices... 0 Storage Device(s) found
> >>> Hit any key to stop autoboot:  2 =08=08=08 0
> >>> =3D> usb start
> >>> =3D> boot=08 =08=08 =08=08 =08=08 =08setn=08 =08env loaderdev net
> >>> =3D> boot
> >>> switch to partitions #0, OK
> >>> mmc0 is current device
> >>> Scanning mmc 0:1...
> >>> Found U-Boot script /boot.scr
> >>> 199 bytes read in 1 ms (194.3 KiB/s)
> >>> ## Executing script at 43100000
> >>> 375752 bytes read in 19 ms (18.9 MiB/s)
> >>> ## Starting application at 0x42000000 ...
> >>> Consoles: U-Boot console =20
> >>> Compatible U-Boot API signature found @0x5bf595c8
> >>>=20
> >>> FreeBSD/armv7 U-Boot loader, Revision 1.2
> >>>=20
> >>> DRAM: 512MB
> >>> Number of U-Boot devices: 1
> >>> U-Boot env: loaderdev=3D'net'
> >>> Found U-Boot device: disk
> >>> Found U-Boot device: net
> >>> Booting from net0:
> >>> net_probe: no network devices found, maybe not enumerated yet..?
> >>> netboot: couldn't probe uboot_eth0
> >>> net_open: netif_open() failed
> >>> Startup error in /boot/lua/loader.lua:
> >>> LUA ERROR: cannot open /boot/lua/loader.lua: device not configured.
> >>>=20
> >>> net_probe: no network devices found, maybe not enumerated yet..?
> >>> netboot: couldn't probe uboot_eth0
> >>> net_open: netif_open() failed
> >>> net_probe: no network devices found, maybe not enumerated yet..?
> >>> netboot: couldn't probe uboot_eth0
> >>> net_open: netif_open() failed
> >>> net_probe: no network devices found, maybe not enumerated yet..?
> >>> netboot: couldn't probe uboot_eth0
> >>> net_open: netif_open() failed
> >>> net_probe: no network devices found, maybe not enumerated yet..?
> >>> netboot: couldn't probe uboot_eth0
> >>> net_open: netif_open() failed
> >>> net_probe: no network devices found, maybe not enumerated yet..?
> >>> netboot: couldn't probe uboot_eth0
> >>> net_open: netif_open() failed
> >>> net_probe: no network devices found, maybe not enumerated yet..?
> >>> netboot: couldn't probe uboot_eth0
> >>> net_open: netif_open() failed
> >>> net_probe: no network devices found, maybe not enumerated yet..?
> >>> netboot: couldn't probe uboot_eth0
> >>> net_open: netif_open() failed
> >>> net_probe: no network devices found, maybe not enumerated yet..?
> >>> netboot: couldn't probe uboot_eth0
> >>> net_open: netif_open() failed
> >>> net_probe: no network devices found, maybe not enumerated yet..?
> >>> netboot: couldn't probe uboot_eth0
> >>> net_open: netif_open() failed
> >>> can't load 'kernel'
> >>>=20
> >>> Type '?' for a list of commands, 'help' for more detailed help.
> >>> loader>
> >>>=20
> >>=20
> >> Modern u-boot can only netboot using efi.  Doing it with efi requires
> >> that all your config be set in the dhcpd, there is no way to define the
> >> server or rootpath on a per-arm-system basis other than by hardcoding
> >> the mac address of each arm system in the dhcpd config on the server.=
=20
> >> In the uboot env, 'setenv boot_targets dhcp', and your dhcpd.conf needs
> >> an entry something like this:
> >>=20
> >> host rpi2 {
> >>  hardware ethernet b8:27:eb:e9:04:e8;
> >>  option host-name "rpi2";
> >>  next-server 172.22.42.240;
> >>  filename "/rpi2/boot/loader.efi";
> >>  option root-path "172.22.42.240:/rpi2/";
> >> }
> >>=20
> >> If your dhcpd and tftp servers are the same, you probably don't need
> >> the next-server option.  If you're not using nfsroot, you probably
> >> don't need the root-path option.
> >>=20
> >> -- Ian
> >=20
> > What work needs to be done to take this to the next step
> > of supporting the iPXE style multiboot environment so you
> > do not have to do this per machine dhcpd hackery and can
> > set root-path via iPXE menu.  I have this working in a
> > x86 platform situation, but would love to expand it into
> > the arm world.
> >=20
> > Thanks for any insight,
>=20
> currently what I am missing is how to tel the loader to do the dhcp reque=
st,
> and that?s not working because it can?t find the network interface.
> in my case I have the PXE/iPXE stuff working.

I can get paste the first round of dhcp, where I detect that
this is a PXE asking for a arm payload, and I hand it an iPXE
executable, which sets things up and chains to pxeloader,
which seems to ignore the key=3Dvalue stuff that multiboot
compliance should be processing.

I have diskless booted Linux on my Pi's this way, would love
to have the BSD side working too.

> thanks,
> 	danny
> > Rod Grimes                                                 rgrimes@free=
bsd.org
--=20
Rod Grimes                                                 rgrimes@freebsd.=
org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201904031042.x33Ageqk026771>