/* SPDX-License-Identifier: LGPL-2.1-only OR BSD-3-Clause */
/******************************************************************************
 *
 * This file is provided under a dual license.  When you use or
 * distribute this software, you may choose to be licensed under
 * version 2.1 of the GNU Lesser General Public License
 * ("LGPLv2.1 License") or BSD License.
 *
 * LGPLv2.1 License
 *
 * Copyright(C) 2019 MediaTek Inc.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of version 2.1 of the GNU Lesser General Public
 * License as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html for more
 * details.
 *
 * BSD LICENSE
 *
 * Copyright(C) 2019 MediaTek Inc.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *  * Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *  * Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the
 *    distribution.
 *  * Neither the name of the copyright holder nor the names of its
 *    contributors may be used to endorse or promote products derived
 *    from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 *****************************************************************************/

/*-----------------------------------------------------------------------------
 *
 * $Author$
 * $Date$
 * $RCSfile: $
 * $Revision$
 *
 *---------------------------------------------------------------------------*/

/** @file gcpu_iram.h
 *  gcpu driver - instruction ram uCode inclusion
 */

static const unsigned int GCPU_IRAM0_TRAPPING[] = {
0x82050207,     // bypass AES security check, this trapping should always in array last item index
0x821b201f,     // for aes cbc iv reload function, set register for iv reload
0x821c2022,     // for aes cbc iv reload function, judge iv len ans reload IV
0x825e2032,     // for aes cbc iv reload function, update final iv
0x840e204a,     // for setting AACS_DBD/EBD/DTN/ETN IV 
};

static const unsigned int GCPU_IRAM0_CODE[] = {
0x001d8955, 0x001c8be8, 0x000909fa, 0x001ee975, 0x001de946, 
0x00128b35, 0x001ee914, 0x001ee927, 0x001bc147, 0x000809fa, 
0x000c0957, 0x000880a9, 0x001b8975, 0x001b8dd4, 0x001ac167, 
0x000fa95f, 0x000909fa, 0x001ee974, 0x001ee915, 0x001de946, 
0x00128b35, 0x001ee927, 0x001bc147, 0x000809fa, 0x00088359, 
0x000c0115, 0x001b8975, 0x001b8dd4, 0x001ac167, 0x000fa94d, 
0x000909fa, 0x001ee92b, 0x001991d3, 0x00090b49, 0x001aa575, 
0x000f8b76, 0x001ee921, 0x001ee8e0, 0x0011dbf5, 0x000f297a, 
0x001bdd53, 0x001991d3, 0x001de985, 0x001dc804, 0x001d89c7, 
0x0008898d, 0x00090b7e, 0x001bd953, 0x001991d3, 0x0009297f, 
0x001d8975, 0x0010a555, 0x00080b30, 0x0011dbf5, 0x000f2910, 
0x0011f3eb, 0x000f2910, 0x001bf14b, 0x00082910, 0x0011f3f5, 
0x000f296b, 0x00090b49, 0x001bf153, 0x001991d3, 0x001de985, 
0x001dc804, 0x001d89c7, 0x0008898d, 0x00090b7e, 0x001dc805, 
0x001de9a4, 0x001d89c7, 0x000889b4, 0x00090b30, 0x001de865, 
0x001dc804, 0x001d89c7, 0x0008898d, 0x00090aa5
};

#define GCPU_IRAM0_LEN   0x13C

