111313Sandreas.sandberg@arm.com/* 211313Sandreas.sandberg@arm.com * Copyright (c) 2016 ARM Limited 311313Sandreas.sandberg@arm.com * All rights reserved 411313Sandreas.sandberg@arm.com * 511313Sandreas.sandberg@arm.com * Licensed under the Apache License, Version 2.0 (the "License"); 611313Sandreas.sandberg@arm.com * you may not use this file except in compliance with the License. 711313Sandreas.sandberg@arm.com * You may obtain a copy of the License at 811313Sandreas.sandberg@arm.com * 911313Sandreas.sandberg@arm.com * http://www.apache.org/licenses/LICENSE-2.0 1011313Sandreas.sandberg@arm.com * 1111313Sandreas.sandberg@arm.com * Unless required by applicable law or agreed to in writing, software 1211313Sandreas.sandberg@arm.com * distributed under the License is distributed on an "AS IS" BASIS, 1311313Sandreas.sandberg@arm.com * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1411313Sandreas.sandberg@arm.com * See the License for the specific language governing permissions and 1511313Sandreas.sandberg@arm.com * limitations under the License. 1611313Sandreas.sandberg@arm.com * 1711313Sandreas.sandberg@arm.com * Authors: Andreas Sandberg 1811313Sandreas.sandberg@arm.com */ 1911313Sandreas.sandberg@arm.com 2011313Sandreas.sandberg@arm.com#include <libnomali/nomali.h> 2111313Sandreas.sandberg@arm.com#include <inttypes.h> 2211313Sandreas.sandberg@arm.com 2311313Sandreas.sandberg@arm.com#include "nomali_test_helpers.h" 2411313Sandreas.sandberg@arm.com#include "../lib/mali_midg_regmap.h" 2511313Sandreas.sandberg@arm.com 2611313Sandreas.sandberg@arm.com#define TEST_ASn_STATUS(n) \ 2711313Sandreas.sandberg@arm.com E_NOMALI_TEST_REG("AS" # n "_STATUS", h, MMU_AS_REG(n, ASn_STATUS), \ 2811313Sandreas.sandberg@arm.com value == 0) 2911313Sandreas.sandberg@arm.com 3011313Sandreas.sandberg@arm.comstatic void 3111313Sandreas.sandberg@arm.comon_reset(nomali_handle_t h, void *usr) 3211313Sandreas.sandberg@arm.com{ 3311313Sandreas.sandberg@arm.com E_NOMALI_BAIL(nomali_reg_write_raw(h, 0x0000, 0xC0FFEE)); 3411313Sandreas.sandberg@arm.com} 3511313Sandreas.sandberg@arm.com 3611313Sandreas.sandberg@arm.comint 3711313Sandreas.sandberg@arm.commain(int argc, char **argv) 3811313Sandreas.sandberg@arm.com{ 3911313Sandreas.sandberg@arm.com const nomali_config_t cfg = { 4011313Sandreas.sandberg@arm.com .type = NOMALI_GPU_T60X, 4111313Sandreas.sandberg@arm.com .ver_maj = 0, 4211313Sandreas.sandberg@arm.com .ver_min = 1, 4311313Sandreas.sandberg@arm.com .ver_status = 0, 4411313Sandreas.sandberg@arm.com }; 4511313Sandreas.sandberg@arm.com 4611313Sandreas.sandberg@arm.com nomali_callback_t reset_callback = { 4711313Sandreas.sandberg@arm.com .type = NOMALI_CALLBACK_RESET, 4811313Sandreas.sandberg@arm.com .usr = NULL, 4911313Sandreas.sandberg@arm.com .func.reset = &on_reset, 5011313Sandreas.sandberg@arm.com }; 5111313Sandreas.sandberg@arm.com 5211313Sandreas.sandberg@arm.com nomali_handle_t h; 5311313Sandreas.sandberg@arm.com nomali_error_t error; 5411313Sandreas.sandberg@arm.com 5511313Sandreas.sandberg@arm.com E_NOMALI_BAIL(nomali_create(&h, &cfg)); 5611313Sandreas.sandberg@arm.com 5711313Sandreas.sandberg@arm.com NOMALI_TEST_REG("gpu_id", h, 0x0000, value == 0x69560010); 5811313Sandreas.sandberg@arm.com 5911313Sandreas.sandberg@arm.com E_NOMALI_TEST("reg_callback", nomali_set_callback(h, &reset_callback)); 6011313Sandreas.sandberg@arm.com E_NOMALI_BAIL(nomali_reset(h)); 6111313Sandreas.sandberg@arm.com 6211313Sandreas.sandberg@arm.com NOMALI_TEST_REG("custom_gpu_id", h, 0x0000, value == 0xC0FFEE); 6311313Sandreas.sandberg@arm.com 6411313Sandreas.sandberg@arm.com E_NOMALI_BAIL(nomali_destroy(h)); 6511313Sandreas.sandberg@arm.com 6611313Sandreas.sandberg@arm.com 6711313Sandreas.sandberg@arm.com return 0; 6811313Sandreas.sandberg@arm.com} 69