On Fri, Jan 10, 2020 at 03:54:02PM +0100, Eric Auger wrote: > Add helper routines to parse and set up BASER registers. > Add a new test dedicated to BASER<n> accesses. > > Signed-off-by: Eric Auger <eric.auger@xxxxxxxxxx> > > --- > > v2 -> v3: > - remove everything related to memory attributes > - s/dev_baser/coll_baser/ in report_info > - add extra line > - removed index filed in its_baser > --- > arm/gic.c | 21 ++++++++++- > arm/unittests.cfg | 6 +++ > lib/arm/asm/gic-v3-its.h | 14 +++++++ > lib/arm/gic-v3-its.c | 80 ++++++++++++++++++++++++++++++++++++++++ > 4 files changed, 120 insertions(+), 1 deletion(-) > > diff --git a/arm/gic.c b/arm/gic.c > index adeb981..3597ac3 100644 > --- a/arm/gic.c > +++ b/arm/gic.c > @@ -531,11 +531,26 @@ static void test_its_introspection(void) > typer->collid_bits); > report(typer->eventid_bits && typer->deviceid_bits && > typer->collid_bits, "ID spaces"); > - report(!typer->hw_collections, "collections only in ext memory"); > report_info("Target address format %s", > typer->pta ? "Redist basse address" : "PE #"); > } > > +static void test_its_baser(void) > +{ > + struct its_baser *dev_baser, *coll_baser; > + > + if (!gicv3_its_base()) { > + report_skip("No ITS, skip ..."); > + return; > + } > + > + dev_baser = its_lookup_baser(GITS_BASER_TYPE_DEVICE); > + coll_baser = its_lookup_baser(GITS_BASER_TYPE_COLLECTION); > + report(dev_baser && coll_baser, "detect device and collection BASER"); > + report_info("device baser entry_size = 0x%x", dev_baser->esz); > + report_info("collection baser entry_size = 0x%x", coll_baser->esz); > +} > + > int main(int argc, char **argv) > { > if (!gic_init()) { > @@ -571,6 +586,10 @@ int main(int argc, char **argv) > report_prefix_push(argv[1]); > test_its_introspection(); > report_prefix_pop(); > + } else if (strcmp(argv[1], "its-baser") == 0) { > + report_prefix_push(argv[1]); > + test_its_baser(); > + report_prefix_pop(); > } else { > report_abort("Unknown subtest '%s'", argv[1]); > } > diff --git a/arm/unittests.cfg b/arm/unittests.cfg > index bd20460..2234a0f 100644 > --- a/arm/unittests.cfg > +++ b/arm/unittests.cfg > @@ -128,6 +128,12 @@ smp = $MAX_SMP > extra_params = -machine gic-version=3 -append 'its-introspection' > groups = its > > +[its-baser] > +file = gic.flat > +smp = $MAX_SMP > +extra_params = -machine gic-version=3 -append 'its-baser' > +groups = its Do these tests need to be run separately from the its-introspection tests for some reason? If not, then I'd combine them. Thanks, drew