--- /dev/null
+## Build Instructions ##
+
+1. Configure Kconfig options
+
+```shell
+#Use default selections
+make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- defconfig
+```
+
+or
+
+```shell
+#Select options manually
+make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- nconfig
+```
+
+Make sure SOC_STARFIVE, CLK_STARFIVE_JH7110_SYS, RESET_STARFIVE_JH7110,
+PINCTRL_STARFIVE_JH7110, SERIAL_8250_DW is selected.
+> If you need SD card driver, you should also select MMC_DW_STARFIVE.
+
+2. Build
+```shell
+make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu-
+```
+
+## How to Run on VisionFive 2 Board via Network ##
+
+1. Power on, enter u-boot and set enviroment parameters
+```
+setenv fdt_high 0xffffffffffffffff; setenv initrd_high 0xffffffffffffffff;
+setenv scriptaddr 0x88100000; setenv script_offset_f 0x1fff000; setenv script_size_f 0x1000;
+setenv kernel_addr_r 0x84000000; setenv kernel_comp_addr_r 0x90000000; setenv kernel_comp_size 0x10000000;
+setenv fdt_addr_r 0x88000000; setenv ramdisk_addr_r 0x88300000;
+```
+2. Set IP addresses for the board and your tftp server
+```
+setenv serverip 192.168.x.x; setenv gatewayip 192.168.x.x; setenv ipaddr 192.168.x.x; setenv hostname starfive; setenv netdev eth0;
+```
+3. Upload dtb, image and file system to ddr from your tftp server
+```
+tftpboot ${fdt_addr_r} jh7110-starfive-visionfive-v2.dtb; tftpboot ${kernel_addr_r} Image.gz; tftpboot ${ramdisk_addr_r} initramfs.cpio.gz;
+```
+4. Load and boot the kernel
+```
+booti ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr_r};
+```
+When you see the message "buildroot login:", the launch was successful.
+You can just input the following accout and password, then continue.
+```
+buildroot login: root
+Password: starfive
+```