From b99fea78a6b0db9dcf7133c302991b8a7a8f8538 Mon Sep 17 00:00:00 2001 From: Andreas Sandberg Date: Fri, 29 Jan 2016 12:14:21 +0000 Subject: ext: Update NoMali to external rev f08e0a5 Update NoMali from external revision 9adf9d6 to f08e0a5 and bring in the following changes: f08e0a5 Add support for tracking address space state f11099e Fix job slot register handling when running new jobs b28c98e api: Add a reset callback 29ac4c3 tests: Update gitignore to cover all future test cases 1c6b893 Propagate reset calls to all job slots 8f8ec15 Remove redundant reg vector in MMU 85d90d2 tests: Fix incorrect extern declaration --- ext/nomali/lib/jobslot.cc | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'ext/nomali/lib/jobslot.cc') diff --git a/ext/nomali/lib/jobslot.cc b/ext/nomali/lib/jobslot.cc index 8ad4fa1ec..2ce1e6260 100644 --- a/ext/nomali/lib/jobslot.cc +++ b/ext/nomali/lib/jobslot.cc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2015 ARM Limited + * Copyright (c) 2014-2016 ARM Limited * All rights reserved * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -28,6 +28,10 @@ namespace NoMali { +static const Status STATUS_IDLE(Status::CLASS_NOFAULT, 0, 0); +static const Status STATUS_DONE(Status::CLASS_NOFAULT, 0, 1); +static const Status STATUS_ACTIVE(Status::CLASS_NOFAULT, 1, 0); + const std::vector JobSlot::cmds { &JobSlot::cmdNop, // JSn_COMMAND_NOP &JobSlot::cmdStart, // JSn_COMMAND_START @@ -104,7 +108,7 @@ JobSlot::tryStart() return; // Reset the status register - regs[RegAddr(JSn_STATUS)] = 0; + regs[RegAddr(JSn_STATUS)] = STATUS_ACTIVE.value; // Transfer the next job configuration to the active job // configuration @@ -113,12 +117,9 @@ JobSlot::tryStart() regs.set64(RegAddr(JSn_AFFINITY_LO), regs.get64(RegAddr(JSn_AFFINITY_NEXT_LO))); regs[RegAddr(JSn_CONFIG)] = regs[RegAddr(JSn_CONFIG_NEXT)]; - regs[RegAddr(JSn_COMMAND)] = regs[RegAddr(JSn_COMMAND_NEXT)]; // Reset the next job configuration regs.set64(RegAddr(JSn_HEAD_NEXT_LO), 0); - regs.set64(RegAddr(JSn_AFFINITY_NEXT_LO), 0); - regs[RegAddr(JSn_CONFIG_NEXT)] = 0; regs[RegAddr(JSn_COMMAND_NEXT)] = 0; runJob(); @@ -127,7 +128,7 @@ JobSlot::tryStart() void JobSlot::runJob() { - exitJob(Status(Status::CLASS_NOFAULT, 0, 1), // JSn_STATUS_DONE + exitJob(STATUS_DONE, 0); // Time stamp counter value } -- cgit v1.2.3