Skip to content

Commit

Permalink
simple description of the riscv softcore DE10Pro setup
Browse files Browse the repository at this point in the history
  • Loading branch information
gameboo committed Nov 12, 2021
0 parents commit c950a88
Show file tree
Hide file tree
Showing 4 changed files with 140 additions and 0 deletions.
16 changes: 16 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#LD = riscv64-unknown-elf-ld
LD = ld.lld
LDSCRIPT = script.ld

all: devicetree.wrapped.elf

%.dtb: %.dts
dtc $< -O dtb > $@

%.wrapped.elf: %.dtb script.ld
$(LD) -o $@ -b binary -m elf64lriscv -T $(LDSCRIPT) $<

.PHONY: clean
clean:
rm -f *.dtb
rm -f *.wrapped.elf
63 changes: 63 additions & 0 deletions devicetree.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
/dts-v1/;

/ {
#address-cells = <1>;
#size-cells = <1>;
compatible = "unknown,unknown";
model = "unknown,unknown";
chosen {
stdout-path = &ns16550;
};
cpus {
#address-cells = <1>;
#size-cells = <0>;
timebase-frequency = <500000>;
CPU0: cpu@0 {
device_type = "cpu";
reg = <0>;
status = "okay";
compatible = "riscv";
riscv,isa = "rv64imafdc";
mmu-type = "riscv,sv39";
clock-frequency = <50000000>;
CPU0_intc: interrupt-controller {
#interrupt-cells = <1>;
interrupt-controller;
compatible = "riscv,cpu-intc";
};
};
};
memory@C0000000 {
device_type = "memory";
reg = <0xC0000000 0x40000000>;
};
soc {
#address-cells = <1>;
#size-cells = <1>;
compatible = "simple-bus";
ranges;
clint@10000000 {
compatible = "riscv,clint0";
interrupts-extended = <&CPU0_intc 3 &CPU0_intc 7>;
reg = <0x10000000 0x10000>;
};
plic: interrupt-controller@c000000 {
#interrupt-cells = <1>;
compatible = "riscv,plic0";
interrupt-controller;
interrupts-extended = <&CPU0_intc 11 &CPU0_intc 9>;
reg = <0xc000000 0x400000>;
reg-names = "control";
riscv,max-priority = <7>;
riscv,ndev = <16>;
};
ns16550: uart@62300000 {
current-speed = <115200>;
compatible = "ns16550a";
interrupts-extended = <&plic 1>;
reg = <0x62300000 0x1000>;
clock-frequency = <50000000>;
reg-shift = <2>;
};
};
};
52 changes: 52 additions & 0 deletions devicetree.no-uart.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
/dts-v1/;

/ {
#address-cells = <1>;
#size-cells = <1>;
compatible = "unknown,unknown";
model = "unknown,unknown";
cpus {
#address-cells = <1>;
#size-cells = <0>;
timebase-frequency = <500000>;
CPU0: cpu@0 {
device_type = "cpu";
reg = <0>;
status = "okay";
compatible = "riscv";
riscv,isa = "rv64imafdc";
mmu-type = "riscv,sv39";
clock-frequency = <50000000>;
CPU0_intc: interrupt-controller {
#interrupt-cells = <1>;
interrupt-controller;
compatible = "riscv,cpu-intc";
};
};
};
memory@C0000000 {
device_type = "memory";
reg = <0xC0000000 0x40000000>;
};
soc {
#address-cells = <1>;
#size-cells = <1>;
compatible = "simple-bus";
ranges;
clint@10000000 {
compatible = "riscv,clint0";
interrupts-extended = <&CPU0_intc 3 &CPU0_intc 7>;
reg = <0x10000000 0x10000>;
};
plic: interrupt-controller@c000000 {
#interrupt-cells = <1>;
compatible = "riscv,plic0";
interrupt-controller;
interrupts-extended = <&CPU0_intc 11 &CPU0_intc 9>;
reg = <0xc000000 0x400000>;
reg-names = "control";
riscv,max-priority = <7>;
riscv,ndev = <16>;
};
};
};
9 changes: 9 additions & 0 deletions script.ld
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
OUTPUT_ARCH( "riscv" )
/* TARGET( "binary" ) */

SECTIONS
{
. = 0x80000000;
_start = .;
.data : { *(.data) }
}

0 comments on commit c950a88

Please sign in to comment.