i.MX31: Only include the SDMA code that will be used on the target. Simplify the script selection.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27189 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Michael Sevakis 2010-06-30 05:02:58 +00:00
parent e286b0bbc0
commit 6920d2b9cd
2 changed files with 73 additions and 708 deletions

View file

@ -35,8 +35,6 @@
/* Cut down to bare bones essentials */ /* Cut down to bare bones essentials */
/* Script information that depends on system revision */
static struct sdma_script_start_addrs script_info;
/* Mask of channels with callback enabled */ /* Mask of channels with callback enabled */
static unsigned long sdma_enabled_ints = 0; static unsigned long sdma_enabled_ints = 0;
/* One channel control block per channel in physically mapped device RAM */ /* One channel control block per channel in physically mapped device RAM */
@ -71,79 +69,6 @@ static void __attribute__((interrupt("IRQ"))) SDMA_HANDLER(void)
} }
} }
/* Initialize script information based upon the system revision */
static void init_script_info(void)
{
if (iim_system_rev() == IIM_SREV_1_0)
{
/* Channel script info */
script_info.app_2_mcu_addr = app_2_mcu_ADDR_1;
script_info.ap_2_ap_addr = ap_2_ap_ADDR_1;
script_info.ap_2_bp_addr = -1;
script_info.bp_2_ap_addr = -1;
script_info.loopback_on_dsp_side_addr = -1;
script_info.mcu_2_app_addr = mcu_2_app_ADDR_1;
script_info.mcu_2_shp_addr = mcu_2_shp_ADDR_1;
script_info.mcu_interrupt_only_addr = -1;
script_info.shp_2_mcu_addr = shp_2_mcu_ADDR_1;
script_info.uartsh_2_mcu_addr = uartsh_2_mcu_ADDR_1;
script_info.uart_2_mcu_addr = uart_2_mcu_ADDR_1;
script_info.dptc_dvfs_addr = dptc_dvfs_ADDR_1;
script_info.firi_2_mcu_addr = firi_2_mcu_ADDR_1;
script_info.firi_2_per_addr = -1;
script_info.mshc_2_mcu_addr = mshc_2_mcu_ADDR_1;
script_info.per_2_app_addr = -1;
script_info.per_2_firi_addr = -1;
script_info.per_2_shp_addr = -1;
script_info.mcu_2_ata_addr = mcu_2_ata_ADDR_1;
script_info.mcu_2_firi_addr = mcu_2_firi_ADDR_1;
script_info.mcu_2_mshc_addr = mcu_2_mshc_ADDR_1;
script_info.ata_2_mcu_addr = ata_2_mcu_ADDR_1;
script_info.uartsh_2_per_addr = -1;
script_info.shp_2_per_addr = -1;
script_info.uart_2_per_addr = -1;
script_info.app_2_per_addr = -1;
/* Main code block info */
script_info.ram_code_size = RAM_CODE_SIZE_1;
script_info.ram_code_start_addr = RAM_CODE_START_ADDR_1;
script_info.mcu_start_addr = (unsigned long)sdma_code_1;
}
else
{
/* Channel script info */
script_info.app_2_mcu_addr = app_2_mcu_patched_ADDR_2;
script_info.ap_2_ap_addr = ap_2_ap_ADDR_2;
script_info.ap_2_bp_addr = ap_2_bp_ADDR_2;
script_info.bp_2_ap_addr = bp_2_ap_ADDR_2;
script_info.loopback_on_dsp_side_addr = -1;
script_info.mcu_2_app_addr = mcu_2_app_patched_ADDR_2;
script_info.mcu_2_shp_addr = mcu_2_shp_patched_ADDR_2;
script_info.mcu_interrupt_only_addr = -1;
script_info.shp_2_mcu_addr = shp_2_mcu_patched_ADDR_2;
script_info.uartsh_2_mcu_addr = uartsh_2_mcu_patched_ADDR_2;
script_info.uart_2_mcu_addr = uart_2_mcu_patched_ADDR_2;
script_info.dptc_dvfs_addr = -1;
script_info.firi_2_mcu_addr = firi_2_mcu_ADDR_2;
script_info.firi_2_per_addr = -1;
script_info.mshc_2_mcu_addr = -1;
script_info.per_2_app_addr = -1;
script_info.per_2_firi_addr = -1;
script_info.per_2_shp_addr = per_2_shp_ADDR_2;
script_info.mcu_2_ata_addr = mcu_2_ata_ADDR_2;
script_info.mcu_2_firi_addr = mcu_2_firi_ADDR_2;
script_info.mcu_2_mshc_addr = -1;
script_info.ata_2_mcu_addr = ata_2_mcu_ADDR_2;
script_info.uartsh_2_per_addr = -1;
script_info.shp_2_per_addr = shp_2_per_ADDR_2;
script_info.uart_2_per_addr = -1;
script_info.app_2_per_addr = -1;
/* Main code block info */
script_info.ram_code_size = RAM_CODE_SIZE_2;
script_info.ram_code_start_addr = RAM_CODE_START_ADDR_2;
script_info.mcu_start_addr = (unsigned long)sdma_code_2;
}
}
/* Return pc of SDMA script in SDMA halfword space according to peripheral /* Return pc of SDMA script in SDMA halfword space according to peripheral
* and transfer type */ * and transfer type */
static unsigned long get_script_pc(unsigned int peripheral_type, static unsigned long get_script_pc(unsigned int peripheral_type,
@ -159,7 +84,7 @@ static unsigned long get_script_pc(unsigned int peripheral_type,
case SDMA_TRAN_EMI_2_INT: case SDMA_TRAN_EMI_2_INT:
case SDMA_TRAN_EMI_2_EMI: case SDMA_TRAN_EMI_2_EMI:
case SDMA_TRAN_INT_2_EMI: case SDMA_TRAN_INT_2_EMI:
res = script_info.ap_2_ap_addr; res = AP_2_AP_ADDR;
break; break;
} }
break; break;
@ -169,16 +94,16 @@ static unsigned long get_script_pc(unsigned int peripheral_type,
switch (transfer_type) switch (transfer_type)
{ {
case SDMA_TRAN_EMI_2_DSP: case SDMA_TRAN_EMI_2_DSP:
res = script_info.ap_2_bp_addr; res = AP_2_BP_ADDR;
break; break;
case SDMA_TRAN_DSP_2_EMI: case SDMA_TRAN_DSP_2_EMI:
res = script_info.bp_2_ap_addr; res = BP_2_AP_ADDR;
break; break;
case SDMA_TRAN_DSP_2_EMI_LOOP: case SDMA_TRAN_DSP_2_EMI_LOOP:
res = script_info.loopback_on_dsp_side_addr; res = LOOPBACK_ON_DSP_SIDE_ADDR;
break; break;
case SDMA_TRAN_EMI_2_DSP_LOOP: case SDMA_TRAN_EMI_2_DSP_LOOP:
res = script_info.mcu_interrupt_only_addr; res = MCU_INTERRUPT_ONLY_ADDR;
break; break;
} }
break; break;
@ -189,16 +114,16 @@ static unsigned long get_script_pc(unsigned int peripheral_type,
switch (transfer_type) switch (transfer_type)
{ {
case SDMA_TRAN_PER_2_INT: case SDMA_TRAN_PER_2_INT:
res = script_info.firi_2_per_addr; res = FIRI_2_PER_ADDR;
break; break;
case SDMA_TRAN_PER_2_EMI: case SDMA_TRAN_PER_2_EMI:
res = script_info.firi_2_mcu_addr; res = FIRI_2_MCU_ADDR;
break; break;
case SDMA_TRAN_INT_2_PER: case SDMA_TRAN_INT_2_PER:
res = script_info.per_2_firi_addr; res = PER_2_FIRI_ADDR;
break; break;
case SDMA_TRAN_EMI_2_PER: case SDMA_TRAN_EMI_2_PER:
res = script_info.mcu_2_firi_addr; res = MCU_2_FIRI_ADDR;
break; break;
} }
break; break;
@ -209,16 +134,16 @@ static unsigned long get_script_pc(unsigned int peripheral_type,
switch (transfer_type) switch (transfer_type)
{ {
case SDMA_TRAN_PER_2_INT: case SDMA_TRAN_PER_2_INT:
res = script_info.uart_2_per_addr; res = UART_2_PER_ADDR;
break; break;
case SDMA_TRAN_PER_2_EMI: case SDMA_TRAN_PER_2_EMI:
res = script_info.uart_2_mcu_addr; res = UART_2_MCU_ADDR;
break; break;
case SDMA_TRAN_INT_2_PER: case SDMA_TRAN_INT_2_PER:
res = script_info.per_2_app_addr; res = PER_2_APP_ADDR;
break; break;
case SDMA_TRAN_EMI_2_PER: case SDMA_TRAN_EMI_2_PER:
res = script_info.mcu_2_app_addr; res = MCU_2_APP_ADDR;
break; break;
} }
break; break;
@ -229,16 +154,16 @@ static unsigned long get_script_pc(unsigned int peripheral_type,
switch (transfer_type) switch (transfer_type)
{ {
case SDMA_TRAN_PER_2_INT: case SDMA_TRAN_PER_2_INT:
res = script_info.uartsh_2_per_addr; res = UARTSH_2_PER_ADDR;
break; break;
case SDMA_TRAN_PER_2_EMI: case SDMA_TRAN_PER_2_EMI:
res = script_info.uartsh_2_mcu_addr; res = UARTSH_2_MCU_ADDR;
break; break;
case SDMA_TRAN_INT_2_PER: case SDMA_TRAN_INT_2_PER:
res = script_info.per_2_shp_addr; res = PER_2_SHP_ADDR;
break; break;
case SDMA_TRAN_EMI_2_PER: case SDMA_TRAN_EMI_2_PER:
res = script_info.mcu_2_shp_addr; res = MCU_2_SHP_ADDR;
break; break;
} }
break; break;
@ -248,10 +173,10 @@ static unsigned long get_script_pc(unsigned int peripheral_type,
switch (transfer_type) switch (transfer_type)
{ {
case SDMA_TRAN_PER_2_EMI: case SDMA_TRAN_PER_2_EMI:
res = script_info.ata_2_mcu_addr; res = ATA_2_MCU_ADDR;
break; break;
case SDMA_TRAN_EMI_2_PER: case SDMA_TRAN_EMI_2_PER:
res = script_info.mcu_2_ata_addr; res = MCU_2_ATA_ADDR;
break; break;
} }
break; break;
@ -262,16 +187,16 @@ static unsigned long get_script_pc(unsigned int peripheral_type,
switch (transfer_type) switch (transfer_type)
{ {
case SDMA_TRAN_PER_2_INT: case SDMA_TRAN_PER_2_INT:
res = script_info.app_2_per_addr; res = APP_2_PER_ADDR;
break; break;
case SDMA_TRAN_PER_2_EMI: case SDMA_TRAN_PER_2_EMI:
res = script_info.app_2_mcu_addr; res = APP_2_MCU_ADDR;
break; break;
case SDMA_TRAN_INT_2_PER: case SDMA_TRAN_INT_2_PER:
res = script_info.per_2_app_addr; res = PER_2_APP_ADDR;
break; break;
case SDMA_TRAN_EMI_2_PER: case SDMA_TRAN_EMI_2_PER:
res = script_info.mcu_2_app_addr; res = MCU_2_APP_ADDR;
break; break;
} }
break; break;
@ -285,16 +210,16 @@ static unsigned long get_script_pc(unsigned int peripheral_type,
switch (transfer_type) switch (transfer_type)
{ {
case SDMA_TRAN_PER_2_INT: case SDMA_TRAN_PER_2_INT:
res = script_info.shp_2_per_addr; res = SHP_2_PER_ADDR;
break; break;
case SDMA_TRAN_PER_2_EMI: case SDMA_TRAN_PER_2_EMI:
res = script_info.shp_2_mcu_addr; res = SHP_2_MCU_ADDR;
break; break;
case SDMA_TRAN_INT_2_PER: case SDMA_TRAN_INT_2_PER:
res = script_info.per_2_shp_addr; res = PER_2_SHP_ADDR;
break; break;
case SDMA_TRAN_EMI_2_PER: case SDMA_TRAN_EMI_2_PER:
res = script_info.mcu_2_shp_addr; res = MCU_2_SHP_ADDR;
break; break;
} }
break; break;
@ -303,10 +228,10 @@ static unsigned long get_script_pc(unsigned int peripheral_type,
switch (transfer_type) switch (transfer_type)
{ {
case SDMA_TRAN_PER_2_EMI: case SDMA_TRAN_PER_2_EMI:
res = script_info.mshc_2_mcu_addr; res = MSHC_2_MCU_ADDR;
break; break;
case SDMA_TRAN_EMI_2_PER: case SDMA_TRAN_EMI_2_PER:
res = script_info.mcu_2_mshc_addr; res = MCU_2_MSHC_ADDR;
break; break;
} }
break; break;
@ -315,7 +240,7 @@ static unsigned long get_script_pc(unsigned int peripheral_type,
switch (transfer_type) switch (transfer_type)
{ {
case SDMA_TRAN_PER_2_EMI: case SDMA_TRAN_PER_2_EMI:
res = script_info.dptc_dvfs_addr; res = DPTC_DVFS_ADDR;
break; break;
} }
break; break;
@ -511,8 +436,6 @@ void INIT_ATTR sdma_init(void)
SDMA_RESET |= SDMA_RESET_RESET; SDMA_RESET |= SDMA_RESET_RESET;
while (SDMA_RESET & SDMA_RESET_RESET); while (SDMA_RESET & SDMA_RESET_RESET);
init_script_info();
/* No channel enabled, all priorities 0 */ /* No channel enabled, all priorities 0 */
for (i = 0; i < CH_NUM; i++) for (i = 0; i < CH_NUM; i++)
{ {
@ -561,9 +484,9 @@ void INIT_ATTR sdma_init(void)
set_buffer_descriptor(&c0_buffer_desc.bd, set_buffer_descriptor(&c0_buffer_desc.bd,
C0_SETPM, C0_SETPM,
BD_DONE | BD_WRAP | BD_EXTD, BD_DONE | BD_WRAP | BD_EXTD,
script_info.ram_code_size, RAM_CODE_SIZE,
(void *)addr_virt_to_phys(script_info.mcu_start_addr), (void *)addr_virt_to_phys(MCU_START_ADDR),
(void *)(unsigned long)script_info.ram_code_start_addr); (void *)RAM_CODE_START_ADDR);
SDMA_HSTART = 1ul; SDMA_HSTART = 1ul;
sdma_channel_wait_nonblocking(0); sdma_channel_wait_nonblocking(0);

View file

@ -24,568 +24,10 @@
* Copyright 2004-2008 Freescale Semiconductor, Inc. All Rights Reserved. * Copyright 2004-2008 Freescale Semiconductor, Inc. All Rights Reserved.
*/ */
/* This header contains both versions 1 and 2 of SDMA code */
#ifndef __SDMA_SCRIPT_CODE_H__ #ifndef __SDMA_SCRIPT_CODE_H__
#define __SDMA_SCRIPT_CODE_H__ #define __SDMA_SCRIPT_CODE_H__
/*!
* Following define start address of start script
*/
#define start_ADDR_1 0
/*!
* Following define size of start script
*/
#define start_SIZE_1 21
/*! /* REV 2 (for i.MX system revision > 1.0) */
* Following define start address of core script
*/
#define core_ADDR_1 80
/*!
* Following define size of core script
*/
#define core_SIZE_1 152
/*!
* Following define start address of common script
*/
#define common_ADDR_1 232
/*!
* Following define size of common script
*/
#define common_SIZE_1 191
/*!
* Following define start address of burst_copy script
*/
#define burst_copy_ADDR_1 423
/*!
* Following define size of burst_copy script
*/
#define burst_copy_SIZE_1 87
/*!
* Following define start address of dsp_2_burst script
*/
#define dsp_2_burst_ADDR_1 510
/*!
* Following define size of dsp_2_burst script
*/
#define dsp_2_burst_SIZE_1 24
/*!
* Following define start address of burst_2_dsp script
*/
#define burst_2_dsp_ADDR_1 534
/*!
* Following define size of burst_2_dsp script
*/
#define burst_2_dsp_SIZE_1 24
/*!
* Following define start address of dsp_copy script
*/
#define dsp_copy_ADDR_1 558
/*!
* Following define size of dsp_copy script
*/
#define dsp_copy_SIZE_1 86
/*!
* Following define start address of mcu_2_mcu script
*/
#define mcu_2_mcu_ADDR_1 644
/*!
* Following define size of mcu_2_mcu script
*/
#define mcu_2_mcu_SIZE_1 79
/*!
* Following define start address of mcu_2_per script
*/
#define mcu_2_per_ADDR_1 723
/*!
* Following define size of mcu_2_per script
*/
#define mcu_2_per_SIZE_1 88
/*!
* Following define start address of test script
*/
#define test_ADDR_1 811
/*!
* Following define size of test script
*/
#define test_SIZE_1 63
/*!
* Following define start address of mcu_2_dsp script
*/
#define mcu_2_dsp_ADDR_1 874
/*!
* Following define size of mcu_2_dsp script
*/
#define mcu_2_dsp_SIZE_1 30
/*!
* Following define start address of mcu_2_dsp_2buf script
*/
#define mcu_2_dsp_2buf_ADDR_1 904
/*!
* Following define size of mcu_2_dsp_2buf script
*/
#define mcu_2_dsp_2buf_SIZE_1 113
/*!
* Following define start address of dsp_2_mcu script
*/
#define dsp_2_mcu_ADDR_1 1017
/*!
* Following define size of dsp_2_mcu script
*/
#define dsp_2_mcu_SIZE_1 30
/*!
* Following define start address of dsp_2_mcu_2buf script
*/
#define dsp_2_mcu_2buf_ADDR_1 1047
/*!
* Following define size of dsp_2_mcu_2buf script
*/
#define dsp_2_mcu_2buf_SIZE_1 113
/*!
* Following define start address of dsp_2_dsp script
*/
#define dsp_2_dsp_ADDR_1 1160
/*!
* Following define size of dsp_2_dsp script
*/
#define dsp_2_dsp_SIZE_1 64
/*!
* Following define start address of per_2_mcu script
*/
#define per_2_mcu_ADDR_1 1224
/*!
* Following define size of per_2_mcu script
*/
#define per_2_mcu_SIZE_1 121
/*!
* Following define start address of dsp_2_per_2buf script
*/
#define dsp_2_per_2buf_ADDR_1 1345
/*!
* Following define size of dsp_2_per_2buf script
*/
#define dsp_2_per_2buf_SIZE_1 164
/*!
* Following define start address of per_2_dsp_2buf script
*/
#define per_2_dsp_2buf_ADDR_1 1509
/*!
* Following define size of per_2_dsp_2buf script
*/
#define per_2_dsp_2buf_SIZE_1 168
/*!
* Following define start address of per_2_per script
*/
#define per_2_per_ADDR_1 1677
/*!
* Following define size of per_2_per script
*/
#define per_2_per_SIZE_1 67
/*!
* Following define start address of error_dsp script
*/
#define error_dsp_ADDR_1 1744
/*!
* Following define size of error_dsp script
*/
#define error_dsp_SIZE_1 34
/*!
* Following define start address of ap_2_ap script
*/
#define ap_2_ap_ADDR_1 6144
/*!
* Following define size of ap_2_ap script
*/
#define ap_2_ap_SIZE_1 294
/*!
* Following define start address of app_2_mcu script
*/
#define app_2_mcu_ADDR_1 6438
/*!
* Following define size of app_2_mcu script
*/
#define app_2_mcu_SIZE_1 101
/*!
* Following define start address of ata_2_mcu script
*/
#define ata_2_mcu_ADDR_1 6539
/*!
* Following define size of ata_2_mcu script
*/
#define ata_2_mcu_SIZE_1 110
/*!
* Following define start address of dptc_dvfs script
*/
#define dptc_dvfs_ADDR_1 6649
/*!
* Following define size of dptc_dvfs script
*/
#define dptc_dvfs_SIZE_1 274
/*!
* Following define start address of error script
*/
#define error_ADDR_1 6923
/*!
* Following define size of error script
*/
#define error_SIZE_1 73
/*!
* Following define start address of firi_2_mcu script
*/
#define firi_2_mcu_ADDR_1 6996
/*!
* Following define size of firi_2_mcu script
*/
#define firi_2_mcu_SIZE_1 114
/*!
* Following define start address of mcu_2_app script
*/
#define mcu_2_app_ADDR_1 7110
/*!
* Following define size of mcu_2_app script
*/
#define mcu_2_app_SIZE_1 127
/*!
* Following define start address of mcu_2_ata script
*/
#define mcu_2_ata_ADDR_1 7237
/*!
* Following define size of mcu_2_ata script
*/
#define mcu_2_ata_SIZE_1 87
/*!
* Following define start address of mcu_2_firi script
*/
#define mcu_2_firi_ADDR_1 7324
/*!
* Following define size of mcu_2_firi script
*/
#define mcu_2_firi_SIZE_1 77
/*!
* Following define start address of mcu_2_mshc script
*/
#define mcu_2_mshc_ADDR_1 7401
/*!
* Following define size of mcu_2_mshc script
*/
#define mcu_2_mshc_SIZE_1 48
/*!
* Following define start address of mcu_2_shp script
*/
#define mcu_2_shp_ADDR_1 7449
/*!
* Following define size of mcu_2_shp script
*/
#define mcu_2_shp_SIZE_1 123
/*!
* Following define start address of mshc_2_mcu script
*/
#define mshc_2_mcu_ADDR_1 7572
/*!
* Following define size of mshc_2_mcu script
*/
#define mshc_2_mcu_SIZE_1 60
/*!
* Following define start address of shp_2_mcu script
*/
#define shp_2_mcu_ADDR_1 7632
/*!
* Following define size of shp_2_mcu script
*/
#define shp_2_mcu_SIZE_1 101
/*!
* Following define start address of uart_2_mcu script
*/
#define uart_2_mcu_ADDR_1 7733
/*!
* Following define size of uart_2_mcu script
*/
#define uart_2_mcu_SIZE_1 105
/*!
* Following define start address of uartsh_2_mcu script
*/
#define uartsh_2_mcu_ADDR_1 7838
/*!
* Following define size of uartsh_2_mcu script
*/
#define uartsh_2_mcu_SIZE_1 98
/*!
* Following define the start address of sdma ram
*/
#define RAM_CODE_START_ADDR_1 6144
/*!
* Following define the size of sdma ram
*/
#define RAM_CODE_SIZE_1 1792
/*!
* Code download for i.MX system revision = 1.0
*/
static __attribute__((aligned(4), section(".sdmacode")))
const short sdma_code_1[RAM_CODE_SIZE_1] =
{
0xc0ec, 0x7d59, 0x0970, 0x0111, 0x5111, 0x5ad1, 0x5bd9, 0xc0fe,
0x5ce1, 0x7d02, 0x0200, 0x9806, 0x08ff, 0x0011, 0x28ff, 0x00bc,
0x05df, 0x7d4b, 0x06df, 0x7d2f, 0x6dc5, 0x6ed5, 0x5ef1, 0x0288,
0xd81a, 0x9854, 0x0b04, 0x00d3, 0x7d20, 0x06a5, 0x3e03, 0x3d03,
0x03a5, 0x3b03, 0x008b, 0x058b, 0x7802, 0x63d8, 0x0000, 0x7e72,
0x63ff, 0x7e70, 0x02a5, 0x008a, 0x4e00, 0x7d01, 0x983d, 0x6dcf,
0x6edf, 0x0015, 0x0015, 0x7802, 0x63d8, 0x0000, 0x7e63, 0x63ff,
0x7e61, 0x3a03, 0x008a, 0x6dcd, 0x6edd, 0x7801, 0x63d8, 0x7e5a,
0x63ff, 0x7e58, 0x0006, 0x6dc5, 0x6e07, 0x5ef1, 0x0288, 0xd8f7,
0x7e02, 0x7f04, 0x9854, 0x0007, 0x68cc, 0x6b28, 0x54e1, 0x0089,
0xdb13, 0x0188, 0x5ce1, 0x9854, 0x52d1, 0x53d9, 0x54e1, 0xc10d,
0x7dad, 0x0200, 0x9800, 0x0200, 0x9800, 0x06df, 0x7d06, 0x6d23,
0x6ed5, 0x5ef1, 0x0288, 0xd8cd, 0x9854, 0x5ef1, 0x6e07, 0x6d03,
0x0b04, 0x00d3, 0x7d59, 0x06a5, 0x3e03, 0x3d03, 0x4d00, 0x7d09,
0x03a5, 0x00a3, 0x0588, 0x008b, 0xd8c9, 0x7ed8, 0x620c, 0x7ed6,
0x008d, 0x4e00, 0x7c25, 0x0a20, 0x00da, 0x7c22, 0x6503, 0x3d1f,
0x02a5, 0x00a2, 0x0215, 0x0215, 0x6a18, 0x6a28, 0x7fc7, 0x0a20,
0x0b08, 0x00da, 0x7c06, 0x6b18, 0x6b28, 0x7fc0, 0x0000, 0x2020,
0x9889, 0x0688, 0x0015, 0x0015, 0x6818, 0x6828, 0x7fb7, 0x98c2,
0x0007, 0x6a0c, 0x54e1, 0x0089, 0xdb0f, 0x0188, 0x5ce1, 0x9854,
0x0b04, 0x00d3, 0x7d21, 0x0389, 0x1b12, 0x048b, 0x0688, 0x0015,
0x0015, 0x0588, 0x038c, 0x0a08, 0x05da, 0x008d, 0x7c01, 0x008a,
0x05a0, 0x7803, 0x620b, 0x5a03, 0x1b01, 0x7e98, 0x008b, 0x00a4,
0x038c, 0x7803, 0x5203, 0x6a0b, 0x1b01, 0x6a28, 0x7f8f, 0x0000,
0x4d00, 0x7ce8, 0x008e, 0x3803, 0xd8c9, 0x7e88, 0x620c, 0x7e86,
0x9854, 0x7802, 0x6209, 0x6a29, 0x0006, 0x3e03, 0x4e00, 0x7d11,
0x0b04, 0x03a6, 0x02db, 0x7d01, 0x038a, 0x02a3, 0x048a, 0x008b,
0x7802, 0x6329, 0x6bc8, 0x7ebc, 0x63c8, 0x7ebc, 0x008c, 0x4800,
0x7d15, 0x0488, 0x0015, 0x0015, 0x6edf, 0x7803, 0x632b, 0x6bc8,
0x0000, 0x7eae, 0x63c8, 0x7eae, 0x008c, 0x3803, 0x6edd, 0x7803,
0x6329, 0x6bc8, 0x0000, 0x7ea4, 0x63c8, 0x7ea4, 0x0006, 0x3d03,
0x4d00, 0x7d0e, 0x0b04, 0x03a5, 0x02db, 0x7d01, 0x038a, 0x02a3,
0x048a, 0x008b, 0x7802, 0x63c8, 0x6b09, 0x7e1e, 0x7f1e, 0x008c,
0x0488, 0x0015, 0x0015, 0x6dcf, 0x0288, 0x008a, 0x0d08, 0x02dd,
0x7c01, 0x008d, 0x7802, 0x63c8, 0x6b0b, 0x7e0e, 0x6b28, 0x7f0d,
0x0000, 0x02dd, 0x7c02, 0x2208, 0x990d, 0x008c, 0x3803, 0x65c0,
0x6dc5, 0x7802, 0x63c8, 0x6b09, 0x6b28, 0x0006, 0x0870, 0x0011,
0x5010, 0xc0ec, 0x7d5e, 0x5ac0, 0x5bc8, 0x5ef8, 0xc0fe, 0x56f8,
0x7d02, 0x0200, 0x992c, 0x6ec3, 0x6d07, 0x5df0, 0x0dff, 0x0511,
0x1dff, 0x05bc, 0x4d00, 0x7d44, 0x0b70, 0x0311, 0x522b, 0x5313,
0x02b9, 0x4a00, 0x7c04, 0x6a28, 0x7f3a, 0x0400, 0x993c, 0x008f,
0x00d5, 0x7d01, 0x008d, 0x05a0, 0x0a03, 0x0212, 0x02bc, 0x0210,
0x4a00, 0x7d1c, 0x4a02, 0x7d20, 0x4a01, 0x7d23, 0x0b70, 0x0311,
0x53eb, 0x62c8, 0x7e24, 0x0360, 0x7d02, 0x0210, 0x0212, 0x6a09,
0x7f1e, 0x0212, 0x6a09, 0x7f1b, 0x0212, 0x6a09, 0x7f18, 0x2003,
0x4800, 0x7cef, 0x0b70, 0x0311, 0x5313, 0x997d, 0x0015, 0x0015,
0x7802, 0x62c8, 0x6a0b, 0x997c, 0x0015, 0x7802, 0x62c8, 0x6a0a,
0x997c, 0x7802, 0x62c8, 0x6a09, 0x7c02, 0x0000, 0x993a, 0xdb13,
0x6a28, 0x7ffd, 0x008b, 0x52c3, 0x53cb, 0xc10d, 0x7da5, 0x0200,
0x992c, 0x0200, 0x9929, 0xc19d, 0xc0ec, 0x7d69, 0x0c70, 0x0411,
0x5414, 0x5ac4, 0x028c, 0x58da, 0x5efa, 0xc0fe, 0x56fa, 0x7d02,
0x0200, 0x9994, 0x6d07, 0x5bca, 0x5cd2, 0x0bff, 0x0311, 0x1bff,
0x04bb, 0x0415, 0x53da, 0x4c00, 0x7d47, 0x0a70, 0x0211, 0x552a,
0x5212, 0x008d, 0x00bb, 0x4800, 0x7c07, 0x05b9, 0x4d00, 0x7c13,
0x6928, 0x7f2d, 0x0400, 0x99a5, 0x008f, 0x0015, 0x04d8, 0x7d01,
0x008c, 0x04a0, 0x0015, 0x7802, 0x55c6, 0x6d0b, 0x7e29, 0x6d28,
0x7f1e, 0x0000, 0x99a3, 0x1e20, 0x5506, 0x2620, 0x008d, 0x0560,
0x7c08, 0x065f, 0x55c6, 0x063f, 0x7e1b, 0x6d0a, 0x7f10, 0x4c00,
0x7d1b, 0x04d8, 0x7d02, 0x008c, 0x0020, 0x04a0, 0x0015, 0x7802,
0x55c6, 0x6d0b, 0x7e0d, 0x6d28, 0x7f02, 0x0000, 0x99ec, 0x0007,
0x680c, 0x6d0c, 0x6507, 0x6d07, 0x6d2b, 0x6d28, 0x0007, 0x680c,
0x0007, 0x54d2, 0x0454, 0x99ef, 0x6928, 0x7ff1, 0x54d2, 0x008a,
0x52c0, 0x53c8, 0xc10d, 0x0288, 0x7d9f, 0x0200, 0x9994, 0x0200,
0x998c, 0xc0ec, 0x7d72, 0x0800, 0x0970, 0x0111, 0x5111, 0x5ac1,
0x5bc9, 0x028e, 0xc0fe, 0x068a, 0x7c6a, 0x5dd9, 0x5ce1, 0x0bff,
0x0311, 0x1bff, 0x03bc, 0x5bd1, 0x1a5c, 0x6ac3, 0x63c8, 0x0363,
0x7c05, 0x036f, 0x7d27, 0x0374, 0x7c7a, 0x9a71, 0xdb04, 0x3c06,
0x4c00, 0x7df7, 0x028f, 0x1a04, 0x6a23, 0x620b, 0x6f23, 0x301f,
0x00aa, 0x0462, 0x7c04, 0x4a00, 0x7d0b, 0x2001, 0x9a30, 0x048a,
0x620b, 0x2201, 0x1c01, 0x1801, 0x02dc, 0x7d02, 0x301f, 0x00aa,
0x048f, 0x1c04, 0x6c07, 0x0488, 0x3c1f, 0x6c2b, 0x0045, 0x028e,
0x1a5c, 0x9a11, 0x058f, 0x1d0c, 0x6d23, 0x650b, 0x007d, 0x7c01,
0x1d08, 0x007c, 0x7c01, 0x1d04, 0x6d23, 0x650b, 0x0488, 0x3c1f,
0x0417, 0x0417, 0x0417, 0x0417, 0x059c, 0x6d23, 0x028e, 0x1a34,
0x6ad7, 0x0488, 0x0804, 0x7802, 0x650b, 0x6dc8, 0x008c, 0x1a28,
0x6ad7, 0x63c8, 0x034c, 0x6bc8, 0x54d1, 0x4c00, 0x7d06, 0x0065,
0x7c02, 0x0101, 0x0025, 0x0400, 0x9a0d, 0x52c1, 0x53c9, 0x54e1,
0x0453, 0xc10d, 0x7d95, 0x0200, 0x9a00, 0x0200, 0x99f9, 0x0200,
0x9a00, 0x55d9, 0x6d07, 0x54d1, 0x058a, 0x2508, 0x6dc7, 0x0373,
0x7c03, 0x65c8, 0x6d0b, 0x2408, 0x0372, 0x7c04, 0x65c8, 0x6d0b,
0x2408, 0x9a86, 0x6cce, 0x65c8, 0x6d0a, 0x2404, 0x6d28, 0x6507,
0x5dd9, 0x5cd1, 0x6ad7, 0x6ae3, 0x63c8, 0x0334, 0x6bc8, 0x0370,
0x7ca9, 0x0c60, 0x0411, 0x04bb, 0x4c00, 0x7da4, 0x0410, 0x1c30,
0x0410, 0x04bb, 0x046d, 0x7d0a, 0x047d, 0x7c03, 0x047c, 0x7c01,
0x9a3a, 0x003b, 0x003a, 0x0039, 0x0058, 0x9ab5, 0x047d, 0x7d03,
0x047c, 0x7d01, 0x9a3a, 0x005b, 0xdaf9, 0x1d18, 0x6d23, 0x650b,
0x0510, 0x003a, 0x0039, 0x0038, 0x00ad, 0xdb04, 0x0c30, 0x0410,
0x04bb, 0x003c, 0x003d, 0x00ac, 0xdaf9, 0x007b, 0x7c04, 0x003d,
0x003c, 0x1d0c, 0x9ad6, 0x048f, 0x1c14, 0x6c23, 0x640b, 0x4401,
0x7d04, 0x005d, 0x005c, 0x1d0c, 0x9ad6, 0x0310, 0x3b30, 0x4b30,
0x7d01, 0x1b10, 0x0310, 0x003d, 0x003c, 0x00ab, 0x6ad7, 0x63c8,
0x6d23, 0x650b, 0x0560, 0x7d03, 0x005e, 0xdaed, 0x9a3a, 0x003e,
0x0c80, 0x0410, 0x0394, 0xdaed, 0x640b, 0x037f, 0x7d02, 0x1a14,
0x9aea, 0x1a0c, 0x6ad7, 0x6cc8, 0x9a3a, 0x0c7f, 0x0410, 0x03b4,
0x04b8, 0x03ac, 0x640b, 0x6bc8, 0x028e, 0x1a04, 0x6ad7, 0x6cc8,
0x0006, 0x058f, 0x1d08, 0x6d23, 0x650b, 0x007d, 0x7c01, 0x1d38,
0x007c, 0x7c01, 0x1d1c, 0x0006, 0x048b, 0x042c, 0x0454, 0x042b,
0x6ad7, 0x6cc8, 0x0006, 0x0007, 0x684c, 0x6144, 0x9b1c, 0x0007,
0x68cc, 0x61d0, 0x9b1c, 0x0007, 0x680c, 0x680c, 0x6107, 0x6907,
0x692b, 0x6928, 0x0007, 0x680c, 0x0d70, 0x0511, 0x5515, 0x55f5,
0x01a5, 0x0dff, 0x0512, 0x1dff, 0x0512, 0x04bd, 0x0499, 0x0454,
0x0006, 0x08ff, 0x0011, 0x28ff, 0x0006, 0x038c, 0x0eff, 0x0611,
0x2eff, 0x03b6, 0x0006, 0x53d6, 0x0398, 0x5bd6, 0x53ee, 0x0398,
0x5bee, 0x0006, 0x52de, 0x53e6, 0x54ee, 0x0498, 0x0454, 0x0006,
0x50f6, 0x52c6, 0x53ce, 0x54d6, 0x0498, 0x0454, 0x0006, 0x6207,
0x0b70, 0x0311, 0x5013, 0x55f0, 0x02a5, 0x0bff, 0x0312, 0x1bff,
0x0312, 0x04bb, 0x049a, 0x0006, 0x1e10, 0x0870, 0x0011, 0x5010,
0xc0ec, 0x7d39, 0x5ac0, 0x5bc8, 0x5ef8, 0xc0fe, 0x56f8, 0x7d02,
0x0200, 0x9b5b, 0x6d07, 0x5df0, 0x0dff, 0x0511, 0x1dff, 0x05bc,
0x4d00, 0x7d17, 0x6ec3, 0x62c8, 0x7e28, 0x0264, 0x7d08, 0x0b70,
0x0311, 0x522b, 0x02b9, 0x4a00, 0x7c18, 0x0400, 0x9b6a, 0x0212,
0x3aff, 0x008a, 0x05d8, 0x7d01, 0x008d, 0x0a10, 0x6ed3, 0x6ac8,
0xdba5, 0x6a28, 0x7f17, 0x0b70, 0x0311, 0x5013, 0xdbbd, 0x52c0,
0x53c8, 0xc10d, 0x7dd0, 0x0200, 0x9b5b, 0x008f, 0x00d5, 0x7d01,
0x008d, 0xdba5, 0x9b68, 0x0200, 0x9b58, 0x0007, 0x68cc, 0x6a28,
0x7f01, 0x9ba3, 0x0007, 0x6a0c, 0x6a0c, 0x6207, 0x6a07, 0x6a2b,
0x6a28, 0x0007, 0x680c, 0x0454, 0x9b81, 0x05a0, 0x1e08, 0x6ec3,
0x0388, 0x3b03, 0x0015, 0x0015, 0x7802, 0x62c8, 0x6a0b, 0x7ee5,
0x6a28, 0x7fe8, 0x0000, 0x6ec1, 0x008b, 0x7802, 0x62c8, 0x6a09,
0x7edc, 0x6a28, 0x7fdf, 0x2608, 0x0006, 0x55f0, 0x6207, 0x02a5,
0x0dff, 0x0511, 0x1dff, 0x04b5, 0x049a, 0x0006, 0x0870, 0x0011,
0x5010, 0xc0ec, 0x7d78, 0x5ac0, 0x5bc8, 0x5ef8, 0xc0fe, 0x56f8,
0x7d02, 0x0200, 0x9bcc, 0x6d03, 0x6ed3, 0x0dff, 0x0511, 0x1dff,
0x05bc, 0x5df8, 0x4d00, 0x7d5e, 0x0b70, 0x0311, 0x522b, 0x5313,
0x02b9, 0x4a00, 0x7c04, 0x62ff, 0x7e3f, 0x0400, 0x9bdc, 0x008f,
0x00d5, 0x7d01, 0x008d, 0x05a0, 0x5ddb, 0x0d03, 0x0512, 0x05bc,
0x0510, 0x5dd3, 0x4d00, 0x7d27, 0x4d02, 0x7d20, 0x4d01, 0x7d1a,
0x0b70, 0x0311, 0x53eb, 0x0360, 0x7d05, 0x6509, 0x7e25, 0x620a,
0x7e23, 0x9c06, 0x620a, 0x7e20, 0x6509, 0x7e1e, 0x0512, 0x0512,
0x02ad, 0x6ac8, 0x7f19, 0x2003, 0x4800, 0x7ced, 0x0b70, 0x0311,
0x5313, 0x9c21, 0x7802, 0x6209, 0x6ac8, 0x9c20, 0x0015, 0x7802,
0x620a, 0x6ac8, 0x9c20, 0x0015, 0x0015, 0x7802, 0x620b, 0x6ac8,
0x7c03, 0x0000, 0x55db, 0x9bda, 0x0007, 0x68cc, 0x680c, 0x55d3,
0x4d00, 0x7d03, 0x4d02, 0x7d02, 0x9c2f, 0x0017, 0x0017, 0x55db,
0x009d, 0x55fb, 0x05a0, 0x08ff, 0x0011, 0x18ff, 0x0010, 0x04b8,
0x04ad, 0x0454, 0x62ff, 0x7ee8, 0x008b, 0x52c0, 0x53c8, 0xc10d,
0x7d8b, 0x0200, 0x9bcc, 0x0200, 0x9bc9, 0xc19d, 0xc0ec, 0x7d52,
0x0c70, 0x0411, 0x5414, 0x5ac4, 0x028c, 0x58da, 0x5efa, 0xc0fe,
0x56fa, 0x7d02, 0x0200, 0x9c4e, 0x6d03, 0x5bca, 0x5cd2, 0x0bff,
0x0311, 0x1bff, 0x04bb, 0x0415, 0x53da, 0x0a70, 0x0211, 0x4c00,
0x7d28, 0x552a, 0x05bb, 0x4d00, 0x7c02, 0x0400, 0x9c61, 0x4c01,
0x7d0f, 0x008f, 0x0015, 0x04d8, 0x7d01, 0x008c, 0x0020, 0x04a0,
0x0015, 0x7802, 0x650b, 0x5d06, 0x0000, 0x7e0c, 0x7f0d, 0x9c5f,
0x650a, 0x7e08, 0x008d, 0x0011, 0x0010, 0x05a8, 0x065f, 0x5d06,
0x063f, 0x7f02, 0x0007, 0x680c, 0x0007, 0x5012, 0x54d0, 0x0454,
0x9c8b, 0x5012, 0x54d0, 0x0473, 0x7c06, 0x552a, 0x05b9, 0x4d00,
0x7c02, 0x0400, 0x9c8d, 0x52c0, 0x53c8, 0xc10d, 0x0288, 0x7db6,
0x0200, 0x9c4e, 0x0200, 0x9c46, 0x0870, 0x0011, 0x5010, 0xc0ec,
0x7d46, 0x5ac0, 0x5bc8, 0x5ef8, 0xc0fe, 0x56f8, 0x7d02, 0x0200,
0x9ca2, 0x0b70, 0x0311, 0x6ed3, 0x6d03, 0x0dff, 0x0511, 0x1dff,
0x05bc, 0x4d00, 0x7d2b, 0x522b, 0x02b9, 0x4a00, 0x7c04, 0x62c8,
0x7e1f, 0x0400, 0x9cb3, 0x008f, 0x00d5, 0x7d01, 0x008d, 0x05a0,
0x0060, 0x7c05, 0x6edd, 0x6209, 0x7e16, 0x6ac8, 0x7f11, 0x0015,
0x0060, 0x7c05, 0x6ede, 0x620a, 0x7e0e, 0x6ac8, 0x7f09, 0x6edf,
0x0015, 0x7802, 0x620b, 0x6ac8, 0x0000, 0x7e05, 0x7f01, 0x9cb1,
0x0007, 0x68cc, 0x9cdd, 0x0007, 0x6a0c, 0x0454, 0x62c8, 0x7ef8,
0x5013, 0x52c0, 0x53c8, 0xc10d, 0x7dbd, 0x0200, 0x9ca2, 0x0200,
0x9c9f, 0xc19d, 0x0870, 0x0011, 0xc0ec, 0x7d29, 0x5010, 0x5ac0,
0x5ef8, 0xc0fe, 0x56f8, 0x7d02, 0x0200, 0x9cf0, 0x0870, 0x0011,
0x6d03, 0x0dff, 0x0511, 0x1dff, 0x05bc, 0x4d00, 0x7d12, 0x5228,
0x02b9, 0x4a00, 0x7c02, 0x0400, 0x9cff, 0x620b, 0x7e06, 0x5a06,
0x7f06, 0x0000, 0x2504, 0x7d05, 0x9cff, 0x0007, 0x680c, 0x0007,
0x0454, 0x5010, 0x52c0, 0xc10d, 0x7ddb, 0x0200, 0x9cf0, 0x0200,
0x9cec, 0xc19d, 0x0870, 0x0011, 0xc0ec, 0x7d74, 0x5010, 0x5ac0,
0x5bc8, 0x5ef8, 0xc0fe, 0x56f8, 0x7d02, 0x0200, 0x9d20, 0x6d03,
0x0d03, 0x0512, 0x05bc, 0x0510, 0x5dd0, 0x0dff, 0x0511, 0x1dff,
0x05bc, 0x5df8, 0x4d00, 0x7d57, 0x0a70, 0x0211, 0x532a, 0x5212,
0x03b9, 0x4b00, 0x7c02, 0x0400, 0x9d34, 0x008f, 0x05d8, 0x7d01,
0x008d, 0x05a0, 0x5dda, 0x55d2, 0x4d00, 0x7d27, 0x4d02, 0x7d20,
0x4d01, 0x7d1a, 0x0a70, 0x0211, 0x52ea, 0x0260, 0x7d05, 0x6509,
0x7e25, 0x630a, 0x7e23, 0x9d58, 0x630a, 0x7e20, 0x6509, 0x7e1e,
0x0512, 0x0512, 0x03ad, 0x5b06, 0x7f19, 0x2003, 0x4800, 0x7ced,
0x0a70, 0x0211, 0x5212, 0x9d73, 0x7802, 0x6309, 0x5b06, 0x9d72,
0x0015, 0x7802, 0x630a, 0x5b06, 0x9d72, 0x0015, 0x0015, 0x7802,
0x630b, 0x5b06, 0x7c03, 0x55da, 0x0000, 0x9d32, 0x0007, 0x680c,
0x55d2, 0x4d00, 0x7d03, 0x4d02, 0x7d02, 0x9d80, 0x0017, 0x0017,
0x55da, 0x009d, 0x55fa, 0x05a0, 0x08ff, 0x0011, 0x18ff, 0x0010,
0x04b8, 0x04ad, 0x0454, 0x008a, 0x52c0, 0x53c8, 0xc10d, 0x7d90,
0x0200, 0x9d20, 0x0200, 0x9d1c, 0xc19d, 0x0870, 0x0011, 0xc0ec,
0x7d35, 0x5010, 0x5ac0, 0x5ef8, 0xc0fe, 0x56f8, 0x7d02, 0x0200,
0x9d9b, 0x0870, 0x0011, 0x6d07, 0x0dff, 0x0511, 0x1dff, 0x05bc,
0x4d00, 0x7d1c, 0x5228, 0x02b9, 0x4a00, 0x7c04, 0x6928, 0x7f0b,
0x0400, 0x9daa, 0x5206, 0x7e10, 0x6a0b, 0x6928, 0x7f04, 0x0000,
0x2504, 0x7d0c, 0x9daa, 0x0007, 0x680c, 0x680c, 0x6207, 0x6a07,
0x6a2b, 0x6a28, 0x0007, 0x680c, 0x0007, 0x0454, 0x6928, 0x7ff3,
0x5010, 0x52c0, 0xc10d, 0x7dcf, 0x0200, 0x9d9b, 0x0200, 0x9d97,
0xc19d, 0x0870, 0x0011, 0xc0ec, 0x7d5e, 0x5010, 0x5ac0, 0x5bc8,
0x5ef8, 0xc0fe, 0x56f8, 0x7d02, 0x0200, 0x9dd7, 0x6d07, 0x5df0,
0x0dff, 0x0511, 0x1dff, 0x05bc, 0x4d00, 0x7d44, 0x0a70, 0x0211,
0x532a, 0x5212, 0x03b9, 0x4b00, 0x7c04, 0x6a28, 0x7f3a, 0x0400,
0x9de6, 0x008f, 0x05d8, 0x7d01, 0x008d, 0x05a0, 0x0b03, 0x0312,
0x03bc, 0x0310, 0x4b00, 0x7d1c, 0x4b02, 0x7d20, 0x4b01, 0x7d23,
0x0a70, 0x0211, 0x52ea, 0x5306, 0x7e24, 0x0260, 0x7d02, 0x0310,
0x0312, 0x6b09, 0x7f1e, 0x0312, 0x6b09, 0x7f1b, 0x0312, 0x6b09,
0x7f18, 0x2003, 0x4800, 0x7cef, 0x0a70, 0x0211, 0x5212, 0x9e27,
0x0015, 0x0015, 0x7802, 0x5306, 0x6b0b, 0x9e26, 0x0015, 0x7802,
0x5306, 0x6b0a, 0x9e26, 0x7802, 0x5306, 0x6b09, 0x7c02, 0x0000,
0x9de4, 0xdb13, 0x6928, 0x7ffd, 0x008a, 0x52c0, 0x53c8, 0xc10d,
0x7da6, 0x0200, 0x9dd7, 0x0200, 0x9dd3, 0x0870, 0x0011, 0x5010,
0xc0ec, 0x7d5b, 0x5ac0, 0x5bc8, 0x5ef8, 0xc0fe, 0x56f8, 0x7d02,
0x0200, 0x9e3b, 0x0b70, 0x0311, 0x6ec3, 0x6d07, 0x5df0, 0x0dff,
0x0511, 0x1dff, 0x05bc, 0x4d00, 0x7d3d, 0x522b, 0x02b9, 0x4a00,
0x7c04, 0x6a28, 0x7f33, 0x0400, 0x9e4d, 0x028e, 0x1a94, 0x6ac3,
0x62c8, 0x0269, 0x7d1b, 0x1e94, 0x6ec3, 0x6ed3, 0x62c8, 0x0248,
0x6ac8, 0x2694, 0x6ec3, 0x62c8, 0x026e, 0x7d31, 0x6a09, 0x7f1e,
0x2501, 0x4d00, 0x7d1f, 0x028e, 0x1a98, 0x6ac3, 0x62c8, 0x6ec3,
0x0260, 0x7df1, 0x6a28, 0x7f12, 0xdb47, 0x9e8c, 0x6ee3, 0x008f,
0x2001, 0x00d5, 0x7d01, 0x008d, 0x05a0, 0x62c8, 0x026e, 0x7d17,
0x6a09, 0x7f04, 0x2001, 0x7cf9, 0x0000, 0x9e4b, 0x0289, 0xdb13,
0x018a, 0x9e9b, 0x6a28, 0x7ffa, 0x0b70, 0x0311, 0x5013, 0x52c0,
0x53c8, 0xc10d, 0x7da8, 0x0200, 0x9e3b, 0x0200, 0x9e38, 0x6a28,
0x7fed, 0xdb47, 0x9e9b, 0x0458, 0x0454, 0x9e8c, 0xc19d, 0x0870,
0x0011, 0xc0ec, 0x7d54, 0x5010, 0x5ac0, 0x5bc8, 0x5ef8, 0xc0fe,
0x56f8, 0x7d02, 0x0200, 0x9ea5, 0x0b70, 0x0311, 0x6d07, 0x5df0,
0x0dff, 0x0511, 0x1dff, 0x05bc, 0x4d00, 0x7d36, 0x522b, 0x02b9,
0x4a00, 0x7c04, 0x6928, 0x7f2c, 0x0400, 0x9eb6, 0x028e, 0x1a94,
0x5202, 0x0269, 0x7d16, 0x1e94, 0x5206, 0x0248, 0x5a06, 0x2694,
0x5206, 0x026e, 0x7d2e, 0x6a09, 0x7f1b, 0x2501, 0x4d00, 0x7d1c,
0x028e, 0x1a98, 0x5202, 0x0260, 0x7df3, 0x6a28, 0x7f11, 0xdb47,
0x9eee, 0x008f, 0x2001, 0x00d5, 0x7d01, 0x008d, 0x05a0, 0x5206,
0x026e, 0x7d17, 0x6a09, 0x7f04, 0x2001, 0x7cf9, 0x0000, 0x9eb4,
0x0289, 0xdb13, 0x018a, 0x9efd, 0x6928, 0x7ffa, 0x0b70, 0x0311,
0x5013, 0x52c0, 0x53c8, 0xc10d, 0x7db0, 0x0200, 0x9ea5, 0x0200,
0x9ea1, 0x6a28, 0x7fed, 0xdb47, 0x9efd, 0x0458, 0x0454, 0x9eee
};
/* REV 2 */
/*! /*!
* Following define start address of signature script * Following define start address of signature script
*/ */
@ -850,7 +292,7 @@ static __attribute__((aligned(4), section(".sdmacode")))
#define RAM_CODE_SIZE_2 1292 #define RAM_CODE_SIZE_2 1292
/*! /*!
* Code download for i.MX system revision > 1.0 * Code download
*/ */
static __attribute__((aligned(4), section(".sdmacode"))) static __attribute__((aligned(4), section(".sdmacode")))
const short sdma_code_2[RAM_CODE_SIZE_2] = const short sdma_code_2[RAM_CODE_SIZE_2] =
@ -1019,44 +461,44 @@ static __attribute__((aligned(4), section(".sdmacode")))
0x9d09, 0x0458, 0x0454, 0x9cfa 0x9d09, 0x0458, 0x0454, 0x9cfa
}; };
/*! /*!
* Structure containing script addresses. * SDMA script code info
*/ */
struct sdma_script_start_addrs
{ /* script addresses in SDMA halfword space */
/* SDMA code script info - in halfword SDMA memory space */ #define AP_2_AP_ADDR ap_2_ap_ADDR_2
unsigned short ap_2_ap_addr; #define AP_2_BP_ADDR ap_2_bp_ADDR_2
unsigned short ap_2_bp_addr; #define APP_2_MCU_ADDR app_2_mcu_patched_ADDR_2
unsigned short bp_2_ap_addr; #define APP_2_PER_ADDR (-1)
unsigned short loopback_on_dsp_side_addr; #define ATA_2_MCU_ADDR ata_2_mcu_ADDR_2
unsigned short mcu_interrupt_only_addr; #define BP_2_AP_ADDR bp_2_ap_ADDR_2
unsigned short firi_2_per_addr; #define DPTC_DVFS_ADDR (-1)
unsigned short firi_2_mcu_addr; #define FIRI_2_MCU_ADDR firi_2_mcu_ADDR_2
unsigned short per_2_firi_addr; #define FIRI_2_PER_ADDR (-1)
unsigned short mcu_2_firi_addr; #define LOOPBACK_ON_DSP_SIDE_ADDR (-1)
unsigned short uart_2_per_addr; #define MCU_2_APP_ADDR mcu_2_app_patched_ADDR_2
unsigned short uart_2_mcu_addr; #define MCU_2_ATA_ADDR mcu_2_ata_ADDR_2
unsigned short per_2_app_addr; #define MCU_2_FIRI_ADDR mcu_2_firi_ADDR_2
unsigned short mcu_2_app_addr; #define MCU_2_MSHC_ADDR (-1)
unsigned short uartsh_2_per_addr; #define MCU_2_SHP_ADDR mcu_2_shp_patched_ADDR_2
unsigned short uartsh_2_mcu_addr; #define MCU_INTERRUPT_ONLY_ADDR (-1)
unsigned short per_2_shp_addr; #define MSHC_2_MCU_ADDR (-1)
unsigned short mcu_2_shp_addr; #define PER_2_APP_ADDR (-1)
unsigned short ata_2_mcu_addr; #define PER_2_FIRI_ADDR (-1)
unsigned short mcu_2_ata_addr; #define PER_2_SHP_ADDR per_2_shp_ADDR_2
unsigned short app_2_per_addr; #define SHP_2_MCU_ADDR shp_2_mcu_patched_ADDR_2
unsigned short app_2_mcu_addr; #define SHP_2_PER_ADDR shp_2_per_ADDR_2
unsigned short shp_2_per_addr; #define UART_2_MCU_ADDR uart_2_mcu_patched_ADDR_2
unsigned short shp_2_mcu_addr; #define UART_2_PER_ADDR (-1)
unsigned short mshc_2_mcu_addr; #define UARTSH_2_MCU_ADDR uartsh_2_mcu_patched_ADDR_2
unsigned short mcu_2_mshc_addr; #define UARTSH_2_PER_ADDR (-1)
unsigned short dptc_dvfs_addr;
/* SDMA script code info */ /* address where ram code starts (in SDMA halfword space) */
/* address where ram code starts (in SDMA halfword space) */ #define RAM_CODE_START_ADDR RAM_CODE_START_ADDR_2
unsigned short ram_code_start_addr; /* size of the ram code (in halfwords) */
/* size of the ram code (in halfwords) */ #define RAM_CODE_SIZE RAM_CODE_SIZE_2
unsigned short ram_code_size; /* RAM image address on AP */
/* RAM image address on AP */ #define MCU_START_ADDR ((unsigned long)sdma_code_2)
unsigned long mcu_start_addr;
};
#endif /*__SDMA_SCRIPT_CODE_H__ */ #endif /*__SDMA_SCRIPT_CODE_H__ */