All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH V2 0/3] riscv: some little fix.
@ 2018-05-03 15:17 KONRAD Frederic
  2018-05-03 15:17 ` [Qemu-devel] [PATCH V2 1/3] riscv: spike: allow base == 0 KONRAD Frederic
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: KONRAD Frederic @ 2018-05-03 15:17 UTC (permalink / raw)
  To: qemu-devel, qemu-stable
  Cc: mjc, kbastian, f4bug, peter.maydell, frederic.konrad

Hi all,

Here are some fixes for RISCV.

The two firsts allow to map the HTIF @0x00000000.
The third one requires fdt to be present on the build machine so the build
doesn't end with a linker error.

Thanks,
Fred

KONRAD Frederic (3):
  riscv: spike: allow base == 0
  riscv: htif: increase the priority of the htif subregion
  riscv: requires libfdt

 configure             |  2 +-
 hw/riscv/riscv_htif.c | 12 ++++++++----
 2 files changed, 9 insertions(+), 5 deletions(-)

-- 
1.8.3.1

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Qemu-devel] [PATCH V2 1/3] riscv: spike: allow base == 0
  2018-05-03 15:17 [Qemu-devel] [PATCH V2 0/3] riscv: some little fix KONRAD Frederic
@ 2018-05-03 15:17 ` KONRAD Frederic
  2018-05-03 15:17 ` [Qemu-devel] [PATCH V2 2/3] riscv: htif: increase the priority of the htif subregion KONRAD Frederic
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: KONRAD Frederic @ 2018-05-03 15:17 UTC (permalink / raw)
  To: qemu-devel, qemu-stable
  Cc: mjc, kbastian, f4bug, peter.maydell, frederic.konrad

The sanity check on base doesn't allow htif to be mapped @0. Check if the
symbol exists instead so we can map it where we want.

Reviewed-by: Michael Clark <mjc@sifive.com>
Signed-off-by: KONRAD Frederic <frederic.konrad@adacore.com>

---
V1 -> V2:
  * Check that both symbols are set as suggested by Michael.
---
 hw/riscv/riscv_htif.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/hw/riscv/riscv_htif.c b/hw/riscv/riscv_htif.c
index 3e17f30..be252ec 100644
--- a/hw/riscv/riscv_htif.c
+++ b/hw/riscv/riscv_htif.c
@@ -41,17 +41,20 @@
     } while (0)
 
 static uint64_t fromhost_addr, tohost_addr;
+static int address_symbol_set;
 
 void htif_symbol_callback(const char *st_name, int st_info, uint64_t st_value,
-    uint64_t st_size)
+                          uint64_t st_size)
 {
     if (strcmp("fromhost", st_name) == 0) {
+        address_symbol_set |= 1;
         fromhost_addr = st_value;
         if (st_size != 8) {
             error_report("HTIF fromhost must be 8 bytes");
             exit(1);
         }
     } else if (strcmp("tohost", st_name) == 0) {
+        address_symbol_set |= 2;
         tohost_addr = st_value;
         if (st_size != 8) {
             error_report("HTIF tohost must be 8 bytes");
@@ -248,7 +251,7 @@ HTIFState *htif_mm_init(MemoryRegion *address_space, MemoryRegion *main_mem,
     qemu_chr_fe_init(&s->chr, chr, &error_abort);
     qemu_chr_fe_set_handlers(&s->chr, htif_can_recv, htif_recv, htif_event,
         htif_be_change, s, NULL, true);
-    if (base) {
+    if (address_symbol_set == 3) {
         memory_region_init_io(&s->mmio, NULL, &htif_mm_ops, s,
                             TYPE_HTIF_UART, size);
         memory_region_add_subregion(address_space, base, &s->mmio);
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Qemu-devel] [PATCH V2 2/3] riscv: htif: increase the priority of the htif subregion
  2018-05-03 15:17 [Qemu-devel] [PATCH V2 0/3] riscv: some little fix KONRAD Frederic
  2018-05-03 15:17 ` [Qemu-devel] [PATCH V2 1/3] riscv: spike: allow base == 0 KONRAD Frederic
@ 2018-05-03 15:17 ` KONRAD Frederic
  2018-05-03 15:17 ` [Qemu-devel] [PATCH V2 3/3] riscv: requires libfdt KONRAD Frederic
  2018-05-03 15:24 ` [Qemu-devel] [PATCH V2 0/3] riscv: some little fix KONRAD Frederic
  3 siblings, 0 replies; 5+ messages in thread
From: KONRAD Frederic @ 2018-05-03 15:17 UTC (permalink / raw)
  To: qemu-devel, qemu-stable
  Cc: mjc, kbastian, f4bug, peter.maydell, frederic.konrad

The htif device is supposed to be mapped over an other subregion. So increase
its priority to one to avoid any conflict.

Here is the output of info mtree:

Before:
(qemu) info mtree
 address-space: memory
   0000000000000000-ffffffffffffffff (prio 0, i/o): system
     0000000000000000-000000000000000f (prio 0, i/o): riscv.htif.uart
     0000000000000000-0000000000011fff (prio 0, ram): riscv.spike.bootrom
     0000000002000000-000000000200ffff (prio 0, i/o): riscv.sifive.clint
     0000000080000000-0000000087ffffff (prio 0, ram): riscv.spike.ram

 address-space: I/O
   0000000000000000-000000000000ffff (prio 0, i/o): io

 address-space: cpu-memory-0
   0000000000000000-ffffffffffffffff (prio 0, i/o): system
     0000000000000000-000000000000000f (prio 0, i/o): riscv.htif.uart
     0000000000000000-0000000000011fff (prio 0, ram): riscv.spike.bootrom
     0000000002000000-000000000200ffff (prio 0, i/o): riscv.sifive.clint
     0000000080000000-0000000087ffffff (prio 0, ram): riscv.spike.ram

After:
 (qemu) info mtree
 address-space: memory
   0000000000000000-ffffffffffffffff (prio 0, i/o): system
     0000000000000000-000000000000000f (prio 1, i/o): riscv.htif.uart
     0000000000000000-0000000000011fff (prio 0, ram): riscv.spike.bootrom
     0000000002000000-000000000200ffff (prio 0, i/o): riscv.sifive.clint
     0000000080000000-0000000087ffffff (prio 0, ram): riscv.spike.ram

 address-space: I/O
   0000000000000000-000000000000ffff (prio 0, i/o): io

 address-space: cpu-memory-0
   0000000000000000-ffffffffffffffff (prio 0, i/o): system
     0000000000000000-000000000000000f (prio 1, i/o): riscv.htif.uart
     0000000000000000-0000000000011fff (prio 0, ram): riscv.spike.bootrom
     0000000002000000-000000000200ffff (prio 0, i/o): riscv.sifive.clint
     0000000080000000-0000000087ffffff (prio 0, ram): riscv.spike.ram

Reviewed-by: Michael Clark <mjc@sifive.com>
Signed-off-by: KONRAD Frederic <frederic.konrad@adacore.com>
---
 hw/riscv/riscv_htif.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/hw/riscv/riscv_htif.c b/hw/riscv/riscv_htif.c
index be252ec..f735129 100644
--- a/hw/riscv/riscv_htif.c
+++ b/hw/riscv/riscv_htif.c
@@ -253,8 +253,9 @@ HTIFState *htif_mm_init(MemoryRegion *address_space, MemoryRegion *main_mem,
         htif_be_change, s, NULL, true);
     if (address_symbol_set == 3) {
         memory_region_init_io(&s->mmio, NULL, &htif_mm_ops, s,
-                            TYPE_HTIF_UART, size);
-        memory_region_add_subregion(address_space, base, &s->mmio);
+                              TYPE_HTIF_UART, size);
+        memory_region_add_subregion_overlap(address_space, base,
+                                            &s->mmio, 1);
     }
 
     return s;
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Qemu-devel] [PATCH V2 3/3] riscv: requires libfdt
  2018-05-03 15:17 [Qemu-devel] [PATCH V2 0/3] riscv: some little fix KONRAD Frederic
  2018-05-03 15:17 ` [Qemu-devel] [PATCH V2 1/3] riscv: spike: allow base == 0 KONRAD Frederic
  2018-05-03 15:17 ` [Qemu-devel] [PATCH V2 2/3] riscv: htif: increase the priority of the htif subregion KONRAD Frederic
@ 2018-05-03 15:17 ` KONRAD Frederic
  2018-05-03 15:24 ` [Qemu-devel] [PATCH V2 0/3] riscv: some little fix KONRAD Frederic
  3 siblings, 0 replies; 5+ messages in thread
From: KONRAD Frederic @ 2018-05-03 15:17 UTC (permalink / raw)
  To: qemu-devel, qemu-stable
  Cc: mjc, kbastian, f4bug, peter.maydell, frederic.konrad

When compiling on a machine without libfdt installed the configure script
should try to get libfdt from the git or should die because otherwise
CONFIG_LIBFDT is not set and the build process end in an error in the link
phase.. eg:

hw/riscv/virt.o: In function `riscv_virt_board_init':
qemu/src/hw/riscv/virt.c:317: undefined reference to `qemu_fdt_setprop_cell'
qemu/src/hw/riscv/virt.c:319: undefined reference to `qemu_fdt_setprop_cell'
qemu/src/hw/riscv/virt.c:345: undefined reference to `qemu_fdt_dumpdtb'
collect2: error: ld returned 1 exit status
make[1]: *** [qemu-system-riscv64] Error 1
make: *** [subdir-riscv64-softmmu] Error 2

Reviewed-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Michael Clark <mjc@sifive.com>
Signed-off-by: KONRAD Frederic <frederic.konrad@adacore.com>

---
V1 -> V2:
  * Requires libfdt for riscv*-softmmu instead of riscv64-softmmu only.
---
 configure | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure b/configure
index 1443422..479e9a7 100755
--- a/configure
+++ b/configure
@@ -3761,7 +3761,7 @@ fi
 fdt_required=no
 for target in $target_list; do
   case $target in
-    aarch64*-softmmu|arm*-softmmu|ppc*-softmmu|microblaze*-softmmu|mips64el-softmmu)
+    aarch64*-softmmu|arm*-softmmu|ppc*-softmmu|microblaze*-softmmu|mips64el-softmmu|riscv*-softmmu)
       fdt_required=yes
     ;;
   esac
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [PATCH V2 0/3] riscv: some little fix.
  2018-05-03 15:17 [Qemu-devel] [PATCH V2 0/3] riscv: some little fix KONRAD Frederic
                   ` (2 preceding siblings ...)
  2018-05-03 15:17 ` [Qemu-devel] [PATCH V2 3/3] riscv: requires libfdt KONRAD Frederic
@ 2018-05-03 15:24 ` KONRAD Frederic
  3 siblings, 0 replies; 5+ messages in thread
From: KONRAD Frederic @ 2018-05-03 15:24 UTC (permalink / raw)
  To: qemu-devel, qemu-stable; +Cc: kbastian, mjc, f4bug, peter.maydell

s/fix/fixes in the subject :/

Fred

On 05/03/2018 05:17 PM, KONRAD Frederic wrote:
> Hi all,
> 
> Here are some fixes for RISCV.
> 
> The two firsts allow to map the HTIF @0x00000000.
> The third one requires fdt to be present on the build machine so the build
> doesn't end with a linker error.
> 
> Thanks,
> Fred
> 
> KONRAD Frederic (3):
>    riscv: spike: allow base == 0
>    riscv: htif: increase the priority of the htif subregion
>    riscv: requires libfdt
> 
>   configure             |  2 +-
>   hw/riscv/riscv_htif.c | 12 ++++++++----
>   2 files changed, 9 insertions(+), 5 deletions(-)
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-05-03 15:24 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-03 15:17 [Qemu-devel] [PATCH V2 0/3] riscv: some little fix KONRAD Frederic
2018-05-03 15:17 ` [Qemu-devel] [PATCH V2 1/3] riscv: spike: allow base == 0 KONRAD Frederic
2018-05-03 15:17 ` [Qemu-devel] [PATCH V2 2/3] riscv: htif: increase the priority of the htif subregion KONRAD Frederic
2018-05-03 15:17 ` [Qemu-devel] [PATCH V2 3/3] riscv: requires libfdt KONRAD Frederic
2018-05-03 15:24 ` [Qemu-devel] [PATCH V2 0/3] riscv: some little fix KONRAD Frederic

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.