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

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.net> 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,

currently what I am missing is how to tel the loader to do the dhcp =
request,
and that=E2=80=99s not working because it can=E2=80=99t find the network =
interface.
in my case I have the PXE/iPXE stuff working.

thanks,
	danny

> --=20
> Rod Grimes                                                 =
rgrimes@freebsd.org




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?B1FF704A-C13E-4FBF-BA38-ADC444BD114C>