1f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 2f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug/* Microcode patches for the CPM as supplied by Motorola. 3f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug * This is the one for IIC/SPI. There is a newer one that 4f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug * also relocates SMC2, but this would require additional changes 5f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug * to uart.c, so I am holding off on that for a moment. 6f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug */ 7af71bcfeaaaad92147922282341d394093a4fc9bAnton Vorontsov#include <linux/init.h> 8f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug#include <linux/errno.h> 9f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug#include <linux/sched.h> 10f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug#include <linux/kernel.h> 11f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug#include <linux/param.h> 12f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug#include <linux/string.h> 13f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug#include <linux/mm.h> 14f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug#include <linux/interrupt.h> 15f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug#include <asm/irq.h> 16f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug#include <asm/mpc8xx.h> 17f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug#include <asm/page.h> 18f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug#include <asm/pgtable.h> 19f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug#include <asm/8xx_immap.h> 2056825c88ff438f4dbb51a44591cc29e707fe783aAnton Vorontsov#include <asm/cpm.h> 21b5677d848cbb94220ac2cfd36d93bcdbe49c3280Jochen Friedrich#include <asm/cpm1.h> 22f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 23f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug/* 24f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug * I2C/SPI relocation patch arrays. 25f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug */ 26f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 27f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug#ifdef CONFIG_I2C_SPI_UCODE_PATCH 28f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 29af71bcfeaaaad92147922282341d394093a4fc9bAnton Vorontsovstatic uint patch_2000[] __initdata = { 30f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7FFFEFD9, 31f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x3FFD0000, 32f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7FFB49F7, 33f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7FF90000, 34f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5FEFADF7, 35f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5F89ADF7, 36f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5FEFAFF7, 37f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5F89AFF7, 38f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x3A9CFBC8, 39f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xE7C0EDF0, 40f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x77C1E1BB, 41f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xF4DC7F1D, 42f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xABAD932F, 43f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x4E08FDCF, 44f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x6E0FAFF8, 45f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7CCF76CF, 46f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xFD1FF9CF, 47f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xABF88DC6, 48f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xAB5679F7, 49f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xB0937383, 50f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xDFCE79F7, 51f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xB091E6BB, 52f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xE5BBE74F, 53f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xB3FA6F0F, 54f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x6FFB76CE, 55f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xEE0DF9CF, 56f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x2BFBEFEF, 57f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xCFEEF9CF, 58f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x76CEAD24, 59f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x90B2DF9A, 60f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7FDDD0BF, 61f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x4BF847FD, 62f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7CCF76CE, 63f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xCFEF7E1F, 64f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7F1D7DFD, 65f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xF0B6EF71, 66f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7FC177C1, 67f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xFBC86079, 68f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xE722FBC8, 69f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5FFFDFFF, 70f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5FB2FFFB, 71f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xFBC8F3C8, 72f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x94A67F01, 73f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7F1D5F39, 74f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xAFE85F5E, 75f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xFFDFDF96, 76f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xCB9FAF7D, 77f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5FC1AFED, 78f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x8C1C5FC1, 79f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xAFDD5FC3, 80f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xDF9A7EFD, 81f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xB0B25FB2, 82f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xFFFEABAD, 83f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5FB2FFFE, 84f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5FCE600B, 85f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xE6BB600B, 86f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5FCEDFC6, 87f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x27FBEFDF, 88f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5FC8CFDE, 89f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x3A9CE7C0, 90f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xEDF0F3C8, 91f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7F0154CD, 92f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7F1D2D3D, 93f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x363A7570, 94f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7E0AF1CE, 95f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x37EF2E68, 96f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7FEE10EC, 97f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xADF8EFDE, 98f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xCFEAE52F, 99f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7D0FE12B, 100f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xF1CE5F65, 101f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7E0A4DF8, 102f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xCFEA5F72, 103f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7D0BEFEE, 104f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xCFEA5F74, 105f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xE522EFDE, 106f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5F74CFDA, 107f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x0B627385, 108f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xDF627E0A, 109f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x30D8145B, 110f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xBFFFF3C8, 111f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5FFFDFFF, 112f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xA7F85F5E, 113f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xBFFE7F7D, 114f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x10D31450, 115f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5F36BFFF, 116f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xAF785F5E, 117f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xBFFDA7F8, 118f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5F36BFFE, 119f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x77FD30C0, 120f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x4E08FDCF, 121f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xE5FF6E0F, 122f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xAFF87E1F, 123f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7E0FFD1F, 124f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xF1CF5F1B, 125f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xABF80D5E, 126f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5F5EFFEF, 127f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x79F730A2, 128f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xAFDD5F34, 129f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x47F85F34, 130f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xAFED7FDD, 131f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x50B24978, 132f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x47FD7F1D, 133f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7DFD70AD, 134f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xEF717EC1, 135f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x6BA47F01, 136f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x2D267EFD, 137f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x30DE5F5E, 138f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xFFFD5F5E, 139f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xFFEF5F5E, 140f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xFFDF0CA0, 141f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xAFED0A9E, 142f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xAFDD0C3A, 143f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5F3AAFBD, 144f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7FBDB082, 145f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5F8247F8 146f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug}; 147f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 148af71bcfeaaaad92147922282341d394093a4fc9bAnton Vorontsovstatic uint patch_2f00[] __initdata = { 149f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x3E303430, 150f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x34343737, 151f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xABF7BF9B, 152f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x994B4FBD, 153f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xBD599493, 154f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x349FFF37, 155f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xFB9B177D, 156f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xD9936956, 157f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xBBFDD697, 158f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xBDD2FD11, 159f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x31DB9BB3, 160f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x63139637, 161f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x93733693, 162f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x193137F7, 163f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x331737AF, 164f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7BB9B999, 165f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xBB197957, 166f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7FDFD3D5, 167f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x73B773F7, 168f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x37933B99, 169f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x1D115316, 170f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x99315315, 171f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x31694BF4, 172f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xFBDBD359, 173f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x31497353, 174f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x76956D69, 175f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7B9D9693, 176f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x13131979, 177f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x79376935 178f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug}; 179f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug#endif 180f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 181f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug/* 182f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug * I2C/SPI/SMC1 relocation patch arrays. 183f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug */ 184f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 185f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug#ifdef CONFIG_I2C_SPI_SMC1_UCODE_PATCH 186f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 187af71bcfeaaaad92147922282341d394093a4fc9bAnton Vorontsovstatic uint patch_2000[] __initdata = { 188f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x3fff0000, 189f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x3ffd0000, 190f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x3ffb0000, 191f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x3ff90000, 192f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5f13eff8, 193f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5eb5eff8, 194f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5f88adf7, 195f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5fefadf7, 196f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x3a9cfbc8, 197f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x77cae1bb, 198f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xf4de7fad, 199f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xabae9330, 200f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x4e08fdcf, 201f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x6e0faff8, 202f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7ccf76cf, 203f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xfdaff9cf, 204f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xabf88dc8, 205f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xab5879f7, 206f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xb0925d8d, 207f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xdfd079f7, 208f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xb090e6bb, 209f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xe5bbe74f, 210f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x9e046f0f, 211f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x6ffb76ce, 212f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xee0cf9cf, 213f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x2bfbefef, 214f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xcfeef9cf, 215f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x76cead23, 216f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x90b3df99, 217f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7fddd0c1, 218f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x4bf847fd, 219f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7ccf76ce, 220f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xcfef77ca, 221f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7eaf7fad, 222f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7dfdf0b7, 223f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xef7a7fca, 224f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x77cafbc8, 225f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x6079e722, 226f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xfbc85fff, 227f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xdfff5fb3, 228f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xfffbfbc8, 229f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xf3c894a5, 230f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xe7c9edf9, 231f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7f9a7fad, 232f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5f36afe8, 233f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5f5bffdf, 234f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xdf95cb9e, 235f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xaf7d5fc3, 236f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xafed8c1b, 237f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5fc3afdd, 238f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5fc5df99, 239f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7efdb0b3, 240f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5fb3fffe, 241f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xabae5fb3, 242f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xfffe5fd0, 243f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x600be6bb, 244f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x600b5fd0, 245f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xdfc827fb, 246f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xefdf5fca, 247f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xcfde3a9c, 248f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xe7c9edf9, 249f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xf3c87f9e, 250f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x54ca7fed, 251f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x2d3a3637, 252f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x756f7e9a, 253f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xf1ce37ef, 254f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x2e677fee, 255f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x10ebadf8, 256f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xefdecfea, 257f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xe52f7d9f, 258f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xe12bf1ce, 259f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5f647e9a, 260f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x4df8cfea, 261f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5f717d9b, 262f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xefeecfea, 263f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5f73e522, 264f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xefde5f73, 265f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xcfda0b61, 266f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5d8fdf61, 267f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xe7c9edf9, 268f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7e9a30d5, 269f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x1458bfff, 270f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xf3c85fff, 271f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xdfffa7f8, 272f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5f5bbffe, 273f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7f7d10d0, 274f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x144d5f33, 275f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xbfffaf78, 276f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5f5bbffd, 277f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xa7f85f33, 278f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xbffe77fd, 279f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x30bd4e08, 280f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xfdcfe5ff, 281f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x6e0faff8, 282f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7eef7e9f, 283f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xfdeff1cf, 284f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5f17abf8, 285f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x0d5b5f5b, 286f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xffef79f7, 287f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x309eafdd, 288f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5f3147f8, 289f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5f31afed, 290f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7fdd50af, 291f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x497847fd, 292f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7f9e7fed, 293f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7dfd70a9, 294f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xef7e7ece, 295f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x6ba07f9e, 296f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x2d227efd, 297f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x30db5f5b, 298f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xfffd5f5b, 299f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xffef5f5b, 300f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xffdf0c9c, 301f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xafed0a9a, 302f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xafdd0c37, 303f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5f37afbd, 304f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7fbdb081, 305f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5f8147f8, 306f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x3a11e710, 307f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xedf0ccdd, 308f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xf3186d0a, 309f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7f0e5f06, 310f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7fedbb38, 311f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x3afe7468, 312f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7fedf4fc, 313f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x8ffbb951, 314f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xb85f77fd, 315f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xb0df5ddd, 316f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xdefe7fed, 317f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x90e1e74d, 318f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x6f0dcbf7, 319f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xe7decfed, 320f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xcb74cfed, 321f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xcfeddf6d, 322f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x91714f74, 323f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5dd2deef, 324f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x9e04e7df, 325f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xefbb6ffb, 326f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xe7ef7f0e, 327f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x9e097fed, 328f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xebdbeffa, 329f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xeb54affb, 330f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7fea90d7, 331f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7e0cf0c3, 332f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xbffff318, 333f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5fffdfff, 334f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xac59efea, 335f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7fce1ee5, 336f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xe2ff5ee1, 337f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xaffbe2ff, 338f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5ee3affb, 339f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xf9cc7d0f, 340f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xaef8770f, 341f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7d0fb0c6, 342f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xeffbbfff, 343f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xcfef5ede, 344f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7d0fbfff, 345f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5ede4cf8, 346f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7fddd0bf, 347f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x49f847fd, 348f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7efdf0bb, 349f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7fedfffd, 350f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7dfdf0b7, 351f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xef7e7e1e, 352f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5ede7f0e, 353f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x3a11e710, 354f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xedf0ccab, 355f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xfb18ad2e, 356f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x1ea9bbb8, 357f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x74283b7e, 358f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x73c2e4bb, 359f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x2ada4fb8, 360f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xdc21e4bb, 361f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xb2a1ffbf, 362f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5e2c43f8, 363f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xfc87e1bb, 364f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xe74ffd91, 365f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x6f0f4fe8, 366f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xc7ba32e2, 367f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xf396efeb, 368f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x600b4f78, 369f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xe5bb760b, 370f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x53acaef8, 371f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x4ef88b0e, 372f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xcfef9e09, 373f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xabf8751f, 374f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xefef5bac, 375f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x741f4fe8, 376f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x751e760d, 377f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7fdbf081, 378f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x741cafce, 379f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xefcc7fce, 380f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x751e70ac, 381f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x741ce7bb, 382f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x3372cfed, 383f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xafdbefeb, 384f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xe5bb760b, 385f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x53f2aef8, 386f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xafe8e7eb, 387f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x4bf8771e, 388f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7e247fed, 389f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x4fcbe2cc, 390f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7fbc30a9, 391f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7b0f7a0f, 392f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x34d577fd, 393f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x308b5db7, 394f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xde553e5f, 395f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xaf78741f, 396f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x741f30f0, 397f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xcfef5e2c, 398f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x741f3eac, 399f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xafb8771e, 400f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5e677fed, 401f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x0bd3e2cc, 402f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x741ccfec, 403f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xe5ca53cd, 404f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x6fcb4f74, 405f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5dadde4b, 406f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x2ab63d38, 407f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x4bb3de30, 408f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x751f741c, 409f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x6c42effa, 410f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xefea7fce, 411f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x6ffc30be, 412f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xefec3fca, 413f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x30b3de2e, 414f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xadf85d9e, 415f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xaf7daefd, 416f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5d9ede2e, 417f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5d9eafdd, 418f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x761f10ac, 419f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x1da07efd, 420f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x30adfffe, 421f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x4908fb18, 422f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5fffdfff, 423f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xafbb709b, 424f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x4ef85e67, 425f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xadf814ad, 426f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7a0f70ad, 427f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xcfef50ad, 428f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7a0fde30, 429f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5da0afed, 430f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x3c12780f, 431f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xefef780f, 432f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xefef790f, 433f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xa7f85e0f, 434f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xffef790f, 435f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xefef790f, 436f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x14adde2e, 437f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5d9eadfd, 438f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5e2dfffb, 439f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xe79addfd, 440f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xeff96079, 441f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x607ae79a, 442f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xddfceff9, 443f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x60795dff, 444f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x607acfef, 445f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xefefefdf, 446f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xefbfef7f, 447f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xeeffedff, 448f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xebffe7ff, 449f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xafefafdf, 450f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xafbfaf7f, 451f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xaeffadff, 452f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xabffa7ff, 453f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x6fef6fdf, 454f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x6fbf6f7f, 455f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x6eff6dff, 456f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x6bff67ff, 457f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x2fef2fdf, 458f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x2fbf2f7f, 459f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x2eff2dff, 460f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x2bff27ff, 461f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x4e08fd1f, 462f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xe5ff6e0f, 463f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xaff87eef, 464f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7e0ffdef, 465f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xf11f6079, 466f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xabf8f542, 467f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7e0af11c, 468f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x37cfae3a, 469f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7fec90be, 470f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xadf8efdc, 471f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xcfeae52f, 472f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7d0fe12b, 473f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xf11c6079, 474f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7e0a4df8, 475f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xcfea5dc4, 476f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7d0befec, 477f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xcfea5dc6, 478f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xe522efdc, 479f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x5dc6cfda, 480f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x4e08fd1f, 481f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x6e0faff8, 482f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7c1f761f, 483f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xfdeff91f, 484f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x6079abf8, 485f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x761cee24, 486f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xf91f2bfb, 487f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xefefcfec, 488f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xf91f6079, 489f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x761c27fb, 490f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xefdf5da7, 491f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xcfdc7fdd, 492f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xd09c4bf8, 493f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x47fd7c1f, 494f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x761ccfcf, 495f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7eef7fed, 496f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7dfdf093, 497f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xef7e7f1e, 498f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x771efb18, 499f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x6079e722, 500f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xe6bbe5bb, 501f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xae0ae5bb, 502f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x600bae85, 503f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xe2bbe2bb, 504f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xe2bbe2bb, 505f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xaf02e2bb, 506f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xe2bb2ff9, 507f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x6079e2bb 508f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug}; 509f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 510af71bcfeaaaad92147922282341d394093a4fc9bAnton Vorontsovstatic uint patch_2f00[] __initdata = { 511f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x30303030, 512f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x3e3e3434, 513f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xabbf9b99, 514f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x4b4fbdbd, 515f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x59949334, 516f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x9fff37fb, 517f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x9b177dd9, 518f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x936956bb, 519f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xfbdd697b, 520f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xdd2fd113, 521f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x1db9f7bb, 522f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x36313963, 523f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x79373369, 524f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x3193137f, 525f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7331737a, 526f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xf7bb9b99, 527f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x9bb19795, 528f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x77fdfd3d, 529f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x573b773f, 530f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x737933f7, 531f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xb991d115, 532f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x31699315, 533f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x31531694, 534f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xbf4fbdbd, 535f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x35931497, 536f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x35376956, 537f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xbd697b9d, 538f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x96931313, 539f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x19797937, 540f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x6935af78, 541f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xb9b3baa3, 542f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xb8788683, 543f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x368f78f7, 544f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x87778733, 545f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x3ffffb3b, 546f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x8e8f78b8, 547f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x1d118e13, 548f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xf3ff3f8b, 549f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x6bd8e173, 550f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xd1366856, 551f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x68d1687b, 552f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x3daf78b8, 553f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x3a3a3f87, 554f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x8f81378f, 555f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xf876f887, 556f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x77fd8778, 557f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x737de8d6, 558f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xbbf8bfff, 559f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xd8df87f7, 560f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xfd876f7b, 561f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x8bfff8bd, 562f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x8683387d, 563f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xb873d87b, 564f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x3b8fd7f8, 565f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xf7338883, 566f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xbb8ee1f8, 567f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xef837377, 568f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x3337b836, 569f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x817d11f8, 570f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7378b878, 571f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xd3368b7d, 572f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xed731b7d, 573f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x833731f3, 574f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xf22f3f23 575f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug}; 576f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 577af71bcfeaaaad92147922282341d394093a4fc9bAnton Vorontsovstatic uint patch_2e00[] __initdata = { 578f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x27eeeeee, 579f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xeeeeeeee, 580f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xeeeeeeee, 581f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xeeeeeeee, 582f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xee4bf4fb, 583f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xdbd259bb, 584f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x1979577f, 585f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xdfd2d573, 586f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xb773f737, 587f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x4b4fbdbd, 588f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x25b9b177, 589f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xd2d17376, 590f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x956bbfdd, 591f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x697bdd2f, 592f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xff9f79ff, 593f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xff9ff22f 594f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug}; 595f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug#endif 596f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 597f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug/* 598f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug * USB SOF patch arrays. 599f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug */ 600f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 601f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug#ifdef CONFIG_USB_SOF_UCODE_PATCH 602f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 603af71bcfeaaaad92147922282341d394093a4fc9bAnton Vorontsovstatic uint patch_2000[] __initdata = { 604f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7fff0000, 605f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7ffd0000, 606f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x7ffb0000, 607f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x49f7ba5b, 608f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xba383ffb, 609f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xf9b8b46d, 610f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xe5ab4e07, 611f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xaf77bffe, 612f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x3f7bbf79, 613f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xba5bba38, 614f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xe7676076, 615f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x60750000 616f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug}; 617f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 618af71bcfeaaaad92147922282341d394093a4fc9bAnton Vorontsovstatic uint patch_2f00[] __initdata = { 619f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0x3030304c, 620f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xcab9e441, 621f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 0xa1aaf220 622f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug}; 623f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug#endif 624f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 625af71bcfeaaaad92147922282341d394093a4fc9bAnton Vorontsovvoid __init cpm_load_patch(cpm8xx_t *cp) 626f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug{ 627f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug volatile uint *dp; /* Dual-ported RAM. */ 628f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug volatile cpm8xx_t *commproc; 6292069a6ae19a34d96cc9cb284eb645b165138e03fAnton Vorontsov#if defined(CONFIG_I2C_SPI_UCODE_PATCH) || \ 6302069a6ae19a34d96cc9cb284eb645b165138e03fAnton Vorontsov defined(CONFIG_I2C_SPI_SMC1_UCODE_PATCH) 631f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug volatile iic_t *iip; 63256825c88ff438f4dbb51a44591cc29e707fe783aAnton Vorontsov volatile struct spi_pram *spp; 6332069a6ae19a34d96cc9cb284eb645b165138e03fAnton Vorontsov#ifdef CONFIG_I2C_SPI_SMC1_UCODE_PATCH 634f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug volatile smc_uart_t *smp; 6352069a6ae19a34d96cc9cb284eb645b165138e03fAnton Vorontsov#endif 6362069a6ae19a34d96cc9cb284eb645b165138e03fAnton Vorontsov#endif 637f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug int i; 638f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 639f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug commproc = cp; 640f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 641f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug#ifdef CONFIG_USB_SOF_UCODE_PATCH 642f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug commproc->cp_rccr = 0; 643f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 644f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug dp = (uint *)(commproc->cp_dpmem); 645f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug for (i=0; i<(sizeof(patch_2000)/4); i++) 646f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug *dp++ = patch_2000[i]; 647f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 648f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug dp = (uint *)&(commproc->cp_dpmem[0x0f00]); 649f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug for (i=0; i<(sizeof(patch_2f00)/4); i++) 650f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug *dp++ = patch_2f00[i]; 651f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 652f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug commproc->cp_rccr = 0x0009; 653f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 654f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug printk("USB SOF microcode patch installed\n"); 655f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug#endif /* CONFIG_USB_SOF_UCODE_PATCH */ 656f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 657f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug#if defined(CONFIG_I2C_SPI_UCODE_PATCH) || \ 658f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug defined(CONFIG_I2C_SPI_SMC1_UCODE_PATCH) 659f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 660f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug commproc->cp_rccr = 0; 661f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 662f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug dp = (uint *)(commproc->cp_dpmem); 663f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug for (i=0; i<(sizeof(patch_2000)/4); i++) 664f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug *dp++ = patch_2000[i]; 665f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 666f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug dp = (uint *)&(commproc->cp_dpmem[0x0f00]); 667f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug for (i=0; i<(sizeof(patch_2f00)/4); i++) 668f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug *dp++ = patch_2f00[i]; 669f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 670f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug iip = (iic_t *)&commproc->cp_dparam[PROFF_IIC]; 671f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug# define RPBASE 0x0500 672f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug iip->iic_rpbase = RPBASE; 673f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 674f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug /* Put SPI above the IIC, also 32-byte aligned. 675f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug */ 676f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug i = (RPBASE + sizeof(iic_t) + 31) & ~31; 67756825c88ff438f4dbb51a44591cc29e707fe783aAnton Vorontsov spp = (struct spi_pram *)&commproc->cp_dparam[PROFF_SPI]; 67856825c88ff438f4dbb51a44591cc29e707fe783aAnton Vorontsov spp->rpbase = i; 679f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 680f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug# if defined(CONFIG_I2C_SPI_UCODE_PATCH) 681f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug commproc->cp_cpmcr1 = 0x802a; 682f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug commproc->cp_cpmcr2 = 0x8028; 683f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug commproc->cp_cpmcr3 = 0x802e; 684f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug commproc->cp_cpmcr4 = 0x802c; 685f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug commproc->cp_rccr = 1; 686f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 687f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug printk("I2C/SPI microcode patch installed.\n"); 688f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug# endif /* CONFIG_I2C_SPI_UCODE_PATCH */ 689f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 690f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug# if defined(CONFIG_I2C_SPI_SMC1_UCODE_PATCH) 691f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 692f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug dp = (uint *)&(commproc->cp_dpmem[0x0e00]); 693f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug for (i=0; i<(sizeof(patch_2e00)/4); i++) 694f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug *dp++ = patch_2e00[i]; 695f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 696f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug commproc->cp_cpmcr1 = 0x8080; 697f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug commproc->cp_cpmcr2 = 0x808a; 698f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug commproc->cp_cpmcr3 = 0x8028; 699f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug commproc->cp_cpmcr4 = 0x802a; 700f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug commproc->cp_rccr = 3; 701f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 702f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug smp = (smc_uart_t *)&commproc->cp_dparam[PROFF_SMC1]; 703f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug smp->smc_rpbase = 0x1FC0; 704f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 705f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug printk("I2C/SPI/SMC1 microcode patch installed.\n"); 706f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug# endif /* CONFIG_I2C_SPI_SMC1_UCODE_PATCH) */ 707f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 708f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug#endif /* some variation of the I2C/SPI patch was selected */ 709f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug} 710f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 711f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug/* 712f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug * Take this entire routine out, since no one calls it and its 713f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug * logic is suspect. 714f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug */ 715f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 716f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug#if 0 717f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordugvoid 718f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordugverify_patch(volatile immap_t *immr) 719f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug{ 720f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug volatile uint *dp; 721f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug volatile cpm8xx_t *commproc; 722f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug int i; 723f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 724f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug commproc = (cpm8xx_t *)&immr->im_cpm; 725f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 726f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug printk("cp_rccr %x\n", commproc->cp_rccr); 727f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug commproc->cp_rccr = 0; 728f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 729f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug dp = (uint *)(commproc->cp_dpmem); 730f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug for (i=0; i<(sizeof(patch_2000)/4); i++) 731f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug if (*dp++ != patch_2000[i]) { 732f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug printk("patch_2000 bad at %d\n", i); 733f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug dp--; 734f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug printk("found 0x%X, wanted 0x%X\n", *dp, patch_2000[i]); 735f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug break; 736f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug } 737f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 738f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug dp = (uint *)&(commproc->cp_dpmem[0x0f00]); 739f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug for (i=0; i<(sizeof(patch_2f00)/4); i++) 740f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug if (*dp++ != patch_2f00[i]) { 741f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug printk("patch_2f00 bad at %d\n", i); 742f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug dp--; 743f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug printk("found 0x%X, wanted 0x%X\n", *dp, patch_2f00[i]); 744f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug break; 745f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug } 746f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug 747f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug commproc->cp_rccr = 0x0009; 748f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug} 749f2a0bd3753dad7ea4605ebd5435716b39e9f92bbVitaly Bordug#endif 750