mirror of
https://github.com/genodelabs/genode.git
synced 2025-04-09 04:15:52 +00:00
hw: fix gicv3 implementation of clear/set regs
In addition use uniformly enums for interupt count in register declarations. Fix #3532
This commit is contained in:
parent
f6435d91fc
commit
105b2c9b7a
@ -60,35 +60,35 @@ class Hw::Pic
|
||||
struct Typer : Register<0x004, 32> {
|
||||
struct It_lines_number : Bitfield<0,5> { }; };
|
||||
|
||||
struct Igroup0r : Register_array<0x80, 32, 32*32, 1> {
|
||||
struct Igroup0r : Register_array<0x80, 32, nr_of_irq, 1> {
|
||||
struct Group1 : Bitfield<0, 1> { }; };
|
||||
|
||||
/**
|
||||
* Interrupt Set-Enable register
|
||||
*/
|
||||
struct Isenabler : Register_array<0x100, 32, 32*32, 1, true> {
|
||||
struct Isenabler : Register_array<0x100, 32, nr_of_irq, 1, true> {
|
||||
struct Set_enable : Bitfield<0, 1> { }; };
|
||||
|
||||
/**
|
||||
* Interrupt clear enable registers
|
||||
*/
|
||||
struct Icenabler : Register_array<0x180, 32, 32*32, 1, true> {
|
||||
struct Icenabler : Register_array<0x180, 32, nr_of_irq, 1, true> {
|
||||
struct Clear_enable : Bitfield<0, 1> { }; };
|
||||
|
||||
/**
|
||||
* Interrupt clear pending registers
|
||||
*/
|
||||
struct Icpendr : Register_array<0x280, 32, 32*32, 1, true> {
|
||||
struct Icpendr : Register_array<0x280, 32, nr_of_irq, 1, true> {
|
||||
struct Clear_pending : Bitfield<0, 1> { }; };
|
||||
|
||||
/**
|
||||
* Interrupt priority level registers
|
||||
*/
|
||||
struct Ipriorityr : Register_array<0x400, 32, 255*4, 8> {
|
||||
struct Ipriorityr : Register_array<0x400, 32, nr_of_irq, 8> {
|
||||
struct Priority : Bitfield<0, 8> { }; };
|
||||
|
||||
|
||||
struct Icfgr : Register_array<0xc00, 32, 64*16, 2> {
|
||||
struct Icfgr : Register_array<0xc00, 32, nr_of_irq, 2> {
|
||||
struct Edge_triggered : Bitfield<1, 1> { }; };
|
||||
|
||||
struct Irouter : Register_array<0x6000, 64, 1020, 64, true> { };
|
||||
@ -132,13 +132,13 @@ class Hw::Pic
|
||||
{
|
||||
struct Igroupr0 : Register<0x80, 32> { };
|
||||
|
||||
struct Isenabler0 : Register_array<0x100, 32, 32, 1>
|
||||
struct Isenabler0 : Register_array<0x100, 32, min_spi, 1, true>
|
||||
{ };
|
||||
|
||||
struct Icenabler0 : Register_array<0x180, 32, 32, 1>
|
||||
struct Icenabler0 : Register_array<0x180, 32, min_spi, 1, true>
|
||||
{ };
|
||||
|
||||
struct Icactiver0 : Register<0x380, 32> { };
|
||||
struct Icactiver0 : Register<0x380, 32, true> { };
|
||||
|
||||
struct Ipriorityr : Register_array<0x400, 32, min_spi, 8> {
|
||||
struct Priority : Bitfield<0, 8> { }; };
|
||||
|
Loading…
x
Reference in New Issue
Block a user