[PATCH] riscv: Add OpenTitan Big Number (OTBN) device address

Julio Faracco posted 1 patch 3 years, 8 months ago
Test FreeBSD passed
Test docker-quick@centos7 passed
Test checkpatch passed
Test docker-mingw@fedora passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200707020728.23420-1-jcfaracco@gmail.com
Maintainers: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>, Palmer Dabbelt <palmer@dabbelt.com>, Alistair Francis <Alistair.Francis@wdc.com>, Sagar Karandikar <sagark@eecs.berkeley.edu>
hw/riscv/opentitan.c         | 5 ++++-
include/hw/riscv/opentitan.h | 1 +
2 files changed, 5 insertions(+), 1 deletion(-)
[PATCH] riscv: Add OpenTitan Big Number (OTBN) device address
Posted by Julio Faracco 3 years, 8 months ago
This commit adds basics skecthes to implemente a OTBN unit.
OTBN has address 0x50000000 and size 0x400000.
For further reference, see OTBN docummentation:
https://docs.opentitan.org/hw/ip/otbn/doc/

Signed-off-by: Julio Faracco <jcfaracco@gmail.com>
---
 hw/riscv/opentitan.c         | 5 ++++-
 include/hw/riscv/opentitan.h | 1 +
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/hw/riscv/opentitan.c b/hw/riscv/opentitan.c
index 19223e4c29..8a5d060b57 100644
--- a/hw/riscv/opentitan.c
+++ b/hw/riscv/opentitan.c
@@ -50,7 +50,8 @@ static const struct MemmapEntry {
     [IBEX_ALERT_HANDLER] =  {  0x40130000,  0x10000 },
     [IBEX_NMI_GEN] =        {  0x40140000,  0x10000 },
     [IBEX_USBDEV] =         {  0x40150000,  0x10000 },
-    [IBEX_PADCTRL] =        {  0x40160000,  0x10000 }
+    [IBEX_PADCTRL] =        {  0x40160000,  0x10000 },
+    [IBEX_OTBN] =           {  0x50000000, 0x400000 }
 };
 
 static void opentitan_board_init(MachineState *machine)
@@ -183,6 +184,8 @@ static void lowrisc_ibex_soc_realize(DeviceState *dev_soc, Error **errp)
         memmap[IBEX_USBDEV].base, memmap[IBEX_USBDEV].size);
     create_unimplemented_device("riscv.lowrisc.ibex.padctrl",
         memmap[IBEX_PADCTRL].base, memmap[IBEX_PADCTRL].size);
+    create_unimplemented_device("riscv.lowrisc.ibex.otbn",
+        memmap[IBEX_PADCTRL].base, memmap[IBEX_OTBN].size);
 }
 
 static void lowrisc_ibex_soc_class_init(ObjectClass *oc, void *data)
diff --git a/include/hw/riscv/opentitan.h b/include/hw/riscv/opentitan.h
index 8f29b9cbbf..c739d44fbc 100644
--- a/include/hw/riscv/opentitan.h
+++ b/include/hw/riscv/opentitan.h
@@ -68,6 +68,7 @@ enum {
     IBEX_NMI_GEN,
     IBEX_USBDEV,
     IBEX_PADCTRL,
+    IBEX_OTBN,
 };
 
 enum {
-- 
2.25.1


Re: [PATCH] riscv: Add OpenTitan Big Number (OTBN) device address
Posted by Bin Meng 3 years, 8 months ago
On Tue, Jul 7, 2020 at 10:08 AM Julio Faracco <jcfaracco@gmail.com> wrote:
>
> This commit adds basics skecthes to implemente a OTBN unit.

typo: skecthes, implemente

> OTBN has address 0x50000000 and size 0x400000.
> For further reference, see OTBN docummentation:

typo: docummentation

> https://docs.opentitan.org/hw/ip/otbn/doc/
>
> Signed-off-by: Julio Faracco <jcfaracco@gmail.com>
> ---
>  hw/riscv/opentitan.c         | 5 ++++-
>  include/hw/riscv/opentitan.h | 1 +
>  2 files changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/hw/riscv/opentitan.c b/hw/riscv/opentitan.c
> index 19223e4c29..8a5d060b57 100644
> --- a/hw/riscv/opentitan.c
> +++ b/hw/riscv/opentitan.c
> @@ -50,7 +50,8 @@ static const struct MemmapEntry {
>      [IBEX_ALERT_HANDLER] =  {  0x40130000,  0x10000 },
>      [IBEX_NMI_GEN] =        {  0x40140000,  0x10000 },
>      [IBEX_USBDEV] =         {  0x40150000,  0x10000 },
> -    [IBEX_PADCTRL] =        {  0x40160000,  0x10000 }
> +    [IBEX_PADCTRL] =        {  0x40160000,  0x10000 },
> +    [IBEX_OTBN] =           {  0x50000000, 0x400000 }
>  };
>
>  static void opentitan_board_init(MachineState *machine)
> @@ -183,6 +184,8 @@ static void lowrisc_ibex_soc_realize(DeviceState *dev_soc, Error **errp)
>          memmap[IBEX_USBDEV].base, memmap[IBEX_USBDEV].size);
>      create_unimplemented_device("riscv.lowrisc.ibex.padctrl",
>          memmap[IBEX_PADCTRL].base, memmap[IBEX_PADCTRL].size);
> +    create_unimplemented_device("riscv.lowrisc.ibex.otbn",
> +        memmap[IBEX_PADCTRL].base, memmap[IBEX_OTBN].size);
>  }
>
>  static void lowrisc_ibex_soc_class_init(ObjectClass *oc, void *data)
> diff --git a/include/hw/riscv/opentitan.h b/include/hw/riscv/opentitan.h
> index 8f29b9cbbf..c739d44fbc 100644
> --- a/include/hw/riscv/opentitan.h
> +++ b/include/hw/riscv/opentitan.h
> @@ -68,6 +68,7 @@ enum {
>      IBEX_NMI_GEN,
>      IBEX_USBDEV,
>      IBEX_PADCTRL,
> +    IBEX_OTBN,
>  };

Other than that,
Reviewed-by: Bin Meng <bin.meng@windriver.com>