Power & Source of Big Ideas

Working on U-Boot to get network booting to work

Moderator: FATechsupport


I posted this earlier this week on the main Fire3 forum, then realized there was a specific boot forum, so I thought I would post here also. Still busy with this, but eager for any comments.

I am working with a Nanopi Fire3 with the s5p6818 chip. I do not intend to run linux (but have verified operation of my board by booting linux from and SD card). What I want to do is to set up U-Boot for network booting. Ulimately I intend to port a RTOS of my own to the board.

I have discovered though that the U-Boot provided for this board does not include networking. In fact it does not look like the U-Boot sources were ever set up to build with a network driver! I am busy trying to remedy this situation, working from a clone of the friendly arm u-boot github on the nanopi2-v2016.01 branch as instructed on the Wiki. I am somewhat of an old hand at U-Boot hacking, but no expert. I am able to rebuild U-Boot just fine and am starting to make some changes.

It looks like the designware.c network driver is appropriate for the s5p6818 and I am working towards getting U-Boot to build and include it, with whatever changes may be needed.

I am writing here for two reasons. One is to let people know what I am up to in case it is of interest to others. Also if anyone else has gone down this path already and I am wasting my effort, I want to find out as soon as possible.

Greetings to all on the forum!

I finally got this to work. In short, I began with a branch of the Samsung Artik 710 vesion of U-boot and made a variety of modifications. There was a bug in the way U-boot was setting up the MMU that prevented it from correctly accessing the
second 512M of ram (each page table entry covers 512M). This in turn was causing synchronous aborts due to alignment errors when accessing fields in network packets. The "designware" driver does the trick for the s5p6818 network on the fire3.

This is now working for me with the Fire3 and booting binary files via tftp, which is what I needed.

I learned a variety of things. In particular I modified and fixed a bug in the second stage bootloader "bl1" -- and I avoid all of the secure mode FIP business that the usual friendly ARM boot setup for linux uses. I just put bl1 and u-boot on an SD card, set some environment variables and am on the air. I am busy putting all of this on my Fire3 Github pages:


Who is online

In total there are 2 users online :: 0 registered, 0 hidden and 2 guests (based on users active over the past 5 minutes)
Most users ever online was 5185 on Wed Jan 22, 2020 1:44 pm

Users browsing this forum: No registered users and 2 guests