[U-Boot-Users] How to use tftp to book kernel image and mount remote root fs

Steven Woody
2008-05-14T02:30:54Z

On Wed, May 14, 2008 at 10:05 AM, Jerry Van Baren <gvb.uboot@gmail.com> wrote:
> Steven Woody wrote:
>>
>> On Tue, May 13, 2008 at 2:07 PM, Wolfgang Denk <wd@denx.de> wrote:
>>>
>>> Dear Steven,
>>>
>>> in message <ed4892840805121852t46d4c4d0rd52a9eb129121f7b@mail.gmail.com>
>>> you wrote:
>>>>
>>>> Q1:
>>>>
>>>> Both 5.9.5.1 (
>>
>> http://www.denx.de/wiki/view/DULG/UBootCmdGroupDownload#Section_5.9.5.1.
>>>>
>>>> ) and 5.9.5.6 (
>>>> http://www.denx.de/wiki/view/DULG/UBootCmdGroupDownload#Section_5.9.5.6.
>>>> ) talk about booting image via network, but there are only few lines
>>>> of description about these commands. I don't know which one I should
>>>> use, tftpboot or bootp? And, for each one, what's the requirement on
>>>
>>> That depends on what you want to do. Do you understand the differecne
>>> between TFTP and BOOTP (resp. DHCP) protocols?
>>
>> I understand tftp and bootp as a function of current DHCP, but I don't
>> know how tftp and bootp is related. Would you suggest me something to
>> read? Thank you.
>
> Bootp is a boot protocol that allows a system to query a server to figure
> out what IP it is assigned and what executable file to load (typically via
> TFTP). DHCP is the successor to bootp.
>
> TFTP is a file transfer protocol that allows a system to load its executable
> (typically) file from the server.
>
> <http://www.linuxjournal.com/article/5465> (ignore RARP, it is deprecated).
>
> HTH,
> gvb
>

Thank you Jerry, I now understand TFTP and BOOTP should on a same
host, the 'filename' parameter in dhcpd.conf specified the boot image
file which can be download via tftp by u-boot. And, nfs server can be
on another server, the 'next-server' parameter in dhcpd.conf specified
the ip address of the nfs server.

But one thing I am not clear: the u-boot's bootargs variable uses
nfsroot=${serverip}:${rootpath}
are the 'serverip' and 'rootpath' set by querying BOOT server in
u-boot's bootp stage? if so, serverip should equals to the next-server
parameter in dhcpd.conf, and rootpath should equal to root-path
parameter in dhcpd.conf. You see, in u-boot, it is rootpath, but in
dhcpd.conf, it is root-path, is there a typo in the u-boot manual?

And, in the u-boot manual, I see, the `filename' parameter in
dhcpd.conf is something like /tftproot/uImage, but I think it should
be /uImage, because the /tftproot should be the root path of tftp
server, to the client, the path name should be /uImage, am I right?

Thank you very much.

$rootpath, was this variable set by querying BOOTP server?