sucessfully boot MAINLINE Linux!

This commit is contained in:
Peter McGoron 2023-06-05 16:50:08 -04:00
parent fd1df03506
commit 0f761744a9
6 changed files with 28 additions and 9 deletions

2
.gitignore vendored
View File

@ -32,3 +32,5 @@ firmware/rtl/raster/synth.log
firmware/rtl/raster/synth_test_yosys.v firmware/rtl/raster/synth_test_yosys.v
firmware/rtl/raster/yosys_output firmware/rtl/raster/yosys_output
firmware/csr_bitwidth.json firmware/csr_bitwidth.json
boot/*
!boot/boot.json

6
boot/boot.json Normal file
View File

@ -0,0 +1,6 @@
{
"Image": "0x40000000",
"arty.dtb": "0x40ef0000",
"rootfs.cpio": "0x41000000",
"fw_jump.bin": "0x40f00000"
}

View File

@ -169,13 +169,7 @@ TO CONNECT THE FPGA TO THE INTERNET.** The controlling computer can
still connect to the internet, but through another LAN port. The best still connect to the internet, but through another LAN port. The best
thing to do is to buy a USB to Ethernet adapter. thing to do is to buy a USB to Ethernet adapter.
You will need some way to do DHCP. The best way is to use a router, but The default TFTP client connects to 192.168.1.100.
a standard wireless router will not fly with any IT department because
of the security risk. You need to find a non-wireless router (like a
managed switch). You can even retrofit an old computer into a router
(just needs another ethernet port).
The default TFTP client connects to 192.168.1.50.
## Connecting to the FPGA Over USB ## Connecting to the FPGA Over USB
@ -194,7 +188,8 @@ better thing to do is to use TFTP boot, which goes over Ethernet.
CONNECTED NETWORK INTERFACE. THIS IS A BIG SECURITY RISK. ONLY RUN CONNECTED NETWORK INTERFACE. THIS IS A BIG SECURITY RISK. ONLY RUN
TFTP FOR THE AMOUNT OF TIME REQUIRED TO BOOT THE CONTROL SOFTWARE.** TFTP FOR THE AMOUNT OF TIME REQUIRED TO BOOT THE CONTROL SOFTWARE.**
You can read about how to setup a TFTP server on the [OpenWRT wiki][owrt_wiki]. You can read about how to setup a TFTP server on the [OpenWRT wiki][owrt_wiki].
On Linux, run
Using DNSMasq on linux, run
dnsmasq -d --port=0 --enable-tftp --tftp-root=/path/to/firmware/directory --user=root --group=root --interface=$INTERFACE dnsmasq -d --port=0 --enable-tftp --tftp-root=/path/to/firmware/directory --user=root --group=root --interface=$INTERFACE

View File

@ -7,7 +7,7 @@ all: rtl_codegen build/digilent_arty/digilent_arty.bit arty.dtb pin_io.c
rtl_codegen: rtl_codegen:
cd rtl && make cd rtl && make
csr.json build/digilent_arty/digilent_arty.bit: soc.py csr.json build/digilent_arty/digilent_arty.bit: soc.py
python3 soc.py TFTP_SERVER_PORT=6969 python3 soc.py
clean: clean:
rm -rf build csr.json overlay.config overlay.dts pin_io.h arty.dts arty.dtb rm -rf build csr.json overlay.config overlay.dts pin_io.h arty.dts arty.dtb
cd rtl && make clean cd rtl && make clean

View File

@ -5,5 +5,6 @@ config PLATFORM_LITEX_VEXRISCV
select FDT select FDT
select FDT_SERIAL select FDT_SERIAL
select TIMER_MTIMER select TIMER_MTIMER
select IPI_MSWI
select FDT_SERIAL_LITEX select FDT_SERIAL_LITEX
default y default y

View File

@ -1,7 +1,22 @@
# #
# SPDX-License-Identifier: BSD-2-Clause # SPDX-License-Identifier: BSD-2-Clause
# #
# Copyright (c) 2020 Florent Kermarrec <florent@enjoy-digital.fr>
# Copyright (c) 2020 Dolu1990 <charles.papon.90@gmail.com> # Copyright (c) 2020 Dolu1990 <charles.papon.90@gmail.com>
# #
# Command for platform specific "make run"
platform-runcmd = echo LiteX/VexRiscv
PLATFORM_RISCV_XLEN = 32
PLATFORM_RISCV_ABI = ilp32
#PLATFORM_RISCV_ISA = rv32ima ## XXX: Broken on new binutils
PLATFORM_RISCV_ISA = rv32ima_zicsr_zifencei
PLATFORM_RISCV_CODE_MODEL = medany
platform-objs-y += platform.o platform-objs-y += platform.o
# Blobs to build
FW_TEXT_START=0x40F00000
FW_JUMP=y
FW_JUMP_ADDR=0x40000000
FW_JUMP_FDT_ADDR=0x40EF0000