aboutsummaryrefslogtreecommitdiff
path: root/riscv/ns16550.cc
diff options
context:
space:
mode:
authorJerry Zhao <jerryz123@berkeley.edu>2023-06-06 11:21:21 -0700
committerJerry Zhao <jerryz123@berkeley.edu>2023-06-20 12:23:47 -0700
commit701029d28b0e73f98a36869ef9317c49f0dc2949 (patch)
treee84191569aa072bdacb41e25cb509e7eef932fc4 /riscv/ns16550.cc
parent37e50ad49914725f6ba0364255e2ae809c60f0f2 (diff)
downloadriscv-isa-sim-701029d28b0e73f98a36869ef9317c49f0dc2949.zip
riscv-isa-sim-701029d28b0e73f98a36869ef9317c49f0dc2949.tar.gz
riscv-isa-sim-701029d28b0e73f98a36869ef9317c49f0dc2949.tar.bz2
ns16550_t: ns16550 should parse interrupt id from the fdt
Diffstat (limited to 'riscv/ns16550.cc')
-rw-r--r--riscv/ns16550.cc7
1 files changed, 4 insertions, 3 deletions
diff --git a/riscv/ns16550.cc b/riscv/ns16550.cc
index a4bd204..dabe3a9 100644
--- a/riscv/ns16550.cc
+++ b/riscv/ns16550.cc
@@ -343,11 +343,12 @@ std::string ns16550_generate_dts(const sim_t* sim)
ns16550_t* ns16550_parse_from_fdt(const void* fdt, const sim_t* sim, reg_t* base)
{
- uint32_t ns16550_shift, ns16550_io_width;
+ uint32_t ns16550_shift, ns16550_io_width, ns16550_int_id;
if (fdt_parse_ns16550(fdt, base,
- &ns16550_shift, &ns16550_io_width, "ns16550a") == 0) {
+ &ns16550_shift, &ns16550_io_width, &ns16550_int_id,
+ "ns16550a") == 0) {
abstract_interrupt_controller_t* intctrl = sim->get_intctrl();
- return new ns16550_t(intctrl, NS16550_INTERRUPT_ID, ns16550_shift, ns16550_io_width);
+ return new ns16550_t(intctrl, ns16550_int_id, ns16550_shift, ns16550_io_width);
} else {
return nullptr;
}