Keystone: turn on ethernet driver
I. USB & Ethernet Drivers
There are two ways of doing this, the formal way, and the shortcut way.
But first, check the PATH:
$ echo ${PATH}                      #and MAKE SURE that NO ANY TOOLCHAIN is on the PATH
$ cd <your keystone folder>         #go to your keystone folder
$ . source.sh
$ export KEYSTONE_DIR=`pwd`
$ cd <your keystone-demo folder>    #go to your keystone-demo folder
$ . source.sh
I. a) Make the ‘formal’ way
The proper way to modify drivers in Linux kernel is open the kernel, select or diselect some drivers, apply the changes, and remake everything.
$ cd <your keystone folder>
$ make -f hifive.mk linux-menuconfig
Wait for the GUI to load, then:
- Device drivers -> Network device support -> USB network adapters
- choose the appropriate drivers and turn them on (usually they are the RTL** something)
- Exit to go back to the Network device support page
- Now go to Ethernet driver support page
- choose the appropriate drivers and turn them on (mostly they are the Intel and Realtek ones)
- Now just keep Exit till the end and choose Yes when asked to save the new configurations
This line is for applying the new config file into the build file:
$ cp hifive-conf/linux_defconfig hifive-conf/linux_cma_conf
Finally, remake everything:
$ make clean
If keystone-rv64:	$ make image -j`nproc`
If keystone-rv32:	$ make -j`nproc`
I. b) Make the ‘shortcut’ way
So, the bottom line of the formal way above is just to creating a new linux_cma_conf file under the hifive-conf/ folder.
Then, I give you the prebuilt file of linux_cma_conf. Just download it, then:
- Copy the linux_cma_conf file to your <keystone folder>/hifive-conf/linux_cma_conf.
- Check the PATH.
- Finally:
$ make clean
$ make -j`nproc`
I. c) Keystone-demo: remember to update hash
After your changes on the kernel, the hash value of the bbl.bin is different now. So if you want to use the keystone-demo, you have to reapply the hashes to the bbl.bin image file:
$ cd <your keystone-demo folder>    #go to your keystone-demo folder
$ make getandsethash
$ rm trusted_client.riscv
$ make trusted_client.riscv
$ make copybins
$ cd <your keystone folder>         #go to your keystone folder and update the bbl.bin there
If keystone-rv64:   $ make image -j`nproc`	
If keystone-rv32:   $ make -j`nproc`