From: rtel Date: Mon, 14 Jul 2014 11:46:34 +0000 (+0000) Subject: Remove Zynq demo project ready to recreate the project using the 14.2 version of... X-Git-Tag: V8.1.0~15 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=15659c169f5eb4701090cf8cbb4b7fe80f518c65;p=freertos Remove Zynq demo project ready to recreate the project using the 14.2 version of Xilinx's SDK. git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@2277 1d2547de-c912-0410-9cb9-b8ca96c0e9e2 --- diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/.cproject b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/.cproject deleted file mode 100644 index 47e73db42..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/.cproject +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/.project b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/.project deleted file mode 100644 index 4a6216cff..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/.project +++ /dev/null @@ -1,242 +0,0 @@ - - - RTOSDemo - RTOSDemo_bsp - ps7_cortexa9_0 - - RTOSDemo_bsp - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - - - src/FreeRTOS_Source - 2 - FREERTOS_ROOT/FreeRTOS/Source - - - src/Full_Demo/FreeRTOS-Plus-CLI - 2 - FREERTOS_ROOT/FreeRTOS-Plus/Source/FreeRTOS-Plus-CLI - - - src/Full_Demo/Sample-CLI-commands.c - 1 - FREERTOS_ROOT/FreeRTOS-Plus/Demo/Common/FreeRTOS_Plus_CLI_Demos/Sample-CLI-commands.c - - - src/Full_Demo/Standard_Demo_Tasks - 2 - FREERTOS_ROOT/FreeRTOS/Demo/Common - - - src/Full_Demo/UARTCommandConsole.c - 1 - FREERTOS_ROOT/FreeRTOS-Plus/Demo/Common/FreeRTOS_Plus_CLI_Demos/UARTCommandConsole.c - - - src/lwIP_Demo/lwip-1.4.0 - 2 - FREERTOS_ROOT/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0 - - - src/Full_Demo/Standard_Demo_Tasks/IntQueue.c - 1 - FREERTOS_ROOT/FreeRTOS/Demo/Common/Minimal/IntQueue.c - - - - - 1390074074500 - src/FreeRTOS_Source/portable - 9 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-MemMang - - - - 1390074074500 - src/FreeRTOS_Source/portable - 9 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-GCC - - - - 0 - src/Full_Demo/Standard_Demo_Tasks - 9 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-minimal - - - - 0 - src/Full_Demo/Standard_Demo_Tasks - 9 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-include - - - - 1402344314156 - src/lwIP_Demo/lwip-1.4.0 - 10 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-doc - - - - 1390074123406 - src/FreeRTOS_Source/portable/GCC - 9 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-ARM_CA9 - - - - 1390074099015 - src/FreeRTOS_Source/portable/MemMang - 5 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-heap_4.c - - - - 0 - src/Full_Demo/Standard_Demo_Tasks/Minimal - 6 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-alt*.* - - - - 0 - src/Full_Demo/Standard_Demo_Tasks/Minimal - 6 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-cr*.* - - - - 0 - src/Full_Demo/Standard_Demo_Tasks/Minimal - 6 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-sp*.* - - - - 0 - src/Full_Demo/Standard_Demo_Tasks/Minimal - 6 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-intqueue*.* - - - - 0 - src/Full_Demo/Standard_Demo_Tasks/Minimal - 6 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-*strings*.* - - - - 0 - src/Full_Demo/Standard_Demo_Tasks/Minimal - 6 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-copy*.* - - - - 0 - src/Full_Demo/Standard_Demo_Tasks/include - 6 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-alt*.* - - - - 0 - src/lwIP_Demo/lwip-1.4.0/ports - 9 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-Zynq - - - - 0 - src/lwIP_Demo/lwip-1.4.0/src/core - 10 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-ipv6 - - - - 0 - src/lwIP_Demo/lwip-1.4.0/src/core - 10 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-snmp - - - - 0 - src/lwIP_Demo/lwip-1.4.0/src/netif - 5 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-eth*.* - - - - 0 - src/lwIP_Demo/lwip-1.4.0/src/netif - 10 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-ppp - - - - - - FREERTOS_ROOT - $%7BPARENT-4-PROJECT_LOC%7D - - - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/Blinky_Demo/main_blinky.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/Blinky_Demo/main_blinky.c deleted file mode 100644 index 2b4d9209d..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/Blinky_Demo/main_blinky.c +++ /dev/null @@ -1,226 +0,0 @@ -/* - FreeRTOS V8.0.1 - Copyright (C) 2014 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - - FreeRTOS 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. Full license text is available from the following - link: http://www.freertos.org/a00114.html - - 1 tab == 4 spaces! - - *************************************************************************** - * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * - * * - * http://www.FreeRTOS.org/FAQHelp.html * - * * - *************************************************************************** - - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - -/****************************************************************************** - * NOTE 1: This project provides three demo applications. A simple blinky - * style project, a more comprehensive test and demo application, and an - * lwIP example. The mainSELECTED_APPLICATION setting in main.c is used to - * select between the three. See the notes on using mainSELECTED_APPLICATION - * in main.c. This file implements the simply blinky style version. - * - * NOTE 2: This file only contains the source code that is specific to the - * basic demo. Generic functions, such FreeRTOS hook functions, and functions - * required to configure the hardware are defined in main.c. - ****************************************************************************** - * - * main_blinky() creates one queue, and two tasks. It then starts the - * scheduler. - * - * The Queue Send Task: - * The queue send task is implemented by the prvQueueSendTask() function in - * this file. prvQueueSendTask() sits in a loop that causes it to repeatedly - * block for 200 milliseconds, before sending the value 100 to the queue that - * was created within main_blinky(). Once the value is sent, the task loops - * back around to block for another 200 milliseconds...and so on. - * - * The Queue Receive Task: - * The queue receive task is implemented by the prvQueueReceiveTask() function - * in this file. prvQueueReceiveTask() sits in a loop where it repeatedly - * blocks on attempts to read data from the queue that was created within - * main_blinky(). When data is received, the task checks the value of the - * data, and if the value equals the expected 100, toggles an LED. The 'block - * time' parameter passed to the queue receive function specifies that the - * task should be held in the Blocked state indefinitely to wait for data to - * be available on the queue. The queue receive task will only leave the - * Blocked state when the queue send task writes to the queue. As the queue - * send task writes to the queue every 200 milliseconds, the queue receive - * task leaves the Blocked state every 200 milliseconds, and therefore toggles - * the LED every 200 milliseconds. - */ - -/* Kernel includes. */ -#include "FreeRTOS.h" -#include "task.h" -#include "semphr.h" - -/* Standard demo includes. */ -#include "partest.h" - -/* Priorities at which the tasks are created. */ -#define mainQUEUE_RECEIVE_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 ) -#define mainQUEUE_SEND_TASK_PRIORITY ( tskIDLE_PRIORITY + 1 ) - -/* The rate at which data is sent to the queue. The 200ms value is converted -to ticks using the portTICK_PERIOD_MS constant. */ -#define mainQUEUE_SEND_FREQUENCY_MS ( 200 / portTICK_PERIOD_MS ) - -/* The number of items the queue can hold. This is 1 as the receive task -will remove items as they are added, meaning the send task should always find -the queue empty. */ -#define mainQUEUE_LENGTH ( 1 ) - -/* The LED toggled by the Rx task. */ -#define mainTASK_LED ( 0 ) - -/*-----------------------------------------------------------*/ - -/* - * The tasks as described in the comments at the top of this file. - */ -static void prvQueueReceiveTask( void *pvParameters ); -static void prvQueueSendTask( void *pvParameters ); - -/*-----------------------------------------------------------*/ - -/* The queue used by both tasks. */ -static QueueHandle_t xQueue = NULL; - -/*-----------------------------------------------------------*/ - -void main_blinky( void ) -{ - /* Create the queue. */ - xQueue = xQueueCreate( mainQUEUE_LENGTH, sizeof( uint32_t ) ); - - if( xQueue != NULL ) - { - /* Start the two tasks as described in the comments at the top of this - file. */ - xTaskCreate( prvQueueReceiveTask, /* The function that implements the task. */ - "Rx", /* The text name assigned to the task - for debug only as it is not used by the kernel. */ - configMINIMAL_STACK_SIZE, /* The size of the stack to allocate to the task. */ - NULL, /* The parameter passed to the task - not used in this case. */ - mainQUEUE_RECEIVE_TASK_PRIORITY, /* The priority assigned to the task. */ - NULL ); /* The task handle is not required, so NULL is passed. */ - - xTaskCreate( prvQueueSendTask, "TX", configMINIMAL_STACK_SIZE, NULL, mainQUEUE_SEND_TASK_PRIORITY, NULL ); - - /* Start the tasks and timer running. */ - vTaskStartScheduler(); - } - - /* If all is well, the scheduler will now be running, and the following - line will never be reached. If the following line does execute, then - there was either insufficient FreeRTOS heap memory available for the idle - and/or timer tasks to be created, or vTaskStartScheduler() was called from - User mode. See the memory management section on the FreeRTOS web site for - more details on the FreeRTOS heap http://www.freertos.org/a00111.html. The - mode from which main() is called is set in the C start up code and must be - a privileged mode (not user mode). */ - for( ;; ); -} -/*-----------------------------------------------------------*/ - -static void prvQueueSendTask( void *pvParameters ) -{ -TickType_t xNextWakeTime; -const unsigned long ulValueToSend = 100UL; - - /* Remove compiler warning about unused parameter. */ - ( void ) pvParameters; - - /* Initialise xNextWakeTime - this only needs to be done once. */ - xNextWakeTime = xTaskGetTickCount(); - - for( ;; ) - { - /* Place this task in the blocked state until it is time to run again. */ - vTaskDelayUntil( &xNextWakeTime, mainQUEUE_SEND_FREQUENCY_MS ); - - /* Send to the queue - causing the queue receive task to unblock and - toggle the LED. 0 is used as the block time so the sending operation - will not block - it shouldn't need to block as the queue should always - be empty at this point in the code. */ - xQueueSend( xQueue, &ulValueToSend, 0U ); - } -} -/*-----------------------------------------------------------*/ - -static void prvQueueReceiveTask( void *pvParameters ) -{ -unsigned long ulReceivedValue; -const unsigned long ulExpectedValue = 100UL; - - /* Remove compiler warning about unused parameter. */ - ( void ) pvParameters; - - for( ;; ) - { - /* Wait until something arrives in the queue - this task will block - indefinitely provided INCLUDE_vTaskSuspend is set to 1 in - FreeRTOSConfig.h. */ - xQueueReceive( xQueue, &ulReceivedValue, portMAX_DELAY ); - - /* To get here something must have been received from the queue, but - is it the expected value? If it is, toggle the LED. */ - if( ulReceivedValue == ulExpectedValue ) - { - vParTestToggleLED( mainTASK_LED ); - ulReceivedValue = 0U; - } - } -} -/*-----------------------------------------------------------*/ - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/FreeRTOSConfig.h deleted file mode 100644 index 9bcfed81d..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/FreeRTOSConfig.h +++ /dev/null @@ -1,243 +0,0 @@ -/* - FreeRTOS V8.0.1 - Copyright (C) 2014 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - - FreeRTOS 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. Full license text is available from the following - link: http://www.freertos.org/a00114.html - - 1 tab == 4 spaces! - - *************************************************************************** - * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * - * * - * http://www.FreeRTOS.org/FAQHelp.html * - * * - *************************************************************************** - - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - -#ifndef FREERTOS_CONFIG_H -#define FREERTOS_CONFIG_H - -#include "xparameters.h" - -/*----------------------------------------------------------- - * Application specific definitions. - * - * These definitions should be adjusted for your particular hardware and - * application requirements. - * - * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE - * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. - * - * See http://www.freertos.org/a00110.html. - *----------------------------------------------------------*/ - -/* - * The FreeRTOS Cortex-A port implements a full interrupt nesting model. - * - * Interrupts that are assigned a priority at or below - * configMAX_API_CALL_INTERRUPT_PRIORITY (which counter-intuitively in the ARM - * generic interrupt controller [GIC] means a priority that has a numerical - * value above configMAX_API_CALL_INTERRUPT_PRIORITY) can call FreeRTOS safe API - * functions and will nest. - * - * Interrupts that are assigned a priority above - * configMAX_API_CALL_INTERRUPT_PRIORITY (which in the GIC means a numerical - * value below configMAX_API_CALL_INTERRUPT_PRIORITY) cannot call any FreeRTOS - * API functions, will nest, and will not be masked by FreeRTOS critical - * sections (although it is necessary for interrupts to be globally disabled - * extremely briefly as the interrupt mask is updated in the GIC). - * - * FreeRTOS functions that can be called from an interrupt are those that end in - * "FromISR". FreeRTOS maintains a separate interrupt safe API to enable - * interrupt entry to be shorter, faster, simpler and smaller. - * - * The Zynq implements 256 unique interrupt priorities. For the purpose of - * setting configMAX_API_CALL_INTERRUPT_PRIORITY 255 represents the lowest - * priority. - */ -#define configMAX_API_CALL_INTERRUPT_PRIORITY 18 - - -#define configCPU_CLOCK_HZ 100000000UL -#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1 -#define configUSE_TICKLESS_IDLE 0 -#define configTICK_RATE_HZ ( ( TickType_t ) 1000 ) -#define configPERIPHERAL_CLOCK_HZ ( 33333000UL ) -#define configUSE_PREEMPTION 1 -#define configUSE_IDLE_HOOK 1 -#define configUSE_TICK_HOOK 1 -#define configMAX_PRIORITIES ( 7 ) -#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 200 ) -#define configTOTAL_HEAP_SIZE ( 80 * 1024 ) -#define configMAX_TASK_NAME_LEN ( 10 ) -#define configUSE_TRACE_FACILITY 1 -#define configUSE_16_BIT_TICKS 0 -#define configIDLE_SHOULD_YIELD 1 -#define configUSE_MUTEXES 1 -#define configQUEUE_REGISTRY_SIZE 8 -#define configCHECK_FOR_STACK_OVERFLOW 2 -#define configUSE_RECURSIVE_MUTEXES 1 -#define configUSE_MALLOC_FAILED_HOOK 1 -#define configUSE_APPLICATION_TASK_TAG 0 -#define configUSE_COUNTING_SEMAPHORES 1 -#define configUSE_QUEUE_SETS 1 - -/* Co-routine definitions. */ -#define configUSE_CO_ROUTINES 0 -#define configMAX_CO_ROUTINE_PRIORITIES ( 2 ) - -/* Software timer definitions. */ -#define configUSE_TIMERS 1 -#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 ) -#define configTIMER_QUEUE_LENGTH 5 -#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 ) - -/* Set the following definitions to 1 to include the API function, or zero -to exclude the API function. */ -#define INCLUDE_vTaskPrioritySet 1 -#define INCLUDE_uxTaskPriorityGet 1 -#define INCLUDE_vTaskDelete 1 -#define INCLUDE_vTaskCleanUpResources 1 -#define INCLUDE_vTaskSuspend 1 -#define INCLUDE_vTaskDelayUntil 1 -#define INCLUDE_vTaskDelay 1 -#define INCLUDE_xTimerPendFunctionCall 1 -#define INCLUDE_eTaskGetState 1 - -/* This demo makes use of one or more example stats formatting functions. These -format the raw data provided by the uxTaskGetSystemState() function in to human -readable ASCII form. See the notes in the implementation of vTaskList() within -FreeRTOS/Source/tasks.c for limitations. */ -#define configUSE_STATS_FORMATTING_FUNCTIONS 1 - -/* The private watchdog is used to generate run time stats. */ -#include "xscuwdt.h" -extern XScuWdt xWatchDogInstance; -extern void vInitialiseTimerForRunTimeStats( void ); -#define configGENERATE_RUN_TIME_STATS 1 -#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() vInitialiseTimerForRunTimeStats() -#define portGET_RUN_TIME_COUNTER_VALUE() ( ( 0xffffffffUL - XScuWdt_ReadReg( xWatchDogInstance.Config.BaseAddr, XSCUWDT_COUNTER_OFFSET ) ) >> 1 ) - -/* The size of the global output buffer that is available for use when there -are multiple command interpreters running at once (for example, one on a UART -and one on TCP/IP). This is done to prevent an output buffer being defined by -each implementation - which would waste RAM. In this case, there is only one -command interpreter running. */ -#define configCOMMAND_INT_MAX_OUTPUT_SIZE 2096 - -/* Normal assert() semantics without relying on the provision of an assert.h -header file. */ -void vAssertCalled( const char * pcFile, unsigned long ulLine ); -#define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ ); - - - -/****** Hardware specific settings. *******************************************/ - -/* - * The application must provide a function that configures a peripheral to - * create the FreeRTOS tick interrupt, then define configSETUP_TICK_INTERRUPT() - * in FreeRTOSConfig.h to call the function. This file contains a function - * that is suitable for use on the Zynq MPU. FreeRTOS_Tick_Handler() must - * be installed as the peripheral's interrupt handler. - */ -void vConfigureTickInterrupt( void ); -#define configSETUP_TICK_INTERRUPT() vConfigureTickInterrupt() - -void vClearTickInterrupt( void ); -#define configCLEAR_TICK_INTERRUPT() vClearTickInterrupt() - -/* The following constant describe the hardware, and are correct for the -Zynq MPU. */ -#define configINTERRUPT_CONTROLLER_BASE_ADDRESS ( XPAR_PS7_SCUGIC_0_DIST_BASEADDR ) -#define configINTERRUPT_CONTROLLER_CPU_INTERFACE_OFFSET ( -0xf00 ) -#define configUNIQUE_INTERRUPT_PRIORITIES 32 - - - -/****** Network configuration settings - only used when the lwIP example is -built. See the page that documents this demo on the http://www.FreeRTOS.org -website for more information. ***********************************************/ - -/* The priority for the task that unblocked by the MAC interrupt to process -received packets. */ -#define configMAC_INPUT_TASK_PRIORITY ( configMAX_PRIORITIES - 1 ) - -/* The priority of the task that runs the lwIP stack. */ -#define configLWIP_TASK_PRIORITY ( configMAX_PRIORITIES - 2 ) - -/* The priority of the task that uses lwIP sockets to provide a simple command -line interface. */ -#define configCLI_TASK_PRIORITY ( tskIDLE_PRIORITY ) - -/* MAC address configuration. */ -#define configMAC_ADDR0 0x00 -#define configMAC_ADDR1 0x13 -#define configMAC_ADDR2 0x14 -#define configMAC_ADDR3 0x15 -#define configMAC_ADDR4 0x15 -#define configMAC_ADDR5 0x16 - -/* IP address configuration. */ -#define configIP_ADDR0 172 -#define configIP_ADDR1 25 -#define configIP_ADDR2 218 -#define configIP_ADDR3 200 - -/* Netmask configuration. */ -#define configNET_MASK0 255 -#define configNET_MASK1 255 -#define configNET_MASK2 255 -#define configNET_MASK3 0 - -#endif /* FREERTOS_CONFIG_H */ - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/FreeRTOS_asm_vectors.S b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/FreeRTOS_asm_vectors.S deleted file mode 100644 index f46de6e28..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/FreeRTOS_asm_vectors.S +++ /dev/null @@ -1,144 +0,0 @@ -/****************************************************************************** -* -* (c) Copyright 2009-13 Xilinx, Inc. All rights reserved. -* -* This file contains confidential and proprietary information of Xilinx, Inc. -* and is protected under U.S. and international copyright and other -* intellectual property laws. -* -* DISCLAIMER -* This disclaimer is not a license and does not grant any rights to the -* materials distributed herewith. Except as otherwise provided in a valid -* license issued to you by Xilinx, and to the maximum extent permitted by -* applicable law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND WITH ALL -* FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS, -* IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF -* MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; -* and (2) Xilinx shall not be liable (whether in contract or tort, including -* negligence, or under any other theory of liability) for any loss or damage -* of any kind or nature related to, arising under or in connection with these -* materials, including for any direct, or any indirect, special, incidental, -* or consequential loss or damage (including loss of data, profits, goodwill, -* or any type of loss or damage suffered as a result of any action brought by -* a third party) even if such damage or loss was reasonably foreseeable or -* Xilinx had been advised of the possibility of the same. -* -* CRITICAL APPLICATIONS -* Xilinx products are not designed or intended to be fail-safe, or for use in -* any application requiring fail-safe performance, such as life-support or -* safety devices or systems, Class III medical devices, nuclear facilities, -* applications related to the deployment of airbags, or any other applications -* that could lead to death, personal injury, or severe property or -* environmental damage (individually and collectively, "Critical -* Applications"). Customer assumes the sole risk and liability of any use of -* Xilinx products in Critical Applications, subject only to applicable laws -* and regulations governing limitations on product liability. -* -* THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS PART OF THIS FILE -* AT ALL TIMES. -* -******************************************************************************/ -/*****************************************************************************/ -/** -* @file asm_vectors.s -* -* This file contains the initial vector table for the Cortex A9 processor -* -*
-* MODIFICATION HISTORY:
-*
-* Ver   Who     Date     Changes
-* ----- ------- -------- ---------------------------------------------------
-* 1.00a ecm/sdm 10/20/09 Initial version
-* 3.05a sdm	02/02/12 Save lr when profiling is enabled
-* 3.10a srt     04/18/13 Implemented ARM Erratas. Please refer to file
-*			 'xil_errata.h' for errata description
-* 
-* -* @note -* -* None. -* -******************************************************************************/ - -#include "xil_errata.h" - -.org 0 -.text -.arm - -.global _boot -.global _freertos_vector_table - -.global FIQInterrupt -.global DataAbortInterrupt -.global PrefetchAbortInterrupt -.global vPortInstallFreeRTOSVectorTable - -.extern FreeRTOS_IRQ_Handler -.extern FreeRTOS_SWI_Handler - -.section .freertos_vectors -_freertos_vector_table: - B _boot - B FreeRTOS_Undefined - ldr pc, _swi - B FreeRTOS_PrefetchAbortHandler - B FreeRTOS_DataAbortHandler - NOP /* Placeholder for address exception vector*/ - LDR PC, _irq - B FreeRTOS_FIQHandler - -_irq: .word FreeRTOS_IRQ_Handler -_swi: .word FreeRTOS_SWI_Handler - - -.align 4 -FreeRTOS_FIQHandler: /* FIQ vector handler */ - stmdb sp!,{r0-r3,r12,lr} /* state save from compiled code */ -FIQLoop: - blx FIQInterrupt /* FIQ vector */ - ldmia sp!,{r0-r3,r12,lr} /* state restore from compiled code */ - subs pc, lr, #4 /* adjust return */ - -.align 4 -FreeRTOS_Undefined: /* Undefined handler */ - b . - -.align 4 -FreeRTOS_DataAbortHandler: /* Data Abort handler */ -#ifdef CONFIG_ARM_ERRATA_775420 - dsb -#endif - stmdb sp!,{r0-r3,r12,lr} /* state save from compiled code */ - blx DataAbortInterrupt /*DataAbortInterrupt :call C function here */ - ldmia sp!,{r0-r3,r12,lr} /* state restore from compiled code */ - subs pc, lr, #4 /* adjust return */ - -.align 4 -FreeRTOS_PrefetchAbortHandler: /* Prefetch Abort handler */ -#ifdef CONFIG_ARM_ERRATA_775420 - dsb -#endif - stmdb sp!,{r0-r3,r12,lr} /* state save from compiled code */ - blx PrefetchAbortInterrupt /* PrefetchAbortInterrupt: call C function here */ - ldmia sp!,{r0-r3,r12,lr} /* state restore from compiled code */ - subs pc, lr, #4 /* adjust return */ - -.align 4 -.type vPortInstallFreeRTOSVectorTable, %function -vPortInstallFreeRTOSVectorTable: - - /* Set VBAR to the vector table that contains the FreeRTOS handlers. */ - ldr r0, =_freertos_vector_table - mcr p15, 0, r0, c12, c0, 0 - dsb - isb - bx lr - - -.end - - - - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/FreeRTOS_tick_config.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/FreeRTOS_tick_config.c deleted file mode 100644 index d2794ee22..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/FreeRTOS_tick_config.c +++ /dev/null @@ -1,165 +0,0 @@ -/* - FreeRTOS V8.0.1 - Copyright (C) 2014 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - - FreeRTOS 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. Full license text is available from the following - link: http://www.freertos.org/a00114.html - - 1 tab == 4 spaces! - - *************************************************************************** - * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * - * * - * http://www.FreeRTOS.org/FAQHelp.html * - * * - *************************************************************************** - - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - -/* FreeRTOS includes. */ -#include "FreeRTOS.h" -#include "Task.h" - -/* Xilinx includes. */ -#include "xscutimer.h" -#include "xscugic.h" - -#define XSCUTIMER_CLOCK_HZ ( XPAR_CPU_CORTEXA9_0_CPU_CLK_FREQ_HZ / 2UL ) - -static XScuTimer xTimer; - -/* - * The application must provide a function that configures a peripheral to - * create the FreeRTOS tick interrupt, then define configSETUP_TICK_INTERRUPT() - * in FreeRTOSConfig.h to call the function. This file contains a function - * that is suitable for use on the Zynq SoC. - */ -void vConfigureTickInterrupt( void ) -{ -static XScuGic xInterruptController; /* Interrupt controller instance */ -BaseType_t xStatus; -extern void FreeRTOS_Tick_Handler( void ); -XScuTimer_Config *pxTimerConfig; -XScuGic_Config *pxGICConfig; -const uint8_t ucRisingEdge = 3; - - /* This function is called with the IRQ interrupt disabled, and the IRQ - interrupt should be left disabled. It is enabled automatically when the - scheduler is started. */ - - /* Ensure XScuGic_CfgInitialize() has been called. In this demo it has - already been called from prvSetupHardware() in main(). */ - pxGICConfig = XScuGic_LookupConfig( XPAR_SCUGIC_SINGLE_DEVICE_ID ); - xStatus = XScuGic_CfgInitialize( &xInterruptController, pxGICConfig, pxGICConfig->CpuBaseAddress ); - configASSERT( xStatus == XST_SUCCESS ); - ( void ) xStatus; /* Remove compiler warning if configASSERT() is not defined. */ - - /* The priority must be the lowest possible. */ - XScuGic_SetPriorityTriggerType( &xInterruptController, XPAR_SCUTIMER_INTR, portLOWEST_USABLE_INTERRUPT_PRIORITY << portPRIORITY_SHIFT, ucRisingEdge ); - - /* Install the FreeRTOS tick handler. */ - xStatus = XScuGic_Connect( &xInterruptController, XPAR_SCUTIMER_INTR, (Xil_ExceptionHandler) FreeRTOS_Tick_Handler, ( void * ) &xTimer ); - configASSERT( xStatus == XST_SUCCESS ); - ( void ) xStatus; /* Remove compiler warning if configASSERT() is not defined. */ - - /* Initialise the timer. */ - pxTimerConfig = XScuTimer_LookupConfig( XPAR_SCUTIMER_DEVICE_ID ); - xStatus = XScuTimer_CfgInitialize( &xTimer, pxTimerConfig, pxTimerConfig->BaseAddr ); - configASSERT( xStatus == XST_SUCCESS ); - ( void ) xStatus; /* Remove compiler warning if configASSERT() is not defined. */ - - /* Enable Auto reload mode. */ - XScuTimer_EnableAutoReload( &xTimer ); - - /* Load the timer counter register. */ - XScuTimer_LoadTimer( &xTimer, XSCUTIMER_CLOCK_HZ / configTICK_RATE_HZ ); - - /* Start the timer counter and then wait for it to timeout a number of - times. */ - XScuTimer_Start( &xTimer ); - - /* Enable the interrupt for the xTimer in the interrupt controller. */ - XScuGic_Enable( &xInterruptController, XPAR_SCUTIMER_INTR ); - - /* Enable the interrupt in the xTimer itself. */ - vClearTickInterrupt(); - XScuTimer_EnableInterrupt( &xTimer ); -} -/*-----------------------------------------------------------*/ - -void vClearTickInterrupt( void ) -{ - XScuTimer_ClearInterruptStatus( &xTimer ); -} -/*-----------------------------------------------------------*/ - -void vApplicationIRQHandler( uint32_t ulICCIAR ) -{ -extern const XScuGic_Config XScuGic_ConfigTable[]; -static const XScuGic_VectorTableEntry *pxVectorTable = XScuGic_ConfigTable[ XPAR_SCUGIC_SINGLE_DEVICE_ID ].HandlerTable; -uint32_t ulInterruptID; -const XScuGic_VectorTableEntry *pxVectorEntry; - - /* Re-enable interrupts. */ - __asm ( "cpsie i" ); - - /* The ID of the interrupt is obtained by bitwise anding the ICCIAR value - with 0x3FF. */ - ulInterruptID = ulICCIAR & 0x3FFUL; - if( ulInterruptID < XSCUGIC_MAX_NUM_INTR_INPUTS ) - { - /* Call the function installed in the array of installed handler functions. */ - pxVectorEntry = &( pxVectorTable[ ulInterruptID ] ); - pxVectorEntry->Handler( pxVectorEntry->CallBackRef ); - } -} - - - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/Full_Demo/IntQueueTimer.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/Full_Demo/IntQueueTimer.c deleted file mode 100644 index c03fd942a..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/Full_Demo/IntQueueTimer.c +++ /dev/null @@ -1,261 +0,0 @@ -/* - FreeRTOS V8.0.1 - Copyright (C) 2014 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - - FreeRTOS 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. Full license text is available from the following - link: http://www.freertos.org/a00114.html - - 1 tab == 4 spaces! - - *************************************************************************** - * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * - * * - * http://www.FreeRTOS.org/FAQHelp.html * - * * - *************************************************************************** - - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - -/* - * This file initialises three timers as follows: - * - * Timer 0 and Timer 1 provide the interrupts that are used with the IntQ - * standard demo tasks, which test interrupt nesting and using queues from - * interrupts. Both these interrupts operate below the maximum syscall - * interrupt priority. - * - * Timer 2 is a much higher frequency timer that tests the nesting of interrupts - * that execute above the maximum syscall interrupt priority. - * - * All the timers can nest with the tick interrupt - creating a maximum - * interrupt nesting depth of 4. - * - * For convenience, the high frequency timer is also used to provide the time - * base for the run time stats. - */ - -/* Scheduler includes. */ -#include "FreeRTOS.h" - -/* Demo includes. */ -#include "IntQueueTimer.h" -#include "IntQueue.h" - -/* Xilinx includes. */ -#include "xttcps.h" -#include "xscugic.h" - -/* The frequencies at which the first two timers expire are slightly offset to -ensure they don't remain synchronised. The frequency of the interrupt that -operates above the max syscall interrupt priority is 10 times faster so really -hammers the interrupt entry and exit code. */ -#define tmrTIMERS_USED 3 -#define tmrTIMER_0_FREQUENCY ( 2000UL ) -#define tmrTIMER_1_FREQUENCY ( 2001UL ) -#define tmrTIMER_2_FREQUENCY ( 20000UL ) - -/*-----------------------------------------------------------*/ - -/* - * The single interrupt service routines that is used to service all three - * timers. - */ -static void prvTimerHandler( void *CallBackRef ); - -/*-----------------------------------------------------------*/ - -/* Hardware constants. */ -static const BaseType_t xDeviceIDs[ tmrTIMERS_USED ] = { XPAR_XTTCPS_0_DEVICE_ID, XPAR_XTTCPS_1_DEVICE_ID, XPAR_XTTCPS_2_DEVICE_ID }; -static const BaseType_t xInterruptIDs[ tmrTIMERS_USED ] = { XPAR_XTTCPS_0_INTR, XPAR_XTTCPS_1_INTR, XPAR_XTTCPS_2_INTR }; - -/* Timer configuration settings. */ -typedef struct -{ - uint32_t OutputHz; /* Output frequency. */ - uint16_t Interval; /* Interval value. */ - uint8_t Prescaler; /* Prescaler value. */ - uint16_t Options; /* Option settings. */ -} TmrCntrSetup; - -static TmrCntrSetup xTimerSettings[ tmrTIMERS_USED ] = -{ - { tmrTIMER_0_FREQUENCY, 0, 0, XTTCPS_OPTION_INTERVAL_MODE | XTTCPS_OPTION_WAVE_DISABLE }, - { tmrTIMER_1_FREQUENCY, 0, 0, XTTCPS_OPTION_INTERVAL_MODE | XTTCPS_OPTION_WAVE_DISABLE }, - { tmrTIMER_2_FREQUENCY, 0, 0, XTTCPS_OPTION_INTERVAL_MODE | XTTCPS_OPTION_WAVE_DISABLE } -}; - -/* Lower priority number means higher logical priority, so -configMAX_API_CALL_INTERRUPT_PRIORITY - 1 is above the maximum system call -interrupt priority. */ -static const UBaseType_t uxInterruptPriorities[ tmrTIMERS_USED ] = -{ - configMAX_API_CALL_INTERRUPT_PRIORITY + 1, - configMAX_API_CALL_INTERRUPT_PRIORITY, - configMAX_API_CALL_INTERRUPT_PRIORITY - 1 -}; - -static XTtcPs xTimerInstances[ tmrTIMERS_USED ]; - -/* Used to provide a means of ensuring the intended interrupt nesting depth is -actually being reached. */ -extern uint32_t ulPortInterruptNesting; -static uint32_t ulMaxRecordedNesting = 0; - -/* Used to ensure the high frequency timer is running at the expected -frequency. */ -static volatile uint32_t ulHighFrequencyTimerCounts = 0; - -/*-----------------------------------------------------------*/ - -void vInitialiseTimerForIntQueueTest( void ) -{ -BaseType_t xStatus; -TmrCntrSetup *pxTimerSettings; -extern XScuGic xInterruptController; -BaseType_t xTimer; -XTtcPs *pxTimerInstance; -XTtcPs_Config *pxTimerConfiguration; -const uint8_t ucRisingEdge = 3; - - for( xTimer = 0; xTimer < tmrTIMERS_USED; xTimer++ ) - { - /* Look up the timer's configuration. */ - pxTimerInstance = &( xTimerInstances[ xTimer ] ); - pxTimerConfiguration = XTtcPs_LookupConfig( xDeviceIDs[ xTimer ] ); - configASSERT( pxTimerConfiguration ); - - pxTimerSettings = &( xTimerSettings[ xTimer ] ); - - /* Initialise the device. */ - xStatus = XTtcPs_CfgInitialize( pxTimerInstance, pxTimerConfiguration, pxTimerConfiguration->BaseAddress ); - if( xStatus != XST_SUCCESS ) - { - /* Not sure how to do this before XTtcPs_CfgInitialize is called - as pxTimerInstance is set within XTtcPs_CfgInitialize(). */ - XTtcPs_Stop( pxTimerInstance ); - xStatus = XTtcPs_CfgInitialize( pxTimerInstance, pxTimerConfiguration, pxTimerConfiguration->BaseAddress ); - configASSERT( xStatus == XST_SUCCESS ); - } - - /* Set the options. */ - XTtcPs_SetOptions( pxTimerInstance, pxTimerSettings->Options ); - - /* The timer frequency is preset in the pxTimerSettings structure. - Derive the values for the other structure members. */ - XTtcPs_CalcIntervalFromFreq( pxTimerInstance, pxTimerSettings->OutputHz, &( pxTimerSettings->Interval ), &( pxTimerSettings->Prescaler ) ); - - /* Set the interval and prescale. */ - XTtcPs_SetInterval( pxTimerInstance, pxTimerSettings->Interval ); - XTtcPs_SetPrescaler( pxTimerInstance, pxTimerSettings->Prescaler ); - - /* The priority must be the lowest possible. */ - XScuGic_SetPriorityTriggerType( &xInterruptController, xInterruptIDs[ xTimer ], uxInterruptPriorities[ xTimer ] << portPRIORITY_SHIFT, ucRisingEdge ); - - /* Connect to the interrupt controller. */ - xStatus = XScuGic_Connect( &xInterruptController, xInterruptIDs[ xTimer ], ( Xil_InterruptHandler ) prvTimerHandler, ( void * ) pxTimerInstance ); - configASSERT( xStatus == XST_SUCCESS); - - /* Enable the interrupt in the GIC. */ - XScuGic_Enable( &xInterruptController, xInterruptIDs[ xTimer ] ); - - /* Enable the interrupts in the timer. */ - XTtcPs_EnableInterrupts( pxTimerInstance, XTTCPS_IXR_INTERVAL_MASK ); - - /* Start the timer. */ - XTtcPs_Start( pxTimerInstance ); - } -} -/*-----------------------------------------------------------*/ - -static void prvTimerHandler( void *pvCallBackRef ) -{ -uint32_t ulInterruptStatus; -XTtcPs *pxTimer = ( XTtcPs * ) pvCallBackRef; -BaseType_t xYieldRequired; - - /* Read the interrupt status, then write it back to clear the interrupt. */ - ulInterruptStatus = XTtcPs_GetInterruptStatus( pxTimer ); - XTtcPs_ClearInterruptStatus( pxTimer, ulInterruptStatus ); - - /* Only one interrupt event type is expected. */ - configASSERT( ( XTTCPS_IXR_INTERVAL_MASK & ulInterruptStatus ) != 0 ); - - /* Check the device ID to know which IntQueue demo to call. */ - if( pxTimer->Config.DeviceId == xDeviceIDs[ 0 ] ) - { - xYieldRequired = xFirstTimerHandler(); - } - else if( pxTimer->Config.DeviceId == xDeviceIDs[ 1 ] ) - { - xYieldRequired = xSecondTimerHandler(); - } - else - { - /* Used to check the timer is running at the expected frequency. */ - ulHighFrequencyTimerCounts++; - - /* Latch the highest interrupt nesting count detected. */ - if( ulPortInterruptNesting > ulMaxRecordedNesting ) - { - ulMaxRecordedNesting = ulPortInterruptNesting; - } - - xYieldRequired = pdFALSE; - } - - /* If xYieldRequired is not pdFALSE then calling either xFirstTimerHandler() - or xSecondTimerHandler() resulted in a task leaving the blocked state and - the task that left the blocked state had a priority higher than the currently - running task (the task this interrupt interrupted) - so a context switch - should be performed so the interrupt returns directly to the higher priority - task. xYieldRequired is tested inside the following macro. */ - portYIELD_FROM_ISR( xYieldRequired ); -} - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/Full_Demo/IntQueueTimer.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/Full_Demo/IntQueueTimer.h deleted file mode 100644 index 931d27322..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/Full_Demo/IntQueueTimer.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - FreeRTOS V8.0.1 - Copyright (C) 2014 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - - FreeRTOS 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. Full license text is available from the following - link: http://www.freertos.org/a00114.html - - 1 tab == 4 spaces! - - *************************************************************************** - * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * - * * - * http://www.FreeRTOS.org/FAQHelp.html * - * * - *************************************************************************** - - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - -#ifndef INT_QUEUE_TIMER_H -#define INT_QUEUE_TIMER_H - -void vInitialiseTimerForIntQueueTest( void ); -portBASE_TYPE xTimer0Handler( void ); -portBASE_TYPE xTimer1Handler( void ); - -#endif - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/Full_Demo/main_full.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/Full_Demo/main_full.c deleted file mode 100644 index d940ff719..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/Full_Demo/main_full.c +++ /dev/null @@ -1,504 +0,0 @@ -/* - FreeRTOS V8.0.1 - Copyright (C) 2014 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - - FreeRTOS 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. Full license text is available from the following - link: http://www.freertos.org/a00114.html - - 1 tab == 4 spaces! - - *************************************************************************** - * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * - * * - * http://www.FreeRTOS.org/FAQHelp.html * - * * - *************************************************************************** - - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - -/****************************************************************************** - * NOTE 1: This project provides three demo applications. A simple blinky - * style project, a more comprehensive test and demo application, and an - * lwIP example. The mainSELECTED_APPLICATION setting in main.c is used to - * select between the three. See the notes on using mainSELECTED_APPLICATION - * in main.c. This file implements the simply blinky style version. - * - * NOTE 2: This file only contains the source code that is specific to the - * full demo. Generic functions, such FreeRTOS hook functions, and functions - * required to configure the hardware, are defined in main.c. - * - * NOTE 3: The full demo includes a test that checks the floating point context - * is maintained correctly across task switches. The standard GCC libraries can - * use floating point registers and made this test fail (unless the tasks that - * use the library are given a floating point context as described on the - * documentation page for this demo). printf-stdarg.c is included in this - * project to prevent the standard GCC libraries being linked into the project. - * - ****************************************************************************** - * - * main_full() creates all the demo application tasks and software timers, then - * starts the scheduler. The web documentation provides more details of the - * standard demo application tasks, which provide no particular functionality, - * but do provide a good example of how to use the FreeRTOS API. - * - * In addition to the standard demo tasks, the following tasks and tests are - * defined and/or created within this file: - * - * FreeRTOS+CLI command console. The command console is access through the - * UART to USB connector on the ZC702 Zynq development board (marked J2). For - * reasons of robustness testing the UART driver is deliberately written to be - * inefficient and should not be used as a template for a production driver. - * Type "help" to see a list of registered commands. The FreeRTOS+CLI license - * is different to the FreeRTOS license, see http://www.FreeRTOS.org/cli for - * license and usage details. The default baud rate is 115200. - * - * "Reg test" tasks - These fill both the core and floating point registers with - * known values, then check that each register maintains its expected value for - * the lifetime of the task. Each task uses a different set of values. The reg - * test tasks execute with a very low priority, so get preempted very - * frequently. A register containing an unexpected value is indicative of an - * error in the context switching mechanism. - * - * "Check" task - The check task period is initially set to three seconds. The - * task checks that all the standard demo tasks, and the register check tasks, - * are not only still executing, but are executing without reporting any errors. - * If the check task discovers that a task has either stalled, or reported an - * error, then it changes its own execution period from the initial three - * seconds, to just 200ms. The check task also toggles an LED each time it is - * called. This provides a visual indication of the system status: If the LED - * toggles every three seconds, then no issues have been discovered. If the LED - * toggles every 200ms, then an issue has been discovered with at least one - * task. - */ - -/* Standard includes. */ -#include - -/* Kernel includes. */ -#include "FreeRTOS.h" -#include "task.h" -#include "timers.h" -#include "semphr.h" - -/* Standard demo application includes. */ -#include "flop.h" -#include "semtest.h" -#include "dynamic.h" -#include "BlockQ.h" -#include "blocktim.h" -#include "countsem.h" -#include "GenQTest.h" -#include "recmutex.h" -#include "death.h" -#include "partest.h" -#include "comtest2.h" -#include "serial.h" -#include "TimerDemo.h" -#include "QueueOverwrite.h" -#include "IntQueue.h" -#include "EventGroupsDemo.h" - -/* Priorities for the demo application tasks. */ -#define mainSEM_TEST_PRIORITY ( tskIDLE_PRIORITY + 1UL ) -#define mainBLOCK_Q_PRIORITY ( tskIDLE_PRIORITY + 2UL ) -#define mainCREATOR_TASK_PRIORITY ( tskIDLE_PRIORITY + 3UL ) -#define mainFLOP_TASK_PRIORITY ( tskIDLE_PRIORITY ) -#define mainUART_COMMAND_CONSOLE_STACK_SIZE ( configMINIMAL_STACK_SIZE * 3UL ) -#define mainCOM_TEST_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 ) -#define mainCHECK_TASK_PRIORITY ( configMAX_PRIORITIES - 1 ) -#define mainQUEUE_OVERWRITE_PRIORITY ( tskIDLE_PRIORITY ) - -/* The priority used by the UART command console task. */ -#define mainUART_COMMAND_CONSOLE_TASK_PRIORITY ( configMAX_PRIORITIES - 2 ) - -/* The LED used by the check timer. */ -#define mainCHECK_LED ( 0 ) - -/* A block time of zero simply means "don't block". */ -#define mainDONT_BLOCK ( 0UL ) - -/* The period after which the check timer will expire, in ms, provided no errors -have been reported by any of the standard demo tasks. ms are converted to the -equivalent in ticks using the portTICK_PERIOD_MS constant. */ -#define mainNO_ERROR_CHECK_TASK_PERIOD ( 3000UL / portTICK_PERIOD_MS ) - -/* The period at which the check timer will expire, in ms, if an error has been -reported in one of the standard demo tasks. ms are converted to the equivalent -in ticks using the portTICK_PERIOD_MS constant. */ -#define mainERROR_CHECK_TASK_PERIOD ( 200UL / portTICK_PERIOD_MS ) - -/* Parameters that are passed into the register check tasks solely for the -purpose of ensuring parameters are passed into tasks correctly. */ -#define mainREG_TEST_TASK_1_PARAMETER ( ( void * ) 0x12345678 ) -#define mainREG_TEST_TASK_2_PARAMETER ( ( void * ) 0x87654321 ) - -/* The base period used by the timer test tasks. */ -#define mainTIMER_TEST_PERIOD ( 50 ) - -/*-----------------------------------------------------------*/ - - -/* - * The check task, as described at the top of this file. - */ -static void prvCheckTask( void *pvParameters ); - -/* - * Register check tasks, and the tasks used to write over and check the contents - * of the FPU registers, as described at the top of this file. The nature of - * these files necessitates that they are written in an assembly file, but the - * entry points are kept in the C file for the convenience of checking the task - * parameter. - */ -static void prvRegTestTaskEntry1( void *pvParameters ); -extern void vRegTest1Implementation( void ); -static void prvRegTestTaskEntry2( void *pvParameters ); -extern void vRegTest2Implementation( void ); - -/* - * Register commands that can be used with FreeRTOS+CLI. The commands are - * defined in CLI-Commands.c and File-Related-CLI-Command.c respectively. - */ -extern void vRegisterSampleCLICommands( void ); - -/* - * The task that manages the FreeRTOS+CLI input and output. - */ -extern void vUARTCommandConsoleStart( uint16_t usStackSize, UBaseType_t uxPriority ); - -/* - * A high priority task that does nothing other than execute at a pseudo random - * time to ensure the other test tasks don't just execute in a repeating - * pattern. - */ -static void prvPseudoRandomiser( void *pvParameters ); - -/*-----------------------------------------------------------*/ - -/* The following two variables are used to communicate the status of the -register check tasks to the check task. If the variables keep incrementing, -then the register check tasks has not discovered any errors. If a variable -stops incrementing, then an error has been found. */ -volatile unsigned long ulRegTest1LoopCounter = 0UL, ulRegTest2LoopCounter = 0UL; - -/* String for display in the web server. It is set to an error message if the -check task detects an error. */ -char *pcStatusMessage = "All tasks running without error"; -/*-----------------------------------------------------------*/ - -void main_full( void ) -{ - /* Start all the other standard demo/test tasks. They have not particular - functionality, but do demonstrate how to use the FreeRTOS API and test the - kernel port. */ - vStartInterruptQueueTasks(); - vStartDynamicPriorityTasks(); - vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY ); - vCreateBlockTimeTasks(); - vStartCountingSemaphoreTasks(); - vStartGenericQueueTasks( tskIDLE_PRIORITY ); - vStartRecursiveMutexTasks(); - vStartSemaphoreTasks( mainSEM_TEST_PRIORITY ); - vStartMathTasks( mainFLOP_TASK_PRIORITY ); - vStartTimerDemoTask( mainTIMER_TEST_PERIOD ); - vStartQueueOverwriteTask( mainQUEUE_OVERWRITE_PRIORITY ); - vStartEventGroupTasks(); - - /* Start the tasks that implements the command console on the UART, as - described above. */ - vUARTCommandConsoleStart( mainUART_COMMAND_CONSOLE_STACK_SIZE, mainUART_COMMAND_CONSOLE_TASK_PRIORITY ); - - /* Register the standard CLI commands. */ - vRegisterSampleCLICommands(); - - /* Create the register check tasks, as described at the top of this file */ - xTaskCreate( prvRegTestTaskEntry1, "Reg1", configMINIMAL_STACK_SIZE, mainREG_TEST_TASK_1_PARAMETER, tskIDLE_PRIORITY, NULL ); - xTaskCreate( prvRegTestTaskEntry2, "Reg2", configMINIMAL_STACK_SIZE, mainREG_TEST_TASK_2_PARAMETER, tskIDLE_PRIORITY, NULL ); - - /* Create the task that just adds a little random behaviour. */ - xTaskCreate( prvPseudoRandomiser, "Rnd", configMINIMAL_STACK_SIZE, NULL, configMAX_PRIORITIES - 1, NULL ); - - /* Create the task that performs the 'check' functionality, as described at - the top of this file. */ - xTaskCreate( prvCheckTask, "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL ); - - /* The set of tasks created by the following function call have to be - created last as they keep account of the number of tasks they expect to see - running. */ - vCreateSuicidalTasks( mainCREATOR_TASK_PRIORITY ); - - /* Start the scheduler. */ - vTaskStartScheduler(); - - /* If all is well, the scheduler will now be running, and the following - line will never be reached. If the following line does execute, then - there was either insufficient FreeRTOS heap memory available for the idle - and/or timer tasks to be created, or vTaskStartScheduler() was called from - User mode. See the memory management section on the FreeRTOS web site for - more details on the FreeRTOS heap http://www.freertos.org/a00111.html. The - mode from which main() is called is set in the C start up code and must be - a privileged mode (not user mode). */ - for( ;; ); -} -/*-----------------------------------------------------------*/ - -static void prvCheckTask( void *pvParameters ) -{ -TickType_t xDelayPeriod = mainNO_ERROR_CHECK_TASK_PERIOD; -TickType_t xLastExecutionTime; -static unsigned long ulLastRegTest1Value = 0, ulLastRegTest2Value = 0; -unsigned long ulErrorFound = pdFALSE; - - /* Just to stop compiler warnings. */ - ( void ) pvParameters; - - /* Initialise xLastExecutionTime so the first call to vTaskDelayUntil() - works correctly. */ - xLastExecutionTime = xTaskGetTickCount(); - - /* Cycle for ever, delaying then checking all the other tasks are still - operating without error. The onboard LED is toggled on each iteration. - If an error is detected then the delay period is decreased from - mainNO_ERROR_CHECK_TASK_PERIOD to mainERROR_CHECK_TASK_PERIOD. This has the - effect of increasing the rate at which the onboard LED toggles, and in so - doing gives visual feedback of the system status. */ - for( ;; ) - { - /* Delay until it is time to execute again. */ - vTaskDelayUntil( &xLastExecutionTime, xDelayPeriod ); - - /* Check all the demo tasks (other than the flash tasks) to ensure - that they are all still running, and that none have detected an error. */ - if( xAreIntQueueTasksStillRunning() != pdTRUE ) - { - ulErrorFound = pdTRUE; - } - - if( xAreMathsTaskStillRunning() != pdTRUE ) - { - ulErrorFound = pdTRUE; - } - - if( xAreDynamicPriorityTasksStillRunning() != pdTRUE ) - { - ulErrorFound = pdTRUE; - } - - if( xAreBlockingQueuesStillRunning() != pdTRUE ) - { - ulErrorFound = pdTRUE; - } - - if ( xAreBlockTimeTestTasksStillRunning() != pdTRUE ) - { - ulErrorFound = pdTRUE; - } - - if ( xAreGenericQueueTasksStillRunning() != pdTRUE ) - { - ulErrorFound = pdTRUE; - } - - if ( xAreRecursiveMutexTasksStillRunning() != pdTRUE ) - { - ulErrorFound = pdTRUE; - } - - if( xIsCreateTaskStillRunning() != pdTRUE ) - { - ulErrorFound = pdTRUE; - } - - if( xAreSemaphoreTasksStillRunning() != pdTRUE ) - { - ulErrorFound = pdTRUE; - } - - if( xAreTimerDemoTasksStillRunning( ( TickType_t ) mainNO_ERROR_CHECK_TASK_PERIOD ) != pdPASS ) - { - ulErrorFound = pdTRUE; - } - - if( xAreCountingSemaphoreTasksStillRunning() != pdTRUE ) - { - ulErrorFound = pdTRUE; - } - - if( xIsQueueOverwriteTaskStillRunning() != pdPASS ) - { - ulErrorFound = pdTRUE; - } - - if( xAreEventGroupTasksStillRunning() != pdPASS ) - { - ulErrorFound = pdTRUE; - } - - /* Check that the register test 1 task is still running. */ - if( ulLastRegTest1Value == ulRegTest1LoopCounter ) - { - ulErrorFound = pdTRUE; - } - ulLastRegTest1Value = ulRegTest1LoopCounter; - - /* Check that the register test 2 task is still running. */ - if( ulLastRegTest2Value == ulRegTest2LoopCounter ) - { - ulErrorFound = pdTRUE; - } - ulLastRegTest2Value = ulRegTest2LoopCounter; - - /* Toggle the check LED to give an indication of the system status. If - the LED toggles every mainNO_ERROR_CHECK_TASK_PERIOD milliseconds then - everything is ok. A faster toggle indicates an error. */ - vParTestToggleLED( mainCHECK_LED ); - - if( ulErrorFound != pdFALSE ) - { - /* An error has been detected in one of the tasks - flash the LED - at a higher frequency to give visible feedback that something has - gone wrong (it might just be that the loop back connector required - by the comtest tasks has not been fitted). */ - xDelayPeriod = mainERROR_CHECK_TASK_PERIOD; - pcStatusMessage = "Error found in at least one task."; - } - } -} -/*-----------------------------------------------------------*/ - -char *pcMainGetTaskStatusMessage( void ) -{ - return pcStatusMessage; -} -/*-----------------------------------------------------------*/ - -static void prvRegTestTaskEntry1( void *pvParameters ) -{ - /* Although the regtest task is written in assembler, its entry point is - written in C for convenience of checking the task parameter is being passed - in correctly. */ - if( pvParameters == mainREG_TEST_TASK_1_PARAMETER ) - { - /* The reg test task also tests the floating point registers. Tasks - that use the floating point unit must call vPortTaskUsesFPU() before - any floating point instructions are executed. */ - vPortTaskUsesFPU(); - - /* Start the part of the test that is written in assembler. */ - vRegTest1Implementation(); - } - - /* The following line will only execute if the task parameter is found to - be incorrect. The check timer will detect that the regtest loop counter is - not being incremented and flag an error. */ - vTaskDelete( NULL ); -} -/*-----------------------------------------------------------*/ - -static void prvRegTestTaskEntry2( void *pvParameters ) -{ - /* Although the regtest task is written in assembler, its entry point is - written in C for convenience of checking the task parameter is being passed - in correctly. */ - if( pvParameters == mainREG_TEST_TASK_2_PARAMETER ) - { - /* The reg test task also tests the floating point registers. Tasks - that use the floating point unit must call vPortTaskUsesFPU() before - any floating point instructions are executed. */ - vPortTaskUsesFPU(); - - /* Start the part of the test that is written in assembler. */ - vRegTest2Implementation(); - } - - /* The following line will only execute if the task parameter is found to - be incorrect. The check timer will detect that the regtest loop counter is - not being incremented and flag an error. */ - vTaskDelete( NULL ); -} -/*-----------------------------------------------------------*/ - -static void prvPseudoRandomiser( void *pvParameters ) -{ -const uint32_t ulMultiplier = 0x015a4e35UL, ulIncrement = 1UL, ulMinDelay = ( 35 / portTICK_PERIOD_MS ); -volatile uint32_t ulNextRand = ( uint32_t ) &pvParameters, ulValue; - - /* This task does nothing other than ensure there is a little bit of - disruption in the scheduling pattern of the other tasks. Normally this is - done by generating interrupts at pseudo random times. */ - for( ;; ) - { - ulNextRand = ( ulMultiplier * ulNextRand ) + ulIncrement; - ulValue = ( ulNextRand >> 16UL ) & 0xffUL; - - if( ulValue < ulMinDelay ) - { - ulValue = ulMinDelay; - } - - vTaskDelay( ulValue ); - - while( ulValue > 0 ) - { - __asm volatile( "NOP" ); - __asm volatile( "NOP" ); - __asm volatile( "NOP" ); - __asm volatile( "NOP" ); - - ulValue--; - } - } -} - - - - - - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/Full_Demo/reg_test.S b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/Full_Demo/reg_test.S deleted file mode 100644 index 20c4de57f..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/Full_Demo/reg_test.S +++ /dev/null @@ -1,658 +0,0 @@ -/* - FreeRTOS V8.0.1 - Copyright (C) 2014 Real Time Engineers Ltd. - - FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME. PLEASE VISIT - http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - - >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. - - FreeRTOS 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 the GNU General Public License for more - details. You should have received a copy of the GNU General Public License - and the FreeRTOS license exception along with FreeRTOS; if not itcan be - viewed here: http://www.freertos.org/a00114.html and also obtained by - writing to Real Time Engineers Ltd., contact details for whom are available - on the FreeRTOS WEB site. - - 1 tab == 4 spaces! - - *************************************************************************** - * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * - * * - * http://www.FreeRTOS.org/FAQHelp.html * - * * - *************************************************************************** - - - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, and our new - fully thread aware and reentrant UDP/IP stack. - - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems, who sell the code with commercial support, - indemnification and middleware, under the OpenRTOS brand. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. -*/ - - .global vRegTest1Implementation - .global vRegTest2Implementation - .extern ulRegTest1LoopCounter - .extern ulRegTest2LoopCounter - - .text - .arm - - /* This function is explained in the comments at the top of main-full.c. */ -.type vRegTest1Implementation, %function -vRegTest1Implementation: - - /* Fill each general purpose register with a known value. */ - mov r0, #0xFF - mov r1, #0x11 - mov r2, #0x22 - mov r3, #0x33 - mov r4, #0x44 - mov r5, #0x55 - mov r6, #0x66 - mov r7, #0x77 - mov r8, #0x88 - mov r9, #0x99 - mov r10, #0xAA - mov r11, #0xBB - mov r12, #0xCC - mov r14, #0xEE - - /* Fill each FPU register with a known value. */ - vmov d0, r0, r1 - vmov d1, r2, r3 - vmov d2, r4, r5 - vmov d3, r6, r7 - vmov d4, r8, r9 - vmov d5, r10, r11 - vmov d6, r0, r1 - vmov d7, r2, r3 - vmov d8, r4, r5 - vmov d9, r6, r7 - vmov d10, r8, r9 - vmov d11, r10, r11 - vmov d12, r0, r1 - vmov d13, r2, r3 - vmov d14, r4, r5 - vmov d15, r6, r7 - - vmov d16, r0, r1 - vmov d17, r2, r3 - vmov d18, r4, r5 - vmov d19, r6, r7 - vmov d20, r8, r9 - vmov d21, r10, r11 - vmov d22, r0, r1 - vmov d23, r2, r3 - vmov d24, r4, r5 - vmov d25, r6, r7 - vmov d26, r8, r9 - vmov d27, r10, r11 - vmov d28, r0, r1 - vmov d29, r2, r3 - vmov d30, r4, r5 - vmov d31, r6, r7 - - /* Loop, checking each itteration that each register still contains the - expected value. */ -reg1_loop: - /* Yield to increase test coverage */ - svc 0 - - /* Check all the VFP registers still contain the values set above. - First save registers that are clobbered by the test. */ - push { r0-r1 } - - vmov r0, r1, d0 - cmp r0, #0xFF - bne reg1_error_loopf - cmp r1, #0x11 - bne reg1_error_loopf - vmov r0, r1, d1 - cmp r0, #0x22 - bne reg1_error_loopf - cmp r1, #0x33 - bne reg1_error_loopf - vmov r0, r1, d2 - cmp r0, #0x44 - bne reg1_error_loopf - cmp r1, #0x55 - bne reg1_error_loopf - vmov r0, r1, d3 - cmp r0, #0x66 - bne reg1_error_loopf - cmp r1, #0x77 - bne reg1_error_loopf - vmov r0, r1, d4 - cmp r0, #0x88 - bne reg1_error_loopf - cmp r1, #0x99 - bne reg1_error_loopf - vmov r0, r1, d5 - cmp r0, #0xAA - bne reg1_error_loopf - cmp r1, #0xBB - bne reg1_error_loopf - vmov r0, r1, d6 - cmp r0, #0xFF - bne reg1_error_loopf - cmp r1, #0x11 - bne reg1_error_loopf - vmov r0, r1, d7 - cmp r0, #0x22 - bne reg1_error_loopf - cmp r1, #0x33 - bne reg1_error_loopf - vmov r0, r1, d8 - cmp r0, #0x44 - bne reg1_error_loopf - cmp r1, #0x55 - bne reg1_error_loopf - vmov r0, r1, d9 - cmp r0, #0x66 - bne reg1_error_loopf - cmp r1, #0x77 - bne reg1_error_loopf - vmov r0, r1, d10 - cmp r0, #0x88 - bne reg1_error_loopf - cmp r1, #0x99 - bne reg1_error_loopf - vmov r0, r1, d11 - cmp r0, #0xAA - bne reg1_error_loopf - cmp r1, #0xBB - bne reg1_error_loopf - vmov r0, r1, d12 - cmp r0, #0xFF - bne reg1_error_loopf - cmp r1, #0x11 - bne reg1_error_loopf - vmov r0, r1, d13 - cmp r0, #0x22 - bne reg1_error_loopf - cmp r1, #0x33 - bne reg1_error_loopf - vmov r0, r1, d14 - cmp r0, #0x44 - bne reg1_error_loopf - cmp r1, #0x55 - bne reg1_error_loopf - vmov r0, r1, d15 - cmp r0, #0x66 - bne reg1_error_loopf - cmp r1, #0x77 - bne reg1_error_loopf - - vmov r0, r1, d16 - cmp r0, #0xFF - bne reg1_error_loopf - cmp r1, #0x11 - bne reg1_error_loopf - vmov r0, r1, d17 - cmp r0, #0x22 - bne reg1_error_loopf - cmp r1, #0x33 - bne reg1_error_loopf - vmov r0, r1, d18 - cmp r0, #0x44 - bne reg1_error_loopf - cmp r1, #0x55 - bne reg1_error_loopf - vmov r0, r1, d19 - cmp r0, #0x66 - bne reg1_error_loopf - cmp r1, #0x77 - bne reg1_error_loopf - vmov r0, r1, d20 - cmp r0, #0x88 - bne reg1_error_loopf - cmp r1, #0x99 - bne reg1_error_loopf - vmov r0, r1, d21 - cmp r0, #0xAA - bne reg1_error_loopf - cmp r1, #0xBB - bne reg1_error_loopf - vmov r0, r1, d22 - cmp r0, #0xFF - bne reg1_error_loopf - cmp r1, #0x11 - bne reg1_error_loopf - vmov r0, r1, d23 - cmp r0, #0x22 - bne reg1_error_loopf - cmp r1, #0x33 - bne reg1_error_loopf - vmov r0, r1, d24 - cmp r0, #0x44 - bne reg1_error_loopf - cmp r1, #0x55 - bne reg1_error_loopf - vmov r0, r1, d25 - cmp r0, #0x66 - bne reg1_error_loopf - cmp r1, #0x77 - bne reg1_error_loopf - vmov r0, r1, d26 - cmp r0, #0x88 - bne reg1_error_loopf - cmp r1, #0x99 - bne reg1_error_loopf - vmov r0, r1, d27 - cmp r0, #0xAA - bne reg1_error_loopf - cmp r1, #0xBB - bne reg1_error_loopf - vmov r0, r1, d28 - cmp r0, #0xFF - bne reg1_error_loopf - cmp r1, #0x11 - bne reg1_error_loopf - vmov r0, r1, d29 - cmp r0, #0x22 - bne reg1_error_loopf - cmp r1, #0x33 - bne reg1_error_loopf - vmov r0, r1, d30 - cmp r0, #0x44 - bne reg1_error_loopf - cmp r1, #0x55 - bne reg1_error_loopf - vmov r0, r1, d31 - cmp r0, #0x66 - bne reg1_error_loopf - cmp r1, #0x77 - bne reg1_error_loopf - - /* Restore the registers that were clobbered by the test. */ - pop {r0-r1} - - /* VFP register test passed. Jump to the core register test. */ - b reg1_loopf_pass - -reg1_error_loopf: - /* If this line is hit then a VFP register value was found to be - incorrect. */ - b reg1_error_loopf - -reg1_loopf_pass: - - /* Test each general purpose register to check that it still contains the - expected known value, jumping to reg1_error_loop if any register contains - an unexpected value. */ - cmp r0, #0xFF - bne reg1_error_loop - cmp r1, #0x11 - bne reg1_error_loop - cmp r2, #0x22 - bne reg1_error_loop - cmp r3, #0x33 - bne reg1_error_loop - cmp r4, #0x44 - bne reg1_error_loop - cmp r5, #0x55 - bne reg1_error_loop - cmp r6, #0x66 - bne reg1_error_loop - cmp r7, #0x77 - bne reg1_error_loop - cmp r8, #0x88 - bne reg1_error_loop - cmp r9, #0x99 - bne reg1_error_loop - cmp r10, #0xAA - bne reg1_error_loop - cmp r11, #0xBB - bne reg1_error_loop - cmp r12, #0xCC - bne reg1_error_loop - cmp r14, #0xEE - bne reg1_error_loop - - /* Everything passed, increment the loop counter. */ - push { r0-r1 } - ldr r0, =ulRegTest1LoopCounter - ldr r1, [r0] - adds r1, r1, #1 - str r1, [r0] - pop { r0-r1 } - - /* Start again. */ - b reg1_loop - -reg1_error_loop: - /* If this line is hit then there was an error in a core register value. - The loop ensures the loop counter stops incrementing. */ - b reg1_error_loop - nop - -/*-----------------------------------------------------------*/ - -.type vRegTest2Implementation, %function -vRegTest2Implementation: - - /* Put a known value in each register. */ - mov r0, #0xFF000000 - mov r1, #0x11000000 - mov r2, #0x22000000 - mov r3, #0x33000000 - mov r4, #0x44000000 - mov r5, #0x55000000 - mov r6, #0x66000000 - mov r7, #0x77000000 - mov r8, #0x88000000 - mov r9, #0x99000000 - mov r10, #0xAA000000 - mov r11, #0xBB000000 - mov r12, #0xCC000000 - mov r14, #0xEE000000 - - /* Likewise the floating point registers */ - vmov d0, r0, r1 - vmov d1, r2, r3 - vmov d2, r4, r5 - vmov d3, r6, r7 - vmov d4, r8, r9 - vmov d5, r10, r11 - vmov d6, r0, r1 - vmov d7, r2, r3 - vmov d8, r4, r5 - vmov d9, r6, r7 - vmov d10, r8, r9 - vmov d11, r10, r11 - vmov d12, r0, r1 - vmov d13, r2, r3 - vmov d14, r4, r5 - vmov d15, r6, r7 - - vmov d16, r0, r1 - vmov d17, r2, r3 - vmov d18, r4, r5 - vmov d19, r6, r7 - vmov d20, r8, r9 - vmov d21, r10, r11 - vmov d22, r0, r1 - vmov d23, r2, r3 - vmov d24, r4, r5 - vmov d25, r6, r7 - vmov d26, r8, r9 - vmov d27, r10, r11 - vmov d28, r0, r1 - vmov d29, r2, r3 - vmov d30, r4, r5 - vmov d31, r6, r7 - - /* Loop, checking each itteration that each register still contains the - expected value. */ -reg2_loop: - /* Check all the VFP registers still contain the values set above. - First save registers that are clobbered by the test. */ - push { r0-r1 } - - vmov r0, r1, d0 - cmp r0, #0xFF000000 - bne reg2_error_loopf - cmp r1, #0x11000000 - bne reg2_error_loopf - vmov r0, r1, d1 - cmp r0, #0x22000000 - bne reg2_error_loopf - cmp r1, #0x33000000 - bne reg2_error_loopf - vmov r0, r1, d2 - cmp r0, #0x44000000 - bne reg2_error_loopf - cmp r1, #0x55000000 - bne reg2_error_loopf - vmov r0, r1, d3 - cmp r0, #0x66000000 - bne reg2_error_loopf - cmp r1, #0x77000000 - bne reg2_error_loopf - vmov r0, r1, d4 - cmp r0, #0x88000000 - bne reg2_error_loopf - cmp r1, #0x99000000 - bne reg2_error_loopf - vmov r0, r1, d5 - cmp r0, #0xAA000000 - bne reg2_error_loopf - cmp r1, #0xBB000000 - bne reg2_error_loopf - vmov r0, r1, d6 - cmp r0, #0xFF000000 - bne reg2_error_loopf - cmp r1, #0x11000000 - bne reg2_error_loopf - vmov r0, r1, d7 - cmp r0, #0x22000000 - bne reg2_error_loopf - cmp r1, #0x33000000 - bne reg2_error_loopf - vmov r0, r1, d8 - cmp r0, #0x44000000 - bne reg2_error_loopf - cmp r1, #0x55000000 - bne reg2_error_loopf - vmov r0, r1, d9 - cmp r0, #0x66000000 - bne reg2_error_loopf - cmp r1, #0x77000000 - bne reg2_error_loopf - vmov r0, r1, d10 - cmp r0, #0x88000000 - bne reg2_error_loopf - cmp r1, #0x99000000 - bne reg2_error_loopf - vmov r0, r1, d11 - cmp r0, #0xAA000000 - bne reg2_error_loopf - cmp r1, #0xBB000000 - bne reg2_error_loopf - vmov r0, r1, d12 - cmp r0, #0xFF000000 - bne reg2_error_loopf - cmp r1, #0x11000000 - bne reg2_error_loopf - vmov r0, r1, d13 - cmp r0, #0x22000000 - bne reg2_error_loopf - cmp r1, #0x33000000 - bne reg2_error_loopf - vmov r0, r1, d14 - cmp r0, #0x44000000 - bne reg2_error_loopf - cmp r1, #0x55000000 - bne reg2_error_loopf - vmov r0, r1, d15 - cmp r0, #0x66000000 - bne reg2_error_loopf - cmp r1, #0x77000000 - bne reg2_error_loopf - - vmov r0, r1, d16 - cmp r0, #0xFF000000 - bne reg2_error_loopf - cmp r1, #0x11000000 - bne reg2_error_loopf - vmov r0, r1, d17 - cmp r0, #0x22000000 - bne reg2_error_loopf - cmp r1, #0x33000000 - bne reg2_error_loopf - vmov r0, r1, d18 - cmp r0, #0x44000000 - bne reg2_error_loopf - cmp r1, #0x55000000 - bne reg2_error_loopf - vmov r0, r1, d19 - cmp r0, #0x66000000 - bne reg2_error_loopf - cmp r1, #0x77000000 - bne reg2_error_loopf - vmov r0, r1, d20 - cmp r0, #0x88000000 - bne reg2_error_loopf - cmp r1, #0x99000000 - bne reg2_error_loopf - vmov r0, r1, d21 - cmp r0, #0xAA000000 - bne reg2_error_loopf - cmp r1, #0xBB000000 - bne reg2_error_loopf - vmov r0, r1, d22 - cmp r0, #0xFF000000 - bne reg2_error_loopf - cmp r1, #0x11000000 - bne reg2_error_loopf - vmov r0, r1, d23 - cmp r0, #0x22000000 - bne reg2_error_loopf - cmp r1, #0x33000000 - bne reg2_error_loopf - vmov r0, r1, d24 - cmp r0, #0x44000000 - bne reg2_error_loopf - cmp r1, #0x55000000 - bne reg2_error_loopf - vmov r0, r1, d25 - cmp r0, #0x66000000 - bne reg2_error_loopf - cmp r1, #0x77000000 - bne reg2_error_loopf - vmov r0, r1, d26 - cmp r0, #0x88000000 - bne reg2_error_loopf - cmp r1, #0x99000000 - bne reg2_error_loopf - vmov r0, r1, d27 - cmp r0, #0xAA000000 - bne reg2_error_loopf - cmp r1, #0xBB000000 - bne reg2_error_loopf - vmov r0, r1, d28 - cmp r0, #0xFF000000 - bne reg2_error_loopf - cmp r1, #0x11000000 - bne reg2_error_loopf - vmov r0, r1, d29 - cmp r0, #0x22000000 - bne reg2_error_loopf - cmp r1, #0x33000000 - bne reg2_error_loopf - vmov r0, r1, d30 - cmp r0, #0x44000000 - bne reg2_error_loopf - cmp r1, #0x55000000 - bne reg2_error_loopf - vmov r0, r1, d31 - cmp r0, #0x66000000 - bne reg2_error_loopf - cmp r1, #0x77000000 - bne reg2_error_loopf - - /* Restore the registers that were clobbered by the test. */ - pop {r0-r1} - - /* VFP register test passed. Jump to the core register test. */ - b reg2_loopf_pass - -reg2_error_loopf: - /* If this line is hit then a VFP register value was found to be - incorrect. */ - b reg2_error_loopf - -reg2_loopf_pass: - - cmp r0, #0xFF000000 - bne reg2_error_loop - cmp r1, #0x11000000 - bne reg2_error_loop - cmp r2, #0x22000000 - bne reg2_error_loop - cmp r3, #0x33000000 - bne reg2_error_loop - cmp r4, #0x44000000 - bne reg2_error_loop - cmp r5, #0x55000000 - bne reg2_error_loop - cmp r6, #0x66000000 - bne reg2_error_loop - cmp r7, #0x77000000 - bne reg2_error_loop - cmp r8, #0x88000000 - bne reg2_error_loop - cmp r9, #0x99000000 - bne reg2_error_loop - cmp r10, #0xAA000000 - bne reg2_error_loop - cmp r11, #0xBB000000 - bne reg2_error_loop - cmp r12, #0xCC000000 - bne reg2_error_loop - cmp r14, #0xEE000000 - bne reg2_error_loop - - /* Everything passed, increment the loop counter. */ - push { r0-r1 } - ldr r0, =ulRegTest2LoopCounter - ldr r1, [r0] - adds r1, r1, #1 - str r1, [r0] - pop { r0-r1 } - - /* Start again. */ - b reg2_loop - -reg2_error_loop: - /* If this line is hit then there was an error in a core register value. - The loop ensures the loop counter stops incrementing. */ - b reg2_error_loop - nop - - - .end - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/Full_Demo/serial.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/Full_Demo/serial.c deleted file mode 100644 index a3440bb0c..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/Full_Demo/serial.c +++ /dev/null @@ -1,321 +0,0 @@ -/* - FreeRTOS V8.0.1 - Copyright (C) 2014 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - - FreeRTOS 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. Full license text is available from the following - link: http://www.freertos.org/a00114.html - - 1 tab == 4 spaces! - - *************************************************************************** - * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * - * * - * http://www.FreeRTOS.org/FAQHelp.html * - * * - *************************************************************************** - - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! - */ - -/* - BASIC INTERRUPT DRIVEN SERIAL PORT DRIVER. - - Note1: This driver is used specifically to provide an interface to the - FreeRTOS+CLI command interpreter. It is *not* intended to be a generic - serial port driver. Nor is it intended to be used as an example of an - efficient implementation. In particular, a queue is used to buffer - received characters, which is fine in this case as key presses arrive - slowly, but a DMA and/or RAM buffer should be used in place of the queue in - applications that expect higher throughput. - - Note2: This driver does not attempt to handle UART errors. -*/ - -/* Scheduler includes. */ -#include "FreeRTOS.h" -#include "task.h" -#include "queue.h" -#include "semphr.h" - -/* Demo application includes. */ -#include "serial.h" - -/* Xilinx includes. */ -#include "xuartps.h" -#include "xscugic.h" -#include "xil_exception.h" - -/* The UART interrupts of interest when receiving. */ -#define serRECEIVE_INTERRUPT_MASK ( XUARTPS_IXR_RXOVR | XUARTPS_IXR_RXFULL | XUARTPS_IXR_TOUT ) - -/* The UART interrupts of interest when transmitting. */ -#define serTRANSMIT_IINTERRUPT_MASK ( XUARTPS_IXR_TXEMPTY ) - -/*-----------------------------------------------------------*/ - -/* The UART being used. */ -static XUartPs xUARTInstance; - -/* The interrupt controller, which is configred by the hardware setup routines -defined in main(). */ -extern XScuGic xInterruptController; - -/* The queue into which received key presses are placed. NOTE THE COMMENTS AT -THE TOP OF THIS FILE REGARDING THE USE OF QUEUES FOR THIS PURPOSE. */ -static QueueHandle_t xRxQueue = NULL; - -/* The semaphore used to indicate the end of a transmission. */ -static SemaphoreHandle_t xTxCompleteSemaphore = NULL; - -/*-----------------------------------------------------------*/ - -/* - * The UART interrupt handler is defined in this file to provide more control, - * but still uses parts of the Xilinx provided driver. - */ -void prvUART_Handler( void *pvNotUsed ); - -/*-----------------------------------------------------------*/ - -/* - * See the serial2.h header file. - */ -xComPortHandle xSerialPortInitMinimal( uint32_t ulWantedBaud, UBaseType_t uxQueueLength ) -{ -BaseType_t xStatus; -XUartPs_Config *pxConfig; - - /* Create the queue used to hold received characters. NOTE THE COMMENTS AT - THE TOP OF THIS FILE REGARDING THE QUEUE OF QUEUES FOR THIS PURPSOE. */ - xRxQueue = xQueueCreate( uxQueueLength, sizeof( char ) ); - configASSERT( xRxQueue ); - - /* Create the semaphore used to signal the end of a transmission, then take - the semaphore so it is in the correct state the first time - xSerialSendString() is called. A block time of zero is used when taking - the semaphore as it is guaranteed to be available (it was just created). */ - xTxCompleteSemaphore = xSemaphoreCreateBinary(); - configASSERT( xTxCompleteSemaphore ); - xSemaphoreTake( xTxCompleteSemaphore, 0 ); - - /* Look up the UART configuration then initialise the dirver. */ - pxConfig = XUartPs_LookupConfig( XPAR_XUARTPS_0_DEVICE_ID ); - - /* Initialise the driver. */ - xStatus = XUartPs_CfgInitialize( &xUARTInstance, pxConfig, XPAR_PS7_UART_1_BASEADDR ); - configASSERT( xStatus == XST_SUCCESS ); - ( void ) xStatus; /* Remove compiler warning if configASSERT() is not defined. */ - - /* Misc. parameter configuration. */ - XUartPs_SetBaudRate( &xUARTInstance, ulWantedBaud ); - XUartPs_SetOperMode( &xUARTInstance, XUARTPS_OPER_MODE_NORMAL ); - - /* Install the interrupt service routine that is defined within this - file. */ - xStatus = XScuGic_Connect( &xInterruptController, XPAR_XUARTPS_1_INTR, (Xil_ExceptionHandler) prvUART_Handler, (void *) &xUARTInstance ); - configASSERT( xStatus == XST_SUCCESS ); - ( void ) xStatus; /* Remove compiler warning if configASSERT() is not defined. */ - - /* Ensure interrupts start clear. */ - XUartPs_WriteReg( XPAR_PS7_UART_1_BASEADDR, XUARTPS_ISR_OFFSET, XUARTPS_IXR_MASK ); - - /* Enable the UART interrupt within the GIC. */ - XScuGic_Enable( &xInterruptController, XPAR_XUARTPS_1_INTR ); - - /* Enable the interrupts of interest in the UART. */ - XUartPs_SetInterruptMask( &xUARTInstance, XUARTPS_IXR_RXFULL | XUARTPS_IXR_RXOVR | XUARTPS_IXR_TOUT | XUARTPS_IXR_TXEMPTY ); - - /* Set the receive timeout. */ - XUartPs_SetRecvTimeout( &xUARTInstance, 8 ); - - return ( xComPortHandle ) 0; -} -/*-----------------------------------------------------------*/ - -BaseType_t xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, TickType_t xBlockTime ) -{ -BaseType_t xReturn; - - /* Only a single port is supported. */ - ( void ) pxPort; - - /* Obtain a received character from the queue - entering the Blocked state - (so not consuming any processing time) to wait for a character if one is not - already available. */ - xReturn = xQueueReceive( xRxQueue, pcRxedChar, xBlockTime ); - return xReturn; -} -/*-----------------------------------------------------------*/ - -void vSerialPutString( xComPortHandle pxPort, const signed char * const pcString, unsigned short usStringLength ) -{ -const TickType_t xMaxWait = 200UL / portTICK_PERIOD_MS; - - /* Only a single port is supported. */ - ( void ) pxPort; - - /* Start the transmission. The interrupt service routine will complete the - transmission if necessary. */ - XUartPs_Send( &xUARTInstance, ( void * ) pcString, usStringLength ); - - /* Wait until the string has been transmitted before exiting this function, - otherwise there is a risk the calling function will overwrite the string - pointed to by the pcString parameter while it is still being transmitted. - The calling task will wait in the Blocked state (so not consuming any - processing time) until the semaphore is available. */ - xSemaphoreTake( xTxCompleteSemaphore, xMaxWait ); -} -/*-----------------------------------------------------------*/ - -signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed char cOutChar, TickType_t xBlockTime ) -{ - /* Only a single port is supported. */ - ( void ) pxPort; - - /* Send the character. */ - XUartPs_Send( &xUARTInstance, ( void * ) &cOutChar, sizeof( cOutChar ) ); - - /* Wait for the transmission to be complete so the semaphore is left in the - correct state for the next time vSerialPutString() is called. */ - xSemaphoreTake( xTxCompleteSemaphore, xBlockTime ); - - return pdPASS; -} -/*-----------------------------------------------------------*/ - -void vSerialClose(xComPortHandle xPort) -{ - /* Not supported as not required by the demo application. */ - ( void ) xPort; -} -/*-----------------------------------------------------------*/ - -void prvUART_Handler( void *pvNotUsed ) -{ -extern unsigned int XUartPs_SendBuffer( XUartPs *InstancePtr ); -uint32_t ulActiveInterrupts, ulChannelStatusRegister; -BaseType_t xHigherPriorityTaskWoken = pdFALSE; -char cChar; - - configASSERT( pvNotUsed == &xUARTInstance ); - - /* Remove compile warnings if configASSERT() is not defined. */ - ( void ) pvNotUsed; - - /* Read the interrupt ID register to see which interrupt is active. */ - ulActiveInterrupts = XUartPs_ReadReg(XPAR_PS7_UART_1_BASEADDR, XUARTPS_IMR_OFFSET); - ulActiveInterrupts &= XUartPs_ReadReg(XPAR_PS7_UART_1_BASEADDR, XUARTPS_ISR_OFFSET); - - /* Are any receive events of interest active? */ - if( ( ulActiveInterrupts & serRECEIVE_INTERRUPT_MASK ) != 0 ) - { - /* Read the Channel Status Register to determine if there is any data in - the RX FIFO. */ - ulChannelStatusRegister = XUartPs_ReadReg( XPAR_PS7_UART_1_BASEADDR, XUARTPS_SR_OFFSET ); - - /* Move data from the Rx FIFO to the Rx queue. NOTE THE COMMENTS AT THE - TOP OF THIS FILE ABOUT USING QUEUES FOR THIS PURPSOE. */ - while( ( ulChannelStatusRegister & XUARTPS_SR_RXEMPTY ) == 0 ) - { - cChar = XUartPs_ReadReg( XPAR_PS7_UART_1_BASEADDR, XUARTPS_FIFO_OFFSET ); - - /* If writing to the queue unblocks a task, and the unblocked task - has a priority above the currently running task (the task that this - interrupt interrupted), then xHigherPriorityTaskWoken will be set - to pdTRUE inside the xQueueSendFromISR() function. - xHigherPriorityTaskWoken is then passed to portYIELD_FROM_ISR() at - the end of this interrupt handler to request a context switch so the - interrupt returns directly to the (higher priority) unblocked - task. */ - xQueueSendFromISR( xRxQueue, &cChar, &xHigherPriorityTaskWoken ); - ulChannelStatusRegister = XUartPs_ReadReg( XPAR_PS7_UART_1_BASEADDR, XUARTPS_SR_OFFSET ); - } - } - - /* Are any transmit events of interest active? */ - if( ( ulActiveInterrupts & serTRANSMIT_IINTERRUPT_MASK ) != 0 ) - { - if( xUARTInstance.SendBuffer.RemainingBytes == 0 ) - { - /* Give back the semaphore to indicate that the tranmission is - complete. If giving the semaphore unblocks a task, and the - unblocked task has a priority above the currently running task (the - task that this interrupt interrupted), then xHigherPriorityTaskWoken - will be set to pdTRUE inside the xSemaphoreGiveFromISR() function. - xHigherPriorityTaskWoken is then passed to portYIELD_FROM_ISR() at - the end of this interrupt handler to request a context switch so the - interrupt returns directly to the (higher priority) unblocked - task. */ - xSemaphoreGiveFromISR( xTxCompleteSemaphore, &xHigherPriorityTaskWoken ); - - /* No more data to transmit. */ - XUartPs_WriteReg( XPAR_PS7_UART_1_BASEADDR, XUARTPS_IDR_OFFSET, XUARTPS_IXR_TXEMPTY ); - } - else - { - /* More data to send. */ - XUartPs_SendBuffer( &xUARTInstance ); - } - } - - /* portYIELD_FROM_ISR() will request a context switch if executing this - interrupt handler caused a task to leave the blocked state, and the task - that left the blocked state has a higher priority than the currently running - task (the task this interrupt interrupted). See the comment above the calls - to xSemaphoreGiveFromISR() and xQueueSendFromISR() within this function. */ - portYIELD_FROM_ISR( xHigherPriorityTaskWoken ); - - /* Clear the interrupt status. */ - XUartPs_WriteReg( XPAR_PS7_UART_1_BASEADDR, XUARTPS_ISR_OFFSET, ulActiveInterrupts ); -} - - - - - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/ParTest.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/ParTest.c deleted file mode 100644 index 8adb21e06..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/ParTest.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - FreeRTOS V8.0.1 - Copyright (C) 2014 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - - FreeRTOS 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. Full license text is available from the following - link: http://www.freertos.org/a00114.html - - 1 tab == 4 spaces! - - *************************************************************************** - * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * - * * - * http://www.FreeRTOS.org/FAQHelp.html * - * * - *************************************************************************** - - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - -/*----------------------------------------------------------- - * Simple IO routines to control the LEDs. - * This file is called ParTest.c for historic reasons. Originally it stood for - * PARallel port TEST. - *-----------------------------------------------------------*/ - -/* Scheduler includes. */ -#include "FreeRTOS.h" -#include "task.h" - -/* Demo includes. */ -#include "partest.h" - -/* Xilinx includes. */ -#include "xgpiops.h" - -#define partstNUM_LEDS ( 1 ) -#define partstDIRECTION_OUTPUT ( 1 ) -#define partstOUTPUT_ENABLED ( 1 ) -#define partstLED_OUTPUT ( 10 ) - -/*-----------------------------------------------------------*/ - -static XGpioPs xGpio; - -/*-----------------------------------------------------------*/ - -void vParTestInitialise( void ) -{ -XGpioPs_Config *pxConfigPtr; -BaseType_t xStatus; - - /* Initialise the GPIO driver. */ - pxConfigPtr = XGpioPs_LookupConfig( XPAR_XGPIOPS_0_DEVICE_ID ); - xStatus = XGpioPs_CfgInitialize( &xGpio, pxConfigPtr, pxConfigPtr->BaseAddr ); - configASSERT( xStatus == XST_SUCCESS ); - ( void ) xStatus; /* Remove compiler warning if configASSERT() is not defined. */ - - /* Enable outputs and set low. */ - XGpioPs_SetDirectionPin( &xGpio, partstLED_OUTPUT, partstDIRECTION_OUTPUT ); - XGpioPs_SetOutputEnablePin( &xGpio, partstLED_OUTPUT, partstOUTPUT_ENABLED ); - XGpioPs_WritePin( &xGpio, partstLED_OUTPUT, 0x0 ); -} -/*-----------------------------------------------------------*/ - -void vParTestSetLED( UBaseType_t uxLED, BaseType_t xValue ) -{ - ( void ) uxLED; - XGpioPs_WritePin( &xGpio, partstLED_OUTPUT, xValue ); -} -/*-----------------------------------------------------------*/ - -void vParTestToggleLED( unsigned portBASE_TYPE uxLED ) -{ -BaseType_t xLEDState; - - ( void ) uxLED; - - xLEDState = XGpioPs_ReadPin( &xGpio, partstLED_OUTPUT ); - XGpioPs_WritePin( &xGpio, partstLED_OUTPUT, !xLEDState ); -} - - - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lscript.ld b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lscript.ld deleted file mode 100644 index 5312b3bdc..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lscript.ld +++ /dev/null @@ -1,286 +0,0 @@ -/*******************************************************************/ -/* */ -/* This file is automatically generated by linker script generator.*/ -/* */ -/* Version: Xilinx EDK 2013.4 EDK_2013.4.20131205 */ -/* */ -/* Copyright (c) 2010 Xilinx, Inc. All rights reserved. */ -/* */ -/* Description : Cortex-A9 Linker Script */ -/* */ -/*******************************************************************/ - -_STACK_SIZE = DEFINED(_STACK_SIZE) ? _STACK_SIZE : 0x2000; -_HEAP_SIZE = DEFINED(_HEAP_SIZE) ? _HEAP_SIZE : 0x2000; - -_ABORT_STACK_SIZE = DEFINED(_ABORT_STACK_SIZE) ? _ABORT_STACK_SIZE : 1024; -_SUPERVISOR_STACK_SIZE = DEFINED(_SUPERVISOR_STACK_SIZE) ? _SUPERVISOR_STACK_SIZE : 2048; -_IRQ_STACK_SIZE = DEFINED(_IRQ_STACK_SIZE) ? _IRQ_STACK_SIZE : 1024; -_FIQ_STACK_SIZE = DEFINED(_FIQ_STACK_SIZE) ? _FIQ_STACK_SIZE : 1024; -_UNDEF_STACK_SIZE = DEFINED(_UNDEF_STACK_SIZE) ? _UNDEF_STACK_SIZE : 1024; - -/* Define Memories in the system */ - -MEMORY -{ - ps7_ddr_0_S_AXI_BASEADDR : ORIGIN = 0x00100000, LENGTH = 0x3FF00000 - ps7_ram_0_S_AXI_BASEADDR : ORIGIN = 0x00000000, LENGTH = 0x00030000 - ps7_ram_1_S_AXI_BASEADDR : ORIGIN = 0xFFFF0000, LENGTH = 0x0000FE00 -} - -/* Specify the default entry point to the program */ - -ENTRY(_freertos_vector_table) - -/* Define the sections, and where they are mapped in memory */ - -SECTIONS -{ -.text : { - *(.freertos_vectors) - *(.vectors) - *(.boot) - *(.text) - *(.text.*) - *(.gnu.linkonce.t.*) - *(.plt) - *(.gnu_warning) - *(.gcc_execpt_table) - *(.glue_7) - *(.glue_7t) - *(.vfp11_veneer) - *(.ARM.extab) - *(.gnu.linkonce.armextab.*) -} > ps7_ddr_0_S_AXI_BASEADDR - -.init : { - KEEP (*(.init)) -} > ps7_ddr_0_S_AXI_BASEADDR - -.fini : { - KEEP (*(.fini)) -} > ps7_ddr_0_S_AXI_BASEADDR - -.rodata : { - __rodata_start = .; - *(.rodata) - *(.rodata.*) - *(.gnu.linkonce.r.*) - __rodata_end = .; -} > ps7_ddr_0_S_AXI_BASEADDR - -.rodata1 : { - __rodata1_start = .; - *(.rodata1) - *(.rodata1.*) - __rodata1_end = .; -} > ps7_ddr_0_S_AXI_BASEADDR - -.sdata2 : { - __sdata2_start = .; - *(.sdata2) - *(.sdata2.*) - *(.gnu.linkonce.s2.*) - __sdata2_end = .; -} > ps7_ddr_0_S_AXI_BASEADDR - -.sbss2 : { - __sbss2_start = .; - *(.sbss2) - *(.sbss2.*) - *(.gnu.linkonce.sb2.*) - __sbss2_end = .; -} > ps7_ddr_0_S_AXI_BASEADDR - -.data : { - __data_start = .; - *(.data) - *(.data.*) - *(.gnu.linkonce.d.*) - *(.jcr) - *(.got) - *(.got.plt) - __data_end = .; -} > ps7_ddr_0_S_AXI_BASEADDR - -.data1 : { - __data1_start = .; - *(.data1) - *(.data1.*) - __data1_end = .; -} > ps7_ddr_0_S_AXI_BASEADDR - -.got : { - *(.got) -} > ps7_ddr_0_S_AXI_BASEADDR - -.ctors : { - __CTOR_LIST__ = .; - ___CTORS_LIST___ = .; - KEEP (*crtbegin.o(.ctors)) - KEEP (*(EXCLUDE_FILE(*crtend.o) .ctors)) - KEEP (*(SORT(.ctors.*))) - KEEP (*(.ctors)) - __CTOR_END__ = .; - ___CTORS_END___ = .; -} > ps7_ddr_0_S_AXI_BASEADDR - -.dtors : { - __DTOR_LIST__ = .; - ___DTORS_LIST___ = .; - KEEP (*crtbegin.o(.dtors)) - KEEP (*(EXCLUDE_FILE(*crtend.o) .dtors)) - KEEP (*(SORT(.dtors.*))) - KEEP (*(.dtors)) - __DTOR_END__ = .; - ___DTORS_END___ = .; -} > ps7_ddr_0_S_AXI_BASEADDR - -.fixup : { - __fixup_start = .; - *(.fixup) - __fixup_end = .; -} > ps7_ddr_0_S_AXI_BASEADDR - -.eh_frame : { - *(.eh_frame) -} > ps7_ddr_0_S_AXI_BASEADDR - -.eh_framehdr : { - __eh_framehdr_start = .; - *(.eh_framehdr) - __eh_framehdr_end = .; -} > ps7_ddr_0_S_AXI_BASEADDR - -.gcc_except_table : { - *(.gcc_except_table) -} > ps7_ddr_0_S_AXI_BASEADDR - -.mmu_tbl (ALIGN(16384)) : { - __mmu_tbl_start = .; - *(.mmu_tbl) - __mmu_tbl_end = .; -} > ps7_ddr_0_S_AXI_BASEADDR - -.ARM.exidx : { - __exidx_start = .; - *(.ARM.exidx*) - *(.gnu.linkonce.armexidix.*.*) - __exidx_end = .; -} > ps7_ddr_0_S_AXI_BASEADDR - -.preinit_array : { - __preinit_array_start = .; - KEEP (*(SORT(.preinit_array.*))) - KEEP (*(.preinit_array)) - __preinit_array_end = .; -} > ps7_ddr_0_S_AXI_BASEADDR - -.init_array : { - __init_array_start = .; - KEEP (*(SORT(.init_array.*))) - KEEP (*(.init_array)) - __init_array_end = .; -} > ps7_ddr_0_S_AXI_BASEADDR - -.fini_array : { - __fini_array_start = .; - KEEP (*(SORT(.fini_array.*))) - KEEP (*(.fini_array)) - __fini_array_end = .; -} > ps7_ddr_0_S_AXI_BASEADDR - -.ARM.attributes : { - __ARM.attributes_start = .; - *(.ARM.attributes) - __ARM.attributes_end = .; -} > ps7_ddr_0_S_AXI_BASEADDR - -.sdata : { - __sdata_start = .; - *(.sdata) - *(.sdata.*) - *(.gnu.linkonce.s.*) - __sdata_end = .; -} > ps7_ddr_0_S_AXI_BASEADDR - -.sbss (NOLOAD) : { - __sbss_start = .; - *(.sbss) - *(.sbss.*) - *(.gnu.linkonce.sb.*) - __sbss_end = .; -} > ps7_ddr_0_S_AXI_BASEADDR - -.tdata : { - __tdata_start = .; - *(.tdata) - *(.tdata.*) - *(.gnu.linkonce.td.*) - __tdata_end = .; -} > ps7_ddr_0_S_AXI_BASEADDR - -.tbss : { - __tbss_start = .; - *(.tbss) - *(.tbss.*) - *(.gnu.linkonce.tb.*) - __tbss_end = .; -} > ps7_ddr_0_S_AXI_BASEADDR - -.bss (NOLOAD) : { - __bss_start = .; - *(.bss) - *(.bss.*) - *(.gnu.linkonce.b.*) - *(COMMON) - __bss_end = .; -} > ps7_ddr_0_S_AXI_BASEADDR - -_SDA_BASE_ = __sdata_start + ((__sbss_end - __sdata_start) / 2 ); - -_SDA2_BASE_ = __sdata2_start + ((__sbss2_end - __sdata2_start) / 2 ); - -/* Generate Stack and Heap definitions */ - -.heap (NOLOAD) : { - . = ALIGN(16); - _heap = .; - HeapBase = .; - _heap_start = .; - . += _HEAP_SIZE; - _heap_end = .; - HeapLimit = .; -} > ps7_ddr_0_S_AXI_BASEADDR - -.stack (NOLOAD) : { - . = ALIGN(16); - _stack_end = .; - . += _STACK_SIZE; - _stack = .; - __stack = _stack; - . = ALIGN(16); - _irq_stack_end = .; - . += _IRQ_STACK_SIZE; - __irq_stack = .; - _supervisor_stack_end = .; - . += _SUPERVISOR_STACK_SIZE; - . = ALIGN(16); - __supervisor_stack = .; - _abort_stack_end = .; - . += _ABORT_STACK_SIZE; - . = ALIGN(16); - __abort_stack = .; - _fiq_stack_end = .; - . += _FIQ_STACK_SIZE; - . = ALIGN(16); - __fiq_stack = .; - _undef_stack_end = .; - . += _UNDEF_STACK_SIZE; - . = ALIGN(16); - __undef_stack = .; -} > ps7_ddr_0_S_AXI_BASEADDR - -_end = .; -} - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/BasicSocketCommandServer/BasicSocketCommandServer.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/BasicSocketCommandServer/BasicSocketCommandServer.c deleted file mode 100644 index c16580670..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/BasicSocketCommandServer/BasicSocketCommandServer.c +++ /dev/null @@ -1,203 +0,0 @@ -/* - FreeRTOS V7.0.2 - Copyright (C) 2011 Real Time Engineers Ltd. - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS 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 the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -/* Standard includes. */ -#include "stdlib.h" -#include "string.h" - -/* lwIP core includes */ -#include "lwip/opt.h" -#include "lwip/sockets.h" - -/* FreeRTOS includes. */ -#include "FreeRTOS.h" -#include "task.h" - -/* Utils includes. */ -#include "FreeRTOS_CLI.h" - -/* Dimensions the buffer into which input characters are placed. */ -#define cmdMAX_INPUT_SIZE 100 - -/* Dimensions the buffer into which string outputs can be placed. */ -#define cmdMAX_OUTPUT_SIZE 1024 - -/*-----------------------------------------------------------*/ - -void vBasicSocketsCommandInterpreterTask( void *pvParameters ) -{ -long lSocket, lClientFd, lBytes, lAddrLen = sizeof( struct sockaddr_in ), lInputIndex; -struct sockaddr_in sLocalAddr; -struct sockaddr_in client_addr; -const char *pcWelcomeMessage = "FreeRTOS command server - connection accepted.\r\nType Help to view a list of registered commands.\r\n\r\n>"; -char cInChar; -static char cInputString[ cmdMAX_INPUT_SIZE ], cOutputString[ cmdMAX_OUTPUT_SIZE ]; -portBASE_TYPE xReturned; -extern void vRegisterSampleCLICommands( void ); - - ( void ) pvParameters; - - /* Register the standard CLI commands. */ - vRegisterSampleCLICommands(); - - lSocket = lwip_socket(AF_INET, SOCK_STREAM, 0); - - if( lSocket >= 0 ) - { - memset((char *)&sLocalAddr, 0, sizeof(sLocalAddr)); - sLocalAddr.sin_family = AF_INET; - sLocalAddr.sin_len = sizeof(sLocalAddr); - sLocalAddr.sin_addr.s_addr = htonl(INADDR_ANY); - sLocalAddr.sin_port = ntohs( ( ( unsigned short ) 23 ) ); - - if( lwip_bind( lSocket, ( struct sockaddr *) &sLocalAddr, sizeof( sLocalAddr ) ) < 0 ) - { - lwip_close( lSocket ); - vTaskDelete( NULL ); - } - - if( lwip_listen( lSocket, 20 ) != 0 ) - { - lwip_close( lSocket ); - vTaskDelete( NULL ); - } - - for( ;; ) - { - - lClientFd = lwip_accept(lSocket, ( struct sockaddr * ) &client_addr, ( u32_t * ) &lAddrLen ); - - if( lClientFd > 0L ) - { - lwip_send( lClientFd, pcWelcomeMessage, strlen( ( const char * ) pcWelcomeMessage ), 0 ); - - lInputIndex = 0; - memset( cInputString, 0x00, cmdMAX_INPUT_SIZE ); - - do - { - lBytes = lwip_recv( lClientFd, &cInChar, sizeof( cInChar ), 0 ); - - if( lBytes > 0L ) - { - if( cInChar == '\n' ) - { - /* The input string has been terminated. Was the - input a quit command? */ - if( strcmp( "quit", ( const char * ) cInputString ) == 0 ) - { - /* Set lBytes to 0 to close the connection. */ - lBytes = 0L; - } - else - { - /* The input string was not a quit command. - Pass the string to the command interpreter. */ - do - { - /* Get the next output string from the command interpreter. */ - xReturned = FreeRTOS_CLIProcessCommand( cInputString, cOutputString, configCOMMAND_INT_MAX_OUTPUT_SIZE ); - lwip_send( lClientFd, cOutputString, strlen( ( const char * ) cOutputString ), 0 ); - - } while( xReturned != pdFALSE ); - - - /* All the strings generated by the input - command have been sent. Clear the input - string ready to receive the next command. */ - lInputIndex = 0; - memset( cInputString, 0x00, cmdMAX_INPUT_SIZE ); - lwip_send( lClientFd, "\r\n>", strlen( "\r\n>" ), 0 ); - } - } - else - { - if( cInChar == '\r' ) - { - /* Ignore the character. */ - } - else if( cInChar == '\b' ) - { - /* Backspace was pressed. Erase the last - character in the string - if any. */ - if( lInputIndex > 0 ) - { - lInputIndex--; - cInputString[ lInputIndex ] = '\0'; - } - } - else - { - /* A character was entered. Add it to the string - entered so far. When a \n is entered the complete - string will be passed to the command interpreter. */ - if( lInputIndex < cmdMAX_INPUT_SIZE ) - { - cInputString[ lInputIndex ] = cInChar; - lInputIndex++; - } - } - } - } - - } while( lBytes > 0L ); - - lwip_close( lClientFd ); - } - } - } - - /* Will only get here if a listening socket could not be created. */ - vTaskDelete( NULL ); -} - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fs.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fs.c deleted file mode 100644 index 993fffcdd..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fs.c +++ /dev/null @@ -1,177 +0,0 @@ -/* - * Copyright (c) 2001-2003 Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. - * - * This file is part of the lwIP TCP/IP stack. - * - * Author: Adam Dunkels - * - */ -#include "lwip/opt.h" -#include "lwip/def.h" -#include "fs.h" -#include "fsdata.h" -#include - -/** Set this to 1 to include "fsdata_custom.c" instead of "fsdata.c" for the - * file system (to prevent changing the file included in CVS) */ -#ifndef HTTPD_USE_CUSTUM_FSDATA -#define HTTPD_USE_CUSTUM_FSDATA 0 -#endif - -#if HTTPD_USE_CUSTUM_FSDATA -#include "fsdata_custom.c" -#else /* HTTPD_USE_CUSTUM_FSDATA */ -#include "fsdata.c" -#endif /* HTTPD_USE_CUSTUM_FSDATA */ - -/*-----------------------------------------------------------------------------------*/ -/* Define the number of open files that we can support. */ -#ifndef LWIP_MAX_OPEN_FILES -#define LWIP_MAX_OPEN_FILES 10 -#endif - -/* Define the file system memory allocation structure. */ -struct fs_table { - struct fs_file file; - u8_t inuse; -}; - -/* Allocate file system memory */ -struct fs_table fs_memory[LWIP_MAX_OPEN_FILES]; - -#if LWIP_HTTPD_CUSTOM_FILES -int fs_open_custom(struct fs_file *file, const char *name); -void fs_close_custom(struct fs_file *file); -#endif /* LWIP_HTTPD_CUSTOM_FILES */ - -/*-----------------------------------------------------------------------------------*/ -static struct fs_file * -fs_malloc(void) -{ - int i; - for(i = 0; i < LWIP_MAX_OPEN_FILES; i++) { - if(fs_memory[i].inuse == 0) { - fs_memory[i].inuse = 1; - return(&fs_memory[i].file); - } - } - return(NULL); -} - -/*-----------------------------------------------------------------------------------*/ -static void -fs_free(struct fs_file *file) -{ - int i; - for(i = 0; i < LWIP_MAX_OPEN_FILES; i++) { - if(&fs_memory[i].file == file) { - fs_memory[i].inuse = 0; - break; - } - } - return; -} - -/*-----------------------------------------------------------------------------------*/ -struct fs_file * -fs_open(const char *name) -{ - struct fs_file *file; - const struct fsdata_file *f; - - file = fs_malloc(); - if(file == NULL) { - return NULL; - } - -#if LWIP_HTTPD_CUSTOM_FILES - if(fs_open_custom(file, name)) { - file->is_custom_file = 1; - return file; - } - file->is_custom_file = 0; -#endif /* LWIP_HTTPD_CUSTOM_FILES */ - - for(f = FS_ROOT; f != NULL; f = f->next) { - if (!strcmp(name, (char *)f->name)) { - file->data = (const char *)f->data; - file->len = f->len; - file->index = f->len; - file->pextension = NULL; - file->http_header_included = f->http_header_included; -#if HTTPD_PRECALCULATED_CHECKSUM - file->chksum_count = f->chksum_count; - file->chksum = f->chksum; -#endif /* HTTPD_PRECALCULATED_CHECKSUM */ -#if LWIP_HTTPD_FILE_STATE - file->state = fs_state_init(file, name); -#endif /* #if LWIP_HTTPD_FILE_STATE */ - return file; - } - } - fs_free(file); - return NULL; -} - -/*-----------------------------------------------------------------------------------*/ -void -fs_close(struct fs_file *file) -{ -#if LWIP_HTTPD_CUSTOM_FILES - if (file->is_custom_file) { - fs_close_custom(file); - } -#endif /* LWIP_HTTPD_CUSTOM_FILES */ -#if LWIP_HTTPD_FILE_STATE - fs_state_free(file, file->state); -#endif /* #if LWIP_HTTPD_FILE_STATE */ - fs_free(file); -} -/*-----------------------------------------------------------------------------------*/ -int -fs_read(struct fs_file *file, char *buffer, int count) -{ - int read; - - if(file->index == file->len) { - return -1; - } - - read = file->len - file->index; - if(read > count) { - read = count; - } - - MEMCPY(buffer, (file->data + file->index), read); - file->index += read; - - return(read); -} -/*-----------------------------------------------------------------------------------*/ -int fs_bytes_left(struct fs_file *file) -{ - return file->len - file->index; -} diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fs.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fs.h deleted file mode 100644 index cd7675923..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fs.h +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright (c) 2001-2003 Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. - * - * This file is part of the lwIP TCP/IP stack. - * - * Author: Adam Dunkels - * - */ -#ifndef __FS_H__ -#define __FS_H__ - -#include "lwip/opt.h" - -/** Set this to 1 and provide the functions: - * - "int fs_open_custom(struct fs_file *file, const char *name)" - * Called first for every opened file to allow opening files - * that are not included in fsdata(_custom).c - * - "void fs_close_custom(struct fs_file *file)" - * Called to free resources allocated by fs_open_custom(). - */ -#ifndef LWIP_HTTPD_CUSTOM_FILES -#define LWIP_HTTPD_CUSTOM_FILES 0 -#endif - -/** Set this to 1 to include an application state argument per file - * that is opened. This allows to keep a state per connection/file. - */ -#ifndef LWIP_HTTPD_FILE_STATE -#define LWIP_HTTPD_FILE_STATE 0 -#endif - -/** HTTPD_PRECALCULATED_CHECKSUM==1: include precompiled checksums for - * predefined (MSS-sized) chunks of the files to prevent having to calculate - * the checksums at runtime. */ -#ifndef HTTPD_PRECALCULATED_CHECKSUM -#define HTTPD_PRECALCULATED_CHECKSUM 0 -#endif - -#if HTTPD_PRECALCULATED_CHECKSUM -struct fsdata_chksum { - u32_t offset; - u16_t chksum; - u16_t len; -}; -#endif /* HTTPD_PRECALCULATED_CHECKSUM */ - -struct fs_file { - const char *data; - int len; - int index; - void *pextension; -#if HTTPD_PRECALCULATED_CHECKSUM - const struct fsdata_chksum *chksum; - u16_t chksum_count; -#endif /* HTTPD_PRECALCULATED_CHECKSUM */ - u8_t http_header_included; -#if LWIP_HTTPD_CUSTOM_FILES - u8_t is_custom_file; -#endif /* LWIP_HTTPD_CUSTOM_FILES */ -#if LWIP_HTTPD_FILE_STATE - void *state; -#endif /* LWIP_HTTPD_FILE_STATE */ -}; - -struct fs_file *fs_open(const char *name); -void fs_close(struct fs_file *file); -int fs_read(struct fs_file *file, char *buffer, int count); -int fs_bytes_left(struct fs_file *file); - -#if LWIP_HTTPD_FILE_STATE -/** This user-defined function is called when a file is opened. */ -void *fs_state_init(struct fs_file *file, const char *name); -/** This user-defined function is called when a file is closed. */ -void fs_state_free(struct fs_file *file, void *state); -#endif /* #if LWIP_HTTPD_FILE_STATE */ - -#endif /* __FS_H__ */ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fsdata.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fsdata.c deleted file mode 100644 index f2ddfd935..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fsdata.c +++ /dev/null @@ -1,2068 +0,0 @@ -#include "fs.h" -#include "lwip/def.h" -#include "fsdata.h" - - -#define file_NULL (struct fsdata_file *) NULL - - -static const unsigned int dummy_align__404_html = 0; -static const unsigned char data__404_html[] = { -/* /404.html (10 chars) */ -0x2f,0x34,0x30,0x34,0x2e,0x68,0x74,0x6d,0x6c,0x00,0x00,0x00, - -/* HTTP header */ -/* "HTTP/1.0 404 File not found -" (29 bytes) */ -0x48,0x54,0x54,0x50,0x2f,0x31,0x2e,0x30,0x20,0x34,0x30,0x34,0x20,0x46,0x69,0x6c, -0x65,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x0d,0x0a, -/* "Server: lwIP/1.3.1 (http://savannah.nongnu.org/projects/lwip) -" (63 bytes) */ -0x53,0x65,0x72,0x76,0x65,0x72,0x3a,0x20,0x6c,0x77,0x49,0x50,0x2f,0x31,0x2e,0x33, -0x2e,0x31,0x20,0x28,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x73,0x61,0x76,0x61,0x6e, -0x6e,0x61,0x68,0x2e,0x6e,0x6f,0x6e,0x67,0x6e,0x75,0x2e,0x6f,0x72,0x67,0x2f,0x70, -0x72,0x6f,0x6a,0x65,0x63,0x74,0x73,0x2f,0x6c,0x77,0x69,0x70,0x29,0x0d,0x0a, -/* "Content-type: text/html - -" (27 bytes) */ -0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x74,0x79,0x70,0x65,0x3a,0x20,0x74,0x65, -0x78,0x74,0x2f,0x68,0x74,0x6d,0x6c,0x0d,0x0a,0x0d,0x0a, -/* raw file data (544 bytes) */ -0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x0a,0x3c,0x68,0x65,0x61,0x64,0x3e,0x3c,0x74,0x69, -0x74,0x6c,0x65,0x3e,0x6c,0x77,0x49,0x50,0x20,0x2d,0x20,0x41,0x20,0x4c,0x69,0x67, -0x68,0x74,0x77,0x65,0x69,0x67,0x68,0x74,0x20,0x54,0x43,0x50,0x2f,0x49,0x50,0x20, -0x53,0x74,0x61,0x63,0x6b,0x3c,0x2f,0x74,0x69,0x74,0x6c,0x65,0x3e,0x3c,0x2f,0x68, -0x65,0x61,0x64,0x3e,0x0a,0x3c,0x62,0x6f,0x64,0x79,0x20,0x62,0x67,0x63,0x6f,0x6c, -0x6f,0x72,0x3d,0x22,0x77,0x68,0x69,0x74,0x65,0x22,0x20,0x74,0x65,0x78,0x74,0x3d, -0x22,0x62,0x6c,0x61,0x63,0x6b,0x22,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x3c,0x74, -0x61,0x62,0x6c,0x65,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22,0x31,0x30,0x30,0x25, -0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x20,0x76,0x61,0x6c, -0x69,0x67,0x6e,0x3d,0x22,0x74,0x6f,0x70,0x22,0x3e,0x3c,0x74,0x64,0x20,0x77,0x69, -0x64,0x74,0x68,0x3d,0x22,0x38,0x30,0x22,0x3e,0x09,0x20,0x20,0x0a,0x09,0x20,0x20, -0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f, -0x77,0x77,0x77,0x2e,0x73,0x69,0x63,0x73,0x2e,0x73,0x65,0x2f,0x22,0x3e,0x3c,0x69, -0x6d,0x67,0x20,0x73,0x72,0x63,0x3d,0x22,0x2f,0x69,0x6d,0x67,0x2f,0x73,0x69,0x63, -0x73,0x2e,0x67,0x69,0x66,0x22,0x0a,0x09,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72, -0x3d,0x22,0x30,0x22,0x20,0x61,0x6c,0x74,0x3d,0x22,0x53,0x49,0x43,0x53,0x20,0x6c, -0x6f,0x67,0x6f,0x22,0x20,0x74,0x69,0x74,0x6c,0x65,0x3d,0x22,0x53,0x49,0x43,0x53, -0x20,0x6c,0x6f,0x67,0x6f,0x22,0x3e,0x3c,0x2f,0x61,0x3e,0x0a,0x09,0x3c,0x2f,0x74, -0x64,0x3e,0x3c,0x74,0x64,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22,0x35,0x30,0x30, -0x22,0x3e,0x09,0x20,0x20,0x0a,0x09,0x20,0x20,0x3c,0x68,0x31,0x3e,0x6c,0x77,0x49, -0x50,0x20,0x2d,0x20,0x41,0x20,0x4c,0x69,0x67,0x68,0x74,0x77,0x65,0x69,0x67,0x68, -0x74,0x20,0x54,0x43,0x50,0x2f,0x49,0x50,0x20,0x53,0x74,0x61,0x63,0x6b,0x3c,0x2f, -0x68,0x31,0x3e,0x0a,0x09,0x20,0x20,0x3c,0x68,0x32,0x3e,0x34,0x30,0x34,0x20,0x2d, -0x20,0x50,0x61,0x67,0x65,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x3c, -0x2f,0x68,0x32,0x3e,0x0a,0x09,0x20,0x20,0x3c,0x70,0x3e,0x0a,0x09,0x20,0x20,0x20, -0x20,0x53,0x6f,0x72,0x72,0x79,0x2c,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x67,0x65, -0x20,0x79,0x6f,0x75,0x20,0x61,0x72,0x65,0x20,0x72,0x65,0x71,0x75,0x65,0x73,0x74, -0x69,0x6e,0x67,0x20,0x77,0x61,0x73,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e, -0x64,0x20,0x6f,0x6e,0x20,0x74,0x68,0x69,0x73,0x0a,0x09,0x20,0x20,0x20,0x20,0x73, -0x65,0x72,0x76,0x65,0x72,0x2e,0x20,0x0a,0x09,0x20,0x20,0x3c,0x2f,0x70,0x3e,0x0a, -0x09,0x3c,0x2f,0x74,0x64,0x3e,0x3c,0x74,0x64,0x3e,0x0a,0x09,0x20,0x20,0x26,0x6e, -0x62,0x73,0x70,0x3b,0x0a,0x09,0x3c,0x2f,0x74,0x64,0x3e,0x3c,0x2f,0x74,0x72,0x3e, -0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x0a, -0x3c,0x2f,0x62,0x6f,0x64,0x79,0x3e,0x0a,0x3c,0x2f,0x68,0x74,0x6d,0x6c,0x3e,0x0a, -}; - -static const unsigned int dummy_align__index_shtml = 1; -static const unsigned char data__index_shtml[] = { -/* /index.shtml (13 chars) */ -0x2f,0x69,0x6e,0x64,0x65,0x78,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x00,0x00,0x00,0x00, - -/* HTTP header */ -/* "HTTP/1.0 200 OK -" (17 bytes) */ -0x48,0x54,0x54,0x50,0x2f,0x31,0x2e,0x30,0x20,0x32,0x30,0x30,0x20,0x4f,0x4b,0x0d, -0x0a, -/* "Server: lwIP/1.3.1 (http://savannah.nongnu.org/projects/lwip) -" (63 bytes) */ -0x53,0x65,0x72,0x76,0x65,0x72,0x3a,0x20,0x6c,0x77,0x49,0x50,0x2f,0x31,0x2e,0x33, -0x2e,0x31,0x20,0x28,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x73,0x61,0x76,0x61,0x6e, -0x6e,0x61,0x68,0x2e,0x6e,0x6f,0x6e,0x67,0x6e,0x75,0x2e,0x6f,0x72,0x67,0x2f,0x70, -0x72,0x6f,0x6a,0x65,0x63,0x74,0x73,0x2f,0x6c,0x77,0x69,0x70,0x29,0x0d,0x0a, -/* "Content-type: text/html -Expires: Fri, 10 Apr 2008 14:00:00 GMT -Pragma: no-cache - -" (85 bytes) */ -0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x74,0x79,0x70,0x65,0x3a,0x20,0x74,0x65, -0x78,0x74,0x2f,0x68,0x74,0x6d,0x6c,0x0d,0x0a,0x45,0x78,0x70,0x69,0x72,0x65,0x73, -0x3a,0x20,0x46,0x72,0x69,0x2c,0x20,0x31,0x30,0x20,0x41,0x70,0x72,0x20,0x32,0x30, -0x30,0x38,0x20,0x31,0x34,0x3a,0x30,0x30,0x3a,0x30,0x30,0x20,0x47,0x4d,0x54,0x0d, -0x0a,0x50,0x72,0x61,0x67,0x6d,0x61,0x3a,0x20,0x6e,0x6f,0x2d,0x63,0x61,0x63,0x68, -0x65,0x0d,0x0a,0x0d,0x0a, -/* raw file data (762 bytes) */ -0x3c,0x21,0x44,0x4f,0x43,0x54,0x59,0x50,0x45,0x20,0x48,0x54,0x4d,0x4c,0x20,0x50, -0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f,0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44, -0x54,0x44,0x20,0x48,0x54,0x4d,0x4c,0x20,0x34,0x2e,0x30,0x31,0x20,0x54,0x72,0x61, -0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x2f,0x2f,0x45,0x4e,0x22,0x20,0x22, -0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, -0x67,0x2f,0x54,0x52,0x2f,0x68,0x74,0x6d,0x6c,0x34,0x2f,0x6c,0x6f,0x6f,0x73,0x65, -0x2e,0x64,0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x0d,0x0a, -0x20,0x20,0x3c,0x68,0x65,0x61,0x64,0x3e,0x0d,0x0a,0x20,0x20,0x20,0x20,0x3c,0x74, -0x69,0x74,0x6c,0x65,0x3e,0x46,0x72,0x65,0x65,0x52,0x54,0x4f,0x53,0x2e,0x6f,0x72, -0x67,0x20,0x6c,0x77,0x49,0x50,0x20,0x57,0x45,0x42,0x20,0x73,0x65,0x72,0x76,0x65, -0x72,0x20,0x64,0x65,0x6d,0x6f,0x3c,0x2f,0x74,0x69,0x74,0x6c,0x65,0x3e,0x0d,0x0a, -0x20,0x20,0x3c,0x2f,0x68,0x65,0x61,0x64,0x3e,0x0d,0x0a,0x20,0x20,0x3c,0x42,0x4f, -0x44,0x59,0x20,0x6f,0x6e,0x4c,0x6f,0x61,0x64,0x3d,0x22,0x77,0x69,0x6e,0x64,0x6f, -0x77,0x2e,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x26,0x71,0x75, -0x6f,0x74,0x3b,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x68,0x72,0x65,0x66, -0x3d,0x27,0x69,0x6e,0x64,0x65,0x78,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x27,0x26,0x71, -0x75,0x6f,0x74,0x3b,0x2c,0x32,0x30,0x30,0x30,0x29,0x22,0x3e,0x0d,0x0a,0x3c,0x66, -0x6f,0x6e,0x74,0x20,0x66,0x61,0x63,0x65,0x3d,0x22,0x61,0x72,0x69,0x61,0x6c,0x22, -0x3e,0x0d,0x0a,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x69,0x6e,0x64,0x65, -0x78,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x54,0x61,0x73,0x6b,0x20,0x53,0x74, -0x61,0x74,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62,0x3e,0x7c,0x3c,0x2f,0x62,0x3e, -0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x72,0x75,0x6e,0x74,0x69,0x6d, -0x65,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x52,0x75,0x6e,0x20,0x54,0x69,0x6d, -0x65,0x20,0x53,0x74,0x61,0x74,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62,0x3e,0x7c, -0x3c,0x2f,0x62,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x68,0x74, -0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x66,0x72,0x65,0x65,0x72,0x74,0x6f, -0x73,0x2e,0x6f,0x72,0x67,0x2f,0x22,0x3e,0x46,0x72,0x65,0x65,0x52,0x54,0x4f,0x53, -0x20,0x48,0x6f,0x6d,0x65,0x70,0x61,0x67,0x65,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62, -0x3e,0x7c,0x3c,0x2f,0x62,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22, -0x6c,0x6f,0x67,0x6f,0x2e,0x6a,0x70,0x67,0x22,0x3e,0x33,0x37,0x4b,0x20,0x6a,0x70, -0x67,0x3c,0x2f,0x61,0x3e,0x0d,0x0a,0x3c,0x62,0x72,0x3e,0x3c,0x70,0x3e,0x0d,0x0a, -0x3c,0x68,0x72,0x3e,0x0d,0x0a,0x3c,0x62,0x72,0x3e,0x3c,0x70,0x3e,0x0d,0x0a,0x3c, -0x68,0x32,0x3e,0x54,0x61,0x73,0x6b,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69, -0x63,0x73,0x3c,0x2f,0x68,0x32,0x3e,0x0d,0x0a,0x50,0x61,0x67,0x65,0x20,0x77,0x69, -0x6c,0x6c,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x65,0x76,0x65,0x72,0x79, -0x20,0x32,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x73,0x2e,0x3c,0x70,0x3e,0x0d,0x0a, -0x3c,0x66,0x6f,0x6e,0x74,0x20,0x66,0x61,0x63,0x65,0x3d,0x22,0x63,0x6f,0x75,0x72, -0x69,0x65,0x72,0x22,0x3e,0x3c,0x70,0x72,0x65,0x3e,0x54,0x61,0x73,0x6b,0x20,0x20, -0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x53,0x74,0x61,0x74,0x65,0x20,0x20,0x50, -0x72,0x69,0x6f,0x72,0x69,0x74,0x79,0x20,0x20,0x53,0x74,0x61,0x63,0x6b,0x09,0x23, -0x3c,0x62,0x72,0x3e,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a, -0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a, -0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a, -0x2a,0x2a,0x2a,0x2a,0x3c,0x62,0x72,0x3e,0x0d,0x0a,0x3c,0x21,0x2d,0x2d,0x23,0x72, -0x74,0x6f,0x73,0x5f,0x73,0x74,0x61,0x74,0x73,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x2f, -0x70,0x72,0x65,0x3e,0x3c,0x2f,0x66,0x6f,0x6e,0x74,0x3e,0x0d,0x0a,0x3c,0x2f,0x66, -0x6f,0x6e,0x74,0x3e,0x0d,0x0a,0x3c,0x2f,0x62,0x6f,0x64,0x79,0x3e,0x0d,0x0a,0x3c, -0x2f,0x68,0x74,0x6d,0x6c,0x3e,0x0d,0x0a,0x0d,0x0a,}; - -static const unsigned int dummy_align__logo_jpg = 2; -static const unsigned char data__logo_jpg[] = { -/* /logo.jpg (10 chars) */ -0x2f,0x6c,0x6f,0x67,0x6f,0x2e,0x6a,0x70,0x67,0x00,0x00,0x00, - -/* HTTP header */ -/* "HTTP/1.0 200 OK -" (17 bytes) */ -0x48,0x54,0x54,0x50,0x2f,0x31,0x2e,0x30,0x20,0x32,0x30,0x30,0x20,0x4f,0x4b,0x0d, -0x0a, -/* "Server: lwIP/1.3.1 (http://savannah.nongnu.org/projects/lwip) -" (63 bytes) */ -0x53,0x65,0x72,0x76,0x65,0x72,0x3a,0x20,0x6c,0x77,0x49,0x50,0x2f,0x31,0x2e,0x33, -0x2e,0x31,0x20,0x28,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x73,0x61,0x76,0x61,0x6e, -0x6e,0x61,0x68,0x2e,0x6e,0x6f,0x6e,0x67,0x6e,0x75,0x2e,0x6f,0x72,0x67,0x2f,0x70, -0x72,0x6f,0x6a,0x65,0x63,0x74,0x73,0x2f,0x6c,0x77,0x69,0x70,0x29,0x0d,0x0a, -/* "Content-type: image/jpeg - -" (28 bytes) */ -0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x74,0x79,0x70,0x65,0x3a,0x20,0x69,0x6d, -0x61,0x67,0x65,0x2f,0x6a,0x70,0x65,0x67,0x0d,0x0a,0x0d,0x0a, -/* raw file data (28602 bytes) */ -0xff,0xd8,0xff,0xe0,0x00,0x10,0x4a,0x46,0x49,0x46,0x00,0x01,0x01,0x00,0x00,0x01, -0x00,0x01,0x00,0x00,0xff,0xdb,0x00,0x43,0x00,0x03,0x02,0x02,0x03,0x02,0x02,0x03, -0x03,0x03,0x03,0x04,0x03,0x03,0x04,0x05,0x08,0x05,0x05,0x04,0x04,0x05,0x0a,0x07, -0x07,0x06,0x08,0x0c,0x0a,0x0c,0x0c,0x0b,0x0a,0x0b,0x0b,0x0d,0x0e,0x12,0x10,0x0d, -0x0e,0x11,0x0e,0x0b,0x0b,0x10,0x16,0x10,0x11,0x13,0x14,0x15,0x15,0x15,0x0c,0x0f, -0x17,0x18,0x16,0x14,0x18,0x12,0x14,0x15,0x14,0xff,0xdb,0x00,0x43,0x01,0x03,0x04, -0x04,0x05,0x04,0x05,0x09,0x05,0x05,0x09,0x14,0x0d,0x0b,0x0d,0x14,0x14,0x14,0x14, -0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14, -0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14, -0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0xff,0xc0, -0x00,0x11,0x08,0x00,0xea,0x02,0x71,0x03,0x01,0x22,0x00,0x02,0x11,0x01,0x03,0x11, -0x01,0xff,0xc4,0x00,0x1f,0x00,0x00,0x01,0x05,0x01,0x01,0x01,0x01,0x01,0x01,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09, -0x0a,0x0b,0xff,0xc4,0x00,0xb5,0x10,0x00,0x02,0x01,0x03,0x03,0x02,0x04,0x03,0x05, -0x05,0x04,0x04,0x00,0x00,0x01,0x7d,0x01,0x02,0x03,0x00,0x04,0x11,0x05,0x12,0x21, -0x31,0x41,0x06,0x13,0x51,0x61,0x07,0x22,0x71,0x14,0x32,0x81,0x91,0xa1,0x08,0x23, -0x42,0xb1,0xc1,0x15,0x52,0xd1,0xf0,0x24,0x33,0x62,0x72,0x82,0x09,0x0a,0x16,0x17, -0x18,0x19,0x1a,0x25,0x26,0x27,0x28,0x29,0x2a,0x34,0x35,0x36,0x37,0x38,0x39,0x3a, -0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a, -0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a, -0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99, -0x9a,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7, -0xb8,0xb9,0xba,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xd2,0xd3,0xd4,0xd5, -0xd6,0xd7,0xd8,0xd9,0xda,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xf1, -0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xff,0xc4,0x00,0x1f,0x01,0x00,0x03, -0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01, -0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0xff,0xc4,0x00,0xb5,0x11,0x00, -0x02,0x01,0x02,0x04,0x04,0x03,0x04,0x07,0x05,0x04,0x04,0x00,0x01,0x02,0x77,0x00, -0x01,0x02,0x03,0x11,0x04,0x05,0x21,0x31,0x06,0x12,0x41,0x51,0x07,0x61,0x71,0x13, -0x22,0x32,0x81,0x08,0x14,0x42,0x91,0xa1,0xb1,0xc1,0x09,0x23,0x33,0x52,0xf0,0x15, -0x62,0x72,0xd1,0x0a,0x16,0x24,0x34,0xe1,0x25,0xf1,0x17,0x18,0x19,0x1a,0x26,0x27, -0x28,0x29,0x2a,0x35,0x36,0x37,0x38,0x39,0x3a,0x43,0x44,0x45,0x46,0x47,0x48,0x49, -0x4a,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x63,0x64,0x65,0x66,0x67,0x68,0x69, -0x6a,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x82,0x83,0x84,0x85,0x86,0x87,0x88, -0x89,0x8a,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0xa2,0xa3,0xa4,0xa5,0xa6, -0xa7,0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xc2,0xc3,0xc4, -0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xe2, -0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9, -0xfa,0xff,0xda,0x00,0x0c,0x03,0x01,0x00,0x02,0x11,0x03,0x11,0x00,0x3f,0x00,0xfd, -0x53,0xa2,0x8a,0x28,0x00,0xa2,0x8a,0x28,0x00,0xa2,0x8a,0x28,0x00,0xa4,0x34,0x8e, -0x70,0x09,0xaf,0x0b,0xf1,0xbf,0xc6,0x4b,0x8f,0x13,0x78,0xc2,0xdb,0xc1,0x7e,0x0f, -0xb8,0x2b,0x24,0x93,0x08,0xae,0xf5,0x48,0x88,0x3b,0x47,0xf1,0x2c,0x7f,0x4e,0x72, -0xdf,0x97,0xad,0x72,0x62,0x71,0x54,0xf0,0xb1,0xe6,0x9e,0xef,0x44,0xba,0xb6,0x73, -0x57,0xc4,0x43,0x0e,0x93,0x9e,0xef,0x44,0xba,0xb6,0x77,0xbe,0x3b,0xf8,0xb9,0xa1, -0xf8,0x16,0x39,0x23,0x9d,0xe4,0xd4,0x35,0x05,0x1c,0x58,0x59,0x2e,0xf9,0x3d,0xb7, -0x76,0x51,0xf5,0xfc,0x8d,0x78,0x07,0x8a,0xff,0x00,0x69,0x3f,0x1b,0x6a,0xb3,0x3a, -0x69,0x3a,0x7f,0xf6,0x2d,0xb7,0xf0,0x81,0x09,0x96,0x5f,0xc5,0x98,0x63,0xf2,0x15, -0xf4,0xde,0x83,0xe0,0xdd,0x27,0xc3,0xf6,0x62,0x0b,0x6b,0x38,0xc9,0x3f,0x33,0xcb, -0x20,0xde,0xf2,0x37,0x76,0x66,0x3c,0x92,0x6b,0x40,0xe9,0x16,0x47,0xad,0x9c,0x1f, -0xf7,0xec,0x57,0x9d,0x88,0xc2,0xe3,0x31,0x2b,0xf8,0xbc,0x8b,0xb2,0x5f,0xad,0xce, -0x3c,0x46,0x1b,0x13,0x88,0x56,0x8d,0x5e,0x45,0xe4,0xbf,0x53,0xe0,0x8d,0x4f,0xc6, -0xfe,0x33,0xd5,0x18,0x9b,0xcd,0x5f,0x56,0x90,0x93,0x9c,0x19,0xa4,0x0b,0xf9,0x0e, -0x2b,0x35,0x75,0xff,0x00,0x10,0xc7,0x9c,0x6a,0x3a,0x82,0xfa,0xfe,0xfa,0x41,0xfd, -0x6b,0xf4,0x19,0xb4,0x2d,0x39,0xba,0xd8,0x5b,0x7f,0xdf,0xa1,0xfe,0x15,0x19,0xf0, -0xce,0x94,0xff,0x00,0x7b,0x4d,0xb5,0x3f,0xf6,0xc5,0x7f,0xc2,0xbc,0x79,0x64,0x15, -0xa4,0xef,0xed,0xaf,0xf2,0x7f,0xe6,0x78,0x72,0xc8,0x6a,0x49,0xdd,0xd7,0x7f,0xd7, -0xcc,0xf8,0x0d,0x3c,0x5f,0xe2,0x68,0x94,0x05,0xd6,0x35,0x45,0x03,0xa0,0x17,0x32, -0x0f,0xeb,0x53,0x27,0x8f,0xbc,0x59,0x11,0x25,0x75,0xfd,0x59,0x33,0xe9,0x77,0x28, -0xfe,0xb5,0xf7,0x8b,0x78,0x3b,0x44,0x7e,0xba,0x4d,0x99,0xff,0x00,0xb6,0x2b,0x51, -0x37,0x81,0x7c,0x3c,0xf9,0xce,0x8d,0x66,0x73,0xff,0x00,0x4c,0x56,0xa5,0x64,0x58, -0x85,0xb5,0x6f,0xcc,0x9f,0xec,0x2a,0xeb,0x6a,0xef,0xf1,0xff,0x00,0x33,0xe1,0x6f, -0xf8,0x59,0x3e,0x2f,0x5f,0xf9,0x98,0xb5,0x7f,0xfc,0x0c,0x93,0xfc,0x69,0xeb,0xf1, -0x4f,0xc6,0x51,0x9c,0xaf,0x89,0x35,0x5c,0xfb,0xdd,0x3f,0xf8,0xd7,0xdc,0x0d,0xf0, -0xf3,0xc3,0x6f,0xd7,0x44,0xb2,0x3f,0xf6,0xc8,0x54,0x4f,0xf0,0xcb,0xc2,0xaf,0xf7, -0xb4,0x2b,0x23,0xff,0x00,0x6c,0x85,0x2f,0xec,0x4c,0x5f,0xfc,0xfe,0xfc,0xc5,0xfd, -0x89,0x8a,0x5b,0x57,0x7f,0x89,0xf1,0x54,0x7f,0x17,0xfc,0x6b,0x1f,0xfc,0xcc,0x9a, -0x99,0xfa,0xdc,0x35,0x58,0x8b,0xe3,0x87,0x8e,0xe1,0x6c,0xaf,0x89,0x2f,0x73,0xd3, -0xe6,0x21,0x87,0xe4,0x45,0x7d,0x8e,0xff,0x00,0x09,0x7c,0x20,0xfd,0x74,0x0b,0x3f, -0xc2,0x3c,0x54,0x2f,0xf0,0x6b,0xc1,0xaf,0xd7,0x41,0xb5,0x1f,0x45,0xa4,0xb2,0x7c, -0x72,0xda,0xb7,0xe2,0xc7,0xfd,0x8f,0x8d,0x5b,0x62,0x1f,0xe2,0x7c,0x8a,0x9f,0x1f, -0xbc,0x7e,0x83,0x1f,0xf0,0x91,0x5c,0x7d,0x4c,0x71,0x9f,0xfd,0x96,0xa6,0x1f,0xb4, -0x37,0x8f,0xc7,0xfc,0xcc,0x12,0xfe,0x30,0x45,0xff,0x00,0xc4,0x57,0xd5,0xaf,0xf0, -0x43,0xc1,0x4e,0x0f,0xfc,0x48,0xa0,0x1f,0x4a,0x89,0xbe,0x03,0xf8,0x21,0xf3,0xff, -0x00,0x12,0x48,0x86,0x7d,0x09,0xa7,0xfd,0x95,0x98,0xad,0xab,0x7e,0x2c,0x3f,0xb2, -0xb3,0x15,0xb6,0x21,0xfd,0xec,0xf9,0x69,0x7f,0x68,0xaf,0x1f,0x8f,0xf9,0x8f,0x39, -0xfa,0xdb,0xc5,0xff,0x00,0xc4,0xd4,0x89,0xfb,0x48,0x78,0xf9,0x08,0x3f,0xdb,0x59, -0xc7,0xad,0xb4,0x47,0xff,0x00,0x65,0xaf,0xa6,0x9f,0xf6,0x7d,0xf0,0x33,0x8e,0x74, -0x75,0x1e,0xe1,0x8d,0x42,0xff,0x00,0xb3,0x9f,0x81,0x9c,0x7f,0xc8,0x2d,0x97,0xe9, -0x21,0xa3,0xfb,0x33,0x34,0x5b,0x56,0xff,0x00,0xc9,0x98,0xbf,0xb3,0x33,0x35,0xb5, -0x7f,0xc5,0x9f,0x39,0xc7,0xfb,0x4d,0xf8,0xf1,0x17,0x07,0x52,0x85,0xcf,0xab,0x5a, -0xa6,0x7f,0x95,0x58,0x4f,0xda,0x9b,0xc7,0x49,0x8f,0xf4,0x9b,0x36,0xc7,0xad,0xaa, -0xf3,0xfa,0xd7,0xbe,0xbf,0xec,0xd5,0xe0,0x86,0xc9,0x16,0x32,0xaf,0xd2,0x43,0x50, -0x3f,0xec,0xc5,0xe0,0xa6,0xe9,0x6f,0x3a,0xff,0x00,0xdb,0x4a,0x5f,0xd9,0xf9,0xb2, -0xda,0xaf,0xfe,0x4c,0xc3,0xfb,0x3f,0x36,0x5b,0x57,0xfc,0x59,0xe2,0x0b,0xfb,0x57, -0x78,0xdd,0x7a,0x9d,0x39,0xbe,0xb6,0xc7,0xfa,0x35,0x3d,0x7f,0x6b,0x0f,0x1a,0x82, -0x32,0x9a,0x61,0xff,0x00,0xb7,0x66,0xff,0x00,0xe2,0xeb,0xd9,0xdb,0xf6,0x5a,0xf0, -0x63,0x0e,0x12,0xe5,0x7f,0xed,0xa5,0x42,0xff,0x00,0xb2,0xa7,0x83,0xcf,0x47,0xbb, -0x5f,0xfb,0x69,0x43,0xc1,0xe7,0x0b,0x6a,0x9f,0xf9,0x30,0x7d,0x4b,0x37,0x5b,0x56, -0xfc,0x4f,0x23,0x5f,0xda,0xd7,0xc6,0x43,0xad,0xbe,0x96,0xdf,0xf6,0xc1,0xff,0x00, -0xf8,0xba,0x91,0x3f,0x6b,0x8f,0x16,0x82,0x37,0x59,0x69,0x6d,0xeb,0xfb,0xa7,0xff, -0x00,0xe2,0xeb,0xd4,0x24,0xfd,0x93,0xbc,0x2a,0xd8,0xdb,0x75,0x78,0xbf,0xf0,0x20, -0x6a,0x07,0xfd,0x92,0x3c,0x34,0x73,0x8b,0xfb,0xb5,0xf4,0xe9,0x4b,0xea,0xb9,0xca, -0xfb,0x7f,0x88,0x7d,0x53,0x39,0x5b,0x55,0xfc,0x4f,0x3d,0x8b,0xf6,0xbe,0xf1,0x32, -0xe7,0xcc,0xd2,0xb4,0xc7,0xf4,0xc2,0xc8,0x3f,0xf6,0x6a,0xb0,0x9f,0xb6,0x16,0xbc, -0x31,0xbb,0x43,0xd3,0x5b,0xd7,0x0d,0x20,0xfe,0xb5,0xda,0xc9,0xfb,0x22,0xe8,0x19, -0xf9,0x75,0x3b,0xa0,0x3d,0xd4,0x54,0x0f,0xfb,0x21,0x68,0xe4,0x7c,0xba,0xbd,0xcf, -0xe2,0x82,0x9f,0xb1,0xce,0x97,0xda,0xfc,0x50,0x7b,0x0c,0xe9,0x7d,0xbf,0xc8,0xe6, -0x07,0xed,0x89,0xaa,0xf7,0xf0,0xf5,0x99,0xfa,0x4e,0xdf,0xe1,0x4f,0x5f,0xdb,0x1b, -0x50,0x1f,0x7b,0xc3,0x96,0xa7,0xe9,0x72,0xdf,0xfc,0x4d,0x6f,0x3f,0xec,0x7f,0xa6, -0x1c,0xed,0xd6,0xe7,0x5f,0xac,0x60,0xd4,0x12,0x7e,0xc7,0xb6,0x99,0x1b,0x35,0xd9, -0x31,0xef,0x17,0xff,0x00,0x5e,0x8e,0x4c,0xed,0x75,0xfc,0x85,0xec,0xf3,0xb5,0xf6, -0xbf,0x23,0x35,0x7f,0x6c,0x7b,0xc3,0xf7,0xbc,0x35,0x01,0x1e,0xd7,0x67,0xff,0x00, -0x89,0xa9,0x93,0xf6,0xc8,0x70,0x06,0xef,0x0b,0xa9,0x3d,0xf1,0x7b,0xff,0x00,0xd8, -0x54,0xaf,0xfb,0x1e,0xa0,0x5f,0x97,0x5d,0xe7,0xde,0x2a,0x85,0xbf,0x63,0xe9,0x32, -0x76,0xeb,0xa9,0xed,0x98,0x8d,0x2f,0xf8,0x5b,0x5d,0xff,0x00,0xf2,0x50,0xb6,0x76, -0xba,0xfe,0x44,0xeb,0xfb,0x64,0xc4,0x7e,0xf7,0x85,0xdf,0x1e,0xd7,0xa3,0xff,0x00, -0x8d,0xd4,0xcb,0xfb,0x63,0xda,0x63,0xe6,0xf0,0xcc,0xc0,0xfb,0x5e,0x03,0xff,0x00, -0xb2,0x56,0x63,0xfe,0xc7,0xd7,0x7d,0xb5,0xc8,0x4f,0xd5,0x0d,0x40,0xff,0x00,0xb2, -0x06,0xa6,0x01,0xdb,0xad,0x5b,0x13,0xee,0x84,0x53,0xf6,0x99,0xda,0xe8,0xfe,0xe8, -0x87,0x3e,0x78,0xbf,0xa4,0x6f,0x27,0xed,0x8b,0xa7,0x13,0xcf,0x87,0x2e,0x40,0xff, -0x00,0xaf,0x95,0x3f,0xfb,0x2d,0x48,0x3f,0x6c,0x3d,0x27,0x1f,0x37,0x87,0xaf,0x01, -0xf6,0x9d,0x0f,0xf4,0xae,0x59,0xbf,0x64,0x2d,0x68,0x1e,0x35,0x6b,0x53,0xef,0x83, -0x50,0x37,0xec,0x8d,0xe2,0x11,0xf7,0x75,0x0b,0x46,0xfc,0x4d,0x4f,0xb7,0xce,0x97, -0xd9,0x7f,0x72,0x17,0xb5,0xce,0xd7,0xd9,0xfc,0x11,0xdd,0x45,0xfb,0x5f,0xf8,0x74, -0xb7,0xcf,0xa3,0x6a,0x4a,0x3d,0x54,0xc6,0x7f,0xf6,0x6a,0xb3,0x1f,0xed,0x75,0xe1, -0x36,0x5c,0xbe,0x9b,0xab,0x2b,0x7a,0x08,0xe3,0x3f,0xfb,0x3d,0x79,0xb4,0x9f,0xb2, -0x67,0x89,0x54,0x1c,0x5e,0x5a,0x13,0xfe,0xf1,0xa8,0x1b,0xf6,0x50,0xf1,0x5f,0x69, -0xad,0x1b,0xfe,0x07,0x42,0xc5,0x67,0x0b,0xec,0x3f,0xb9,0x0f,0xeb,0x39,0xd2,0xfb, -0x1f,0x82,0x3d,0x54,0x7e,0xd6,0xfe,0x0e,0xce,0x0d,0x96,0xae,0x07,0xaf,0x93,0x1f, -0xff,0x00,0x17,0x4f,0x1f,0xb5,0xaf,0x83,0x31,0xff,0x00,0x1e,0xba,0xb7,0xfd,0xf8, -0x4f,0xfe,0x2e,0xbc,0x85,0xbf,0x65,0x4f,0x18,0x0f,0xbb,0xf6,0x46,0xff,0x00,0xb6, -0xb5,0x03,0xfe,0xcb,0xbe,0x34,0x4c,0xe2,0x0b,0x76,0x03,0xd2,0x51,0x43,0xc7,0x66, -0xeb,0x7a,0x7f,0xf9,0x28,0x7d,0x73,0x39,0x5f,0xf2,0xeb,0xf0,0x3d,0xa9,0x7f,0x6a, -0xff,0x00,0x05,0x36,0x3f,0x75,0xa9,0xaf,0xd6,0xdd,0x7f,0xf8,0xaa,0x91,0x7f,0x6a, -0xaf,0x04,0x11,0xc9,0xd4,0x53,0xeb,0x6c,0x3f,0xf8,0xaa,0xf0,0xb6,0xfd,0x99,0x7c, -0x6c,0xbd,0x2c,0xe2,0x3f,0x49,0x45,0x42,0xff,0x00,0xb3,0x67,0x8d,0xd4,0x7f,0xc8, -0x3d,0x4f,0xd1,0xc5,0x2f,0xed,0x1c,0xd5,0x7f,0xcb,0xbf,0xfc,0x95,0x8b,0xeb,0xf9, -0xba,0xff,0x00,0x97,0x5f,0x87,0xfc,0x13,0xe8,0x48,0xbf,0x69,0xef,0x01,0xc8,0xe0, -0x1b,0xeb,0xa8,0xc1,0xfe,0x26,0xb5,0x6c,0x0f,0xca,0xad,0x2f,0xed,0x27,0xf0,0xfd, -0x81,0x3f,0xdb,0x2e,0xbe,0xc6,0xd6,0x5f,0xfe,0x26,0xbe,0x6b,0x6f,0xd9,0xd7,0xc7, -0x0a,0x78,0xd2,0xc9,0xc7,0xa3,0x8a,0x81,0xff,0x00,0x67,0xef,0x1c,0xa9,0xff,0x00, -0x90,0x34,0x87,0xe8,0xc0,0xff,0x00,0x5a,0x7f,0xda,0x99,0x9c,0x77,0xa5,0xff,0x00, -0x92,0xb0,0xfe,0xd2,0xcd,0x56,0xf4,0x7f,0x06,0x7d,0x42,0x3f,0x68,0x9f,0x87,0xcd, -0xff,0x00,0x33,0x02,0x8f,0xad,0xb4,0xdf,0xfc,0x45,0x38,0x7e,0xd0,0x9f,0x0f,0xcf, -0x4f,0x11,0x47,0xff,0x00,0x80,0xf2,0x8f,0xfd,0x92,0xbe,0x55,0x6f,0x81,0x3e,0x37, -0x43,0xce,0x89,0x37,0xe1,0x51,0x3f,0xc1,0x4f,0x1a,0x27,0x5d,0x0e,0xe7,0x8f,0x6a, -0x6f,0x38,0xcc,0x16,0xf4,0xbf,0xf2,0x59,0x07,0xf6,0xae,0x64,0xb7,0xa1,0xf8,0x3f, -0xf3,0x3e,0xb2,0x1f,0x1f,0xfc,0x00,0xd8,0xff,0x00,0x8a,0x8e,0x1e,0x7d,0x62,0x93, -0xff,0x00,0x89,0xa9,0xd3,0xe3,0xaf,0x80,0xdc,0x64,0x78,0x92,0xd4,0x7d,0x43,0x8f, -0xe9,0x5f,0x1f,0xbf,0xc1,0xff,0x00,0x18,0xa0,0xe7,0x42,0xba,0xe7,0xfd,0x9a,0x85, -0xbe,0x14,0xf8,0xb9,0x3a,0xe8,0x77,0x7f,0xf7,0xc5,0x2f,0xed,0xac,0x72,0xff,0x00, -0x97,0x4b,0xee,0x62,0xfe,0xd8,0xc7,0xad,0xe8,0x7e,0x0c,0xfb,0x3d,0x3e,0x32,0xf8, -0x21,0xc0,0xc7,0x89,0xb4,0xfe,0x7d,0x65,0xc5,0x48,0x9f,0x17,0x7c,0x14,0xf9,0xc7, -0x89,0xf4,0xce,0x3d,0x6e,0x14,0x57,0xc4,0xef,0xf0,0xd3,0xc5,0x51,0x9f,0x9b,0x44, -0xbd,0x1f,0xf6,0xc8,0xd4,0x0d,0xe0,0x0f,0x12,0x27,0x5d,0x1e,0xf0,0x7f,0xdb,0x23, -0x47,0xf6,0xee,0x29,0x6f,0x49,0x7e,0x23,0xfe,0xdb,0xc6,0x2d,0xe8,0x7e,0x67,0xdc, -0x63,0xe2,0xbf,0x83,0x4f,0x4f,0x13,0xe9,0x7f,0xf8,0x16,0x9f,0xe3,0x52,0x2f,0xc4, -0xef,0x09,0x36,0x71,0xe2,0x5d,0x2f,0x8f,0xfa,0x7b,0x4f,0xf1,0xaf,0x85,0x1b,0xc1, -0x5e,0x20,0x5e,0xba,0x55,0xd0,0xff,0x00,0xb6,0x46,0xa2,0x6f,0x0a,0x6b,0x69,0xd7, -0x4c,0xba,0x1f,0xf6,0xc8,0xd1,0xfd,0xbf,0x89,0xeb,0x49,0x7e,0x22,0xfe,0xdd,0xc5, -0x2d,0xe8,0x7e,0x67,0xde,0xc9,0xf1,0x07,0xc2,0xf2,0x80,0x57,0xc4,0x3a,0x59,0x07, -0xa7,0xfa,0x64,0x7f,0xe3,0x56,0x13,0xc6,0x5a,0x04,0x9f,0x77,0x5a,0xd3,0x9b,0x1e, -0x97,0x49,0xfe,0x35,0xf9,0xfa,0xde,0x1c,0xd5,0xd7,0xae,0x9f,0x72,0x3f,0xed,0x91, -0xa8,0xce,0x89,0xa9,0x27,0x06,0xca,0xe0,0x7d,0x63,0x34,0xd7,0x10,0xd6,0x5b,0xd3, -0x5f,0x8f,0xf9,0x0f,0xfb,0x7e,0xbf,0x5a,0x1f,0x99,0xfa,0x1a,0x9e,0x23,0xd2,0x64, -0x50,0x57,0x54,0xb3,0x60,0x7a,0x62,0xe1,0x3f,0xc6,0x9f,0xfd,0xbb,0xa6,0x9e,0x9a, -0x8d,0xa9,0xff,0x00,0xb6,0xeb,0xfe,0x35,0xf9,0xd8,0x74,0xbb,0xe1,0xd6,0xd6,0x61, -0xff,0x00,0x00,0x34,0xc3,0x61,0x78,0xbd,0x60,0x90,0x7d,0x54,0xd3,0xff,0x00,0x58, -0xe7,0xd6,0x97,0xe3,0xff,0x00,0x00,0x7f,0xeb,0x0d,0x45,0xff,0x00,0x2e,0x7f,0x1f, -0xf8,0x07,0xe8,0xca,0x6a,0xf6,0x2e,0x32,0x2f,0x2d,0xd8,0x7a,0x89,0x54,0xff,0x00, -0x5a,0x78,0xd4,0x6d,0x49,0xe2,0xe6,0x03,0xf4,0x90,0x7f,0x8d,0x7e,0x71,0x7d,0x9e, -0xed,0x7f,0xe5,0x9c,0xa3,0xf0,0x34,0xb9,0xbb,0x43,0xff,0x00,0x2d,0x47,0xe7,0x47, -0xfa,0xc7,0x2f,0xf9,0xf5,0xf8,0xff,0x00,0xc0,0x0f,0xf5,0x8a,0x56,0xd6,0x8b,0xfb, -0xff,0x00,0xe0,0x1f,0xa4,0x0b,0x75,0x13,0x8c,0xac,0xa8,0xc3,0xd4,0x30,0x34,0xf1, -0x20,0x3d,0xc1,0xfc,0x6b,0xf3,0x78,0x5e,0x5e,0xa7,0x49,0x66,0x51,0xec,0xcd,0x53, -0x2e,0xb5,0xaa,0xc6,0xc0,0xad,0xf5,0xda,0x9f,0x51,0x33,0x83,0xfc,0xea,0xd7,0x11, -0xf7,0xa5,0xf8,0xff,0x00,0xc0,0x29,0x71,0x1a,0xeb,0x49,0xfd,0xff,0x00,0xf0,0x0f, -0xd1,0xb0,0xc3,0xd6,0x97,0x75,0x7e,0x74,0x0f,0x13,0x6b,0x4a,0x30,0x35,0x4b,0xe5, -0xfa,0x5c,0x3f,0xf8,0xd2,0x8f,0x16,0x6b,0x8a,0x72,0x35,0x7d,0x40,0x1f,0xfa,0xfa, -0x93,0xfc,0x6a,0xff,0x00,0xd6,0x38,0xff,0x00,0xcf,0xbf,0xc7,0xfe,0x00,0xff,0x00, -0xd6,0x48,0x75,0xa4,0xfe,0xf3,0xf4,0x58,0x36,0x69,0x6b,0xf3,0xb1,0x7c,0x6b,0xe2, -0x04,0x04,0x0d,0x6b,0x51,0x1f,0xf6,0xf5,0x27,0xf8,0xd5,0x88,0xfe,0x23,0x78,0xa2, -0x10,0x36,0x78,0x83,0x54,0x5c,0x70,0x31,0x79,0x27,0xf8,0xd3,0x5c,0x45,0x0e,0xb4, -0xdf,0xde,0x52,0xe2,0x4a,0x5d,0x69,0xb3,0xf4,0x32,0x8a,0xfc,0xf9,0x5f,0x8a,0x5e, -0x2e,0x41,0x81,0xe2,0x4d,0x54,0x0f,0xfa,0xfb,0x73,0xfd,0x6a,0xc2,0x7c,0x62,0xf1, -0xaa,0x63,0x1e,0x26,0xd4,0xb8,0xe9,0xfb,0xf2,0x6a,0xd7,0x11,0x52,0xeb,0x4d,0xfe, -0x05,0x7f,0xac,0x94,0x3a,0xc1,0xfe,0x07,0xdf,0xd4,0x57,0xc0,0xa3,0xe3,0x57,0x8d, -0xd7,0xfe,0x66,0x6d,0x43,0xf1,0x97,0xff,0x00,0xad,0x4f,0x4f,0x8d,0xfe,0x38,0x5c, -0x7f,0xc5,0x4b,0x7c,0x71,0xea,0xe0,0xff,0x00,0x4a,0xaf,0xf5,0x8a,0x87,0xf2,0x3f, -0xc0,0xaf,0xf5,0x8f,0x0d,0xfc,0x8f,0xf0,0x3e,0xf7,0xa2,0xbe,0x0c,0x5f,0x8e,0xde, -0x3a,0x5e,0x9e,0x24,0xbc,0xfc,0x76,0x9f,0xe9,0x56,0x53,0xf6,0x84,0xf1,0xea,0x63, -0xfe,0x2a,0x19,0x8e,0x3d,0x61,0x8c,0xff,0x00,0xec,0xb4,0xd7,0x11,0x61,0xdf,0xd8, -0x97,0xe1,0xfe,0x65,0x2e,0x22,0xc2,0xf5,0x8c,0xbf,0x0f,0xf3,0x3e,0xea,0xa2,0xbe, -0x1c,0x8b,0xf6,0x8e,0xf1,0xf4,0x44,0x9f,0xed,0xc2,0xd9,0xfe,0xf5,0xbc,0x47,0xff, -0x00,0x65,0xab,0xf6,0x3f,0xb5,0x17,0x8e,0xed,0x26,0x57,0x96,0xee,0xd2,0xed,0x07, -0x54,0x9a,0xd5,0x40,0x3f,0xf7,0xce,0x0d,0x68,0xb8,0x83,0x0a,0xf7,0x4f,0xf0,0xff, -0x00,0x32,0xd7,0x10,0xe0,0xde,0xe9,0xaf,0x97,0xfc,0x13,0xed,0x4a,0x2b,0xe6,0x2f, -0x0c,0xfe,0xd8,0x52,0x06,0x58,0xfc,0x41,0xa1,0x86,0x5e,0xf3,0xe9,0xcf,0x83,0xed, -0xf2,0x39,0xff,0x00,0xd9,0xab,0xda,0xbc,0x15,0xf1,0x6f,0xc2,0xfe,0x3f,0x5d,0xba, -0x46,0xa9,0x1c,0x97,0x40,0x65,0xad,0x26,0xfd,0xdc,0xcb,0xff,0x00,0x01,0x3d,0x7e, -0xa3,0x22,0xbd,0x6c,0x3e,0x63,0x86,0xc4,0xe9,0x4e,0x7a,0xf6,0xd9,0x9e,0xa6,0x1f, -0x32,0xc2,0xe2,0x9d,0xa9,0xcd,0x5f,0xb6,0xcc,0xec,0xe8,0xa6,0xa9,0xcd,0x3a,0xbd, -0x13,0xd3,0x0a,0x28,0xa2,0x80,0x0a,0x28,0xa2,0x80,0x0a,0x28,0xa2,0x80,0x0a,0x42, -0x69,0x6a,0xbd,0xe5,0xd4,0x56,0x56,0xd3,0x5c,0x4f,0x22,0xc5,0x04,0x48,0x5d,0xdd, -0xce,0x02,0xa8,0x19,0x24,0x9a,0x4f,0x45,0x71,0x37,0x65,0x76,0x78,0x6f,0xed,0x35, -0xf1,0x65,0xfc,0x33,0xa6,0x2f,0x86,0xb4,0xb9,0xb6,0x6a,0x57,0xd1,0xee,0xb8,0x95, -0x1b,0x0d,0x0c,0x3d,0x30,0x3d,0x0b,0x72,0x3e,0x80,0xfa,0x8a,0xe4,0xbf,0x64,0xbf, -0x08,0xfd,0xa7,0x55,0xbe,0xd7,0x66,0x43,0xb6,0xdd,0x7c,0xa8,0x8f,0x6d,0xc7,0xad, -0x78,0x9f,0x8c,0xbc,0x4d,0x71,0xe3,0x9f,0x17,0xea,0x3a,0xbc,0xdb,0x8b,0xde,0x4e, -0x5a,0x34,0x3d,0x51,0x33,0x84,0x5f,0xc0,0x00,0x2b,0xed,0x7f,0x82,0x9e,0x13,0x1e, -0x11,0xf8,0x7d,0xa6,0xdb,0x15,0xdb,0x3c,0xa9,0xe7,0xcb,0x91,0x83,0xb9,0xb9,0xaf, -0x89,0xc3,0x4e,0x59,0x96,0x64,0xea,0xbf,0x86,0x1b,0x7e,0x9f,0xe6,0x7c,0x56,0x0a, -0xa4,0xb3,0x3c,0xc1,0xd7,0x97,0xc3,0x0d,0xbf,0x4f,0xf3,0x3b,0xb0,0x31,0x4b,0x45, -0x15,0xf6,0xe7,0xdb,0x09,0x4b,0x45,0x14,0x00,0x53,0x43,0x83,0xd2,0x9d,0x5e,0x0f, -0xf1,0xcb,0xf6,0xdc,0xf8,0x3b,0xfb,0x3e,0x5c,0xc9,0x61,0xe2,0xaf,0x16,0xc2,0xfa, -0xda,0x02,0x7f,0xb1,0xf4,0xc4,0x6b,0xbb,0xa0,0x47,0x66,0x54,0xc8,0x8c,0x9e,0xde, -0x61,0x5c,0xd0,0x07,0xba,0x89,0x01,0x6d,0xbc,0xe7,0xdc,0x1a,0x7d,0x7e,0x71,0xeb, -0xdf,0xf0,0x5a,0xdf,0x00,0x5b,0xb3,0x0d,0x1b,0xe1,0xf7,0x89,0x2f,0x80,0xe8,0xd7, -0xd3,0xdb,0xdb,0xe7,0xf0,0x56,0x92,0xbe,0x9f,0xfd,0x94,0x7f,0x6a,0xb8,0xbf,0x69, -0x8f,0x85,0xfa,0xaf,0x8f,0x2e,0x7c,0x36,0xfe,0x0b,0xd0,0xac,0xae,0x64,0xb7,0x59, -0xef,0xef,0x92,0x44,0x91,0x63,0x40,0xd2,0xca,0x5b,0x6a,0x85,0x45,0xce,0x32,0x7d, -0x1b,0xa6,0x28,0x11,0xef,0xb4,0x57,0x17,0x6d,0xf1,0xb3,0xe1,0xe5,0xeb,0x2a,0xdb, -0xf8,0xf3,0xc3,0x33,0xb3,0x1c,0x05,0x8b,0x58,0xb7,0x62,0x4f,0xe0,0xf5,0xd9,0x83, -0x9e,0x94,0x0c,0x5a,0x2b,0x33,0x5f,0xf1,0x1e,0x9f,0xe1,0x7d,0x3d,0xaf,0xb5,0x3b, -0x91,0x6b,0x6a,0xac,0x14,0xb9,0x52,0xdc,0x93,0x80,0x30,0x01,0x35,0x81,0x17,0xc5, -0xff,0x00,0x07,0xcd,0xd3,0x5d,0x80,0x7f,0xbe,0xae,0xbf,0xcc,0x57,0x34,0xf1,0x34, -0x69,0x4b,0x96,0xa4,0xd2,0x7e,0x6d,0x22,0x1c,0xe1,0x17,0x66,0xd2,0x3b,0x1a,0x31, -0x5c,0xcc,0x7f,0x12,0xfc,0x2b,0x26,0x31,0xe2,0x0b,0x01,0x9f,0xef,0x4e,0xa3,0xf9, -0xd4,0xc3,0xe2,0x0f,0x86,0x0f,0x4f,0x10,0xe9,0x9f,0xf8,0x16,0x9f,0xe3,0x49,0x62, -0xb0,0xef,0x6a,0x8b,0xef,0x42,0xf6,0x90,0xfe,0x64,0x74,0x34,0x56,0x12,0xf8,0xe7, -0xc3,0x8e,0x78,0xd7,0xf4,0xc3,0xff,0x00,0x6f,0x91,0xff,0x00,0x8d,0x58,0x8b,0xc5, -0x3a,0x34,0xe3,0xf7,0x7a,0xb5,0x8c,0x9f,0xee,0xdc,0x21,0xfe,0xb5,0xa2,0xad,0x4d, -0xed,0x25,0xf7,0x8f,0x9a,0x2f,0x66,0x6a,0xd1,0x55,0x13,0x55,0xb2,0x97,0x95,0xbb, -0x81,0xbf,0xdd,0x95,0x4f,0xf5,0xa9,0x96,0x78,0xa4,0xfb,0xb2,0x2b,0x7d,0x1a,0xaf, -0x9e,0x2f,0x66,0x55,0xd1,0x2d,0x14,0xdd,0xdd,0xc1,0xa5,0x07,0x35,0x43,0x16,0x8a, -0x28,0xa6,0x01,0x45,0x21,0xe9,0x49,0x9a,0x00,0x75,0x26,0x29,0x32,0x3d,0x69,0x73, -0x48,0x05,0xa4,0xc5,0x18,0xf7,0xa5,0xa6,0x02,0x62,0x96,0x8a,0x28,0x00,0xa2,0x8a, -0x28,0x01,0x29,0x68,0xa2,0x80,0x12,0x8c,0x52,0xd1,0x40,0x05,0x14,0x51,0x40,0x05, -0x26,0x29,0x68,0xa0,0x04,0xc5,0x18,0x1e,0x94,0xb4,0x50,0x02,0x6d,0x1e,0x82,0x93, -0xcb,0x53,0xfc,0x23,0xf2,0xa0,0x92,0x3f,0x87,0x3f,0x8d,0x28,0xcf,0x71,0x8a,0x00, -0x69,0x82,0x33,0xd6,0x35,0x3f,0x80,0xa6,0x9b,0x58,0x5b,0xac,0x48,0x7f,0xe0,0x22, -0xa5,0xa2,0x95,0x97,0x61,0x59,0x10,0x1b,0x1b,0x73,0xd6,0x08,0xff,0x00,0xef,0x91, -0x4d,0x3a,0x6d,0xa3,0x75,0xb6,0x84,0xfd,0x50,0x55,0x9a,0x29,0x72,0xc7,0xb0,0x59, -0x14,0x9b,0x46,0xb0,0x6e,0xb6,0x56,0xe7,0xfe,0xd9,0x8f,0xf0,0xa8,0xdb,0xc3,0xba, -0x5b,0x75,0xd3,0xed,0x8f,0xfd,0xb2,0x5f,0xf0,0xad,0x1a,0x29,0x7b,0x38,0x76,0x17, -0x2a,0xec,0x64,0xb7,0x85,0x74,0x76,0xeb,0xa6,0x5a,0x9f,0xfb,0x64,0xbf,0xe1,0x51, -0xb7,0x83,0x74,0x36,0xeb,0xa4,0xda,0x1f,0xac,0x23,0xfc,0x2b,0x6a,0x8a,0x9f,0x65, -0x4f,0xf9,0x57,0xdc,0x2e,0x48,0x76,0x30,0x1f,0xc0,0x9e,0x1e,0x93,0xef,0x68,0xd6, -0x67,0xfe,0xd8,0x8a,0x89,0xbe,0x1c,0xf8,0x65,0xba,0xe8,0x96,0x7f,0xf7,0xec,0x57, -0x49,0x45,0x4b,0xc3,0xd2,0x7b,0xc1,0x7d,0xc4,0xfb,0x28,0x3f,0xb2,0x8e,0x55,0xbe, -0x17,0xf8,0x55,0xfa,0xe8,0x96,0x9f,0xf7,0xc5,0x42,0xdf,0x09,0x3c,0x22,0xdd,0x74, -0x3b,0x5f,0xfb,0xe6,0xba,0xfa,0x5a,0x8f,0xaa,0xd0,0xfe,0x45,0xf7,0x21,0x7b,0x1a, -0x5f,0xca,0xbe,0xe3,0x89,0x7f,0x83,0x7e,0x0e,0x7e,0xba,0x1d,0xb7,0xe5,0x50,0x3f, -0xc0,0xff,0x00,0x05,0x3f,0xfc,0xc0,0xe0,0x1f,0x4c,0xd7,0x7b,0x45,0x4b,0xc1,0xe1, -0xdf,0xfc,0xbb,0x5f,0x72,0x27,0xea,0xf4,0x7f,0x91,0x7d,0xc7,0x9e,0x3f,0xc0,0x5f, -0x04,0xbf,0xfc,0xc1,0xa3,0x1f,0x46,0x35,0x0b,0xfe,0xcf,0x7e,0x09,0x7f,0xf9,0x85, -0x63,0xe8,0xe6,0xbd,0x23,0x34,0x64,0x7a,0xd4,0x7d,0x47,0x0b,0xff,0x00,0x3e,0xd7, -0xdc,0x88,0xfa,0xa5,0x0f,0xe4,0x5f,0x71,0xe6,0x0f,0xfb,0x39,0x78,0x25,0xff,0x00, -0xe6,0x1c,0xc3,0xe8,0xf5,0x0b,0xfe,0xcd,0x5e,0x09,0x7f,0xf9,0x72,0x90,0x7d,0x24, -0xaf,0x55,0xa2,0xa7,0xfb,0x3f,0x08,0xff,0x00,0xe5,0xda,0xfb,0x89,0xfa,0x96,0x19, -0xef,0x4d,0x7d,0xc7,0x92,0x3f,0xec,0xc5,0xe0,0xb6,0xe9,0x05,0xc2,0xff,0x00,0xdb, -0x4a,0x81,0xff,0x00,0x65,0xcf,0x07,0xb7,0x41,0x72,0xbf,0xf6,0xd2,0xbd,0x8e,0x8a, -0x9f,0xec,0xcc,0x1b,0xff,0x00,0x97,0x4b,0xee,0x27,0xea,0x18,0x57,0xff,0x00,0x2e, -0xd7,0xdc,0x78,0xb3,0xfe,0xca,0xbe,0x12,0x6e,0x92,0x5d,0x2f,0xfc,0x08,0x54,0x2f, -0xfb,0x27,0xf8,0x5d,0xba,0x5c,0xdd,0x0f,0xc4,0x57,0xb7,0xd1,0x51,0xfd,0x95,0x82, -0xff,0x00,0x9f,0x48,0x97,0x97,0x61,0x1f,0xfc,0xbb,0x47,0x84,0xbf,0xec,0x95,0xe1, -0xb6,0xe9,0x7d,0x76,0x3f,0x2a,0xa5,0x77,0xfb,0x24,0x69,0xd0,0x95,0x9f,0x4e,0xd6, -0x6e,0xed,0xae,0xe3,0x21,0xe2,0x90,0x60,0x15,0x61,0xd0,0x82,0x39,0x06,0xbe,0x83, -0xa4,0x3d,0x29,0x7f,0x64,0xe0,0xf7,0x54,0xed,0xf7,0x99,0xbc,0xaf,0x07,0x2f,0xf9, -0x76,0x8f,0x01,0xf0,0x97,0xc6,0x3d,0x4f,0xe1,0xff,0x00,0x89,0xd3,0xc2,0x5e,0x3e, -0xb9,0x59,0xa1,0x77,0x10,0xda,0x6b,0xa4,0x6d,0xcb,0x67,0x01,0x66,0xed,0xcf,0x1f, -0x3f,0xe7,0xeb,0x5e,0xfa,0x8c,0x18,0x70,0x72,0x3d,0x6b,0xe3,0x1f,0xda,0x88,0xa5, -0xee,0xbb,0x24,0x4c,0x01,0x05,0x88,0xc7,0xad,0x77,0x1f,0xb1,0xff,0x00,0xc6,0x49, -0xbc,0x47,0x65,0x79,0xe0,0x6d,0x66,0xe9,0xa6,0xd5,0xf4,0xa8,0x84,0xd6,0x53,0x4a, -0xd9,0x79,0xed,0x72,0x06,0x09,0xee,0x63,0x25,0x47,0xd1,0x97,0xd2,0xb9,0x70,0x18, -0xde,0x6a,0xd3,0xc3,0x4d,0xdf,0x95,0xe8,0xcf,0x23,0x07,0x98,0xfb,0x2c,0x6b,0xcb, -0xea,0xbb,0xaf,0xb2,0xdf,0xe4,0xff,0x00,0x43,0xe9,0x8a,0x29,0x9b,0xbd,0xff,0x00, -0x5a,0x2b,0xe8,0x8f,0xaa,0xe6,0x43,0xe8,0xa2,0x8a,0x45,0x05,0x14,0x51,0x40,0x05, -0x79,0x0f,0xed,0x3d,0xe2,0xdf,0xf8,0x46,0xfe,0x1a,0xdc,0x5a,0x45,0x26,0xcb,0xad, -0x55,0xc5,0xa2,0x60,0xf3,0xb3,0xac,0x9f,0xf8,0xe8,0x23,0xfe,0x05,0x5e,0xb8,0x49, -0xed,0x5f,0x1b,0x7e,0xd4,0xbe,0x30,0x3a,0xff,0x00,0xc4,0x4f,0xec,0xb8,0xdf,0x75, -0xae,0x93,0x10,0x8b,0x00,0x82,0x0c,0xad,0x86,0x73,0xf8,0x0d,0xa3,0xea,0x0d,0x78, -0xf9,0xb6,0x23,0xea,0xf8,0x59,0x35,0xbb,0xd1,0x7c,0xcf,0x13,0x38,0xc4,0xfd,0x5b, -0x07,0x26,0xb7,0x96,0x8b,0xe6,0x72,0x5f,0x06,0x7c,0x26,0x7c,0x5d,0xe3,0xed,0x32, -0xd3,0x6e,0xe8,0x52,0x41,0x2c,0xb9,0xfe,0xe8,0xe6,0xbe,0xf6,0x8d,0x04,0x68,0xa8, -0xa3,0x0a,0xa3,0x00,0x0f,0x4a,0xf9,0xd3,0xf6,0x49,0xf0,0x8f,0xd9,0xf4,0xfb,0xfd, -0x7a,0x68,0xfe,0x79,0x4f,0x93,0x13,0x1f,0x4e,0xf5,0xf4,0x60,0xae,0x3c,0x8b,0x0f, -0xec,0xb0,0xde,0xd1,0xef,0x2d,0x7e,0x5d,0x0c,0x32,0x2c,0x37,0xb0,0xc2,0x29,0x3d, -0xe5,0xa8,0xb4,0x51,0x45,0x7d,0x21,0xf4,0x41,0x48,0x4e,0x29,0x6b,0x95,0xf8,0xad, -0xe3,0x88,0x3e,0x19,0xfc,0x32,0xf1,0x5f,0x8b,0x6e,0x81,0x68,0x34,0x4d,0x2e,0xe7, -0x50,0x65,0x03,0x39,0xf2,0xa3,0x67,0xc7,0xe3,0x8a,0x00,0xfc,0xfb,0xff,0x00,0x82, -0x96,0x7f,0xc1,0x41,0x75,0x2f,0x01,0x6a,0xd7,0xbf,0x09,0xbe,0x1b,0x6a,0x06,0xcf, -0x59,0x8e,0x30,0x35,0xcd,0x72,0x03,0x87,0xb6,0xdc,0x33,0xf6,0x68,0x5b,0xb3,0xed, -0x20,0xb3,0x8f,0xbb,0xb8,0x01,0xce,0xec,0x7c,0x27,0xf0,0x53,0xf6,0x29,0xf8,0xcd, -0xfb,0x4a,0x59,0xcb,0xaf,0x78,0x6b,0xc3,0xb2,0x4d,0xa4,0xc9,0x21,0x27,0x5a,0xd5, -0xee,0x45,0xbc,0x33,0xbe,0x4e,0xe2,0xae,0xe7,0x32,0x1c,0x83,0x92,0xa0,0xe0,0xf5, -0x35,0xe5,0x9a,0x76,0xab,0x1f,0x8f,0xbe,0x29,0xda,0x6a,0x3e,0x2e,0xbf,0x2b,0x0e, -0xb3,0xac,0xa4,0xfa,0xb5,0xfb,0xb6,0xd2,0xa9,0x2c,0xe0,0xcf,0x21,0x3d,0xb0,0x19, -0x8f,0xb5,0x7f,0x40,0x9f,0x1c,0x3e,0x24,0xe8,0x3f,0xb3,0x97,0xec,0xbf,0xae,0xf8, -0x9b,0x43,0x5b,0x5b,0x7d,0x2b,0x46,0xd1,0x44,0x7a,0x34,0x36,0xa5,0x44,0x4c,0xcc, -0xa2,0x3b,0x61,0x1e,0x38,0x20,0xb3,0x27,0x4e,0xdc,0xd3,0x25,0x6a,0x7f,0x3e,0x1e, -0x2f,0xf0,0x4e,0xa1,0xe0,0xef,0x1d,0x6a,0xbe,0x13,0x9d,0xa1,0xbe,0xd5,0x74,0xeb, -0xe7,0xd3,0xa4,0xfb,0x03,0x99,0x63,0x92,0x64,0x7d,0x85,0x50,0xe0,0x6e,0xf9,0x81, -0x03,0x8e,0x71,0x5f,0xbd,0xbe,0x1c,0xf8,0x6b,0xa7,0x7e,0xce,0x7f,0xb0,0xcd,0xef, -0x86,0x2e,0x84,0x51,0xc7,0xa3,0x78,0x42,0xed,0xf5,0x07,0xc6,0x16,0x4b,0x86,0xb7, -0x91,0xe7,0x27,0xeb,0x23,0x30,0xfc,0xab,0xf2,0x6b,0xfe,0x09,0xd5,0xf0,0x92,0x7f, -0x8e,0x9f,0xb5,0xbf,0x87,0xae,0x75,0x24,0x6b,0xed,0x3f,0x45,0x95,0xfc,0x45,0xa9, -0xcb,0x29,0xfb,0xcd,0x11,0x06,0x32,0x4f,0x72,0xd3,0xb4,0x59,0xf5,0x19,0xaf,0xb2, -0xff,0x00,0xe0,0xac,0x1f,0xb6,0x06,0x8d,0xa5,0x78,0x12,0xe7,0xe0,0xdf,0x85,0xb5, -0x38,0x6f,0xf5,0xfd,0x52,0x44,0xfe,0xde,0x6b,0x67,0x0e,0xb6,0x56,0xc8,0x43,0x08, -0x19,0x81,0xe2,0x47,0x60,0x99,0x5e,0x48,0x50,0x72,0x06,0xe1,0x40,0x2d,0x35,0x3f, -0x2c,0xfe,0x17,0x78,0x72,0xe3,0xc6,0x1f,0x12,0xfc,0x27,0xa0,0xd9,0x0c,0xdd,0xea, -0x7a,0xb5,0xa5,0x9c,0x5c,0xe3,0xe6,0x92,0x64,0x51,0xfc,0xeb,0xfa,0x6e,0x8d,0x3c, -0xb4,0x55,0xeb,0x80,0x06,0x6b,0xf1,0x1f,0xfe,0x09,0x3f,0xf0,0x0e,0xe3,0xe2,0x67, -0xed,0x0b,0x17,0x8c,0xaf,0x2d,0x0b,0xf8,0x7b,0xc1,0xa9,0xf6,0xb6,0x92,0x45,0x3b, -0x1e,0xf1,0x81,0x10,0x20,0x3e,0xaa,0x73,0x27,0xb6,0xc1,0xeb,0x5f,0xb7,0x2c,0xc1, -0x14,0x92,0x70,0x00,0xcd,0x0c,0x16,0xc7,0x81,0xfe,0xd2,0x7e,0x22,0x12,0xdd,0x69, -0x9a,0x24,0x6d,0x91,0x18,0x37,0x52,0x8f,0x73,0x95,0x4f,0xd3,0x77,0xe6,0x2b,0xc4, -0xab,0x7b,0xc7,0x5e,0x20,0x3e,0x28,0xf1,0x6e,0xa7,0xa9,0x64,0x98,0xe5,0x98,0x88, -0xb3,0xd9,0x07,0x0b,0xfa,0x01,0x58,0x35,0xf8,0x96,0x67,0x89,0xfa,0xde,0x2e,0x75, -0x56,0xd7,0xb2,0xf4,0x5a,0x1f,0x29,0x88,0xa9,0xed,0x6a,0xb9,0x06,0x68,0xa2,0x8c, -0xd7,0x98,0x73,0x85,0x14,0x51,0x48,0x00,0x71,0x4e,0x49,0x5e,0x33,0x95,0x76,0x52, -0x3b,0x83,0x8a,0x6d,0x14,0xd3,0x6b,0x60,0xb9,0xb5,0xa6,0xf8,0xd7,0x5f,0xd2,0x0a, -0xfd,0x93,0x58,0xbd,0x84,0x2f,0x45,0x13,0x31,0x5f,0xc8,0xf1,0x5e,0x89,0xe1,0x6f, -0xda,0x2b,0x56,0xb0,0x91,0x22,0xd6,0xed,0xd3,0x51,0xb7,0xef,0x2c,0x2a,0x12,0x51, -0xf8,0x7d,0xd3,0xfa,0x7d,0x6b,0xc8,0x68,0xaf,0x43,0x0f,0x98,0xe2,0xb0,0xb2,0xbd, -0x2a,0x8f,0xf4,0xfb,0x8d,0xe1,0x5e,0xa5,0x37,0x78,0xc8,0xfb,0x57,0xc3,0x5e,0x28, -0xd3,0xbc,0x59,0xa6,0xa5,0xf6,0x9b,0x72,0xb7,0x10,0x31,0xc1,0xec,0xc8,0xdd,0xd5, -0x87,0x63,0x5a,0xd5,0xf2,0x47,0xc2,0x6f,0x18,0x4f,0xe1,0x2f,0x17,0xda,0x10,0xe7, -0xec,0x57,0x6e,0xb0,0x5c,0xc7,0x9e,0x08,0x27,0x01,0xbe,0xaa,0x4e,0x7f,0x3f,0x5a, -0xfa,0xd9,0x4e,0x46,0x6b,0xf5,0x3c,0xa7,0x31,0x59,0x8d,0x0e,0x76,0xad,0x25,0xa3, -0x3e,0x8b,0x0d,0x5f,0xdb,0xc2,0xfd,0x50,0x37,0x00,0xd7,0xcd,0x1f,0x15,0x3e,0x26, -0xeb,0x51,0x78,0xeb,0x51,0xb7,0xd2,0xf5,0x5b,0x9b,0x5b,0x4b,0x56,0x10,0x04,0x89, -0xf0,0xa5,0x94,0x7c,0xc7,0x1f,0xef,0x64,0x7e,0x15,0xf4,0x4e,0xbb,0xaa,0xc7,0xa1, -0xe8,0xd7,0xda,0x84,0xdc,0xc5,0x6b,0x0b,0xcc,0xc0,0x75,0x21,0x41,0x38,0xfd,0x2b, -0xe2,0x8b,0xbb,0xa9,0x2f,0x6e,0xa6,0xb8,0x95,0xb7,0xcb,0x33,0xb4,0x8e,0xc7,0xbb, -0x13,0x92,0x6b,0xc6,0xe2,0x5c,0x64,0xe8,0xd3,0xa7,0x4a,0x9c,0xac,0xdb,0xbe,0x9d, -0x8e,0x6c,0x7d,0x57,0x08,0xa8,0xc5,0xd8,0xea,0x13,0xe2,0xc7,0x8b,0xa3,0xe9,0xae, -0xdd,0x7e,0x3b,0x4f,0xf3,0x15,0x32,0x7c,0x64,0xf1,0x94,0x7d,0x35,0xb9,0x0f,0xfb, -0xd1,0x46,0x7f,0xf6,0x5a,0xe3,0x28,0xaf,0x82,0x58,0xec,0x52,0xda,0xac,0xbe,0xf6, -0x78,0x9e,0xda,0xa7,0xf3,0x3f,0xbc,0xef,0x13,0xe3,0x8f,0x8c,0xd3,0xfe,0x62,0xc1, -0xbf,0xde,0xb7,0x8b,0xff,0x00,0x89,0xab,0x09,0xf1,0xef,0xc6,0x0b,0xd6,0xf6,0x06, -0xfa,0xdb,0xaf,0xf8,0x57,0x9d,0xd1,0x5a,0x2c,0xcb,0x1a,0xb6,0xad,0x2f,0xbd,0x97, -0xf5,0x8a,0xbf,0xcc,0xcf,0x4a,0x5f,0xda,0x0b,0xc5,0xca,0x79,0x96,0xd1,0xff,0x00, -0xde,0xb7,0xff,0x00,0x03,0x53,0xa7,0xed,0x17,0xe2,0xa4,0xeb,0x16,0x9c,0xff,0x00, -0x58,0x1b,0xff,0x00,0x8b,0xaf,0x2e,0xa2,0xb4,0x59,0xb6,0x39,0x6d,0x59,0xfd,0xe3, -0x58,0x9a,0xcb,0xed,0x33,0xd6,0x23,0xfd,0xa4,0xbc,0x48,0xbf,0x7a,0xcb,0x4e,0x6f, -0xfb,0x66,0xe3,0xff,0x00,0x67,0xab,0x09,0xfb,0x4b,0x6b,0x60,0x7c,0xda,0x5d,0x8b, -0x1f,0x6d,0xe3,0xfa,0xd7,0x8f,0xd1,0x56,0xb3,0x9c,0x7a,0xff,0x00,0x97,0xac,0x7f, -0x5a,0xaf,0xfc,0xc7,0xb3,0x27,0xed,0x33,0xaa,0x0f,0xbd,0xa2,0xda,0xb7,0xd2,0x56, -0x1f,0xd2,0xa7,0x5f,0xda,0x6e,0xef,0xf8,0xb4,0x08,0x7f,0x0b,0xa3,0xff,0x00,0xc4, -0xd7,0x89,0x51,0xfa,0xd6,0xab,0x3c,0xcc,0x3a,0x55,0xfc,0x17,0xf9,0x14,0xb1,0x95, -0xff,0x00,0x98,0xfb,0x1b,0xe1,0xef,0x8b,0x26,0xf1,0xb7,0x86,0x61,0xd5,0xa5,0xb3, -0x16,0x42,0x67,0x75,0x48,0xc3,0xee,0xc8,0x52,0x57,0x39,0xc0,0xee,0x0d,0x74,0xb5, -0x89,0xe0,0xad,0x23,0xfb,0x03,0xc2,0x9a,0x56,0x9e,0x7e,0xf4,0x16,0xe8,0xaf,0xee, -0xd8,0xcb,0x1f,0xcf,0x35,0xb4,0x6b,0xf5,0xac,0x3f,0x3f,0xb1,0x87,0xb5,0x77,0x95, -0x95,0xfd,0x4f,0xa5,0x85,0xf9,0x17,0x36,0xe2,0xd2,0x13,0x8a,0xaf,0x7b,0x7f,0x6f, -0xa7,0x5a,0x49,0x73,0x75,0x3c,0x76,0xf6,0xf1,0x8d,0xcf,0x2c,0xac,0x15,0x54,0x7a, -0x92,0x6b,0xc7,0x3c,0x65,0xfb,0x45,0xdb,0xda,0xb3,0xdb,0x78,0x7a,0xdf,0xed,0x72, -0x0e,0x3e,0xd9,0x70,0x08,0x8f,0xea,0xab,0xd4,0xfe,0x38,0xfc,0x6b,0x0c,0x5e,0x3b, -0x0f,0x82,0x8f,0x35,0x69,0x5b,0xcb,0xaf,0xdc,0x4d,0x5a,0xd0,0xa4,0xaf,0x36,0x7b, -0x51,0x70,0xa3,0x24,0xe0,0x7a,0x9a,0xe5,0xf5,0x8f,0x8a,0x3e,0x16,0xd0,0xb7,0x0b, -0x9d,0x6a,0xd8,0xba,0x9c,0x18,0xe0,0x6f,0x39,0x81,0xf7,0x09,0x92,0x2b,0xe5,0xbf, -0x10,0xf8,0xe3,0x5d,0xf1,0x4c,0x8c,0xda,0x96,0xa5,0x34,0xe8,0x4e,0x7c,0xa0,0xdb, -0x63,0x1f,0x45,0x18,0x15,0x85,0xd2,0xbe,0x33,0x11,0xc5,0x2f,0x6c,0x3d,0x3f,0x9b, -0xff,0x00,0x25,0xfe,0x67,0x95,0x3c,0xc7,0xf9,0x23,0xf7,0x9f,0x4b,0xdf,0xfe,0xd1, -0x7e,0x19,0xb6,0x72,0xb0,0x45,0x7d,0x79,0xe8,0xd1,0xc4,0x15,0x7f,0xf1,0xe6,0x07, -0xf4,0xac,0xb9,0xbf,0x69,0x9d,0x31,0x4f,0xee,0x74,0x6b,0xb7,0x1f,0xed,0xc8,0xab, -0xfc,0xb3,0x5f,0x3e,0x51,0x5e,0x44,0xb8,0x8f,0x1f,0x2d,0x9a,0x5f,0x2f,0xf3,0x39, -0x5e,0x3a,0xb3,0xea,0x7b,0xfa,0xfe,0xd3,0x76,0x64,0xfc,0xda,0x14,0xe0,0x7b,0x4e, -0xa7,0xfa,0x55,0xb8,0xbf,0x69,0x6d,0x10,0xe3,0xcc,0xd2,0xf5,0x04,0xf5,0xda,0x23, -0x6f,0xfd,0x98,0x57,0xce,0xb4,0x54,0xae,0x21,0xcc,0x17,0xda,0x4f,0xe4,0x84,0xb1, -0xd5,0xfb,0x9f,0x53,0x58,0x7c,0x7b,0xf0,0x85,0xe8,0x4f,0x32,0xf2,0x6b,0x36,0x6f, -0xe1,0x9e,0xdd,0xb8,0xfa,0x95,0x04,0x7e,0xb5,0xd8,0xe9,0x3e,0x25,0xd2,0xb5,0xe0, -0x4e,0x9d,0xa9,0x5a,0xde,0xe0,0x64,0x88,0x25,0x56,0x23,0xea,0x07,0x4a,0xf8,0xa2, -0x9d,0x14,0xaf,0x04,0x8a,0xf1,0xbb,0x46,0xeb,0xca,0xb2,0x1c,0x11,0xf4,0x22,0xbd, -0x0a,0x3c,0x51,0x88,0x8b,0xfd,0xf4,0x13,0x5e,0x5a,0x3f,0xd4,0xde,0x19,0x8c,0xd7, -0xc4,0xae,0x7d,0xcf,0x9c,0x9e,0xb4,0xb5,0xf2,0xcf,0x84,0xfe,0x39,0x78,0x8b,0xc3, -0xae,0x91,0xdd,0x4d,0xfd,0xaf,0x68,0x3a,0xc7,0x72,0x7e,0x70,0x3d,0x9f,0xaf,0xe7, -0x9a,0xf7,0xbf,0x04,0x7c,0x49,0xd1,0xfc,0x75,0x6e,0x4d,0x94,0xde,0x55,0xda,0x0c, -0xc9,0x69,0x36,0x04,0x8b,0xee,0x3d,0x47,0xb8,0xaf,0xaf,0xc0,0xe7,0x18,0x5c,0x73, -0xe5,0x83,0xb4,0xbb,0x3f,0xd0,0xf4,0xe8,0xe2,0xa9,0xd6,0xd1,0x3b,0x33,0xac,0xa2, -0x90,0x1c,0x8a,0x5a,0xf7,0x0e,0xc0,0xa2,0x8a,0x28,0x00,0xa2,0x90,0x9c,0x57,0x3b, -0xe2,0x9f,0x88,0x1a,0x1f,0x83,0x93,0x3a,0x9d,0xfc,0x71,0x4a,0x46,0x44,0x09,0xf3, -0xc8,0xdf,0xf0,0x11,0xce,0x3d,0xcf,0x15,0x95,0x4a,0xb0,0xa5,0x1e,0x6a,0x92,0xb2, -0xf3,0x26,0x52,0x51,0x57,0x93,0x3a,0x3a,0x4c,0xd7,0x84,0x6b,0xdf,0xb4,0xb3,0x1d, -0xc9,0xa3,0xe9,0x20,0x0e,0xd2,0xde,0x3f,0x3f,0xf7,0xc2,0xff,0x00,0xf1,0x55,0xc3, -0xea,0x7f,0x1b,0x7c,0x5f,0xa9,0x13,0xff,0x00,0x13,0x31,0x68,0xa7,0xf8,0x6d,0xa2, -0x55,0xc7,0xe3,0x82,0x7f,0x5a,0xf9,0xca,0xfc,0x45,0x81,0xa5,0xa4,0x5b,0x97,0xa2, -0xff,0x00,0x33,0x82,0x78,0xea,0x31,0xd1,0x6a,0x7d,0x5d,0x9f,0xca,0x8d,0xc3,0xd6, -0xbe,0x30,0xba,0xf1,0xaf,0x88,0x2f,0x73,0xe7,0xeb,0x7a,0x84,0x80,0xf5,0x06,0xe5, -0xf1,0xf9,0x66,0xb3,0x1e,0xfa,0xe6,0x43,0x96,0xb8,0x95,0x89,0xee,0xce,0x4d,0x79, -0x92,0xe2,0xaa,0x6b,0xe1,0xa4,0xfe,0xff,0x00,0xf8,0x07,0x3b,0xcc,0xa3,0xd2,0x27, -0xdc,0x04,0x2b,0x1f,0x9b,0x69,0xfa,0xd3,0x86,0xd0,0x30,0x00,0xfc,0x2b,0xe1,0xbf, -0xb5,0xcf,0xff,0x00,0x3d,0xa4,0xff,0x00,0xbe,0x8d,0x58,0xb6,0xd7,0x35,0x2b,0x33, -0x9b,0x7d,0x42,0xea,0x03,0xeb,0x1c,0xcc,0xbf,0xc8,0xd4,0xae,0x2a,0x87,0x5a,0x3f, -0x8f,0xfc,0x01,0x7f,0x69,0x2e,0xb1,0xfc,0x4f,0xb6,0xb6,0xa9,0x3d,0x06,0x69,0xd9, -0xe3,0x8a,0xf8,0xe6,0xd3,0xe2,0x37,0x8a,0x2c,0xbf,0xd5,0x6b,0xd7,0xff,0x00,0x47, -0x9d,0x9c,0x7f,0xe3,0xd9,0xae,0x82,0xc3,0xe3,0xcf,0x8b,0xec,0x48,0xdf,0x75,0x05, -0xea,0x8e,0xd3,0xc0,0xbf,0xcd,0x71,0x5d,0x74,0xf8,0x9f,0x0b,0x2f,0x8e,0x2d,0x7d, -0xcc,0xda,0x39,0x85,0x37,0xba,0x68,0xfa,0xa2,0x90,0xf1,0x5e,0x27,0xe1,0x2f,0xda, -0x22,0x6d,0x5f,0x53,0xb3,0xd3,0xef,0xb4,0x61,0xe6,0xdc,0xca,0x90,0xac,0x96,0xb2, -0x7f,0x13,0x10,0x07,0xca,0xdf,0x5f,0x5a,0xf6,0xc1,0xc8,0x15,0xf4,0x78,0x4c,0x75, -0x0c,0x74,0x5c,0xa8,0x4a,0xf6,0x3b,0xa9,0x56,0x85,0x65,0x78,0x30,0x56,0x0e,0xa0, -0x8e,0x86,0x96,0x9a,0xab,0xb4,0x60,0x74,0xa7,0x57,0x79,0xb0,0x53,0x5c,0xe1,0x49, -0xf4,0x14,0xea,0x8a,0xe9,0xfc,0xbb,0x69,0x5b,0xd1,0x09,0xfd,0x29,0x3d,0x80,0xf8, -0x93,0xf6,0x80,0xb9,0xfb,0x47,0x8a,0xe4,0x5c,0xe7,0x04,0xd7,0x87,0xe8,0xfe,0x3c, -0x97,0xe1,0x5f,0xc5,0x4f,0x09,0x78,0xaa,0x10,0x0a,0x5a,0x5f,0x24,0x57,0x0a,0x4e, -0x03,0x41,0x27,0xee,0xe4,0x07,0xfe,0x02,0xc4,0x8f,0x70,0x3d,0x2b,0xd6,0xbe,0x33, -0x5c,0x79,0xde,0x2d,0xb8,0x39,0xce,0x33,0x5f,0x2e,0x7c,0x77,0xba,0x30,0xe8,0x72, -0xed,0x38,0x60,0xa4,0x8c,0x7a,0xd7,0xe7,0x18,0x29,0x37,0x8e,0x94,0x97,0x76,0x7e, -0x39,0x8f,0xa9,0x25,0x9a,0x53,0x9c,0x77,0xe7,0x47,0xec,0x77,0xdb,0x61,0xff,0x00, -0x9e,0xc9,0xf9,0xd1,0x5e,0x03,0xfd,0x91,0x7b,0xff,0x00,0x3f,0x72,0xff,0x00,0xdf, -0x46,0x8a,0xfd,0x0f,0x9d,0x9f,0xaf,0x73,0x79,0x1f,0x44,0xd1,0x45,0x15,0xa9,0xa8, -0x51,0x45,0x14,0x01,0x93,0xe2,0x9d,0x7a,0x1f,0x0b,0xf8,0x77,0x53,0xd5,0xae,0x48, -0xf2,0x6c,0xed,0xde,0x76,0x1e,0xbb,0x41,0x38,0xfc,0x4f,0x15,0xf9,0xe8,0xf3,0x5d, -0x78,0x97,0x5b,0x92,0x79,0x4b,0x4d,0x79,0x7d,0x39,0x76,0x3d,0x49,0x66,0x6c,0xff, -0x00,0x5a,0xfa,0x97,0xf6,0xb9,0xf1,0x6b,0x69,0x9e,0x11,0xb1,0xd0,0xa0,0x90,0x2c, -0xba,0x9c,0xdb,0xe5,0x51,0x8c,0xf9,0x51,0xf3,0xfa,0xb1,0x5f,0xc8,0xd7,0x8e,0x7e, -0xce,0xde,0x11,0xff,0x00,0x84,0xa3,0xe2,0x15,0xa3,0xc8,0xbb,0xad,0xac,0xff,0x00, -0x7e,0xfc,0x71,0xc7,0x41,0xf9,0xd7,0xc3,0xe7,0x33,0x78,0xac,0x54,0x30,0x90,0xfe, -0x9b,0xff,0x00,0x80,0x7c,0x26,0x6f,0x27,0x8c,0xc7,0x53,0xc2,0x47,0x65,0xbf,0xab, -0xff,0x00,0x80,0x7d,0x75,0xf0,0xeb,0xc3,0x51,0xf8,0x4f,0xc1,0xba,0x5e,0x9a,0x8b, -0xb5,0xa2,0x84,0x17,0xf7,0x62,0x32,0x6b,0xa4,0x03,0x14,0x2f,0x02,0x96,0xbe,0xd2, -0x9c,0x15,0x38,0x28,0x47,0x64,0x7d,0xc4,0x22,0xa1,0x15,0x15,0xb2,0x0a,0x28,0xa2, -0xb4,0x2c,0x2b,0x88,0xf8,0xe1,0xe0,0x17,0xf8,0xa9,0xf0,0x77,0xc6,0xbe,0x0f,0x8e, -0x5f,0x22,0x5d,0x73,0x48,0xba,0xb0,0x8e,0x53,0xfc,0x0f,0x24,0x4c,0xaa,0x7f,0x02, -0x45,0x76,0xf4,0x84,0x66,0x80,0x3f,0x97,0xbf,0x12,0xf8,0x6f,0x53,0xf0,0x77,0x88, -0x75,0x2d,0x0f,0x59,0xb3,0x97,0x4f,0xd5,0x74,0xeb,0x87,0xb5,0xba,0xb5,0x9d,0x70, -0xf1,0x48,0xa4,0x86,0x52,0x3e,0xa2,0xb4,0xa7,0xf8,0x99,0xe2,0xdb,0x9f,0x06,0x0f, -0x08,0x4d,0xe2,0x5d,0x56,0x6f,0x0b,0x09,0x56,0x71,0xa3,0x49,0x79,0x23,0x5a,0xac, -0x8b,0x9d,0xac,0x23,0x27,0x68,0x23,0x27,0xa0,0xef,0x5f,0xbd,0xff,0x00,0xb4,0x67, -0xec,0x2b,0xf0,0x9f,0xf6,0x99,0xb8,0x6d,0x4b,0xc4,0xba,0x3c,0xba,0x77,0x88,0xf6, -0x04,0x1a,0xee,0x8f,0x20,0x82,0xe9,0x80,0x18,0x01,0xf8,0x29,0x26,0x07,0x03,0x7a, -0x92,0x07,0x00,0x81,0x5f,0x2a,0x6a,0xbf,0xf0,0x44,0xcf,0x0c,0x49,0x76,0x0e,0x99, -0xf1,0x3b,0x56,0xb6,0xb5,0xef,0x1d,0xde,0x9b,0x14,0xcf,0x8f,0xf7,0x95,0x90,0x7e, -0x95,0x57,0x22,0xcf,0xa1,0xf9,0x77,0xe0,0xff,0x00,0x89,0x7e,0x2c,0xf8,0x7d,0x0e, -0xa7,0x17,0x86,0x3c,0x45,0xa9,0x78,0x7d,0x75,0x38,0x84,0x17,0x9f,0xd9,0xb7,0x2f, -0x03,0x4f,0x18,0x24,0x84,0x62,0xa4,0x12,0x32,0x4f,0x15,0xdb,0xfe,0xcf,0x3f,0xb3, -0x4f,0x8e,0xff,0x00,0x6a,0x2f,0x1c,0x47,0xa3,0x78,0x5a,0xc6,0x49,0x63,0xf3,0x03, -0x6a,0x1a,0xcd,0xc8,0x3f,0x66,0xb3,0x42,0x79,0x79,0x1f,0xb9,0xeb,0x85,0x19,0x66, -0x3d,0x2b,0xf5,0x27,0xe1,0xef,0xfc,0x11,0xd7,0xe0,0xf7,0x86,0x2f,0xe1,0xbb,0xf1, -0x1e,0xad,0xe2,0x0f,0x18,0x98,0xf9,0x36,0x97,0x17,0x0b,0x6b,0x6e,0xc7,0xdc,0x44, -0xa1,0xff,0x00,0x0d,0xf5,0xf6,0xa7,0x82,0x3c,0x03,0xe1,0xcf,0x86,0xbe,0x1e,0xb6, -0xd0,0x7c,0x2b,0xa2,0x58,0xf8,0x7f,0x47,0xb7,0x1f,0xbb,0xb3,0xd3,0xe0,0x58,0xa3, -0x07,0xb9,0x20,0x0e,0x58,0xf7,0x63,0xc9,0xee,0x69,0x5c,0x12,0xee,0x71,0xdf,0xb3, -0x97,0xec,0xfd,0xe1,0xbf,0xd9,0xab,0xe1,0x7e,0x9d,0xe0,0xcf,0x0d,0xc6,0x5a,0x38, -0x7f,0x7b,0x77,0x7d,0x22,0x81,0x35,0xed,0xc3,0x01,0xbe,0x67,0x3e,0xa7,0x00,0x01, -0xd8,0x00,0x07,0x02,0xb6,0x7e,0x30,0xf8,0x8c,0x78,0x6f,0xc0,0x7a,0x8c,0x8a,0xc1, -0x6e,0x2e,0x57,0xec,0xb0,0xf3,0x83,0xb9,0xf8,0x24,0x7b,0x85,0xdc,0x7f,0x0a,0xed, -0xeb,0xe7,0x8f,0xda,0x43,0xc4,0x5f,0x6b,0xd6,0x6c,0x34,0x68,0xdf,0x29,0x6b,0x19, -0x9e,0x50,0x3a,0x6f,0x6e,0x07,0xe4,0x07,0xfe,0x3d,0x5e,0x2e,0x6f,0x89,0xfa,0xae, -0x0e,0x73,0x5b,0xbd,0x17,0xab,0xd0,0xe7,0xc5,0x54,0xf6,0x74,0x9b,0x3c,0x6e,0x8a, -0x28,0xaf,0xc6,0x0f,0x95,0x0a,0xf6,0xff,0x00,0xd9,0xcf,0xc2,0x90,0x5e,0xc5,0xaa, -0xea,0xf7,0x76,0xf1,0x4e,0x99,0x16,0xd1,0x09,0x50,0x30,0xc8,0xf9,0x98,0xe0,0xfd, -0x57,0xf5,0xaf,0x10,0xaf,0xb0,0xbe,0x1a,0x78,0x74,0xf8,0x63,0xc1,0x1a,0x4d,0x8b, -0xa9,0x59,0xc4,0x5e,0x64,0xc0,0x8c,0x10,0xee,0x77,0x30,0xfc,0x09,0xc7,0xe1,0x5f, -0x57,0xc3,0xb8,0x5f,0x6f,0x8b,0xf6,0x92,0x5a,0x45,0x7e,0x2f,0x44,0x7a,0x58,0x0a, -0x7c,0xf5,0x79,0x9f,0x43,0x4e,0x4f,0x09,0xe8,0x93,0x0f,0xde,0x69,0x16,0x2f,0xf5, -0xb6,0x43,0xfd,0x2b,0x36,0xf3,0xe1,0x87,0x85,0x2f,0x91,0x96,0x4d,0x02,0xc5,0x41, -0xea,0x62,0x84,0x46,0x7f,0x35,0xc1,0xae,0x9c,0x0c,0x51,0x5f,0xa6,0xcb,0x0f,0x46, -0x5f,0x14,0x13,0xf9,0x23,0xe8,0x1d,0x38,0x3d,0xd2,0x3c,0x33,0xe2,0x17,0xc0,0x1b, -0x3b,0x6d,0x3a,0xe3,0x50,0xf0,0xf3,0xcb,0x1c,0x90,0xa1,0x76,0xb3,0x95,0xb7,0x87, -0x03,0x93,0xb5,0x8f,0x39,0xfa,0x93,0x9f,0x6a,0xf0,0x8a,0xfb,0x2b,0xc7,0x7e,0x21, -0x83,0xc3,0x3e,0x14,0xd4,0x6f,0xe6,0x20,0x6c,0x89,0x95,0x14,0xff,0x00,0x1b,0x91, -0x85,0x1f,0x99,0xaf,0x8d,0x40,0xc0,0x02,0xbf,0x34,0xe2,0x2c,0x2e,0x1b,0x0d,0x5a, -0x1e,0xc1,0x59,0xb5,0xaa,0x5f,0x81,0xe0,0x63,0xa9,0xc2,0x9c,0xd7,0x26,0x81,0x45, -0x14,0x57,0xc9,0x1e,0x61,0x6f,0x49,0xb5,0x7b,0xed,0x56,0xce,0xde,0x21,0x99,0x25, -0x99,0x23,0x5c,0x7a,0x96,0x00,0x7f,0x3a,0xfb,0x79,0x38,0x50,0x2b,0xe5,0xdf,0x81, -0x3e,0x13,0x6f,0x10,0x78,0xce,0x2b,0xc9,0x13,0x75,0xa6,0x9a,0x3c,0xf7,0x24,0x70, -0x64,0xe8,0x83,0xeb,0x9f,0x9b,0xfe,0x03,0x5f,0x51,0x81,0x5f,0xa5,0xf0,0xc5,0x09, -0x53,0xc3,0xce,0xab,0xfb,0x4f,0x4f,0x91,0xef,0xe5,0xd0,0x71,0x83,0x93,0xea,0x61, -0x78,0xdb,0xc3,0x4f,0xe2,0xff,0x00,0x0e,0x5d,0xe9,0x2b,0x78,0xf6,0x22,0xe3,0x68, -0x69,0x91,0x37,0x10,0x03,0x02,0x46,0x32,0x3a,0xe3,0x15,0xe4,0xf2,0x7e,0xcc,0x63, -0xf8,0x3c,0x40,0x7f,0xe0,0x56,0x9f,0xfd,0x9d,0x7b,0xb5,0x26,0x2b,0xe8,0x71,0x59, -0x6e,0x17,0x19,0x25,0x3a,0xf0,0xbb,0xf5,0x67,0x75,0x4c,0x3d,0x3a,0xae,0xf3,0x57, -0x3c,0x09,0xff,0x00,0x66,0x4b,0xaf,0xe0,0xd7,0xa1,0x3f,0xef,0x5b,0x11,0xff,0x00, -0xb3,0x55,0x77,0xfd,0x99,0xf5,0x31,0xf7,0x35,0xab,0x46,0xfa,0xc4,0xc2,0xbe,0x85, -0xc5,0x52,0xd6,0x35,0x38,0xb4,0x7d,0x2a,0xf2,0xfa,0x63,0x88,0xad,0xa2,0x79,0x58, -0xfb,0x28,0x26,0xbc,0xe9,0xe4,0x39,0x72,0x4d,0xb8,0x5b,0xe6,0xff,0x00,0xcc,0xc1, -0xe0,0xa8,0x2d,0x6c,0x7c,0x65,0xe2,0x0d,0x20,0xe8,0x1a,0xdd,0xee,0x9a,0xd7,0x11, -0xdc,0xbd,0xac,0x86,0x26,0x92,0x20,0x42,0x96,0x1d,0x40,0xcf,0xa1,0xc8,0xfc,0x2b, -0x3e,0xa6,0xbc,0xba,0x96,0xfe,0xee,0x6b,0x99,0xdb,0x7c,0xf3,0x3b,0x49,0x23,0x7a, -0xb1,0x39,0x27,0xf3,0x35,0x0d,0x7e,0x51,0x53,0x95,0xcd,0xb8,0x2d,0x2f,0xa1,0xf3, -0x4e,0xd7,0x76,0x0a,0x28,0xad,0x2f,0x0d,0xe9,0x2d,0xaf,0x78,0x83,0x4d,0xd3,0xd4, -0x13,0xf6,0x9b,0x84,0x8c,0xe3,0xb2,0x93,0xc9,0xfc,0xb3,0x4a,0x10,0x75,0x24,0xa0, -0xb7,0x6e,0xc1,0x15,0x76,0x91,0xd2,0xda,0xfc,0x17,0xf1,0x7d,0xe5,0xa4,0x37,0x30, -0xe9,0x41,0xe2,0x99,0x04,0x88,0x7c,0xf8,0xc1,0xc1,0x19,0x19,0x05,0xb8,0xa4,0x93, -0xe0,0xb7,0x8c,0xe3,0xeb,0xa2,0x39,0xff,0x00,0x76,0x68,0x8f,0xfe,0xcd,0x5f,0x59, -0x43,0x1a,0xc5,0x12,0x22,0x8d,0xaa,0xa0,0x00,0x07,0x61,0x4e,0xc7,0xbd,0x7e,0x99, -0xfe,0xac,0x61,0x1a,0x5e,0xf4,0xaf,0xea,0xbf,0xc8,0xf7,0xff,0x00,0xb3,0xa9,0xf7, -0x67,0xc8,0x12,0x7c,0x2a,0xf1,0x6c,0x47,0xe6,0xd0,0x6e,0xcf,0xfb,0xaa,0x0f,0xf2, -0x35,0xa1,0xe1,0x2f,0x86,0x1e,0x20,0x9b,0xc5,0x3a,0x52,0x5e,0xe8,0xb7,0x50,0x5a, -0x7d,0xa5,0x1a,0x67,0x9a,0x22,0x10,0x20,0x39,0x6c,0x9f,0x70,0x31,0x5f,0x57,0x8a, -0x31,0x44,0x38,0x67,0x0d,0x09,0xa9,0x29,0xbd,0x3d,0x06,0xb2,0xfa,0x69,0xde,0xec, -0x07,0x02,0xb1,0x7c,0x59,0xe2,0xed,0x3f,0xc1,0xba,0x3c,0x9a,0x86,0xa1,0x2e,0xc8, -0xc7,0xca,0x91,0xaf,0xdf,0x95,0xbb,0x2a,0x8e,0xe7,0xf9,0x75,0x35,0x7f,0x56,0xd5, -0x6d,0xb4,0x4d,0x36,0xe6,0xfa,0xf2,0x51,0x0d,0xb4,0x08,0x64,0x91,0xcf,0x60,0x3f, -0xcf,0x4a,0xf9,0x1b,0xe2,0x07,0x8e,0x6e,0xfc,0x77,0xae,0xbd,0xe4,0xe5,0xa3,0xb6, -0x8c,0x95,0xb6,0xb7,0xcf,0x11,0x27,0xf8,0x9e,0xe7,0xfa,0x62,0xbd,0x1c,0xdb,0x34, -0x8e,0x5d,0x4a,0xd1,0xd6,0x6f,0x65,0xfa,0xb3,0x7c,0x4e,0x21,0x50,0x8e,0x9b,0xb2, -0x6f,0x1e,0x7c,0x48,0xd5,0x3c,0x79,0x78,0x5a,0xe5,0xcd,0xbd,0x8a,0x1c,0xc5,0x67, -0x1b,0x1d,0x8b,0xe8,0x4f,0xf7,0x9b,0xdc,0xfe,0x18,0xae,0x4e,0x8a,0x2b,0xf2,0x5a, -0xd5,0xaa,0x62,0x26,0xea,0x55,0x77,0x6c,0xf9,0x99,0x4e,0x53,0x7c,0xd2,0x7a,0x85, -0x14,0x57,0x5d,0xe0,0x0f,0x86,0x9a,0xa7,0x8f,0xae,0x8f,0xd9,0x80,0xb7,0xb1,0x8d, -0xb1,0x2d,0xe4,0x83,0xe5,0x1f,0xec,0x81,0xfc,0x4d,0xed,0xf9,0xd3,0xa3,0x46,0xa6, -0x22,0x6a,0x9d,0x25,0x76,0xc7,0x08,0x4a,0xa4,0xb9,0x62,0xae,0xce,0x46,0xa7,0xb7, -0xb1,0xb9,0xbc,0xff,0x00,0x51,0x6f,0x2c,0xf8,0xeb,0xe5,0xa1,0x6f,0xe5,0x5f,0x55, -0xf8,0x5f,0xe0,0xe7,0x86,0x7c,0x35,0x12,0x11,0x60,0x97,0xf7,0x23,0x19,0x9e,0xf0, -0x09,0x0e,0x7d,0x40,0x3f,0x28,0xfc,0x05,0x76,0xc9,0x0a,0x46,0x00,0x55,0x0a,0x07, -0x18,0x03,0x02,0xbe,0xce,0x87,0x0b,0x54,0x94,0x6f,0x5a,0xa2,0x4f,0xb2,0x57,0xfc, -0x74,0x3d,0x58,0x65,0xd2,0x7f,0x1c,0xac,0x7c,0x3f,0x71,0xa7,0x5d,0xda,0x0c,0xcf, -0x6b,0x34,0x23,0xd6,0x48,0xca,0xff,0x00,0x31,0x55,0xeb,0xee,0x96,0x8d,0x5d,0x48, -0x60,0x08,0x3d,0x8d,0x71,0xde,0x29,0xf8,0x4d,0xe1,0xcf,0x15,0x42,0xfe,0x6d,0x8a, -0x59,0xdd,0x31,0x2c,0x2e,0xad,0x00,0x8d,0xf7,0x7a,0x9c,0x70,0xdf,0x88,0x34,0xeb, -0xf0,0xb5,0x48,0xc6,0xf4,0x6a,0x5d,0xf6,0x6a,0xc1,0x3c,0xb9,0xa5,0xee,0x4a,0xe7, -0xc8,0xf4,0x57,0x4b,0xe3,0xbf,0x02,0x5f,0xf8,0x0f,0x56,0xfb,0x25,0xd8,0xf3,0x61, -0x93,0x2d,0x05,0xca,0x8c,0x2c,0x8b,0xfd,0x08,0xee,0x3d,0xeb,0x9a,0xaf,0x89,0xab, -0x4a,0x74,0x26,0xe9,0xd4,0x56,0x68,0xf2,0x65,0x17,0x07,0xcb,0x2d,0xc2,0xac,0x69, -0xfa,0x85,0xce,0x95,0x7b,0x0d,0xdd,0x9c,0xef,0x6d,0x73,0x0b,0x6e,0x8e,0x58,0xdb, -0x05,0x4d,0x57,0xa2,0xb3,0x4d,0xc5,0xa7,0x1d,0x1a,0x25,0x3b,0x6a,0x8f,0xaa,0xfe, -0x13,0xfc,0x4d,0x8f,0xc7,0x9a,0x61,0x86,0xe3,0x6c,0x5a,0xb5,0xb2,0x8f,0x3a,0x31, -0xc0,0x91,0x7f,0xbe,0xbe,0xde,0xa3,0xb1,0xfa,0x8a,0xef,0xc5,0x7c,0x59,0xe1,0x3f, -0x12,0xdc,0x78,0x47,0xc4,0x16,0x7a,0xad,0xb1,0x25,0xe0,0x6f,0x99,0x33,0xfe,0xb1, -0x0f,0xde,0x53,0xf5,0x19,0xaf,0xb2,0xf4,0xeb,0xd8,0x75,0x2b,0x0b,0x7b,0xbb,0x77, -0x12,0x41,0x3c,0x6b,0x24,0x6c,0x3a,0x15,0x23,0x20,0xd7,0xeb,0x39,0x16,0x64,0xf1, -0xd4,0x5c,0x2a,0x3f,0x7e,0x3b,0xf9,0xae,0x8c,0xfa,0x5c,0x1d,0x77,0x5a,0x16,0x96, -0xe8,0xb3,0x48,0x4e,0xd1,0x93,0x41,0xaf,0x29,0xf8,0xf9,0xe3,0x99,0x3c,0x3f,0xa2, -0x45,0xa4,0xd9,0xc8,0x52,0xf3,0x50,0x07,0x7b,0x29,0xe5,0x22,0x1d,0x7f,0x3e,0x9f, -0x4c,0xd7,0xb5,0x8b,0xc4,0xc3,0x07,0x46,0x55,0xa7,0xb2,0x3a,0xea,0xd4,0x54,0xa0, -0xe6,0xfa,0x1c,0xff,0x00,0xc5,0x1f,0x8e,0xb2,0x2c,0xb3,0x69,0x5e,0x1b,0x94,0x2e, -0xdc,0xa4,0xba,0x82,0xf3,0xcf,0x71,0x1f,0xff,0x00,0x15,0xf9,0x7a,0xd7,0x87,0x4f, -0x3c,0xb7,0x33,0x3c,0xb3,0x48,0xf2,0xca,0xec,0x59,0x9d,0xd8,0xb3,0x31,0x3d,0x49, -0x26,0x99,0x45,0x7e,0x39,0x8d,0xc7,0xd7,0xc7,0xd4,0xe7,0xaa,0xfd,0x17,0x44,0x7c, -0xb5,0x5a,0xd3,0xac,0xef,0x20,0xa2,0x8a,0x2b,0xce,0x30,0x0a,0x2b,0xba,0xf0,0xbf, -0xc1,0x8f,0x13,0x78,0xa2,0x14,0xb8,0x4b,0x64,0xb0,0xb5,0x7e,0x56,0x5b,0xc6,0x29, -0xb8,0x7a,0x85,0x00,0x9f,0xd2,0xbb,0x28,0x3f,0x66,0x5b,0xb6,0x51,0xe7,0xeb,0xd1, -0x21,0xee,0x23,0xb6,0x2d,0xfa,0x96,0x15,0xeb,0xd1,0xca,0x31,0xd5,0xd7,0x34,0x29, -0xbb,0x79,0xe9,0xf9,0x9d,0x31,0xc3,0x56,0x9a,0xba,0x89,0xe2,0x74,0x57,0xb9,0x37, -0xec,0xc6,0xf8,0xf9,0x7c,0x42,0x3f,0x1b,0x4f,0xfe,0xce,0xaa,0x5c,0x7e,0xcc,0xfa, -0x8a,0xa9,0xf2,0x35,0xab,0x59,0x0f,0x61,0x24,0x2c,0x9f,0xc8,0x9a,0xdd,0xe4,0x59, -0x82,0xff,0x00,0x97,0x7f,0x8a,0xff,0x00,0x32,0xfe,0xa7,0x5d,0x7d,0x93,0xc6,0x28, -0xaf,0x47,0xd4,0xbe,0x01,0x78,0xb2,0xc4,0x33,0x43,0x05,0xb5,0xf2,0x8f,0xf9,0xe1, -0x38,0xcf,0xe4,0xc0,0x57,0x15,0xac,0x78,0x6b,0x56,0xf0,0xfb,0xed,0xd4,0xb4,0xdb, -0x9b,0x2e,0x70,0x1a,0x68,0xc8,0x53,0xf4,0x3d,0x0d,0x79,0xd5,0xb0,0x58,0x9c,0x3e, -0xb5,0x69,0xb5,0xf2,0x30,0x95,0x2a,0x90,0xf8,0xa3,0x63,0xac,0xf8,0x1d,0xa4,0x0d, -0x57,0xe2,0x25,0x83,0x32,0x6e,0x8e,0xd5,0x5e,0xe1,0xbd,0xb0,0x30,0xa7,0xfe,0xfa, -0x65,0xaf,0xab,0x07,0x4a,0xf0,0x8f,0xd9,0x9f,0x48,0x05,0xb5,0x9d,0x51,0x97,0xfb, -0x96,0xc8,0x7f,0xf1,0xe6,0xff,0x00,0xd9,0x6b,0xde,0x2b,0xf4,0xce,0x1d,0xa3,0xec, -0xb0,0x2a,0x5f,0xcc,0xdb,0xfd,0x3f,0x43,0xe8,0x30,0x30,0xe5,0xa3,0x7e,0xe1,0x45, -0x14,0x57,0xd3,0x9e,0x80,0x55,0x2d,0x66,0x4f,0x2b,0x4a,0xbb,0x6f,0x48,0xcd,0x5d, -0xac,0x7f,0x16,0xcb,0xe4,0x78,0x7a,0xf9,0xff,0x00,0xe9,0x99,0xac,0xea,0x3b,0x41, -0xb2,0x64,0xed,0x16,0xcf,0x83,0x7e,0x27,0xcf,0xe7,0x78,0xa6,0xf4,0x83,0x9c,0x12, -0x3f,0x5a,0xf9,0xc3,0xe2,0xbc,0x5f,0xda,0x1a,0xa6,0x95,0x65,0xb7,0x79,0xb8,0xbd, -0x82,0x1d,0x9d,0x77,0x6e,0x91,0x57,0x1f,0xad,0x7d,0x01,0xe3,0xa9,0xbc,0xdd,0x7a, -0xf5,0xb3,0x9f,0x9c,0x8a,0xf1,0x3b,0xa8,0x3f,0xb4,0xfe,0x36,0xfc,0x3b,0xb2,0xed, -0x37,0x88,0xf4,0xe4,0xfa,0x8f,0xb4,0xc7,0xfe,0x15,0xf9,0xde,0x54,0xb9,0xb1,0x2d, -0xf9,0xfe,0xa7,0xe3,0x33,0x5e,0xd7,0x36,0xa4,0xbf,0xbc,0x7e,0xb6,0xff,0x00,0x61, -0x5a,0xff,0x00,0xcf,0xba,0xfe,0x54,0x56,0xad,0x15,0xfa,0x2f,0x2a,0x3f,0x66,0xb2, -0x1f,0x45,0x14,0x55,0x94,0x14,0xd2,0x69,0xd5,0xc8,0xfc,0x55,0xf1,0x6f,0xfc,0x21, -0x1e,0x01,0xd6,0xb5,0x75,0x60,0xb3,0xc3,0x09,0x48,0x33,0x8f,0xf5,0xad,0xf2,0xa7, -0x07,0xaf,0x24,0x1c,0x7b,0x56,0x75,0x26,0xa9,0xc1,0xce,0x5b,0x23,0x3a,0x93,0x54, -0xa0,0xe7,0x2d,0x96,0xa7,0xc8,0x5f,0x1f,0xbc,0x5f,0xff,0x00,0x09,0x8f,0xc4,0xfd, -0x4e,0x48,0xa4,0x2f,0x69,0x64,0x45,0x94,0x18,0x24,0x8c,0x26,0x77,0x11,0xf5,0x62, -0xdf,0xa5,0x7b,0xc7,0xec,0xaf,0xe1,0x1f,0xec,0x7f,0x08,0x4d,0xab,0x4a,0x98,0x9a, -0xf9,0xfe,0x52,0x47,0x3b,0x05,0x7c,0xa9,0xa0,0x69,0x73,0xf8,0x83,0x5d,0xb5,0xb3, -0x8c,0x19,0x66,0xb9,0x98,0x2f,0xa9,0x24,0x9e,0x4d,0x7e,0x85,0x78,0x67,0x45,0x8b, -0xc3,0xfa,0x0d,0x8e,0x9f,0x12,0x85,0x4b,0x78,0x95,0x30,0x3d,0x40,0xe6,0xbe,0x27, -0x28,0x83,0xc5,0xe3,0x27,0x8a,0x9f,0x4f,0xcd,0xff,0x00,0xc0,0x3e,0x27,0x23,0x84, -0xb1,0x58,0x9a,0x98,0xc9,0xff,0x00,0x57,0x34,0xc5,0x2d,0x14,0x57,0xdd,0x1f,0x74, -0x14,0x51,0x45,0x00,0x32,0x49,0x16,0x18,0xd9,0xdd,0x82,0x22,0x82,0x59,0x98,0xe0, -0x01,0xea,0x6b,0xe0,0x7f,0xda,0x6b,0xfe,0x0a,0xd3,0xe0,0xaf,0x85,0x9a,0x95,0xe7, -0x87,0xbe,0x1e,0x69,0xc9,0xe3,0xcd,0x72,0xdd,0x8c,0x73,0x5f,0xb4,0xa6,0x3d,0x36, -0x17,0x07,0x95,0x0e,0x3e,0x69,0x88,0xff,0x00,0x67,0x0b,0xfe,0xd7,0x5a,0xe2,0xbf, -0xe0,0xad,0x3f,0xb5,0xed,0xe7,0x84,0xed,0x62,0xf8,0x37,0xe1,0x3b,0xf6,0xb6,0xbe, -0xd4,0x2d,0xc5,0xc7,0x88,0x6e,0xa0,0x7c,0x3c,0x76,0xef,0xfe,0xae,0xd8,0x10,0x78, -0x2e,0x3e,0x66,0xff,0x00,0x64,0xa8,0xe8,0xc6,0xbe,0x5a,0xfd,0x8a,0x7f,0xe0,0x9d, -0x9a,0xff,0x00,0xed,0x53,0xa7,0xc9,0xe2,0x9d,0x5f,0x55,0x3e,0x15,0xf0,0x3c,0x53, -0x18,0x12,0xed,0x21,0xf3,0x2e,0x6f,0x5d,0x71,0xb9,0x61,0x52,0x40,0x0a,0xbd,0x0b, -0xb6,0x46,0x78,0x00,0xe0,0xe1,0x92,0xfc,0x8c,0xef,0x1a,0xff,0x00,0xc1,0x51,0x7f, -0x68,0x5f,0x17,0xcd,0x37,0x91,0xe2,0xeb,0x7f,0x0e,0xdb,0x3b,0x16,0x5b,0x7d,0x1b, -0x4f,0x86,0x30,0x83,0xb0,0x0e,0xea,0xcf,0xf9,0xb5,0x7d,0x1d,0xff,0x00,0x04,0xc4, -0xf8,0xc5,0xf1,0xb7,0xf6,0x81,0xf8,0xe3,0x7d,0x71,0xe2,0x9f,0x88,0x1a,0xe6,0xad, -0xe0,0xff,0x00,0x0f,0xd8,0xbd,0xd5,0xe5,0xb5,0xc3,0x29,0x86,0x79,0xe4,0xcc,0x70, -0xc4,0xc7,0x6e,0x47,0x57,0x93,0x03,0xfe,0x79,0x57,0xc9,0xbf,0xb7,0x6f,0xc0,0x4f, -0x01,0xfe,0xcd,0x7f,0x18,0x6d,0xbc,0x0b,0xe0,0x8d,0x57,0x58,0xd5,0xde,0xd7,0x4f, -0x8e,0xe3,0x53,0x9f,0x57,0x9e,0x29,0x19,0x27,0x90,0x96,0x58,0xc0,0x8e,0x34,0x0b, -0x88,0xf6,0x31,0xce,0x7f,0xd6,0x0e,0x98,0xaf,0xd3,0xef,0xf8,0x25,0x5f,0xc1,0x81, -0xf0,0xbf,0xf6,0x5f,0xb1,0xd7,0x2e,0xad,0xfc,0xad,0x5f,0xc5,0xf3,0x9d,0x56,0x56, -0x3f,0x7b,0xec,0xff,0x00,0x72,0xdd,0x7d,0x86,0xd0,0x5b,0xfe,0xda,0x50,0x08,0x8f, -0xe3,0x97,0xfc,0x15,0x17,0xc0,0x9f,0x00,0x7e,0x2c,0xeb,0xfe,0x01,0xd7,0xfc,0x21, -0xe2,0x5b,0xbd,0x43,0x48,0x92,0x34,0x92,0xea,0xc4,0x5b,0xb4,0x32,0x07,0x89,0x24, -0x56,0x5d,0xd2,0x29,0xe8,0xe3,0xb7,0x50,0x6b,0xe8,0x3f,0xd9,0xdb,0xe3,0xe6,0x87, -0xfb,0x4a,0xfc,0x30,0xb3,0xf1,0xc7,0x87,0x6c,0xef,0xac,0x34,0xcb,0x99,0xe5,0xb7, -0x58,0x35,0x15,0x45,0x98,0x34,0x6d,0xb5,0xb2,0x15,0x98,0x63,0x3d,0x39,0xaf,0xc2, -0xdf,0xdb,0xb3,0xc7,0x76,0x9f,0x11,0xbf,0x6b,0x6f,0x89,0x5a,0xcd,0x84,0xbe,0x75, -0x90,0xd4,0xbe,0xc5,0x13,0x8e,0x84,0x5b,0xc6,0x90,0x12,0x3d,0x8b,0x46,0xc7,0xf1, -0xaf,0xd8,0xaf,0xf8,0x27,0x2f,0x81,0x67,0xf0,0x0f,0xec,0x75,0xf0,0xfa,0xd2,0xe5, -0x59,0x2e,0x2f,0xed,0xa4,0xd5,0x59,0x58,0x60,0x81,0x71,0x2b,0x4a,0x9f,0xf8,0xe3, -0x2d,0x03,0x4f,0x53,0xe9,0x19,0xa7,0x5b,0x78,0x9e,0x49,0x18,0x24,0x68,0xa5,0x99, -0x98,0xe0,0x00,0x3b,0xd7,0xc5,0xfe,0x2d,0xd7,0x5f,0xc4,0xde,0x25,0xd4,0x75,0x37, -0x27,0xfd,0x22,0x66,0x65,0x07,0xb2,0x74,0x51,0xf8,0x00,0x05,0x7d,0x29,0xf1,0xbf, -0xc4,0x5f,0xd8,0x1e,0x01,0xbc,0x54,0x70,0xb7,0x17,0xc4,0x5a,0x46,0x3d,0x43,0x7d, -0xff,0x00,0xfc,0x74,0x37,0xe9,0x5f,0x2a,0x57,0xe7,0x1c,0x51,0x8a,0xe6,0x9c,0x30, -0xeb,0xa6,0xaf,0xe7,0xb1,0xe1,0xe6,0x15,0x2f,0x25,0x4f,0xe6,0x14,0x51,0x45,0x7c, -0x29,0xe3,0x9a,0x5e,0x1a,0x92,0xc6,0x2d,0x7f,0x4f,0x93,0x52,0x25,0x6c,0x23,0x99, -0x5e,0x6d,0xab,0xb8,0x95,0x07,0x24,0x60,0x7a,0xe3,0x1f,0x8d,0x7d,0x2b,0x1f,0xc7, -0x9f,0x06,0xb0,0x03,0xed,0xf2,0xaf,0xd6,0xda,0x4f,0xf0,0xaf,0x96,0x28,0xaf,0x6b, -0x01,0x9b,0x56,0xcb,0xa3,0x28,0xd2,0x49,0xdf,0xbf,0xfc,0x39,0xd7,0x47,0x13,0x3a, -0x09,0xa8,0xad,0xcf,0xaa,0xcf,0xc7,0x5f,0x06,0x81,0x9f,0xed,0x37,0xff,0x00,0xc0, -0x69,0x3f,0xf8,0x9a,0xc7,0xd6,0x3f,0x68,0xcf,0x0e,0xda,0x44,0xc2,0xc6,0xde,0xef, -0x50,0x97,0xb0,0xd9,0xe5,0xaf,0xe2,0x4f,0x3f,0xa5,0x7c,0xd9,0x45,0x7a,0x53,0xe2, -0x6c,0x6c,0x95,0x92,0x8a,0xf9,0x7f,0xc1,0x37,0x79,0x85,0x67,0xb5,0x8e,0xa7,0xc7, -0x5f,0x11,0x35,0x5f,0x1e,0xdd,0xab,0xde,0x32,0xc3,0x69,0x19,0x26,0x1b,0x48,0xbe, -0xe2,0x7b,0x9f,0x53,0xee,0x7f,0x0c,0x57,0x2d,0x45,0x6b,0xe9,0x1e,0x12,0xd6,0xb5, -0xed,0xa7,0x4f,0xd2,0xee,0xae,0x91,0xba,0x3c,0x71,0x1d,0x9f,0xf7,0xd7,0x4f,0xd6, -0xbe,0x72,0x73,0xad,0x8b,0xa8,0xe5,0x2b,0xca,0x4f,0xe6,0x70,0xc9,0xce,0xac,0xae, -0xf5,0x66,0x45,0x69,0x78,0x7b,0xc3,0xb7,0xfe,0x29,0xd5,0x21,0xd3,0xf4,0xe8,0x0c, -0xd7,0x12,0x1f,0xf8,0x0a,0x0e,0xec,0xc7,0xb0,0x15,0xe9,0x5e,0x18,0xfd,0x9d,0x75, -0x7d,0x45,0xd2,0x4d,0x66,0xe2,0x3d,0x36,0x0e,0x09,0x8a,0x32,0x24,0x94,0x8f,0x4e, -0x38,0x1f,0x99,0xfa,0x57,0xb9,0x78,0x4f,0xc1,0x7a,0x57,0x82,0xec,0x3e,0xcb,0xa6, -0x5b,0x08,0xb3,0x83,0x24,0xad,0xcc,0x92,0x1f,0x56,0x6e,0xff,0x00,0x4e,0x83,0xb0, -0x15,0xf4,0x79,0x7f,0x0f,0xe2,0x31,0x12,0x52,0xc4,0x2e,0x48,0xfe,0x2f,0xfa,0xf3, -0x3b,0xa8,0x60,0xa7,0x37,0x79,0xe8,0x8a,0xfe,0x01,0xf0,0x5d,0xaf,0x81,0xbc,0x3f, -0x0e,0x9f,0x6e,0x7c,0xc9,0x4f,0xcf,0x3c,0xf8,0xc1,0x95,0xcf,0x53,0xf4,0xec,0x3d, -0x85,0x74,0xb4,0x94,0xb5,0xfa,0x7d,0x2a,0x51,0xa3,0x05,0x4e,0x0a,0xc9,0x1f,0x43, -0x18,0xa8,0xa5,0x15,0xb0,0x51,0x45,0x15,0xa9,0x41,0x5e,0x6f,0xf1,0xeb,0x5c,0xfe, -0xc9,0xf0,0x05,0xc4,0x0a,0xdb,0x65,0xbe,0x91,0x6d,0xd7,0x1e,0x99,0xdc,0xdf,0xa0, -0x23,0xf1,0xaf,0x47,0x3d,0x2b,0xe7,0x8f,0xda,0x4f,0x5b,0xfb,0x4e,0xbd,0xa6,0x69, -0x68,0xdf,0x25,0xac,0x26,0x67,0x03,0xfb,0xce,0x70,0x3f,0x20,0xbf,0xad,0x78,0x79, -0xd5,0x7f,0xab,0xe0,0x6a,0x49,0x6e,0xf4,0xfb,0xce,0x4c,0x5c,0xf9,0x28,0xc9,0x9e, -0x39,0x45,0x14,0x57,0xe3,0x67,0xca,0x85,0x7a,0x67,0xec,0xfb,0xa2,0xff,0x00,0x69, -0x78,0xec,0x5d,0xba,0x93,0x1d,0x84,0x0d,0x2e,0x7b,0x07,0x6f,0x95,0x41,0xfc,0x0b, -0x1f,0xc2,0xbc,0xce,0xbe,0x89,0xfd,0x9b,0x74,0x41,0x6b,0xe1,0xdd,0x47,0x54,0x65, -0x22,0x4b,0xc9,0xc4,0x4a,0x4f,0x42,0x91,0x8e,0x08,0xfc,0x59,0x87,0xe1,0x5e,0xf6, -0x47,0x43,0xdb,0xe3,0xe0,0x9e,0xcb,0x5f,0xbb,0xfe,0x09,0xd9,0x84,0x87,0x3d,0x68, -0xf9,0x6a,0x7b,0x08,0xe9,0x4b,0x45,0x15,0xfb,0x11,0xf5,0x21,0x48,0x4e,0x29,0x6a, -0x9e,0xad,0xa8,0xc5,0xa4,0xe9,0xb7,0x57,0xb3,0x9c,0x43,0x6f,0x13,0x4a,0xe7,0xd9, -0x41,0x27,0xf9,0x54,0xc9,0xa8,0xa6,0xde,0xc2,0x6e,0xda,0xb3,0xc3,0x3f,0x68,0x9f, -0x1b,0xb5,0xc5,0xdc,0x3e,0x1b,0xb5,0x90,0x88,0xa2,0x02,0x6b,0xbd,0xa7,0xef,0x31, -0xe5,0x50,0xfd,0x07,0xcd,0x8f,0x71,0xe9,0x5e,0x27,0x57,0x35,0x9d,0x52,0x7d,0x6f, -0x55,0xbb,0xd4,0x2e,0x4e,0x67,0xb9,0x95,0xa5,0x7f,0xa9,0x39,0xc7,0xd0,0x74,0xfc, -0x2a,0x9d,0x7e,0x25,0x98,0x62,0xe5,0x8d,0xc4,0xca,0xb3,0xdb,0xa7,0xa7,0x43,0xe4, -0xab,0xd5,0x75,0xaa,0x39,0x30,0xa2,0x8a,0x2b,0xce,0x30,0x3a,0x5f,0x87,0xde,0x0a, -0x9f,0xc7,0x5e,0x22,0x86,0xc2,0x32,0x63,0xb7,0x5f,0xde,0x5c,0x4c,0x07,0xdc,0x8f, -0xbf,0xe2,0x7a,0x0f,0xfe,0xb5,0x7d,0x71,0xa3,0x69,0x16,0x9a,0x16,0x9b,0x05,0x8d, -0x8c,0x2b,0x6f,0x6b,0x02,0xed,0x48,0xd0,0x71,0xf5,0x3e,0xa4,0xf5,0x27,0xa9,0xae, -0x13,0xe0,0x4f,0x84,0xd7,0xc3,0xde,0x0d,0x8a,0xf2,0x44,0x02,0xf3,0x52,0xc5,0xc3, -0x92,0x39,0x11,0xff,0x00,0xcb,0x31,0xf9,0x73,0xf5,0x63,0x5e,0x93,0x5f,0xad,0x64, -0x59,0x7c,0x70,0x98,0x75,0x52,0x4b,0xdf,0x9e,0xaf,0xc9,0x74,0x47,0xd2,0xe0,0xe8, -0x2a,0x54,0xd4,0x9e,0xec,0x4a,0x5a,0x28,0xaf,0xa6,0x3d,0x00,0xa2,0x8a,0x28,0x03, -0x8c,0xf8,0xb1,0xe1,0x58,0xbc,0x55,0xe0,0xbb,0xe8,0x76,0x03,0x75,0x6e,0x86,0xe2, -0xdd,0xb1,0xc8,0x75,0x19,0xc0,0xfa,0x8c,0x8f,0xc6,0xbe,0x47,0xaf,0xb9,0xe4,0x50, -0xe8,0x54,0x8c,0x82,0x30,0x6b,0xe2,0x0d,0x46,0x11,0x6f,0xa8,0xdd,0x42,0x3a,0x47, -0x2b,0xa0,0xfc,0x09,0x15,0xf9,0xd7,0x14,0xd0,0x8c,0x67,0x4e,0xb2,0xdd,0xdd,0x3f, -0x91,0xe1,0x66,0x30,0x49,0xc6,0x5d,0xca,0xf4,0x51,0x45,0x7c,0x21,0xe3,0x85,0x7d, -0x49,0xf0,0x17,0x5a,0x6d,0x57,0xe1,0xf5,0xb4,0x4e,0xe5,0xe4,0xb2,0x95,0xed,0xc9, -0x3e,0x83,0xe6,0x51,0xf8,0x2b,0x01,0xf8,0x57,0xcb,0x75,0xf4,0x27,0xec,0xcf,0x29, -0x3a,0x0e,0xb3,0x1f,0x65,0xba,0x56,0xfc,0xd3,0x1f,0xd2,0xbe,0xa7,0x86,0xea,0x38, -0x63,0x94,0x57,0x54,0xff,0x00,0xcc,0xf4,0x70,0x12,0x6a,0xb5,0xbb,0x9e,0xcc,0x6b, -0xe5,0x2f,0x8e,0x1a,0x9b,0xea,0x3f,0x11,0xb5,0x14,0x66,0x2d,0x1d,0xa8,0x48,0x23, -0x1e,0x80,0x28,0x27,0xff,0x00,0x1e,0x66,0xaf,0xab,0x3b,0x57,0xc8,0xdf,0x17,0x6d, -0x5a,0xd3,0xe2,0x3e,0xb8,0xad,0xd5,0xa6,0x12,0x0f,0xa3,0x28,0x23,0xf9,0xd7,0xd3, -0x71,0x3c,0xa4,0xb0,0x91,0x4b,0x67,0x2f,0xd1,0x9d,0xf9,0x83,0xfd,0xd2,0xf5,0x38, -0xfa,0x28,0xa2,0xbf,0x30,0x3e,0x7c,0x2b,0xb7,0xf8,0x35,0xa3,0xd9,0xeb,0x5e,0x3f, -0xb0,0x8a,0xf7,0x6b,0x45,0x18,0x69,0x96,0x37,0xe4,0x48,0xca,0x32,0xa3,0xf3,0xe7, -0xf0,0xae,0x22,0xac,0xe9,0xba,0x8d,0xce,0x91,0x7f,0x05,0xed,0xa4,0xcd,0x05,0xcc, -0x0e,0x1e,0x39,0x13,0xaa,0x91,0x5d,0x38,0x6a,0x91,0xa3,0x5e,0x15,0x26,0xae,0x93, -0x4e,0xc5,0xd3,0x92,0x8c,0xd4,0x9e,0xc7,0xdb,0xea,0x38,0xc5,0x3b,0x15,0xe2,0xbe, -0x10,0xfd,0xa3,0x2c,0xe7,0x8d,0x21,0xf1,0x0d,0xb3,0xda,0xcc,0x38,0x37,0x56,0xeb, -0xba,0x33,0xee,0x57,0xa8,0xfc,0x33,0x5e,0xa7,0xa3,0x78,0xbb,0x46,0xf1,0x0a,0x06, -0xd3,0xb5,0x2b,0x6b,0xbf,0x55,0x8e,0x41,0xb8,0x7d,0x57,0xa8,0xaf,0xd9,0x70,0xb9, -0x86,0x17,0x16,0x93,0xa5,0x35,0xe9,0xd7,0xee,0x3e,0xae,0x9d,0x7a,0x75,0x7e,0x16, -0x6b,0xe2,0x82,0x29,0x37,0x52,0xe6,0xbd,0x23,0x70,0xc7,0xe3,0x4c,0x9e,0xde,0x3b, -0x98,0xda,0x39,0x51,0x64,0x8d,0x86,0x19,0x1d,0x72,0x08,0xf4,0x22,0xa4,0xa2,0x95, -0x93,0xdc,0x2c,0x50,0xd2,0x74,0x2b,0x0d,0x06,0x29,0x62,0xd3,0xed,0x21,0xb3,0x8a, -0x49,0x0c,0xad,0x1c,0x08,0x15,0x4b,0x10,0x01,0x38,0x1f,0x41,0x57,0xe8,0xa2,0x94, -0x62,0xa2,0xad,0x15,0x64,0x24,0x92,0xd1,0x05,0x14,0x51,0x54,0x30,0xae,0x67,0xe2, -0x24,0xfe,0x47,0x85,0x2f,0x5b,0xa1,0xdb,0x8a,0xe9,0xab,0x88,0xf8,0xbd,0x71,0xf6, -0x7f,0x07,0xdc,0x1c,0xe3,0x3f,0xe1,0x5c,0xb8,0xa9,0x72,0xd0,0x9b,0xf2,0x66,0x35, -0x9d,0xa9,0xc9,0x9f,0x08,0x78,0xa6,0x5d,0xfa,0x9d,0xe3,0x67,0xf8,0xcd,0x79,0xb7, -0xc3,0x9b,0x15,0xd7,0x3f,0x6a,0xdf,0x86,0x16,0x6f,0xc8,0x1a,0xd4,0x73,0xe3,0xde, -0x25,0x69,0x47,0xea,0x95,0xdf,0x6b,0xaf,0xba,0x7b,0x86,0xf5,0x63,0x5c,0x9f,0xec, -0xe3,0x0b,0xea,0x3f,0xb6,0xaf,0xc3,0xb4,0x0b,0xb9,0x21,0x96,0xf6,0x66,0xf6,0x0b, -0x67,0x3e,0x0f,0xe6,0x45,0x7c,0x36,0x48,0xaf,0x56,0xe7,0xe4,0x38,0x15,0xed,0x33, -0x9a,0x5e,0xad,0x9f,0xab,0x7b,0x68,0xa5,0xcd,0x15,0xfa,0x21,0xfb,0x08,0xb4,0x51, -0x45,0x22,0xc4,0xcd,0x7c,0xcb,0xfb,0x60,0xf8,0xbc,0xee,0xd1,0xfc,0x33,0x0b,0xe0, -0x1c,0xdf,0x5c,0x80,0x4f,0xba,0xc6,0x3e,0x9f,0x7c,0xfe,0x02,0xbe,0x97,0x95,0xc4, -0x68,0xce,0xc4,0x2a,0xa8,0x24,0x92,0x70,0x00,0xaf,0xcf,0xaf,0x89,0xbe,0x2c,0x93, -0xc6,0xfe,0x3c,0xd6,0x35,0x56,0x72,0xf1,0x4b,0x39,0x8e,0x01,0x9c,0x85,0x89,0x7e, -0x54,0xc7,0xe0,0x33,0xf8,0xd7,0xce,0x67,0x98,0x8f,0x63,0x86,0xf6,0x6b,0x79,0x69, -0xf2,0xea,0x7c,0xc7,0x10,0x62,0x7d,0x96,0x17,0xd9,0x47,0x79,0xbb,0x7c,0xba,0x9e, -0x89,0xfb,0x2d,0x78,0x47,0xfb,0x6b,0xc6,0x8d,0xa9,0xcb,0x1e,0xe8,0x2c,0x17,0x70, -0x27,0xa6,0xf3,0xd2,0xbe,0xc4,0x1d,0x2b,0xca,0x3f,0x67,0x0f,0x08,0xff,0x00,0xc2, -0x37,0xf0,0xfe,0x09,0xe4,0x4d,0xb7,0x17,0xc7,0xce,0x62,0x47,0x38,0xed,0x5e,0xaf, -0x5d,0x19,0x3e,0x1f,0xd8,0x61,0x63,0x7d,0xe5,0xab,0xf9,0xff,0x00,0xc0,0x3d,0x0c, -0xab,0x0d,0xf5,0x6c,0x24,0x62,0xf7,0x7a,0xb1,0x68,0xa2,0x8a,0xf6,0xcf,0x5c,0x29, -0x09,0xa5,0xa4,0xc5,0x00,0x7f,0x37,0xdf,0xb5,0x6f,0x8c,0xaf,0x3c,0x7d,0xfb,0x4a, -0x7c,0x4c,0xd6,0xef,0x9c,0xc9,0x34,0xda,0xfd,0xe4,0x28,0x4f,0x55,0x8a,0x29,0x4c, -0x51,0x2f,0xe1,0x1c,0x68,0x3f,0x0a,0xfd,0x53,0xfd,0x82,0x7f,0x6c,0xcf,0x83,0xf6, -0x1f,0xb3,0x47,0x85,0xfc,0x31,0xa9,0xf8,0xa7,0x4c,0xf0,0xae,0xbb,0xe1,0xbb,0x13, -0x6f,0x77,0xa7,0x6a,0x93,0xad,0xb1,0x99,0x94,0xb3,0x19,0x62,0x67,0x20,0x49,0xbf, -0x24,0xe0,0x1c,0xe4,0x90,0x47,0x4a,0xf8,0x47,0xfe,0x0a,0x39,0xfb,0x2b,0x78,0x83, -0xe0,0x87,0xc7,0x0f,0x10,0xf8,0xa2,0x1d,0x3e,0x69,0xfc,0x11,0xe2,0x7b,0xf9,0x75, -0x1b,0x2d,0x4a,0x35,0xdd,0x1c,0x32,0xca,0xdb,0xe5,0x82,0x4c,0x0f,0x91,0x83,0xb3, -0x6d,0xcf,0x55,0x23,0x07,0x39,0x03,0xe4,0x43,0xc7,0x19,0xaa,0x22,0xf6,0x67,0xaf, -0x6b,0x7a,0xcd,0xcf,0xed,0x4b,0xfb,0x51,0x5c,0xea,0x1a,0x95,0xf2,0x58,0x0f,0x17, -0x78,0x83,0x32,0x5d,0x5d,0xca,0xa8,0xb6,0x76,0xaf,0x20,0x03,0x73,0x36,0x00,0x11, -0xc2,0x00,0xe7,0xfb,0x95,0xfa,0x69,0xfb,0x5b,0xff,0x00,0xc1,0x44,0x3e,0x1f,0x7c, -0x15,0xf8,0x50,0xfe,0x01,0xf8,0x43,0xac,0xda,0x78,0x83,0xc4,0xc7,0x4f,0x5d,0x32, -0xd2,0xe7,0x49,0x71,0x2d,0xa6,0x95,0x08,0x4f,0x2c,0x48,0x65,0x19,0x57,0x90,0x28, -0xf9,0x55,0x49,0xc1,0xc1,0x38,0xc6,0x0f,0xe3,0x6f,0x5a,0xf5,0x3f,0x80,0xff,0x00, -0xb3,0x47,0xc4,0x3f,0xda,0x3b,0xc4,0x91,0x69,0x3e,0x0b,0xd0,0x66,0xbc,0x8b,0x78, -0x17,0x3a,0x9c,0xe0,0xc7,0x65,0x6a,0x33,0xcb,0x4b,0x2e,0x30,0x31,0x9f,0xba,0x32, -0xc7,0xb0,0x34,0x09,0x17,0x3f,0x65,0xcf,0x80,0x7a,0xc7,0xed,0x37,0xf1,0xb7,0x43, -0xf0,0x8d,0x92,0xcc,0x6d,0x27,0x9b,0xed,0x3a,0xb5,0xf8,0xc9,0xfb,0x35,0xa2,0x90, -0x65,0x90,0x9e,0x79,0x3f,0x75,0x73,0xd5,0x99,0x6b,0xfa,0x2e,0xd2,0xb4,0xcb,0x6d, -0x13,0x4b,0xb4,0xd3,0xec,0xa2,0x58,0x2c,0xed,0x21,0x48,0x21,0x89,0x06,0x02,0x22, -0xa8,0x55,0x03,0xe8,0x00,0xaf,0x0f,0xfd,0x90,0xff,0x00,0x64,0x5f,0x0d,0x7e,0xc9, -0xbe,0x00,0x1a,0x4e,0x98,0xcb,0xaa,0x78,0x86,0xfb,0x6c,0x9a,0xb6,0xb6,0xf1,0xed, -0x7b,0x99,0x00,0xe1,0x50,0x73,0xb2,0x35,0xe7,0x6a,0xe4,0xf5,0x24,0x92,0x6b,0xdd, -0x2f,0x6f,0x22,0xb0,0xb4,0x9e,0xe6,0x76,0xd9,0x0c,0x31,0xb4,0x8e,0xc7,0xb2,0x81, -0x92,0x7f,0x2a,0x87,0x24,0x95,0xd9,0x5b,0x23,0xe7,0x6f,0xda,0x2f,0xc4,0x7f,0xda, -0x1e,0x26,0xb5,0xd2,0xa3,0x6c,0xc7,0x61,0x16,0xe7,0x19,0xe3,0xcc,0x7c,0x1f,0xd1, -0x42,0xfe,0x75,0xe4,0x95,0xa1,0xe2,0x0d,0x62,0x4f,0x10,0x6b,0x97,0xfa,0x94,0xbf, -0x7e,0xea,0x66,0x97,0x1e,0x80,0x9e,0x07,0xe0,0x30,0x3f,0x0a,0xcf,0xaf,0xc4,0x31, -0xf8,0x87,0x8a,0xc5,0x4e,0xb7,0x77,0xf8,0x74,0x3e,0x4a,0xb5,0x4f,0x6b,0x51,0xcc, -0x28,0xa2,0xba,0x5f,0x87,0x1e,0x1f,0xff,0x00,0x84,0x9f,0xc6,0xba,0x5d,0x8b,0x2e, -0xe8,0x4c,0xa2,0x49,0x81,0xe9,0xb1,0x7e,0x66,0x07,0xeb,0x8c,0x7e,0x35,0xcb,0x46, -0x94,0xab,0x54,0x8d,0x28,0xef,0x27,0x6f,0xbc,0xce,0x31,0x73,0x92,0x8a,0xea,0x61, -0x49,0xa7,0xdd,0x43,0xfe,0xb2,0xda,0x64,0xff,0x00,0x7a,0x32,0x2a,0xb9,0x18,0x35, -0xf7,0x40,0x41,0x80,0x36,0x8c,0x56,0x37,0x88,0x3c,0x17,0xa3,0x78,0x9e,0xd9,0xe1, -0xd4,0x34,0xe8,0x27,0xdc,0x31,0xe6,0x6c,0x02,0x45,0xf7,0x0c,0x39,0x15,0xf7,0x15, -0x38,0x56,0x49,0x5e,0x9d,0x5b,0xbf,0x35,0xff,0x00,0x04,0xf5,0xe5,0x97,0x3b,0x7b, -0xb2,0x3e,0x30,0xa2,0xba,0x4f,0x88,0x3e,0x0e,0x97,0xc0,0xfe,0x26,0xb8,0xd3,0x5d, -0x8c,0x90,0xe0,0x4b,0x04,0xad,0xd5,0xe3,0x3d,0x09,0xf7,0x18,0x20,0xfb,0x8a,0xe6, -0xeb,0xe1,0xaa,0xd2,0x9d,0x1a,0x8e,0x9c,0xd5,0x9a,0xd0,0xf2,0x25,0x17,0x06,0xe2, -0xfa,0x05,0x74,0x7e,0x0d,0xf1,0xde,0xab,0xe0,0x9d,0x4a,0x3b,0x8b,0x2b,0x87,0x36, -0xfb,0x81,0x96,0xd5,0x98,0xf9,0x72,0xaf,0x70,0x47,0x63,0xef,0xd4,0x57,0x39,0x45, -0x14,0xaa,0xce,0x8c,0xd5,0x4a,0x6e,0xcd,0x04,0x64,0xe0,0xf9,0xa3,0xb9,0xf7,0x06, -0x95,0xa8,0xc3,0xab,0xe9,0xb6,0xd7,0xb6,0xed,0xba,0x0b,0x88,0xd6,0x54,0x3e,0xc4, -0x64,0x7f,0x3a,0xb7,0x5c,0x27,0xc1,0x2b,0xef,0xb7,0x7c,0x37,0xd2,0x49,0x39,0x68, -0x83,0xc2,0x7f,0xe0,0x2e,0x40,0xfd,0x31,0x5d,0xdd,0x7e,0xe5,0x86,0xab,0xed,0xe8, -0x42,0xaf,0x74,0x9f,0xde,0x8f,0xaf,0xa7,0x2e,0x78,0x29,0x77,0x0a,0x28,0xa2,0xba, -0x4d,0x02,0x8a,0x28,0xa0,0x04,0x27,0x00,0xd7,0xc7,0x1f,0x11,0x35,0xcf,0xf8,0x48, -0xbc,0x6d,0xac,0x5f,0x2b,0x07,0x8d,0xa7,0x64,0x8c,0x8e,0x85,0x17,0xe5,0x53,0xf8, -0x80,0x0f,0xe3,0x5f,0x54,0x78,0xf7,0x5d,0xff,0x00,0x84,0x73,0xc1,0xfa,0xb6,0xa0, -0xae,0x12,0x48,0xad,0xdb,0xcb,0x2d,0xd3,0x79,0x18,0x4f,0xfc,0x78,0x8a,0xf8,0xcc, -0x0c,0x0c,0x57,0xc0,0x71,0x4d,0x7d,0x29,0xd0,0x5e,0xaf,0xf2,0x5f,0xa9,0xe2,0xe6, -0x33,0xf8,0x60,0x2d,0x14,0x51,0x5f,0x9f,0x1e,0x20,0x57,0xd8,0xdf,0x0e,0xb4,0x4f, -0xec,0x0f,0x04,0xe8,0xf6,0x44,0x61,0xd6,0xdd,0x5d,0xc7,0xfb,0x4d,0xf3,0x37,0xea, -0xc6,0xbe,0x53,0xf0,0x5e,0x91,0xfd,0xbf,0xe2,0xcd,0x27,0x4f,0xc6,0x56,0x7b,0x94, -0x0e,0x3f,0xd9,0x07,0x2d,0xfa,0x03,0x5f,0x68,0x28,0x01,0x40,0x1c,0x01,0x5f,0x7f, -0xc2,0xd4,0x3f,0x89,0x5d,0xfa,0x7e,0xaf,0xf4,0x3d,0xac,0xba,0x1f,0x14,0xfe,0x41, -0x4b,0x45,0x15,0xfa,0x09,0xed,0x85,0x79,0xb7,0xc7,0xed,0x63,0xfb,0x2f,0xe1,0xfc, -0xf0,0xa9,0x2b,0x25,0xf4,0xc9,0x6e,0xa4,0x7a,0x67,0x73,0x7e,0x88,0x47,0xe3,0x5e, -0x93,0x5e,0x17,0xfb,0x4e,0x6a,0x0e,0xb1,0xe8,0x36,0x4a,0x7e,0x46,0x32,0xcc,0xc3, -0xdc,0x6d,0x03,0xf9,0xb5,0x78,0xd9,0xc5,0x57,0x47,0x01,0x56,0x4b,0xb5,0xbe,0xfd, -0x0e,0x5c,0x54,0xb9,0x28,0xc9,0x9e,0x11,0x45,0x14,0x57,0xe3,0x07,0xca,0x05,0x5e, -0xd0,0xb4,0xc6,0xd6,0xb5,0xab,0x0d,0x3d,0x0e,0x1a,0xea,0x74,0x87,0x3e,0x9b,0x88, -0x19,0xaa,0x35,0xda,0x7c,0x1b,0xb4,0x5b,0xdf,0x89,0x3a,0x2a,0x3f,0xdd,0x57,0x79, -0x3f,0x15,0x8d,0x88,0xfd,0x40,0xae,0xac,0x2d,0x3f,0x6d,0x5e,0x14,0xdf,0x56,0x97, -0xe2,0x69,0x4e,0x3c,0xd3,0x8c,0x7c,0xcf,0xac,0xad,0xa0,0x8e,0xd6,0xde,0x28,0x62, -0x50,0x91,0x46,0xa1,0x11,0x47,0x40,0x00,0xc0,0x02,0xa5,0xa4,0x14,0xb5,0xfb,0xaa, -0x49,0x2b,0x23,0xec,0x42,0x8a,0x28,0xa6,0x01,0x45,0x14,0x50,0x04,0x73,0x38,0x86, -0x27,0x76,0x38,0x55,0x04,0x93,0xf8,0x57,0xc3,0xd7,0x93,0x7d,0xa6,0xf2,0x79,0xbf, -0xe7,0xa4,0x8c,0xff,0x00,0x99,0xcd,0x7d,0x79,0xf1,0x37,0x5a,0x5d,0x07,0xc0,0xba, -0xc5,0xd1,0x38,0x73,0x01,0x8a,0x3c,0x1e,0x77,0x3f,0xca,0x3f,0x9e,0x7f,0x0a,0xf8, -0xf6,0xbf,0x3a,0xe2,0x9a,0xa9,0xce,0x95,0x25,0xd1,0x36,0x78,0x59,0x8c,0xb5,0x8c, -0x42,0x8a,0x28,0xaf,0x84,0x3c,0x70,0xaf,0xa1,0xff,0x00,0x66,0x98,0x36,0xf8,0x6b, -0x56,0x97,0x04,0x6f,0xbb,0x0b,0x9f,0xa2,0x0f,0xf1,0xaf,0x9e,0x3a,0xd7,0xd5,0x5f, -0x02,0xf4,0xa6,0xd3,0x3e,0x1d,0x58,0x3b,0xae,0xd9,0x2e,0x9d,0xee,0x08,0xf6,0x27, -0x0b,0xff,0x00,0x8e,0x81,0x5f,0x55,0xc3,0x74,0xdc,0xf1,0xdc,0xdd,0x93,0xff,0x00, -0x23,0xd1,0xc0,0x46,0xf5,0xaf,0xd9,0x1e,0x81,0x8e,0x2b,0xc3,0xbf,0x68,0x6f,0x02, -0xcd,0x71,0xe4,0xf8,0x8e,0xce,0x33,0x20,0x89,0x04,0x57,0x61,0x47,0x21,0x73,0xf2, -0xbf,0xe1,0x9c,0x1f,0xc3,0xde,0xbd,0xc4,0x53,0x66,0x85,0x27,0x8d,0xa3,0x91,0x16, -0x44,0x71,0xb5,0x95,0x86,0x41,0x1e,0x86,0xbf,0x46,0xc7,0x60,0xe1,0x8e,0xa1,0x2a, -0x33,0xeb,0xf8,0x33,0xdd,0xad,0x49,0x56,0x83,0x83,0x3e,0x17,0xa2,0xbd,0xc7,0xe2, -0x1f,0xec,0xff,0x00,0x20,0x96,0x5b,0xff,0x00,0x0d,0x60,0xa3,0x65,0x9b,0x4f,0x76, -0xc1,0x53,0xff,0x00,0x4c,0xd8,0xff,0x00,0x23,0xef,0xcf,0x41,0x5e,0x2d,0x7f,0xa7, -0x5d,0x69,0x57,0x2f,0x6f,0x79,0x6f,0x2d,0xac,0xe9,0xf7,0xa3,0x95,0x0a,0xb0,0xfc, -0x0d,0x7e,0x43,0x8c,0xcb,0xf1,0x18,0x19,0xb8,0xd5,0x8e,0x9d,0xfa,0x33,0xe6,0x2a, -0xd0,0x9d,0x17,0x69,0x22,0xbd,0x14,0x51,0x5e,0x69,0x80,0x52,0xab,0x14,0x60,0xca, -0x4a,0xb0,0x39,0x04,0x1c,0x11,0x49,0x45,0x34,0xed,0xaa,0x03,0xab,0xd1,0xbe,0x29, -0xf8,0xa7,0x41,0xda,0xb6,0xba,0xcd,0xc3,0x46,0x08,0xfd,0xdd,0xc1,0xf3,0x94,0x8f, -0x4f,0x9b,0x24,0x0f,0xa6,0x2b,0xd1,0x34,0x0f,0xda,0x56,0x65,0x65,0x4d,0x6b,0x4a, -0x57,0x52,0x79,0x9a,0xc9,0x88,0x20,0x7f,0xb8,0xc7,0x9f,0xfb,0xe8,0x57,0x88,0x51, -0x5e,0xae,0x1f,0x35,0xc6,0x61,0xbf,0x87,0x51,0xdb,0xb3,0xd5,0x7e,0x27,0x4c,0x31, -0x35,0x69,0xfc,0x32,0x3e,0xc3,0xf0,0xc7,0xc4,0x9f,0x0f,0xf8,0xb8,0x2a,0xe9,0xf7, -0xe8,0x6e,0x08,0xcf,0xd9,0xa5,0xf9,0x25,0x1f,0xf0,0x13,0xd7,0xf0,0xcd,0x74,0xf9, -0xaf,0x85,0x91,0xda,0x37,0x57,0x46,0x2a,0xca,0x72,0x18,0x1c,0x10,0x6b,0xd6,0x7e, -0x1c,0xfc,0x75,0xbe,0xd1,0x25,0x8a,0xc7,0x5e,0x77,0xbf,0xd3,0xce,0x14,0x5c,0x9e, -0x66,0x8b,0xeb,0xfd,0xe1,0xf5,0xe7,0xeb,0xd2,0xbe,0xcb,0x01,0xc4,0xb0,0xaa,0xd5, -0x3c,0x52,0xe5,0x7d,0xd6,0xdf,0x3e,0xc7,0xab,0x47,0x1e,0xa4,0xf9,0x6a,0x2b,0x1f, -0x48,0xd1,0x50,0x59,0x5e,0xc1,0xa8,0x5a,0xc5,0x73,0x6d,0x2a,0xcf,0x6f,0x2a,0x87, -0x8e,0x44,0x39,0x56,0x53,0xd0,0x83,0x53,0xd7,0xdb,0xa6,0x9a,0xba,0x3d,0x7d,0xc2, -0x8a,0x28,0xa6,0x01,0x5e,0x5f,0xf1,0xfa,0xf4,0xda,0xf8,0x48,0xa8,0xfe,0x2c,0xd7, -0xa8,0x57,0x8a,0xfe,0xd2,0xd7,0x5e,0x57,0x87,0xe3,0x4c,0xff,0x00,0x09,0x38,0xaf, -0x2f,0x33,0x97,0x2e,0x12,0xa3,0xf2,0x38,0xb1,0xb2,0xe5,0xc3,0xcd,0xf9,0x1f,0x18, -0x6b,0x32,0x65,0x65,0x6e,0xe4,0x93,0x55,0xff,0x00,0x62,0x7b,0x51,0xaa,0x7e,0xd9, -0x36,0xcf,0x8c,0x8b,0x2d,0x16,0xfa,0xe7,0xe8,0x49,0x8a,0x3c,0xff,0x00,0xe4,0x43, -0xf9,0xd1,0xad,0xbe,0xdb,0x69,0x0f,0xb1,0xad,0x6f,0xf8,0x27,0x95,0x9f,0xdb,0x3f, -0x6a,0x3f,0x15,0x5e,0xe3,0x22,0xd7,0xc3,0x72,0xc5,0xbb,0xd0,0xc9,0x73,0x01,0xff, -0x00,0xda,0x66,0xbe,0x63,0x21,0x8f,0xbd,0x73,0xf2,0xcc,0x8d,0x73,0xe7,0x09,0xf6, -0x4c,0xfd,0x29,0xdb,0x45,0x1c,0xd1,0x5f,0x79,0x73,0xf5,0xeb,0x21,0xd4,0x51,0x49, -0x48,0xa3,0xcd,0x3f,0x68,0x5f,0x18,0x9f,0x07,0xfc,0x31,0xd4,0xa4,0x85,0xf6,0x5d, -0xdf,0x62,0xc6,0x03,0xe8,0x5f,0x3b,0x8f,0xe0,0x81,0x8f,0xd4,0x0a,0xf8,0xeb,0xc0, -0x3e,0x1d,0x93,0xc5,0x3e,0x2c,0xd3,0x74,0xd8,0xd7,0x3e,0x6c,0xca,0x1b,0xd8,0x67, -0x9a,0xf5,0x7f,0xda,0xdb,0xc6,0x1f,0xda,0xbe,0x30,0xb2,0xd0,0x61,0x7c,0xc1,0xa6, -0xc3,0xe6,0x4a,0x01,0xe0,0xca,0xfe,0xbe,0xe1,0x40,0xff,0x00,0xbe,0xab,0x43,0xf6, -0x4b,0xf0,0x7f,0xda,0xb5,0x7b,0xdd,0x76,0x64,0xca,0x5b,0x2f,0x97,0x11,0x3f,0xde, -0x3d,0x6b,0xe0,0xb1,0xcd,0xe6,0x19,0x8c,0x68,0x2d,0x96,0x9f,0xe6,0x7c,0x06,0x2d, -0xbc,0xc7,0x35,0x54,0x57,0xc3,0x1d,0x3e,0xed,0x59,0xf5,0x0e,0x9f,0x65,0x1e,0x9d, -0x63,0x6f,0x6d,0x12,0x85,0x8e,0x14,0x08,0xa0,0x7a,0x01,0x8a,0xb3,0x48,0x3a,0x52, -0xd7,0xde,0x24,0x92,0xb2,0x3e,0xf9,0x2b,0x2b,0x20,0xa2,0x8a,0x29,0x8c,0x2b,0xf2, -0xdf,0xf6,0xd7,0xff,0x00,0x82,0x9b,0x78,0xf3,0xe1,0x1f,0xed,0x0d,0xa9,0xf8,0x43, -0xe1,0xcc,0x9a,0x4b,0xe8,0xfa,0x0c,0x49,0x69,0x7d,0xfd,0xa1,0x69,0xf6,0x81,0x3d, -0xe6,0x37,0x49,0x82,0x19,0x59,0x42,0x6e,0x09,0x80,0x7a,0xab,0x57,0xea,0x2c,0xb2, -0xa4,0x31,0xb3,0xc8,0xea,0x88,0xa0,0x96,0x66,0x38,0x00,0x7a,0x93,0x5f,0x84,0x3f, -0xf0,0x51,0x9f,0xd9,0xb7,0xc4,0x9f,0x0a,0xbe,0x3b,0xf8,0xa7,0xc5,0xe2,0xde,0x4d, -0x4b,0xc1,0xbe,0x27,0xd4,0x65,0xd4,0xad,0x75,0x8b,0x71,0xbe,0x28,0xe5,0x99,0x8b, -0xc9,0x04,0x84,0x67,0x63,0x2b,0xb3,0x63,0x38,0xdc,0xb8,0x23,0xb8,0x0d,0x09,0x9f, -0x6d,0x7e,0xc1,0xff,0x00,0xb5,0xcf,0xc4,0xef,0xdb,0x5b,0xc4,0xde,0x24,0xd0,0xbc, -0x73,0xe1,0x9f,0x07,0xcf,0xe0,0x9d,0x2e,0xc5,0x5f,0x51,0x78,0x74,0xf9,0x77,0x4d, -0x2c,0x84,0x88,0x62,0xdb,0x24,0xce,0x9c,0xec,0x91,0x89,0xdb,0xc0,0x4c,0x63,0x90, -0x47,0xb1,0xf8,0xbf,0xfe,0x09,0x9f,0xfb,0x3c,0xf8,0xc2,0xe9,0xae,0x64,0xf0,0x2a, -0xe9,0x13,0x39,0x25,0x8e,0x91,0x79,0x35,0xb2,0x1c,0xff,0x00,0xb0,0x1b,0x68,0xfc, -0x00,0xaf,0x84,0xbf,0xe0,0x93,0xbf,0xb5,0x1f,0x82,0x3e,0x09,0xea,0xfe,0x2e,0xf0, -0x97,0x8d,0xb5,0x2b,0x7f,0x0f,0x45,0xe2,0x09,0x2d,0xee,0x2c,0xb5,0x6b,0xaf,0x92, -0x01,0x24,0x61,0xd5,0xa2,0x96,0x4e,0x88,0x08,0x60,0x54,0x9e,0x33,0xbf,0x24,0x64, -0x67,0xf5,0xef,0x4a,0xf1,0x66,0x89,0xad,0xdb,0x47,0x71,0xa7,0xeb,0x36,0x17,0xf0, -0x48,0x01,0x49,0x6d,0xae,0x92,0x45,0x61,0xec,0x54,0x90,0x68,0x04,0x7c,0xe9,0xe1, -0x0f,0xf8,0x26,0x9f,0xec,0xf1,0xe0,0xeb,0x85,0xb8,0x8f,0xc0,0x51,0xea,0xf3,0x29, -0x05,0x5b,0x58,0xbc,0x9a,0xe5,0x47,0xfc,0x01,0x9f,0x69,0xfc,0x41,0xaf,0xa4,0x34, -0x2f,0x0f,0x69,0x7e,0x18,0xd2,0xe0,0xd3,0x74,0x7d,0x3a,0xd7,0x4a,0xd3,0xe0,0x1b, -0x62,0xb4,0xb2,0x85,0x61,0x89,0x07,0xa0,0x55,0x00,0x0a,0xd0,0x0c,0x18,0x02,0x08, -0x20,0xf7,0x14,0x64,0x1a,0x43,0x16,0xbc,0xdb,0xe3,0xcf,0x88,0xff,0x00,0xb1,0x3c, -0x0d,0x35,0xb4,0x6d,0x89,0xf5,0x17,0x16,0xeb,0x83,0xc8,0x5e,0xae,0x7e,0x98,0x18, -0xff,0x00,0x81,0x0a,0xf4,0x83,0xc0,0xaf,0x99,0x7f,0x68,0x4f,0x10,0x9d,0x5f,0xc6, -0x69,0xa7,0xa3,0x66,0x1d,0x3a,0x30,0x84,0x7f,0xd3,0x46,0xc3,0x37,0xe9,0xb4,0x7e, -0x15,0xe0,0xe7,0x78,0x9f,0xaa,0xe0,0xa6,0xd6,0xf2,0xd1,0x7c,0xff,0x00,0xe0,0x1c, -0x58,0xba,0x9e,0xce,0x93,0xf3,0x3c,0xbe,0x8a,0x28,0xaf,0xc7,0x4f,0x97,0x0a,0xf7, -0x2f,0xd9,0xaf,0xc3,0xd9,0x93,0x55,0xd6,0xa4,0x5c,0xe3,0x16,0xb1,0x1f,0xfc,0x79, -0xff,0x00,0xf6,0x5a,0xf0,0xda,0xfa,0xff,0x00,0xe1,0x77,0x87,0x8f,0x86,0x7c,0x0f, -0xa5,0x5a,0x32,0x14,0x99,0xa2,0x13,0x4c,0x0f,0x50,0xef,0xf3,0x10,0x7e,0x99,0xc7, -0xe1,0x5f,0x55,0xc3,0x98,0x6f,0x6d,0x8c,0xf6,0x8f,0x68,0x2b,0xfc,0xf6,0x47,0xa3, -0x80,0xa7,0xcf,0x57,0x9b,0xb1,0xd6,0x51,0x49,0x4b,0x5f,0xab,0x1f,0x48,0x78,0x4f, -0xed,0x35,0xa7,0x28,0x3a,0x1d,0xfa,0xaf,0xcc,0x7c,0xd8,0x5d,0xbd,0x7e,0xe9,0x5f, -0xfd,0x9b,0xf3,0xaf,0x0a,0xaf,0xa3,0xff,0x00,0x69,0x38,0x03,0xf8,0x3a,0xc2,0x5c, -0x72,0x97,0xca,0x33,0xec,0x63,0x7f,0xf0,0x15,0xf3,0x85,0x7e,0x47,0xc4,0x30,0x50, -0xcc,0x26,0xd7,0x54,0x9f,0xe0,0x7c,0xce,0x39,0x5a,0xbb,0x0a,0x28,0xa2,0xbe,0x6c, -0xe0,0x3e,0x92,0xfd,0x9b,0xef,0x84,0xfe,0x0c,0xbc,0xb6,0xce,0x5a,0x0b,0xc6,0xe3, -0xd1,0x59,0x54,0x8f,0xd7,0x35,0xeb,0x35,0xe1,0x1f,0xb3,0x1d,0xd0,0x0d,0xe2,0x0b, -0x62,0xdc,0x91,0x0c,0x8a,0xbf,0xf7,0xd8,0x27,0xf9,0x57,0xbb,0x66,0xbf,0x64,0xc9, -0x6a,0x7b,0x4c,0x05,0x27,0xd9,0x5b,0xee,0x76,0x3e,0xa7,0x09,0x2e,0x6a,0x11,0x16, -0x8a,0x28,0xaf,0x70,0xec,0x0a,0x28,0xa4,0x3d,0x28,0x03,0xc8,0x3f,0x69,0x0d,0x6f, -0xec,0x9e,0x19,0xb1,0xd3,0x11,0x80,0x7b,0xd9,0xf7,0xb0,0xf5,0x44,0xe7,0xff,0x00, -0x42,0x2b,0xf9,0x57,0xce,0x95,0xe9,0x7f,0xb4,0x06,0xb8,0x75,0x4f,0x1e,0x3d,0xa0, -0x20,0xc5,0x61,0x0a,0xc2,0x30,0x73,0xf3,0x1f,0x99,0xbf,0xf4,0x20,0x3f,0x0a,0xf3, -0x4a,0xfc,0x77,0x3b,0xaf,0xf5,0x8c,0x74,0xda,0xd9,0x69,0xf7,0x7f,0xc1,0x3e,0x5b, -0x19,0x3e,0x7a,0xcf,0xcb,0x40,0xa2,0x8a,0x2b,0xc1,0x38,0xcf,0x55,0xfd,0x9d,0x74, -0x53,0x7f,0xe3,0x2b,0x8b,0xf6,0x40,0x62,0xb1,0xb7,0x24,0x37,0xa3,0xb9,0xda,0x3f, -0x40,0xf5,0xf4,0xb5,0x79,0x2f,0xec,0xe7,0xa2,0x7d,0x87,0xc1,0xf7,0x3a,0x83,0xc6, -0x04,0x97,0xd7,0x07,0x6b,0xf7,0x31,0xa7,0xca,0x07,0xfd,0xf5,0xbf,0xf3,0xaf,0x5a, -0xaf,0xd8,0x32,0x2a,0x1e,0xc3,0x01,0x0b,0xef,0x2d,0x7e,0xff,0x00,0xf8,0x16,0x3e, -0xa3,0x07,0x0e,0x4a,0x2b,0xcf,0x50,0xa2,0x8a,0x2b,0xe8,0x0e,0xd0,0xaf,0x00,0xfd, -0xa6,0xc6,0x35,0x3d,0x04,0xf6,0x30,0xcb,0xfc,0xd6,0xbd,0xfe,0xbc,0x67,0xf6,0x97, -0xd2,0xbc,0xed,0x0f,0x49,0xd4,0x42,0x92,0x6d,0xe7,0x68,0x4e,0x07,0x00,0x3a,0xe7, -0x27,0xf1,0x41,0xf9,0xd7,0x81,0x9e,0xc1,0xcf,0x2f,0xa8,0x97,0x93,0xfc,0x4e,0x2c, -0x62,0xbd,0x09,0x1f,0x3d,0x51,0x45,0x15,0xf8,0xf1,0xf2,0xe1,0x5d,0xa7,0xc1,0xcb, -0xc4,0xb1,0xf8,0x93,0xa2,0xbb,0x9c,0x2b,0xc8,0xf1,0x7e,0x2c,0x8c,0xa3,0xf5,0x22, -0xb8,0xba,0xb1,0xa7,0xdf,0x4d,0xa5,0xdf,0xdb,0x5e,0x5b,0xb6,0xd9,0xed,0xe4,0x59, -0x50,0xfa,0x32,0x9c,0x8f,0xe5,0x5d,0x38,0x6a,0xbe,0xc2,0xbc,0x2a,0xbf,0xb2,0xd3, -0xfb,0x99,0x74,0xe5,0xc9,0x35,0x2e,0xcc,0xfb,0x88,0x52,0xd6,0x4f,0x86,0x3c,0x43, -0x6d,0xe2,0x9d,0x0e,0xcf,0x53,0xb4,0x6c,0xc5,0x70,0x81,0xb6,0xe7,0x25,0x1b,0xba, -0x9f,0x70,0x72,0x3f,0x0a,0xd6,0xaf,0xdd,0x21,0x38,0xce,0x2a,0x71,0x77,0x4c,0xfb, -0x14,0xd3,0x57,0x41,0x45,0x14,0x55,0x8c,0x28,0xa4,0xc8,0xae,0x4f,0xe2,0x2f,0x8f, -0xed,0x3c,0x07,0xa2,0xb5,0xcc,0x84,0x4b,0x7b,0x28,0x2b,0x6d,0x6d,0x9e,0x5d,0xbd, -0x4f,0xfb,0x23,0xb9,0xff,0x00,0x1a,0xc6,0xb5,0x68,0x50,0xa6,0xea,0xd4,0x76,0x48, -0x89,0x49,0x41,0x39,0x4b,0x63,0xcb,0x7f,0x68,0xdf,0x17,0x2d,0xc5,0xcd,0x9f,0x87, -0xad,0xdf,0x3e,0x41,0x17,0x37,0x38,0xec,0xc4,0x10,0x8b,0xf9,0x12,0x7f,0x11,0x5e, -0x27,0x56,0x75,0x2d,0x46,0xe3,0x56,0xbf,0x9e,0xf6,0xee,0x53,0x35,0xcc,0xee,0x64, -0x91,0xcf,0x72,0x6a,0xb5,0x7e,0x2d,0x98,0x62,0xde,0x3b,0x13,0x2a,0xcf,0xae,0xde, -0x9d,0x0f,0x94,0xaf,0x55,0xd6,0x9b,0x98,0x51,0x45,0x15,0xe7,0x18,0x16,0x74,0xcd, -0x3e,0x6d,0x5b,0x51,0xb5,0xb2,0xb6,0x5d,0xf7,0x17,0x32,0x2c,0x51,0xa9,0xe8,0x59, -0x8e,0x07,0xf3,0xaf,0xb5,0xb4,0x7d,0x3a,0x2d,0x1f,0x4a,0xb4,0xb1,0x80,0x62,0x1b, -0x68,0x96,0x14,0x1e,0xca,0x00,0x1f,0xca,0xbc,0x03,0xf6,0x78,0xf0,0x69,0xd4,0x75, -0xa9,0xb5,0xfb,0x84,0xff,0x00,0x47,0xb2,0x06,0x38,0x32,0x3e,0xf4,0xa4,0x72,0x7f, -0x05,0x3f,0x99,0xf6,0xaf,0xa2,0x87,0x4a,0xfd,0x3b,0x86,0xb0,0x8e,0x8d,0x09,0x62, -0x24,0xb5,0x9e,0xde,0x88,0xfa,0x0c,0xbe,0x97,0x2c,0x1c,0xdf,0x51,0x68,0xa4,0xcd, -0x2d,0x7d,0x91,0xea,0x88,0x46,0x6b,0x33,0x5b,0xf0,0xd6,0x97,0xe2,0x2b,0x63,0x06, -0xa5,0x61,0x05,0xec,0x7d,0x84,0xa8,0x09,0x1f,0x43,0xd4,0x7e,0x15,0xa9,0x45,0x4c, -0xa1,0x19,0xae,0x59,0x2b,0xa1,0x34,0x9a,0xb3,0x3c,0x7b,0x5f,0xfd,0x9b,0xf4,0x8b, -0xd6,0x32,0x69,0x57,0xd3,0xe9,0xac,0x4e,0x7c,0xb9,0x07,0x9d,0x18,0x1e,0x83,0x90, -0x47,0xe6,0x6b,0xce,0x35,0xdf,0x81,0x3e,0x2a,0xd1,0x81,0x78,0xad,0xa2,0xd4,0xe2, -0x19,0xf9,0xad,0x1f,0x2d,0x8e,0xdf,0x29,0xc1,0xfc,0xb3,0x5f,0x54,0x52,0x11,0x5f, -0x3d,0x88,0xc8,0x30,0x35,0xf5,0x51,0xe5,0x7e,0x5f,0xe5,0xb1,0xc3,0x3c,0x15,0x19, -0xf4,0xb7,0xa1,0xf0,0xe5,0xed,0x85,0xd6,0x9b,0x39,0x86,0xee,0xda,0x5b,0x59,0x87, -0x58,0xe6,0x42,0x8d,0xf9,0x1a,0x82,0xbe,0xdb,0xd5,0xf4,0x1d,0x3f,0x5d,0xb6,0x36, -0xfa,0x85,0x9c,0x37,0xb0,0x9f,0xe1,0x99,0x03,0x63,0xdc,0x7a,0x57,0x8b,0xfc,0x45, -0xf8,0x03,0x1d,0xbd,0xb4,0xda,0x8f,0x86,0xb7,0xe5,0x32,0xef,0x60,0xe7,0x76,0x47, -0x7d,0x84,0xf3,0x9f,0x63,0x9c,0xfa,0xf6,0xaf,0x91,0xc6,0xf0,0xe5,0x7a,0x11,0x75, -0x28,0x4b,0x9d,0x2e,0x9b,0x3f,0xf8,0x27,0x9b,0x57,0x01,0x38,0x2e,0x68,0x3b,0xa3, -0xc3,0x28,0xa0,0x8c,0x1c,0x74,0xa2,0xbe,0x40,0xf2,0xc2,0x8a,0x28,0xa0,0x0f,0x6f, -0xfd,0x9d,0xbc,0x6b,0x22,0xdc,0xcf,0xe1,0xcb,0x99,0x0b,0x46,0xca,0x67,0xb5,0xdc, -0x7e,0xe9,0x1f,0x79,0x07,0xb1,0xeb,0xf8,0x1a,0xf7,0xba,0xf8,0xf7,0xe1,0x7d,0xe3, -0xd8,0xfc,0x41,0xd0,0x64,0x8c,0xe0,0xb5,0xd2,0xc6,0x7e,0x8d,0xf2,0x9f,0xd1,0x8d, -0x7d,0x84,0x2b,0xf5,0x6e,0x1c,0xc4,0x4a,0xb6,0x13,0x92,0x6f,0xe1,0x76,0xf9,0x1f, -0x47,0x80,0xa8,0xe7,0x4a,0xcf,0xa0,0xb4,0x51,0x45,0x7d,0x51,0xe9,0x08,0x78,0xaf, -0x9f,0xbf,0x6a,0x3b,0xbd,0x96,0x51,0xc7,0x9e,0x89,0xd2,0xbe,0x81,0x35,0xf3,0x27, -0xed,0x4f,0x77,0xfe,0x90,0x23,0x07,0xf8,0x45,0x78,0x59,0xd4,0xb9,0x70,0x53,0x3c, -0xac,0xce,0x5c,0xb8,0x59,0xb3,0xe5,0x3f,0x11,0x3e,0xdb,0x19,0x4f,0xfb,0x26,0xbb, -0xef,0xf8,0x26,0x55,0x81,0xb9,0xf8,0x97,0xf1,0x53,0x53,0xed,0x0d,0xa5,0x8d,0xb0, -0x3f,0xef,0xbc,0xcd,0xff,0x00,0xb2,0x0a,0xf3,0x8f,0x16,0xc9,0xe5,0xe9,0xb3,0x9f, -0x45,0xaf,0x63,0xff,0x00,0x82,0x5b,0xdb,0x16,0xb7,0xf8,0xab,0x7d,0xb7,0x89,0x35, -0x1b,0x38,0x43,0x7a,0xec,0x8a,0x42,0x7f,0xf4,0x3a,0xf2,0xb2,0x28,0xe8,0xd9,0xf9, -0xdf,0x0d,0x47,0x9b,0x33,0x9c,0xbb,0x44,0xfb,0xb3,0x9a,0x29,0xd4,0x57,0xd9,0x1f, -0xac,0x85,0x52,0xd5,0xb5,0x28,0x74,0x9d,0x36,0xee,0xfa,0xe0,0xed,0x82,0xda,0x26, -0x99,0xcf,0xfb,0x2a,0x32,0x6a,0xed,0x78,0xaf,0xed,0x53,0xe3,0x0f,0xec,0x0f,0x87, -0xab,0xa5,0xc3,0x26,0xdb,0xad,0x5e,0x61,0x09,0x00,0xe0,0xf9,0x4b,0xf3,0x48,0x7e, -0x9f,0x75,0x7f,0xe0,0x55,0xcd,0x89,0xac,0xb0,0xf4,0x65,0x55,0xf4,0x47,0x26,0x2e, -0xba,0xc2,0xd0,0x9d,0x67,0xd1,0x1f,0x26,0x78,0x83,0x5a,0xb8,0xf1,0x6f,0x89,0x2f, -0xf5,0x4b,0x8c,0xb5,0xc5,0xf5,0xc3,0x4a,0x47,0xa6,0x4f,0x03,0xf0,0x18,0x1f,0x85, -0x7d,0xbd,0xf0,0x4b,0xc2,0x63,0xc2,0x3f,0x0f,0xf4,0xeb,0x76,0x4d,0xb3,0xcc,0x82, -0x69,0x78,0xc7,0x26,0xbe,0x43,0xf8,0x3b,0xe1,0x46,0xf1,0x77,0x8f,0x74,0xcb,0x3d, -0xbb,0xa1,0x59,0x04,0x92,0x9f,0x45,0x1c,0xd7,0xde,0xf0,0xc4,0xb0,0xc2,0x91,0xa0, -0xda,0xaa,0x00,0x03,0xda,0xbe,0x4f,0x21,0xa2,0xea,0x54,0xa9,0x89,0x9f,0xa7,0xdf, -0xab,0x3e,0x57,0x87,0xa8,0x39,0x73,0xe2,0xa7,0xbb,0xfe,0x99,0x25,0x14,0x56,0x47, -0x8b,0xfc,0x53,0xa7,0x78,0x1f,0xc2,0x9a,0xcf,0x88,0xb5,0x79,0xbe,0xcf,0xa5,0xe9, -0x36,0x73,0x5f,0x5d,0x4b,0x8c,0xec,0x8a,0x34,0x2e,0xe7,0x1d,0xf8,0x53,0x5f,0x6a, -0x7d,0xa9,0xaf,0x45,0x7e,0x2d,0xcd,0xff,0x00,0x05,0x91,0xf8,0xd2,0x35,0x2b,0x86, -0xb6,0xd1,0x7c,0x20,0xd6,0x2d,0x2b,0x18,0x22,0x9e,0xc2,0x7f,0x31,0x63,0x2c,0x76, -0xab,0x30,0x9c,0x02,0x40,0xc0,0xce,0x2b,0xf5,0x5f,0xf6,0x6a,0xf1,0xbf,0x8a,0xfe, -0x25,0x7c,0x0e,0xf0,0x8f,0x8a,0xfc,0x6b,0x65,0x63,0xa6,0xf8,0x83,0x5a,0xb3,0x5b, -0xf9,0x2d,0x34,0xe4,0x74,0x8a,0x38,0xa4,0x25,0xa1,0xe1,0xd9,0x8e,0x4c,0x65,0x09, -0xc9,0xea,0x48,0xa0,0x49,0xdc,0xf9,0xef,0xfe,0x0a,0xb9,0xf1,0xa3,0xfe,0x15,0x97, -0xec,0xc9,0x73,0xe1,0xfb,0x39,0x8c,0x7a,0xb7,0x8c,0x6e,0x06,0x96,0x81,0x7a,0x8b, -0x60,0x37,0xdc,0x1f,0xa1,0x50,0x13,0xfe,0xda,0x57,0xe2,0x00,0xd4,0x6e,0xc5,0xab, -0xdb,0x0b,0xa9,0x85,0xb3,0xfd,0xe8,0x44,0x87,0x63,0x73,0x9e,0x47,0x4e,0xa2,0xbf, -0xa2,0x9f,0x8f,0x5f,0xb2,0x2f,0xc3,0x3f,0xda,0x5e,0xfb,0x4b,0xbc,0xf1,0xf6,0x95, -0x77,0xaa,0xcd,0xa6,0x44,0xf0,0xda,0x79,0x3a,0x8c,0xd6,0xeb,0x12,0xb1,0xcb,0x7c, -0xa8,0xc0,0x12,0x48,0x19,0x24,0x67,0x81,0xe9,0x5e,0x33,0x7d,0xff,0x00,0x04,0x93, -0xfd,0x9e,0xae,0xff,0x00,0xd5,0x69,0x5a,0xed,0x97,0xfd,0x70,0xd6,0x24,0x3f,0xfa, -0x1e,0xea,0x62,0x6a,0xe7,0xe1,0xa7,0x34,0xf8,0x66,0x92,0xde,0x41,0x24,0x4e,0xd1, -0x48,0x3a,0x32,0x1c,0x11,0xf8,0xd7,0xed,0x36,0xa9,0xff,0x00,0x04,0x70,0xf8,0x23, -0x78,0xa7,0xec,0x9a,0xb7,0x8b,0xb4,0xf2,0x7b,0xa5,0xfc,0x2f,0x8f,0xfb,0xea,0x13, -0x5c,0x9d,0xff,0x00,0xfc,0x11,0x47,0xe1,0xf4,0xad,0xfe,0x85,0xf1,0x0f,0xc4,0xd6, -0xe3,0xd2,0xe2,0xde,0xde,0x5f,0xe4,0xab,0x4e,0xe2,0xb3,0x3f,0x28,0xad,0x3e,0x21, -0xf8,0xaa,0xc3,0x02,0xd7,0xc4,0xda,0xc5,0xb6,0x3a,0x08,0x6f,0xe5,0x4c,0x7e,0x4d, -0x5f,0xb1,0x9f,0xf0,0x49,0x2f,0x0c,0x78,0x9e,0x4f,0x82,0x3a,0xbf,0x8e,0x7c,0x53, -0xae,0xea,0xda,0xcc,0xbe,0x20,0xbe,0xf2,0x74,0xf4,0xd4,0xef,0x25,0x9c,0x43,0x6d, -0x06,0x54,0xb2,0x07,0x63,0x8d,0xf2,0x17,0xe9,0xd7,0x60,0xaf,0x36,0xbe,0xff,0x00, -0x82,0x23,0xe8,0x0e,0xa7,0xec,0x9f,0x15,0xb5,0x28,0x4f,0xfd,0x36,0xd1,0xa3,0x93, -0xf9,0x4c,0xb5,0xfa,0x0f,0xf0,0x97,0xe1,0xbe,0x9f,0xf0,0x87,0xe1,0x9f,0x86,0x7c, -0x19,0xa5,0xb6,0xfb,0x1d,0x12,0xc2,0x2b,0x28,0xe5,0x2b,0xb4,0xc9,0xb5,0x70,0xce, -0x47,0x38,0x2c,0xd9,0x63,0xcf,0x52,0x69,0x31,0xa4,0xce,0x8f,0x55,0xd4,0x62,0xd2, -0x74,0xdb,0xab,0xd9,0xdb,0x6c,0x36,0xf1,0x34,0xae,0x7d,0x94,0x64,0xd7,0xc5,0x5a, -0xb6,0xa5,0x2e,0xb1,0xaa,0x5d,0xdf,0x4e,0x73,0x35,0xcc,0xad,0x2b,0x7d,0x49,0xcd, -0x7d,0x6b,0xf1,0x2b,0xc3,0xba,0x97,0x8a,0xfc,0x29,0x73,0xa5,0x69,0x93,0x41,0x04, -0xd7,0x0c,0xa1,0xde,0x76,0x65,0x1b,0x01,0xc9,0x03,0x00,0xf2,0x70,0x07,0xd0,0x9a, -0xf1,0x39,0x7f,0x67,0x2f,0x13,0xa2,0x92,0xb7,0x3a,0x6c,0x87,0xd1,0x66,0x70,0x7f, -0x54,0xaf,0x85,0xe2,0x1a,0x18,0xbc,0x5c,0xe1,0x0a,0x34,0xdb,0x8a,0xd7,0x4e,0xe7, -0x93,0x8e,0x85,0x5a,0x8d,0x46,0x11,0xba,0x47,0x95,0xd1,0x5e,0x87,0x3f,0xc0,0x5f, -0x18,0xc2,0x7e,0x5b,0x18,0x26,0xf7,0x4b,0x84,0xfe,0xa4,0x55,0x39,0x3e,0x0a,0x78, -0xd2,0x3c,0x9f,0xec,0x46,0x61,0xfe,0xcd,0xc4,0x47,0xff,0x00,0x66,0xaf,0x89,0x79, -0x6e,0x36,0x3b,0xd2,0x97,0xdc,0xcf,0x25,0xd0,0xaa,0xbe,0xcb,0x32,0xfe,0x1d,0xf8, -0x7b,0xfe,0x12,0x8f,0x19,0xe9,0x76,0x0c,0x81,0xe1,0x69,0x44,0x92,0x83,0xd3,0xcb, -0x5f,0x99,0x87,0xe2,0x06,0x3f,0x1a,0xfb,0x1c,0x70,0x05,0x78,0xcf,0xc0,0xaf,0x87, -0x5a,0x9f,0x86,0x75,0x2d,0x47,0x51,0xd6,0x2c,0x9a,0xd2,0x7d,0x82,0x08,0x55,0xc8, -0x24,0x82,0x72,0xc7,0x82,0x7d,0x14,0x7e,0x75,0xec,0xd5,0xfa,0x37,0x0f,0x61,0x25, -0x86,0xc2,0xb9,0x54,0x56,0x94,0x9f,0xe5,0xa2,0x3d,0xdc,0x0d,0x27,0x4e,0x9d,0xda, -0xd5,0x8b,0x45,0x14,0x57,0xd4,0x9e,0x89,0xe6,0x1f,0xb4,0x3c,0x7e,0x67,0xc3,0xfc, -0xff,0x00,0x72,0xee,0x36,0xfd,0x18,0x7f,0x5a,0xf9,0x8e,0xbe,0xa7,0xf8,0xf7,0x1e, -0xff,0x00,0x86,0xb7,0xed,0xfd,0xc9,0x61,0x6f,0xfc,0x88,0x07,0xf5,0xaf,0x96,0x33, -0x5f,0x96,0x71,0x32,0xb6,0x35,0x3f,0xee,0xaf,0xcd,0x9f,0x3b,0x98,0x2f,0xde,0xdf, -0xc8,0x28,0xa2,0x8a,0xf9,0x23,0xcc,0x3d,0x5f,0xf6,0x6f,0xb9,0x31,0xf8,0xd6,0xf2, -0x1c,0xe1,0x64,0xb1,0x63,0x8f,0x52,0x1d,0x3f,0xc4,0xd7,0xd2,0x63,0xad,0x7c,0xa1, -0xf0,0x42,0xf1,0xad,0x3e,0x25,0x69,0x4a,0xa7,0x0b,0x30,0x96,0x26,0xfa,0x79,0x6c, -0x7f,0x98,0x15,0xf5,0x78,0xaf,0xd5,0x38,0x6a,0x7c,0xd8,0x2e,0x5e,0xcd,0xff,0x00, -0x99,0xf4,0x78,0x07,0x7a,0x36,0xec,0xc5,0xa2,0x8a,0x2b,0xeb,0x0f,0x48,0x2a,0x3b, -0x89,0xd2,0xda,0x09,0x25,0x91,0x82,0x47,0x1a,0x96,0x66,0x27,0x80,0x00,0xe4,0xd3, -0xcd,0x70,0xff,0x00,0x19,0xb5,0xcf,0xec,0x4f,0x87,0xba,0xa1,0x5c,0x79,0xb7,0x4a, -0x2d,0x14,0x1e,0xfb,0xf8,0x6f,0xfc,0x77,0x71,0xfc,0x2b,0x9f,0x11,0x59,0x50,0xa3, -0x3a,0xaf,0xa2,0x6c,0x89,0xcb,0x92,0x2e,0x5d,0x8f,0x96,0xb5,0xbd,0x56,0x4d,0x73, -0x59,0xbe,0xd4,0x65,0x1b,0x64,0xba,0x9d,0xe6,0x2b,0xfd,0xdd,0xc4,0x9c,0x7e,0x15, -0x4a,0x8a,0x2b,0xf0,0x99,0xc9,0xce,0x4e,0x4f,0x76,0x7c,0x73,0x77,0x77,0x61,0x40, -0x04,0x90,0x07,0x24,0xd1,0x5d,0x17,0xc3,0xcd,0x1b,0xfb,0x7f,0xc6,0xda,0x3d,0x91, -0x5d,0xc8,0xf7,0x0a,0xee,0x3d,0x51,0x7e,0x66,0xfd,0x14,0xd5,0xd1,0xa6,0xeb,0x54, -0x8d,0x35,0xbb,0x69,0x0e,0x31,0x72,0x92,0x8a,0xea,0x7d,0x59,0xe0,0x9d,0x10,0x78, -0x77,0xc2,0x7a,0x56,0x9e,0x17,0x6b,0x43,0x6e,0x81,0xc7,0xfb,0x64,0x65,0xbf,0x52, -0x6b,0x76,0x90,0x74,0x18,0xe9,0x4b,0x5f,0xbb,0xd3,0x82,0xa7,0x05,0x05,0xb2,0x56, -0x3e,0xc6,0x2b,0x95,0x24,0x82,0x8a,0x28,0xad,0x0a,0x0a,0xc0,0xf1,0xcf,0x86,0x93, -0xc5,0xde,0x16,0xd4,0x34,0xb6,0x21,0x5a,0x78,0xff,0x00,0x76,0xc7,0xa2,0xc8,0x0e, -0x54,0x9f,0x6c,0x81,0x5b,0xf4,0x86,0xb3,0xa9,0x08,0xd5,0x83,0x84,0xb6,0x7a,0x0a, -0x49,0x49,0x38,0xbe,0xa7,0xc3,0x57,0x56,0xb2,0xd9,0x5c,0xcb,0x6f,0x3c,0x6d,0x14, -0xd1,0x39,0x8d,0xd1,0x86,0x0a,0xb0,0x38,0x20,0xd4,0x55,0xf4,0x07,0xc6,0xef,0x85, -0x32,0xea,0x8c,0xfe,0x20,0xd1,0xe1,0x32,0x5d,0x01,0x9b,0xab,0x64,0x1c,0xc8,0x07, -0xf1,0xa8,0xee,0x40,0xea,0x3b,0x8f,0x7e,0xbf,0x3f,0xd7,0xe2,0xd9,0x86,0x06,0xa6, -0x02,0xb3,0xa7,0x3d,0xba,0x3e,0xeb,0xfa,0xdc,0xf9,0x3a,0xf4,0x65,0x46,0x7c,0xac, -0x28,0xa2,0x8a,0xf3,0x0e,0x73,0xb3,0xf8,0x73,0xf1,0x3a,0xfb,0xe1,0xf5,0xe3,0x04, -0x43,0x77,0xa7,0x4a,0x73,0x35,0xab,0x1c,0x73,0xfd,0xe5,0x3d,0x8f,0xf3,0xfc,0xb1, -0xf4,0x3f,0x86,0xbe,0x2b,0xf8,0x67,0xc4,0xd1,0x21,0x87,0x52,0x8a,0xd6,0x72,0x39, -0xb7,0xbb,0x61,0x13,0x83,0xe9,0xc9,0xc1,0xfc,0x09,0xaf,0x91,0x68,0xaf,0xa1,0xcb, -0xf3,0xbc,0x46,0x02,0x3e,0xcd,0x7b,0xd1,0xec,0xfa,0x7a,0x33,0xba,0x8e,0x2e,0xa5, -0x15,0xcb,0xba,0x3e,0xe7,0x8e,0xe2,0x29,0x90,0x3c,0x72,0x23,0xa1,0xe8,0xca,0xc0, -0x83,0x54,0xf5,0x0d,0x7f,0x4c,0xd2,0x50,0xb5,0xee,0xa1,0x6b,0x68,0xa3,0xbc,0xd3, -0x2a,0xff,0x00,0x33,0x5f,0x13,0x2c,0x8e,0x83,0x0a,0xcc,0xa3,0xd8,0xe2,0x9a,0x79, -0x39,0x27,0x27,0xde,0xbd,0xd7,0xc5,0x52,0xb7,0xbb,0x47,0x5f,0x5f,0xf8,0x07,0x67, -0xf6,0x93,0xe9,0x1f,0xc7,0xfe,0x01,0xf4,0x6f,0x8c,0x7f,0x68,0x5d,0x2b,0x4c,0x89, -0xe1,0xd0,0xe3,0x3a,0xa5,0xd9,0xc8,0x13,0x30,0x29,0x0a,0x7e,0x7c,0xb7,0xe1,0xc1, -0xf5,0xaf,0x03,0xd7,0xbc,0x41,0x7f,0xe2,0x6d,0x4a,0x5b,0xfd,0x46,0xe1,0xae,0x6e, -0x64,0xea,0xcd,0xd0,0x0e,0xc0,0x0e,0xc0,0x7a,0x0a,0xce,0xa2,0xbe,0x5f,0x1d,0x9a, -0x62,0x71,0xef,0xf7,0xaf,0x4e,0xcb,0x63,0xce,0xad,0x88,0xa9,0x5b,0xe2,0xd8,0x28, -0xa2,0x8a,0xf2,0x4e,0x60,0xad,0x8f,0x09,0xf8,0x5e,0xf7,0xc6,0x1a,0xe5,0xbe,0x9b, -0x62,0x84,0xc9,0x21,0xcb,0xc8,0x47,0xcb,0x1a,0x7f,0x13,0x1f,0x61,0xfa,0x9c,0x0e, -0xf4,0x78,0x5f,0xc2,0x9a,0x97,0x8c,0x35,0x44,0xb1,0xd3,0x60,0x32,0xc8,0x7e,0xfb, -0x9c,0x84,0x89,0x7f,0xbc,0xc7,0xb0,0xfd,0x7d,0x33,0x5f,0x54,0x7c,0x3e,0xf8,0x7f, -0x63,0xe0,0x2d,0x24,0x41,0x6e,0x04,0xd7,0x72,0x00,0x6e,0x2e,0x98,0x61,0xa4,0x3f, -0xd0,0x0e,0xc2,0xbe,0x8b,0x29,0xca,0x67,0x8f,0xa8,0xa7,0x35,0x6a,0x6b,0x77,0xdf, -0xc9,0x1d,0xb8,0x6c,0x34,0xab,0xca,0xef,0xe1,0x35,0xbc,0x35,0xe1,0xeb,0x5f,0x0b, -0x68,0xb6,0xba,0x65,0x92,0x95,0x82,0x04,0xda,0x09,0xea,0xc7,0xbb,0x1f,0x72,0x72, -0x7f,0x1a,0xd4,0x14,0x52,0xd7,0xeb,0x70,0x84,0x69,0xc5,0x46,0x2a,0xc9,0x1f,0x4e, -0x92,0x4a,0xc8,0xc7,0xf1,0x4f,0x8a,0x6c,0x7c,0x21,0xa5,0x9d,0x43,0x51,0x76,0x4b, -0x60,0xe9,0x19,0x28,0xbb,0x8e,0x58,0xe3,0xa7,0xb7,0x5e,0x39,0xc0,0xa9,0x74,0x3f, -0x12,0x69,0x9e,0x23,0xb5,0x17,0x1a,0x6d,0xf4,0x37,0x91,0x11,0x92,0x62,0x6c,0x95, -0xfa,0x8e,0xa0,0xfb,0x1a,0xf1,0xdf,0xda,0x5f,0x5d,0xf9,0x74,0x8d,0x1d,0x1b,0xae, -0xeb,0xa9,0x00,0x3f,0xf0,0x15,0xff,0x00,0xd9,0xab,0xc4,0x2c,0xaf,0xee,0x74,0xeb, -0x85,0x9e,0xd2,0xe2,0x5b,0x69,0xd7,0xee,0xc9,0x0b,0x94,0x61,0xf8,0x8a,0xf8,0xec, -0x77,0x10,0x3c,0x16,0x32,0x54,0x79,0x79,0xa2,0xad,0xeb,0x73,0xcb,0xad,0x8d,0xf6, -0x55,0x5c,0x6d,0x74,0x7d,0xc7,0x9a,0x5a,0xf9,0x63,0x44,0xf8,0xf1,0xe2,0xbd,0x1c, -0x2a,0x4d,0x71,0x16,0xa7,0x10,0xfe,0x1b,0xa8,0xf2,0xd8,0xff,0x00,0x79,0x70,0x7f, -0x3c,0xd7,0x6f,0xa6,0x7e,0xd3,0x36,0xcc,0x48,0xd4,0x34,0x39,0xa2,0x03,0xf8,0xad, -0xa6,0x0f,0x93,0xf4,0x60,0xbf,0xce,0xbb,0xe8,0xf1,0x0e,0x06,0xaa,0xf7,0xa4,0xe2, -0xfc,0xd7,0xf9,0x5c,0xda,0x18,0xea,0x32,0xdd,0xd8,0xf6,0xfc,0xd1,0x9a,0xf3,0x1b, -0x0f,0xda,0x1f,0xc2,0xb7,0x6a,0x0c,0xdf,0x6d,0xb1,0x3e,0x93,0x41,0x9f,0xfd,0x00, -0xb5,0x5f,0x5f,0x8e,0xbe,0x0b,0x23,0xfe,0x42,0xce,0x3e,0xb6,0xb2,0xff,0x00,0xf1, -0x35,0xe9,0x47,0x33,0xc1,0x4b,0x6a,0xb1,0xfb,0xcd,0xd6,0x22,0x93,0xda,0x48,0xef, -0xe9,0x1d,0x82,0xa1,0x24,0x80,0x31,0xce,0x6b,0xcd,0xaf,0xff,0x00,0x68,0x1f,0x09, -0x5a,0xc2,0xcd,0x0c,0xd7,0x37,0xcc,0x3f,0x82,0x1b,0x76,0x52,0x7f,0xef,0xbd,0xa3, -0xf5,0xaf,0x35,0xf1,0xe7,0xc7,0xab,0xef,0x12,0x5a,0x4d,0xa7,0xe9,0x36,0xe7,0x4c, -0xb2,0x94,0x15,0x92,0x56,0x6c,0xcc,0xeb,0xe9,0xc7,0x0b,0xef,0x8c,0xfd,0x6b,0x93, -0x13,0x9d,0xe0,0xa8,0x41,0xb5,0x35,0x27,0xd9,0x6a,0x67,0x53,0x17,0x4a,0x0a,0xf7, -0xb9,0xe7,0xbe,0x28,0x96,0x0b,0x8f,0x12,0xea,0xd2,0xda,0xe3,0xec,0xcf,0x77,0x2b, -0x45,0xb7,0xa6,0xd2,0xe4,0x8c,0x7e,0x15,0x97,0x45,0x15,0xf9,0x04,0xe5,0xcf,0x37, -0x2e,0xee,0xe7,0xcb,0xb7,0x77,0x70,0xa2,0x8a,0x2a,0x04,0x75,0xff,0x00,0x08,0xf4, -0xf6,0xd4,0xbe,0x22,0xe8,0x88,0x01,0xc4,0x73,0x79,0xc4,0x8e,0xc1,0x14,0xb7,0xf4, -0xaf,0xae,0xc7,0x4a,0xf0,0x7f,0xd9,0xbf,0xc2,0xac,0x64,0xbe,0xf1,0x04,0xc9,0x85, -0xdb,0xf6,0x6b,0x72,0x47,0x5e,0xee,0x7f,0x40,0x3f,0x3a,0xf7,0x81,0xd2,0xbf,0x57, -0xe1,0xcc,0x3b,0xa3,0x82,0xe7,0x97,0xda,0x77,0xf9,0x74,0x3e,0x93,0x03,0x07,0x1a, -0x57,0x7d,0x45,0xa2,0x8a,0x2b,0xea,0x4f,0x44,0x69,0xaf,0x92,0xff,0x00,0x69,0xfb, -0xbf,0x33,0x5a,0x74,0xce,0x70,0xd5,0xf5,0xab,0x74,0xaf,0x8c,0x7f,0x68,0xdb,0xbf, -0x3b,0xc4,0xb2,0x8c,0xff,0x00,0x19,0xaf,0x99,0xcf,0xdd,0xb0,0xb6,0xee,0xd1,0xe0, -0x67,0x72,0xe5,0xc2,0x48,0xf9,0xcb,0xc7,0x32,0xec,0xd2,0x67,0x3d,0x3e,0x5a,0xfa, -0x47,0xfe,0x09,0x79,0xa6,0x88,0x7e,0x0f,0xf8,0xbb,0x50,0xc7,0xcd,0x77,0xe2,0x39, -0x57,0x38,0xec,0x90,0x42,0x07,0xea,0x4d,0x7c,0xc3,0xf1,0x1e,0x5f,0x2f,0x46,0x9c, -0xe7,0xb1,0xfe,0x55,0xf5,0xff,0x00,0xfc,0x13,0x53,0x4f,0x36,0x9f,0xb3,0x2c,0x17, -0x24,0x63,0xed,0xda,0xcd,0xf5,0xc0,0x3e,0xb8,0x93,0xcb,0xff,0x00,0xda,0x75,0x9e, -0x47,0x1b,0x53,0xb9,0xf1,0xbc,0x27,0x1b,0xe2,0xeb,0xcf,0xc9,0x1f,0x55,0x51,0x45, -0x15,0xf5,0x47,0xea,0x21,0x5f,0x13,0x7e,0xd3,0x3e,0x2f,0x3e,0x27,0xf8,0x9b,0x71, -0x68,0x8e,0x4d,0xa6,0x92,0x9f,0x64,0x41,0xdb,0x7f,0x59,0x0f,0xe7,0x81,0xff,0x00, -0x01,0xaf,0xae,0xbc,0x73,0xe2,0x68,0x7c,0x1d,0xe1,0x2d,0x57,0x59,0x9b,0x1b,0x6c, -0xe0,0x69,0x14,0x1f,0xe2,0x7c,0x61,0x57,0xf1,0x62,0x07,0xe3,0x5f,0x9f,0x28,0x2e, -0x75,0xcd,0x57,0x74,0x8c,0xd3,0x5d,0x5d,0xcc,0x59,0x98,0xf2,0x59,0xd9,0xb2,0x4f, -0xe6,0x6b,0xe4,0xb8,0x83,0x11,0xcb,0x4e,0x34,0x23,0xbb,0xd7,0xfa,0xf9,0x9f,0x1b, -0xc4,0x58,0x87,0xc9,0x0c,0x34,0x77,0x93,0xbb,0xf4,0xff,0x00,0x87,0x3e,0x96,0xfd, -0x92,0x7c,0x1f,0xe4,0xd9,0xdf,0x6b,0xf2,0xa6,0x0c,0x87,0xc9,0x88,0x91,0xdb,0xb9, -0xaf,0xa3,0xeb,0x97,0xf8,0x6f,0xe1,0xa4,0xf0,0x97,0x83,0x74,0xcd,0x39,0x54,0x2b, -0x47,0x10,0x2f,0x8e,0xec,0x7a,0xd7,0x51,0x5e,0xde,0x5d,0x87,0xfa,0xb6,0x1a,0x14, -0xfa,0xf5,0xf5,0x3e,0x8f,0x03,0x87,0x58,0x5c,0x3c,0x29,0x76,0x41,0x5f,0x0c,0x7f, -0xc1,0x5c,0xbe,0x35,0x9f,0x87,0x7f,0xb3,0xbc,0x3e,0x0f,0xb2,0x9b,0xcb,0xd5,0x3c, -0x65,0x75,0xf6,0x56,0xda,0xd8,0x65,0xb4,0x88,0xac,0x93,0x1f,0x70,0xc7,0xcb,0x42, -0x3b,0x87,0x6f,0x4a,0xfb,0x9e,0xbf,0x23,0xff,0x00,0xe0,0xb6,0x56,0x5a,0x90,0xf8, -0x89,0xf0,0xd6,0xf2,0x48,0xdc,0xe9,0x07,0x4a,0xb9,0x8a,0x17,0xc7,0xc8,0x26,0x13, -0x29,0x90,0x7d,0x76,0x98,0xff,0x00,0x2a,0xf4,0xd1,0xdc,0xcf,0x86,0xbf,0x67,0xbf, -0x04,0xe9,0xbf,0x12,0x7e,0x39,0x78,0x17,0xc3,0x3a,0xcd,0xe4,0x76,0x1a,0x56,0xa9, -0xac,0x5b,0xdb,0x5d,0x4f,0x2b,0x05,0x51,0x19,0x71,0xb8,0x64,0xf7,0x61,0xf2,0x8f, -0x72,0x2b,0xfa,0x16,0xf8,0xcd,0xf1,0x1b,0x4e,0xf8,0x1d,0xf0,0x6f,0xc5,0x1e,0x2e, -0x9e,0x38,0xe3,0xb4,0xd0,0x34,0xc9,0x27,0x86,0xd9,0x70,0x81,0xdd,0x53,0x11,0x44, -0xbd,0x86,0xe6,0xda,0xa0,0x7b,0xd7,0xf3,0x4e,0xac,0x51,0x83,0x29,0x2a,0xc0,0xe4, -0x11,0xd4,0x57,0x5f,0xaa,0xfc,0x62,0xf1,0xde,0xbb,0xe1,0x97,0xf0,0xee,0xa7,0xe3, -0x2d,0x7b,0x51,0xd0,0x5f,0x6e,0xed,0x32,0xeb,0x52,0x9a,0x5b,0x73,0xb4,0x86,0x5c, -0xc6,0xcc,0x47,0x04,0x02,0x38,0xe3,0x14,0xc8,0x4e,0xc7,0x77,0xe1,0x9f,0xda,0x7f, -0xe3,0xb6,0xb5,0xe2,0xab,0x6b,0x5d,0x23,0xe2,0x6f,0x8b,0x5b,0x55,0xd5,0x2f,0x16, -0x28,0xa1,0x4d,0x5a,0x72,0xad,0x2c,0x8f,0x85,0x01,0x4b,0x60,0x0c,0xb7,0x40,0x31, -0x5f,0xd0,0x5f,0xc3,0xcd,0x07,0x50,0xf0,0xbf,0x81,0x74,0x0d,0x27,0x55,0xd4,0xae, -0x35,0x9d,0x52,0xce,0xc6,0x18,0x6f,0x35,0x0b,0xa9,0x0c,0x92,0x5c,0xcc,0x10,0x79, -0x92,0x33,0x1e,0x4e,0x5b,0x26,0xbf,0x99,0xff,0x00,0x09,0xf8,0xaf,0x55,0xf0,0x37, -0x89,0x34,0xed,0x7f,0x43,0xbc,0x6d,0x3f,0x58,0xd3,0xa7,0x5b,0x9b,0x5b,0xa4,0x55, -0x66,0x8a,0x45,0x39,0x56,0x01,0x81,0x19,0x1e,0xe2,0xbe,0x84,0xd3,0x3f,0xe0,0xa5, -0x1f,0xb4,0x76,0x95,0xf7,0x3e,0x24,0x5c,0x4e,0x3d,0x2e,0xb4,0xfb,0x49,0x7f,0xf4, -0x28,0x8d,0x0c,0x69,0x9f,0xbf,0xd4,0x57,0xe1,0x66,0x99,0xff,0x00,0x05,0x62,0xfd, -0xa1,0xec,0x17,0x12,0xeb,0xda,0x46,0xa1,0xef,0x73,0xa4,0x42,0x3f,0xf4,0x00,0xb5, -0xbf,0x63,0xff,0x00,0x05,0x87,0xf8,0xed,0x6b,0x81,0x35,0x9f,0x84,0xaf,0x3f,0xeb, -0xae,0x99,0x2a,0x9f,0xfc,0x76,0x61,0x4a,0xc5,0x5d,0x1f,0xb6,0x94,0x57,0x86,0xfe, -0xc6,0x7f,0x16,0x3c,0x69,0xf1,0xc7,0xe0,0x3e,0x8b,0xe3,0x8f,0x1c,0x58,0xe9,0xba, -0x6e,0xa3,0xac,0x49,0x2c,0xd6,0xb6,0xfa,0x64,0x4f,0x1c,0x7f,0x66,0x0d,0xb5,0x18, -0x87,0x76,0x39,0x62,0xac,0x7a,0xe3,0x05,0x7f,0x1f,0x4a,0xf8,0xa1,0xe3,0xfd,0x3f, -0xe1,0x67,0xc3,0xbf,0x12,0x78,0xbf,0x54,0x60,0x2c,0x34,0x4b,0x09,0xaf,0xa5,0x05, -0xb1,0xbf,0x62,0x92,0x14,0x7b,0xb1,0xc2,0x8f,0x72,0x29,0x0c,0xea,0x28,0xaf,0xcb, -0xad,0x3b,0xfe,0x0b,0x77,0x64,0x42,0x8b,0xef,0x84,0xd3,0xab,0x77,0xfb,0x3e,0xb8, -0x0f,0xf3,0x80,0x57,0x61,0xa5,0x7f,0xc1,0x6a,0xfe,0x1b,0xcb,0x1e,0x75,0x2f,0x00, -0x78,0xa6,0xd2,0x4f,0xee,0xda,0xbd,0xb4,0xe3,0xf3,0x69,0x13,0xf9,0x53,0xb0,0xae, -0x8f,0xd1,0x5a,0x2b,0xe0,0x5b,0x4f,0xf8,0x2c,0xef,0xc1,0x89,0xb1,0xe7,0x78,0x6b, -0xc6,0xb6,0xe7,0xd3,0xec,0x56,0xad,0xfc,0xae,0x2b,0xab,0xd1,0xbf,0xe0,0xad,0xdf, -0xb3,0xe6,0xa6,0xa0,0xdd,0x6a,0x9a,0xee,0x90,0x7d,0x2f,0x34,0x89,0x1b,0x1f,0xf7, -0xe8,0xbd,0x01,0x74,0x7d,0x9f,0x45,0x7c,0xa7,0x69,0xff,0x00,0x05,0x44,0xfd,0x9b, -0x6e,0x80,0x27,0xe2,0x04,0x90,0x67,0xfe,0x7a,0xe8,0xb7,0xe3,0xf9,0x42,0x6b,0xa6, -0xd2,0xff,0x00,0xe0,0xa0,0xbf,0xb3,0xce,0xae,0x14,0xc3,0xf1,0x4f,0x46,0x8b,0x77, -0x41,0x74,0xb3,0x40,0x7f,0xf1,0xf4,0x14,0x87,0x73,0xe8,0x6a,0x2b,0xc9,0xf4,0xff, -0x00,0xda,0xcb,0xe0,0xb6,0xa8,0xa1,0xad,0xfe,0x2b,0xf8,0x35,0x81,0xec,0xfa,0xe5, -0xba,0x1f,0xc9,0x9c,0x56,0xfd,0x97,0xc7,0x5f,0x86,0xda,0x96,0x3e,0xc9,0xf1,0x07, -0xc2,0xd7,0x39,0xe9,0xe5,0x6b,0x56,0xcd,0x9f,0xc9,0xe8,0x03,0xb4,0x9a,0x08,0xe7, -0x52,0x92,0x22,0xc8,0x87,0xaa,0xb0,0xc8,0x3f,0x85,0x50,0x9f,0xc3,0x3a,0x3d,0xcf, -0xfa,0xed,0x2e,0xce,0x5f,0xf7,0xed,0xd0,0xff,0x00,0x4a,0x76,0x9f,0xe2,0x4d,0x27, -0x56,0x8c,0x49,0x63,0xa9,0xd9,0x5e,0xc6,0x79,0x0d,0x6f,0x70,0x92,0x03,0xf9,0x13, -0x5a,0x0a,0xe1,0x86,0x41,0x04,0x7a,0x83,0x51,0x28,0x46,0x5f,0x12,0xb8,0x9a,0x4f, -0x74,0x73,0xf3,0x7c,0x3c,0xf0,0xc5,0xc7,0x32,0x78,0x7f,0x4e,0x3f,0xf6,0xea,0x83, -0xfa,0x55,0x49,0x7e,0x15,0x78,0x46,0x51,0xce,0x81,0x66,0xbf,0xee,0x47,0xb7,0xf9, -0x57,0x59,0x9a,0x5a,0xc2,0x58,0x5a,0x12,0xde,0x0b,0xee,0x44,0x3a,0x70,0x7b,0xc5, -0x1c,0x8e,0x9d,0xf0,0xaf,0xc2,0xfa,0x4e,0xa5,0x6f,0x7f,0x65,0xa5,0xad,0xbd,0xd4, -0x0d,0xba,0x37,0x49,0x5f,0x83,0xd3,0xa6,0x71,0x5d,0x68,0xeb,0x4b,0x45,0x69,0x4e, -0x8d,0x3a,0x2a,0xd4,0xe2,0x92,0xf2,0x2a,0x31,0x8c,0x34,0x8a,0xb0,0x51,0x45,0x15, -0xb1,0x42,0x1a,0xe2,0x7e,0x28,0x7c,0x3c,0x9b,0xe2,0x1d,0x85,0x9d,0xaa,0x6a,0x22, -0xc2,0x3b,0x79,0x0c,0xa5,0x4c,0x3e,0x66,0xf6,0xc6,0x07,0xf1,0x0c,0x63,0x27,0xd7, -0xad,0x76,0xf4,0x56,0x15,0xe8,0x43,0x13,0x4d,0xd2,0xa8,0xaf,0x17,0xb9,0x13,0x82, -0xa9,0x17,0x19,0x6c,0x7c,0xf5,0x37,0xec,0xcd,0xaa,0x2e,0x7c,0x9d,0x66,0xd1,0xff, -0x00,0xdf,0x8d,0x97,0xfc,0x6a,0x93,0xfe,0xcd,0xbe,0x23,0x19,0xd9,0x7d,0xa6,0xb7, -0xd6,0x49,0x07,0xfe,0xc9,0x5f,0x49,0x51,0x5e,0x0b,0xe1,0xdc,0xbd,0xfd,0x97,0xf7, -0xb3,0x8d,0xe0,0x68,0xbe,0x9f,0x89,0xf3,0x1c,0xff,0x00,0xb3,0xbf,0x8a,0xa2,0x52, -0x55,0xf4,0xf9,0x88,0xfe,0x14,0x9c,0x8f,0xe6,0xa2,0xbb,0x0f,0x83,0x7f,0x0a,0xb5, -0x8f,0x0a,0x78,0x9a,0x7d,0x4b,0x57,0x82,0x38,0x55,0x20,0x31,0xc3,0xb6,0x45,0x7d, -0xcc,0xc4,0x64,0xf0,0x78,0xc0,0x18,0xfc,0x6b,0xdb,0x28,0xaa,0xa1,0x90,0xe1,0x30, -0xd5,0x63,0x5a,0x17,0xbc,0x7c,0xc2,0x18,0x2a,0x54,0xe4,0xa4,0xaf,0xa0,0x51,0x45, -0x15,0xf4,0x67,0x78,0x51,0x45,0x14,0x00,0x51,0x45,0x14,0x00,0x87,0x9a,0xf2,0xef, -0x88,0x7f,0x03,0xac,0x3c,0x55,0x24,0x97,0xda,0x63,0xa6,0x9b,0xa9,0xb6,0x59,0xb8, -0xfd,0xd4,0xc7,0xd5,0x80,0xe8,0x7d,0xc7,0xe4,0x6b,0xd4,0xa8,0xae,0x4c,0x4e,0x16, -0x8e,0x2e,0x1e,0xce,0xb4,0x6e,0x8c,0xea,0x53,0x8d,0x55,0xcb,0x35,0x73,0xe3,0x1f, -0x13,0x78,0x1f,0x5b,0xf0,0x84,0xc5,0x35,0x4b,0x09,0x20,0x8f,0x38,0x13,0xaf,0xcd, -0x13,0x7d,0x18,0x71,0xf8,0x75,0xf6,0xac,0x2a,0xfb,0x9e,0x68,0x52,0x78,0xca,0x48, -0xaa,0xe8,0x78,0x2a,0xc3,0x20,0xd7,0x15,0xae,0x7c,0x18,0xf0,0x9e,0xb8,0x59,0xdf, -0x4d,0x5b,0x49,0x4f,0xfc,0xb4,0xb3,0x6f,0x2b,0xf4,0x1f,0x2f,0xe9,0x5f,0x0f,0x8a, -0xe1,0x79,0x5e,0xf8,0x69,0xfc,0x9f,0xf9,0xa3,0xc7,0xa9,0x97,0x3d,0xe9,0xbf,0xbc, -0xf9,0x36,0x8a,0xf7,0xed,0x43,0xf6,0x65,0xb2,0x91,0x89,0xb0,0xd6,0xe7,0x85,0x7b, -0x2d,0xc4,0x2b,0x27,0xea,0x0a,0xd6,0x0d,0xcf,0xec,0xd5,0xad,0x23,0x91,0x06,0xa9, -0x63,0x2a,0xf6,0x32,0x07,0x43,0xfa,0x03,0x5e,0x0c,0xf2,0x2c,0xc2,0x0f,0xf8,0x77, -0xf4,0x68,0xe3,0x78,0x3a,0xeb,0xec,0x9e,0x3f,0x45,0x7a,0xb1,0xfd,0x9b,0xfc,0x4b, -0xda,0xf7,0x4b,0x3f,0xf6,0xd6,0x4f,0xfe,0x22,0x9e,0x9f,0xb3,0x6f,0x88,0xc9,0xf9, -0xef,0xb4,0xd5,0x1e,0xd2,0x48,0x7f,0xf6,0x4a,0xc1,0x64,0xf8,0xf7,0xff,0x00,0x2e, -0x99,0x1f,0x55,0xad,0xfc,0xac,0xf2,0x6a,0x2b,0xdb,0x74,0xff,0x00,0xd9,0x9a,0xe9, -0xb9,0xbd,0xd7,0x22,0x8f,0xd5,0x60,0xb7,0x2f,0xfa,0x92,0x3f,0x95,0x75,0x9a,0x3f, -0xec,0xf3,0xe1,0x9b,0x0c,0x35,0xdb,0x5d,0x6a,0x4c,0x3b,0x4b,0x26,0xc4,0xfc,0x97, -0x07,0xf5,0xae,0xda,0x5c,0x3d,0x8f,0xa8,0xf5,0x8a,0x8f,0xab,0xff,0x00,0x2b,0x9a, -0xc7,0x03,0x5a,0x5b,0xab,0x1f,0x36,0x59,0xd9,0x5c,0x6a,0x17,0x09,0x05,0xac,0x12, -0xdc,0xcc,0xe7,0x0b,0x1c,0x28,0x59,0x8f,0xd0,0x0a,0xf5,0x5f,0x05,0xfe,0xcf,0x9a, -0x9e,0xaa,0xd1,0xdc,0xeb,0xb2,0x7f,0x66,0x5a,0x13,0x9f,0x21,0x08,0x69,0xd8,0x7e, -0xa1,0x7f,0x1c,0x9f,0x6a,0xf7,0xdd,0x1f,0xc3,0xba,0x6f,0x87,0xe1,0x31,0x69,0xd6, -0x36,0xf6,0x51,0x9e,0xa2,0x18,0xc2,0xe7,0xeb,0xeb,0x5a,0x75,0xf4,0xd8,0x3e,0x19, -0xa3,0x49,0xa9,0xe2,0x25,0xcc,0xfb,0x6c,0xbf,0xcd,0x9e,0x85,0x2c,0xbe,0x31,0xd6, -0xa3,0xb9,0x93,0xe1,0xdf,0x0c,0xe9,0xbe,0x15,0xd3,0xd6,0xcf,0x4c,0xb5,0x4b,0x58, -0x47,0x5d,0xbf,0x79,0xcf,0xab,0x1e,0xa4,0xfd,0x6b,0x54,0x74,0xa5,0xa2,0xbe,0xca, -0x10,0x8d,0x38,0xa8,0xc1,0x59,0x23,0xd5,0x49,0x45,0x59,0x05,0x35,0xba,0x73,0x4e, -0xa8,0x2f,0x56,0x66,0xb5,0x98,0x40,0x50,0x4f,0xb0,0xf9,0x65,0xfe,0xee,0xec,0x71, -0x9f,0x6c,0xd5,0x3d,0x15,0xc6,0x7c,0x99,0xf1,0x6f,0x5d,0xfe,0xdf,0xf1,0xfe,0xab, -0x32,0xb6,0xe8,0xa1,0x93,0xec,0xd1,0xf3,0x9e,0x13,0x83,0x8f,0xab,0x6e,0x3f,0x8d, -0x71,0xd5,0xdd,0x6b,0xff,0x00,0x06,0x7c,0x5b,0xa3,0xb4,0x92,0x35,0x81,0xd4,0x50, -0x1c,0x99,0xac,0xdb,0xcc,0x2d,0xef,0xb7,0xef,0x7e,0x95,0xc5,0xde,0xd9,0x5c,0x69, -0xb3,0x18,0x6e,0xed,0xe5,0xb5,0x98,0x75,0x8e,0x64,0x28,0xdf,0x91,0xe6,0xbf,0x11, -0xc6,0xd2,0xc4,0x2a,0xd3,0xa9,0x5e,0x0d,0x36,0xdb,0xd5,0x1f,0x23,0x5a,0x33,0xe7, -0x72,0x92,0xdc,0x86,0x8a,0x28,0xaf,0x38,0xc0,0x28,0xa2,0x8a,0x00,0x28,0xa2,0x8a, -0x00,0x28,0xa2,0xae,0xe9,0x5a,0x26,0xa1,0xae,0xcf,0xe4,0xe9,0xd6,0x53,0xde,0xcb, -0xdd,0x60,0x42,0xd8,0xf7,0x38,0xe9,0xf8,0xd5,0x46,0x32,0x9b,0xe5,0x8a,0xbb,0x1a, -0x4d,0xe8,0x8a,0x55,0xd4,0x78,0x03,0xc0,0x17,0xfe,0x3d,0xd5,0xd6,0xde,0xdd,0x5a, -0x2b,0x38,0xc8,0x37,0x17,0x44,0x7c,0xb1,0xaf,0xa0,0xf5,0x63,0xd8,0x7f,0x4a,0xef, -0xbc,0x1b,0xfb,0x3b,0xde,0xdd,0xba,0x5c,0x78,0x86,0x71,0x67,0x00,0xe4,0xda,0x40, -0xc1,0xa4,0x6f,0x62,0xc3,0x81,0xf8,0x67,0xf0,0xaf,0x76,0xd1,0x74,0x5b,0x1f,0x0f, -0xd8,0x47,0x65,0xa7,0xdb,0x25,0xad,0xb4,0x63,0xe5,0x44,0x1f,0xa9,0xf5,0x3e,0xe6, -0xbe,0xc3,0x2c,0xe1,0xfa,0xb5,0xa4,0xaa,0x62,0x97,0x2c,0x7b,0x75,0x7f,0xe4,0x7a, -0x98,0x7c,0x14,0xa4,0xd4,0xaa,0x68,0x83,0x45,0xd1,0xad,0x74,0x0d,0x32,0xdb,0x4f, -0xb2,0x8c,0x45,0x6d,0x02,0x04,0x45,0xf6,0xf5,0x3e,0xa4,0xfa,0xd5,0xe1,0x4b,0x45, -0x7e,0x99,0x18,0xa8,0x25,0x18,0xec,0x8f,0x7d,0x24,0x95,0x90,0x51,0x45,0x15,0x43, -0x1b,0x21,0xdb,0x1b,0x1f,0x40,0x4d,0x7c,0x35,0xf1,0xd6,0xeb,0xcf,0xf1,0x4c,0xbc, -0xe7,0xe6,0x26,0xbe,0xe0,0xbe,0x7f,0x2e,0xce,0x76,0x3d,0x90,0x9f,0xd2,0xbe,0x0b, -0xf8,0xbb,0x38,0x9f,0xc5,0x13,0xfd,0x4f,0xf3,0xaf,0x91,0xe2,0x19,0x5a,0x9d,0x38, -0xf7,0x67,0xcb,0x71,0x0c,0xad,0x86,0xb1,0xe0,0x5f,0x15,0xe7,0xf2,0xb4,0x59,0xb9, -0xec,0x7f,0x95,0x7d,0xeb,0xfb,0x03,0x69,0xbf,0xd9,0xdf,0xb2,0x7f,0x81,0x7d,0x6e, -0x23,0xb8,0xb9,0x38,0xff,0x00,0x6e,0xe2,0x53,0x5f,0x9f,0x7f,0x19,0x26,0x11,0xe8, -0x92,0xf3,0x8f,0x94,0xff,0x00,0x2a,0xfd,0x29,0xfd,0x90,0xec,0x06,0x9b,0xfb,0x31, -0x7c,0x33,0x84,0x2e,0xdc,0xe8,0x76,0xd2,0x90,0x7d,0x5d,0x77,0x9f,0xd5,0xab,0xb3, -0x26,0x56,0xa2,0x78,0x1c,0x1f,0x1b,0xfb,0x79,0xf9,0xa3,0xd7,0xa8,0xa2,0x8a,0xfa, -0x23,0xf4,0x83,0xe7,0x5f,0xda,0xf7,0xc6,0x0d,0x69,0xa2,0xe9,0x5e,0x1c,0x81,0xf0, -0x6f,0x64,0x37,0x37,0x00,0x7f,0x71,0x3e,0xe8,0x3f,0x56,0x39,0xff,0x00,0x80,0xd7, -0x94,0x7e,0xcf,0x3e,0x12,0xff,0x00,0x84,0xa3,0xe2,0x15,0xa3,0x3a,0x6e,0xb7,0xb3, -0xfd,0xfb,0xfa,0x71,0xd2,0xb2,0x7e,0x36,0xf8,0xb1,0xbc,0x65,0xf1,0x33,0x5a,0xbb, -0x0f,0xbe,0xda,0xde,0x53,0x67,0x6f,0xce,0x40,0x48,0xf2,0x38,0xfa,0xb6,0xe3,0xf8, -0xd7,0xd0,0x7f,0xb2,0xb7,0x84,0x46,0x93,0xe1,0x29,0xf5,0x79,0x53,0x13,0xde,0xbe, -0x14,0x91,0xfc,0x03,0xff,0x00,0xaf,0x5f,0x01,0xff,0x00,0x23,0x1c,0xd3,0xfb,0xa9, -0xfe,0x0b,0xfc,0xd9,0xf9,0xfd,0x2f,0xf8,0x52,0xcd,0x5c,0xf7,0x8c,0x7f,0x25,0xff, -0x00,0x04,0xf7,0x30,0x30,0x00,0xe9,0x4b,0x48,0x29,0x6b,0xef,0xcf,0xd0,0x02,0xbc, -0xff,0x00,0xe3,0x67,0xc0,0x9f,0x05,0xfe,0xd0,0x9e,0x0c,0x97,0xc3,0x1e,0x37,0xd1, -0xe3,0xd5,0xb4,0xd2,0xe2,0x58,0x9b,0x71,0x49,0xad,0xe5,0x00,0x81,0x24,0x4e,0x39, -0x46,0xc1,0x23,0x8e,0xa0,0x90,0x72,0x09,0x15,0xe8,0x14,0x50,0x07,0xe6,0x47,0x8d, -0x3f,0xe0,0x89,0xda,0x1d,0xc5,0xc3,0x4b,0xe1,0x5f,0x89,0xb7,0xfa,0x7c,0x1c,0x9f, -0x23,0x57,0xd3,0x92,0xe5,0x87,0xfd,0xb4,0x47,0x8f,0xff,0x00,0x41,0xaf,0xcb,0x8f, -0x1b,0x68,0x56,0x5e,0x17,0xf1,0x86,0xb5,0xa3,0xe9,0xda,0xb4,0x7a,0xf5,0x8e,0x9f, -0x79,0x2d,0xac,0x3a,0x9c,0x31,0x98,0xe3,0xba,0x54,0x72,0xa2,0x55,0x52,0x49,0x0a, -0xd8,0xc8,0xe7,0xa1,0xaf,0xe9,0x9b,0xc6,0x1a,0x1d,0xc7,0x89,0x7c,0x2b,0xac,0x69, -0x16,0x9a,0x94,0xba,0x35,0xcd,0xfd,0x9c,0xb6,0xb1,0xea,0x10,0x20,0x69,0x2d,0x99, -0xd0,0xa8,0x91,0x01,0xe0,0xb2,0xe7,0x23,0x3c,0x64,0x0a,0xfc,0xdd,0xd4,0x3f,0xe0, -0x89,0x1a,0x41,0x95,0x5a,0xc7,0xe2,0x9d,0xea,0xc6,0x18,0x12,0x97,0x3a,0x42,0x31, -0x23,0xb8,0xca,0xca,0x3f,0x95,0x3b,0x92,0xd1,0xf2,0x97,0xc2,0x7f,0xf8,0x26,0x5f, -0xc6,0x3f,0x8c,0xbf,0x0d,0x34,0x4f,0x1b,0xe8,0x03,0x41,0x87,0x4b,0xd5,0xe2,0x69, -0xad,0xed,0xf5,0x0b,0xd7,0x86,0xe3,0x60,0x76,0x50,0xc5,0x7c,0xb2,0x30,0xdb,0x77, -0x0e,0x79,0x04,0x1a,0xd3,0xbc,0xff,0x00,0x82,0x4e,0x7e,0xd1,0x16,0xa4,0x88,0xf4, -0x0d,0x1e,0xe8,0x0e,0xf0,0xeb,0x30,0x8c,0xff,0x00,0xdf,0x44,0x57,0xed,0xff,0x00, -0x85,0x7c,0x35,0x63,0xe0,0xdf,0x0c,0xe9,0x3a,0x06,0x99,0x17,0x91,0xa6,0xe9,0x76, -0x91,0x59,0x5a,0xc5,0x9c,0xec,0x8a,0x34,0x08,0x83,0xf2,0x51,0x5a,0xb4,0x5c,0x2c, -0x8f,0xc0,0x4d,0x47,0xfe,0x09,0xa7,0xfb,0x47,0x69,0xcc,0xc0,0xfc,0x38,0x9a,0xe5, -0x57,0xf8,0xad,0xb5,0x1b,0x47,0x07,0xe9,0xfb,0xdc,0x9a,0xc6,0xd1,0xbf,0x60,0x7f, -0x8e,0xf7,0xde,0x25,0xd3,0x34,0xbb,0xcf,0x86,0x7e,0x20,0xb0,0x86,0xea,0xee,0x2b, -0x79,0x6f,0x5e,0xd7,0x74,0x50,0x2b,0x38,0x53,0x23,0x32,0x92,0x02,0xa8,0x39,0x27, -0x3d,0x05,0x7f,0x42,0x78,0xa0,0x80,0x7b,0x51,0x70,0xe5,0x46,0x2f,0x82,0xfc,0x29, -0x63,0xe0,0x5f,0x07,0x68,0x9e,0x1c,0xd3,0x23,0x58,0xb4,0xfd,0x26,0xce,0x1b,0x28, -0x11,0x46,0x00,0x48,0xd0,0x28,0xfd,0x05,0x7c,0x4f,0xff,0x00,0x05,0x7d,0xf8,0xb1, -0x73,0xe1,0x4f,0x80,0x9a,0x6f,0x82,0x34,0xd5,0xb8,0x6b,0xef,0x15,0xde,0xff,0x00, -0xa4,0x98,0x63,0x2c,0xa2,0xce,0xdf,0x6b,0xb8,0x62,0x3a,0x66,0x46,0x84,0x0f,0x50, -0x1b,0xd2,0xbe,0xf3,0xa6,0xb2,0x2b,0x75,0x00,0xfd,0x45,0x22,0x8f,0xe5,0xad,0xa3, -0x64,0x24,0x32,0xb2,0xe3,0xfb,0xc3,0x14,0xd1,0xcf,0x4e,0x6b,0xfa,0x8b,0xbc,0xd1, -0x74,0xfd,0x42,0x33,0x1d,0xd5,0x85,0xb5,0xca,0x1e,0xab,0x34,0x2a,0xe0,0xfe,0x04, -0x57,0x2d,0xab,0xfc,0x11,0xf8,0x77,0xaf,0xa9,0x5d,0x4b,0xc0,0x7e,0x19,0xbf,0x53, -0xd4,0x5c,0xe9,0x16,0xf2,0x67,0xf3,0x4a,0x77,0x23,0x94,0xfe,0x67,0x71,0x9a,0x2b, -0xfa,0x3a,0xba,0xfd,0x90,0x3e,0x07,0x5e,0xe7,0xcd,0xf8,0x43,0xe0,0x9c,0x9e,0xa5, -0x34,0x1b,0x64,0x3f,0x98,0x41,0x5c,0xbe,0xad,0xff,0x00,0x04,0xfb,0xfd,0x9e,0xb5, -0x9c,0xf9,0xdf,0x0b,0x74,0x58,0x73,0xff,0x00,0x3e,0x7e,0x6d,0xbf,0xfe,0x8b,0x75, -0xc5,0x3b,0x87,0x29,0xfc,0xf6,0xd1,0x5f,0xbd,0x17,0x5f,0xf0,0x4b,0x8f,0xd9,0xb2, -0xe9,0xcb,0x0f,0x01,0xcd,0x01,0x3f,0xf3,0xcb,0x5b,0xbe,0x03,0xf2,0xf3,0xab,0x9f, -0xd5,0x3f,0xe0,0x92,0x1f,0xb3,0xed,0xfe,0xef,0xb3,0xe9,0xba,0xf6,0x9b,0x9e,0x9f, -0x66,0xd5,0xdd,0xb1,0xff,0x00,0x7f,0x03,0x51,0x70,0xe5,0x3f,0x0d,0xe8,0xaf,0xd9, -0xab,0xef,0xf8,0x23,0x0f,0xc1,0xdb,0x87,0x63,0x6d,0xe2,0x8f,0x19,0x5a,0x03,0xd1, -0x7e,0xd5,0x6c,0xe0,0x7e,0x70,0x56,0x05,0xff,0x00,0xfc,0x11,0x43,0xc0,0x32,0x03, -0xf6,0x2f,0x88,0x9e,0x24,0xb7,0x3d,0xbe,0xd1,0x6f,0x6f,0x2e,0x3f,0x25,0x5a,0x2e, -0x1c,0xac,0xfc,0x89,0x8a,0xee,0x68,0x71,0xe5,0xcd,0x24,0x78,0xfe,0xeb,0x11,0x5a, -0xf6,0x3e,0x3b,0xf1,0x2e,0x98,0x41,0xb3,0xf1,0x0e,0xab,0x69,0x8e,0x9e,0x45,0xec, -0xa9,0xfc,0x9a,0xbf,0x4c,0x35,0x5f,0xf8,0x22,0x28,0x24,0xff,0x00,0x66,0x7c,0x59, -0xd8,0x3b,0x0b,0xbd,0x13,0x71,0xff,0x00,0xc7,0x67,0x15,0xcd,0xde,0xff,0x00,0xc1, -0x12,0xbc,0x5d,0x19,0x3f,0x64,0xf8,0x9d,0xa2,0x4e,0x3b,0x79,0xda,0x6c,0xd1,0xff, -0x00,0x27,0x6a,0x05,0x66,0x7c,0x2f,0xa6,0xfe,0xd0,0x9f,0x14,0x34,0x62,0x0d,0x8f, -0xc4,0x5f,0x15,0x5a,0xe3,0xa7,0x95,0xac,0xdc,0x2f,0xfe,0xcf,0x5d,0x56,0x9f,0xfb, -0x6a,0xfc,0x77,0xd2,0xc0,0x16,0xff,0x00,0x15,0xfc,0x53,0x81,0xda,0x5d,0x45,0xe4, -0xff,0x00,0xd0,0xb3,0x5f,0x4c,0x6a,0xdf,0xf0,0x46,0x1f,0x8b,0x96,0xc7,0xfe,0x25, -0xfe,0x2c,0xf0,0x85,0xf0,0xff,0x00,0xa6,0xb3,0x5c,0xc2,0x7f,0xf4,0x4b,0x57,0x29, -0x7d,0xff,0x00,0x04,0x87,0xf8,0xfd,0x68,0x48,0x8a,0x1f,0x0d,0x5e,0x81,0xde,0x1d, -0x57,0x19,0xff,0x00,0xbe,0xd1,0x68,0x1d,0x99,0xe6,0x56,0x1f,0xf0,0x50,0xcf,0xda, -0x23,0x4f,0x60,0x53,0xe2,0x86,0xab,0x28,0x1d,0xae,0x22,0x82,0x5f,0xfd,0x0a,0x33, -0x5d,0x4e,0x9b,0xff,0x00,0x05,0x4c,0xfd,0xa3,0x34,0xec,0x67,0xc6,0x36,0x97,0x80, -0x76,0xb9,0xd2,0x2d,0x9b,0x3f,0x92,0x03,0x4b,0xa9,0xff,0x00,0xc1,0x2c,0x7f,0x68, -0xdd,0x3c,0x9d,0x9e,0x0d,0xb4,0xbd,0x03,0xbd,0xb6,0xb1,0x68,0x73,0xf8,0x34,0x8a, -0x6b,0x8d,0xbf,0xff,0x00,0x82,0x7f,0xfe,0xd0,0xba,0x73,0xb2,0xc9,0xf0,0xb3,0x5a, -0x93,0x6f,0x7b,0x7f,0x2a,0x50,0x7e,0x9b,0x5c,0xe6,0x8d,0x03,0x53,0xd5,0xac,0x7f, -0xe0,0xaf,0x7f,0x1f,0x6d,0x14,0x09,0x64,0xf0,0xcd,0xe7,0xfb,0x53,0x69,0x44,0x1f, -0xfc,0x72,0x45,0xae,0x9f,0x4b,0xff,0x00,0x82,0xce,0xfc,0x5e,0xb4,0x50,0x2f,0x7c, -0x2f,0xe1,0x1b,0xff,0x00,0x53,0xf6,0x7b,0x88,0xcf,0xe9,0x35,0x7c,0xc5,0x7b,0xfb, -0x1b,0xfc,0x73,0xd3,0xf7,0x79,0xff,0x00,0x09,0xbc,0x5c,0x02,0x8c,0x92,0x9a,0x4c, -0xce,0x07,0xe2,0xaa,0x6b,0x90,0xd4,0x7e,0x0a,0xfc,0x42,0xd1,0xd9,0x96,0xfb,0xc0, -0x9e,0x25,0xb4,0x2b,0xf7,0xbc,0xed,0x22,0xe1,0x71,0xf9,0xa5,0x1a,0x05,0xd9,0xf7, -0xa6,0x9f,0xff,0x00,0x05,0xb3,0xf1,0x7c,0x48,0x3e,0xdd,0xf0,0xcb,0x44,0xb8,0x7f, -0x5b,0x7d,0x46,0x68,0x87,0xe4,0x55,0xab,0x7f,0x4f,0xff,0x00,0x82,0xdd,0xce,0x31, -0xf6,0xef,0x84,0x91,0xb7,0xa9,0xb7,0xd7,0x88,0xfd,0x0c,0x06,0xbf,0x32,0xee,0x7c, -0x31,0xac,0x59,0x92,0x27,0xd2,0xaf,0x61,0x23,0xaf,0x99,0x6c,0xeb,0x8f,0xcc,0x56, -0x73,0xa1,0x8d,0xb6,0xb0,0x2a,0xde,0x87,0x8a,0x34,0x0b,0xb3,0xf5,0xc7,0x4a,0xff, -0x00,0x82,0xd8,0xf8,0x36,0x54,0xce,0xa5,0xf0,0xd7,0x5d,0xb6,0x6e,0xe2,0xd2,0xfa, -0x19,0x87,0xfe,0x3c,0x12,0xba,0x0b,0x2f,0xf8,0x2d,0x17,0xc2,0x59,0x71,0xf6,0x9f, -0x06,0xf8,0xc6,0xdc,0xfa,0xa4,0x36,0xae,0x3f,0xf4,0x78,0xaf,0xc6,0xdc,0xe7,0xbd, -0x18,0x34,0x58,0x2e,0xcf,0xdb,0xbd,0x37,0xfe,0x0a,0xfd,0xf0,0x16,0xf5,0x03,0x5c, -0x7f,0xc2,0x4d,0x60,0x4f,0x69,0xb4,0xb0,0xf8,0xff,0x00,0xbe,0x24,0x6a,0xe9,0xec, -0xbf,0xe0,0xaa,0x5f,0xb3,0x75,0xdc,0x41,0xe4,0xf1,0xb5,0xdd,0xa3,0x1f,0xe0,0x9b, -0x44,0xbd,0x24,0x7e,0x2b,0x11,0x1f,0xad,0x7e,0x0e,0xe2,0x8a,0x2c,0x1c,0xc7,0xf4, -0x01,0x63,0xff,0x00,0x05,0x23,0xfd,0x9c,0x6f,0xc0,0xd9,0xf1,0x32,0xce,0x2c,0xf6, -0x9e,0xc6,0xee,0x3f,0xfd,0x0a,0x21,0x5d,0x6e,0x99,0xfb,0x6a,0xfc,0x06,0xd5,0xe3, -0x0f,0x07,0xc5,0xcf,0x08,0xc6,0x0f,0x6b,0xad,0x56,0x2b,0x73,0xf9,0x48,0x54,0xd7, -0xf3,0xa5,0x9a,0x29,0x58,0x39,0x8f,0xe9,0x32,0xcf,0xf6,0x9c,0xf8,0x3f,0xa8,0x15, -0x16,0xdf,0x15,0x3c,0x17,0x39,0x6e,0x82,0x3f,0x10,0x5a,0x1c,0xff,0x00,0xe4,0x4a, -0xeb,0xb4,0xdf,0x1f,0x78,0x63,0x59,0x50,0xd6,0x1e,0x22,0xd2,0x6f,0x94,0xf2,0x0d, -0xb5,0xf4,0x52,0x03,0xf9,0x31,0xaf,0xe6,0x16,0x9c,0xb2,0x32,0x10,0x55,0x8a,0x91, -0xdc,0x1a,0x2c,0x1c,0xc7,0xf5,0x25,0x14,0xf1,0xcc,0x9b,0xe3,0x75,0x75,0xf5,0x52, -0x08,0xa7,0xe6,0xbf,0x97,0x8b,0x7f,0x10,0xea,0xb6,0x98,0xf2,0x35,0x3b,0xc8,0x71, -0xd3,0xcb,0xb8,0x75,0xc7,0xe4,0x6b,0x7b,0x4f,0xf8,0xc3,0xe3,0xcd,0x2b,0x1f,0x62, -0xf1,0xb7,0x88,0xad,0x31,0xd3,0xc9,0xd5,0x67,0x4c,0x7e,0x4f,0x45,0x87,0xcc,0x7f, -0x4d,0x39,0xa5,0xaf,0xe7,0x07,0x4e,0xfd,0xae,0x3e,0x35,0xe9,0x48,0xa9,0x69,0xf1, -0x5b,0xc5,0xf0,0xa2,0xf0,0x17,0xfb,0x66,0x72,0x3f,0x22,0xd5,0xd1,0xe9,0xff,0x00, -0xb7,0xbf,0xed,0x07,0xa6,0xe3,0xca,0xf8,0xab,0xaf,0xc9,0x8e,0xd7,0x12,0x24,0xdf, -0xfa,0x1a,0x9a,0x2c,0x1c,0xc8,0xfe,0x86,0xe8,0xaf,0xc0,0xed,0x33,0xfe,0x0a,0x75, -0xfb,0x46,0xe9,0x7d,0x3c,0x7c,0x2e,0x87,0xa5,0xd6,0x99,0x69,0x27,0xf3,0x8f,0x35, -0xd2,0xd9,0x7f,0xc1,0x5b,0x3f,0x68,0x4b,0x5c,0x79,0xba,0xae,0x85,0x79,0xff,0x00, -0x5d,0xb4,0x88,0xc6,0x7f,0xef,0x82,0xb4,0x58,0x77,0x47,0xee,0x65,0x15,0xf8,0xa9, -0xa6,0xff,0x00,0xc1,0x63,0xbe,0x37,0x5a,0x11,0xf6,0xad,0x2f,0xc2,0x77,0xc3,0xbe, -0xeb,0x09,0x90,0xff,0x00,0xe3,0xb3,0x0a,0xea,0xf4,0xff,0x00,0xf8,0x2d,0x67,0xc4, -0x28,0x71,0xf6,0xdf,0x87,0xfe,0x1b,0xb9,0xff,0x00,0xae,0x33,0xdc,0x45,0xfc,0xd9, -0xa8,0xb0,0x5d,0x1f,0xb0,0x14,0x57,0xe4,0xf5,0x8f,0xfc,0x16,0xe7,0x5b,0x56,0x1f, -0x6c,0xf8,0x51,0x60,0xeb,0xdc,0xc1,0xad,0x3a,0x9f,0xd6,0x13,0x5d,0x66,0x99,0xff, -0x00,0x05,0xb7,0xd0,0x5d,0x07,0xf6,0x8f,0xc2,0xdd,0x4a,0x27,0xef,0xf6,0x5d,0x56, -0x37,0x1f,0xf8,0xf4,0x62,0x8b,0x05,0xd1,0xfa,0x6b,0x45,0x7e,0x77,0xd8,0xff,0x00, -0xc1,0x6a,0x7e,0x18,0xc8,0x83,0xed,0x7e,0x06,0xf1,0x6c,0x12,0x1e,0xa2,0x1f,0xb2, -0xc8,0x07,0xe2,0x65,0x5f,0xe5,0x5d,0x16,0x9b,0xff,0x00,0x05,0x8e,0xf8,0x23,0x76, -0x07,0xda,0x74,0xaf,0x17,0x58,0x9e,0xfb,0xec,0x21,0x7c,0x7f,0xdf,0x33,0x1a,0x56, -0x0b,0xa3,0xee,0xea,0x2b,0xe3,0xdd,0x33,0xfe,0x0a,0xbd,0xfb,0x3a,0xdf,0x45,0xbe, -0x7f,0x12,0x6a,0xba,0x71,0xfe,0xe5,0xce,0x8d,0x72,0xc7,0xff,0x00,0x21,0xab,0x0a, -0xdd,0xb2,0xff,0x00,0x82,0x9c,0x7e,0xcd,0xd7,0xcc,0x14,0x7c,0x43,0x10,0x93,0xff, -0x00,0x3d,0xb4,0xab,0xd4,0xfe,0x70,0xd0,0x3b,0x9f,0x52,0xd1,0x5e,0x13,0xa6,0xfe, -0xdd,0x5f,0x00,0x35,0x58,0x95,0xe2,0xf8,0xb1,0xe1,0xa8,0x81,0xed,0x75,0x77,0xe4, -0x1f,0xc9,0xc0,0x35,0xbd,0x6b,0xfb,0x59,0x7c,0x14,0xbd,0x0a,0x61,0xf8,0xb5,0xe0, -0xa6,0xdd,0xd0,0x1d,0x7e,0xd4,0x13,0xf8,0x17,0xa0,0x0f,0x58,0xa2,0xb8,0xed,0x33, -0xe3,0x27,0x80,0xb5,0xa4,0x56,0xd3,0xfc,0x6d,0xe1,0xdb,0xd5,0x6e,0x86,0xdf,0x55, -0x81,0xf3,0xf9,0x3d,0x74,0xd6,0x9a,0xb5,0x8d,0xfc,0x61,0xed,0xaf,0x2d,0xee,0x10, -0xf4,0x68,0xa5,0x56,0x07,0xf1,0x06,0x80,0x2d,0xd4,0x17,0x56,0x70,0x5e,0x46,0x63, -0x9e,0x08,0xe7,0x8c,0xf5,0x59,0x14,0x30,0x3f,0x81,0xa9,0x43,0x82,0x32,0x0e,0x7e, -0x94,0xb9,0xa4,0xd2,0x6a,0xcc,0x37,0x39,0x4b,0xff,0x00,0x85,0x9e,0x14,0xd4,0x41, -0x12,0xe8,0x56,0x6a,0x4f,0x56,0x85,0x3c,0xa3,0xf9,0xae,0x2b,0x02,0xf3,0xf6,0x7d, -0xf0,0x95,0xc6,0x7c,0xb8,0x6e,0xad,0x73,0xff,0x00,0x3c,0xae,0x09,0xff,0x00,0xd0, -0xb3,0x5e,0x95,0x9a,0x2b,0x86,0xa6,0x5f,0x84,0xab,0xf1,0xd2,0x8b,0xf9,0x23,0x07, -0x42,0x9c,0xb7,0x8a,0x3c,0x7e,0x6f,0xd9,0xa7,0x44,0x63,0xfb,0xad,0x57,0x50,0x4f, -0xf7,0xbc,0xb6,0xff,0x00,0xd9,0x45,0x56,0x6f,0xd9,0x9b,0x4f,0xcf,0xcb,0xad,0x5c, -0x8f,0xac,0x4a,0x7f,0xad,0x7b,0x55,0x26,0x2b,0x8d,0xe4,0xb9,0x7b,0xff,0x00,0x97, -0x4b,0xf1,0xff,0x00,0x33,0x3f,0xaa,0x50,0xfe,0x53,0xc6,0x13,0xf6,0x66,0xd3,0x54, -0xfc,0xda,0xcd,0xd1,0xff,0x00,0x76,0x35,0x15,0x7e,0xd3,0xf6,0x70,0xf0,0xdc,0x0c, -0x0c,0xd7,0x7a,0x85,0xcf,0xb3,0x48,0x8a,0x3f,0x45,0xaf,0x58,0xc5,0x2d,0x38,0xe4, -0xd8,0x08,0xed,0x49,0x02,0xc2,0xd1,0x5f,0x64,0xe2,0x74,0xcf,0x83,0x7e,0x11,0xd2, -0x88,0x29,0xa3,0xc5,0x3b,0x7a,0xdc,0xb3,0x4b,0xfa,0x31,0x22,0xba,0xfb,0x4b,0x2b, -0x7b,0x08,0x56,0x1b,0x68,0x23,0x82,0x25,0xe0,0x24,0x48,0x14,0x0f,0xc0,0x54,0xf4, -0x57,0xa5,0x4b,0x0f,0x46,0x82,0xb5,0x28,0x25,0xe8,0x8e,0x88,0xc2,0x30,0xf8,0x55, -0x82,0x8a,0x28,0xae,0x82,0xc2,0x8a,0x28,0xa0,0x02,0x8a,0x28,0xa0,0x0c,0xef,0x10, -0xcb,0xe4,0xe8,0x97,0xaf,0xe9,0x13,0x7f,0x2a,0xf8,0x0b,0xe2,0x14,0xe6,0x7f,0x11, -0x5d,0x31,0xe7,0xe6,0x35,0xf7,0x7f,0x8e,0x66,0xf2,0x3c,0x2d,0xa8,0x36,0x71,0xfb, -0xb2,0x2b,0xe0,0x2f,0x18,0x4b,0xe6,0xeb,0x37,0x6d,0xfe,0xd1,0xaf,0x88,0xe2,0x29, -0x7b,0xf4,0xa3,0xea,0x7c,0x67,0x12,0x4a,0xd4,0xa2,0x8f,0x00,0xf8,0xed,0x75,0xe5, -0x68,0x93,0x8c,0xf4,0x42,0x7f,0x4a,0xfd,0x6a,0xf8,0x37,0xa6,0xff,0x00,0x63,0x7c, -0x24,0xf0,0x55,0x81,0x50,0x86,0xdb,0x45,0xb3,0x88,0xa8,0x18,0xc1,0x10,0xa0,0xaf, -0xc8,0x7f,0x8e,0xbf,0xe9,0x36,0x82,0xd8,0x13,0x99,0x59,0x63,0xe3,0xfd,0xa3,0x8f, -0xeb,0x5f,0xb3,0x7a,0x25,0xa8,0xb1,0xd1,0xec,0x6d,0x87,0x48,0x60,0x8e,0x31,0xf8, -0x28,0x1f,0xd2,0xbd,0xcc,0xa9,0x5a,0x82,0x38,0xf8,0x3e,0x3f,0xec,0xd5,0x27,0xde, -0x45,0xea,0x28,0xa2,0xbd,0xb3,0xef,0xcf,0xcd,0xfd,0x0b,0x4e,0x93,0xc4,0x1e,0x25, -0x8e,0xce,0x20,0x5a,0x4b,0x8b,0x92,0xbf,0x9b,0x1a,0xfd,0x0a,0xf0,0xbe,0x8b,0x17, -0x87,0xb4,0x1b,0x1d,0x3a,0x15,0xc2,0x41,0x12,0xa7,0xe3,0x8e,0x6b,0xe1,0x7f,0x80, -0x9a,0xce,0x9f,0xa2,0x7c,0x4f,0x67,0xd6,0x07,0x96,0x6c,0xae,0x65,0x88,0xa3,0x8e, -0x56,0x40,0xe4,0x73,0x9f,0xa5,0x7d,0xb5,0x6f,0xf1,0x0b,0x40,0xb8,0x50,0x57,0x51, -0x8b,0xf1,0x35,0xf2,0x19,0x34,0x29,0xd1,0x9d,0x59,0xce,0x49,0x4a,0xf6,0xf9,0x1f, -0x11,0xc3,0x2a,0x9a,0xc3,0xca,0xa4,0x9f,0xbc,0xdd,0xbe,0xe3,0xa4,0xa2,0xb1,0xe3, -0xf1,0x6e,0x91,0x2f,0xdd,0xbf,0x84,0xff,0x00,0xc0,0xaa,0xd2,0x6b,0x76,0x12,0x7d, -0xdb,0xc8,0x4f,0xfc,0x0c,0x57,0xd5,0xaa,0x90,0x7b,0x34,0x7d,0xaa,0x94,0x5f,0x52, -0xf5,0x23,0x67,0x1c,0x75,0xf7,0xa8,0x12,0xf6,0xde,0x5f,0xb9,0x3c,0x6d,0xf4,0x61, -0x52,0x89,0x50,0xf4,0x70,0x7f,0x1a,0xbb,0xa6,0x3b,0x8e,0x19,0xc0,0xc8,0xe6,0x8a, -0x40,0xd9,0x1d,0x69,0x73,0x4c,0x62,0xd1,0x49,0x45,0x00,0x2d,0x14,0x51,0x40,0x05, -0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x09,0x8a,0x5a,0x28,0xa0, -0x02,0x8a,0x28,0xa0,0x02,0x92,0x96,0x8a,0x00,0x4c,0x0f,0x4a,0x31,0x4b,0x45,0x00, -0x25,0x2d,0x14,0x50,0x01,0x45,0x14,0x50,0x03,0x1e,0x24,0x91,0x4a,0xba,0x2b,0x29, -0xea,0x08,0xc8,0xac,0x4d,0x5b,0xc0,0x5e,0x19,0xd7,0xa2,0x31,0xea,0x7e,0x1d,0xd2, -0x75,0x18,0xcf,0x54,0xba,0xb1,0x8a,0x50,0x7f,0x06,0x53,0x5b,0xd4,0x50,0x07,0x98, -0xdf,0x7e,0xcb,0xdf,0x07,0x35,0x26,0x66,0xba,0xf8,0x51,0xe0,0xa9,0xd9,0xba,0xb3, -0xf8,0x7e,0xd0,0x93,0xf8,0xf9,0x75,0x85,0xa9,0xfe,0xc5,0x1f,0x01,0xb5,0x58,0xca, -0x4d,0xf0,0x8f,0xc2,0x31,0x8f,0x5b,0x6d,0x2a,0x28,0x0f,0xe7,0x18,0x53,0x5e,0xd7, -0x45,0x00,0x7c,0xcb,0xa9,0x7f,0xc1,0x35,0xff,0x00,0x67,0x0d,0x53,0x3e,0x67,0xc3, -0x4b,0x58,0x49,0xef,0x6d,0xa8,0x5d,0xc3,0xff,0x00,0xa0,0xca,0x2b,0x9e,0xbe,0xff, -0x00,0x82,0x54,0x7e,0xce,0x37,0x6b,0x88,0xbc,0x21,0x7f,0x64,0x7f,0xbd,0x06,0xb7, -0x78,0x4f,0xfe,0x3f,0x23,0x57,0xd7,0x74,0x50,0x16,0x3e,0x1b,0xd6,0x3f,0xe0,0x8f, -0x5f,0x02,0xb5,0x01,0xfe,0x89,0x71,0xe2,0x9d,0x2c,0xff,0x00,0xd3,0xbe,0xa4,0x8f, -0xff,0x00,0xa3,0x23,0x6a,0xe5,0xae,0xbf,0xe0,0x8a,0xff,0x00,0x0b,0x1c,0x9f,0xb3, -0xf8,0xe3,0xc6,0x10,0xe7,0xa7,0x98,0xd6,0xaf,0x8f,0xca,0x11,0x5f,0xa1,0xb4,0x50, -0x2b,0x23,0xf3,0x37,0x55,0xff,0x00,0x82,0x25,0x78,0x72,0x40,0xdf,0xd9,0x9f,0x14, -0x35,0x4b,0x73,0xdb,0xed,0x7a,0x5c,0x72,0xe3,0xfe,0xf9,0x75,0xae,0x4e,0xef,0xfe, -0x08,0x8b,0xab,0xab,0x1f,0xb2,0xfc,0x59,0xb1,0x91,0x7b,0x09,0xb4,0x37,0x53,0xf8, -0xe2,0x73,0x5f,0xab,0xd4,0x50,0x16,0x47,0xe4,0x0e,0xa5,0xff,0x00,0x04,0x51,0xf8, -0x81,0x10,0x3f,0x60,0xf8,0x85,0xe1,0xbb,0xa3,0xdb,0xcf,0xb7,0x9e,0x1c,0xfe,0x41, -0xab,0x8f,0xd4,0xff,0x00,0xe0,0x8e,0x7f,0x1c,0x2d,0x1b,0x16,0xba,0x97,0x84,0xaf, -0xc7,0xaa,0xea,0x12,0xa7,0xe8,0xd0,0xd7,0xed,0x6d,0x18,0xa7,0x70,0xb2,0x3f,0x0c, -0x35,0x0f,0xf8,0x24,0xc7,0xed,0x0d,0x65,0x9f,0x2b,0x45,0xd1,0x6f,0xb1,0xff,0x00, -0x3e,0xfa,0xc4,0x43,0x3f,0xf7,0xde,0xda,0xe5,0x35,0x6f,0xf8,0x26,0x9f,0xed,0x1d, -0xa4,0xb1,0x07,0xe1,0xcc,0xd7,0x60,0x75,0x6b,0x5d,0x42,0xd2,0x41,0xff,0x00,0xa3, -0x6b,0xf7,0xeb,0x14,0x62,0x8b,0x85,0x91,0xfc,0xf0,0x5e,0xfe,0xc2,0x3f,0xb4,0x05, -0x81,0x22,0x5f,0x85,0x1e,0x22,0x6c,0x7f,0xcf,0x1b,0x71,0x2f,0xfe,0x80,0x4d,0x72, -0xfa,0xa7,0xec,0xb7,0xf1,0x8b,0x46,0x62,0xb7,0x9f,0x0b,0x7c,0x5f,0x16,0x3a,0x91, -0xa2,0x5c,0x38,0x1f,0x8a,0xa1,0x15,0xfd,0x23,0xd1,0x8a,0x2e,0x2b,0x1f,0xcc,0x7d, -0xff,0x00,0xc2,0xef,0x19,0xe9,0x4c,0x56,0xf7,0xc2,0x5a,0xed,0x99,0x1d,0x44,0xfa, -0x6c,0xc9,0x8f,0xcd,0x6b,0x02,0xe7,0x4e,0xbb,0xb3,0x62,0xb3,0xda,0xcd,0x03,0x0e, -0xa2,0x48,0xca,0x91,0xf9,0x8a,0xfe,0xa3,0xf0,0x2a,0xbd,0xc6,0x99,0x67,0x76,0x8c, -0x93,0xda,0xc1,0x32,0xb7,0x05,0x64,0x8c,0x30,0x3f,0x98,0xa2,0xe1,0xca,0x7f,0x2e, -0x18,0xa2,0xbf,0xa6,0x6d,0x43,0xe0,0xc7,0xc3,0xed,0x58,0xb1,0xbe,0xf0,0x2f,0x86, -0xaf,0x0b,0x72,0xc6,0x7d,0x22,0xdd,0xc9,0xfa,0xe5,0x2b,0x9e,0xbd,0xfd,0x95,0xbe, -0x0c,0xea,0x0a,0xcb,0x3f,0xc2,0x8f,0x06,0x3e,0xee,0xa4,0x68,0x36,0xca,0x7f,0x30, -0x80,0xd1,0x71,0x72,0x9f,0xcd,0xd5,0x18,0x3d,0x6b,0xfa,0x1a,0xd5,0x7f,0x60,0x8f, -0xd9,0xf7,0x58,0x56,0x13,0xfc,0x29,0xd0,0x23,0xdd,0xd4,0xda,0xc4,0xd0,0x1f,0xcd, -0x18,0x57,0x23,0x77,0xff,0x00,0x04,0xbb,0xfd,0x9b,0x2e,0xd9,0x9b,0xfe,0x15,0xfc, -0x90,0x33,0x73,0x98,0x75,0xbb,0xf1,0xfa,0x79,0xf8,0x1f,0x95,0x3b,0x87,0x29,0xf8, -0x27,0x45,0x7e,0xe5,0xeb,0x3f,0xf0,0x49,0x4f,0xd9,0xef,0x53,0x8c,0xad,0xae,0x91, -0xad,0xe9,0x07,0xb3,0x5a,0x6b,0x12,0xb9,0x1f,0xf7,0xf7,0x7d,0x71,0xd7,0xbf,0xf0, -0x46,0x0f,0x83,0x73,0xb9,0x6b,0x7f,0x14,0xf8,0xd6,0xdb,0x3f,0xc3,0xf6,0xcb,0x47, -0x03,0xf3,0xb6,0xcf,0xeb,0x45,0xc3,0x94,0xfc,0x65,0xa2,0xbf,0x5f,0xb5,0x5f,0xf8, -0x22,0x97,0xc3,0xc9,0x50,0x0d,0x37,0xe2,0x0f,0x89,0xed,0x5f,0xd6,0xea,0x1b,0x79, -0xc7,0xe4,0xa8,0x95,0xc8,0xea,0x7f,0xf0,0x44,0x58,0x49,0x3f,0xd9,0xdf,0x16,0x9d, -0x7d,0x05,0xd6,0x85,0x9f,0xd5,0x67,0x14,0x5c,0x56,0x67,0xe5,0x7d,0x48,0x97,0x33, -0x45,0xf7,0x25,0x74,0xff,0x00,0x75,0x88,0xaf,0xd2,0x8b,0xef,0xf8,0x22,0x57,0x8a, -0x63,0xcf,0xd8,0xfe,0x28,0xe9,0x13,0xfa,0x79,0xfa,0x54,0xb1,0x67,0xf2,0x91,0xab, -0x95,0xd4,0xff,0x00,0xe0,0x8c,0x1f,0x16,0xad,0xc9,0xfb,0x0f,0x8b,0x3c,0x27,0x7a, -0x07,0x4f,0x32,0x6b,0x88,0x89,0xff,0x00,0xc8,0x46,0x80,0xb3,0x3e,0x19,0xd3,0xfc, -0x77,0xe2,0x5d,0x25,0x95,0xac,0x7c,0x43,0xaa,0xd9,0x95,0xe4,0x1b,0x7b,0xd9,0x13, -0x1f,0x93,0x57,0x63,0xa7,0x7e,0xd3,0xbf,0x17,0xf4,0x95,0x55,0xb3,0xf8,0xa1,0xe2, -0xfb,0x74,0x5e,0x8a,0x9a,0xdd,0xc8,0x03,0xf0,0xdf,0x5f,0x47,0x5e,0x7f,0xc1,0x20, -0x7e,0x3e,0x5b,0x13,0xe5,0x8f,0x0b,0xdd,0x81,0xd3,0xc9,0xd5,0x58,0x67,0xfe,0xfa, -0x8c,0x57,0x35,0xa9,0xff,0x00,0xc1,0x2b,0xff,0x00,0x68,0xcd,0x3c,0x31,0x8f,0xc2, -0x16,0x77,0xd8,0xff,0x00,0x9f,0x5d,0x5e,0xd8,0xe7,0xe9,0xb9,0xd6,0x80,0xd4,0xf3, -0x8b,0x4f,0xdb,0x7b,0xe3,0xdd,0x96,0x3c,0xaf,0x8b,0x3e,0x29,0x38,0xe9,0xe6,0xdf, -0xb4,0x9f,0xfa,0x16,0x6b,0xa5,0xd3,0x7f,0xe0,0xa3,0xbf,0xb4,0x5e,0x99,0x81,0x1f, -0xc4,0xbb,0xd9,0x80,0xed,0x73,0x69,0x6d,0x2e,0x7f,0xef,0xa8,0xcd,0x56,0xbf,0xff, -0x00,0x82,0x78,0x7e,0xd1,0x3a,0x71,0x3e,0x67,0xc2,0xed,0x52,0x4c,0x7f,0xcf,0x09, -0xed,0xe5,0xff,0x00,0xd0,0x64,0x35,0xcd,0x6a,0x5f,0xb1,0x97,0xc7,0x4d,0x28,0x91, -0x71,0xf0,0x9f,0xc5,0x9c,0x75,0x30,0xe9,0x92,0x4a,0x3f,0x34,0x06,0x80,0xd4,0xf5, -0x8b,0x2f,0xf8,0x2a,0xd7,0xed,0x17,0x68,0xa0,0x3f,0x8a,0x34,0xdb,0xac,0x77,0x9f, -0x46,0xb7,0xe7,0xfe,0xf9,0x51,0x5b,0xf6,0x1f,0xf0,0x57,0xff,0x00,0x8f,0x56,0xa4, -0x79,0xeb,0xe1,0x8b,0xc0,0x3a,0xf9,0xba,0x5b,0x29,0x3f,0xf7,0xcc,0x82,0xbe,0x5b, -0xd4,0xfe,0x04,0xfc,0x49,0xd1,0x5c,0xa5,0xf7,0xc3,0xff,0x00,0x14,0x5a,0x30,0xea, -0x25,0xd1,0xee,0x17,0xff,0x00,0x64,0xae,0x7e,0xf3,0xc1,0x5e,0x21,0xd3,0xce,0x2e, -0xb4,0x1d,0x4e,0xd8,0xff,0x00,0xd3,0x6b,0x39,0x13,0xf9,0xad,0x03,0xd4,0xfb,0xcb, -0x4d,0xff,0x00,0x82,0xd2,0xfc,0x51,0xb7,0x50,0x2f,0x7c,0x15,0xe1,0x5b,0xcf,0x52, -0x82,0xe2,0x23,0xff,0x00,0xa3,0x0d,0x74,0x56,0x5f,0xf0,0x5b,0x5f,0x14,0x2e,0x05, -0xdf,0xc3,0x0d,0x22,0x5f,0x53,0x06,0xa7,0x2a,0x7f,0x34,0x35,0xf9,0xab,0x34,0x12, -0xdb,0xb6,0xd9,0x63,0x78,0x9b,0xd1,0xd4,0x83,0x4c,0xa3,0x40,0xbb,0x3f,0x54,0x74, -0xbf,0xf8,0x2d,0xcd,0xbe,0x40,0xd4,0x7e,0x14,0x4a,0x07,0x73,0x6b,0xad,0x03,0xfa, -0x34,0x35,0xd4,0x58,0xff,0x00,0xc1,0x6b,0xfc,0x07,0x20,0x1f,0x6c,0xf8,0x77,0xe2, -0x38,0x0f,0xfd,0x30,0xb9,0xb7,0x93,0xf9,0x95,0xaf,0xc8,0x6c,0x51,0x45,0x85,0xcc, -0xcf,0xd9,0x9d,0x3b,0xfe,0x0b,0x39,0xf0,0x82,0xe4,0x81,0x77,0xe1,0x8f,0x17,0xd9, -0x67,0xf8,0xbe,0xcd,0x6f,0x20,0x1f,0x94,0xd5,0xd7,0x69,0xdf,0xf0,0x56,0xff,0x00, -0xd9,0xf6,0xf2,0x20,0xd7,0x1a,0x96,0xbd,0xa7,0xb1,0xfe,0x19,0xf4,0x99,0x18,0x8f, -0xfb,0xe0,0xb0,0xaf,0xc3,0x8a,0xb5,0xa4,0xd8,0xbe,0xa7,0xaa,0xd9,0xd9,0xc4,0xbb, -0xa5,0xb8,0x99,0x21,0x50,0x3b,0x96,0x60,0x07,0xf3,0xa2,0xc3,0xb9,0xfd,0x3f,0xe8, -0x3a,0xd5,0xb7,0x88,0xf4,0x4d,0x3f,0x56,0xb3,0x2e,0x6c,0xef,0xed,0xe3,0xba,0x84, -0xc8,0xa5,0x58,0xa3,0xa8,0x65,0xca,0x9e,0x41,0xc1,0x1c,0x1a,0xbf,0x55,0x34,0xab, -0x18,0xf4,0xcd,0x32,0xd2,0xce,0x14,0x11,0xc5,0x6f,0x0a,0x44,0x88,0x3a,0x28,0x55, -0x00,0x0f,0xd2,0xad,0xd4,0x96,0x14,0x51,0x45,0x00,0x72,0x3f,0x14,0xe7,0xfb,0x3f, -0x83,0x6f,0x4f,0xa8,0xc5,0x7c,0x0d,0xe2,0x29,0x37,0xdf,0xdd,0x37,0xab,0x9a,0xfb, -0x9b,0xe3,0x65,0xcf,0x91,0xe0,0xc9,0x87,0xf7,0x8e,0x3f,0x4a,0xf8,0x43,0x5a,0x7d, -0xd3,0x4e,0xde,0xac,0x6b,0xe0,0x33,0xe7,0x7c,0x54,0x23,0xd9,0x1f,0x01,0xc4,0xf3, -0xb2,0x48,0xf1,0x4f,0x1a,0x42,0x35,0x2f,0x88,0x9e,0x12,0xb1,0x64,0xf3,0x16,0xe7, -0x5a,0xb2,0x84,0xa6,0x33,0xb8,0x34,0xe8,0x08,0xfc,0x8d,0x7e,0xcc,0xa0,0x0a,0xa1, -0x40,0xc0,0x1c,0x57,0xe3,0xef,0x87,0xac,0x9f,0x5c,0xfd,0xa4,0xfe,0x19,0x59,0x2f, -0x3b,0xbc,0x47,0x67,0x26,0x3d,0x92,0x40,0xe7,0xff,0x00,0x40,0xaf,0xd8,0x31,0x5f, -0x57,0x97,0x46,0xd4,0x11,0xd7,0xc2,0x71,0xe5,0xcb,0xef,0xdd,0xb1,0x68,0xa2,0x8a, -0xf5,0x0f,0xb4,0x3f,0x3c,0xbf,0x6b,0x4f,0x07,0xde,0xfc,0x28,0xf8,0xc1,0x3e,0xbf, -0x6f,0x19,0x5d,0x0b,0xc4,0x4d,0xf6,0x95,0x78,0xc6,0x04,0x73,0x80,0x04,0xaa,0x7d, -0xc9,0xf9,0xff,0x00,0xe0,0x47,0xd2,0xb9,0x0d,0x2b,0xc6,0x12,0x5d,0xc4,0xaf,0x15, -0xeb,0xe0,0x8e,0xcf,0x5f,0xa1,0xbf,0x13,0xfe,0x1a,0x68,0xdf,0x15,0xfc,0x21,0x77, -0xe1,0xfd,0x6e,0x0f,0x36,0xda,0x61,0xba,0x39,0x57,0x1b,0xe0,0x90,0x0f,0x96,0x44, -0x3d,0x88,0xcf,0xe3,0xc8,0x3c,0x1a,0xfc,0xed,0xf8,0x9f,0xfb,0x2e,0xf8,0xe3,0xe1, -0x16,0xa9,0x33,0xdb,0xac,0x97,0xda,0x46,0xec,0xc3,0x7f,0x6e,0xa4,0xc6,0xc3,0x3c, -0x06,0x1f,0xc2,0x7d,0x8f,0xe1,0x9a,0xf9,0x3c,0xcb,0x2d,0x84,0xe4,0xea,0x6c,0x7e, -0x4f,0x9d,0xe5,0x78,0x9c,0x16,0x22,0x58,0xac,0x22,0x6e,0x13,0x77,0x69,0x74,0x66, -0xfc,0x3e,0x28,0xd4,0x23,0xe6,0x3b,0xf9,0x47,0xfc,0x0e,0xaf,0x43,0xe3,0x9d,0x6e, -0x1f,0xbb,0xa9,0x4b,0xf8,0xb5,0x78,0xb9,0xb9,0xf1,0x3e,0x9f,0xf2,0x4d,0x68,0x5c, -0x8e,0xf8,0xe4,0xd2,0x8f,0x15,0xeb,0x11,0x7d,0xfb,0x09,0x3f,0x23,0x5f,0x35,0xf5, -0x19,0xaf,0x86,0x4b,0xef,0x3c,0x48,0xe2,0x71,0xd1,0x5f,0x0c,0xbe,0xf3,0xdd,0x21, -0xf8,0x9f,0xe2,0x38,0x0f,0xcb,0xa8,0xb9,0xad,0x1b,0x7f,0x8c,0xfe,0x26,0xb7,0xe9, -0x7a,0xcd,0xf5,0xaf,0x9f,0x57,0xc7,0x97,0x91,0xfd,0xfb,0x49,0x57,0xf0,0x35,0x22, -0x7c,0x46,0x2b,0xf7,0xe2,0x90,0x1f,0x71,0x4d,0x61,0x71,0x31,0xf8,0x64,0xfe,0xf3, -0x55,0x99,0x63,0x61,0xba,0x91,0xf4,0x94,0x1f,0xb4,0x1f,0x8a,0x21,0xc7,0xef,0xf3, -0xf8,0xd6,0xa5,0xbf,0xed,0x33,0xe2,0x38,0xb1,0xbc,0x96,0xc7,0xbd,0x7c,0xc2,0x9f, -0x12,0x60,0xfe,0x2d,0xc3,0xf0,0xab,0x31,0xfc,0x44,0xb4,0x60,0x32,0xff,0x00,0xa5, -0x5a,0x58,0xf8,0xed,0x37,0xf7,0x9b,0x47,0x3c,0xc5,0x43,0x79,0x4b,0xee,0x3e,0xa8, -0xb5,0xfd,0xaa,0x75,0x98,0x88,0xf3,0x22,0xdc,0x3f,0x3a,0xd5,0xb7,0xfd,0xac,0xae, -0x86,0x3c,0xcb,0x6c,0xfa,0xfc,0xa2,0xbe,0x4c,0x8f,0xc7,0x96,0x4d,0xff,0x00,0x2d, -0x16,0xac,0xa7,0x8c,0xac,0x9f,0x1f,0xbd,0x43,0xf8,0xd5,0xac,0x46,0x63,0x0f,0xb4, -0xcd,0xe3,0xc4,0x98,0x88,0xef,0x3f,0xc0,0xfa,0xfe,0xd7,0xf6,0xb2,0x84,0xe3,0xce, -0xb6,0xff,0x00,0xc7,0x6b,0x52,0xdb,0xf6,0xab,0xd2,0xe4,0x23,0xcc,0x80,0x0f,0xc0, -0xd7,0xc6,0x69,0xe2,0x8b,0x37,0xe9,0x2a,0xfe,0x06,0xa7,0x4d,0x7a,0xd5,0xfa,0x38, -0x3f,0x8d,0x52,0xcc,0x73,0x18,0x6e,0xff,0x00,0x03,0xaa,0x3c,0x51,0x5b,0xf9,0x91, -0xf6,0xdd,0xbf,0xed,0x3b,0xe1,0xe9,0x00,0xde,0x30,0x4f,0xfb,0x55,0xa9,0x6d,0xfb, -0x43,0xf8,0x66,0x7c,0x66,0x5d,0xbf,0xf0,0x21,0x5f,0x0a,0xae,0xad,0x6e,0xdd,0x1c, -0x54,0x83,0x50,0x84,0xf4,0x93,0xf5,0xad,0x16,0x73,0x8f,0x8e,0xf6,0xfb,0x8e,0xb8, -0x71,0x45,0x4e,0xb6,0x3e,0xf8,0xb7,0xf8,0xdf,0xe1,0x99,0xc8,0xc5,0xd0,0x1f,0x88, -0xad,0x28,0x3e,0x2a,0xf8,0x72,0x71,0x91,0x7e,0xa3,0xf2,0xaf,0xcf,0xa5,0xbf,0x51, -0xf7,0x66,0x23,0xe8,0x6a,0x64,0xd4,0xe4,0x5f,0xbb,0x70,0xc3,0xfe,0x05,0x5a,0xac, -0xfb,0x14,0xbe,0x28,0x2f,0xc4,0xeb,0x8f,0x13,0xcb,0xac,0x51,0xfa,0x19,0x17,0x8f, -0xb4,0x29,0xbe,0xee,0xa1,0x1f,0xe7,0x57,0x23,0xf1,0x4e,0x95,0x2f,0xdd,0xbe,0x84, -0xff,0x00,0xc0,0xab,0xf3,0xbe,0x3d,0x6e,0xf1,0x3e,0xe5,0xe4,0xa3,0xe8,0xf5,0x66, -0x3f,0x15,0xea,0xb1,0x11,0xb7,0x50,0x9b,0xfe,0xfb,0x35,0xb2,0xe2,0x1a,0x8b,0xe2, -0xa7,0xf8,0x9d,0x51,0xe2,0x58,0x3d,0xe0,0x7e,0x88,0xa6,0xb1,0x63,0x27,0xdd,0xbb, -0x88,0xff,0x00,0xc0,0xc5,0x4a,0xb7,0x90,0x3f,0xdd,0x99,0x0f,0xd1,0x85,0x7e,0x7b, -0x43,0xe3,0xfd,0x7a,0x2f,0xbb,0xa8,0xcb,0xf9,0xd5,0xf8,0x3e,0x2b,0x78,0x8e,0x0c, -0x62,0xf9,0xcf,0xd4,0xd6,0xeb,0x88,0xa3,0xf6,0xa9,0xbf,0xbc,0xe8,0x8f,0x11,0xd0, -0x7b,0xc5,0x9f,0x7f,0x09,0x14,0xff,0x00,0x10,0xfc,0xe9,0x73,0xef,0x5f,0x08,0xc1, -0xf1,0xbf,0xc4,0xd0,0x7f,0xcb,0xd1,0x6f,0xc4,0xd6,0x9d,0xb7,0xed,0x11,0xe2,0x58, -0x3a,0xcb,0x9f,0xf8,0x11,0xad,0xe3,0xc4,0x34,0x1e,0xf0,0x67,0x44,0x78,0x83,0x0a, -0xf7,0xb9,0xf6,0xe0,0x34,0x66,0xbe,0x37,0xb6,0xfd,0xa7,0x35,0xf8,0x71,0xbf,0x2d, -0xf8,0xd6,0xad,0xbf,0xed,0x57,0xaa,0x2f,0xfa,0xc8,0x49,0x1f,0x85,0x6d,0x1c,0xfb, -0x08,0xf7,0xbf,0xdc,0x6f,0x1c,0xf3,0x06,0xfe,0xd1,0xf5,0x9e,0x68,0x07,0x35,0xf3, -0x0d,0xbf,0xed,0x65,0x28,0xff,0x00,0x59,0x6f,0x9f,0xf8,0x0e,0x6b,0x52,0xdb,0xf6, -0xb1,0xb5,0x38,0xf3,0x6d,0xc0,0xfc,0x2b,0xa2,0x39,0xd6,0x09,0xfd,0xaf,0xc0,0xe9, -0x8e,0x6d,0x83,0x97,0xdb,0x3e,0x8b,0xa2,0xbc,0x26,0x0f,0xda,0xa3,0x47,0x7c,0x07, -0x88,0x03,0xdf,0xad,0x6a,0x5b,0x7e,0xd2,0xde,0x1e,0x98,0x0d,0xe4,0x2f,0xfc,0x0a, -0xb7,0x8e,0x6b,0x83,0x97,0xfc,0xbc,0x46,0xf1,0xc7,0xe1,0xa5,0xb4,0xd1,0xec,0x54, -0x57,0x98,0xdb,0xfe,0xd0,0x3e,0x19,0x9f,0xfe,0x5b,0x05,0xff,0x00,0x81,0x56,0x9c, -0x1f,0x19,0xfc,0x35,0x36,0x3f,0xd3,0x00,0xfc,0x45,0x74,0x47,0x1d,0x86,0x96,0xd5, -0x17,0xde,0x6e,0xb1,0x34,0x65,0xb4,0xd1,0xdd,0xd1,0x5c,0xa4,0x1f,0x13,0xfc,0x3d, -0x38,0x18,0xbe,0x41,0xf5,0x35,0x76,0x2f,0x1c,0xe8,0x93,0x7d,0xdb,0xf8,0x8f,0xe3, -0x5b,0x2c,0x45,0x29,0x6d,0x25,0xf7,0x9a,0x2a,0xb4,0xde,0xd2,0x46,0xf5,0x15,0x97, -0x1f,0x89,0x74,0xc9,0x47,0xcb,0x7d,0x09,0xff,0x00,0x81,0x55,0x94,0xd5,0xac,0xe4, -0xfb,0xb7,0x51,0x1f,0xf8,0x10,0xad,0x54,0xe2,0xf6,0x65,0xa9,0x27,0xb3,0x2d,0xd1, -0x51,0x0b,0xa8,0x5b,0xa4,0xa8,0x7f,0xe0,0x42,0x9e,0x1d,0x58,0x64,0x10,0x7e,0x86, -0xaa,0xe8,0xab,0x8e,0xa2,0x93,0x34,0x66,0x98,0x0b,0x45,0x26,0x45,0x19,0xa0,0x05, -0xa2,0x93,0x34,0xb4,0x00,0x51,0x45,0x14,0x00,0x51,0x45,0x14,0x00,0x51,0x45,0x14, -0x00,0x51,0x45,0x14,0x00,0x51,0x45,0x14,0x00,0x51,0x45,0x14,0x00,0x51,0x45,0x14, -0x00,0x51,0x45,0x14,0x00,0x94,0x6d,0x06,0x96,0x8a,0x00,0x4c,0x51,0x8a,0x5a,0x28, -0x01,0x31,0x4d,0x31,0xa1,0x04,0x15,0x04,0x1e,0xb9,0x14,0xfa,0x28,0x03,0x1e,0xfb, -0xc1,0xba,0x06,0xa9,0x9f,0xb6,0x68,0x7a,0x6d,0xde,0x7a,0xf9,0xf6,0x91,0xbe,0x7f, -0x31,0x5c,0xe5,0xf7,0xc0,0x6f,0x86,0x7a,0x9e,0xef,0xb5,0xfc,0x3c,0xf0,0xad,0xc9, -0x6e,0xa6,0x5d,0x16,0xd9,0x89,0xfc,0x4a,0x57,0x77,0x45,0x00,0x78,0xd6,0xa9,0xfb, -0x1a,0x7c,0x0b,0xd6,0x15,0xc5,0xcf,0xc2,0x6f,0x09,0x12,0xfd,0x5a,0x2d,0x2a,0x28, -0x9b,0xfe,0xfa,0x40,0x08,0xae,0x2e,0xfb,0xfe,0x09,0xb1,0xfb,0x37,0x5f,0xbb,0xb4, -0x9f,0x0c,0xad,0x23,0x2d,0xd7,0xc8,0xd4,0x6f,0x22,0x03,0xe8,0x16,0x60,0x05,0x7d, -0x33,0x45,0x00,0x7c,0x97,0x7f,0xff,0x00,0x04,0xb0,0xfd,0x9b,0xaf,0x22,0x65,0x8f, -0xc1,0x17,0x56,0x6c,0x7f,0x8e,0x0d,0x6e,0xf4,0x91,0xff,0x00,0x7d,0x4a,0xc3,0xf4, -0xac,0x5d,0x0f,0xfe,0x09,0x3f,0xf0,0x43,0xc3,0x5e,0x2b,0xd2,0x3c,0x41,0xa7,0x37, -0x89,0x21,0xba,0xd2,0xef,0x61,0xbe,0x86,0x17,0xd4,0x52,0x48,0x59,0xe3,0x70,0xe1, -0x58,0x34,0x44,0x95,0x25,0x40,0x23,0x3d,0x3b,0xd7,0xd9,0xd4,0x50,0x2b,0x05,0x14, -0x51,0x40,0xc2,0x8a,0x28,0xa0,0x0f,0x29,0xfd,0xa1,0x2e,0x7c,0x9f,0x0a,0x05,0xce, -0x32,0x58,0xfe,0x95,0xf0,0xf6,0xaa,0xfc,0x48,0x7d,0xcd,0x7d,0x97,0xfb,0x4b,0xdc, -0xf9,0x7a,0x24,0x29,0x9f,0xe1,0x3c,0x57,0xc5,0xda,0xb3,0xe2,0x27,0x3f,0x5a,0xfc, -0xeb,0x38,0x7c,0xd8,0xfb,0x76,0x48,0xfc,0xd3,0x8a,0x27,0xef,0xdb,0xc8,0xe4,0x3e, -0x04,0xda,0x0d,0x63,0xf6,0xc8,0xf8,0x6d,0x01,0xc9,0xf2,0xaf,0xe6,0xb9,0xe3,0xfe, -0x99,0xdb,0xca,0xc3,0xf9,0x57,0xeb,0x58,0xaf,0xcb,0x1f,0xd8,0xe7,0x4f,0x6d,0x5f, -0xf6,0xce,0xd0,0xa5,0x03,0x29,0x61,0xa7,0xdf,0x5d,0x37,0xb0,0xf2,0xbc,0xb1,0xfa, -0xc8,0x2b,0xf5,0x38,0x77,0xaf,0xb7,0xc1,0xab,0x51,0x47,0xd1,0xf0,0xd4,0x39,0x32, -0xca,0x7e,0x62,0xd1,0x45,0x15,0xdc,0x7d,0x40,0x98,0xa6,0xc9,0x0a,0x4a,0xa5,0x5d, -0x43,0xa1,0xe0,0xab,0x0c,0x83,0x4f,0xa2,0x80,0x38,0xad,0x6b,0xe0,0xcf,0x83,0x35, -0xf9,0x1a,0x4b,0xbd,0x02,0xd7,0xcc,0x61,0x82,0xd0,0x83,0x17,0xe8,0xa4,0x0a,0xe5, -0xaf,0x7f,0x65,0x8f,0x01,0x5d,0x9c,0xad,0x95,0xc5,0xbf,0xb4,0x53,0x7f,0xf1,0x40, -0xd7,0xaf,0x51,0x5c,0xd2,0xc3,0x51,0x96,0xf0,0x47,0x24,0xb0,0x98,0x79,0xbb,0xca, -0x9a,0xfb,0x8f,0x09,0xba,0xfd,0x8f,0x3c,0x13,0x36,0x4a,0x4d,0xa8,0x46,0x7d,0xdd, -0x08,0xff,0x00,0xd0,0x2b,0x02,0xff,0x00,0xf6,0x26,0xd0,0x27,0xcf,0xd9,0xf5,0x69, -0x22,0x3f,0xf4,0xd2,0xdc,0x3f,0xf2,0x61,0x5f,0x4a,0x51,0xf8,0xd6,0x4f,0x03,0x87, -0x7f,0x60,0xe7,0x79,0x6e,0x16,0x5f,0x63,0xf3,0x3e,0x50,0xbc,0xfd,0x84,0xec,0x64, -0xe6,0x2d,0x6a,0x17,0x3f,0xed,0xda,0x95,0xff,0x00,0xd9,0x8d,0x73,0xd7,0xdf,0xb0, -0x65,0xd9,0x62,0x20,0xbb,0xd3,0x5c,0x76,0x2c,0x59,0x4f,0xfe,0x81,0x5f,0x68,0x62, -0x8c,0x56,0x4f,0x2e,0xa0,0xfa,0x3f,0xbd,0x98,0xbc,0xa7,0x0a,0xfe,0xcb,0xfb,0xd9, -0xf0,0x8d,0xe7,0xec,0x1d,0xae,0x2a,0xb1,0x8d,0x6c,0x65,0x3d,0x82,0x4d,0x8c,0xfe, -0x78,0xae,0x7a,0xfb,0xf6,0x20,0xf1,0x54,0x07,0xe4,0xd3,0x0b,0x0f,0xfa,0x67,0x70, -0x87,0xff,0x00,0x66,0xaf,0xd0,0xfc,0x51,0x8a,0x87,0x96,0xd3,0xe9,0x27,0xf7,0x9c, -0xf2,0xc8,0xf0,0xb2,0xef,0xf8,0x7f,0x91,0xf9,0xa7,0x7b,0xfb,0x1f,0x78,0xc6,0xd4, -0x90,0xba,0x46,0xa0,0x4f,0xfb,0x1f,0x30,0xfd,0x2b,0x0a,0xef,0xf6,0x69,0xf1,0x85, -0x91,0x3b,0xb4,0xed,0x4e,0x3c,0x7a,0xdb,0xb7,0xf8,0x57,0xea,0x4e,0x29,0x0a,0xe6, -0xa1,0xe5,0xab,0xa4,0xdf,0xe0,0x72,0xcb,0x87,0x70,0xd2,0xeb,0xf8,0x23,0xf2,0x7a, -0xef,0xe0,0xd7,0x8a,0x6c,0x72,0x59,0x6e,0xa3,0x03,0xfb,0xf1,0x11,0x59,0xef,0xe0, -0x3f,0x13,0xdb,0x74,0x91,0xce,0x3d,0x54,0xd7,0xeb,0x83,0x44,0xae,0x30,0xc0,0x11, -0xe8,0x45,0x55,0x9f,0x45,0xb0,0xba,0xff,0x00,0x5d,0x65,0x6f,0x30,0xff,0x00,0x6e, -0x25,0x3f,0xd2,0xb2,0x79,0x6c,0xba,0x4f,0xf0,0x38,0xe5,0xc2,0xf8,0x79,0x76,0xfb, -0xbf,0xe0,0x9f,0x92,0x6d,0xa0,0x78,0xaa,0xdf,0xdf,0xeb,0x9a,0x88,0xa7,0x8a,0x2d, -0xfe,0xf4,0x3b,0xbe,0x86,0xbf,0x57,0xee,0x3c,0x03,0xe1,0xbb,0xa0,0x7c,0xdd,0x07, -0x4d,0x7c,0xf7,0x36,0xa9,0xfe,0x15,0x97,0x73,0xf0,0x6f,0xc1,0x77,0x79,0xf3,0x3c, -0x3b,0x67,0xff,0x00,0x00,0x52,0x9f,0xc8,0x8a,0xc9,0xe5,0xb5,0x3b,0xa6,0x72,0x4b, -0x84,0xe9,0x74,0xb7,0xe2,0x8f,0xcb,0x31,0xaa,0xf8,0x8a,0x0f,0xbf,0x68,0xc6,0x94, -0x78,0xab,0x58,0x8b,0xef,0xd8,0xcb,0xc7,0xfb,0x26,0xbf,0x4d,0xae,0x7f,0x67,0x8f, -0x00,0xdd,0x67,0x3a,0x12,0x46,0x4f,0x74,0x99,0xff,0x00,0xf8,0xaa,0xc5,0xbb,0xfd, -0x94,0xfc,0x09,0x75,0x9d,0xb6,0xf7,0x70,0x67,0xfe,0x79,0xca,0xbf,0xd5,0x4d,0x63, -0x2c,0xb2,0xa7,0xf2,0xc5,0x9c,0xb2,0xe1,0x37,0xd3,0xff,0x00,0x4a,0x67,0xe7,0x32, -0xf8,0xee,0xf6,0x3f,0xbf,0x6b,0x28,0xfc,0x0d,0x4c,0x9f,0x11,0x4a,0x9f,0x9e,0x17, -0x1f,0x85,0x7d,0xf7,0x79,0xfb,0x1c,0x78,0x36,0x7f,0xf5,0x37,0x57,0xd1,0x1f,0xf6, -0x8a,0x37,0xfe,0xca,0x2b,0x02,0xf3,0xf6,0x22,0xd1,0x26,0x72,0x62,0xd6,0x9d,0x17, -0xd1,0xed,0x43,0x1f,0xcf,0x78,0xac,0x1e,0x59,0x3e,0xb4,0x97,0xde,0x73,0x4b,0x85, -0xab,0xaf,0x86,0xff,0x00,0x7a,0x3e,0x2b,0x4f,0x89,0x10,0xff,0x00,0x10,0x65,0xfa, -0x8a,0xb1,0x1f,0xc4,0x4b,0x46,0xea,0xf8,0xaf,0xac,0x2f,0x7f,0x61,0x2b,0x49,0x01, -0xf2,0x35,0x88,0x1d,0xbb,0x09,0x2d,0x8a,0xff,0x00,0x53,0x5c,0xf5,0xe7,0xec,0x19, -0xa8,0x1f,0xf5,0x77,0x5a,0x63,0x8f,0xf7,0x98,0x7f,0xec,0xb5,0x83,0xcb,0x5f,0x5a, -0x4c,0xe7,0x97,0x0e,0xe2,0xe3,0xb3,0x97,0xe0,0xcf,0x9e,0xa3,0xf1,0xed,0x9b,0xff, -0x00,0xcb,0x45,0x15,0x66,0x3f,0x19,0xd9,0x3f,0xfc,0xb5,0x4f,0xce,0xbd,0x7a,0xfb, -0xf6,0x11,0xd7,0xe3,0x62,0x23,0x86,0xce,0x61,0xeb,0x1c,0xc0,0x67,0xf3,0xc5,0x73, -0xf7,0x9f,0xb1,0x27,0x8b,0x21,0xdd,0xb3,0x4a,0x76,0x03,0xfe,0x79,0xdc,0x21,0xff, -0x00,0xd9,0xab,0x09,0x65,0xb1,0x5b,0xd3,0x92,0xf9,0x1c,0xd2,0xc9,0x31,0xd1,0xea, -0xff,0x00,0xf0,0x13,0x89,0x4f,0x14,0xd9,0xbf,0xfc,0xb5,0x4f,0xfb,0xea,0xa7,0x4d, -0x7e,0xd5,0xff,0x00,0x8d,0x4f,0xe2,0x2b,0x4a,0xf7,0xf6,0x43,0xf1,0x8d,0xa0,0x2d, -0xfd,0x8f,0xa8,0x81,0xe9,0x1a,0x16,0xfe,0x42,0xb0,0xef,0x7f,0x66,0xdf,0x17,0x58, -0xf2,0xda,0x76,0xa7,0x17,0xfb,0xf6,0xed,0xfe,0x15,0xcf,0x2c,0xbe,0x9a,0xee,0xbe, -0x47,0x3c,0xb2,0xdc,0x74,0x3a,0xfe,0x0c,0xbe,0xba,0xb5,0xbb,0x7f,0x18,0xa9,0x17, -0x51,0x80,0xff,0x00,0x18,0xae,0x46,0xe7,0xe1,0x07,0x89,0xac,0x8e,0x1b,0xed,0x28, -0x47,0x67,0x88,0xd5,0x17,0xf0,0x2f,0x89,0xad,0x8f,0x12,0x3f,0x1e,0xaa,0x6b,0x17, -0x81,0xa5,0xd2,0x46,0x2f,0x0d,0x8d,0x8f,0x63,0xd0,0x16,0xfa,0x23,0xd2,0x4f,0xd6, -0xa5,0x5b,0xdc,0x7d,0xd9,0x88,0xfc,0x6b,0xcc,0xdb,0x42,0xf1,0x4d,0xbe,0x79,0x27, -0xeb,0x9a,0x66,0xcf,0x13,0x41,0xf7,0xa2,0x2d,0x8f,0x43,0x51,0xfd,0x9f,0x17,0xb4, -0x85,0xc9,0x8d,0x8f,0xd8,0xfc,0x4f,0x55,0x4d,0x52,0x74,0xfb,0xb7,0x4e,0x3e,0x8d, -0x56,0x23,0xd7,0xef,0xe3,0xfb,0x97,0xb2,0x8f,0xa3,0x1a,0xf2,0x1f,0xed,0x5f,0x10, -0xc2,0x3e,0x6b,0x47,0x3f,0x4a,0x51,0xe2,0x9d,0x62,0x3f,0xbf,0x67,0x27,0xfd,0xf3, -0x51,0xfd,0x9d,0x2e,0x92,0x41,0xed,0x31,0xb0,0xde,0x9b,0xfb,0xcf,0x67,0x8f,0xc6, -0x1a,0xc4,0x5f,0x77,0x50,0x97,0xfe,0xfa,0xab,0xb0,0x7c,0x44,0xd7,0xe0,0xfb,0xba, -0x84,0x9f,0x8d,0x78,0x7a,0xf8,0xea,0xf2,0x3f,0xf5,0x96,0xb2,0x8f,0xf8,0x09,0xa9, -0x53,0xe2,0x29,0x5f,0xbf,0x14,0x8b,0xf5,0x14,0x96,0x06,0xbc,0x7e,0x17,0xf8,0x94, -0xb1,0xd8,0xb8,0x6f,0x19,0x23,0xde,0x60,0xf8,0xb7,0xe2,0x48,0x3f,0xe5,0xf4,0x9f, -0xad,0x69,0x43,0xf1,0xd7,0xc4,0xd0,0x81,0x8b,0x8c,0xe3,0xdc,0xd7,0xcf,0x91,0xfc, -0x48,0x87,0xb8,0x65,0xfc,0x2a,0xcc,0x7f,0x11,0x2d,0x5b,0xab,0xe3,0xea,0x2a,0x95, -0x0c,0x5c,0x7e,0x19,0x3f,0xbc,0xd5,0x67,0x18,0x98,0x6e,0xe4,0xbe,0x47,0xd1,0xb6, -0xbf,0xb4,0x67,0x88,0xe0,0x00,0x17,0xcf,0xd0,0xd6,0xa5,0xbf,0xed,0x3f,0xae,0x46, -0x7e,0x70,0xc7,0xf1,0xaf,0x99,0xe3,0xf1,0xed,0x9b,0x7f,0xcb,0x41,0xf8,0xd5,0x98, -0xfc,0x69,0x66,0xf8,0xfd,0xea,0x7e,0x75,0x4a,0x58,0xf8,0x6d,0x26,0x6f,0x1e,0x20, -0xaf,0x1f,0xb6,0xfe,0xe3,0xea,0x5b,0x7f,0xda,0xb3,0x50,0x4c,0x6f,0x84,0x93,0xf4, -0x15,0xa9,0x6b,0xfb,0x58,0x37,0x1e,0x6c,0x39,0xff,0x00,0x80,0xd7,0xc9,0xd1,0xf8, -0xae,0xd1,0xff,0x00,0xe5,0xa2,0x7e,0x75,0x3a,0x78,0x86,0xd5,0xfa,0x3a,0xfe,0x75, -0x6b,0x19,0x98,0xc3,0xed,0x33,0xa6,0x3c,0x4d,0x59,0x7f,0xcb,0xc4,0x7d,0x7f,0x6f, -0xfb,0x56,0xd9,0x39,0xc3,0xc2,0x07,0xd4,0x56,0xad,0xb7,0xed,0x45,0xa2,0xc9,0x8f, -0x31,0x00,0xfc,0x6b,0xe3,0x15,0xd6,0x2d,0xdb,0xf8,0x87,0xe7,0x52,0x2e,0xa5,0x03, -0x7f,0x1e,0x2b,0x45,0x9a,0xe6,0x11,0xdd,0xfe,0x07,0x5c,0x38,0x9a,0xb7,0xf3,0x26, -0x7d,0xbb,0x6d,0xfb,0x48,0x78,0x7a,0x7c,0x6e,0x60,0xbf,0xf0,0x2a,0xd4,0x83,0xe3, -0xdf,0x86,0x66,0xc7,0xef,0xc0,0xff,0x00,0x81,0x0a,0xf8,0x48,0x5f,0x44,0x7a,0x3f, -0xeb,0x4f,0x5b,0xc5,0xea,0x25,0xc7,0xe3,0x5a,0x2c,0xef,0x1b,0x1d,0xd2,0xfb,0x8e, -0xc8,0xf1,0x35,0x5e,0xa9,0x33,0xef,0xd8,0x3e,0x30,0xf8,0x6e,0x7c,0x62,0xec,0x0f, -0xc4,0x55,0xe8,0x7e,0x25,0x78,0x7e,0x7c,0x6d,0xbe,0x4f,0xc6,0xbf,0x3e,0x56,0xf9, -0x86,0x31,0x3b,0x7f,0xdf,0x55,0x3a,0x6a,0xd7,0x51,0xfd,0xcb,0xb9,0x07,0xd1,0xab, -0x65,0xc4,0x18,0x85,0xbc,0x11,0xd5,0x1e,0x25,0x7d,0x60,0x7e,0x86,0x47,0xe3,0x4d, -0x16,0x5c,0x62,0xfe,0x2f,0xc4,0xd5,0xa8,0xfc,0x45,0xa6,0xcb,0xf7,0x6f,0x61,0x3f, -0xf0,0x2a,0xfc,0xf1,0x8f,0xc4,0x7a,0x8c,0x7f,0x76,0xf6,0x51,0xff,0x00,0x02,0xab, -0x91,0x78,0xdf,0x5a,0x87,0xee,0xea,0x12,0x7e,0x75,0xb2,0xe2,0x29,0xaf,0x8a,0x9f, -0xe2,0x74,0x47,0x89,0x21,0xd6,0x07,0xe8,0x52,0xea,0x96,0x8f,0xf7,0x6e,0x62,0x3f, -0x46,0x15,0x2a,0xdc,0x44,0xdd,0x24,0x43,0xf4,0x22,0xbf,0x3f,0x20,0xf8,0x97,0xe2, -0x08,0x08,0xdb,0x7c,0xe7,0xeb,0x57,0xe1,0xf8,0xc5,0xe2,0x48,0x7f,0xe5,0xec,0x9a, -0xde,0x3c,0x45,0x0f,0xb5,0x4d,0x9d,0x31,0xe2,0x2c,0x3b,0xde,0x2c,0xfb,0xdc,0x3a, -0x9e,0x8c,0x0f,0xe3,0x4b,0x9a,0xf8,0x66,0xdf,0xe3,0xdf,0x89,0x2d,0xff,0x00,0xe5, -0xb6,0x7f,0x13,0x5a,0x96,0xdf,0xb4,0x87,0x88,0x21,0xc6,0xe6,0x2d,0xf8,0x9a,0xdd, -0x71,0x0e,0x1d,0xef,0x16,0x8d,0xe3,0x9f,0xe1,0x1e,0xec,0xfb,0x4b,0x38,0xa3,0x22, -0xbe,0x42,0xb7,0xfd,0xa8,0xb5,0x98,0xf1,0xb9,0x0f,0xe7,0x9a,0xd4,0xb5,0xfd,0xab, -0x2e,0xd7,0x1e,0x64,0x44,0xfe,0x15,0xba,0xcf,0xb0,0x8f,0x7b,0xfd,0xc7,0x44,0x73, -0xac,0x1c,0xbe,0xd1,0xf5,0x4e,0x45,0x15,0xf3,0x55,0xb7,0xed,0x5c,0xac,0x47,0x99, -0x00,0x03,0xfd,0xda,0xd5,0xb7,0xfd,0xaa,0x74,0xe6,0xc6,0xf8,0x97,0xf2,0x35,0xbc, -0x73,0x9c,0x14,0xbe,0xd9,0xd1,0x1c,0xd3,0x09,0x2d,0xa6,0x8f,0xa0,0x33,0x4b,0x5e, -0x25,0x6b,0xfb,0x4e,0x68,0xb2,0xfd,0xf0,0x8b,0xf8,0x9a,0xd5,0xb7,0xfd,0xa2,0xfc, -0x3b,0x36,0x01,0x60,0x0f,0xfb,0xd5,0xd1,0x1c,0xcf,0x07,0x2d,0xaa,0x23,0x75,0x8e, -0xc3,0xcb,0x69,0xa3,0xd6,0x28,0xaf,0x3a,0x83,0xe3,0x9f,0x86,0xe6,0xc7,0xfa,0x40, -0x5c,0xff,0x00,0xb4,0x2b,0x46,0xdf,0xe2,0xdf,0x87,0x6e,0x31,0x8b,0xb5,0x1f,0x52, -0x2b,0x75,0x8d,0xc3,0x4b,0x6a,0x8b,0xef,0x36,0x58,0x8a,0x2f,0x69,0x23,0xb4,0xa2, -0xb9,0xa8,0xfe,0x22,0xe8,0x12,0xfd,0xdb,0xf4,0xcd,0x5b,0x8b,0xc6,0x1a,0x44,0xdf, -0x76,0xfa,0x2f,0xc4,0xd6,0xca,0xbd,0x29,0x6d,0x25,0xf7,0x9a,0x2a,0x90,0x7b,0x33, -0x6a,0x8a,0xce,0x4f,0x10,0x69,0xd2,0x7d,0xdb,0xc8,0x5b,0xfe,0x05,0x56,0x13,0x51, -0xb6,0x7e,0x97,0x11,0x1f,0xf8,0x18,0xad,0x14,0xe2,0xf6,0x65,0x73,0x2e,0xe5,0x9a, -0x2a,0x35,0xb8,0x89,0xfe,0xec,0x88,0x7e,0x8d,0x4f,0xdc,0x3d,0x45,0x55,0xca,0x16, -0x8a,0x29,0x33,0x4c,0x05,0xa2,0x93,0x34,0x66,0x80,0x16,0x8a,0x4a,0x33,0x40,0x0b, -0x45,0x14,0x94,0x01,0xf3,0xdf,0xed,0x45,0x77,0xb6,0xde,0x38,0xf3,0xd2,0x3c,0x57, -0xc7,0x5e,0x24,0xbc,0x5b,0x7b,0x39,0x58,0x9c,0x61,0x4d,0x7d,0x53,0xfb,0x54,0x5f, -0x88,0xee,0x4a,0x93,0x8c,0x28,0x02,0xbe,0x1a,0xf8,0x97,0xe2,0x95,0xb6,0xb3,0x78, -0x95,0xf2,0xc4,0x73,0xcd,0x7e,0x79,0x88,0xa6,0xeb,0xe6,0x53,0xf2,0xb1,0xf9,0x1f, -0x13,0xd4,0x73,0xc4,0xaa,0x31,0xdd,0x9e,0xad,0xff,0x00,0x04,0xe8,0xd3,0xe6,0xd6, -0x3f,0x69,0x8f,0x14,0xea,0xe1,0x37,0xda,0x69,0xfe,0x1f,0x92,0x06,0x7c,0xfd,0xd9, -0x25,0xb8,0x8b,0x60,0xfc,0x44,0x4f,0xf9,0x57,0xe9,0x78,0xaf,0x87,0x7f,0xe0,0x96, -0xbe,0x07,0x96,0xcb,0xc1,0x1e,0x34,0xf1,0xa4,0xe0,0x8f,0xed,0xcd,0x42,0x3b,0x3b, -0x70,0xc3,0xac,0x56,0xca,0xd9,0x61,0xf5,0x69,0x98,0x7f,0xc0,0x2b,0xee,0x3a,0xfb, -0xba,0x11,0xe5,0xa6,0x91,0xfa,0x46,0x59,0x43,0xea,0xf8,0x3a,0x74,0xfb,0x20,0xa2, -0x8a,0x2b,0xa0,0xf5,0x02,0x8a,0x28,0xa0,0x02,0x8a,0x28,0xa0,0x02,0x8a,0x28,0xa0, -0x02,0x8a,0x28,0xa0,0x02,0x8a,0x28,0xa0,0x02,0x8a,0x28,0xa0,0x02,0x8a,0x28,0xa0, -0x02,0x8a,0x28,0xa0,0x02,0x8a,0x28,0xa0,0x02,0x93,0x14,0xb4,0x50,0x02,0x62,0x8c, -0x52,0xd1,0x40,0x0d,0x23,0xd2,0x94,0x0a,0x5a,0x28,0x01,0x31,0x46,0xd1,0x4b,0x45, -0x00,0x46,0xd0,0xa3,0x82,0x19,0x15,0x81,0xec,0x45,0x54,0x9b,0x40,0xd3,0x6e,0x46, -0x26,0xd3,0xed,0x65,0x1f,0xed,0xc2,0xa7,0xfa,0x55,0xfa,0x2a,0x5c,0x53,0xdd,0x12, -0xe2,0x9e,0xe8,0xe7,0x6e,0x7e,0x1e,0x78,0x62,0xf3,0xfd,0x76,0x81,0xa7,0x3f,0xfd, -0xbb,0x20,0xfe,0x42,0xb2,0xee,0x7e,0x0b,0xf8,0x26,0xef,0x3e,0x67,0x87,0x2c,0xc6, -0x7f,0xb8,0xa5,0x3f,0x91,0x15,0xdb,0x51,0x59,0xba,0x34,0x9e,0xf1,0x5f,0x71,0x93, -0xa1,0x4a,0x5b,0xc1,0x7d,0xc8,0xf3,0x2b,0xbf,0xd9,0xc7,0xc0,0x37,0x60,0x8f,0xec, -0x51,0x1f,0xba,0x4c,0xff,0x00,0xd4,0x9a,0xc7,0xba,0xfd,0x93,0xfc,0x09,0x70,0x72, -0xb0,0xdd,0xc3,0xec,0x92,0xaf,0xf5,0x53,0x5e,0xcb,0x45,0x64,0xf0,0x94,0x1f,0xd8, -0x46,0x0f,0x03,0x86,0x7b,0xd3,0x5f,0x71,0xe0,0x37,0xbf,0xb1,0xaf,0x84,0x27,0xcf, -0x91,0x77,0x79,0x11,0x3f,0xdf,0xd8,0xf8,0xfd,0x05,0x61,0x5d,0x7e,0xc3,0xba,0x2c, -0xb9,0xf2,0xf5,0xc6,0x5f,0x4d,0xd6,0x80,0xff,0x00,0xec,0xf5,0xf4,0xdd,0x15,0x9b, -0xc0,0xe1,0xdf,0xd9,0xfc,0xcc,0x9e,0x5b,0x84,0x7f,0x63,0xf3,0x3e,0x46,0xd4,0x3f, -0x61,0x38,0x98,0x9f,0xb3,0x6a,0xd6,0x92,0x0f,0xfa,0x69,0x01,0x4f,0xe5,0x9a,0xe7, -0xef,0x3f,0x60,0xcd,0x49,0x89,0xf2,0xee,0xb4,0xb7,0x1d,0xbe,0x77,0x07,0xff,0x00, -0x40,0xaf,0xb6,0x31,0x46,0x2b,0x37,0x97,0x50,0xe9,0x75,0xf3,0x31,0x79,0x46,0x15, -0xf4,0x7f,0x79,0xf0,0x45,0xff,0x00,0xec,0x29,0xe2,0x18,0x81,0x31,0x5b,0x5a,0x4d, -0x8e,0xd1,0xdc,0x00,0x4f,0xe7,0x8a,0xc0,0xba,0xfd,0x89,0xbc,0x5d,0x10,0x24,0x69, -0x12,0x71,0xfd,0xcb,0x84,0x3f,0xc9,0xab,0xf4,0x5b,0x14,0x98,0x35,0x1f,0xd9,0xb4, -0xfa,0x49,0x9c,0xf2,0xc8,0xf0,0xd2,0xea,0xff,0x00,0x0f,0xf2,0x3f,0x33,0x2f,0xbf, -0x64,0xaf,0x18,0x59,0x96,0x1f,0xd8,0xda,0x96,0x47,0xfc,0xf3,0x8d,0x98,0x7e,0x60, -0x56,0x15,0xdf,0xec,0xe7,0xe2,0xcb,0x30,0x49,0xd3,0xf5,0x38,0xc0,0xea,0x5a,0xdd, -0xb1,0xfc,0xab,0xf5,0x47,0x14,0x9b,0x73,0xd6,0xb3,0x79,0x6f,0x6a,0x8c,0xe5,0x97, -0x0e,0xe1,0xe5,0xd7,0xf0,0x47,0xe4,0xbd,0xcf,0xc2,0x3f,0x11,0xd9,0x83,0x93,0x70, -0x9f,0xef,0x46,0x45,0x51,0x93,0xc0,0xfe,0x25,0xb7,0xe9,0x23,0xf1,0xea,0xa6,0xbf, -0x5c,0xde,0xde,0x39,0x06,0x19,0x15,0x87,0xa3,0x0c,0xd5,0x3b,0x8f,0x0f,0x69,0x77, -0x9f,0xeb,0xf4,0xeb,0x49,0xbf,0xdf,0x81,0x5b,0xf9,0x8a,0xcd,0xe5,0xd3,0xe9,0x3f, -0xc0,0xe3,0x9f,0x0b,0xd0,0x97,0x6f,0xbb,0xfe,0x09,0xf9,0x24,0xda,0x1f,0x8a,0x2d, -0xfb,0x96,0xc7,0xd6,0xa3,0x2b,0xe2,0x58,0x3a,0xc5,0xbb,0xe8,0x6b,0xf5,0x7a,0xe3, -0xe1,0xb7,0x85,0x6e,0xb3,0xe6,0xf8,0x7b,0x4d,0x6c,0xf5,0x3f,0x66,0x40,0x7f,0x41, -0x59,0x57,0x5f,0x04,0x7c,0x0f,0x77,0xf7,0xfc,0x3b,0x68,0x3d,0x76,0xee,0x5f,0xe4, -0x6b,0x27,0x96,0xd5,0xee,0x99,0xc7,0x2e,0x14,0xa6,0xf6,0xb7,0xe2,0x7e,0x5a,0xff, -0x00,0x6a,0xf8,0x86,0x1f,0xbd,0x6a,0xc7,0x1e,0x94,0xe1,0xe2,0x9d,0x62,0x2f,0xbf, -0x67,0x27,0xfd,0xf3,0x5f,0xa6,0x37,0x7f,0xb3,0x5f,0x80,0x2e,0xff,0x00,0xe6,0x0c, -0x61,0xff,0x00,0xae,0x73,0x3f,0xf5,0x26,0xb1,0xee,0xbf,0x64,0xbf,0x01,0xdc,0x92, -0x56,0x1b,0xd8,0x7d,0x92,0x65,0xfe,0xaa,0x6b,0x17,0x96,0xd5,0xfe,0x58,0x9c,0xb2, -0xe1,0x3e,0xcb,0xf1,0x7f,0xe4,0x7e,0x74,0x8f,0x1c,0xde,0xc6,0x7e,0x7b,0x59,0x07, -0xe0,0x6a,0x54,0xf8,0x88,0xeb,0xf7,0xe2,0x71,0xf9,0xd7,0xde,0xd7,0xbf,0xb1,0x87, -0x85,0x27,0xcf,0x91,0x7f,0x79,0x0f,0xfb,0xea,0xaf,0xfe,0x15,0x89,0x75,0xfb,0x0e, -0x68,0xf2,0x92,0x63,0xd7,0x18,0x7b,0x35,0xa0,0x3f,0xfb,0x3d,0x61,0x2c,0xb6,0xa7, -0x5a,0x6b,0xef,0x39,0xa5,0xc2,0xd5,0x97,0xc3,0x7f,0xbd,0x1f,0x16,0xc7,0xf1,0x1e, -0x2e,0xe0,0x8a,0xb3,0x1f,0xc4,0x4b,0x66,0xea,0xf5,0xf5,0x5e,0xa1,0xfb,0x08,0x29, -0xcf,0xd9,0xb5,0x6b,0x39,0x07,0x6f,0x36,0x16,0x5f,0xe5,0x9a,0xe7,0xee,0xff,0x00, -0x60,0xbd,0x4c,0x82,0x52,0xe7,0x4a,0x7f,0x6d,0xce,0x3f,0xf6,0x4a,0xc2,0x59,0x6b, -0xeb,0x49,0x9c,0xd2,0xe1,0xcc,0x5c,0x76,0x72,0xfc,0x19,0xf3,0xec,0x7e,0x3d,0xb4, -0x7c,0x66,0x40,0x3e,0xb5,0x66,0x3f,0x1a,0xd9,0xbe,0x3f,0x7a,0xb5,0xea,0xfa,0x87, -0xec,0x2f,0xe2,0x58,0x58,0x88,0xac,0x6d,0xe7,0x03,0xbc,0x57,0x0a,0x07,0xea,0x45, -0x61,0x5e,0x7e,0xc5,0x3e,0x2f,0x81,0x49,0x1a,0x3c,0xa7,0x1f,0xf3,0xce,0x74,0x6f, -0xe4,0xd5,0x83,0xcb,0xa3,0xd6,0x9c,0x97,0xc8,0xe7,0x96,0x49,0x8e,0x8e,0xd2,0x7f, -0xf8,0x09,0xc6,0xc7,0xe2,0xcb,0x47,0xc7,0xef,0x53,0xf3,0xa9,0xd3,0xc4,0x76,0xaf, -0xd2,0x45,0x3f,0x8d,0x5d,0xbc,0xfd,0x93,0x7c,0x61,0x66,0x0b,0x7f,0x62,0xea,0x60, -0x7f,0xb1,0x13,0x37,0xf2,0x15,0x87,0x79,0xfb,0x3b,0xf8,0xb2,0xc7,0xef,0xe9,0xfa, -0x9c,0x5f,0xef,0xdb,0xb0,0xfe,0x95,0xce,0xf0,0x14,0x97,0x46,0xbe,0x47,0x3c,0xb2, -0xec,0x74,0x3e,0xd7,0xe0,0xcd,0x55,0xd6,0xad,0xdb,0xf8,0x87,0xe7,0x52,0x0d,0x4e, -0x06,0xfe,0x31,0x5c,0x6d,0xc7,0xc2,0x9f,0x10,0xda,0x31,0x52,0xd3,0xa1,0x07,0x18, -0x68,0xc8,0xaa,0x72,0x78,0x23,0xc4,0x96,0xfd,0x24,0x63,0x8f,0xf6,0x4d,0x66,0xf0, -0x34,0xba,0x48,0xc1,0xe1,0x71,0xb1,0xec,0xcf,0x41,0x17,0xf0,0xff,0x00,0x7a,0x9e, -0xb7,0x91,0xf6,0x7f,0xd6,0xbc,0xd1,0xb4,0x4f,0x13,0x41,0xdc,0x9f,0x6e,0x69,0xa4, -0x78,0x96,0x0e,0xb1,0x16,0xfc,0x6b,0x37,0x97,0xc5,0xed,0x22,0x7d,0x9e,0x35,0x7d, -0x84,0xfe,0x67,0xa8,0xad,0xe0,0x1d,0x25,0x23,0xf1,0xa9,0x93,0x50,0x95,0x7e,0xed, -0xc3,0x8f,0xa3,0x57,0x93,0xff,0x00,0x6a,0xf8,0x82,0x1f,0xbd,0x6a,0xc7,0x1e,0x94, -0xa3,0xc5,0x3a,0xbc,0x5f,0x7e,0xd2,0x4f,0xfb,0xe6,0xa1,0xe5,0xcf,0xa4,0x90,0x73, -0x62,0xe3,0xbd,0x37,0xf7,0x9e,0xbd,0x1e,0xb5,0x7b,0x11,0xf9,0x2e,0xe4,0x1f,0x47, -0x35,0x65,0x3c,0x55,0xaa,0xc7,0xf7,0x6f,0xa5,0xff,0x00,0xbe,0x8d,0x78,0xe0,0xf1, -0xcd,0xe4,0x7f,0x7e,0xda,0x41,0xff,0x00,0x01,0x35,0x2a,0x7c,0x44,0x61,0xf7,0xa2, -0x71,0x51,0xfd,0x9f,0x55,0x6c,0xff,0x00,0x11,0xac,0x5e,0x26,0x3b,0xc2,0x47,0xb4, -0xc3,0xe3,0xcd,0x72,0x0f,0xbb,0x7d,0x27,0xe2,0x6a,0xec,0x3f,0x14,0x7c,0x43,0x0e, -0x31,0x7a,0xe7,0xea,0x6b,0xc4,0x13,0xe2,0x3c,0x47,0x19,0xdd,0x56,0xa3,0xf8,0x89, -0x6c,0x71,0x97,0x22,0x8f,0xa9,0xe2,0x63,0xb5,0xfe,0xf3,0x45,0x9a,0x57,0x86,0xfc, -0xcb,0xef,0x3d,0xda,0xdf,0xe3,0x4f,0x89,0x20,0xc6,0x2e,0x4f,0xe6,0x6b,0x46,0xdb, -0xe3,0xff,0x00,0x88,0xa0,0xc6,0x64,0x2c,0x7d,0x77,0x57,0x81,0x47,0xe3,0xdb,0x46, -0xff,0x00,0x96,0x95,0x66,0x3f,0x1a,0xda,0x37,0xfc,0xb5,0x5a,0x7c,0x98,0xc8,0x6d, -0x27,0xf7,0x9b,0x47,0x3c,0xad,0x1f,0xb6,0xfe,0xe3,0xe8,0x8b,0x7f,0xda,0x53,0x5f, -0x8b,0x86,0x27,0x1e,0xcd,0x5a,0x96,0xdf,0xb5,0x26,0xab,0x10,0x1b,0xe3,0x63,0xf5, -0x35,0xf3,0x5c,0x7e,0x2d,0xb4,0x7e,0x92,0xaf,0xe7,0x53,0xaf,0x88,0xed,0x5f,0xa3, -0xaf,0xe7,0x56,0xab,0xe3,0xe1,0xb4,0xd9,0xd3,0x1e,0x22,0xac,0xbf,0xe5,0xe1,0xf5, -0x0d,0xb7,0xed,0x59,0x73,0x91,0xe6,0xa1,0xff,0x00,0xbe,0x45,0x6b,0x5b,0x7e,0xd5, -0xb0,0xb6,0x03,0xc2,0x3e,0xa4,0x57,0xc9,0xc9,0xad,0xdb,0xbf,0xf1,0x8f,0xce,0xa5, -0x5d,0x52,0x06,0xfe,0x2a,0xb5,0x98,0x66,0x10,0xfb,0x6f,0xee,0x3a,0xe1,0xc4,0x95, -0x97,0xdb,0x47,0xd8,0x16,0xbf,0xb5,0x26,0x9a,0xc3,0xf7,0xa8,0xbf,0x91,0xad,0x4b, -0x6f,0xda,0x5b,0x44,0x9b,0x19,0x0a,0x3f,0x1a,0xf8,0xb4,0x6a,0x30,0x9e,0x77,0x0a, -0x6b,0xea,0xb0,0x20,0x3f,0x3f,0xeb,0x5b,0x47,0x36,0xc7,0xad,0x2f,0x7f,0x91,0xd4, -0xb8,0x9e,0xac,0x77,0x68,0xfb,0xa2,0xdf,0xf6,0x84,0xf0,0xec,0xa0,0x66,0x50,0x0f, -0xb3,0x0a,0xb7,0x37,0xc7,0x8f,0x0d,0x43,0x6e,0x65,0x7b,0x8c,0x01,0xdb,0x70,0xcd, -0x7e,0x7b,0xdf,0xf8,0xce,0xd6,0xc9,0x09,0x33,0x85,0xc7,0xfb,0x55,0xc0,0x78,0x93, -0xe2,0xcc,0x80,0x34,0x76,0x92,0xb1,0x27,0xbe,0x6b,0xd5,0xa1,0x8f,0xcc,0x2a,0xbd, -0x52,0x17,0xfa,0xd9,0x56,0x4f,0x96,0x9d,0x3e,0x66,0x7b,0xb7,0xed,0x37,0xf1,0xc6, -0xcf,0x5f,0xd5,0xee,0xe4,0xb5,0x93,0x31,0x74,0x8c,0x1e,0xb5,0xf2,0xd7,0x87,0x3c, -0x2b,0xaf,0xfc,0x6d,0xf1,0xe6,0x9f,0xe1,0x8d,0x0a,0x16,0xb8,0xd4,0x35,0x09,0x76, -0x6e,0xfe,0x08,0x63,0xcf,0xcd,0x23,0x9e,0xca,0xa3,0x24,0x9f,0x6f,0x5a,0x93,0xc2, -0xbe,0x13,0xf1,0x57,0xc6,0x6f,0x16,0x41,0xa3,0x68,0x36,0x13,0x6a,0xba,0x95,0xc3, -0x70,0x89,0xf7,0x51,0x7b,0xbb,0xb1,0xe1,0x54,0x77,0x27,0xfa,0x8a,0xfd,0x46,0xfd, -0x97,0x3f,0x65,0xdd,0x1b,0xf6,0x79,0xf0,0xdb,0x39,0x31,0xea,0x5e,0x2b,0xbe,0x41, -0xfd,0xa1,0xa9,0xe3,0x8c,0x75,0xf2,0xa2,0xcf,0x21,0x01,0xfc,0x58,0xf2,0x7b,0x01, -0xe9,0x61,0x70,0xaf,0x99,0xce,0x5b,0xbd,0x5b,0x34,0xcb,0x30,0x15,0x73,0x1c,0x53, -0xc6,0x62,0x3f,0xe0,0x7a,0x23,0xd2,0xfe,0x17,0x7c,0x3e,0xd3,0x7e,0x15,0xf8,0x03, -0x44,0xf0,0xa6,0x92,0x81,0x6c,0x74,0xbb,0x65,0x81,0x5b,0x1c,0xbb,0x75,0x67,0x3e, -0xec,0xc4,0x93,0xf5,0xae,0xaa,0x90,0x0c,0x52,0xd7,0xd0,0x25,0x6d,0x0f,0xd2,0xd2, -0xb2,0xb2,0x0a,0x28,0xa2,0x81,0x85,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14, -0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14, -0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14, -0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14, -0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14, -0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14, -0x51,0x40,0x05,0x14,0x51,0x40,0x09,0x46,0x29,0x68,0xa0,0x04,0xc5,0x18,0xa5,0xa2, -0x80,0x13,0x6d,0x26,0xda,0x75,0x14,0x01,0x13,0xda,0xc3,0x26,0x77,0xc4,0x8d,0x9e, -0xb9,0x50,0x6a,0x8d,0xc7,0x86,0xb4,0x9b,0xa0,0x44,0xda,0x5d,0x9c,0xca,0x7a,0x89, -0x20,0x43,0xfd,0x2b,0x4e,0x8a,0x97,0x18,0xbd,0xd1,0x2e,0x31,0x7b,0xa3,0x98,0xb9, -0xf8,0x65,0xe1,0x3b,0xb1,0xfb,0xdf,0x0e,0xe9,0xa7,0xe9,0x6c,0x8b,0xfc,0x85,0x65, -0xdd,0x7c,0x0e,0xf0,0x35,0xd9,0x26,0x4f,0x0e,0x5a,0x0f,0xf7,0x37,0x27,0xf2,0x22, -0xbb,0xba,0x2b,0x37,0x42,0x93,0xde,0x2b,0xee,0x31,0x78,0x7a,0x32,0xde,0x0b,0xee, -0x47,0x96,0x5d,0xfe,0xcc,0xfe,0x00,0xbb,0x24,0xff,0x00,0x64,0x34,0x24,0xff,0x00, -0xcf,0x39,0x9b,0x8f,0xcc,0x9a,0xc7,0xba,0xfd,0x91,0xfc,0x0b,0x71,0xf7,0x12,0xf6, -0x13,0xfe,0xcc,0xaa,0x7f,0x9a,0xd7,0xb5,0xd1,0x59,0x3c,0x25,0x07,0xf6,0x11,0x8b, -0xc0,0xe1,0x9f,0xfc,0xbb,0x47,0xcf,0x37,0xbf,0xb1,0x77,0x85,0x67,0x27,0xc8,0xd4, -0x2e,0xe1,0x1e,0x8e,0x88,0xff,0x00,0xcb,0x15,0x8b,0x75,0xfb,0x0d,0x69,0x12,0xe7, -0xcb,0xd7,0x58,0x7a,0x6f,0xb4,0x07,0xff,0x00,0x66,0xaf,0xa8,0x28,0xac,0xde,0x07, -0x0e,0xfe,0xcf,0xe6,0x64,0xf2,0xcc,0x2b,0xfb,0x1f,0x8b,0x3e,0x3e,0xbf,0xfd,0x84, -0x1c,0x93,0xf6,0x7d,0x56,0xc6,0x40,0x7f,0xe7,0xac,0x4c,0xbf,0xc8,0x1a,0xc1,0xbd, -0xfd,0x83,0x35,0x65,0xc9,0x8e,0xe7,0x4b,0x97,0xe8,0xee,0x0f,0xea,0xa2,0xbe,0xdf, -0xa4,0x6e,0x95,0x93,0xcb,0xa8,0x74,0xbf,0xde,0x60,0xf2,0x8c,0x2b,0xe8,0xfe,0xf3, -0xe0,0x0b,0xef,0xd8,0x67,0xc4,0xd1,0x93,0xe5,0xe9,0xf0,0x4c,0x3f,0xe9,0x95,0xc2, -0x0f,0xe6,0x45,0x61,0x5e,0x7e,0xc5,0x7e,0x30,0xb7,0x04,0x8d,0x16,0x63,0xff,0x00, -0x5c,0xe7,0x46,0xfe,0x4c,0x6b,0xf4,0x6c,0x75,0xa0,0x75,0xac,0xde,0x5d,0x4f,0xa4, -0x99,0xcf,0x2c,0x8f,0x0c,0xfa,0xbf,0xc3,0xfc,0x8f,0xcc,0x3b,0xcf,0xd9,0x53,0xc5, -0xd6,0x8c,0x41,0xd1,0x35,0x51,0x8f,0xee,0xc0,0xec,0x3f,0x30,0x2b,0x16,0xfb,0xf6, -0x7b,0xf1,0x56,0x9e,0xa5,0xa4,0xb1,0xd4,0xa1,0x03,0xbb,0xc0,0xc3,0xfa,0x57,0xea, -0xb8,0xe9,0x4d,0x3c,0xd4,0x3c,0xbb,0xb4,0xd9,0xcb,0x2e,0x1d,0xc3,0xbe,0xbf,0x82, -0x3f,0x24,0x67,0xf8,0x59,0xaf,0xda,0x9c,0x16,0x99,0x7f,0xde,0x42,0x2a,0xa3,0xf8, -0x2b,0xc4,0x50,0x1e,0x25,0x6f,0xc4,0x1a,0xfd,0x75,0x96,0xd6,0x19,0x57,0xe7,0x89, -0x1f,0xfd,0xe5,0x06,0xb3,0x2f,0x3c,0x37,0xa4,0x5d,0xff,0x00,0xaf,0xd2,0xec,0xa6, -0xff,0x00,0xae,0x96,0xe8,0xdf,0xcc,0x57,0x34,0xf0,0x72,0x8f,0xdb,0xfc,0x3f,0xe0, -0x9e,0x65,0x5e,0x1d,0xc3,0xc7,0xb7,0xdd,0xff,0x00,0x04,0xfc,0x94,0x9b,0x44,0xf1, -0x2c,0x2b,0xc3,0x13,0xf4,0xcd,0x64,0x5d,0xe8,0x9e,0x28,0x94,0x13,0x99,0x31,0xec, -0x09,0xaf,0xd4,0x6f,0x14,0x78,0x37,0x40,0x44,0x98,0xae,0x87,0xa6,0x83,0x8e,0xa2, -0xd2,0x3f,0xf0,0xac,0x0f,0x06,0xf8,0x4b,0x43,0x9e,0xf1,0xd6,0x5d,0x1b,0x4f,0x91, -0x72,0x38,0x7b,0x54,0x23,0xf9,0x57,0x1c,0x63,0x25,0x2b,0x2b,0x7d,0xc7,0x8f,0x2c, -0x97,0x0c,0xa5,0xca,0x92,0xfb,0x8f,0xcc,0x9b,0x2f,0x86,0x9e,0x2d,0xf1,0x2d,0xd8, -0xb7,0xb3,0xd3,0xef,0x75,0x19,0xd8,0xf1,0x15,0xbc,0x4c,0xed,0xcf,0xb0,0x15,0xf4, -0x27,0xc2,0x4f,0xf8,0x27,0x6f,0x8a,0x7c,0x4d,0x3c,0x37,0x7e,0x31,0xb9,0x5f,0x0d, -0xe9,0x99,0x05,0xa0,0x52,0x24,0xba,0x71,0xd7,0x85,0x1f,0x2a,0xfd,0x58,0xe4,0x7f, -0x76,0xbf,0x46,0x74,0xed,0x2e,0xcf,0x4c,0xb7,0x58,0xac,0xed,0x20,0xb4,0x8c,0x0e, -0x12,0x08,0xd5,0x00,0xfc,0x00,0xab,0x8b,0x5e,0xfd,0x1c,0x3d,0xd2,0x94,0xdd,0xcf, -0xa2,0xc0,0xf0,0xed,0x18,0x5a,0x75,0x26,0xe4,0xbb,0x5a,0xc8,0xe2,0x7e,0x16,0xfc, -0x1b,0xf0,0xa7,0xc1,0xcd,0x0c,0x69,0x9e,0x18,0xd2,0xe3,0xb3,0x46,0x03,0xce,0xb8, -0x6f,0x9a,0x79,0xc8,0xef,0x23,0xf5,0x3f,0x4e,0x83,0xb0,0x15,0xdb,0x8e,0x28,0x1d, -0x29,0x6b,0xd0,0x49,0x25,0x64,0x7d,0x8c,0x29,0xc6,0x9c,0x54,0x20,0xac,0x90,0x51, -0x45,0x14,0xcd,0x02,0x8a,0x28,0xa0,0x0f,0xff,0xd9,}; - -static const unsigned int dummy_align__runtime_shtml = 3; -static const unsigned char data__runtime_shtml[] = { -/* /runtime.shtml (15 chars) */ -0x2f,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x00,0x00, - -/* HTTP header */ -/* "HTTP/1.0 200 OK -" (17 bytes) */ -0x48,0x54,0x54,0x50,0x2f,0x31,0x2e,0x30,0x20,0x32,0x30,0x30,0x20,0x4f,0x4b,0x0d, -0x0a, -/* "Server: lwIP/1.3.1 (http://savannah.nongnu.org/projects/lwip) -" (63 bytes) */ -0x53,0x65,0x72,0x76,0x65,0x72,0x3a,0x20,0x6c,0x77,0x49,0x50,0x2f,0x31,0x2e,0x33, -0x2e,0x31,0x20,0x28,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x73,0x61,0x76,0x61,0x6e, -0x6e,0x61,0x68,0x2e,0x6e,0x6f,0x6e,0x67,0x6e,0x75,0x2e,0x6f,0x72,0x67,0x2f,0x70, -0x72,0x6f,0x6a,0x65,0x63,0x74,0x73,0x2f,0x6c,0x77,0x69,0x70,0x29,0x0d,0x0a, -/* "Content-type: text/html -Expires: Fri, 10 Apr 2008 14:00:00 GMT -Pragma: no-cache - -" (85 bytes) */ -0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x74,0x79,0x70,0x65,0x3a,0x20,0x74,0x65, -0x78,0x74,0x2f,0x68,0x74,0x6d,0x6c,0x0d,0x0a,0x45,0x78,0x70,0x69,0x72,0x65,0x73, -0x3a,0x20,0x46,0x72,0x69,0x2c,0x20,0x31,0x30,0x20,0x41,0x70,0x72,0x20,0x32,0x30, -0x30,0x38,0x20,0x31,0x34,0x3a,0x30,0x30,0x3a,0x30,0x30,0x20,0x47,0x4d,0x54,0x0d, -0x0a,0x50,0x72,0x61,0x67,0x6d,0x61,0x3a,0x20,0x6e,0x6f,0x2d,0x63,0x61,0x63,0x68, -0x65,0x0d,0x0a,0x0d,0x0a, -/* raw file data (758 bytes) */ -0x3c,0x21,0x44,0x4f,0x43,0x54,0x59,0x50,0x45,0x20,0x48,0x54,0x4d,0x4c,0x20,0x50, -0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f,0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44, -0x54,0x44,0x20,0x48,0x54,0x4d,0x4c,0x20,0x34,0x2e,0x30,0x31,0x20,0x54,0x72,0x61, -0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x2f,0x2f,0x45,0x4e,0x22,0x20,0x22, -0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, -0x67,0x2f,0x54,0x52,0x2f,0x68,0x74,0x6d,0x6c,0x34,0x2f,0x6c,0x6f,0x6f,0x73,0x65, -0x2e,0x64,0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x0d,0x0a, -0x20,0x20,0x3c,0x68,0x65,0x61,0x64,0x3e,0x0d,0x0a,0x20,0x20,0x20,0x20,0x3c,0x74, -0x69,0x74,0x6c,0x65,0x3e,0x46,0x72,0x65,0x65,0x52,0x54,0x4f,0x53,0x2e,0x6f,0x72, -0x67,0x20,0x6c,0x77,0x49,0x50,0x20,0x57,0x45,0x42,0x20,0x73,0x65,0x72,0x76,0x65, -0x72,0x20,0x64,0x65,0x6d,0x6f,0x3c,0x2f,0x74,0x69,0x74,0x6c,0x65,0x3e,0x0d,0x0a, -0x20,0x20,0x3c,0x2f,0x68,0x65,0x61,0x64,0x3e,0x0d,0x0a,0x20,0x20,0x3c,0x42,0x4f, -0x44,0x59,0x20,0x6f,0x6e,0x4c,0x6f,0x61,0x64,0x3d,0x22,0x77,0x69,0x6e,0x64,0x6f, -0x77,0x2e,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x26,0x71,0x75, -0x6f,0x74,0x3b,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x68,0x72,0x65,0x66, -0x3d,0x27,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x27, -0x26,0x71,0x75,0x6f,0x74,0x3b,0x2c,0x32,0x30,0x30,0x30,0x29,0x22,0x3e,0x0d,0x0a, -0x3c,0x66,0x6f,0x6e,0x74,0x20,0x66,0x61,0x63,0x65,0x3d,0x22,0x61,0x72,0x69,0x61, -0x6c,0x22,0x3e,0x0d,0x0a,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x69,0x6e, -0x64,0x65,0x78,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x54,0x61,0x73,0x6b,0x20, -0x53,0x74,0x61,0x74,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62,0x3e,0x7c,0x3c,0x2f, -0x62,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x72,0x75,0x6e,0x74, -0x69,0x6d,0x65,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x52,0x75,0x6e,0x20,0x54, -0x69,0x6d,0x65,0x20,0x53,0x74,0x61,0x74,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62, -0x3e,0x7c,0x3c,0x2f,0x62,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22, -0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x66,0x72,0x65,0x65,0x72, -0x74,0x6f,0x73,0x2e,0x6f,0x72,0x67,0x2f,0x22,0x3e,0x46,0x72,0x65,0x65,0x52,0x54, -0x4f,0x53,0x20,0x48,0x6f,0x6d,0x65,0x70,0x61,0x67,0x65,0x3c,0x2f,0x61,0x3e,0x20, -0x3c,0x62,0x3e,0x7c,0x3c,0x2f,0x62,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66, -0x3d,0x22,0x6c,0x6f,0x67,0x6f,0x2e,0x6a,0x70,0x67,0x22,0x3e,0x33,0x37,0x4b,0x20, -0x6a,0x70,0x67,0x3c,0x2f,0x61,0x3e,0x0d,0x0a,0x3c,0x62,0x72,0x3e,0x3c,0x70,0x3e, -0x0d,0x0a,0x3c,0x68,0x72,0x3e,0x0d,0x0a,0x3c,0x62,0x72,0x3e,0x3c,0x70,0x3e,0x0d, -0x0a,0x3c,0x68,0x32,0x3e,0x52,0x75,0x6e,0x2d,0x74,0x69,0x6d,0x65,0x20,0x73,0x74, -0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x3c,0x2f,0x68,0x32,0x3e,0x0d,0x0a,0x50, -0x61,0x67,0x65,0x20,0x77,0x69,0x6c,0x6c,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68, -0x20,0x65,0x76,0x65,0x72,0x79,0x20,0x32,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x73, -0x2e,0x3c,0x70,0x3e,0x0d,0x0a,0x3c,0x66,0x6f,0x6e,0x74,0x20,0x66,0x61,0x63,0x65, -0x3d,0x22,0x63,0x6f,0x75,0x72,0x69,0x65,0x72,0x22,0x3e,0x3c,0x70,0x72,0x65,0x3e, -0x54,0x61,0x73,0x6b,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, -0x41,0x62,0x73,0x20,0x54,0x69,0x6d,0x65,0x20,0x20,0x20,0x20,0x20,0x20,0x25,0x20, -0x54,0x69,0x6d,0x65,0x3c,0x62,0x72,0x3e,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a, -0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a, -0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a, -0x3c,0x62,0x72,0x3e,0x0d,0x0a,0x3c,0x21,0x2d,0x2d,0x23,0x72,0x75,0x6e,0x5f,0x73, -0x74,0x61,0x74,0x73,0x2d,0x2d,0x3e,0x0d,0x0d,0x0a,0x3c,0x2f,0x70,0x72,0x65,0x3e, -0x3c,0x2f,0x66,0x6f,0x6e,0x74,0x3e,0x0d,0x0a,0x3c,0x2f,0x66,0x6f,0x6e,0x74,0x3e, -0x0d,0x0a,0x3c,0x2f,0x62,0x6f,0x64,0x79,0x3e,0x0d,0x0a,0x3c,0x2f,0x68,0x74,0x6d, -0x6c,0x3e,0x0d,0x0a,0x0d,0x0a,}; - - - -const struct fsdata_file file__404_html[] = { { -file_NULL, -data__404_html, -data__404_html + 12, -sizeof(data__404_html) - 12, -1, -}}; - -const struct fsdata_file file__index_shtml[] = { { -file__404_html, -data__index_shtml, -data__index_shtml + 16, -sizeof(data__index_shtml) - 16, -1, -}}; - -const struct fsdata_file file__logo_jpg[] = { { -file__index_shtml, -data__logo_jpg, -data__logo_jpg + 12, -sizeof(data__logo_jpg) - 12, -1, -}}; - -const struct fsdata_file file__runtime_shtml[] = { { -file__logo_jpg, -data__runtime_shtml, -data__runtime_shtml + 16, -sizeof(data__runtime_shtml) - 16, -1, -}}; - -#define FS_ROOT file__runtime_shtml -#define FS_NUMFILES 4 - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fsdata.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fsdata.h deleted file mode 100644 index 6f6c557f3..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fsdata.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2001-2003 Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. - * - * This file is part of the lwIP TCP/IP stack. - * - * Author: Adam Dunkels - * - */ -#ifndef __FSDATA_H__ -#define __FSDATA_H__ - -#include "lwip/opt.h" -#include "fs.h" - -struct fsdata_file { - const struct fsdata_file *next; - const unsigned char *name; - const unsigned char *data; - int len; - u8_t http_header_included; -#if HTTPD_PRECALCULATED_CHECKSUM - u16_t chksum_count; - const struct fsdata_chksum *chksum; -#endif /* HTTPD_PRECALCULATED_CHECKSUM */ -}; - -#endif /* __FSDATA_H__ */ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/httpd.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/httpd.c deleted file mode 100644 index 6f1132caf..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/httpd.c +++ /dev/null @@ -1,2184 +0,0 @@ -/* - * Copyright (c) 2001-2003 Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. - * - * This file is part of the lwIP TCP/IP stack. - * - * Author: Adam Dunkels - * - */ - -/* This httpd supports for a - * rudimentary server-side-include facility which will replace tags of the form - * in any file whose extension is .shtml, .shtm or .ssi with - * strings provided by an include handler whose pointer is provided to the - * module via function http_set_ssi_handler(). - * Additionally, a simple common - * gateway interface (CGI) handling mechanism has been added to allow clients - * to hook functions to particular request URIs. - * - * To enable SSI support, define label LWIP_HTTPD_SSI in lwipopts.h. - * To enable CGI support, define label LWIP_HTTPD_CGI in lwipopts.h. - * - * By default, the server assumes that HTTP headers are already present in - * each file stored in the file system. By defining LWIP_HTTPD_DYNAMIC_HEADERS in - * lwipopts.h, this behavior can be changed such that the server inserts the - * headers automatically based on the extension of the file being served. If - * this mode is used, be careful to ensure that the file system image used - * does not already contain the header information. - * - * File system images without headers can be created using the makefsfile - * tool with the -h command line option. - * - * - * Notes about valid SSI tags - * -------------------------- - * - * The following assumptions are made about tags used in SSI markers: - * - * 1. No tag may contain '-' or whitespace characters within the tag name. - * 2. Whitespace is allowed between the tag leadin "". - * 3. The maximum tag name length is LWIP_HTTPD_MAX_TAG_NAME_LEN, currently 8 characters. - * - * Notes on CGI usage - * ------------------ - * - * The simple CGI support offered here works with GET method requests only - * and can handle up to 16 parameters encoded into the URI. The handler - * function may not write directly to the HTTP output but must return a - * filename that the HTTP server will send to the browser as a response to - * the incoming CGI request. - * - * @todo: - * - don't use mem_malloc() (for SSI/dynamic headers) - * - split too long functions into multiple smaller functions? - * - support more file types? - */ -#include "lwip/debug.h" -#include "lwip/stats.h" -#include "httpd.h" -#include "httpd_structs.h" -#include "lwip/tcp.h" -#include "fs.h" - -#include -#include - -#if LWIP_TCP - -#ifndef HTTPD_DEBUG -#define HTTPD_DEBUG LWIP_DBG_OFF -#endif - -/** Set this to 1 and add the next line to lwippools.h to use a memp pool - * for allocating struct http_state instead of the heap: - * - * LWIP_MEMPOOL(HTTPD_STATE, 20, 100, "HTTPD_STATE") - */ -#ifndef HTTPD_USE_MEM_POOL -#define HTTPD_USE_MEM_POOL 0 -#endif - -/** The server port for HTTPD to use */ -#ifndef HTTPD_SERVER_PORT -#define HTTPD_SERVER_PORT 80 -#endif - -/** Maximum retries before the connection is aborted/closed. - * - number of times pcb->poll is called -> default is 4*500ms = 2s; - * - reset when pcb->sent is called - */ -#ifndef HTTPD_MAX_RETRIES -#define HTTPD_MAX_RETRIES 4 -#endif - -/** The poll delay is X*500ms */ -#ifndef HTTPD_POLL_INTERVAL -#define HTTPD_POLL_INTERVAL 4 -#endif - -/** Priority for tcp pcbs created by HTTPD (very low by default). - * Lower priorities get killed first when running out of memroy. - */ -#ifndef HTTPD_TCP_PRIO -#define HTTPD_TCP_PRIO TCP_PRIO_MIN -#endif - -/** Set this to 1 to enabled timing each file sent */ -#ifndef LWIP_HTTPD_TIMING -#define LWIP_HTTPD_TIMING 0 -#endif -#ifndef HTTPD_DEBUG_TIMING -#define HTTPD_DEBUG_TIMING LWIP_DBG_OFF -#endif - -/** Set this to 1 on platforms where strnstr is not available */ -#ifndef LWIP_HTTPD_STRNSTR_PRIVATE -#define LWIP_HTTPD_STRNSTR_PRIVATE 1 -#endif - -/** Set this to one to show error pages when parsing a request fails instead - of simply closing the connection. */ -#ifndef LWIP_HTTPD_SUPPORT_EXTSTATUS -#define LWIP_HTTPD_SUPPORT_EXTSTATUS 0 -#endif - -/** Set this to 0 to drop support for HTTP/0.9 clients (to save some bytes) */ -#ifndef LWIP_HTTPD_SUPPORT_V09 -#define LWIP_HTTPD_SUPPORT_V09 1 -#endif - -/** Set this to 1 to support HTTP request coming in in multiple packets/pbufs */ -#ifndef LWIP_HTTPD_SUPPORT_REQUESTLIST -#define LWIP_HTTPD_SUPPORT_REQUESTLIST 0 -#endif - -#if LWIP_HTTPD_SUPPORT_REQUESTLIST -/** Number of rx pbufs to enqueue to parse an incoming request (up to the first - newline) */ -#ifndef LWIP_HTTPD_REQ_QUEUELEN -#define LWIP_HTTPD_REQ_QUEUELEN 10 -#endif - -/** Number of (TCP payload-) bytes (in pbufs) to enqueue to parse and incoming - request (up to the first double-newline) */ -#ifndef LWIP_HTTPD_REQ_BUFSIZE -#define LWIP_HTTPD_REQ_BUFSIZE LWIP_HTTPD_MAX_REQ_LENGTH -#endif - -/** Defines the maximum length of a HTTP request line (up to the first CRLF, - copied from pbuf into this a global buffer when pbuf- or packet-queues - are received - otherwise the input pbuf is used directly) */ -#ifndef LWIP_HTTPD_MAX_REQ_LENGTH -#define LWIP_HTTPD_MAX_REQ_LENGTH 1023 -#endif -#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ - -/** Maximum length of the filename to send as response to a POST request, - * filled in by the application when a POST is finished. - */ -#ifndef LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN -#define LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN 63 -#endif - -/** Set this to 0 to not send the SSI tag (default is on, so the tag will - * be sent in the HTML page */ -#ifndef LWIP_HTTPD_SSI_INCLUDE_TAG -#define LWIP_HTTPD_SSI_INCLUDE_TAG 1 -#endif - -/** Set this to 1 to call tcp_abort when tcp_close fails with memory error. - * This can be used to prevent consuming all memory in situations where the - * HTTP server has low priority compared to other communication. */ -#ifndef LWIP_HTTPD_ABORT_ON_CLOSE_MEM_ERROR -#define LWIP_HTTPD_ABORT_ON_CLOSE_MEM_ERROR 0 -#endif - -#ifndef true -#define true ((u8_t)1) -#endif - -#ifndef false -#define false ((u8_t)0) -#endif - -/** Minimum length for a valid HTTP/0.9 request: "GET /\r\n" -> 7 bytes */ -#define MIN_REQ_LEN 7 - -#define CRLF "\r\n" - -/** These defines check whether tcp_write has to copy data or not */ - -/** This was TI's check whether to let TCP copy data or not -#define HTTP_IS_DATA_VOLATILE(hs) ((hs->file < (char *)0x20000000) ? 0 : TCP_WRITE_FLAG_COPY)*/ -#ifndef HTTP_IS_DATA_VOLATILE -#if LWIP_HTTPD_SSI -/* Copy for SSI files, no copy for non-SSI files */ -#define HTTP_IS_DATA_VOLATILE(hs) ((hs)->tag_check ? TCP_WRITE_FLAG_COPY : 0) -#else /* LWIP_HTTPD_SSI */ -/** Default: don't copy if the data is sent from file-system directly */ -#define HTTP_IS_DATA_VOLATILE(hs) (((hs->file != NULL) && (hs->handle != NULL) && (hs->file == \ - (char*)hs->handle->data + hs->handle->len - hs->left)) \ - ? 0 : TCP_WRITE_FLAG_COPY) -#endif /* LWIP_HTTPD_SSI */ -#endif - -/** Default: headers are sent from ROM */ -#ifndef HTTP_IS_HDR_VOLATILE -#define HTTP_IS_HDR_VOLATILE(hs, ptr) 0 -#endif - -#if LWIP_HTTPD_SSI -/** Default: Tags are sent from struct http_state and are therefore volatile */ -#ifndef HTTP_IS_TAG_VOLATILE -#define HTTP_IS_TAG_VOLATILE(ptr) TCP_WRITE_FLAG_COPY -#endif -#endif /* LWIP_HTTPD_SSI */ - -typedef struct -{ - const char *name; - u8_t shtml; -} default_filename; - -const default_filename g_psDefaultFilenames[] = { - {"/index.shtml", true }, - {"/index.ssi", true }, - {"/index.shtm", true }, - {"/index.html", false }, - {"/index.htm", false } -}; - -#define NUM_DEFAULT_FILENAMES (sizeof(g_psDefaultFilenames) / \ - sizeof(default_filename)) - -#if LWIP_HTTPD_SUPPORT_REQUESTLIST -/** HTTP request is copied here from pbufs for simple parsing */ -static char httpd_req_buf[LWIP_HTTPD_MAX_REQ_LENGTH+1]; -#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ - -#if LWIP_HTTPD_SUPPORT_POST -/** Filename for response file to send when POST is finished */ -static char http_post_response_filename[LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN+1]; -#endif /* LWIP_HTTPD_SUPPORT_POST */ - -#if LWIP_HTTPD_DYNAMIC_HEADERS -/* The number of individual strings that comprise the headers sent before each - * requested file. - */ -#define NUM_FILE_HDR_STRINGS 3 -#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */ - -#if LWIP_HTTPD_SSI - -#define HTTPD_LAST_TAG_PART 0xFFFF - -const char * const g_pcSSIExtensions[] = { - ".shtml", ".shtm", ".ssi", ".xml" -}; - -#define NUM_SHTML_EXTENSIONS (sizeof(g_pcSSIExtensions) / sizeof(const char *)) - -enum tag_check_state { - TAG_NONE, /* Not processing an SSI tag */ - TAG_LEADIN, /* Tag lead in "" being processed */ - TAG_SENDING /* Sending tag replacement string */ -}; -#endif /* LWIP_HTTPD_SSI */ - -struct http_state { - struct fs_file *handle; - char *file; /* Pointer to first unsent byte in buf. */ - -#if LWIP_HTTPD_SUPPORT_REQUESTLIST - struct pbuf *req; -#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ - -#if LWIP_HTTPD_SSI || LWIP_HTTPD_DYNAMIC_HEADERS - char *buf; /* File read buffer. */ - int buf_len; /* Size of file read buffer, buf. */ -#endif /* LWIP_HTTPD_SSI || LWIP_HTTPD_DYNAMIC_HEADERS */ - u32_t left; /* Number of unsent bytes in buf. */ - u8_t retries; -#if LWIP_HTTPD_SSI - const char *parsed; /* Pointer to the first unparsed byte in buf. */ -#if !LWIP_HTTPD_SSI_INCLUDE_TAG - const char *tag_started;/* Poitner to the first opening '<' of the tag. */ -#endif /* !LWIP_HTTPD_SSI_INCLUDE_TAG */ - const char *tag_end; /* Pointer to char after the closing '>' of the tag. */ - u32_t parse_left; /* Number of unparsed bytes in buf. */ - u16_t tag_index; /* Counter used by tag parsing state machine */ - u16_t tag_insert_len; /* Length of insert in string tag_insert */ -#if LWIP_HTTPD_SSI_MULTIPART - u16_t tag_part; /* Counter passed to and changed by tag insertion function to insert multiple times */ -#endif /* LWIP_HTTPD_SSI_MULTIPART */ - u8_t tag_check; /* true if we are processing a .shtml file else false */ - u8_t tag_name_len; /* Length of the tag name in string tag_name */ - char tag_name[LWIP_HTTPD_MAX_TAG_NAME_LEN + 1]; /* Last tag name extracted */ - char tag_insert[LWIP_HTTPD_MAX_TAG_INSERT_LEN + 1]; /* Insert string for tag_name */ - enum tag_check_state tag_state; /* State of the tag processor */ -#endif /* LWIP_HTTPD_SSI */ -#if LWIP_HTTPD_CGI - char *params[LWIP_HTTPD_MAX_CGI_PARAMETERS]; /* Params extracted from the request URI */ - char *param_vals[LWIP_HTTPD_MAX_CGI_PARAMETERS]; /* Values for each extracted param */ -#endif /* LWIP_HTTPD_CGI */ -#if LWIP_HTTPD_DYNAMIC_HEADERS - const char *hdrs[NUM_FILE_HDR_STRINGS]; /* HTTP headers to be sent. */ - u16_t hdr_pos; /* The position of the first unsent header byte in the - current string */ - u16_t hdr_index; /* The index of the hdr string currently being sent. */ -#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */ -#if LWIP_HTTPD_TIMING - u32_t time_started; -#endif /* LWIP_HTTPD_TIMING */ -#if LWIP_HTTPD_SUPPORT_POST - u32_t post_content_len_left; -#if LWIP_HTTPD_POST_MANUAL_WND - u32_t unrecved_bytes; - struct tcp_pcb *pcb; - u8_t no_auto_wnd; -#endif /* LWIP_HTTPD_POST_MANUAL_WND */ -#endif /* LWIP_HTTPD_SUPPORT_POST*/ -}; - -static err_t http_find_file(struct http_state *hs, const char *uri, int is_09); -static err_t http_init_file(struct http_state *hs, struct fs_file *file, int is_09, const char *uri); -static err_t http_poll(void *arg, struct tcp_pcb *pcb); - -#if LWIP_HTTPD_SSI -/* SSI insert handler function pointer. */ -tSSIHandler g_pfnSSIHandler = NULL; -int g_iNumTags = 0; -const char **g_ppcTags = NULL; - -#define LEN_TAG_LEAD_IN 5 -const char * const g_pcTagLeadIn = ""; -#endif /* LWIP_HTTPD_SSI */ - -#if LWIP_HTTPD_CGI -/* CGI handler information */ -const tCGI *g_pCGIs; -int g_iNumCGIs; -#endif /* LWIP_HTTPD_CGI */ - -#if LWIP_HTTPD_STRNSTR_PRIVATE -/** Like strstr but does not need 'buffer' to be NULL-terminated */ -static char* -strnstr(const char* buffer, const char* token, size_t n) -{ - const char* p; - int tokenlen = (int)strlen(token); - if (tokenlen == 0) { - return (char *)buffer; - } - for (p = buffer; *p && (p + tokenlen <= buffer + n); p++) { - if ((*p == *token) && (strncmp(p, token, tokenlen) == 0)) { - return (char *)p; - } - } - return NULL; -} -#endif /* LWIP_HTTPD_STRNSTR_PRIVATE */ - -/** Allocate a struct http_state. */ -static struct http_state* -http_state_alloc(void) -{ - struct http_state *ret; -#if HTTPD_USE_MEM_POOL - ret = (struct http_state *)memp_malloc(MEMP_HTTPD_STATE); -#else /* HTTPD_USE_MEM_POOL */ - ret = (struct http_state *)mem_malloc(sizeof(struct http_state)); -#endif /* HTTPD_USE_MEM_POOL */ - if (ret != NULL) { - /* Initialize the structure. */ - memset(ret, 0, sizeof(struct http_state)); -#if LWIP_HTTPD_DYNAMIC_HEADERS - /* Indicate that the headers are not yet valid */ - ret->hdr_index = NUM_FILE_HDR_STRINGS; -#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */ - } - return ret; -} - -/** Free a struct http_state. - * Also frees the file data if dynamic. - */ -static void -http_state_free(struct http_state *hs) -{ - if (hs != NULL) { - if(hs->handle) { -#if LWIP_HTTPD_TIMING - u32_t ms_needed = sys_now() - hs->time_started; - u32_t needed = LWIP_MAX(1, (ms_needed/100)); - LWIP_DEBUGF(HTTPD_DEBUG_TIMING, ("httpd: needed %"U32_F" ms to send file of %d bytes -> %"U32_F" bytes/sec\n", - ms_needed, hs->handle->len, ((((u32_t)hs->handle->len) * 10) / needed))); -#endif /* LWIP_HTTPD_TIMING */ - fs_close(hs->handle); - hs->handle = NULL; - } -#if LWIP_HTTPD_SSI || LWIP_HTTPD_DYNAMIC_HEADERS - if (hs->buf != NULL) { - mem_free(hs->buf); - hs->buf = NULL; - } -#endif /* LWIP_HTTPD_SSI || LWIP_HTTPD_DYNAMIC_HEADERS */ -#if HTTPD_USE_MEM_POOL - memp_free(MEMP_HTTPD_STATE, hs); -#else /* HTTPD_USE_MEM_POOL */ - mem_free(hs); -#endif /* HTTPD_USE_MEM_POOL */ - } -} - -/** Call tcp_write() in a loop trying smaller and smaller length - * - * @param pcb tcp_pcb to send - * @param ptr Data to send - * @param length Length of data to send (in/out: on return, contains the - * amount of data sent) - * @param apiflags directly passed to tcp_write - * @return the return value of tcp_write - */ -static err_t -http_write(struct tcp_pcb *pcb, const void* ptr, u16_t *length, u8_t apiflags) -{ - u16_t len; - err_t err; - LWIP_ASSERT("length != NULL", length != NULL); - len = *length; - do { - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Trying go send %d bytes\n", len)); - err = tcp_write(pcb, ptr, len, apiflags); - if (err == ERR_MEM) { - if ((tcp_sndbuf(pcb) == 0) || - (tcp_sndqueuelen(pcb) >= TCP_SND_QUEUELEN)) { - /* no need to try smaller sizes */ - len = 1; - } else { - len /= 2; - } - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, - ("Send failed, trying less (%d bytes)\n", len)); - } - } while ((err == ERR_MEM) && (len > 1)); - - if (err == ERR_OK) { - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Sent %d bytes\n", len)); - } else { - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Send failed with err %d (\"%s\")\n", err, lwip_strerr(err))); - } - - *length = len; - return err; -} - -/** - * The connection shall be actively closed. - * Reset the sent- and recv-callbacks. - * - * @param pcb the tcp pcb to reset callbacks - * @param hs connection state to free - */ -static err_t -http_close_conn(struct tcp_pcb *pcb, struct http_state *hs) -{ - err_t err; - LWIP_DEBUGF(HTTPD_DEBUG, ("Closing connection %p\n", (void*)pcb)); - -#if LWIP_HTTPD_SUPPORT_POST - if (hs != NULL) { - if ((hs->post_content_len_left != 0) -#if LWIP_HTTPD_POST_MANUAL_WND - || ((hs->no_auto_wnd != 0) && (hs->unrecved_bytes != 0)) -#endif /* LWIP_HTTPD_POST_MANUAL_WND */ - ) { - /* make sure the post code knows that the connection is closed */ - http_post_response_filename[0] = 0; - httpd_post_finished(hs, http_post_response_filename, LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN); - } - } -#endif /* LWIP_HTTPD_SUPPORT_POST*/ - - - tcp_arg(pcb, NULL); - tcp_recv(pcb, NULL); - tcp_err(pcb, NULL); - tcp_poll(pcb, NULL, 0); - tcp_sent(pcb, NULL); - if(hs != NULL) { - http_state_free(hs); - } - - err = tcp_close(pcb); - if (err != ERR_OK) { - LWIP_DEBUGF(HTTPD_DEBUG, ("Error %d closing %p\n", err, (void*)pcb)); - /* error closing, try again later in poll */ - tcp_poll(pcb, http_poll, HTTPD_POLL_INTERVAL); - } - return err; -} -#if LWIP_HTTPD_CGI -/** - * Extract URI parameters from the parameter-part of an URI in the form - * "test.cgi?x=y" @todo: better explanation! - * Pointers to the parameters are stored in hs->param_vals. - * - * @param hs http connection state - * @param params pointer to the NULL-terminated parameter string from the URI - * @return number of parameters extracted - */ -static int -extract_uri_parameters(struct http_state *hs, char *params) -{ - char *pair; - char *equals; - int loop; - - /* If we have no parameters at all, return immediately. */ - if(!params || (params[0] == '\0')) { - return(0); - } - - /* Get a pointer to our first parameter */ - pair = params; - - /* Parse up to LWIP_HTTPD_MAX_CGI_PARAMETERS from the passed string and ignore the - * remainder (if any) */ - for(loop = 0; (loop < LWIP_HTTPD_MAX_CGI_PARAMETERS) && pair; loop++) { - - /* Save the name of the parameter */ - hs->params[loop] = pair; - - /* Remember the start of this name=value pair */ - equals = pair; - - /* Find the start of the next name=value pair and replace the delimiter - * with a 0 to terminate the previous pair string. */ - pair = strchr(pair, '&'); - if(pair) { - *pair = '\0'; - pair++; - } else { - /* We didn't find a new parameter so find the end of the URI and - * replace the space with a '\0' */ - pair = strchr(equals, ' '); - if(pair) { - *pair = '\0'; - } - - /* Revert to NULL so that we exit the loop as expected. */ - pair = NULL; - } - - /* Now find the '=' in the previous pair, replace it with '\0' and save - * the parameter value string. */ - equals = strchr(equals, '='); - if(equals) { - *equals = '\0'; - hs->param_vals[loop] = equals + 1; - } else { - hs->param_vals[loop] = NULL; - } - } - - return loop; -} -#endif /* LWIP_HTTPD_CGI */ - -#if LWIP_HTTPD_SSI -/** - * Insert a tag (found in an shtml in the form of "" into the file. - * The tag's name is stored in hs->tag_name (NULL-terminated), the replacement - * should be written to hs->tag_insert (up to a length of LWIP_HTTPD_MAX_TAG_INSERT_LEN). - * The amount of data written is stored to hs->tag_insert_len. - * - * @todo: return tag_insert_len - maybe it can be removed from struct http_state? - * - * @param hs http connection state - */ -static void -get_tag_insert(struct http_state *hs) -{ - int loop; - size_t len; -#if LWIP_HTTPD_SSI_MULTIPART - u16_t current_tag_part = hs->tag_part; - hs->tag_part = HTTPD_LAST_TAG_PART; -#endif /* LWIP_HTTPD_SSI_MULTIPART */ - - if(g_pfnSSIHandler && g_ppcTags && g_iNumTags) { - - /* Find this tag in the list we have been provided. */ - for(loop = 0; loop < g_iNumTags; loop++) { - if(strcmp(hs->tag_name, g_ppcTags[loop]) == 0) { - hs->tag_insert_len = g_pfnSSIHandler(loop, hs->tag_insert, - LWIP_HTTPD_MAX_TAG_INSERT_LEN -#if LWIP_HTTPD_SSI_MULTIPART - , current_tag_part, &hs->tag_part -#endif /* LWIP_HTTPD_SSI_MULTIPART */ -#if LWIP_HTTPD_FILE_STATE - , hs->handle->state -#endif /* LWIP_HTTPD_FILE_STATE */ - ); - return; - } - } - } - - /* If we drop out, we were asked to serve a page which contains tags that - * we don't have a handler for. Merely echo back the tags with an error - * marker. */ -#define UNKNOWN_TAG1_TEXT "***UNKNOWN TAG " -#define UNKNOWN_TAG1_LEN 18 -#define UNKNOWN_TAG2_TEXT "***" -#define UNKNOWN_TAG2_LEN 7 - len = LWIP_MIN(strlen(hs->tag_name), - LWIP_HTTPD_MAX_TAG_INSERT_LEN - (UNKNOWN_TAG1_LEN + UNKNOWN_TAG2_LEN)); - MEMCPY(hs->tag_insert, UNKNOWN_TAG1_TEXT, UNKNOWN_TAG1_LEN); - MEMCPY(&hs->tag_insert[UNKNOWN_TAG1_LEN], hs->tag_name, len); - MEMCPY(&hs->tag_insert[UNKNOWN_TAG1_LEN + len], UNKNOWN_TAG2_TEXT, UNKNOWN_TAG2_LEN); - hs->tag_insert[UNKNOWN_TAG1_LEN + len + UNKNOWN_TAG2_LEN] = 0; - - len = strlen(hs->tag_insert); - LWIP_ASSERT("len <= 0xffff", len <= 0xffff); - hs->tag_insert_len = (u16_t)len; -} -#endif /* LWIP_HTTPD_SSI */ - -#if LWIP_HTTPD_DYNAMIC_HEADERS -/** - * Generate the relevant HTTP headers for the given filename and write - * them into the supplied buffer. - */ -static void -get_http_headers(struct http_state *pState, char *pszURI) -{ - unsigned int iLoop; - char *pszWork; - char *pszExt; - char *pszVars; - - /* Ensure that we initialize the loop counter. */ - iLoop = 0; - - /* In all cases, the second header we send is the server identification - so set it here. */ - pState->hdrs[1] = g_psHTTPHeaderStrings[HTTP_HDR_SERVER]; - - /* Is this a normal file or the special case we use to send back the - default "404: Page not found" response? */ - if (pszURI == NULL) { - pState->hdrs[0] = g_psHTTPHeaderStrings[HTTP_HDR_NOT_FOUND]; - pState->hdrs[2] = g_psHTTPHeaderStrings[DEFAULT_404_HTML]; - - /* Set up to send the first header string. */ - pState->hdr_index = 0; - pState->hdr_pos = 0; - return; - } else { - /* We are dealing with a particular filename. Look for one other - special case. We assume that any filename with "404" in it must be - indicative of a 404 server error whereas all other files require - the 200 OK header. */ - if (strstr(pszURI, "404")) { - pState->hdrs[0] = g_psHTTPHeaderStrings[HTTP_HDR_NOT_FOUND]; - } else if (strstr(pszURI, "400")) { - pState->hdrs[0] = g_psHTTPHeaderStrings[HTTP_HDR_BAD_REQUEST]; - } else if (strstr(pszURI, "501")) { - pState->hdrs[0] = g_psHTTPHeaderStrings[HTTP_HDR_NOT_IMPL]; - } else { - pState->hdrs[0] = g_psHTTPHeaderStrings[HTTP_HDR_OK]; - } - - /* Determine if the URI has any variables and, if so, temporarily remove - them. */ - pszVars = strchr(pszURI, '?'); - if(pszVars) { - *pszVars = '\0'; - } - - /* Get a pointer to the file extension. We find this by looking for the - last occurrence of "." in the filename passed. */ - pszExt = NULL; - pszWork = strchr(pszURI, '.'); - while(pszWork) { - pszExt = pszWork + 1; - pszWork = strchr(pszExt, '.'); - } - - /* Now determine the content type and add the relevant header for that. */ - for(iLoop = 0; (iLoop < NUM_HTTP_HEADERS) && pszExt; iLoop++) { - /* Have we found a matching extension? */ - if(!strcmp(g_psHTTPHeaders[iLoop].extension, pszExt)) { - pState->hdrs[2] = - g_psHTTPHeaderStrings[g_psHTTPHeaders[iLoop].headerIndex]; - break; - } - } - - /* Reinstate the parameter marker if there was one in the original URI. */ - if(pszVars) { - *pszVars = '?'; - } - } - - /* Does the URL passed have any file extension? If not, we assume it - is a special-case URL used for control state notification and we do - not send any HTTP headers with the response. */ - if(!pszExt) { - /* Force the header index to a value indicating that all headers - have already been sent. */ - pState->hdr_index = NUM_FILE_HDR_STRINGS; - } else { - /* Did we find a matching extension? */ - if(iLoop == NUM_HTTP_HEADERS) { - /* No - use the default, plain text file type. */ - pState->hdrs[2] = g_psHTTPHeaderStrings[HTTP_HDR_DEFAULT_TYPE]; - } - - /* Set up to send the first header string. */ - pState->hdr_index = 0; - pState->hdr_pos = 0; - } -} -#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */ - -/** - * Try to send more data on this pcb. - * - * @param pcb the pcb to send data - * @param hs connection state - */ -static u8_t -http_send_data(struct tcp_pcb *pcb, struct http_state *hs) -{ - err_t err; - u16_t len; - u16_t mss; - u8_t data_to_send = false; -#if LWIP_HTTPD_DYNAMIC_HEADERS - u16_t hdrlen, sendlen; -#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */ - - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("http_send_data: pcb=%p hs=%p left=%d\n", (void*)pcb, - (void*)hs, hs != NULL ? hs->left : 0)); - -#if LWIP_HTTPD_SUPPORT_POST && LWIP_HTTPD_POST_MANUAL_WND - if (hs->unrecved_bytes != 0) { - return 0; - } -#endif /* LWIP_HTTPD_SUPPORT_POST && LWIP_HTTPD_POST_MANUAL_WND */ - -#if LWIP_HTTPD_DYNAMIC_HEADERS - /* If we were passed a NULL state structure pointer, ignore the call. */ - if (hs == NULL) { - return 0; - } - - /* Assume no error until we find otherwise */ - err = ERR_OK; - - /* Do we have any more header data to send for this file? */ - if(hs->hdr_index < NUM_FILE_HDR_STRINGS) { - /* How much data can we send? */ - len = tcp_sndbuf(pcb); - sendlen = len; - - while(len && (hs->hdr_index < NUM_FILE_HDR_STRINGS) && sendlen) { - const void *ptr; - u16_t old_sendlen; - /* How much do we have to send from the current header? */ - hdrlen = (u16_t)strlen(hs->hdrs[hs->hdr_index]); - - /* How much of this can we send? */ - sendlen = (len < (hdrlen - hs->hdr_pos)) ? len : (hdrlen - hs->hdr_pos); - - /* Send this amount of data or as much as we can given memory - * constraints. */ - ptr = (const void *)(hs->hdrs[hs->hdr_index] + hs->hdr_pos); - old_sendlen = sendlen; - err = http_write(pcb, ptr, &sendlen, HTTP_IS_HDR_VOLATILE(hs, ptr)); - if ((err == ERR_OK) && (old_sendlen != sendlen)) { - /* Remember that we added some more data to be transmitted. */ - data_to_send = true; - } else if (err != ERR_OK) { - /* special case: http_write does not try to send 1 byte */ - sendlen = 0; - } - - /* Fix up the header position for the next time round. */ - hs->hdr_pos += sendlen; - len -= sendlen; - - /* Have we finished sending this string? */ - if(hs->hdr_pos == hdrlen) { - /* Yes - move on to the next one */ - hs->hdr_index++; - hs->hdr_pos = 0; - } - } - - /* If we get here and there are still header bytes to send, we send - * the header information we just wrote immediately. If there are no - * more headers to send, but we do have file data to send, drop through - * to try to send some file data too. */ - if((hs->hdr_index < NUM_FILE_HDR_STRINGS) || !hs->file) { - LWIP_DEBUGF(HTTPD_DEBUG, ("tcp_output\n")); - return 1; - } - } -#else /* LWIP_HTTPD_DYNAMIC_HEADERS */ - /* Assume no error until we find otherwise */ - err = ERR_OK; -#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */ - - /* Have we run out of file data to send? If so, we need to read the next - * block from the file. */ - if (hs->left == 0) { -#if LWIP_HTTPD_SSI || LWIP_HTTPD_DYNAMIC_HEADERS - int count; -#endif /* LWIP_HTTPD_SSI || LWIP_HTTPD_DYNAMIC_HEADERS */ - - /* Do we have a valid file handle? */ - if (hs->handle == NULL) { - /* No - close the connection. */ - http_close_conn(pcb, hs); - return 0; - } - if (fs_bytes_left(hs->handle) <= 0) { - /* We reached the end of the file so this request is done. - * @todo: don't close here for HTTP/1.1? */ - LWIP_DEBUGF(HTTPD_DEBUG, ("End of file.\n")); - http_close_conn(pcb, hs); - return 0; - } -#if LWIP_HTTPD_SSI || LWIP_HTTPD_DYNAMIC_HEADERS - /* Do we already have a send buffer allocated? */ - if(hs->buf) { - /* Yes - get the length of the buffer */ - count = hs->buf_len; - } else { - /* We don't have a send buffer so allocate one up to 2mss bytes long. */ - count = 2 * tcp_mss(pcb); - do { - hs->buf = (char*)mem_malloc((mem_size_t)count); - if (hs->buf != NULL) { - hs->buf_len = count; - break; - } - count = count / 2; - } while (count > 100); - - /* Did we get a send buffer? If not, return immediately. */ - if (hs->buf == NULL) { - LWIP_DEBUGF(HTTPD_DEBUG, ("No buff\n")); - return 0; - } - } - - /* Read a block of data from the file. */ - LWIP_DEBUGF(HTTPD_DEBUG, ("Trying to read %d bytes.\n", count)); - - count = fs_read(hs->handle, hs->buf, count); - if(count < 0) { - /* We reached the end of the file so this request is done. - * @todo: don't close here for HTTP/1.1? */ - LWIP_DEBUGF(HTTPD_DEBUG, ("End of file.\n")); - http_close_conn(pcb, hs); - return 1; - } - - /* Set up to send the block of data we just read */ - LWIP_DEBUGF(HTTPD_DEBUG, ("Read %d bytes.\n", count)); - hs->left = count; - hs->file = hs->buf; -#if LWIP_HTTPD_SSI - hs->parse_left = count; - hs->parsed = hs->buf; -#endif /* LWIP_HTTPD_SSI */ -#else /* LWIP_HTTPD_SSI || LWIP_HTTPD_DYNAMIC_HEADERS */ - LWIP_ASSERT("SSI and DYNAMIC_HEADERS turned off but eof not reached", 0); -#endif /* LWIP_HTTPD_SSI || LWIP_HTTPD_DYNAMIC_HEADERS */ - } - -#if LWIP_HTTPD_SSI - if(!hs->tag_check) { -#endif /* LWIP_HTTPD_SSI */ - /* We are not processing an SHTML file so no tag checking is necessary. - * Just send the data as we received it from the file. */ - - /* We cannot send more data than space available in the send - buffer. */ - if (tcp_sndbuf(pcb) < hs->left) { - len = tcp_sndbuf(pcb); - } else { - len = (u16_t)hs->left; - LWIP_ASSERT("hs->left did not fit into u16_t!", (len == hs->left)); - } - mss = tcp_mss(pcb); - if(len > (2 * mss)) { - len = 2 * mss; - } - - err = http_write(pcb, hs->file, &len, HTTP_IS_DATA_VOLATILE(hs)); - if (err == ERR_OK) { - data_to_send = true; - hs->file += len; - hs->left -= len; - } -#if LWIP_HTTPD_SSI - } else { - /* We are processing an SHTML file so need to scan for tags and replace - * them with insert strings. We need to be careful here since a tag may - * straddle the boundary of two blocks read from the file and we may also - * have to split the insert string between two tcp_write operations. */ - - /* How much data could we send? */ - len = tcp_sndbuf(pcb); - - /* Do we have remaining data to send before parsing more? */ - if(hs->parsed > hs->file) { - /* We cannot send more data than space available in the send - buffer. */ - if (tcp_sndbuf(pcb) < (hs->parsed - hs->file)) { - len = tcp_sndbuf(pcb); - } else { - LWIP_ASSERT("Data size does not fit into u16_t!", - (hs->parsed - hs->file) <= 0xffff); - len = (u16_t)(hs->parsed - hs->file); - } - mss = tcp_mss(pcb); - if(len > (2 * mss)) { - len = 2 * mss; - } - - err = http_write(pcb, hs->file, &len, HTTP_IS_DATA_VOLATILE(hs)); - if (err == ERR_OK) { - data_to_send = true; - hs->file += len; - hs->left -= len; - } - - /* If the send buffer is full, return now. */ - if(tcp_sndbuf(pcb) == 0) { - return data_to_send; - } - } - - LWIP_DEBUGF(HTTPD_DEBUG, ("State %d, %d left\n", hs->tag_state, hs->parse_left)); - - /* We have sent all the data that was already parsed so continue parsing - * the buffer contents looking for SSI tags. */ - while((hs->parse_left) && (err == ERR_OK)) { - /* @todo: somewhere in this loop, 'len' should grow again... */ - if (len == 0) { - return data_to_send; - } - switch(hs->tag_state) { - case TAG_NONE: - /* We are not currently processing an SSI tag so scan for the - * start of the lead-in marker. */ - if(*hs->parsed == g_pcTagLeadIn[0]) { - /* We found what could be the lead-in for a new tag so change - * state appropriately. */ - hs->tag_state = TAG_LEADIN; - hs->tag_index = 1; -#if !LWIP_HTTPD_SSI_INCLUDE_TAG - hs->tag_started = hs->parsed; -#endif /* !LWIP_HTTPD_SSI_INCLUDE_TAG */ - } - - /* Move on to the next character in the buffer */ - hs->parse_left--; - hs->parsed++; - break; - - case TAG_LEADIN: - /* We are processing the lead-in marker, looking for the start of - * the tag name. */ - - /* Have we reached the end of the leadin? */ - if(hs->tag_index == LEN_TAG_LEAD_IN) { - hs->tag_index = 0; - hs->tag_state = TAG_FOUND; - } else { - /* Have we found the next character we expect for the tag leadin? */ - if(*hs->parsed == g_pcTagLeadIn[hs->tag_index]) { - /* Yes - move to the next one unless we have found the complete - * leadin, in which case we start looking for the tag itself */ - hs->tag_index++; - } else { - /* We found an unexpected character so this is not a tag. Move - * back to idle state. */ - hs->tag_state = TAG_NONE; - } - - /* Move on to the next character in the buffer */ - hs->parse_left--; - hs->parsed++; - } - break; - - case TAG_FOUND: - /* We are reading the tag name, looking for the start of the - * lead-out marker and removing any whitespace found. */ - - /* Remove leading whitespace between the tag leading and the first - * tag name character. */ - if((hs->tag_index == 0) && ((*hs->parsed == ' ') || - (*hs->parsed == '\t') || (*hs->parsed == '\n') || - (*hs->parsed == '\r'))) { - /* Move on to the next character in the buffer */ - hs->parse_left--; - hs->parsed++; - break; - } - - /* Have we found the end of the tag name? This is signalled by - * us finding the first leadout character or whitespace */ - if((*hs->parsed == g_pcTagLeadOut[0]) || - (*hs->parsed == ' ') || (*hs->parsed == '\t') || - (*hs->parsed == '\n') || (*hs->parsed == '\r')) { - - if(hs->tag_index == 0) { - /* We read a zero length tag so ignore it. */ - hs->tag_state = TAG_NONE; - } else { - /* We read a non-empty tag so go ahead and look for the - * leadout string. */ - hs->tag_state = TAG_LEADOUT; - LWIP_ASSERT("hs->tag_index <= 0xff", hs->tag_index <= 0xff); - hs->tag_name_len = (u8_t)hs->tag_index; - hs->tag_name[hs->tag_index] = '\0'; - if(*hs->parsed == g_pcTagLeadOut[0]) { - hs->tag_index = 1; - } else { - hs->tag_index = 0; - } - } - } else { - /* This character is part of the tag name so save it */ - if(hs->tag_index < LWIP_HTTPD_MAX_TAG_NAME_LEN) { - hs->tag_name[hs->tag_index++] = *hs->parsed; - } else { - /* The tag was too long so ignore it. */ - hs->tag_state = TAG_NONE; - } - } - - /* Move on to the next character in the buffer */ - hs->parse_left--; - hs->parsed++; - - break; - - /* We are looking for the end of the lead-out marker. */ - case TAG_LEADOUT: - /* Remove leading whitespace between the tag leading and the first - * tag leadout character. */ - if((hs->tag_index == 0) && ((*hs->parsed == ' ') || - (*hs->parsed == '\t') || (*hs->parsed == '\n') || - (*hs->parsed == '\r'))) { - /* Move on to the next character in the buffer */ - hs->parse_left--; - hs->parsed++; - break; - } - - /* Have we found the next character we expect for the tag leadout? */ - if(*hs->parsed == g_pcTagLeadOut[hs->tag_index]) { - /* Yes - move to the next one unless we have found the complete - * leadout, in which case we need to call the client to process - * the tag. */ - - /* Move on to the next character in the buffer */ - hs->parse_left--; - hs->parsed++; - - if(hs->tag_index == (LEN_TAG_LEAD_OUT - 1)) { - /* Call the client to ask for the insert string for the - * tag we just found. */ -#if LWIP_HTTPD_SSI_MULTIPART - hs->tag_part = 0; /* start with tag part 0 */ -#endif /* LWIP_HTTPD_SSI_MULTIPART */ - get_tag_insert(hs); - - /* Next time through, we are going to be sending data - * immediately, either the end of the block we start - * sending here or the insert string. */ - hs->tag_index = 0; - hs->tag_state = TAG_SENDING; - hs->tag_end = hs->parsed; -#if !LWIP_HTTPD_SSI_INCLUDE_TAG - hs->parsed = hs->tag_started; -#endif /* !LWIP_HTTPD_SSI_INCLUDE_TAG*/ - - /* If there is any unsent data in the buffer prior to the - * tag, we need to send it now. */ - if (hs->tag_end > hs->file) { - /* How much of the data can we send? */ -#if LWIP_HTTPD_SSI_INCLUDE_TAG - if(len > hs->tag_end - hs->file) { - len = (u16_t)(hs->tag_end - hs->file); - } -#else /* LWIP_HTTPD_SSI_INCLUDE_TAG*/ - if(len > hs->tag_started - hs->file) { - /* we would include the tag in sending */ - len = (u16_t)(hs->tag_started - hs->file); - } -#endif /* LWIP_HTTPD_SSI_INCLUDE_TAG*/ - - err = http_write(pcb, hs->file, &len, HTTP_IS_DATA_VOLATILE(hs)); - if (err == ERR_OK) { - data_to_send = true; -#if !LWIP_HTTPD_SSI_INCLUDE_TAG - if(hs->tag_started <= hs->file) { - /* pretend to have sent the tag, too */ - len += hs->tag_end - hs->tag_started; - } -#endif /* !LWIP_HTTPD_SSI_INCLUDE_TAG*/ - hs->file += len; - hs->left -= len; - } - } - } else { - hs->tag_index++; - } - } else { - /* We found an unexpected character so this is not a tag. Move - * back to idle state. */ - hs->parse_left--; - hs->parsed++; - hs->tag_state = TAG_NONE; - } - break; - - /* - * We have found a valid tag and are in the process of sending - * data as a result of that discovery. We send either remaining data - * from the file prior to the insert point or the insert string itself. - */ - case TAG_SENDING: - /* Do we have any remaining file data to send from the buffer prior - * to the tag? */ - if(hs->tag_end > hs->file) { - /* How much of the data can we send? */ -#if LWIP_HTTPD_SSI_INCLUDE_TAG - if(len > hs->tag_end - hs->file) { - len = (u16_t)(hs->tag_end - hs->file); - } -#else /* LWIP_HTTPD_SSI_INCLUDE_TAG*/ - LWIP_ASSERT("hs->started >= hs->file", hs->tag_started >= hs->file); - if (len > hs->tag_started - hs->file) { - /* we would include the tag in sending */ - len = (u16_t)(hs->tag_started - hs->file); - } -#endif /* LWIP_HTTPD_SSI_INCLUDE_TAG*/ - if (len != 0) { - err = http_write(pcb, hs->file, &len, HTTP_IS_DATA_VOLATILE(hs)); - } else { - err = ERR_OK; - } - if (err == ERR_OK) { - data_to_send = true; -#if !LWIP_HTTPD_SSI_INCLUDE_TAG - if(hs->tag_started <= hs->file) { - /* pretend to have sent the tag, too */ - len += hs->tag_end - hs->tag_started; - } -#endif /* !LWIP_HTTPD_SSI_INCLUDE_TAG*/ - hs->file += len; - hs->left -= len; - } - } else { -#if LWIP_HTTPD_SSI_MULTIPART - if(hs->tag_index >= hs->tag_insert_len) { - /* Did the last SSIHandler have more to send? */ - if (hs->tag_part != HTTPD_LAST_TAG_PART) { - /* If so, call it again */ - hs->tag_index = 0; - get_tag_insert(hs); - } - } -#endif /* LWIP_HTTPD_SSI_MULTIPART */ - - /* Do we still have insert data left to send? */ - if(hs->tag_index < hs->tag_insert_len) { - /* We are sending the insert string itself. How much of the - * insert can we send? */ - if(len > (hs->tag_insert_len - hs->tag_index)) { - len = (hs->tag_insert_len - hs->tag_index); - } - - /* Note that we set the copy flag here since we only have a - * single tag insert buffer per connection. If we don't do - * this, insert corruption can occur if more than one insert - * is processed before we call tcp_output. */ - err = http_write(pcb, &(hs->tag_insert[hs->tag_index]), &len, - HTTP_IS_TAG_VOLATILE(hs)); - if (err == ERR_OK) { - data_to_send = true; - hs->tag_index += len; - /* Don't return here: keep on sending data */ - } - } else { - /* We have sent all the insert data so go back to looking for - * a new tag. */ - LWIP_DEBUGF(HTTPD_DEBUG, ("Everything sent.\n")); - hs->tag_index = 0; - hs->tag_state = TAG_NONE; -#if !LWIP_HTTPD_SSI_INCLUDE_TAG - hs->parsed = hs->tag_end; -#endif /* !LWIP_HTTPD_SSI_INCLUDE_TAG*/ - } - break; - } - } - } - - /* If we drop out of the end of the for loop, this implies we must have - * file data to send so send it now. In TAG_SENDING state, we've already - * handled this so skip the send if that's the case. */ - if((hs->tag_state != TAG_SENDING) && (hs->parsed > hs->file)) { - /* We cannot send more data than space available in the send - buffer. */ - if (tcp_sndbuf(pcb) < (hs->parsed - hs->file)) { - len = tcp_sndbuf(pcb); - } else { - LWIP_ASSERT("Data size does not fit into u16_t!", - (hs->parsed - hs->file) <= 0xffff); - len = (u16_t)(hs->parsed - hs->file); - } - if(len > (2 * tcp_mss(pcb))) { - len = 2 * tcp_mss(pcb); - } - - err = http_write(pcb, hs->file, &len, HTTP_IS_DATA_VOLATILE(hs)); - if (err == ERR_OK) { - data_to_send = true; - hs->file += len; - hs->left -= len; - } - } - } -#endif /* LWIP_HTTPD_SSI */ - - if((hs->left == 0) && (fs_bytes_left(hs->handle) <= 0)) { - /* We reached the end of the file so this request is done. - * This adds the FIN flag right into the last data segment. - * @todo: don't close here for HTTP/1.1? */ - LWIP_DEBUGF(HTTPD_DEBUG, ("End of file.\n")); - http_close_conn(pcb, hs); - return 0; - } - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("send_data end.\n")); - return data_to_send; -} - -#if LWIP_HTTPD_SUPPORT_EXTSTATUS -/** Initialize a http connection with a file to send for an error message - * - * @param hs http connection state - * @param error_nr HTTP error number - * @return ERR_OK if file was found and hs has been initialized correctly - * another err_t otherwise - */ -static err_t -http_find_error_file(struct http_state *hs, u16_t error_nr) -{ - const char *uri1, *uri2, *uri3; - struct fs_file *file; - - if (error_nr == 501) { - uri1 = "/501.html"; - uri2 = "/501.htm"; - uri3 = "/501.shtml"; - } else { - /* 400 (bad request is the default) */ - uri1 = "/400.html"; - uri2 = "/400.htm"; - uri3 = "/400.shtml"; - } - file = fs_open(uri1); - if (file == NULL) { - file = fs_open(uri2); - if (file == NULL) { - file = fs_open(uri3); - if (file == NULL) { - LWIP_DEBUGF(HTTPD_DEBUG, ("Error page for error %"U16_F" not found\n", - error_nr)); - return ERR_ARG; - } - } - } - return http_init_file(hs, file, 0, NULL); -} -#else /* LWIP_HTTPD_SUPPORT_EXTSTATUS */ -#define http_find_error_file(hs, error_nr) ERR_ARG -#endif /* LWIP_HTTPD_SUPPORT_EXTSTATUS */ - -/** - * Get the file struct for a 404 error page. - * Tries some file names and returns NULL if none found. - * - * @param uri pointer that receives the actual file name URI - * @return file struct for the error page or NULL no matching file was found - */ -static struct fs_file * -http_get_404_file(const char **uri) -{ - struct fs_file *file; - - *uri = "/404.html"; - file = fs_open(*uri); - if(file == NULL) { - /* 404.html doesn't exist. Try 404.htm instead. */ - *uri = "/404.htm"; - file = fs_open(*uri); - if(file == NULL) { - /* 404.htm doesn't exist either. Try 404.shtml instead. */ - *uri = "/404.shtml"; - file = fs_open(*uri); - if(file == NULL) { - /* 404.htm doesn't exist either. Indicate to the caller that it should - * send back a default 404 page. - */ - *uri = NULL; - } - } - } - - return file; -} - -#if LWIP_HTTPD_SUPPORT_POST -static err_t -http_handle_post_finished(struct http_state *hs) -{ - /* application error or POST finished */ - /* NULL-terminate the buffer */ - http_post_response_filename[0] = 0; - httpd_post_finished(hs, http_post_response_filename, LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN); - return http_find_file(hs, http_post_response_filename, 0); -} - -/** Pass received POST body data to the application and correctly handle - * returning a response document or closing the connection. - * ATTENTION: The application is responsible for the pbuf now, so don't free it! - * - * @param hs http connection state - * @param p pbuf to pass to the application - * @return ERR_OK if passed successfully, another err_t if the response file - * hasn't been found (after POST finished) - */ -static err_t -http_post_rxpbuf(struct http_state *hs, struct pbuf *p) -{ - err_t err; - - /* adjust remaining Content-Length */ - if (hs->post_content_len_left < p->tot_len) { - hs->post_content_len_left = 0; - } else { - hs->post_content_len_left -= p->tot_len; - } - err = httpd_post_receive_data(hs, p); - if ((err != ERR_OK) || (hs->post_content_len_left == 0)) { -#if LWIP_HTTPD_SUPPORT_POST && LWIP_HTTPD_POST_MANUAL_WND - if (hs->unrecved_bytes != 0) { - return ERR_OK; - } -#endif /* LWIP_HTTPD_SUPPORT_POST && LWIP_HTTPD_POST_MANUAL_WND */ - /* application error or POST finished */ - return http_handle_post_finished(hs); - } - - return ERR_OK; -} - -/** Handle a post request. Called from http_parse_request when method 'POST' - * is found. - * - * @param pcb The tcp_pcb which received this packet. - * @param p The input pbuf (containing the POST header and body). - * @param hs The http connection state. - * @param data HTTP request (header and part of body) from input pbuf(s). - * @param data_len Size of 'data'. - * @param uri The HTTP URI parsed from input pbuf(s). - * @param uri_end Pointer to the end of 'uri' (here, the rest of the HTTP - * header starts). - * @return ERR_OK: POST correctly parsed and accepted by the application. - * ERR_INPROGRESS: POST not completely parsed (no error yet) - * another err_t: Error parsing POST or denied by the application - */ -static err_t -http_post_request(struct tcp_pcb *pcb, struct pbuf **inp, struct http_state *hs, - char *data, u16_t data_len, char *uri, char *uri_end) -{ - err_t err; - /* search for end-of-header (first double-CRLF) */ - char* crlfcrlf = strnstr(uri_end + 1, CRLF CRLF, data_len - (uri_end + 1 - data)); - -#if LWIP_HTTPD_POST_MANUAL_WND - hs->pcb = pcb; -#else /* LWIP_HTTPD_POST_MANUAL_WND */ - LWIP_UNUSED_ARG(pcb); /* only used for LWIP_HTTPD_POST_MANUAL_WND */ -#endif /* LWIP_HTTPD_POST_MANUAL_WND */ - - if (crlfcrlf != NULL) { - /* search for "Content-Length: " */ -#define HTTP_HDR_CONTENT_LEN "Content-Length: " -#define HTTP_HDR_CONTENT_LEN_LEN 16 -#define HTTP_HDR_CONTENT_LEN_DIGIT_MAX_LEN 10 - char *scontent_len = strnstr(uri_end + 1, HTTP_HDR_CONTENT_LEN, crlfcrlf - (uri_end + 1)); - if (scontent_len != NULL) { - char *scontent_len_end = strnstr(scontent_len + HTTP_HDR_CONTENT_LEN_LEN, CRLF, HTTP_HDR_CONTENT_LEN_DIGIT_MAX_LEN); - if (scontent_len_end != NULL) { - int content_len; - char *conten_len_num = scontent_len + HTTP_HDR_CONTENT_LEN_LEN; - *scontent_len_end = 0; - content_len = atoi(conten_len_num); - if (content_len > 0) { - /* adjust length of HTTP header passed to application */ - const char *hdr_start_after_uri = uri_end + 1; - u16_t hdr_len = LWIP_MIN(data_len, crlfcrlf + 4 - data); - u16_t hdr_data_len = LWIP_MIN(data_len, crlfcrlf + 4 - hdr_start_after_uri); - u8_t post_auto_wnd = 1; - http_post_response_filename[0] = 0; - err = httpd_post_begin(hs, uri, hdr_start_after_uri, hdr_data_len, content_len, - http_post_response_filename, LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN, &post_auto_wnd); - if (err == ERR_OK) { - /* try to pass in data of the first pbuf(s) */ - struct pbuf *q = *inp; - u16_t start_offset = hdr_len; -#if LWIP_HTTPD_POST_MANUAL_WND - hs->no_auto_wnd = !post_auto_wnd; -#endif /* LWIP_HTTPD_POST_MANUAL_WND */ - /* set the Content-Length to be received for this POST */ - hs->post_content_len_left = (u32_t)content_len; - - /* get to the pbuf where the body starts */ - while((q != NULL) && (q->len <= start_offset)) { - struct pbuf *head = q; - start_offset -= q->len; - q = q->next; - /* free the head pbuf */ - head->next = NULL; - pbuf_free(head); - } - *inp = NULL; - if (q != NULL) { - /* hide the remaining HTTP header */ - pbuf_header(q, -(s16_t)start_offset); -#if LWIP_HTTPD_POST_MANUAL_WND - if (!post_auto_wnd) { - /* already tcp_recved() this data... */ - hs->unrecved_bytes = q->tot_len; - } -#endif /* LWIP_HTTPD_POST_MANUAL_WND */ - return http_post_rxpbuf(hs, q); - } else { - return ERR_OK; - } - } else { - /* return file passed from application */ - return http_find_file(hs, http_post_response_filename, 0); - } - } else { - LWIP_DEBUGF(HTTPD_DEBUG, ("POST received invalid Content-Length: %s\n", - conten_len_num)); - return ERR_ARG; - } - } - } - } - /* if we come here, the POST is incomplete */ -#if LWIP_HTTPD_SUPPORT_REQUESTLIST - return ERR_INPROGRESS; -#else /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ - return ERR_ARG; -#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ -} - -#if LWIP_HTTPD_POST_MANUAL_WND -/** A POST implementation can call this function to update the TCP window. - * This can be used to throttle data reception (e.g. when received data is - * programmed to flash and data is received faster than programmed). - * - * @param connection A connection handle passed to httpd_post_begin for which - * httpd_post_finished has *NOT* been called yet! - * @param recved_len Length of data received (for window update) - */ -void httpd_post_data_recved(void *connection, u16_t recved_len) -{ - struct http_state *hs = (struct http_state*)connection; - if (hs != NULL) { - if (hs->no_auto_wnd) { - u16_t len = recved_len; - if (hs->unrecved_bytes >= recved_len) { - hs->unrecved_bytes -= recved_len; - } else { - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_LEVEL_WARNING, ("httpd_post_data_recved: recved_len too big\n")); - len = (u16_t)hs->unrecved_bytes; - hs->unrecved_bytes = 0; - } - if (hs->pcb != NULL) { - if (len != 0) { - tcp_recved(hs->pcb, len); - } - if ((hs->post_content_len_left == 0) && (hs->unrecved_bytes == 0)) { - /* finished handling POST */ - http_handle_post_finished(hs); - http_send_data(hs->pcb, hs); - } - } - } - } -} -#endif /* LWIP_HTTPD_POST_MANUAL_WND */ - -#endif /* LWIP_HTTPD_SUPPORT_POST */ - -/** - * When data has been received in the correct state, try to parse it - * as a HTTP request. - * - * @param p the received pbuf - * @param hs the connection state - * @param pcb the tcp_pcb which received this packet - * @return ERR_OK if request was OK and hs has been initialized correctly - * ERR_INPROGRESS if request was OK so far but not fully received - * another err_t otherwise - */ -static err_t -http_parse_request(struct pbuf **inp, struct http_state *hs, struct tcp_pcb *pcb) -{ - char *data; - char *crlf; - u16_t data_len; - struct pbuf *p = *inp; -#if LWIP_HTTPD_SUPPORT_REQUESTLIST - u16_t clen; -#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ -#if LWIP_HTTPD_SUPPORT_POST - err_t err; -#endif /* LWIP_HTTPD_SUPPORT_POST */ - - LWIP_UNUSED_ARG(pcb); /* only used for post */ - LWIP_ASSERT("p != NULL", p != NULL); - LWIP_ASSERT("hs != NULL", hs != NULL); - - if ((hs->handle != NULL) || (hs->file != NULL)) { - LWIP_DEBUGF(HTTPD_DEBUG, ("Received data while sending a file\n")); - /* already sending a file */ - /* @todo: abort? */ - return ERR_USE; - } - -#if LWIP_HTTPD_SUPPORT_REQUESTLIST - - LWIP_DEBUGF(HTTPD_DEBUG, ("Received %"U16_F" bytes\n", p->tot_len)); - - /* first check allowed characters in this pbuf? */ - - /* enqueue the pbuf */ - if (hs->req == NULL) { - LWIP_DEBUGF(HTTPD_DEBUG, ("First pbuf\n")); - hs->req = p; - } else { - LWIP_DEBUGF(HTTPD_DEBUG, ("pbuf enqueued\n")); - pbuf_cat(hs->req, p); - } - - if (hs->req->next != NULL) { - data_len = LWIP_MIN(hs->req->tot_len, LWIP_HTTPD_MAX_REQ_LENGTH); - pbuf_copy_partial(hs->req, httpd_req_buf, data_len, 0); - data = httpd_req_buf; - } else -#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ - { - data = (char *)p->payload; - data_len = p->len; - if (p->len != p->tot_len) { - LWIP_DEBUGF(HTTPD_DEBUG, ("Warning: incomplete header due to chained pbufs\n")); - } - } - - /* received enough data for minimal request? */ - if (data_len >= MIN_REQ_LEN) { - /* wait for CRLF before parsing anything */ - crlf = strnstr(data, CRLF, data_len); - if (crlf != NULL) { -#if LWIP_HTTPD_SUPPORT_POST - int is_post = 0; -#endif /* LWIP_HTTPD_SUPPORT_POST */ - int is_09 = 0; - char *sp1, *sp2; - u16_t left_len, uri_len; - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("CRLF received, parsing request\n")); - /* parse method */ - if (!strncmp(data, "GET ", 4)) { - sp1 = data + 3; - /* received GET request */ - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Received GET request\"\n")); -#if LWIP_HTTPD_SUPPORT_POST - } else if (!strncmp(data, "POST ", 5)) { - /* store request type */ - is_post = 1; - sp1 = data + 4; - /* received GET request */ - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Received POST request\n")); -#endif /* LWIP_HTTPD_SUPPORT_POST */ - } else { - /* null-terminate the METHOD (pbuf is freed anyway wen returning) */ - data[4] = 0; - /* unsupported method! */ - LWIP_DEBUGF(HTTPD_DEBUG, ("Unsupported request method (not implemented): \"%s\"\n", - data)); - return http_find_error_file(hs, 501); - } - /* if we come here, method is OK, parse URI */ - left_len = data_len - ((sp1 +1) - data); - sp2 = strnstr(sp1 + 1, " ", left_len); -#if LWIP_HTTPD_SUPPORT_V09 - if (sp2 == NULL) { - /* HTTP 0.9: respond with correct protocol version */ - sp2 = strnstr(sp1 + 1, CRLF, left_len); - is_09 = 1; -#if LWIP_HTTPD_SUPPORT_POST - if (is_post) { - /* HTTP/0.9 does not support POST */ - goto badrequest; - } -#endif /* LWIP_HTTPD_SUPPORT_POST */ - } -#endif /* LWIP_HTTPD_SUPPORT_V09 */ - uri_len = sp2 - (sp1 + 1); - if ((sp2 != 0) && (sp2 > sp1)) { - char *uri = sp1 + 1; - /* null-terminate the METHOD (pbuf is freed anyway wen returning) */ - *sp1 = 0; - uri[uri_len] = 0; - LWIP_DEBUGF(HTTPD_DEBUG, ("Received \"%s\" request for URI: \"%s\"\n", - data, uri)); -#if LWIP_HTTPD_SUPPORT_POST - if (is_post) { -#if LWIP_HTTPD_SUPPORT_REQUESTLIST - struct pbuf **q = &hs->req; -#else /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ - struct pbuf **q = inp; -#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ - err = http_post_request(pcb, q, hs, data, data_len, uri, sp2); - if (err != ERR_OK) { - /* restore header for next try */ - *sp1 = ' '; - *sp2 = ' '; - uri[uri_len] = ' '; - } - if (err == ERR_ARG) { - goto badrequest; - } - return err; - } else -#endif /* LWIP_HTTPD_SUPPORT_POST */ - { - return http_find_file(hs, uri, is_09); - } - } else { - LWIP_DEBUGF(HTTPD_DEBUG, ("invalid URI\n")); - } - } - } - -#if LWIP_HTTPD_SUPPORT_REQUESTLIST - clen = pbuf_clen(hs->req); - if ((hs->req->tot_len <= LWIP_HTTPD_REQ_BUFSIZE) && - (clen <= LWIP_HTTPD_REQ_QUEUELEN)) { - /* request not fully received (too short or CRLF is missing) */ - return ERR_INPROGRESS; - } else -#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ - { -#if LWIP_HTTPD_SUPPORT_POST -badrequest: -#endif /* LWIP_HTTPD_SUPPORT_POST */ - LWIP_DEBUGF(HTTPD_DEBUG, ("bad request\n")); - /* could not parse request */ - return http_find_error_file(hs, 400); - } -} - -/** Try to find the file specified by uri and, if found, initialize hs - * accordingly. - * - * @param hs the connection state - * @param uri the HTTP header URI - * @param is_09 1 if the request is HTTP/0.9 (no HTTP headers in response) - * @return ERR_OK if file was found and hs has been initialized correctly - * another err_t otherwise - */ -static err_t -http_find_file(struct http_state *hs, const char *uri, int is_09) -{ - size_t loop; - struct fs_file *file = NULL; - char *params; -#if LWIP_HTTPD_CGI - int i; - int count; -#endif /* LWIP_HTTPD_CGI */ - -#if LWIP_HTTPD_SSI - /* - * By default, assume we will not be processing server-side-includes - * tags - */ - hs->tag_check = false; -#endif /* LWIP_HTTPD_SSI */ - - /* Have we been asked for the default root file? */ - if((uri[0] == '/') && (uri[1] == 0)) { - /* Try each of the configured default filenames until we find one - that exists. */ - for (loop = 0; loop < NUM_DEFAULT_FILENAMES; loop++) { - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Looking for %s...\n", g_psDefaultFilenames[loop].name)); - file = fs_open((char *)g_psDefaultFilenames[loop].name); - uri = (char *)g_psDefaultFilenames[loop].name; - if(file != NULL) { - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Opened.\n")); -#if LWIP_HTTPD_SSI - hs->tag_check = g_psDefaultFilenames[loop].shtml; -#endif /* LWIP_HTTPD_SSI */ - break; - } - } - if (file == NULL) { - /* None of the default filenames exist so send back a 404 page */ - file = http_get_404_file(&uri); -#if LWIP_HTTPD_SSI - hs->tag_check = false; -#endif /* LWIP_HTTPD_SSI */ - } - } else { - /* No - we've been asked for a specific file. */ - /* First, isolate the base URI (without any parameters) */ - params = (char *)strchr(uri, '?'); - if (params != NULL) { - /* URI contains parameters. NULL-terminate the base URI */ - *params = '\0'; - params++; - } - -#if LWIP_HTTPD_CGI - /* Does the base URI we have isolated correspond to a CGI handler? */ - if (g_iNumCGIs && g_pCGIs) { - for (i = 0; i < g_iNumCGIs; i++) { - if (strcmp(uri, g_pCGIs[i].pcCGIName) == 0) { - /* - * We found a CGI that handles this URI so extract the - * parameters and call the handler. - */ - count = extract_uri_parameters(hs, params); - uri = g_pCGIs[i].pfnCGIHandler(i, count, hs->params, - hs->param_vals); - break; - } - } - } -#endif /* LWIP_HTTPD_CGI */ - - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Opening %s\n", uri)); - - file = fs_open(uri); - if (file == NULL) { - file = http_get_404_file(&uri); - } -#if LWIP_HTTPD_SSI - if (file != NULL) { - /* - * See if we have been asked for an shtml file and, if so, - * enable tag checking. - */ - hs->tag_check = false; - for (loop = 0; loop < NUM_SHTML_EXTENSIONS; loop++) { - if (strstr(uri, g_pcSSIExtensions[loop])) { - hs->tag_check = true; - break; - } - } - } -#endif /* LWIP_HTTPD_SSI */ - } - return http_init_file(hs, file, is_09, uri); -} - -/** Initialize a http connection with a file to send (if found). - * Called by http_find_file and http_find_error_file. - * - * @param hs http connection state - * @param file file structure to send (or NULL if not found) - * @param is_09 1 if the request is HTTP/0.9 (no HTTP headers in response) - * @param uri the HTTP header URI - * @return ERR_OK if file was found and hs has been initialized correctly - * another err_t otherwise - */ -static err_t -http_init_file(struct http_state *hs, struct fs_file *file, int is_09, const char *uri) -{ - if (file != NULL) { - /* file opened, initialise struct http_state */ -#if LWIP_HTTPD_SSI - hs->tag_index = 0; - hs->tag_state = TAG_NONE; - hs->parsed = file->data; - hs->parse_left = file->len; - hs->tag_end = file->data; -#endif /* LWIP_HTTPD_SSI */ - hs->handle = file; - hs->file = (char*)file->data; - LWIP_ASSERT("File length must be positive!", (file->len >= 0)); - hs->left = file->len; - hs->retries = 0; -#if LWIP_HTTPD_TIMING - hs->time_started = sys_now(); -#endif /* LWIP_HTTPD_TIMING */ -#if !LWIP_HTTPD_DYNAMIC_HEADERS - LWIP_ASSERT("HTTP headers not included in file system", hs->handle->http_header_included); -#endif /* !LWIP_HTTPD_DYNAMIC_HEADERS */ -#if LWIP_HTTPD_SUPPORT_V09 - if (hs->handle->http_header_included && is_09) { - /* HTTP/0.9 responses are sent without HTTP header, - search for the end of the header. */ - char *file_start = strnstr(hs->file, CRLF CRLF, hs->left); - if (file_start != NULL) { - size_t diff = file_start + 4 - hs->file; - hs->file += diff; - hs->left -= (u32_t)diff; - } - } -#endif /* LWIP_HTTPD_SUPPORT_V09*/ - } else { - hs->handle = NULL; - hs->file = NULL; - hs->left = 0; - hs->retries = 0; - } -#if LWIP_HTTPD_DYNAMIC_HEADERS - /* Determine the HTTP headers to send based on the file extension of - * the requested URI. */ - if ((hs->handle == NULL) || !hs->handle->http_header_included) { - get_http_headers(hs, (char*)uri); - } -#else /* LWIP_HTTPD_DYNAMIC_HEADERS */ - LWIP_UNUSED_ARG(uri); -#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */ - return ERR_OK; -} - -/** - * The pcb had an error and is already deallocated. - * The argument might still be valid (if != NULL). - */ -static void -http_err(void *arg, err_t err) -{ - struct http_state *hs = (struct http_state *)arg; - LWIP_UNUSED_ARG(err); - - LWIP_DEBUGF(HTTPD_DEBUG, ("http_err: %s", lwip_strerr(err))); - - if (hs != NULL) { - http_state_free(hs); - } -} - -/** - * Data has been sent and acknowledged by the remote host. - * This means that more data can be sent. - */ -static err_t -http_sent(void *arg, struct tcp_pcb *pcb, u16_t len) -{ - struct http_state *hs = (struct http_state *)arg; - - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("http_sent %p\n", (void*)pcb)); - - LWIP_UNUSED_ARG(len); - - if (hs == NULL) { - return ERR_OK; - } - - hs->retries = 0; - - http_send_data(pcb, hs); - - return ERR_OK; -} - -/** - * The poll function is called every 2nd second. - * If there has been no data sent (which resets the retries) in 8 seconds, close. - * If the last portion of a file has not been sent in 2 seconds, close. - * - * This could be increased, but we don't want to waste resources for bad connections. - */ -static err_t -http_poll(void *arg, struct tcp_pcb *pcb) -{ - struct http_state *hs = (struct http_state *)arg; - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("http_poll: pcb=%p hs=%p pcb_state=%s\n", - (void*)pcb, (void*)hs, tcp_debug_state_str(pcb->state))); - - if (hs == NULL) { - err_t closed; - /* arg is null, close. */ - LWIP_DEBUGF(HTTPD_DEBUG, ("http_poll: arg is NULL, close\n")); - closed = http_close_conn(pcb, hs); - LWIP_UNUSED_ARG(closed); -#if LWIP_HTTPD_ABORT_ON_CLOSE_MEM_ERROR - if (closed == ERR_MEM) { - tcp_abort(pcb); - return ERR_ABRT; - } -#endif /* LWIP_HTTPD_ABORT_ON_CLOSE_MEM_ERROR */ - return ERR_OK; - } else { - hs->retries++; - if (hs->retries == HTTPD_MAX_RETRIES) { - LWIP_DEBUGF(HTTPD_DEBUG, ("http_poll: too many retries, close\n")); - http_close_conn(pcb, hs); - return ERR_OK; - } - - /* If this connection has a file open, try to send some more data. If - * it has not yet received a GET request, don't do this since it will - * cause the connection to close immediately. */ - if(hs && (hs->handle)) { - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("http_poll: try to send more data\n")); - if(http_send_data(pcb, hs)) { - /* If we wrote anything to be sent, go ahead and send it now. */ - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("tcp_output\n")); - tcp_output(pcb); - } - } - } - - return ERR_OK; -} - -/** - * Data has been received on this pcb. - * For HTTP 1.0, this should normally only happen once (if the request fits in one packet). - */ -static err_t -http_recv(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err) -{ - err_t parsed = ERR_ABRT; - struct http_state *hs = (struct http_state *)arg; - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("http_recv: pcb=%p pbuf=%p err=%s\n", (void*)pcb, - (void*)p, lwip_strerr(err))); - - if ((err != ERR_OK) || (p == NULL) || (hs == NULL)) { - /* error or closed by other side? */ - if (p != NULL) { - /* Inform TCP that we have taken the data. */ - tcp_recved(pcb, p->tot_len); - pbuf_free(p); - } - if (hs == NULL) { - /* this should not happen, only to be robust */ - LWIP_DEBUGF(HTTPD_DEBUG, ("Error, http_recv: hs is NULL, close\n")); - } - http_close_conn(pcb, hs); - return ERR_OK; - } - -#if LWIP_HTTPD_SUPPORT_POST && LWIP_HTTPD_POST_MANUAL_WND - if (hs->no_auto_wnd) { - hs->unrecved_bytes += p->tot_len; - } else -#endif /* LWIP_HTTPD_SUPPORT_POST && LWIP_HTTPD_POST_MANUAL_WND */ - { - /* Inform TCP that we have taken the data. */ - tcp_recved(pcb, p->tot_len); - } - -#if LWIP_HTTPD_SUPPORT_POST - if (hs->post_content_len_left > 0) { - /* reset idle counter when POST data is received */ - hs->retries = 0; - /* this is data for a POST, pass the complete pbuf to the application */ - http_post_rxpbuf(hs, p); - /* pbuf is passed to the application, don't free it! */ - if (hs->post_content_len_left == 0) { - /* all data received, send response or close connection */ - http_send_data(pcb, hs); - } - return ERR_OK; - } else -#endif /* LWIP_HTTPD_SUPPORT_POST */ - { - if (hs->handle == NULL) { - parsed = http_parse_request(&p, hs, pcb); - LWIP_ASSERT("http_parse_request: unexpected return value", parsed == ERR_OK - || parsed == ERR_INPROGRESS ||parsed == ERR_ARG || parsed == ERR_USE); - } else { - LWIP_DEBUGF(HTTPD_DEBUG, ("http_recv: already sending data\n")); - } -#if LWIP_HTTPD_SUPPORT_REQUESTLIST - if (parsed != ERR_INPROGRESS) { - /* request fully parsed or error */ - if (hs->req != NULL) { - pbuf_free(hs->req); - hs->req = NULL; - } - } -#else /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ - if (p != NULL) { - /* pbuf not passed to application, free it now */ - pbuf_free(p); - } -#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ - if (parsed == ERR_OK) { -#if LWIP_HTTPD_SUPPORT_POST - if (hs->post_content_len_left == 0) -#endif /* LWIP_HTTPD_SUPPORT_POST */ - { - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("http_recv: data %p len %"S32_F"\n", hs->file, hs->left)); - http_send_data(pcb, hs); - } - } else if (parsed == ERR_ARG) { - /* @todo: close on ERR_USE? */ - http_close_conn(pcb, hs); - } - } - return ERR_OK; -} - -/** - * A new incoming connection has been accepted. - */ -static err_t -http_accept(void *arg, struct tcp_pcb *pcb, err_t err) -{ - struct http_state *hs; - struct tcp_pcb_listen *lpcb = (struct tcp_pcb_listen*)arg; - LWIP_UNUSED_ARG(err); - LWIP_DEBUGF(HTTPD_DEBUG, ("http_accept %p / %p\n", (void*)pcb, arg)); - - /* Decrease the listen backlog counter */ - tcp_accepted(lpcb); - /* Set priority */ - tcp_setprio(pcb, HTTPD_TCP_PRIO); - - /* Allocate memory for the structure that holds the state of the - connection - initialized by that function. */ - hs = http_state_alloc(); - if (hs == NULL) { - LWIP_DEBUGF(HTTPD_DEBUG, ("http_accept: Out of memory, RST\n")); - return ERR_MEM; - } - - /* Tell TCP that this is the structure we wish to be passed for our - callbacks. */ - tcp_arg(pcb, hs); - - /* Set up the various callback functions */ - tcp_recv(pcb, http_recv); - tcp_err(pcb, http_err); - tcp_poll(pcb, http_poll, HTTPD_POLL_INTERVAL); - tcp_sent(pcb, http_sent); - - return ERR_OK; -} - -/** - * Initialize the httpd with the specified local address. - */ -static void -httpd_init_addr(ip_addr_t *local_addr) -{ - struct tcp_pcb *pcb; - err_t err; - - pcb = tcp_new(); - LWIP_ASSERT("httpd_init: tcp_new failed", pcb != NULL); - tcp_setprio(pcb, HTTPD_TCP_PRIO); - /* set SOF_REUSEADDR here to explicitly bind httpd to multiple interfaces */ - err = tcp_bind(pcb, local_addr, HTTPD_SERVER_PORT); - LWIP_ASSERT("httpd_init: tcp_bind failed", err == ERR_OK); - pcb = tcp_listen(pcb); - LWIP_ASSERT("httpd_init: tcp_listen failed", pcb != NULL); - /* initialize callback arg and accept callback */ - tcp_arg(pcb, pcb); - tcp_accept(pcb, http_accept); -} - -/** - * Initialize the httpd: set up a listening PCB and bind it to the defined port - */ -void -httpd_init(void) -{ -#if HTTPD_USE_MEM_POOL - LWIP_ASSERT("memp_sizes[MEMP_HTTPD_STATE] >= sizeof(http_state)", - memp_sizes[MEMP_HTTPD_STATE] >= sizeof(http_state)); -#endif - LWIP_DEBUGF(HTTPD_DEBUG, ("httpd_init\n")); - - httpd_init_addr(IP_ADDR_ANY); -} - -#if LWIP_HTTPD_SSI -/** - * Set the SSI handler function. - * - * @param ssi_handler the SSI handler function - * @param tags an array of SSI tag strings to search for in SSI-enabled files - * @param num_tags number of tags in the 'tags' array - */ -void -http_set_ssi_handler(tSSIHandler ssi_handler, const char **tags, int num_tags) -{ - LWIP_DEBUGF(HTTPD_DEBUG, ("http_set_ssi_handler\n")); - - LWIP_ASSERT("no ssi_handler given", ssi_handler != NULL); - LWIP_ASSERT("no tags given", tags != NULL); - LWIP_ASSERT("invalid number of tags", num_tags > 0); - - g_pfnSSIHandler = ssi_handler; - g_ppcTags = tags; - g_iNumTags = num_tags; -} -#endif /* LWIP_HTTPD_SSI */ - -#if LWIP_HTTPD_CGI -/** - * Set an array of CGI filenames/handler functions - * - * @param cgis an array of CGI filenames/handler functions - * @param num_handlers number of elements in the 'cgis' array - */ -void -http_set_cgi_handlers(const tCGI *cgis, int num_handlers) -{ - LWIP_ASSERT("no cgis given", cgis != NULL); - LWIP_ASSERT("invalid number of handlers", num_handlers > 0); - - g_pCGIs = cgis; - g_iNumCGIs = num_handlers; -} -#endif /* LWIP_HTTPD_CGI */ - -#endif /* LWIP_TCP */ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/httpd.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/httpd.h deleted file mode 100644 index 8c3c03d47..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/httpd.h +++ /dev/null @@ -1,236 +0,0 @@ -/* - * Copyright (c) 2001-2003 Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. - * - * This file is part of the lwIP TCP/IP stack. - * - * Author: Adam Dunkels - * - * This version of the file has been modified by Texas Instruments to offer - * simple server-side-include (SSI) and Common Gateway Interface (CGI) - * capability. - */ - -#ifndef __HTTPD_H__ -#define __HTTPD_H__ - -#include "lwip/opt.h" -#include "lwip/err.h" -#include "lwip/pbuf.h" - - -/** Set this to 1 to support CGI */ -#ifndef LWIP_HTTPD_CGI -#define LWIP_HTTPD_CGI 0 -#endif - -/** Set this to 1 to support SSI (Server-Side-Includes) */ -#ifndef LWIP_HTTPD_SSI -#define LWIP_HTTPD_SSI 1 -#endif - -/** Set this to 1 to support HTTP POST */ -#ifndef LWIP_HTTPD_SUPPORT_POST -#define LWIP_HTTPD_SUPPORT_POST 0 -#endif - - -#if LWIP_HTTPD_CGI - -/* - * Function pointer for a CGI script handler. - * - * This function is called each time the HTTPD server is asked for a file - * whose name was previously registered as a CGI function using a call to - * http_set_cgi_handler. The iIndex parameter provides the index of the - * CGI within the ppcURLs array passed to http_set_cgi_handler. Parameters - * pcParam and pcValue provide access to the parameters provided along with - * the URI. iNumParams provides a count of the entries in the pcParam and - * pcValue arrays. Each entry in the pcParam array contains the name of a - * parameter with the corresponding entry in the pcValue array containing the - * value for that parameter. Note that pcParam may contain multiple elements - * with the same name if, for example, a multi-selection list control is used - * in the form generating the data. - * - * The function should return a pointer to a character string which is the - * path and filename of the response that is to be sent to the connected - * browser, for example "/thanks.htm" or "/response/error.ssi". - * - * The maximum number of parameters that will be passed to this function via - * iNumParams is defined by LWIP_HTTPD_MAX_CGI_PARAMETERS. Any parameters in the incoming - * HTTP request above this number will be discarded. - * - * Requests intended for use by this CGI mechanism must be sent using the GET - * method (which encodes all parameters within the URI rather than in a block - * later in the request). Attempts to use the POST method will result in the - * request being ignored. - * - */ -typedef const char *(*tCGIHandler)(int iIndex, int iNumParams, char *pcParam[], - char *pcValue[]); - -/* - * Structure defining the base filename (URL) of a CGI and the associated - * function which is to be called when that URL is requested. - */ -typedef struct -{ - const char *pcCGIName; - tCGIHandler pfnCGIHandler; -} tCGI; - -void http_set_cgi_handlers(const tCGI *pCGIs, int iNumHandlers); - - -/* The maximum number of parameters that the CGI handler can be sent. */ -#ifndef LWIP_HTTPD_MAX_CGI_PARAMETERS -#define LWIP_HTTPD_MAX_CGI_PARAMETERS 16 -#endif - -#endif /* LWIP_HTTPD_CGI */ - -#if LWIP_HTTPD_SSI - -/** LWIP_HTTPD_SSI_MULTIPART==1: SSI handler function is called with 2 more - * arguments indicating a counter for insert string that are too long to be - * inserted at once: the SSI handler function must then set 'next_tag_part' - * which will be passed back to it in the next call. */ -#ifndef LWIP_HTTPD_SSI_MULTIPART -#define LWIP_HTTPD_SSI_MULTIPART 0 -#endif - -/* - * Function pointer for the SSI tag handler callback. - * - * This function will be called each time the HTTPD server detects a tag of the - * form in a .shtml, .ssi or .shtm file where "name" appears as - * one of the tags supplied to http_set_ssi_handler in the ppcTags array. The - * returned insert string, which will be appended after the the string - * "" in file sent back to the client,should be written to pointer - * pcInsert. iInsertLen contains the size of the buffer pointed to by - * pcInsert. The iIndex parameter provides the zero-based index of the tag as - * found in the ppcTags array and identifies the tag that is to be processed. - * - * The handler returns the number of characters written to pcInsert excluding - * any terminating NULL or a negative number to indicate a failure (tag not - * recognized, for example). - * - * Note that the behavior of this SSI mechanism is somewhat different from the - * "normal" SSI processing as found in, for example, the Apache web server. In - * this case, the inserted text is appended following the SSI tag rather than - * replacing the tag entirely. This allows for an implementation that does not - * require significant additional buffering of output data yet which will still - * offer usable SSI functionality. One downside to this approach is when - * attempting to use SSI within JavaScript. The SSI tag is structured to - * resemble an HTML comment but this syntax does not constitute a comment - * within JavaScript and, hence, leaving the tag in place will result in - * problems in these cases. To work around this, any SSI tag which needs to - * output JavaScript code must do so in an encapsulated way, sending the whole - * HTML section as a single include. - */ -typedef u16_t (*tSSIHandler)(int iIndex, char *pcInsert, int iInsertLen -#if LWIP_HTTPD_SSI_MULTIPART - , u16_t current_tag_part, u16_t *next_tag_part -#endif /* LWIP_HTTPD_SSI_MULTIPART */ -#if LWIP_HTTPD_FILE_STATE - , void *connection_state -#endif /* LWIP_HTTPD_FILE_STATE */ - ); - -void http_set_ssi_handler(tSSIHandler pfnSSIHandler, - const char **ppcTags, int iNumTags); - -/* The maximum length of the string comprising the tag name */ -#ifndef LWIP_HTTPD_MAX_TAG_NAME_LEN -#define LWIP_HTTPD_MAX_TAG_NAME_LEN 8 -#endif - -/* The maximum length of string that can be returned to replace any given tag */ -#ifndef LWIP_HTTPD_MAX_TAG_INSERT_LEN -#define LWIP_HTTPD_MAX_TAG_INSERT_LEN 192 -#endif - -#endif /* LWIP_HTTPD_SSI */ - -#if LWIP_HTTPD_SUPPORT_POST - -/* These functions must be implemented by the application */ - -/** Called when a POST request has been received. The application can decide - * whether to accept it or not. - * - * @param connection Unique connection identifier, valid until httpd_post_end - * is called. - * @param uri The HTTP header URI receiving the POST request. - * @param http_request The raw HTTP request (the first packet, normally). - * @param http_request_len Size of 'http_request'. - * @param content_len Content-Length from HTTP header. - * @param response_uri Filename of response file, to be filled when denying the - * request - * @param response_uri_len Size of the 'response_uri' buffer. - * @param post_auto_wnd Set this to 0 to let the callback code handle window - * updates by calling 'httpd_post_data_recved' (to throttle rx speed) - * default is 1 (httpd handles window updates automatically) - * @return ERR_OK: Accept the POST request, data may be passed in - * another err_t: Deny the POST request, send back 'bad request'. - */ -err_t httpd_post_begin(void *connection, const char *uri, const char *http_request, - u16_t http_request_len, int content_len, char *response_uri, - u16_t response_uri_len, u8_t *post_auto_wnd); - -/** Called for each pbuf of data that has been received for a POST. - * ATTENTION: The application is responsible for freeing the pbufs passed in! - * - * @param connection Unique connection identifier. - * @param p Received data. - * @return ERR_OK: Data accepted. - * another err_t: Data denied, http_post_get_response_uri will be called. - */ -err_t httpd_post_receive_data(void *connection, struct pbuf *p); - -/** Called when all data is received or when the connection is closed. - * The application must return the filename/URI of a file to send in response - * to this POST request. If the response_uri buffer is untouched, a 404 - * response is returned. - * - * @param connection Unique connection identifier. - * @param response_uri Filename of response file, to be filled when denying the request - * @param response_uri_len Size of the 'response_uri' buffer. - */ -void httpd_post_finished(void *connection, char *response_uri, u16_t response_uri_len); - -#ifndef LWIP_HTTPD_POST_MANUAL_WND -#define LWIP_HTTPD_POST_MANUAL_WND 0 -#endif - -#if LWIP_HTTPD_POST_MANUAL_WND -void httpd_post_data_recved(void *connection, u16_t recved_len); -#endif /* LWIP_HTTPD_POST_MANUAL_WND */ - -#endif /* LWIP_HTTPD_SUPPORT_POST */ - -void httpd_init(void); - -#endif /* __HTTPD_H__ */ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/httpd_structs.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/httpd_structs.h deleted file mode 100644 index 1080a5597..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/httpd_structs.h +++ /dev/null @@ -1,115 +0,0 @@ -#ifndef __HTTPD_STRUCTS_H__ -#define __HTTPD_STRUCTS_H__ - -#include "httpd.h" - -/** This string is passed in the HTTP header as "Server: " */ -#ifndef HTTPD_SERVER_AGENT -#define HTTPD_SERVER_AGENT "lwIP/1.3.1 (http://savannah.nongnu.org/projects/lwip)" -#endif - -/** Set this to 1 if you want to include code that creates HTTP headers - * at runtime. Default is off: HTTP headers are then created statically - * by the makefsdata tool. Static headers mean smaller code size, but - * the (readonly) fsdata will grow a bit as every file includes the HTTP - * header. */ -#ifndef LWIP_HTTPD_DYNAMIC_HEADERS -#define LWIP_HTTPD_DYNAMIC_HEADERS 0 -#endif - - -#if LWIP_HTTPD_DYNAMIC_HEADERS -/** This struct is used for a list of HTTP header strings for various - * filename extensions. */ -typedef struct -{ - const char *extension; - int headerIndex; -} tHTTPHeader; - -/** A list of strings used in HTTP headers */ -static const char * const g_psHTTPHeaderStrings[] = -{ - "Content-type: text/html\r\n\r\n", - "Content-type: text/html\r\nExpires: Fri, 10 Apr 2008 14:00:00 GMT\r\nPragma: no-cache\r\n\r\n", - "Content-type: image/gif\r\n\r\n", - "Content-type: image/png\r\n\r\n", - "Content-type: image/jpeg\r\n\r\n", - "Content-type: image/bmp\r\n\r\n", - "Content-type: image/x-icon\r\n\r\n", - "Content-type: application/octet-stream\r\n\r\n", - "Content-type: application/x-javascript\r\n\r\n", - "Content-type: application/x-javascript\r\n\r\n", - "Content-type: text/css\r\n\r\n", - "Content-type: application/x-shockwave-flash\r\n\r\n", - "Content-type: text/xml\r\n\r\n", - "Content-type: text/plain\r\n\r\n", - "HTTP/1.0 200 OK\r\n", - "HTTP/1.0 404 File not found\r\n", - "HTTP/1.0 400 Bad Request\r\n", - "HTTP/1.0 501 Not Implemented\r\n", - "HTTP/1.1 200 OK\r\n", - "HTTP/1.1 404 File not found\r\n", - "HTTP/1.1 400 Bad Request\r\n", - "HTTP/1.1 501 Not Implemented\r\n", - "Content-Length: ", - "Connection: Close\r\n", - "Server: "HTTPD_SERVER_AGENT"\r\n", - "\r\n

404: The requested file cannot be found.

\r\n" -}; - -/* Indexes into the g_psHTTPHeaderStrings array */ -#define HTTP_HDR_HTML 0 /* text/html */ -#define HTTP_HDR_SSI 1 /* text/html Expires... */ -#define HTTP_HDR_GIF 2 /* image/gif */ -#define HTTP_HDR_PNG 3 /* image/png */ -#define HTTP_HDR_JPG 4 /* image/jpeg */ -#define HTTP_HDR_BMP 5 /* image/bmp */ -#define HTTP_HDR_ICO 6 /* image/x-icon */ -#define HTTP_HDR_APP 7 /* application/octet-stream */ -#define HTTP_HDR_JS 8 /* application/x-javascript */ -#define HTTP_HDR_RA 9 /* application/x-javascript */ -#define HTTP_HDR_CSS 10 /* text/css */ -#define HTTP_HDR_SWF 11 /* application/x-shockwave-flash */ -#define HTTP_HDR_XML 12 /* text/xml */ -#define HTTP_HDR_DEFAULT_TYPE 13 /* text/plain */ -#define HTTP_HDR_OK 14 /* 200 OK */ -#define HTTP_HDR_NOT_FOUND 15 /* 404 File not found */ -#define HTTP_HDR_BAD_REQUEST 16 /* 400 Bad request */ -#define HTTP_HDR_NOT_IMPL 17 /* 501 Not Implemented */ -#define HTTP_HDR_OK_11 18 /* 200 OK */ -#define HTTP_HDR_NOT_FOUND_11 19 /* 404 File not found */ -#define HTTP_HDR_BAD_REQUEST_11 20 /* 400 Bad request */ -#define HTTP_HDR_NOT_IMPL_11 21 /* 501 Not Implemented */ -#define HTTP_HDR_CONTENT_LENGTH 22 /* Content-Length: (HTTP 1.1)*/ -#define HTTP_HDR_CONN_CLOSE 23 /* Connection: Close (HTTP 1.1) */ -#define HTTP_HDR_SERVER 24 /* Server: HTTPD_SERVER_AGENT */ -#define DEFAULT_404_HTML 25 /* default 404 body */ - -/** A list of extension-to-HTTP header strings */ -const static tHTTPHeader g_psHTTPHeaders[] = -{ - { "html", HTTP_HDR_HTML}, - { "htm", HTTP_HDR_HTML}, - { "shtml",HTTP_HDR_SSI}, - { "shtm", HTTP_HDR_SSI}, - { "ssi", HTTP_HDR_SSI}, - { "gif", HTTP_HDR_GIF}, - { "png", HTTP_HDR_PNG}, - { "jpg", HTTP_HDR_JPG}, - { "bmp", HTTP_HDR_BMP}, - { "ico", HTTP_HDR_ICO}, - { "class",HTTP_HDR_APP}, - { "cls", HTTP_HDR_APP}, - { "js", HTTP_HDR_JS}, - { "ram", HTTP_HDR_RA}, - { "css", HTTP_HDR_CSS}, - { "swf", HTTP_HDR_SWF}, - { "xml", HTTP_HDR_XML} -}; - -#define NUM_HTTP_HEADERS (sizeof(g_psHTTPHeaders) / sizeof(tHTTPHeader)) - -#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */ - -#endif /* __HTTPD_STRUCTS_H__ */ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.sln b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.sln deleted file mode 100644 index df961bb8d..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual C++ Express 2010 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MakeFSData_proj", "MakeFSData_proj.vcxproj", "{31A9131E-BD1E-4F2D-8E1F-BC8E679E0368}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {31A9131E-BD1E-4F2D-8E1F-BC8E679E0368}.Debug|Win32.ActiveCfg = Debug|Win32 - {31A9131E-BD1E-4F2D-8E1F-BC8E679E0368}.Debug|Win32.Build.0 = Debug|Win32 - {31A9131E-BD1E-4F2D-8E1F-BC8E679E0368}.Release|Win32.ActiveCfg = Release|Win32 - {31A9131E-BD1E-4F2D-8E1F-BC8E679E0368}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.suo b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.suo deleted file mode 100644 index 3b44ee3bf..000000000 Binary files a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.suo and /dev/null differ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj deleted file mode 100644 index 06914a791..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj +++ /dev/null @@ -1,91 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {31A9131E-BD1E-4F2D-8E1F-BC8E679E0368} - Win32Proj - MakeFSData_proj - - - - Application - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - true - - - false - - - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - $(LWIP_DIR)\src\include;$(LWIP_DIR)\..\contrib-1.4.0\ports\win32\include;$(LWIP_DIR)\src\include\ipv4 - - - Console - true - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - - - Console - true - true - true - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj.filters b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj.filters deleted file mode 100644 index c88c739e6..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj.filters +++ /dev/null @@ -1,36 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - - - - Header Files - - - Header Files - - - - - Source Files - - - Source Files - - - \ No newline at end of file diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj.user b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj.user deleted file mode 100644 index 695b5c78b..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj.user +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/404.html b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/404.html deleted file mode 100644 index 40b343a91..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/404.html +++ /dev/null @@ -1,21 +0,0 @@ - -lwIP - A Lightweight TCP/IP Stack - - - - -
- SICS logo - -

lwIP - A Lightweight TCP/IP Stack

-

404 - Page not found

-

- Sorry, the page you are requesting was not found on this - server. -

-
-   -
- - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/index.shtml b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/index.shtml deleted file mode 100644 index 90358d158..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/index.shtml +++ /dev/null @@ -1,20 +0,0 @@ - - - - FreeRTOS.org lwIP WEB server demo - - - -Task Stats | Run Time Stats | FreeRTOS Homepage | 37K jpg -

-


-

-

Task statistics

-Page will refresh every 2 seconds.

-

Task          State  Priority  Stack	#
************************************************
- -
-
- - - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/logo.jpg b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/logo.jpg deleted file mode 100644 index d3670e4f0..000000000 Binary files a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/logo.jpg and /dev/null differ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/runtime.shtml b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/runtime.shtml deleted file mode 100644 index e66202b9d..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/runtime.shtml +++ /dev/null @@ -1,20 +0,0 @@ - - - - FreeRTOS.org lwIP WEB server demo - - - -Task Stats | Run Time Stats | FreeRTOS Homepage | 37K jpg -

-


-

-

Run-time statistics

-Page will refresh every 2 seconds.

-

Task            Abs Time      % Time
****************************************
- -
-
- - - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fsdata.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fsdata.c deleted file mode 100644 index f2ddfd935..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fsdata.c +++ /dev/null @@ -1,2068 +0,0 @@ -#include "fs.h" -#include "lwip/def.h" -#include "fsdata.h" - - -#define file_NULL (struct fsdata_file *) NULL - - -static const unsigned int dummy_align__404_html = 0; -static const unsigned char data__404_html[] = { -/* /404.html (10 chars) */ -0x2f,0x34,0x30,0x34,0x2e,0x68,0x74,0x6d,0x6c,0x00,0x00,0x00, - -/* HTTP header */ -/* "HTTP/1.0 404 File not found -" (29 bytes) */ -0x48,0x54,0x54,0x50,0x2f,0x31,0x2e,0x30,0x20,0x34,0x30,0x34,0x20,0x46,0x69,0x6c, -0x65,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x0d,0x0a, -/* "Server: lwIP/1.3.1 (http://savannah.nongnu.org/projects/lwip) -" (63 bytes) */ -0x53,0x65,0x72,0x76,0x65,0x72,0x3a,0x20,0x6c,0x77,0x49,0x50,0x2f,0x31,0x2e,0x33, -0x2e,0x31,0x20,0x28,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x73,0x61,0x76,0x61,0x6e, -0x6e,0x61,0x68,0x2e,0x6e,0x6f,0x6e,0x67,0x6e,0x75,0x2e,0x6f,0x72,0x67,0x2f,0x70, -0x72,0x6f,0x6a,0x65,0x63,0x74,0x73,0x2f,0x6c,0x77,0x69,0x70,0x29,0x0d,0x0a, -/* "Content-type: text/html - -" (27 bytes) */ -0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x74,0x79,0x70,0x65,0x3a,0x20,0x74,0x65, -0x78,0x74,0x2f,0x68,0x74,0x6d,0x6c,0x0d,0x0a,0x0d,0x0a, -/* raw file data (544 bytes) */ -0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x0a,0x3c,0x68,0x65,0x61,0x64,0x3e,0x3c,0x74,0x69, -0x74,0x6c,0x65,0x3e,0x6c,0x77,0x49,0x50,0x20,0x2d,0x20,0x41,0x20,0x4c,0x69,0x67, -0x68,0x74,0x77,0x65,0x69,0x67,0x68,0x74,0x20,0x54,0x43,0x50,0x2f,0x49,0x50,0x20, -0x53,0x74,0x61,0x63,0x6b,0x3c,0x2f,0x74,0x69,0x74,0x6c,0x65,0x3e,0x3c,0x2f,0x68, -0x65,0x61,0x64,0x3e,0x0a,0x3c,0x62,0x6f,0x64,0x79,0x20,0x62,0x67,0x63,0x6f,0x6c, -0x6f,0x72,0x3d,0x22,0x77,0x68,0x69,0x74,0x65,0x22,0x20,0x74,0x65,0x78,0x74,0x3d, -0x22,0x62,0x6c,0x61,0x63,0x6b,0x22,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x3c,0x74, -0x61,0x62,0x6c,0x65,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22,0x31,0x30,0x30,0x25, -0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x20,0x76,0x61,0x6c, -0x69,0x67,0x6e,0x3d,0x22,0x74,0x6f,0x70,0x22,0x3e,0x3c,0x74,0x64,0x20,0x77,0x69, -0x64,0x74,0x68,0x3d,0x22,0x38,0x30,0x22,0x3e,0x09,0x20,0x20,0x0a,0x09,0x20,0x20, -0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f, -0x77,0x77,0x77,0x2e,0x73,0x69,0x63,0x73,0x2e,0x73,0x65,0x2f,0x22,0x3e,0x3c,0x69, -0x6d,0x67,0x20,0x73,0x72,0x63,0x3d,0x22,0x2f,0x69,0x6d,0x67,0x2f,0x73,0x69,0x63, -0x73,0x2e,0x67,0x69,0x66,0x22,0x0a,0x09,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72, -0x3d,0x22,0x30,0x22,0x20,0x61,0x6c,0x74,0x3d,0x22,0x53,0x49,0x43,0x53,0x20,0x6c, -0x6f,0x67,0x6f,0x22,0x20,0x74,0x69,0x74,0x6c,0x65,0x3d,0x22,0x53,0x49,0x43,0x53, -0x20,0x6c,0x6f,0x67,0x6f,0x22,0x3e,0x3c,0x2f,0x61,0x3e,0x0a,0x09,0x3c,0x2f,0x74, -0x64,0x3e,0x3c,0x74,0x64,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22,0x35,0x30,0x30, -0x22,0x3e,0x09,0x20,0x20,0x0a,0x09,0x20,0x20,0x3c,0x68,0x31,0x3e,0x6c,0x77,0x49, -0x50,0x20,0x2d,0x20,0x41,0x20,0x4c,0x69,0x67,0x68,0x74,0x77,0x65,0x69,0x67,0x68, -0x74,0x20,0x54,0x43,0x50,0x2f,0x49,0x50,0x20,0x53,0x74,0x61,0x63,0x6b,0x3c,0x2f, -0x68,0x31,0x3e,0x0a,0x09,0x20,0x20,0x3c,0x68,0x32,0x3e,0x34,0x30,0x34,0x20,0x2d, -0x20,0x50,0x61,0x67,0x65,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x3c, -0x2f,0x68,0x32,0x3e,0x0a,0x09,0x20,0x20,0x3c,0x70,0x3e,0x0a,0x09,0x20,0x20,0x20, -0x20,0x53,0x6f,0x72,0x72,0x79,0x2c,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x67,0x65, -0x20,0x79,0x6f,0x75,0x20,0x61,0x72,0x65,0x20,0x72,0x65,0x71,0x75,0x65,0x73,0x74, -0x69,0x6e,0x67,0x20,0x77,0x61,0x73,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e, -0x64,0x20,0x6f,0x6e,0x20,0x74,0x68,0x69,0x73,0x0a,0x09,0x20,0x20,0x20,0x20,0x73, -0x65,0x72,0x76,0x65,0x72,0x2e,0x20,0x0a,0x09,0x20,0x20,0x3c,0x2f,0x70,0x3e,0x0a, -0x09,0x3c,0x2f,0x74,0x64,0x3e,0x3c,0x74,0x64,0x3e,0x0a,0x09,0x20,0x20,0x26,0x6e, -0x62,0x73,0x70,0x3b,0x0a,0x09,0x3c,0x2f,0x74,0x64,0x3e,0x3c,0x2f,0x74,0x72,0x3e, -0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x0a, -0x3c,0x2f,0x62,0x6f,0x64,0x79,0x3e,0x0a,0x3c,0x2f,0x68,0x74,0x6d,0x6c,0x3e,0x0a, -}; - -static const unsigned int dummy_align__index_shtml = 1; -static const unsigned char data__index_shtml[] = { -/* /index.shtml (13 chars) */ -0x2f,0x69,0x6e,0x64,0x65,0x78,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x00,0x00,0x00,0x00, - -/* HTTP header */ -/* "HTTP/1.0 200 OK -" (17 bytes) */ -0x48,0x54,0x54,0x50,0x2f,0x31,0x2e,0x30,0x20,0x32,0x30,0x30,0x20,0x4f,0x4b,0x0d, -0x0a, -/* "Server: lwIP/1.3.1 (http://savannah.nongnu.org/projects/lwip) -" (63 bytes) */ -0x53,0x65,0x72,0x76,0x65,0x72,0x3a,0x20,0x6c,0x77,0x49,0x50,0x2f,0x31,0x2e,0x33, -0x2e,0x31,0x20,0x28,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x73,0x61,0x76,0x61,0x6e, -0x6e,0x61,0x68,0x2e,0x6e,0x6f,0x6e,0x67,0x6e,0x75,0x2e,0x6f,0x72,0x67,0x2f,0x70, -0x72,0x6f,0x6a,0x65,0x63,0x74,0x73,0x2f,0x6c,0x77,0x69,0x70,0x29,0x0d,0x0a, -/* "Content-type: text/html -Expires: Fri, 10 Apr 2008 14:00:00 GMT -Pragma: no-cache - -" (85 bytes) */ -0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x74,0x79,0x70,0x65,0x3a,0x20,0x74,0x65, -0x78,0x74,0x2f,0x68,0x74,0x6d,0x6c,0x0d,0x0a,0x45,0x78,0x70,0x69,0x72,0x65,0x73, -0x3a,0x20,0x46,0x72,0x69,0x2c,0x20,0x31,0x30,0x20,0x41,0x70,0x72,0x20,0x32,0x30, -0x30,0x38,0x20,0x31,0x34,0x3a,0x30,0x30,0x3a,0x30,0x30,0x20,0x47,0x4d,0x54,0x0d, -0x0a,0x50,0x72,0x61,0x67,0x6d,0x61,0x3a,0x20,0x6e,0x6f,0x2d,0x63,0x61,0x63,0x68, -0x65,0x0d,0x0a,0x0d,0x0a, -/* raw file data (762 bytes) */ -0x3c,0x21,0x44,0x4f,0x43,0x54,0x59,0x50,0x45,0x20,0x48,0x54,0x4d,0x4c,0x20,0x50, -0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f,0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44, -0x54,0x44,0x20,0x48,0x54,0x4d,0x4c,0x20,0x34,0x2e,0x30,0x31,0x20,0x54,0x72,0x61, -0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x2f,0x2f,0x45,0x4e,0x22,0x20,0x22, -0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, -0x67,0x2f,0x54,0x52,0x2f,0x68,0x74,0x6d,0x6c,0x34,0x2f,0x6c,0x6f,0x6f,0x73,0x65, -0x2e,0x64,0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x0d,0x0a, -0x20,0x20,0x3c,0x68,0x65,0x61,0x64,0x3e,0x0d,0x0a,0x20,0x20,0x20,0x20,0x3c,0x74, -0x69,0x74,0x6c,0x65,0x3e,0x46,0x72,0x65,0x65,0x52,0x54,0x4f,0x53,0x2e,0x6f,0x72, -0x67,0x20,0x6c,0x77,0x49,0x50,0x20,0x57,0x45,0x42,0x20,0x73,0x65,0x72,0x76,0x65, -0x72,0x20,0x64,0x65,0x6d,0x6f,0x3c,0x2f,0x74,0x69,0x74,0x6c,0x65,0x3e,0x0d,0x0a, -0x20,0x20,0x3c,0x2f,0x68,0x65,0x61,0x64,0x3e,0x0d,0x0a,0x20,0x20,0x3c,0x42,0x4f, -0x44,0x59,0x20,0x6f,0x6e,0x4c,0x6f,0x61,0x64,0x3d,0x22,0x77,0x69,0x6e,0x64,0x6f, -0x77,0x2e,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x26,0x71,0x75, -0x6f,0x74,0x3b,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x68,0x72,0x65,0x66, -0x3d,0x27,0x69,0x6e,0x64,0x65,0x78,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x27,0x26,0x71, -0x75,0x6f,0x74,0x3b,0x2c,0x32,0x30,0x30,0x30,0x29,0x22,0x3e,0x0d,0x0a,0x3c,0x66, -0x6f,0x6e,0x74,0x20,0x66,0x61,0x63,0x65,0x3d,0x22,0x61,0x72,0x69,0x61,0x6c,0x22, -0x3e,0x0d,0x0a,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x69,0x6e,0x64,0x65, -0x78,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x54,0x61,0x73,0x6b,0x20,0x53,0x74, -0x61,0x74,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62,0x3e,0x7c,0x3c,0x2f,0x62,0x3e, -0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x72,0x75,0x6e,0x74,0x69,0x6d, -0x65,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x52,0x75,0x6e,0x20,0x54,0x69,0x6d, -0x65,0x20,0x53,0x74,0x61,0x74,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62,0x3e,0x7c, -0x3c,0x2f,0x62,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x68,0x74, -0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x66,0x72,0x65,0x65,0x72,0x74,0x6f, -0x73,0x2e,0x6f,0x72,0x67,0x2f,0x22,0x3e,0x46,0x72,0x65,0x65,0x52,0x54,0x4f,0x53, -0x20,0x48,0x6f,0x6d,0x65,0x70,0x61,0x67,0x65,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62, -0x3e,0x7c,0x3c,0x2f,0x62,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22, -0x6c,0x6f,0x67,0x6f,0x2e,0x6a,0x70,0x67,0x22,0x3e,0x33,0x37,0x4b,0x20,0x6a,0x70, -0x67,0x3c,0x2f,0x61,0x3e,0x0d,0x0a,0x3c,0x62,0x72,0x3e,0x3c,0x70,0x3e,0x0d,0x0a, -0x3c,0x68,0x72,0x3e,0x0d,0x0a,0x3c,0x62,0x72,0x3e,0x3c,0x70,0x3e,0x0d,0x0a,0x3c, -0x68,0x32,0x3e,0x54,0x61,0x73,0x6b,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69, -0x63,0x73,0x3c,0x2f,0x68,0x32,0x3e,0x0d,0x0a,0x50,0x61,0x67,0x65,0x20,0x77,0x69, -0x6c,0x6c,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x65,0x76,0x65,0x72,0x79, -0x20,0x32,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x73,0x2e,0x3c,0x70,0x3e,0x0d,0x0a, -0x3c,0x66,0x6f,0x6e,0x74,0x20,0x66,0x61,0x63,0x65,0x3d,0x22,0x63,0x6f,0x75,0x72, -0x69,0x65,0x72,0x22,0x3e,0x3c,0x70,0x72,0x65,0x3e,0x54,0x61,0x73,0x6b,0x20,0x20, -0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x53,0x74,0x61,0x74,0x65,0x20,0x20,0x50, -0x72,0x69,0x6f,0x72,0x69,0x74,0x79,0x20,0x20,0x53,0x74,0x61,0x63,0x6b,0x09,0x23, -0x3c,0x62,0x72,0x3e,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a, -0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a, -0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a, -0x2a,0x2a,0x2a,0x2a,0x3c,0x62,0x72,0x3e,0x0d,0x0a,0x3c,0x21,0x2d,0x2d,0x23,0x72, -0x74,0x6f,0x73,0x5f,0x73,0x74,0x61,0x74,0x73,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x2f, -0x70,0x72,0x65,0x3e,0x3c,0x2f,0x66,0x6f,0x6e,0x74,0x3e,0x0d,0x0a,0x3c,0x2f,0x66, -0x6f,0x6e,0x74,0x3e,0x0d,0x0a,0x3c,0x2f,0x62,0x6f,0x64,0x79,0x3e,0x0d,0x0a,0x3c, -0x2f,0x68,0x74,0x6d,0x6c,0x3e,0x0d,0x0a,0x0d,0x0a,}; - -static const unsigned int dummy_align__logo_jpg = 2; -static const unsigned char data__logo_jpg[] = { -/* /logo.jpg (10 chars) */ -0x2f,0x6c,0x6f,0x67,0x6f,0x2e,0x6a,0x70,0x67,0x00,0x00,0x00, - -/* HTTP header */ -/* "HTTP/1.0 200 OK -" (17 bytes) */ -0x48,0x54,0x54,0x50,0x2f,0x31,0x2e,0x30,0x20,0x32,0x30,0x30,0x20,0x4f,0x4b,0x0d, -0x0a, -/* "Server: lwIP/1.3.1 (http://savannah.nongnu.org/projects/lwip) -" (63 bytes) */ -0x53,0x65,0x72,0x76,0x65,0x72,0x3a,0x20,0x6c,0x77,0x49,0x50,0x2f,0x31,0x2e,0x33, -0x2e,0x31,0x20,0x28,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x73,0x61,0x76,0x61,0x6e, -0x6e,0x61,0x68,0x2e,0x6e,0x6f,0x6e,0x67,0x6e,0x75,0x2e,0x6f,0x72,0x67,0x2f,0x70, -0x72,0x6f,0x6a,0x65,0x63,0x74,0x73,0x2f,0x6c,0x77,0x69,0x70,0x29,0x0d,0x0a, -/* "Content-type: image/jpeg - -" (28 bytes) */ -0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x74,0x79,0x70,0x65,0x3a,0x20,0x69,0x6d, -0x61,0x67,0x65,0x2f,0x6a,0x70,0x65,0x67,0x0d,0x0a,0x0d,0x0a, -/* raw file data (28602 bytes) */ -0xff,0xd8,0xff,0xe0,0x00,0x10,0x4a,0x46,0x49,0x46,0x00,0x01,0x01,0x00,0x00,0x01, -0x00,0x01,0x00,0x00,0xff,0xdb,0x00,0x43,0x00,0x03,0x02,0x02,0x03,0x02,0x02,0x03, -0x03,0x03,0x03,0x04,0x03,0x03,0x04,0x05,0x08,0x05,0x05,0x04,0x04,0x05,0x0a,0x07, -0x07,0x06,0x08,0x0c,0x0a,0x0c,0x0c,0x0b,0x0a,0x0b,0x0b,0x0d,0x0e,0x12,0x10,0x0d, -0x0e,0x11,0x0e,0x0b,0x0b,0x10,0x16,0x10,0x11,0x13,0x14,0x15,0x15,0x15,0x0c,0x0f, -0x17,0x18,0x16,0x14,0x18,0x12,0x14,0x15,0x14,0xff,0xdb,0x00,0x43,0x01,0x03,0x04, -0x04,0x05,0x04,0x05,0x09,0x05,0x05,0x09,0x14,0x0d,0x0b,0x0d,0x14,0x14,0x14,0x14, -0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14, -0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14, -0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0xff,0xc0, -0x00,0x11,0x08,0x00,0xea,0x02,0x71,0x03,0x01,0x22,0x00,0x02,0x11,0x01,0x03,0x11, -0x01,0xff,0xc4,0x00,0x1f,0x00,0x00,0x01,0x05,0x01,0x01,0x01,0x01,0x01,0x01,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09, -0x0a,0x0b,0xff,0xc4,0x00,0xb5,0x10,0x00,0x02,0x01,0x03,0x03,0x02,0x04,0x03,0x05, -0x05,0x04,0x04,0x00,0x00,0x01,0x7d,0x01,0x02,0x03,0x00,0x04,0x11,0x05,0x12,0x21, -0x31,0x41,0x06,0x13,0x51,0x61,0x07,0x22,0x71,0x14,0x32,0x81,0x91,0xa1,0x08,0x23, -0x42,0xb1,0xc1,0x15,0x52,0xd1,0xf0,0x24,0x33,0x62,0x72,0x82,0x09,0x0a,0x16,0x17, -0x18,0x19,0x1a,0x25,0x26,0x27,0x28,0x29,0x2a,0x34,0x35,0x36,0x37,0x38,0x39,0x3a, -0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a, -0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a, -0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99, -0x9a,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7, -0xb8,0xb9,0xba,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xd2,0xd3,0xd4,0xd5, -0xd6,0xd7,0xd8,0xd9,0xda,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xf1, -0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xff,0xc4,0x00,0x1f,0x01,0x00,0x03, -0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01, -0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0xff,0xc4,0x00,0xb5,0x11,0x00, -0x02,0x01,0x02,0x04,0x04,0x03,0x04,0x07,0x05,0x04,0x04,0x00,0x01,0x02,0x77,0x00, -0x01,0x02,0x03,0x11,0x04,0x05,0x21,0x31,0x06,0x12,0x41,0x51,0x07,0x61,0x71,0x13, -0x22,0x32,0x81,0x08,0x14,0x42,0x91,0xa1,0xb1,0xc1,0x09,0x23,0x33,0x52,0xf0,0x15, -0x62,0x72,0xd1,0x0a,0x16,0x24,0x34,0xe1,0x25,0xf1,0x17,0x18,0x19,0x1a,0x26,0x27, -0x28,0x29,0x2a,0x35,0x36,0x37,0x38,0x39,0x3a,0x43,0x44,0x45,0x46,0x47,0x48,0x49, -0x4a,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x63,0x64,0x65,0x66,0x67,0x68,0x69, -0x6a,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x82,0x83,0x84,0x85,0x86,0x87,0x88, -0x89,0x8a,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0xa2,0xa3,0xa4,0xa5,0xa6, -0xa7,0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xc2,0xc3,0xc4, -0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xe2, -0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9, -0xfa,0xff,0xda,0x00,0x0c,0x03,0x01,0x00,0x02,0x11,0x03,0x11,0x00,0x3f,0x00,0xfd, -0x53,0xa2,0x8a,0x28,0x00,0xa2,0x8a,0x28,0x00,0xa2,0x8a,0x28,0x00,0xa4,0x34,0x8e, -0x70,0x09,0xaf,0x0b,0xf1,0xbf,0xc6,0x4b,0x8f,0x13,0x78,0xc2,0xdb,0xc1,0x7e,0x0f, -0xb8,0x2b,0x24,0x93,0x08,0xae,0xf5,0x48,0x88,0x3b,0x47,0xf1,0x2c,0x7f,0x4e,0x72, -0xdf,0x97,0xad,0x72,0x62,0x71,0x54,0xf0,0xb1,0xe6,0x9e,0xef,0x44,0xba,0xb6,0x73, -0x57,0xc4,0x43,0x0e,0x93,0x9e,0xef,0x44,0xba,0xb6,0x77,0xbe,0x3b,0xf8,0xb9,0xa1, -0xf8,0x16,0x39,0x23,0x9d,0xe4,0xd4,0x35,0x05,0x1c,0x58,0x59,0x2e,0xf9,0x3d,0xb7, -0x76,0x51,0xf5,0xfc,0x8d,0x78,0x07,0x8a,0xff,0x00,0x69,0x3f,0x1b,0x6a,0xb3,0x3a, -0x69,0x3a,0x7f,0xf6,0x2d,0xb7,0xf0,0x81,0x09,0x96,0x5f,0xc5,0x98,0x63,0xf2,0x15, -0xf4,0xde,0x83,0xe0,0xdd,0x27,0xc3,0xf6,0x62,0x0b,0x6b,0x38,0xc9,0x3f,0x33,0xcb, -0x20,0xde,0xf2,0x37,0x76,0x66,0x3c,0x92,0x6b,0x40,0xe9,0x16,0x47,0xad,0x9c,0x1f, -0xf7,0xec,0x57,0x9d,0x88,0xc2,0xe3,0x31,0x2b,0xf8,0xbc,0x8b,0xb2,0x5f,0xad,0xce, -0x3c,0x46,0x1b,0x13,0x88,0x56,0x8d,0x5e,0x45,0xe4,0xbf,0x53,0xe0,0x8d,0x4f,0xc6, -0xfe,0x33,0xd5,0x18,0x9b,0xcd,0x5f,0x56,0x90,0x93,0x9c,0x19,0xa4,0x0b,0xf9,0x0e, -0x2b,0x35,0x75,0xff,0x00,0x10,0xc7,0x9c,0x6a,0x3a,0x82,0xfa,0xfe,0xfa,0x41,0xfd, -0x6b,0xf4,0x19,0xb4,0x2d,0x39,0xba,0xd8,0x5b,0x7f,0xdf,0xa1,0xfe,0x15,0x19,0xf0, -0xce,0x94,0xff,0x00,0x7b,0x4d,0xb5,0x3f,0xf6,0xc5,0x7f,0xc2,0xbc,0x79,0x64,0x15, -0xa4,0xef,0xed,0xaf,0xf2,0x7f,0xe6,0x78,0x72,0xc8,0x6a,0x49,0xdd,0xd7,0x7f,0xd7, -0xcc,0xf8,0x0d,0x3c,0x5f,0xe2,0x68,0x94,0x05,0xd6,0x35,0x45,0x03,0xa0,0x17,0x32, -0x0f,0xeb,0x53,0x27,0x8f,0xbc,0x59,0x11,0x25,0x75,0xfd,0x59,0x33,0xe9,0x77,0x28, -0xfe,0xb5,0xf7,0x8b,0x78,0x3b,0x44,0x7e,0xba,0x4d,0x99,0xff,0x00,0xb6,0x2b,0x51, -0x37,0x81,0x7c,0x3c,0xf9,0xce,0x8d,0x66,0x73,0xff,0x00,0x4c,0x56,0xa5,0x64,0x58, -0x85,0xb5,0x6f,0xcc,0x9f,0xec,0x2a,0xeb,0x6a,0xef,0xf1,0xff,0x00,0x33,0xe1,0x6f, -0xf8,0x59,0x3e,0x2f,0x5f,0xf9,0x98,0xb5,0x7f,0xfc,0x0c,0x93,0xfc,0x69,0xeb,0xf1, -0x4f,0xc6,0x51,0x9c,0xaf,0x89,0x35,0x5c,0xfb,0xdd,0x3f,0xf8,0xd7,0xdc,0x0d,0xf0, -0xf3,0xc3,0x6f,0xd7,0x44,0xb2,0x3f,0xf6,0xc8,0x54,0x4f,0xf0,0xcb,0xc2,0xaf,0xf7, -0xb4,0x2b,0x23,0xff,0x00,0x6c,0x85,0x2f,0xec,0x4c,0x5f,0xfc,0xfe,0xfc,0xc5,0xfd, -0x89,0x8a,0x5b,0x57,0x7f,0x89,0xf1,0x54,0x7f,0x17,0xfc,0x6b,0x1f,0xfc,0xcc,0x9a, -0x99,0xfa,0xdc,0x35,0x58,0x8b,0xe3,0x87,0x8e,0xe1,0x6c,0xaf,0x89,0x2f,0x73,0xd3, -0xe6,0x21,0x87,0xe4,0x45,0x7d,0x8e,0xff,0x00,0x09,0x7c,0x20,0xfd,0x74,0x0b,0x3f, -0xc2,0x3c,0x54,0x2f,0xf0,0x6b,0xc1,0xaf,0xd7,0x41,0xb5,0x1f,0x45,0xa4,0xb2,0x7c, -0x72,0xda,0xb7,0xe2,0xc7,0xfd,0x8f,0x8d,0x5b,0x62,0x1f,0xe2,0x7c,0x8a,0x9f,0x1f, -0xbc,0x7e,0x83,0x1f,0xf0,0x91,0x5c,0x7d,0x4c,0x71,0x9f,0xfd,0x96,0xa6,0x1f,0xb4, -0x37,0x8f,0xc7,0xfc,0xcc,0x12,0xfe,0x30,0x45,0xff,0x00,0xc4,0x57,0xd5,0xaf,0xf0, -0x43,0xc1,0x4e,0x0f,0xfc,0x48,0xa0,0x1f,0x4a,0x89,0xbe,0x03,0xf8,0x21,0xf3,0xff, -0x00,0x12,0x48,0x86,0x7d,0x09,0xa7,0xfd,0x95,0x98,0xad,0xab,0x7e,0x2c,0x3f,0xb2, -0xb3,0x15,0xb6,0x21,0xfd,0xec,0xf9,0x69,0x7f,0x68,0xaf,0x1f,0x8f,0xf9,0x8f,0x39, -0xfa,0xdb,0xc5,0xff,0x00,0xc4,0xd4,0x89,0xfb,0x48,0x78,0xf9,0x08,0x3f,0xdb,0x59, -0xc7,0xad,0xb4,0x47,0xff,0x00,0x65,0xaf,0xa6,0x9f,0xf6,0x7d,0xf0,0x33,0x8e,0x74, -0x75,0x1e,0xe1,0x8d,0x42,0xff,0x00,0xb3,0x9f,0x81,0x9c,0x7f,0xc8,0x2d,0x97,0xe9, -0x21,0xa3,0xfb,0x33,0x34,0x5b,0x56,0xff,0x00,0xc9,0x98,0xbf,0xb3,0x33,0x35,0xb5, -0x7f,0xc5,0x9f,0x39,0xc7,0xfb,0x4d,0xf8,0xf1,0x17,0x07,0x52,0x85,0xcf,0xab,0x5a, -0xa6,0x7f,0x95,0x58,0x4f,0xda,0x9b,0xc7,0x49,0x8f,0xf4,0x9b,0x36,0xc7,0xad,0xaa, -0xf3,0xfa,0xd7,0xbe,0xbf,0xec,0xd5,0xe0,0x86,0xc9,0x16,0x32,0xaf,0xd2,0x43,0x50, -0x3f,0xec,0xc5,0xe0,0xa6,0xe9,0x6f,0x3a,0xff,0x00,0xdb,0x4a,0x5f,0xd9,0xf9,0xb2, -0xda,0xaf,0xfe,0x4c,0xc3,0xfb,0x3f,0x36,0x5b,0x57,0xfc,0x59,0xe2,0x0b,0xfb,0x57, -0x78,0xdd,0x7a,0x9d,0x39,0xbe,0xb6,0xc7,0xfa,0x35,0x3d,0x7f,0x6b,0x0f,0x1a,0x82, -0x32,0x9a,0x61,0xff,0x00,0xb7,0x66,0xff,0x00,0xe2,0xeb,0xd9,0xdb,0xf6,0x5a,0xf0, -0x63,0x0e,0x12,0xe5,0x7f,0xed,0xa5,0x42,0xff,0x00,0xb2,0xa7,0x83,0xcf,0x47,0xbb, -0x5f,0xfb,0x69,0x43,0xc1,0xe7,0x0b,0x6a,0x9f,0xf9,0x30,0x7d,0x4b,0x37,0x5b,0x56, -0xfc,0x4f,0x23,0x5f,0xda,0xd7,0xc6,0x43,0xad,0xbe,0x96,0xdf,0xf6,0xc1,0xff,0x00, -0xf8,0xba,0x91,0x3f,0x6b,0x8f,0x16,0x82,0x37,0x59,0x69,0x6d,0xeb,0xfb,0xa7,0xff, -0x00,0xe2,0xeb,0xd4,0x24,0xfd,0x93,0xbc,0x2a,0xd8,0xdb,0x75,0x78,0xbf,0xf0,0x20, -0x6a,0x07,0xfd,0x92,0x3c,0x34,0x73,0x8b,0xfb,0xb5,0xf4,0xe9,0x4b,0xea,0xb9,0xca, -0xfb,0x7f,0x88,0x7d,0x53,0x39,0x5b,0x55,0xfc,0x4f,0x3d,0x8b,0xf6,0xbe,0xf1,0x32, -0xe7,0xcc,0xd2,0xb4,0xc7,0xf4,0xc2,0xc8,0x3f,0xf6,0x6a,0xb0,0x9f,0xb6,0x16,0xbc, -0x31,0xbb,0x43,0xd3,0x5b,0xd7,0x0d,0x20,0xfe,0xb5,0xda,0xc9,0xfb,0x22,0xe8,0x19, -0xf9,0x75,0x3b,0xa0,0x3d,0xd4,0x54,0x0f,0xfb,0x21,0x68,0xe4,0x7c,0xba,0xbd,0xcf, -0xe2,0x82,0x9f,0xb1,0xce,0x97,0xda,0xfc,0x50,0x7b,0x0c,0xe9,0x7d,0xbf,0xc8,0xe6, -0x07,0xed,0x89,0xaa,0xf7,0xf0,0xf5,0x99,0xfa,0x4e,0xdf,0xe1,0x4f,0x5f,0xdb,0x1b, -0x50,0x1f,0x7b,0xc3,0x96,0xa7,0xe9,0x72,0xdf,0xfc,0x4d,0x6f,0x3f,0xec,0x7f,0xa6, -0x1c,0xed,0xd6,0xe7,0x5f,0xac,0x60,0xd4,0x12,0x7e,0xc7,0xb6,0x99,0x1b,0x35,0xd9, -0x31,0xef,0x17,0xff,0x00,0x5e,0x8e,0x4c,0xed,0x75,0xfc,0x85,0xec,0xf3,0xb5,0xf6, -0xbf,0x23,0x35,0x7f,0x6c,0x7b,0xc3,0xf7,0xbc,0x35,0x01,0x1e,0xd7,0x67,0xff,0x00, -0x89,0xa9,0x93,0xf6,0xc8,0x70,0x06,0xef,0x0b,0xa9,0x3d,0xf1,0x7b,0xff,0x00,0xd8, -0x54,0xaf,0xfb,0x1e,0xa0,0x5f,0x97,0x5d,0xe7,0xde,0x2a,0x85,0xbf,0x63,0xe9,0x32, -0x76,0xeb,0xa9,0xed,0x98,0x8d,0x2f,0xf8,0x5b,0x5d,0xff,0x00,0xf2,0x50,0xb6,0x76, -0xba,0xfe,0x44,0xeb,0xfb,0x64,0xc4,0x7e,0xf7,0x85,0xdf,0x1e,0xd7,0xa3,0xff,0x00, -0x8d,0xd4,0xcb,0xfb,0x63,0xda,0x63,0xe6,0xf0,0xcc,0xc0,0xfb,0x5e,0x03,0xff,0x00, -0xb2,0x56,0x63,0xfe,0xc7,0xd7,0x7d,0xb5,0xc8,0x4f,0xd5,0x0d,0x40,0xff,0x00,0xb2, -0x06,0xa6,0x01,0xdb,0xad,0x5b,0x13,0xee,0x84,0x53,0xf6,0x99,0xda,0xe8,0xfe,0xe8, -0x87,0x3e,0x78,0xbf,0xa4,0x6f,0x27,0xed,0x8b,0xa7,0x13,0xcf,0x87,0x2e,0x40,0xff, -0x00,0xaf,0x95,0x3f,0xfb,0x2d,0x48,0x3f,0x6c,0x3d,0x27,0x1f,0x37,0x87,0xaf,0x01, -0xf6,0x9d,0x0f,0xf4,0xae,0x59,0xbf,0x64,0x2d,0x68,0x1e,0x35,0x6b,0x53,0xef,0x83, -0x50,0x37,0xec,0x8d,0xe2,0x11,0xf7,0x75,0x0b,0x46,0xfc,0x4d,0x4f,0xb7,0xce,0x97, -0xd9,0x7f,0x72,0x17,0xb5,0xce,0xd7,0xd9,0xfc,0x11,0xdd,0x45,0xfb,0x5f,0xf8,0x74, -0xb7,0xcf,0xa3,0x6a,0x4a,0x3d,0x54,0xc6,0x7f,0xf6,0x6a,0xb3,0x1f,0xed,0x75,0xe1, -0x36,0x5c,0xbe,0x9b,0xab,0x2b,0x7a,0x08,0xe3,0x3f,0xfb,0x3d,0x79,0xb4,0x9f,0xb2, -0x67,0x89,0x54,0x1c,0x5e,0x5a,0x13,0xfe,0xf1,0xa8,0x1b,0xf6,0x50,0xf1,0x5f,0x69, -0xad,0x1b,0xfe,0x07,0x42,0xc5,0x67,0x0b,0xec,0x3f,0xb9,0x0f,0xeb,0x39,0xd2,0xfb, -0x1f,0x82,0x3d,0x54,0x7e,0xd6,0xfe,0x0e,0xce,0x0d,0x96,0xae,0x07,0xaf,0x93,0x1f, -0xff,0x00,0x17,0x4f,0x1f,0xb5,0xaf,0x83,0x31,0xff,0x00,0x1e,0xba,0xb7,0xfd,0xf8, -0x4f,0xfe,0x2e,0xbc,0x85,0xbf,0x65,0x4f,0x18,0x0f,0xbb,0xf6,0x46,0xff,0x00,0xb6, -0xb5,0x03,0xfe,0xcb,0xbe,0x34,0x4c,0xe2,0x0b,0x76,0x03,0xd2,0x51,0x43,0xc7,0x66, -0xeb,0x7a,0x7f,0xf9,0x28,0x7d,0x73,0x39,0x5f,0xf2,0xeb,0xf0,0x3d,0xa9,0x7f,0x6a, -0xff,0x00,0x05,0x36,0x3f,0x75,0xa9,0xaf,0xd6,0xdd,0x7f,0xf8,0xaa,0x91,0x7f,0x6a, -0xaf,0x04,0x11,0xc9,0xd4,0x53,0xeb,0x6c,0x3f,0xf8,0xaa,0xf0,0xb6,0xfd,0x99,0x7c, -0x6c,0xbd,0x2c,0xe2,0x3f,0x49,0x45,0x42,0xff,0x00,0xb3,0x67,0x8d,0xd4,0x7f,0xc8, -0x3d,0x4f,0xd1,0xc5,0x2f,0xed,0x1c,0xd5,0x7f,0xcb,0xbf,0xfc,0x95,0x8b,0xeb,0xf9, -0xba,0xff,0x00,0x97,0x5f,0x87,0xfc,0x13,0xe8,0x48,0xbf,0x69,0xef,0x01,0xc8,0xe0, -0x1b,0xeb,0xa8,0xc1,0xfe,0x26,0xb5,0x6c,0x0f,0xca,0xad,0x2f,0xed,0x27,0xf0,0xfd, -0x81,0x3f,0xdb,0x2e,0xbe,0xc6,0xd6,0x5f,0xfe,0x26,0xbe,0x6b,0x6f,0xd9,0xd7,0xc7, -0x0a,0x78,0xd2,0xc9,0xc7,0xa3,0x8a,0x81,0xff,0x00,0x67,0xef,0x1c,0xa9,0xff,0x00, -0x90,0x34,0x87,0xe8,0xc0,0xff,0x00,0x5a,0x7f,0xda,0x99,0x9c,0x77,0xa5,0xff,0x00, -0x92,0xb0,0xfe,0xd2,0xcd,0x56,0xf4,0x7f,0x06,0x7d,0x42,0x3f,0x68,0x9f,0x87,0xcd, -0xff,0x00,0x33,0x02,0x8f,0xad,0xb4,0xdf,0xfc,0x45,0x38,0x7e,0xd0,0x9f,0x0f,0xcf, -0x4f,0x11,0x47,0xff,0x00,0x80,0xf2,0x8f,0xfd,0x92,0xbe,0x55,0x6f,0x81,0x3e,0x37, -0x43,0xce,0x89,0x37,0xe1,0x51,0x3f,0xc1,0x4f,0x1a,0x27,0x5d,0x0e,0xe7,0x8f,0x6a, -0x6f,0x38,0xcc,0x16,0xf4,0xbf,0xf2,0x59,0x07,0xf6,0xae,0x64,0xb7,0xa1,0xf8,0x3f, -0xf3,0x3e,0xb2,0x1f,0x1f,0xfc,0x00,0xd8,0xff,0x00,0x8a,0x8e,0x1e,0x7d,0x62,0x93, -0xff,0x00,0x89,0xa9,0xd3,0xe3,0xaf,0x80,0xdc,0x64,0x78,0x92,0xd4,0x7d,0x43,0x8f, -0xe9,0x5f,0x1f,0xbf,0xc1,0xff,0x00,0x18,0xa0,0xe7,0x42,0xba,0xe7,0xfd,0x9a,0x85, -0xbe,0x14,0xf8,0xb9,0x3a,0xe8,0x77,0x7f,0xf7,0xc5,0x2f,0xed,0xac,0x72,0xff,0x00, -0x97,0x4b,0xee,0x62,0xfe,0xd8,0xc7,0xad,0xe8,0x7e,0x0c,0xfb,0x3d,0x3e,0x32,0xf8, -0x21,0xc0,0xc7,0x89,0xb4,0xfe,0x7d,0x65,0xc5,0x48,0x9f,0x17,0x7c,0x14,0xf9,0xc7, -0x89,0xf4,0xce,0x3d,0x6e,0x14,0x57,0xc4,0xef,0xf0,0xd3,0xc5,0x51,0x9f,0x9b,0x44, -0xbd,0x1f,0xf6,0xc8,0xd4,0x0d,0xe0,0x0f,0x12,0x27,0x5d,0x1e,0xf0,0x7f,0xdb,0x23, -0x47,0xf6,0xee,0x29,0x6f,0x49,0x7e,0x23,0xfe,0xdb,0xc6,0x2d,0xe8,0x7e,0x67,0xdc, -0x63,0xe2,0xbf,0x83,0x4f,0x4f,0x13,0xe9,0x7f,0xf8,0x16,0x9f,0xe3,0x52,0x2f,0xc4, -0xef,0x09,0x36,0x71,0xe2,0x5d,0x2f,0x8f,0xfa,0x7b,0x4f,0xf1,0xaf,0x85,0x1b,0xc1, -0x5e,0x20,0x5e,0xba,0x55,0xd0,0xff,0x00,0xb6,0x46,0xa2,0x6f,0x0a,0x6b,0x69,0xd7, -0x4c,0xba,0x1f,0xf6,0xc8,0xd1,0xfd,0xbf,0x89,0xeb,0x49,0x7e,0x22,0xfe,0xdd,0xc5, -0x2d,0xe8,0x7e,0x67,0xde,0xc9,0xf1,0x07,0xc2,0xf2,0x80,0x57,0xc4,0x3a,0x59,0x07, -0xa7,0xfa,0x64,0x7f,0xe3,0x56,0x13,0xc6,0x5a,0x04,0x9f,0x77,0x5a,0xd3,0x9b,0x1e, -0x97,0x49,0xfe,0x35,0xf9,0xfa,0xde,0x1c,0xd5,0xd7,0xae,0x9f,0x72,0x3f,0xed,0x91, -0xa8,0xce,0x89,0xa9,0x27,0x06,0xca,0xe0,0x7d,0x63,0x34,0xd7,0x10,0xd6,0x5b,0xd3, -0x5f,0x8f,0xf9,0x0f,0xfb,0x7e,0xbf,0x5a,0x1f,0x99,0xfa,0x1a,0x9e,0x23,0xd2,0x64, -0x50,0x57,0x54,0xb3,0x60,0x7a,0x62,0xe1,0x3f,0xc6,0x9f,0xfd,0xbb,0xa6,0x9e,0x9a, -0x8d,0xa9,0xff,0x00,0xb6,0xeb,0xfe,0x35,0xf9,0xd8,0x74,0xbb,0xe1,0xd6,0xd6,0x61, -0xff,0x00,0x00,0x34,0xc3,0x61,0x78,0xbd,0x60,0x90,0x7d,0x54,0xd3,0xff,0x00,0x58, -0xe7,0xd6,0x97,0xe3,0xff,0x00,0x00,0x7f,0xeb,0x0d,0x45,0xff,0x00,0x2e,0x7f,0x1f, -0xf8,0x07,0xe8,0xca,0x6a,0xf6,0x2e,0x32,0x2f,0x2d,0xd8,0x7a,0x89,0x54,0xff,0x00, -0x5a,0x78,0xd4,0x6d,0x49,0xe2,0xe6,0x03,0xf4,0x90,0x7f,0x8d,0x7e,0x71,0x7d,0x9e, -0xed,0x7f,0xe5,0x9c,0xa3,0xf0,0x34,0xb9,0xbb,0x43,0xff,0x00,0x2d,0x47,0xe7,0x47, -0xfa,0xc7,0x2f,0xf9,0xf5,0xf8,0xff,0x00,0xc0,0x0f,0xf5,0x8a,0x56,0xd6,0x8b,0xfb, -0xff,0x00,0xe0,0x1f,0xa4,0x0b,0x75,0x13,0x8c,0xac,0xa8,0xc3,0xd4,0x30,0x34,0xf1, -0x20,0x3d,0xc1,0xfc,0x6b,0xf3,0x78,0x5e,0x5e,0xa7,0x49,0x66,0x51,0xec,0xcd,0x53, -0x2e,0xb5,0xaa,0xc6,0xc0,0xad,0xf5,0xda,0x9f,0x51,0x33,0x83,0xfc,0xea,0xd7,0x11, -0xf7,0xa5,0xf8,0xff,0x00,0xc0,0x29,0x71,0x1a,0xeb,0x49,0xfd,0xff,0x00,0xf0,0x0f, -0xd1,0xb0,0xc3,0xd6,0x97,0x75,0x7e,0x74,0x0f,0x13,0x6b,0x4a,0x30,0x35,0x4b,0xe5, -0xfa,0x5c,0x3f,0xf8,0xd2,0x8f,0x16,0x6b,0x8a,0x72,0x35,0x7d,0x40,0x1f,0xfa,0xfa, -0x93,0xfc,0x6a,0xff,0x00,0xd6,0x38,0xff,0x00,0xcf,0xbf,0xc7,0xfe,0x00,0xff,0x00, -0xd6,0x48,0x75,0xa4,0xfe,0xf3,0xf4,0x58,0x36,0x69,0x6b,0xf3,0xb1,0x7c,0x6b,0xe2, -0x04,0x04,0x0d,0x6b,0x51,0x1f,0xf6,0xf5,0x27,0xf8,0xd5,0x88,0xfe,0x23,0x78,0xa2, -0x10,0x36,0x78,0x83,0x54,0x5c,0x70,0x31,0x79,0x27,0xf8,0xd3,0x5c,0x45,0x0e,0xb4, -0xdf,0xde,0x52,0xe2,0x4a,0x5d,0x69,0xb3,0xf4,0x32,0x8a,0xfc,0xf9,0x5f,0x8a,0x5e, -0x2e,0x41,0x81,0xe2,0x4d,0x54,0x0f,0xfa,0xfb,0x73,0xfd,0x6a,0xc2,0x7c,0x62,0xf1, -0xaa,0x63,0x1e,0x26,0xd4,0xb8,0xe9,0xfb,0xf2,0x6a,0xd7,0x11,0x52,0xeb,0x4d,0xfe, -0x05,0x7f,0xac,0x94,0x3a,0xc1,0xfe,0x07,0xdf,0xd4,0x57,0xc0,0xa3,0xe3,0x57,0x8d, -0xd7,0xfe,0x66,0x6d,0x43,0xf1,0x97,0xff,0x00,0xad,0x4f,0x4f,0x8d,0xfe,0x38,0x5c, -0x7f,0xc5,0x4b,0x7c,0x71,0xea,0xe0,0xff,0x00,0x4a,0xaf,0xf5,0x8a,0x87,0xf2,0x3f, -0xc0,0xaf,0xf5,0x8f,0x0d,0xfc,0x8f,0xf0,0x3e,0xf7,0xa2,0xbe,0x0c,0x5f,0x8e,0xde, -0x3a,0x5e,0x9e,0x24,0xbc,0xfc,0x76,0x9f,0xe9,0x56,0x53,0xf6,0x84,0xf1,0xea,0x63, -0xfe,0x2a,0x19,0x8e,0x3d,0x61,0x8c,0xff,0x00,0xec,0xb4,0xd7,0x11,0x61,0xdf,0xd8, -0x97,0xe1,0xfe,0x65,0x2e,0x22,0xc2,0xf5,0x8c,0xbf,0x0f,0xf3,0x3e,0xea,0xa2,0xbe, -0x1c,0x8b,0xf6,0x8e,0xf1,0xf4,0x44,0x9f,0xed,0xc2,0xd9,0xfe,0xf5,0xbc,0x47,0xff, -0x00,0x65,0xab,0xf6,0x3f,0xb5,0x17,0x8e,0xed,0x26,0x57,0x96,0xee,0xd2,0xed,0x07, -0x54,0x9a,0xd5,0x40,0x3f,0xf7,0xce,0x0d,0x68,0xb8,0x83,0x0a,0xf7,0x4f,0xf0,0xff, -0x00,0x32,0xd7,0x10,0xe0,0xde,0xe9,0xaf,0x97,0xfc,0x13,0xed,0x4a,0x2b,0xe6,0x2f, -0x0c,0xfe,0xd8,0x52,0x06,0x58,0xfc,0x41,0xa1,0x86,0x5e,0xf3,0xe9,0xcf,0x83,0xed, -0xf2,0x39,0xff,0x00,0xd9,0xab,0xda,0xbc,0x15,0xf1,0x6f,0xc2,0xfe,0x3f,0x5d,0xba, -0x46,0xa9,0x1c,0x97,0x40,0x65,0xad,0x26,0xfd,0xdc,0xcb,0xff,0x00,0x01,0x3d,0x7e, -0xa3,0x22,0xbd,0x6c,0x3e,0x63,0x86,0xc4,0xe9,0x4e,0x7a,0xf6,0xd9,0x9e,0xa6,0x1f, -0x32,0xc2,0xe2,0x9d,0xa9,0xcd,0x5f,0xb6,0xcc,0xec,0xe8,0xa6,0xa9,0xcd,0x3a,0xbd, -0x13,0xd3,0x0a,0x28,0xa2,0x80,0x0a,0x28,0xa2,0x80,0x0a,0x28,0xa2,0x80,0x0a,0x42, -0x69,0x6a,0xbd,0xe5,0xd4,0x56,0x56,0xd3,0x5c,0x4f,0x22,0xc5,0x04,0x48,0x5d,0xdd, -0xce,0x02,0xa8,0x19,0x24,0x9a,0x4f,0x45,0x71,0x37,0x65,0x76,0x78,0x6f,0xed,0x35, -0xf1,0x65,0xfc,0x33,0xa6,0x2f,0x86,0xb4,0xb9,0xb6,0x6a,0x57,0xd1,0xee,0xb8,0x95, -0x1b,0x0d,0x0c,0x3d,0x30,0x3d,0x0b,0x72,0x3e,0x80,0xfa,0x8a,0xe4,0xbf,0x64,0xbf, -0x08,0xfd,0xa7,0x55,0xbe,0xd7,0x66,0x43,0xb6,0xdd,0x7c,0xa8,0x8f,0x6d,0xc7,0xad, -0x78,0x9f,0x8c,0xbc,0x4d,0x71,0xe3,0x9f,0x17,0xea,0x3a,0xbc,0xdb,0x8b,0xde,0x4e, -0x5a,0x34,0x3d,0x51,0x33,0x84,0x5f,0xc0,0x00,0x2b,0xed,0x7f,0x82,0x9e,0x13,0x1e, -0x11,0xf8,0x7d,0xa6,0xdb,0x15,0xdb,0x3c,0xa9,0xe7,0xcb,0x91,0x83,0xb9,0xb9,0xaf, -0x89,0xc3,0x4e,0x59,0x96,0x64,0xea,0xbf,0x86,0x1b,0x7e,0x9f,0xe6,0x7c,0x56,0x0a, -0xa4,0xb3,0x3c,0xc1,0xd7,0x97,0xc3,0x0d,0xbf,0x4f,0xf3,0x3b,0xb0,0x31,0x4b,0x45, -0x15,0xf6,0xe7,0xdb,0x09,0x4b,0x45,0x14,0x00,0x53,0x43,0x83,0xd2,0x9d,0x5e,0x0f, -0xf1,0xcb,0xf6,0xdc,0xf8,0x3b,0xfb,0x3e,0x5c,0xc9,0x61,0xe2,0xaf,0x16,0xc2,0xfa, -0xda,0x02,0x7f,0xb1,0xf4,0xc4,0x6b,0xbb,0xa0,0x47,0x66,0x54,0xc8,0x8c,0x9e,0xde, -0x61,0x5c,0xd0,0x07,0xba,0x89,0x01,0x6d,0xbc,0xe7,0xdc,0x1a,0x7d,0x7e,0x71,0xeb, -0xdf,0xf0,0x5a,0xdf,0x00,0x5b,0xb3,0x0d,0x1b,0xe1,0xf7,0x89,0x2f,0x80,0xe8,0xd7, -0xd3,0xdb,0xdb,0xe7,0xf0,0x56,0x92,0xbe,0x9f,0xfd,0x94,0x7f,0x6a,0xb8,0xbf,0x69, -0x8f,0x85,0xfa,0xaf,0x8f,0x2e,0x7c,0x36,0xfe,0x0b,0xd0,0xac,0xae,0x64,0xb7,0x59, -0xef,0xef,0x92,0x44,0x91,0x63,0x40,0xd2,0xca,0x5b,0x6a,0x85,0x45,0xce,0x32,0x7d, -0x1b,0xa6,0x28,0x11,0xef,0xb4,0x57,0x17,0x6d,0xf1,0xb3,0xe1,0xe5,0xeb,0x2a,0xdb, -0xf8,0xf3,0xc3,0x33,0xb3,0x1c,0x05,0x8b,0x58,0xb7,0x62,0x4f,0xe0,0xf5,0xd9,0x83, -0x9e,0x94,0x0c,0x5a,0x2b,0x33,0x5f,0xf1,0x1e,0x9f,0xe1,0x7d,0x3d,0xaf,0xb5,0x3b, -0x91,0x6b,0x6a,0xac,0x14,0xb9,0x52,0xdc,0x93,0x80,0x30,0x01,0x35,0x81,0x17,0xc5, -0xff,0x00,0x07,0xcd,0xd3,0x5d,0x80,0x7f,0xbe,0xae,0xbf,0xcc,0x57,0x34,0xf1,0x34, -0x69,0x4b,0x96,0xa4,0xd2,0x7e,0x6d,0x22,0x1c,0xe1,0x17,0x66,0xd2,0x3b,0x1a,0x31, -0x5c,0xcc,0x7f,0x12,0xfc,0x2b,0x26,0x31,0xe2,0x0b,0x01,0x9f,0xef,0x4e,0xa3,0xf9, -0xd4,0xc3,0xe2,0x0f,0x86,0x0f,0x4f,0x10,0xe9,0x9f,0xf8,0x16,0x9f,0xe3,0x49,0x62, -0xb0,0xef,0x6a,0x8b,0xef,0x42,0xf6,0x90,0xfe,0x64,0x74,0x34,0x56,0x12,0xf8,0xe7, -0xc3,0x8e,0x78,0xd7,0xf4,0xc3,0xff,0x00,0x6f,0x91,0xff,0x00,0x8d,0x58,0x8b,0xc5, -0x3a,0x34,0xe3,0xf7,0x7a,0xb5,0x8c,0x9f,0xee,0xdc,0x21,0xfe,0xb5,0xa2,0xad,0x4d, -0xed,0x25,0xf7,0x8f,0x9a,0x2f,0x66,0x6a,0xd1,0x55,0x13,0x55,0xb2,0x97,0x95,0xbb, -0x81,0xbf,0xdd,0x95,0x4f,0xf5,0xa9,0x96,0x78,0xa4,0xfb,0xb2,0x2b,0x7d,0x1a,0xaf, -0x9e,0x2f,0x66,0x55,0xd1,0x2d,0x14,0xdd,0xdd,0xc1,0xa5,0x07,0x35,0x43,0x16,0x8a, -0x28,0xa6,0x01,0x45,0x21,0xe9,0x49,0x9a,0x00,0x75,0x26,0x29,0x32,0x3d,0x69,0x73, -0x48,0x05,0xa4,0xc5,0x18,0xf7,0xa5,0xa6,0x02,0x62,0x96,0x8a,0x28,0x00,0xa2,0x8a, -0x28,0x01,0x29,0x68,0xa2,0x80,0x12,0x8c,0x52,0xd1,0x40,0x05,0x14,0x51,0x40,0x05, -0x26,0x29,0x68,0xa0,0x04,0xc5,0x18,0x1e,0x94,0xb4,0x50,0x02,0x6d,0x1e,0x82,0x93, -0xcb,0x53,0xfc,0x23,0xf2,0xa0,0x92,0x3f,0x87,0x3f,0x8d,0x28,0xcf,0x71,0x8a,0x00, -0x69,0x82,0x33,0xd6,0x35,0x3f,0x80,0xa6,0x9b,0x58,0x5b,0xac,0x48,0x7f,0xe0,0x22, -0xa5,0xa2,0x95,0x97,0x61,0x59,0x10,0x1b,0x1b,0x73,0xd6,0x08,0xff,0x00,0xef,0x91, -0x4d,0x3a,0x6d,0xa3,0x75,0xb6,0x84,0xfd,0x50,0x55,0x9a,0x29,0x72,0xc7,0xb0,0x59, -0x14,0x9b,0x46,0xb0,0x6e,0xb6,0x56,0xe7,0xfe,0xd9,0x8f,0xf0,0xa8,0xdb,0xc3,0xba, -0x5b,0x75,0xd3,0xed,0x8f,0xfd,0xb2,0x5f,0xf0,0xad,0x1a,0x29,0x7b,0x38,0x76,0x17, -0x2a,0xec,0x64,0xb7,0x85,0x74,0x76,0xeb,0xa6,0x5a,0x9f,0xfb,0x64,0xbf,0xe1,0x51, -0xb7,0x83,0x74,0x36,0xeb,0xa4,0xda,0x1f,0xac,0x23,0xfc,0x2b,0x6a,0x8a,0x9f,0x65, -0x4f,0xf9,0x57,0xdc,0x2e,0x48,0x76,0x30,0x1f,0xc0,0x9e,0x1e,0x93,0xef,0x68,0xd6, -0x67,0xfe,0xd8,0x8a,0x89,0xbe,0x1c,0xf8,0x65,0xba,0xe8,0x96,0x7f,0xf7,0xec,0x57, -0x49,0x45,0x4b,0xc3,0xd2,0x7b,0xc1,0x7d,0xc4,0xfb,0x28,0x3f,0xb2,0x8e,0x55,0xbe, -0x17,0xf8,0x55,0xfa,0xe8,0x96,0x9f,0xf7,0xc5,0x42,0xdf,0x09,0x3c,0x22,0xdd,0x74, -0x3b,0x5f,0xfb,0xe6,0xba,0xfa,0x5a,0x8f,0xaa,0xd0,0xfe,0x45,0xf7,0x21,0x7b,0x1a, -0x5f,0xca,0xbe,0xe3,0x89,0x7f,0x83,0x7e,0x0e,0x7e,0xba,0x1d,0xb7,0xe5,0x50,0x3f, -0xc0,0xff,0x00,0x05,0x3f,0xfc,0xc0,0xe0,0x1f,0x4c,0xd7,0x7b,0x45,0x4b,0xc1,0xe1, -0xdf,0xfc,0xbb,0x5f,0x72,0x27,0xea,0xf4,0x7f,0x91,0x7d,0xc7,0x9e,0x3f,0xc0,0x5f, -0x04,0xbf,0xfc,0xc1,0xa3,0x1f,0x46,0x35,0x0b,0xfe,0xcf,0x7e,0x09,0x7f,0xf9,0x85, -0x63,0xe8,0xe6,0xbd,0x23,0x34,0x64,0x7a,0xd4,0x7d,0x47,0x0b,0xff,0x00,0x3e,0xd7, -0xdc,0x88,0xfa,0xa5,0x0f,0xe4,0x5f,0x71,0xe6,0x0f,0xfb,0x39,0x78,0x25,0xff,0x00, -0xe6,0x1c,0xc3,0xe8,0xf5,0x0b,0xfe,0xcd,0x5e,0x09,0x7f,0xf9,0x72,0x90,0x7d,0x24, -0xaf,0x55,0xa2,0xa7,0xfb,0x3f,0x08,0xff,0x00,0xe5,0xda,0xfb,0x89,0xfa,0x96,0x19, -0xef,0x4d,0x7d,0xc7,0x92,0x3f,0xec,0xc5,0xe0,0xb6,0xe9,0x05,0xc2,0xff,0x00,0xdb, -0x4a,0x81,0xff,0x00,0x65,0xcf,0x07,0xb7,0x41,0x72,0xbf,0xf6,0xd2,0xbd,0x8e,0x8a, -0x9f,0xec,0xcc,0x1b,0xff,0x00,0x97,0x4b,0xee,0x27,0xea,0x18,0x57,0xff,0x00,0x2e, -0xd7,0xdc,0x78,0xb3,0xfe,0xca,0xbe,0x12,0x6e,0x92,0x5d,0x2f,0xfc,0x08,0x54,0x2f, -0xfb,0x27,0xf8,0x5d,0xba,0x5c,0xdd,0x0f,0xc4,0x57,0xb7,0xd1,0x51,0xfd,0x95,0x82, -0xff,0x00,0x9f,0x48,0x97,0x97,0x61,0x1f,0xfc,0xbb,0x47,0x84,0xbf,0xec,0x95,0xe1, -0xb6,0xe9,0x7d,0x76,0x3f,0x2a,0xa5,0x77,0xfb,0x24,0x69,0xd0,0x95,0x9f,0x4e,0xd6, -0x6e,0xed,0xae,0xe3,0x21,0xe2,0x90,0x60,0x15,0x61,0xd0,0x82,0x39,0x06,0xbe,0x83, -0xa4,0x3d,0x29,0x7f,0x64,0xe0,0xf7,0x54,0xed,0xf7,0x99,0xbc,0xaf,0x07,0x2f,0xf9, -0x76,0x8f,0x01,0xf0,0x97,0xc6,0x3d,0x4f,0xe1,0xff,0x00,0x89,0xd3,0xc2,0x5e,0x3e, -0xb9,0x59,0xa1,0x77,0x10,0xda,0x6b,0xa4,0x6d,0xcb,0x67,0x01,0x66,0xed,0xcf,0x1f, -0x3f,0xe7,0xeb,0x5e,0xfa,0x8c,0x18,0x70,0x72,0x3d,0x6b,0xe3,0x1f,0xda,0x88,0xa5, -0xee,0xbb,0x24,0x4c,0x01,0x05,0x88,0xc7,0xad,0x77,0x1f,0xb1,0xff,0x00,0xc6,0x49, -0xbc,0x47,0x65,0x79,0xe0,0x6d,0x66,0xe9,0xa6,0xd5,0xf4,0xa8,0x84,0xd6,0x53,0x4a, -0xd9,0x79,0xed,0x72,0x06,0x09,0xee,0x63,0x25,0x47,0xd1,0x97,0xd2,0xb9,0x70,0x18, -0xde,0x6a,0xd3,0xc3,0x4d,0xdf,0x95,0xe8,0xcf,0x23,0x07,0x98,0xfb,0x2c,0x6b,0xcb, -0xea,0xbb,0xaf,0xb2,0xdf,0xe4,0xff,0x00,0x43,0xe9,0x8a,0x29,0x9b,0xbd,0xff,0x00, -0x5a,0x2b,0xe8,0x8f,0xaa,0xe6,0x43,0xe8,0xa2,0x8a,0x45,0x05,0x14,0x51,0x40,0x05, -0x79,0x0f,0xed,0x3d,0xe2,0xdf,0xf8,0x46,0xfe,0x1a,0xdc,0x5a,0x45,0x26,0xcb,0xad, -0x55,0xc5,0xa2,0x60,0xf3,0xb3,0xac,0x9f,0xf8,0xe8,0x23,0xfe,0x05,0x5e,0xb8,0x49, -0xed,0x5f,0x1b,0x7e,0xd4,0xbe,0x30,0x3a,0xff,0x00,0xc4,0x4f,0xec,0xb8,0xdf,0x75, -0xae,0x93,0x10,0x8b,0x00,0x82,0x0c,0xad,0x86,0x73,0xf8,0x0d,0xa3,0xea,0x0d,0x78, -0xf9,0xb6,0x23,0xea,0xf8,0x59,0x35,0xbb,0xd1,0x7c,0xcf,0x13,0x38,0xc4,0xfd,0x5b, -0x07,0x26,0xb7,0x96,0x8b,0xe6,0x72,0x5f,0x06,0x7c,0x26,0x7c,0x5d,0xe3,0xed,0x32, -0xd3,0x6e,0xe8,0x52,0x41,0x2c,0xb9,0xfe,0xe8,0xe6,0xbe,0xf6,0x8d,0x04,0x68,0xa8, -0xa3,0x0a,0xa3,0x00,0x0f,0x4a,0xf9,0xd3,0xf6,0x49,0xf0,0x8f,0xd9,0xf4,0xfb,0xfd, -0x7a,0x68,0xfe,0x79,0x4f,0x93,0x13,0x1f,0x4e,0xf5,0xf4,0x60,0xae,0x3c,0x8b,0x0f, -0xec,0xb0,0xde,0xd1,0xef,0x2d,0x7e,0x5d,0x0c,0x32,0x2c,0x37,0xb0,0xc2,0x29,0x3d, -0xe5,0xa8,0xb4,0x51,0x45,0x7d,0x21,0xf4,0x41,0x48,0x4e,0x29,0x6b,0x95,0xf8,0xad, -0xe3,0x88,0x3e,0x19,0xfc,0x32,0xf1,0x5f,0x8b,0x6e,0x81,0x68,0x34,0x4d,0x2e,0xe7, -0x50,0x65,0x03,0x39,0xf2,0xa3,0x67,0xc7,0xe3,0x8a,0x00,0xfc,0xfb,0xff,0x00,0x82, -0x96,0x7f,0xc1,0x41,0x75,0x2f,0x01,0x6a,0xd7,0xbf,0x09,0xbe,0x1b,0x6a,0x06,0xcf, -0x59,0x8e,0x30,0x35,0xcd,0x72,0x03,0x87,0xb6,0xdc,0x33,0xf6,0x68,0x5b,0xb3,0xed, -0x20,0xb3,0x8f,0xbb,0xb8,0x01,0xce,0xec,0x7c,0x27,0xf0,0x53,0xf6,0x29,0xf8,0xcd, -0xfb,0x4a,0x59,0xcb,0xaf,0x78,0x6b,0xc3,0xb2,0x4d,0xa4,0xc9,0x21,0x27,0x5a,0xd5, -0xee,0x45,0xbc,0x33,0xbe,0x4e,0xe2,0xae,0xe7,0x32,0x1c,0x83,0x92,0xa0,0xe0,0xf5, -0x35,0xe5,0x9a,0x76,0xab,0x1f,0x8f,0xbe,0x29,0xda,0x6a,0x3e,0x2e,0xbf,0x2b,0x0e, -0xb3,0xac,0xa4,0xfa,0xb5,0xfb,0xb6,0xd2,0xa9,0x2c,0xe0,0xcf,0x21,0x3d,0xb0,0x19, -0x8f,0xb5,0x7f,0x40,0x9f,0x1c,0x3e,0x24,0xe8,0x3f,0xb3,0x97,0xec,0xbf,0xae,0xf8, -0x9b,0x43,0x5b,0x5b,0x7d,0x2b,0x46,0xd1,0x44,0x7a,0x34,0x36,0xa5,0x44,0x4c,0xcc, -0xa2,0x3b,0x61,0x1e,0x38,0x20,0xb3,0x27,0x4e,0xdc,0xd3,0x25,0x6a,0x7f,0x3e,0x1e, -0x2f,0xf0,0x4e,0xa1,0xe0,0xef,0x1d,0x6a,0xbe,0x13,0x9d,0xa1,0xbe,0xd5,0x74,0xeb, -0xe7,0xd3,0xa4,0xfb,0x03,0x99,0x63,0x92,0x64,0x7d,0x85,0x50,0xe0,0x6e,0xf9,0x81, -0x03,0x8e,0x71,0x5f,0xbd,0xbe,0x1c,0xf8,0x6b,0xa7,0x7e,0xce,0x7f,0xb0,0xcd,0xef, -0x86,0x2e,0x84,0x51,0xc7,0xa3,0x78,0x42,0xed,0xf5,0x07,0xc6,0x16,0x4b,0x86,0xb7, -0x91,0xe7,0x27,0xeb,0x23,0x30,0xfc,0xab,0xf2,0x6b,0xfe,0x09,0xd5,0xf0,0x92,0x7f, -0x8e,0x9f,0xb5,0xbf,0x87,0xae,0x75,0x24,0x6b,0xed,0x3f,0x45,0x95,0xfc,0x45,0xa9, -0xcb,0x29,0xfb,0xcd,0x11,0x06,0x32,0x4f,0x72,0xd3,0xb4,0x59,0xf5,0x19,0xaf,0xb2, -0xff,0x00,0xe0,0xac,0x1f,0xb6,0x06,0x8d,0xa5,0x78,0x12,0xe7,0xe0,0xdf,0x85,0xb5, -0x38,0x6f,0xf5,0xfd,0x52,0x44,0xfe,0xde,0x6b,0x67,0x0e,0xb6,0x56,0xc8,0x43,0x08, -0x19,0x81,0xe2,0x47,0x60,0x99,0x5e,0x48,0x50,0x72,0x06,0xe1,0x40,0x2d,0x35,0x3f, -0x2c,0xfe,0x17,0x78,0x72,0xe3,0xc6,0x1f,0x12,0xfc,0x27,0xa0,0xd9,0x0c,0xdd,0xea, -0x7a,0xb5,0xa5,0x9c,0x5c,0xe3,0xe6,0x92,0x64,0x51,0xfc,0xeb,0xfa,0x6e,0x8d,0x3c, -0xb4,0x55,0xeb,0x80,0x06,0x6b,0xf1,0x1f,0xfe,0x09,0x3f,0xf0,0x0e,0xe3,0xe2,0x67, -0xed,0x0b,0x17,0x8c,0xaf,0x2d,0x0b,0xf8,0x7b,0xc1,0xa9,0xf6,0xb6,0x92,0x45,0x3b, -0x1e,0xf1,0x81,0x10,0x20,0x3e,0xaa,0x73,0x27,0xb6,0xc1,0xeb,0x5f,0xb7,0x2c,0xc1, -0x14,0x92,0x70,0x00,0xcd,0x0c,0x16,0xc7,0x81,0xfe,0xd2,0x7e,0x22,0x12,0xdd,0x69, -0x9a,0x24,0x6d,0x91,0x18,0x37,0x52,0x8f,0x73,0x95,0x4f,0xd3,0x77,0xe6,0x2b,0xc4, -0xab,0x7b,0xc7,0x5e,0x20,0x3e,0x28,0xf1,0x6e,0xa7,0xa9,0x64,0x98,0xe5,0x98,0x88, -0xb3,0xd9,0x07,0x0b,0xfa,0x01,0x58,0x35,0xf8,0x96,0x67,0x89,0xfa,0xde,0x2e,0x75, -0x56,0xd7,0xb2,0xf4,0x5a,0x1f,0x29,0x88,0xa9,0xed,0x6a,0xb9,0x06,0x68,0xa2,0x8c, -0xd7,0x98,0x73,0x85,0x14,0x51,0x48,0x00,0x71,0x4e,0x49,0x5e,0x33,0x95,0x76,0x52, -0x3b,0x83,0x8a,0x6d,0x14,0xd3,0x6b,0x60,0xb9,0xb5,0xa6,0xf8,0xd7,0x5f,0xd2,0x0a, -0xfd,0x93,0x58,0xbd,0x84,0x2f,0x45,0x13,0x31,0x5f,0xc8,0xf1,0x5e,0x89,0xe1,0x6f, -0xda,0x2b,0x56,0xb0,0x91,0x22,0xd6,0xed,0xd3,0x51,0xb7,0xef,0x2c,0x2a,0x12,0x51, -0xf8,0x7d,0xd3,0xfa,0x7d,0x6b,0xc8,0x68,0xaf,0x43,0x0f,0x98,0xe2,0xb0,0xb2,0xbd, -0x2a,0x8f,0xf4,0xfb,0x8d,0xe1,0x5e,0xa5,0x37,0x78,0xc8,0xfb,0x57,0xc3,0x5e,0x28, -0xd3,0xbc,0x59,0xa6,0xa5,0xf6,0x9b,0x72,0xb7,0x10,0x31,0xc1,0xec,0xc8,0xdd,0xd5, -0x87,0x63,0x5a,0xd5,0xf2,0x47,0xc2,0x6f,0x18,0x4f,0xe1,0x2f,0x17,0xda,0x10,0xe7, -0xec,0x57,0x6e,0xb0,0x5c,0xc7,0x9e,0x08,0x27,0x01,0xbe,0xaa,0x4e,0x7f,0x3f,0x5a, -0xfa,0xd9,0x4e,0x46,0x6b,0xf5,0x3c,0xa7,0x31,0x59,0x8d,0x0e,0x76,0xad,0x25,0xa3, -0x3e,0x8b,0x0d,0x5f,0xdb,0xc2,0xfd,0x50,0x37,0x00,0xd7,0xcd,0x1f,0x15,0x3e,0x26, -0xeb,0x51,0x78,0xeb,0x51,0xb7,0xd2,0xf5,0x5b,0x9b,0x5b,0x4b,0x56,0x10,0x04,0x89, -0xf0,0xa5,0x94,0x7c,0xc7,0x1f,0xef,0x64,0x7e,0x15,0xf4,0x4e,0xbb,0xaa,0xc7,0xa1, -0xe8,0xd7,0xda,0x84,0xdc,0xc5,0x6b,0x0b,0xcc,0xc0,0x75,0x21,0x41,0x38,0xfd,0x2b, -0xe2,0x8b,0xbb,0xa9,0x2f,0x6e,0xa6,0xb8,0x95,0xb7,0xcb,0x33,0xb4,0x8e,0xc7,0xbb, -0x13,0x92,0x6b,0xc6,0xe2,0x5c,0x64,0xe8,0xd3,0xa7,0x4a,0x9c,0xac,0xdb,0xbe,0x9d, -0x8e,0x6c,0x7d,0x57,0x08,0xa8,0xc5,0xd8,0xea,0x13,0xe2,0xc7,0x8b,0xa3,0xe9,0xae, -0xdd,0x7e,0x3b,0x4f,0xf3,0x15,0x32,0x7c,0x64,0xf1,0x94,0x7d,0x35,0xb9,0x0f,0xfb, -0xd1,0x46,0x7f,0xf6,0x5a,0xe3,0x28,0xaf,0x82,0x58,0xec,0x52,0xda,0xac,0xbe,0xf6, -0x78,0x9e,0xda,0xa7,0xf3,0x3f,0xbc,0xef,0x13,0xe3,0x8f,0x8c,0xd3,0xfe,0x62,0xc1, -0xbf,0xde,0xb7,0x8b,0xff,0x00,0x89,0xab,0x09,0xf1,0xef,0xc6,0x0b,0xd6,0xf6,0x06, -0xfa,0xdb,0xaf,0xf8,0x57,0x9d,0xd1,0x5a,0x2c,0xcb,0x1a,0xb6,0xad,0x2f,0xbd,0x97, -0xf5,0x8a,0xbf,0xcc,0xcf,0x4a,0x5f,0xda,0x0b,0xc5,0xca,0x79,0x96,0xd1,0xff,0x00, -0xde,0xb7,0xff,0x00,0x03,0x53,0xa7,0xed,0x17,0xe2,0xa4,0xeb,0x16,0x9c,0xff,0x00, -0x58,0x1b,0xff,0x00,0x8b,0xaf,0x2e,0xa2,0xb4,0x59,0xb6,0x39,0x6d,0x59,0xfd,0xe3, -0x58,0x9a,0xcb,0xed,0x33,0xd6,0x23,0xfd,0xa4,0xbc,0x48,0xbf,0x7a,0xcb,0x4e,0x6f, -0xfb,0x66,0xe3,0xff,0x00,0x67,0xab,0x09,0xfb,0x4b,0x6b,0x60,0x7c,0xda,0x5d,0x8b, -0x1f,0x6d,0xe3,0xfa,0xd7,0x8f,0xd1,0x56,0xb3,0x9c,0x7a,0xff,0x00,0x97,0xac,0x7f, -0x5a,0xaf,0xfc,0xc7,0xb3,0x27,0xed,0x33,0xaa,0x0f,0xbd,0xa2,0xda,0xb7,0xd2,0x56, -0x1f,0xd2,0xa7,0x5f,0xda,0x6e,0xef,0xf8,0xb4,0x08,0x7f,0x0b,0xa3,0xff,0x00,0xc4, -0xd7,0x89,0x51,0xfa,0xd6,0xab,0x3c,0xcc,0x3a,0x55,0xfc,0x17,0xf9,0x14,0xb1,0x95, -0xff,0x00,0x98,0xfb,0x1b,0xe1,0xef,0x8b,0x26,0xf1,0xb7,0x86,0x61,0xd5,0xa5,0xb3, -0x16,0x42,0x67,0x75,0x48,0xc3,0xee,0xc8,0x52,0x57,0x39,0xc0,0xee,0x0d,0x74,0xb5, -0x89,0xe0,0xad,0x23,0xfb,0x03,0xc2,0x9a,0x56,0x9e,0x7e,0xf4,0x16,0xe8,0xaf,0xee, -0xd8,0xcb,0x1f,0xcf,0x35,0xb4,0x6b,0xf5,0xac,0x3f,0x3f,0xb1,0x87,0xb5,0x77,0x95, -0x95,0xfd,0x4f,0xa5,0x85,0xf9,0x17,0x36,0xe2,0xd2,0x13,0x8a,0xaf,0x7b,0x7f,0x6f, -0xa7,0x5a,0x49,0x73,0x75,0x3c,0x76,0xf6,0xf1,0x8d,0xcf,0x2c,0xac,0x15,0x54,0x7a, -0x92,0x6b,0xc7,0x3c,0x65,0xfb,0x45,0xdb,0xda,0xb3,0xdb,0x78,0x7a,0xdf,0xed,0x72, -0x0e,0x3e,0xd9,0x70,0x08,0x8f,0xea,0xab,0xd4,0xfe,0x38,0xfc,0x6b,0x0c,0x5e,0x3b, -0x0f,0x82,0x8f,0x35,0x69,0x5b,0xcb,0xaf,0xdc,0x4d,0x5a,0xd0,0xa4,0xaf,0x36,0x7b, -0x51,0x70,0xa3,0x24,0xe0,0x7a,0x9a,0xe5,0xf5,0x8f,0x8a,0x3e,0x16,0xd0,0xb7,0x0b, -0x9d,0x6a,0xd8,0xba,0x9c,0x18,0xe0,0x6f,0x39,0x81,0xf7,0x09,0x92,0x2b,0xe5,0xbf, -0x10,0xf8,0xe3,0x5d,0xf1,0x4c,0x8c,0xda,0x96,0xa5,0x34,0xe8,0x4e,0x7c,0xa0,0xdb, -0x63,0x1f,0x45,0x18,0x15,0x85,0xd2,0xbe,0x33,0x11,0xc5,0x2f,0x6c,0x3d,0x3f,0x9b, -0xff,0x00,0x25,0xfe,0x67,0x95,0x3c,0xc7,0xf9,0x23,0xf7,0x9f,0x4b,0xdf,0xfe,0xd1, -0x7e,0x19,0xb6,0x72,0xb0,0x45,0x7d,0x79,0xe8,0xd1,0xc4,0x15,0x7f,0xf1,0xe6,0x07, -0xf4,0xac,0xb9,0xbf,0x69,0x9d,0x31,0x4f,0xee,0x74,0x6b,0xb7,0x1f,0xed,0xc8,0xab, -0xfc,0xb3,0x5f,0x3e,0x51,0x5e,0x44,0xb8,0x8f,0x1f,0x2d,0x9a,0x5f,0x2f,0xf3,0x39, -0x5e,0x3a,0xb3,0xea,0x7b,0xfa,0xfe,0xd3,0x76,0x64,0xfc,0xda,0x14,0xe0,0x7b,0x4e, -0xa7,0xfa,0x55,0xb8,0xbf,0x69,0x6d,0x10,0xe3,0xcc,0xd2,0xf5,0x04,0xf5,0xda,0x23, -0x6f,0xfd,0x98,0x57,0xce,0xb4,0x54,0xae,0x21,0xcc,0x17,0xda,0x4f,0xe4,0x84,0xb1, -0xd5,0xfb,0x9f,0x53,0x58,0x7c,0x7b,0xf0,0x85,0xe8,0x4f,0x32,0xf2,0x6b,0x36,0x6f, -0xe1,0x9e,0xdd,0xb8,0xfa,0x95,0x04,0x7e,0xb5,0xd8,0xe9,0x3e,0x25,0xd2,0xb5,0xe0, -0x4e,0x9d,0xa9,0x5a,0xde,0xe0,0x64,0x88,0x25,0x56,0x23,0xea,0x07,0x4a,0xf8,0xa2, -0x9d,0x14,0xaf,0x04,0x8a,0xf1,0xbb,0x46,0xeb,0xca,0xb2,0x1c,0x11,0xf4,0x22,0xbd, -0x0a,0x3c,0x51,0x88,0x8b,0xfd,0xf4,0x13,0x5e,0x5a,0x3f,0xd4,0xde,0x19,0x8c,0xd7, -0xc4,0xae,0x7d,0xcf,0x9c,0x9e,0xb4,0xb5,0xf2,0xcf,0x84,0xfe,0x39,0x78,0x8b,0xc3, -0xae,0x91,0xdd,0x4d,0xfd,0xaf,0x68,0x3a,0xc7,0x72,0x7e,0x70,0x3d,0x9f,0xaf,0xe7, -0x9a,0xf7,0xbf,0x04,0x7c,0x49,0xd1,0xfc,0x75,0x6e,0x4d,0x94,0xde,0x55,0xda,0x0c, -0xc9,0x69,0x36,0x04,0x8b,0xee,0x3d,0x47,0xb8,0xaf,0xaf,0xc0,0xe7,0x18,0x5c,0x73, -0xe5,0x83,0xb4,0xbb,0x3f,0xd0,0xf4,0xe8,0xe2,0xa9,0xd6,0xd1,0x3b,0x33,0xac,0xa2, -0x90,0x1c,0x8a,0x5a,0xf7,0x0e,0xc0,0xa2,0x8a,0x28,0x00,0xa2,0x90,0x9c,0x57,0x3b, -0xe2,0x9f,0x88,0x1a,0x1f,0x83,0x93,0x3a,0x9d,0xfc,0x71,0x4a,0x46,0x44,0x09,0xf3, -0xc8,0xdf,0xf0,0x11,0xce,0x3d,0xcf,0x15,0x95,0x4a,0xb0,0xa5,0x1e,0x6a,0x92,0xb2, -0xf3,0x26,0x52,0x51,0x57,0x93,0x3a,0x3a,0x4c,0xd7,0x84,0x6b,0xdf,0xb4,0xb3,0x1d, -0xc9,0xa3,0xe9,0x20,0x0e,0xd2,0xde,0x3f,0x3f,0xf7,0xc2,0xff,0x00,0xf1,0x55,0xc3, -0xea,0x7f,0x1b,0x7c,0x5f,0xa9,0x13,0xff,0x00,0x13,0x31,0x68,0xa7,0xf8,0x6d,0xa2, -0x55,0xc7,0xe3,0x82,0x7f,0x5a,0xf9,0xca,0xfc,0x45,0x81,0xa5,0xa4,0x5b,0x97,0xa2, -0xff,0x00,0x33,0x82,0x78,0xea,0x31,0xd1,0x6a,0x7d,0x5d,0x9f,0xca,0x8d,0xc3,0xd6, -0xbe,0x30,0xba,0xf1,0xaf,0x88,0x2f,0x73,0xe7,0xeb,0x7a,0x84,0x80,0xf5,0x06,0xe5, -0xf1,0xf9,0x66,0xb3,0x1e,0xfa,0xe6,0x43,0x96,0xb8,0x95,0x89,0xee,0xce,0x4d,0x79, -0x92,0xe2,0xaa,0x6b,0xe1,0xa4,0xfe,0xff,0x00,0xf8,0x07,0x3b,0xcc,0xa3,0xd2,0x27, -0xdc,0x04,0x2b,0x1f,0x9b,0x69,0xfa,0xd3,0x86,0xd0,0x30,0x00,0xfc,0x2b,0xe1,0xbf, -0xb5,0xcf,0xff,0x00,0x3d,0xa4,0xff,0x00,0xbe,0x8d,0x58,0xb6,0xd7,0x35,0x2b,0x33, -0x9b,0x7d,0x42,0xea,0x03,0xeb,0x1c,0xcc,0xbf,0xc8,0xd4,0xae,0x2a,0x87,0x5a,0x3f, -0x8f,0xfc,0x01,0x7f,0x69,0x2e,0xb1,0xfc,0x4f,0xb6,0xb6,0xa9,0x3d,0x06,0x69,0xd9, -0xe3,0x8a,0xf8,0xe6,0xd3,0xe2,0x37,0x8a,0x2c,0xbf,0xd5,0x6b,0xd7,0xff,0x00,0x47, -0x9d,0x9c,0x7f,0xe3,0xd9,0xae,0x82,0xc3,0xe3,0xcf,0x8b,0xec,0x48,0xdf,0x75,0x05, -0xea,0x8e,0xd3,0xc0,0xbf,0xcd,0x71,0x5d,0x74,0xf8,0x9f,0x0b,0x2f,0x8e,0x2d,0x7d, -0xcc,0xda,0x39,0x85,0x37,0xba,0x68,0xfa,0xa2,0x90,0xf1,0x5e,0x27,0xe1,0x2f,0xda, -0x22,0x6d,0x5f,0x53,0xb3,0xd3,0xef,0xb4,0x61,0xe6,0xdc,0xca,0x90,0xac,0x96,0xb2, -0x7f,0x13,0x10,0x07,0xca,0xdf,0x5f,0x5a,0xf6,0xc1,0xc8,0x15,0xf4,0x78,0x4c,0x75, -0x0c,0x74,0x5c,0xa8,0x4a,0xf6,0x3b,0xa9,0x56,0x85,0x65,0x78,0x30,0x56,0x0e,0xa0, -0x8e,0x86,0x96,0x9a,0xab,0xb4,0x60,0x74,0xa7,0x57,0x79,0xb0,0x53,0x5c,0xe1,0x49, -0xf4,0x14,0xea,0x8a,0xe9,0xfc,0xbb,0x69,0x5b,0xd1,0x09,0xfd,0x29,0x3d,0x80,0xf8, -0x93,0xf6,0x80,0xb9,0xfb,0x47,0x8a,0xe4,0x5c,0xe7,0x04,0xd7,0x87,0xe8,0xfe,0x3c, -0x97,0xe1,0x5f,0xc5,0x4f,0x09,0x78,0xaa,0x10,0x0a,0x5a,0x5f,0x24,0x57,0x0a,0x4e, -0x03,0x41,0x27,0xee,0xe4,0x07,0xfe,0x02,0xc4,0x8f,0x70,0x3d,0x2b,0xd6,0xbe,0x33, -0x5c,0x79,0xde,0x2d,0xb8,0x39,0xce,0x33,0x5f,0x2e,0x7c,0x77,0xba,0x30,0xe8,0x72, -0xed,0x38,0x60,0xa4,0x8c,0x7a,0xd7,0xe7,0x18,0x29,0x37,0x8e,0x94,0x97,0x76,0x7e, -0x39,0x8f,0xa9,0x25,0x9a,0x53,0x9c,0x77,0xe7,0x47,0xec,0x77,0xdb,0x61,0xff,0x00, -0x9e,0xc9,0xf9,0xd1,0x5e,0x03,0xfd,0x91,0x7b,0xff,0x00,0x3f,0x72,0xff,0x00,0xdf, -0x46,0x8a,0xfd,0x0f,0x9d,0x9f,0xaf,0x73,0x79,0x1f,0x44,0xd1,0x45,0x15,0xa9,0xa8, -0x51,0x45,0x14,0x01,0x93,0xe2,0x9d,0x7a,0x1f,0x0b,0xf8,0x77,0x53,0xd5,0xae,0x48, -0xf2,0x6c,0xed,0xde,0x76,0x1e,0xbb,0x41,0x38,0xfc,0x4f,0x15,0xf9,0xe8,0xf3,0x5d, -0x78,0x97,0x5b,0x92,0x79,0x4b,0x4d,0x79,0x7d,0x39,0x76,0x3d,0x49,0x66,0x6c,0xff, -0x00,0x5a,0xfa,0x97,0xf6,0xb9,0xf1,0x6b,0x69,0x9e,0x11,0xb1,0xd0,0xa0,0x90,0x2c, -0xba,0x9c,0xdb,0xe5,0x51,0x8c,0xf9,0x51,0xf3,0xfa,0xb1,0x5f,0xc8,0xd7,0x8e,0x7e, -0xce,0xde,0x11,0xff,0x00,0x84,0xa3,0xe2,0x15,0xa3,0xc8,0xbb,0xad,0xac,0xff,0x00, -0x7e,0xfc,0x71,0xc7,0x41,0xf9,0xd7,0xc3,0xe7,0x33,0x78,0xac,0x54,0x30,0x90,0xfe, -0x9b,0xff,0x00,0x80,0x7c,0x26,0x6f,0x27,0x8c,0xc7,0x53,0xc2,0x47,0x65,0xbf,0xab, -0xff,0x00,0x80,0x7d,0x75,0xf0,0xeb,0xc3,0x51,0xf8,0x4f,0xc1,0xba,0x5e,0x9a,0x8b, -0xb5,0xa2,0x84,0x17,0xf7,0x62,0x32,0x6b,0xa4,0x03,0x14,0x2f,0x02,0x96,0xbe,0xd2, -0x9c,0x15,0x38,0x28,0x47,0x64,0x7d,0xc4,0x22,0xa1,0x15,0x15,0xb2,0x0a,0x28,0xa2, -0xb4,0x2c,0x2b,0x88,0xf8,0xe1,0xe0,0x17,0xf8,0xa9,0xf0,0x77,0xc6,0xbe,0x0f,0x8e, -0x5f,0x22,0x5d,0x73,0x48,0xba,0xb0,0x8e,0x53,0xfc,0x0f,0x24,0x4c,0xaa,0x7f,0x02, -0x45,0x76,0xf4,0x84,0x66,0x80,0x3f,0x97,0xbf,0x12,0xf8,0x6f,0x53,0xf0,0x77,0x88, -0x75,0x2d,0x0f,0x59,0xb3,0x97,0x4f,0xd5,0x74,0xeb,0x87,0xb5,0xba,0xb5,0x9d,0x70, -0xf1,0x48,0xa4,0x86,0x52,0x3e,0xa2,0xb4,0xa7,0xf8,0x99,0xe2,0xdb,0x9f,0x06,0x0f, -0x08,0x4d,0xe2,0x5d,0x56,0x6f,0x0b,0x09,0x56,0x71,0xa3,0x49,0x79,0x23,0x5a,0xac, -0x8b,0x9d,0xac,0x23,0x27,0x68,0x23,0x27,0xa0,0xef,0x5f,0xbd,0xff,0x00,0xb4,0x67, -0xec,0x2b,0xf0,0x9f,0xf6,0x99,0xb8,0x6d,0x4b,0xc4,0xba,0x3c,0xba,0x77,0x88,0xf6, -0x04,0x1a,0xee,0x8f,0x20,0x82,0xe9,0x80,0x18,0x01,0xf8,0x29,0x26,0x07,0x03,0x7a, -0x92,0x07,0x00,0x81,0x5f,0x2a,0x6a,0xbf,0xf0,0x44,0xcf,0x0c,0x49,0x76,0x0e,0x99, -0xf1,0x3b,0x56,0xb6,0xb5,0xef,0x1d,0xde,0x9b,0x14,0xcf,0x8f,0xf7,0x95,0x90,0x7e, -0x95,0x57,0x22,0xcf,0xa1,0xf9,0x77,0xe0,0xff,0x00,0x89,0x7e,0x2c,0xf8,0x7d,0x0e, -0xa7,0x17,0x86,0x3c,0x45,0xa9,0x78,0x7d,0x75,0x38,0x84,0x17,0x9f,0xd9,0xb7,0x2f, -0x03,0x4f,0x18,0x24,0x84,0x62,0xa4,0x12,0x32,0x4f,0x15,0xdb,0xfe,0xcf,0x3f,0xb3, -0x4f,0x8e,0xff,0x00,0x6a,0x2f,0x1c,0x47,0xa3,0x78,0x5a,0xc6,0x49,0x63,0xf3,0x03, -0x6a,0x1a,0xcd,0xc8,0x3f,0x66,0xb3,0x42,0x79,0x79,0x1f,0xb9,0xeb,0x85,0x19,0x66, -0x3d,0x2b,0xf5,0x27,0xe1,0xef,0xfc,0x11,0xd7,0xe0,0xf7,0x86,0x2f,0xe1,0xbb,0xf1, -0x1e,0xad,0xe2,0x0f,0x18,0x98,0xf9,0x36,0x97,0x17,0x0b,0x6b,0x6e,0xc7,0xdc,0x44, -0xa1,0xff,0x00,0x0d,0xf5,0xf6,0xa7,0x82,0x3c,0x03,0xe1,0xcf,0x86,0xbe,0x1e,0xb6, -0xd0,0x7c,0x2b,0xa2,0x58,0xf8,0x7f,0x47,0xb7,0x1f,0xbb,0xb3,0xd3,0xe0,0x58,0xa3, -0x07,0xb9,0x20,0x0e,0x58,0xf7,0x63,0xc9,0xee,0x69,0x5c,0x12,0xee,0x71,0xdf,0xb3, -0x97,0xec,0xfd,0xe1,0xbf,0xd9,0xab,0xe1,0x7e,0x9d,0xe0,0xcf,0x0d,0xc6,0x5a,0x38, -0x7f,0x7b,0x77,0x7d,0x22,0x81,0x35,0xed,0xc3,0x01,0xbe,0x67,0x3e,0xa7,0x00,0x01, -0xd8,0x00,0x07,0x02,0xb6,0x7e,0x30,0xf8,0x8c,0x78,0x6f,0xc0,0x7a,0x8c,0x8a,0xc1, -0x6e,0x2e,0x57,0xec,0xb0,0xf3,0x83,0xb9,0xf8,0x24,0x7b,0x85,0xdc,0x7f,0x0a,0xed, -0xeb,0xe7,0x8f,0xda,0x43,0xc4,0x5f,0x6b,0xd6,0x6c,0x34,0x68,0xdf,0x29,0x6b,0x19, -0x9e,0x50,0x3a,0x6f,0x6e,0x07,0xe4,0x07,0xfe,0x3d,0x5e,0x2e,0x6f,0x89,0xfa,0xae, -0x0e,0x73,0x5b,0xbd,0x17,0xab,0xd0,0xe7,0xc5,0x54,0xf6,0x74,0x9b,0x3c,0x6e,0x8a, -0x28,0xaf,0xc6,0x0f,0x95,0x0a,0xf6,0xff,0x00,0xd9,0xcf,0xc2,0x90,0x5e,0xc5,0xaa, -0xea,0xf7,0x76,0xf1,0x4e,0x99,0x16,0xd1,0x09,0x50,0x30,0xc8,0xf9,0x98,0xe0,0xfd, -0x57,0xf5,0xaf,0x10,0xaf,0xb0,0xbe,0x1a,0x78,0x74,0xf8,0x63,0xc1,0x1a,0x4d,0x8b, -0xa9,0x59,0xc4,0x5e,0x64,0xc0,0x8c,0x10,0xee,0x77,0x30,0xfc,0x09,0xc7,0xe1,0x5f, -0x57,0xc3,0xb8,0x5f,0x6f,0x8b,0xf6,0x92,0x5a,0x45,0x7e,0x2f,0x44,0x7a,0x58,0x0a, -0x7c,0xf5,0x79,0x9f,0x43,0x4e,0x4f,0x09,0xe8,0x93,0x0f,0xde,0x69,0x16,0x2f,0xf5, -0xb6,0x43,0xfd,0x2b,0x36,0xf3,0xe1,0x87,0x85,0x2f,0x91,0x96,0x4d,0x02,0xc5,0x41, -0xea,0x62,0x84,0x46,0x7f,0x35,0xc1,0xae,0x9c,0x0c,0x51,0x5f,0xa6,0xcb,0x0f,0x46, -0x5f,0x14,0x13,0xf9,0x23,0xe8,0x1d,0x38,0x3d,0xd2,0x3c,0x33,0xe2,0x17,0xc0,0x1b, -0x3b,0x6d,0x3a,0xe3,0x50,0xf0,0xf3,0xcb,0x1c,0x90,0xa1,0x76,0xb3,0x95,0xb7,0x87, -0x03,0x93,0xb5,0x8f,0x39,0xfa,0x93,0x9f,0x6a,0xf0,0x8a,0xfb,0x2b,0xc7,0x7e,0x21, -0x83,0xc3,0x3e,0x14,0xd4,0x6f,0xe6,0x20,0x6c,0x89,0x95,0x14,0xff,0x00,0x1b,0x91, -0x85,0x1f,0x99,0xaf,0x8d,0x40,0xc0,0x02,0xbf,0x34,0xe2,0x2c,0x2e,0x1b,0x0d,0x5a, -0x1e,0xc1,0x59,0xb5,0xaa,0x5f,0x81,0xe0,0x63,0xa9,0xc2,0x9c,0xd7,0x26,0x81,0x45, -0x14,0x57,0xc9,0x1e,0x61,0x6f,0x49,0xb5,0x7b,0xed,0x56,0xce,0xde,0x21,0x99,0x25, -0x99,0x23,0x5c,0x7a,0x96,0x00,0x7f,0x3a,0xfb,0x79,0x38,0x50,0x2b,0xe5,0xdf,0x81, -0x3e,0x13,0x6f,0x10,0x78,0xce,0x2b,0xc9,0x13,0x75,0xa6,0x9a,0x3c,0xf7,0x24,0x70, -0x64,0xe8,0x83,0xeb,0x9f,0x9b,0xfe,0x03,0x5f,0x51,0x81,0x5f,0xa5,0xf0,0xc5,0x09, -0x53,0xc3,0xce,0xab,0xfb,0x4f,0x4f,0x91,0xef,0xe5,0xd0,0x71,0x83,0x93,0xea,0x61, -0x78,0xdb,0xc3,0x4f,0xe2,0xff,0x00,0x0e,0x5d,0xe9,0x2b,0x78,0xf6,0x22,0xe3,0x68, -0x69,0x91,0x37,0x10,0x03,0x02,0x46,0x32,0x3a,0xe3,0x15,0xe4,0xf2,0x7e,0xcc,0x63, -0xf8,0x3c,0x40,0x7f,0xe0,0x56,0x9f,0xfd,0x9d,0x7b,0xb5,0x26,0x2b,0xe8,0x71,0x59, -0x6e,0x17,0x19,0x25,0x3a,0xf0,0xbb,0xf5,0x67,0x75,0x4c,0x3d,0x3a,0xae,0xf3,0x57, -0x3c,0x09,0xff,0x00,0x66,0x4b,0xaf,0xe0,0xd7,0xa1,0x3f,0xef,0x5b,0x11,0xff,0x00, -0xb3,0x55,0x77,0xfd,0x99,0xf5,0x31,0xf7,0x35,0xab,0x46,0xfa,0xc4,0xc2,0xbe,0x85, -0xc5,0x52,0xd6,0x35,0x38,0xb4,0x7d,0x2a,0xf2,0xfa,0x63,0x88,0xad,0xa2,0x79,0x58, -0xfb,0x28,0x26,0xbc,0xe9,0xe4,0x39,0x72,0x4d,0xb8,0x5b,0xe6,0xff,0x00,0xcc,0xc1, -0xe0,0xa8,0x2d,0x6c,0x7c,0x65,0xe2,0x0d,0x20,0xe8,0x1a,0xdd,0xee,0x9a,0xd7,0x11, -0xdc,0xbd,0xac,0x86,0x26,0x92,0x20,0x42,0x96,0x1d,0x40,0xcf,0xa1,0xc8,0xfc,0x2b, -0x3e,0xa6,0xbc,0xba,0x96,0xfe,0xee,0x6b,0x99,0xdb,0x7c,0xf3,0x3b,0x49,0x23,0x7a, -0xb1,0x39,0x27,0xf3,0x35,0x0d,0x7e,0x51,0x53,0x95,0xcd,0xb8,0x2d,0x2f,0xa1,0xf3, -0x4e,0xd7,0x76,0x0a,0x28,0xad,0x2f,0x0d,0xe9,0x2d,0xaf,0x78,0x83,0x4d,0xd3,0xd4, -0x13,0xf6,0x9b,0x84,0x8c,0xe3,0xb2,0x93,0xc9,0xfc,0xb3,0x4a,0x10,0x75,0x24,0xa0, -0xb7,0x6e,0xc1,0x15,0x76,0x91,0xd2,0xda,0xfc,0x17,0xf1,0x7d,0xe5,0xa4,0x37,0x30, -0xe9,0x41,0xe2,0x99,0x04,0x88,0x7c,0xf8,0xc1,0xc1,0x19,0x19,0x05,0xb8,0xa4,0x93, -0xe0,0xb7,0x8c,0xe3,0xeb,0xa2,0x39,0xff,0x00,0x76,0x68,0x8f,0xfe,0xcd,0x5f,0x59, -0x43,0x1a,0xc5,0x12,0x22,0x8d,0xaa,0xa0,0x00,0x07,0x61,0x4e,0xc7,0xbd,0x7e,0x99, -0xfe,0xac,0x61,0x1a,0x5e,0xf4,0xaf,0xea,0xbf,0xc8,0xf7,0xff,0x00,0xb3,0xa9,0xf7, -0x67,0xc8,0x12,0x7c,0x2a,0xf1,0x6c,0x47,0xe6,0xd0,0x6e,0xcf,0xfb,0xaa,0x0f,0xf2, -0x35,0xa1,0xe1,0x2f,0x86,0x1e,0x20,0x9b,0xc5,0x3a,0x52,0x5e,0xe8,0xb7,0x50,0x5a, -0x7d,0xa5,0x1a,0x67,0x9a,0x22,0x10,0x20,0x39,0x6c,0x9f,0x70,0x31,0x5f,0x57,0x8a, -0x31,0x44,0x38,0x67,0x0d,0x09,0xa9,0x29,0xbd,0x3d,0x06,0xb2,0xfa,0x69,0xde,0xec, -0x07,0x02,0xb1,0x7c,0x59,0xe2,0xed,0x3f,0xc1,0xba,0x3c,0x9a,0x86,0xa1,0x2e,0xc8, -0xc7,0xca,0x91,0xaf,0xdf,0x95,0xbb,0x2a,0x8e,0xe7,0xf9,0x75,0x35,0x7f,0x56,0xd5, -0x6d,0xb4,0x4d,0x36,0xe6,0xfa,0xf2,0x51,0x0d,0xb4,0x08,0x64,0x91,0xcf,0x60,0x3f, -0xcf,0x4a,0xf9,0x1b,0xe2,0x07,0x8e,0x6e,0xfc,0x77,0xae,0xbd,0xe4,0xe5,0xa3,0xb6, -0x8c,0x95,0xb6,0xb7,0xcf,0x11,0x27,0xf8,0x9e,0xe7,0xfa,0x62,0xbd,0x1c,0xdb,0x34, -0x8e,0x5d,0x4a,0xd1,0xd6,0x6f,0x65,0xfa,0xb3,0x7c,0x4e,0x21,0x50,0x8e,0x9b,0xb2, -0x6f,0x1e,0x7c,0x48,0xd5,0x3c,0x79,0x78,0x5a,0xe5,0xcd,0xbd,0x8a,0x1c,0xc5,0x67, -0x1b,0x1d,0x8b,0xe8,0x4f,0xf7,0x9b,0xdc,0xfe,0x18,0xae,0x4e,0x8a,0x2b,0xf2,0x5a, -0xd5,0xaa,0x62,0x26,0xea,0x55,0x77,0x6c,0xf9,0x99,0x4e,0x53,0x7c,0xd2,0x7a,0x85, -0x14,0x57,0x5d,0xe0,0x0f,0x86,0x9a,0xa7,0x8f,0xae,0x8f,0xd9,0x80,0xb7,0xb1,0x8d, -0xb1,0x2d,0xe4,0x83,0xe5,0x1f,0xec,0x81,0xfc,0x4d,0xed,0xf9,0xd3,0xa3,0x46,0xa6, -0x22,0x6a,0x9d,0x25,0x76,0xc7,0x08,0x4a,0xa4,0xb9,0x62,0xae,0xce,0x46,0xa7,0xb7, -0xb1,0xb9,0xbc,0xff,0x00,0x51,0x6f,0x2c,0xf8,0xeb,0xe5,0xa1,0x6f,0xe5,0x5f,0x55, -0xf8,0x5f,0xe0,0xe7,0x86,0x7c,0x35,0x12,0x11,0x60,0x97,0xf7,0x23,0x19,0x9e,0xf0, -0x09,0x0e,0x7d,0x40,0x3f,0x28,0xfc,0x05,0x76,0xc9,0x0a,0x46,0x00,0x55,0x0a,0x07, -0x18,0x03,0x02,0xbe,0xce,0x87,0x0b,0x54,0x94,0x6f,0x5a,0xa2,0x4f,0xb2,0x57,0xfc, -0x74,0x3d,0x58,0x65,0xd2,0x7f,0x1c,0xac,0x7c,0x3f,0x71,0xa7,0x5d,0xda,0x0c,0xcf, -0x6b,0x34,0x23,0xd6,0x48,0xca,0xff,0x00,0x31,0x55,0xeb,0xee,0x96,0x8d,0x5d,0x48, -0x60,0x08,0x3d,0x8d,0x71,0xde,0x29,0xf8,0x4d,0xe1,0xcf,0x15,0x42,0xfe,0x6d,0x8a, -0x59,0xdd,0x31,0x2c,0x2e,0xad,0x00,0x8d,0xf7,0x7a,0x9c,0x70,0xdf,0x88,0x34,0xeb, -0xf0,0xb5,0x48,0xc6,0xf4,0x6a,0x5d,0xf6,0x6a,0xc1,0x3c,0xb9,0xa5,0xee,0x4a,0xe7, -0xc8,0xf4,0x57,0x4b,0xe3,0xbf,0x02,0x5f,0xf8,0x0f,0x56,0xfb,0x25,0xd8,0xf3,0x61, -0x93,0x2d,0x05,0xca,0x8c,0x2c,0x8b,0xfd,0x08,0xee,0x3d,0xeb,0x9a,0xaf,0x89,0xab, -0x4a,0x74,0x26,0xe9,0xd4,0x56,0x68,0xf2,0x65,0x17,0x07,0xcb,0x2d,0xc2,0xac,0x69, -0xfa,0x85,0xce,0x95,0x7b,0x0d,0xdd,0x9c,0xef,0x6d,0x73,0x0b,0x6e,0x8e,0x58,0xdb, -0x05,0x4d,0x57,0xa2,0xb3,0x4d,0xc5,0xa7,0x1d,0x1a,0x25,0x3b,0x6a,0x8f,0xaa,0xfe, -0x13,0xfc,0x4d,0x8f,0xc7,0x9a,0x61,0x86,0xe3,0x6c,0x5a,0xb5,0xb2,0x8f,0x3a,0x31, -0xc0,0x91,0x7f,0xbe,0xbe,0xde,0xa3,0xb1,0xfa,0x8a,0xef,0xc5,0x7c,0x59,0xe1,0x3f, -0x12,0xdc,0x78,0x47,0xc4,0x16,0x7a,0xad,0xb1,0x25,0xe0,0x6f,0x99,0x33,0xfe,0xb1, -0x0f,0xde,0x53,0xf5,0x19,0xaf,0xb2,0xf4,0xeb,0xd8,0x75,0x2b,0x0b,0x7b,0xbb,0x77, -0x12,0x41,0x3c,0x6b,0x24,0x6c,0x3a,0x15,0x23,0x20,0xd7,0xeb,0x39,0x16,0x64,0xf1, -0xd4,0x5c,0x2a,0x3f,0x7e,0x3b,0xf9,0xae,0x8c,0xfa,0x5c,0x1d,0x77,0x5a,0x16,0x96, -0xe8,0xb3,0x48,0x4e,0xd1,0x93,0x41,0xaf,0x29,0xf8,0xf9,0xe3,0x99,0x3c,0x3f,0xa2, -0x45,0xa4,0xd9,0xc8,0x52,0xf3,0x50,0x07,0x7b,0x29,0xe5,0x22,0x1d,0x7f,0x3e,0x9f, -0x4c,0xd7,0xb5,0x8b,0xc4,0xc3,0x07,0x46,0x55,0xa7,0xb2,0x3a,0xea,0xd4,0x54,0xa0, -0xe6,0xfa,0x1c,0xff,0x00,0xc5,0x1f,0x8e,0xb2,0x2c,0xb3,0x69,0x5e,0x1b,0x94,0x2e, -0xdc,0xa4,0xba,0x82,0xf3,0xcf,0x71,0x1f,0xff,0x00,0x15,0xf9,0x7a,0xd7,0x87,0x4f, -0x3c,0xb7,0x33,0x3c,0xb3,0x48,0xf2,0xca,0xec,0x59,0x9d,0xd8,0xb3,0x31,0x3d,0x49, -0x26,0x99,0x45,0x7e,0x39,0x8d,0xc7,0xd7,0xc7,0xd4,0xe7,0xaa,0xfd,0x17,0x44,0x7c, -0xb5,0x5a,0xd3,0xac,0xef,0x20,0xa2,0x8a,0x2b,0xce,0x30,0x0a,0x2b,0xba,0xf0,0xbf, -0xc1,0x8f,0x13,0x78,0xa2,0x14,0xb8,0x4b,0x64,0xb0,0xb5,0x7e,0x56,0x5b,0xc6,0x29, -0xb8,0x7a,0x85,0x00,0x9f,0xd2,0xbb,0x28,0x3f,0x66,0x5b,0xb6,0x51,0xe7,0xeb,0xd1, -0x21,0xee,0x23,0xb6,0x2d,0xfa,0x96,0x15,0xeb,0xd1,0xca,0x31,0xd5,0xd7,0x34,0x29, -0xbb,0x79,0xe9,0xf9,0x9d,0x31,0xc3,0x56,0x9a,0xba,0x89,0xe2,0x74,0x57,0xb9,0x37, -0xec,0xc6,0xf8,0xf9,0x7c,0x42,0x3f,0x1b,0x4f,0xfe,0xce,0xaa,0x5c,0x7e,0xcc,0xfa, -0x8a,0xa9,0xf2,0x35,0xab,0x59,0x0f,0x61,0x24,0x2c,0x9f,0xc8,0x9a,0xdd,0xe4,0x59, -0x82,0xff,0x00,0x97,0x7f,0x8a,0xff,0x00,0x32,0xfe,0xa7,0x5d,0x7d,0x93,0xc6,0x28, -0xaf,0x47,0xd4,0xbe,0x01,0x78,0xb2,0xc4,0x33,0x43,0x05,0xb5,0xf2,0x8f,0xf9,0xe1, -0x38,0xcf,0xe4,0xc0,0x57,0x15,0xac,0x78,0x6b,0x56,0xf0,0xfb,0xed,0xd4,0xb4,0xdb, -0x9b,0x2e,0x70,0x1a,0x68,0xc8,0x53,0xf4,0x3d,0x0d,0x79,0xd5,0xb0,0x58,0x9c,0x3e, -0xb5,0x69,0xb5,0xf2,0x30,0x95,0x2a,0x90,0xf8,0xa3,0x63,0xac,0xf8,0x1d,0xa4,0x0d, -0x57,0xe2,0x25,0x83,0x32,0x6e,0x8e,0xd5,0x5e,0xe1,0xbd,0xb0,0x30,0xa7,0xfe,0xfa, -0x65,0xaf,0xab,0x07,0x4a,0xf0,0x8f,0xd9,0x9f,0x48,0x05,0xb5,0x9d,0x51,0x97,0xfb, -0x96,0xc8,0x7f,0xf1,0xe6,0xff,0x00,0xd9,0x6b,0xde,0x2b,0xf4,0xce,0x1d,0xa3,0xec, -0xb0,0x2a,0x5f,0xcc,0xdb,0xfd,0x3f,0x43,0xe8,0x30,0x30,0xe5,0xa3,0x7e,0xe1,0x45, -0x14,0x57,0xd3,0x9e,0x80,0x55,0x2d,0x66,0x4f,0x2b,0x4a,0xbb,0x6f,0x48,0xcd,0x5d, -0xac,0x7f,0x16,0xcb,0xe4,0x78,0x7a,0xf9,0xff,0x00,0xe9,0x99,0xac,0xea,0x3b,0x41, -0xb2,0x64,0xed,0x16,0xcf,0x83,0x7e,0x27,0xcf,0xe7,0x78,0xa6,0xf4,0x83,0x9c,0x12, -0x3f,0x5a,0xf9,0xc3,0xe2,0xbc,0x5f,0xda,0x1a,0xa6,0x95,0x65,0xb7,0x79,0xb8,0xbd, -0x82,0x1d,0x9d,0x77,0x6e,0x91,0x57,0x1f,0xad,0x7d,0x01,0xe3,0xa9,0xbc,0xdd,0x7a, -0xf5,0xb3,0x9f,0x9c,0x8a,0xf1,0x3b,0xa8,0x3f,0xb4,0xfe,0x36,0xfc,0x3b,0xb2,0xed, -0x37,0x88,0xf4,0xe4,0xfa,0x8f,0xb4,0xc7,0xfe,0x15,0xf9,0xde,0x54,0xb9,0xb1,0x2d, -0xf9,0xfe,0xa7,0xe3,0x33,0x5e,0xd7,0x36,0xa4,0xbf,0xbc,0x7e,0xb6,0xff,0x00,0x61, -0x5a,0xff,0x00,0xcf,0xba,0xfe,0x54,0x56,0xad,0x15,0xfa,0x2f,0x2a,0x3f,0x66,0xb2, -0x1f,0x45,0x14,0x55,0x94,0x14,0xd2,0x69,0xd5,0xc8,0xfc,0x55,0xf1,0x6f,0xfc,0x21, -0x1e,0x01,0xd6,0xb5,0x75,0x60,0xb3,0xc3,0x09,0x48,0x33,0x8f,0xf5,0xad,0xf2,0xa7, -0x07,0xaf,0x24,0x1c,0x7b,0x56,0x75,0x26,0xa9,0xc1,0xce,0x5b,0x23,0x3a,0x93,0x54, -0xa0,0xe7,0x2d,0x96,0xa7,0xc8,0x5f,0x1f,0xbc,0x5f,0xff,0x00,0x09,0x8f,0xc4,0xfd, -0x4e,0x48,0xa4,0x2f,0x69,0x64,0x45,0x94,0x18,0x24,0x8c,0x26,0x77,0x11,0xf5,0x62, -0xdf,0xa5,0x7b,0xc7,0xec,0xaf,0xe1,0x1f,0xec,0x7f,0x08,0x4d,0xab,0x4a,0x98,0x9a, -0xf9,0xfe,0x52,0x47,0x3b,0x05,0x7c,0xa9,0xa0,0x69,0x73,0xf8,0x83,0x5d,0xb5,0xb3, -0x8c,0x19,0x66,0xb9,0x98,0x2f,0xa9,0x24,0x9e,0x4d,0x7e,0x85,0x78,0x67,0x45,0x8b, -0xc3,0xfa,0x0d,0x8e,0x9f,0x12,0x85,0x4b,0x78,0x95,0x30,0x3d,0x40,0xe6,0xbe,0x27, -0x28,0x83,0xc5,0xe3,0x27,0x8a,0x9f,0x4f,0xcd,0xff,0x00,0xc0,0x3e,0x27,0x23,0x84, -0xb1,0x58,0x9a,0x98,0xc9,0xff,0x00,0x57,0x34,0xc5,0x2d,0x14,0x57,0xdd,0x1f,0x74, -0x14,0x51,0x45,0x00,0x32,0x49,0x16,0x18,0xd9,0xdd,0x82,0x22,0x82,0x59,0x98,0xe0, -0x01,0xea,0x6b,0xe0,0x7f,0xda,0x6b,0xfe,0x0a,0xd3,0xe0,0xaf,0x85,0x9a,0x95,0xe7, -0x87,0xbe,0x1e,0x69,0xc9,0xe3,0xcd,0x72,0xdd,0x8c,0x73,0x5f,0xb4,0xa6,0x3d,0x36, -0x17,0x07,0x95,0x0e,0x3e,0x69,0x88,0xff,0x00,0x67,0x0b,0xfe,0xd7,0x5a,0xe2,0xbf, -0xe0,0xad,0x3f,0xb5,0xed,0xe7,0x84,0xed,0x62,0xf8,0x37,0xe1,0x3b,0xf6,0xb6,0xbe, -0xd4,0x2d,0xc5,0xc7,0x88,0x6e,0xa0,0x7c,0x3c,0x76,0xef,0xfe,0xae,0xd8,0x10,0x78, -0x2e,0x3e,0x66,0xff,0x00,0x64,0xa8,0xe8,0xc6,0xbe,0x5a,0xfd,0x8a,0x7f,0xe0,0x9d, -0x9a,0xff,0x00,0xed,0x53,0xa7,0xc9,0xe2,0x9d,0x5f,0x55,0x3e,0x15,0xf0,0x3c,0x53, -0x18,0x12,0xed,0x21,0xf3,0x2e,0x6f,0x5d,0x71,0xb9,0x61,0x52,0x40,0x0a,0xbd,0x0b, -0xb6,0x46,0x78,0x00,0xe0,0xe1,0x92,0xfc,0x8c,0xef,0x1a,0xff,0x00,0xc1,0x51,0x7f, -0x68,0x5f,0x17,0xcd,0x37,0x91,0xe2,0xeb,0x7f,0x0e,0xdb,0x3b,0x16,0x5b,0x7d,0x1b, -0x4f,0x86,0x30,0x83,0xb0,0x0e,0xea,0xcf,0xf9,0xb5,0x7d,0x1d,0xff,0x00,0x04,0xc4, -0xf8,0xc5,0xf1,0xb7,0xf6,0x81,0xf8,0xe3,0x7d,0x71,0xe2,0x9f,0x88,0x1a,0xe6,0xad, -0xe0,0xff,0x00,0x0f,0xd8,0xbd,0xd5,0xe5,0xb5,0xc3,0x29,0x86,0x79,0xe4,0xcc,0x70, -0xc4,0xc7,0x6e,0x47,0x57,0x93,0x03,0xfe,0x79,0x57,0xc9,0xbf,0xb7,0x6f,0xc0,0x4f, -0x01,0xfe,0xcd,0x7f,0x18,0x6d,0xbc,0x0b,0xe0,0x8d,0x57,0x58,0xd5,0xde,0xd7,0x4f, -0x8e,0xe3,0x53,0x9f,0x57,0x9e,0x29,0x19,0x27,0x90,0x96,0x58,0xc0,0x8e,0x34,0x0b, -0x88,0xf6,0x31,0xce,0x7f,0xd6,0x0e,0x98,0xaf,0xd3,0xef,0xf8,0x25,0x5f,0xc1,0x81, -0xf0,0xbf,0xf6,0x5f,0xb1,0xd7,0x2e,0xad,0xfc,0xad,0x5f,0xc5,0xf3,0x9d,0x56,0x56, -0x3f,0x7b,0xec,0xff,0x00,0x72,0xdd,0x7d,0x86,0xd0,0x5b,0xfe,0xda,0x50,0x08,0x8f, -0xe3,0x97,0xfc,0x15,0x17,0xc0,0x9f,0x00,0x7e,0x2c,0xeb,0xfe,0x01,0xd7,0xfc,0x21, -0xe2,0x5b,0xbd,0x43,0x48,0x92,0x34,0x92,0xea,0xc4,0x5b,0xb4,0x32,0x07,0x89,0x24, -0x56,0x5d,0xd2,0x29,0xe8,0xe3,0xb7,0x50,0x6b,0xe8,0x3f,0xd9,0xdb,0xe3,0xe6,0x87, -0xfb,0x4a,0xfc,0x30,0xb3,0xf1,0xc7,0x87,0x6c,0xef,0xac,0x34,0xcb,0x99,0xe5,0xb7, -0x58,0x35,0x15,0x45,0x98,0x34,0x6d,0xb5,0xb2,0x15,0x98,0x63,0x3d,0x39,0xaf,0xc2, -0xdf,0xdb,0xb3,0xc7,0x76,0x9f,0x11,0xbf,0x6b,0x6f,0x89,0x5a,0xcd,0x84,0xbe,0x75, -0x90,0xd4,0xbe,0xc5,0x13,0x8e,0x84,0x5b,0xc6,0x90,0x12,0x3d,0x8b,0x46,0xc7,0xf1, -0xaf,0xd8,0xaf,0xf8,0x27,0x2f,0x81,0x67,0xf0,0x0f,0xec,0x75,0xf0,0xfa,0xd2,0xe5, -0x59,0x2e,0x2f,0xed,0xa4,0xd5,0x59,0x58,0x60,0x81,0x71,0x2b,0x4a,0x9f,0xf8,0xe3, -0x2d,0x03,0x4f,0x53,0xe9,0x19,0xa7,0x5b,0x78,0x9e,0x49,0x18,0x24,0x68,0xa5,0x99, -0x98,0xe0,0x00,0x3b,0xd7,0xc5,0xfe,0x2d,0xd7,0x5f,0xc4,0xde,0x25,0xd4,0x75,0x37, -0x27,0xfd,0x22,0x66,0x65,0x07,0xb2,0x74,0x51,0xf8,0x00,0x05,0x7d,0x29,0xf1,0xbf, -0xc4,0x5f,0xd8,0x1e,0x01,0xbc,0x54,0x70,0xb7,0x17,0xc4,0x5a,0x46,0x3d,0x43,0x7d, -0xff,0x00,0xfc,0x74,0x37,0xe9,0x5f,0x2a,0x57,0xe7,0x1c,0x51,0x8a,0xe6,0x9c,0x30, -0xeb,0xa6,0xaf,0xe7,0xb1,0xe1,0xe6,0x15,0x2f,0x25,0x4f,0xe6,0x14,0x51,0x45,0x7c, -0x29,0xe3,0x9a,0x5e,0x1a,0x92,0xc6,0x2d,0x7f,0x4f,0x93,0x52,0x25,0x6c,0x23,0x99, -0x5e,0x6d,0xab,0xb8,0x95,0x07,0x24,0x60,0x7a,0xe3,0x1f,0x8d,0x7d,0x2b,0x1f,0xc7, -0x9f,0x06,0xb0,0x03,0xed,0xf2,0xaf,0xd6,0xda,0x4f,0xf0,0xaf,0x96,0x28,0xaf,0x6b, -0x01,0x9b,0x56,0xcb,0xa3,0x28,0xd2,0x49,0xdf,0xbf,0xfc,0x39,0xd7,0x47,0x13,0x3a, -0x09,0xa8,0xad,0xcf,0xaa,0xcf,0xc7,0x5f,0x06,0x81,0x9f,0xed,0x37,0xff,0x00,0xc0, -0x69,0x3f,0xf8,0x9a,0xc7,0xd6,0x3f,0x68,0xcf,0x0e,0xda,0x44,0xc2,0xc6,0xde,0xef, -0x50,0x97,0xb0,0xd9,0xe5,0xaf,0xe2,0x4f,0x3f,0xa5,0x7c,0xd9,0x45,0x7a,0x53,0xe2, -0x6c,0x6c,0x95,0x92,0x8a,0xf9,0x7f,0xc1,0x37,0x79,0x85,0x67,0xb5,0x8e,0xa7,0xc7, -0x5f,0x11,0x35,0x5f,0x1e,0xdd,0xab,0xde,0x32,0xc3,0x69,0x19,0x26,0x1b,0x48,0xbe, -0xe2,0x7b,0x9f,0x53,0xee,0x7f,0x0c,0x57,0x2d,0x45,0x6b,0xe9,0x1e,0x12,0xd6,0xb5, -0xed,0xa7,0x4f,0xd2,0xee,0xae,0x91,0xba,0x3c,0x71,0x1d,0x9f,0xf7,0xd7,0x4f,0xd6, -0xbe,0x72,0x73,0xad,0x8b,0xa8,0xe5,0x2b,0xca,0x4f,0xe6,0x70,0xc9,0xce,0xac,0xae, -0xf5,0x66,0x45,0x69,0x78,0x7b,0xc3,0xb7,0xfe,0x29,0xd5,0x21,0xd3,0xf4,0xe8,0x0c, -0xd7,0x12,0x1f,0xf8,0x0a,0x0e,0xec,0xc7,0xb0,0x15,0xe9,0x5e,0x18,0xfd,0x9d,0x75, -0x7d,0x45,0xd2,0x4d,0x66,0xe2,0x3d,0x36,0x0e,0x09,0x8a,0x32,0x24,0x94,0x8f,0x4e, -0x38,0x1f,0x99,0xfa,0x57,0xb9,0x78,0x4f,0xc1,0x7a,0x57,0x82,0xec,0x3e,0xcb,0xa6, -0x5b,0x08,0xb3,0x83,0x24,0xad,0xcc,0x92,0x1f,0x56,0x6e,0xff,0x00,0x4e,0x83,0xb0, -0x15,0xf4,0x79,0x7f,0x0f,0xe2,0x31,0x12,0x52,0xc4,0x2e,0x48,0xfe,0x2f,0xfa,0xf3, -0x3b,0xa8,0x60,0xa7,0x37,0x79,0xe8,0x8a,0xfe,0x01,0xf0,0x5d,0xaf,0x81,0xbc,0x3f, -0x0e,0x9f,0x6e,0x7c,0xc9,0x4f,0xcf,0x3c,0xf8,0xc1,0x95,0xcf,0x53,0xf4,0xec,0x3d, -0x85,0x74,0xb4,0x94,0xb5,0xfa,0x7d,0x2a,0x51,0xa3,0x05,0x4e,0x0a,0xc9,0x1f,0x43, -0x18,0xa8,0xa5,0x15,0xb0,0x51,0x45,0x15,0xa9,0x41,0x5e,0x6f,0xf1,0xeb,0x5c,0xfe, -0xc9,0xf0,0x05,0xc4,0x0a,0xdb,0x65,0xbe,0x91,0x6d,0xd7,0x1e,0x99,0xdc,0xdf,0xa0, -0x23,0xf1,0xaf,0x47,0x3d,0x2b,0xe7,0x8f,0xda,0x4f,0x5b,0xfb,0x4e,0xbd,0xa6,0x69, -0x68,0xdf,0x25,0xac,0x26,0x67,0x03,0xfb,0xce,0x70,0x3f,0x20,0xbf,0xad,0x78,0x79, -0xd5,0x7f,0xab,0xe0,0x6a,0x49,0x6e,0xf4,0xfb,0xce,0x4c,0x5c,0xf9,0x28,0xc9,0x9e, -0x39,0x45,0x14,0x57,0xe3,0x67,0xca,0x85,0x7a,0x67,0xec,0xfb,0xa2,0xff,0x00,0x69, -0x78,0xec,0x5d,0xba,0x93,0x1d,0x84,0x0d,0x2e,0x7b,0x07,0x6f,0x95,0x41,0xfc,0x0b, -0x1f,0xc2,0xbc,0xce,0xbe,0x89,0xfd,0x9b,0x74,0x41,0x6b,0xe1,0xdd,0x47,0x54,0x65, -0x22,0x4b,0xc9,0xc4,0x4a,0x4f,0x42,0x91,0x8e,0x08,0xfc,0x59,0x87,0xe1,0x5e,0xf6, -0x47,0x43,0xdb,0xe3,0xe0,0x9e,0xcb,0x5f,0xbb,0xfe,0x09,0xd9,0x84,0x87,0x3d,0x68, -0xf9,0x6a,0x7b,0x08,0xe9,0x4b,0x45,0x15,0xfb,0x11,0xf5,0x21,0x48,0x4e,0x29,0x6a, -0x9e,0xad,0xa8,0xc5,0xa4,0xe9,0xb7,0x57,0xb3,0x9c,0x43,0x6f,0x13,0x4a,0xe7,0xd9, -0x41,0x27,0xf9,0x54,0xc9,0xa8,0xa6,0xde,0xc2,0x6e,0xda,0xb3,0xc3,0x3f,0x68,0x9f, -0x1b,0xb5,0xc5,0xdc,0x3e,0x1b,0xb5,0x90,0x88,0xa2,0x02,0x6b,0xbd,0xa7,0xef,0x31, -0xe5,0x50,0xfd,0x07,0xcd,0x8f,0x71,0xe9,0x5e,0x27,0x57,0x35,0x9d,0x52,0x7d,0x6f, -0x55,0xbb,0xd4,0x2e,0x4e,0x67,0xb9,0x95,0xa5,0x7f,0xa9,0x39,0xc7,0xd0,0x74,0xfc, -0x2a,0x9d,0x7e,0x25,0x98,0x62,0xe5,0x8d,0xc4,0xca,0xb3,0xdb,0xa7,0xa7,0x43,0xe4, -0xab,0xd5,0x75,0xaa,0x39,0x30,0xa2,0x8a,0x2b,0xce,0x30,0x3a,0x5f,0x87,0xde,0x0a, -0x9f,0xc7,0x5e,0x22,0x86,0xc2,0x32,0x63,0xb7,0x5f,0xde,0x5c,0x4c,0x07,0xdc,0x8f, -0xbf,0xe2,0x7a,0x0f,0xfe,0xb5,0x7d,0x71,0xa3,0x69,0x16,0x9a,0x16,0x9b,0x05,0x8d, -0x8c,0x2b,0x6f,0x6b,0x02,0xed,0x48,0xd0,0x71,0xf5,0x3e,0xa4,0xf5,0x27,0xa9,0xae, -0x13,0xe0,0x4f,0x84,0xd7,0xc3,0xde,0x0d,0x8a,0xf2,0x44,0x02,0xf3,0x52,0xc5,0xc3, -0x92,0x39,0x11,0xff,0x00,0xcb,0x31,0xf9,0x73,0xf5,0x63,0x5e,0x93,0x5f,0xad,0x64, -0x59,0x7c,0x70,0x98,0x75,0x52,0x4b,0xdf,0x9e,0xaf,0xc9,0x74,0x47,0xd2,0xe0,0xe8, -0x2a,0x54,0xd4,0x9e,0xec,0x4a,0x5a,0x28,0xaf,0xa6,0x3d,0x00,0xa2,0x8a,0x28,0x03, -0x8c,0xf8,0xb1,0xe1,0x58,0xbc,0x55,0xe0,0xbb,0xe8,0x76,0x03,0x75,0x6e,0x86,0xe2, -0xdd,0xb1,0xc8,0x75,0x19,0xc0,0xfa,0x8c,0x8f,0xc6,0xbe,0x47,0xaf,0xb9,0xe4,0x50, -0xe8,0x54,0x8c,0x82,0x30,0x6b,0xe2,0x0d,0x46,0x11,0x6f,0xa8,0xdd,0x42,0x3a,0x47, -0x2b,0xa0,0xfc,0x09,0x15,0xf9,0xd7,0x14,0xd0,0x8c,0x67,0x4e,0xb2,0xdd,0xdd,0x3f, -0x91,0xe1,0x66,0x30,0x49,0xc6,0x5d,0xca,0xf4,0x51,0x45,0x7c,0x21,0xe3,0x85,0x7d, -0x49,0xf0,0x17,0x5a,0x6d,0x57,0xe1,0xf5,0xb4,0x4e,0xe5,0xe4,0xb2,0x95,0xed,0xc9, -0x3e,0x83,0xe6,0x51,0xf8,0x2b,0x01,0xf8,0x57,0xcb,0x75,0xf4,0x27,0xec,0xcf,0x29, -0x3a,0x0e,0xb3,0x1f,0x65,0xba,0x56,0xfc,0xd3,0x1f,0xd2,0xbe,0xa7,0x86,0xea,0x38, -0x63,0x94,0x57,0x54,0xff,0x00,0xcc,0xf4,0x70,0x12,0x6a,0xb5,0xbb,0x9e,0xcc,0x6b, -0xe5,0x2f,0x8e,0x1a,0x9b,0xea,0x3f,0x11,0xb5,0x14,0x66,0x2d,0x1d,0xa8,0x48,0x23, -0x1e,0x80,0x28,0x27,0xff,0x00,0x1e,0x66,0xaf,0xab,0x3b,0x57,0xc8,0xdf,0x17,0x6d, -0x5a,0xd3,0xe2,0x3e,0xb8,0xad,0xd5,0xa6,0x12,0x0f,0xa3,0x28,0x23,0xf9,0xd7,0xd3, -0x71,0x3c,0xa4,0xb0,0x91,0x4b,0x67,0x2f,0xd1,0x9d,0xf9,0x83,0xfd,0xd2,0xf5,0x38, -0xfa,0x28,0xa2,0xbf,0x30,0x3e,0x7c,0x2b,0xb7,0xf8,0x35,0xa3,0xd9,0xeb,0x5e,0x3f, -0xb0,0x8a,0xf7,0x6b,0x45,0x18,0x69,0x96,0x37,0xe4,0x48,0xca,0x32,0xa3,0xf3,0xe7, -0xf0,0xae,0x22,0xac,0xe9,0xba,0x8d,0xce,0x91,0x7f,0x05,0xed,0xa4,0xcd,0x05,0xcc, -0x0e,0x1e,0x39,0x13,0xaa,0x91,0x5d,0x38,0x6a,0x91,0xa3,0x5e,0x15,0x26,0xae,0x93, -0x4e,0xc5,0xd3,0x92,0x8c,0xd4,0x9e,0xc7,0xdb,0xea,0x38,0xc5,0x3b,0x15,0xe2,0xbe, -0x10,0xfd,0xa3,0x2c,0xe7,0x8d,0x21,0xf1,0x0d,0xb3,0xda,0xcc,0x38,0x37,0x56,0xeb, -0xba,0x33,0xee,0x57,0xa8,0xfc,0x33,0x5e,0xa7,0xa3,0x78,0xbb,0x46,0xf1,0x0a,0x06, -0xd3,0xb5,0x2b,0x6b,0xbf,0x55,0x8e,0x41,0xb8,0x7d,0x57,0xa8,0xaf,0xd9,0x70,0xb9, -0x86,0x17,0x16,0x93,0xa5,0x35,0xe9,0xd7,0xee,0x3e,0xae,0x9d,0x7a,0x75,0x7e,0x16, -0x6b,0xe2,0x82,0x29,0x37,0x52,0xe6,0xbd,0x23,0x70,0xc7,0xe3,0x4c,0x9e,0xde,0x3b, -0x98,0xda,0x39,0x51,0x64,0x8d,0x86,0x19,0x1d,0x72,0x08,0xf4,0x22,0xa4,0xa2,0x95, -0x93,0xdc,0x2c,0x50,0xd2,0x74,0x2b,0x0d,0x06,0x29,0x62,0xd3,0xed,0x21,0xb3,0x8a, -0x49,0x0c,0xad,0x1c,0x08,0x15,0x4b,0x10,0x01,0x38,0x1f,0x41,0x57,0xe8,0xa2,0x94, -0x62,0xa2,0xad,0x15,0x64,0x24,0x92,0xd1,0x05,0x14,0x51,0x54,0x30,0xae,0x67,0xe2, -0x24,0xfe,0x47,0x85,0x2f,0x5b,0xa1,0xdb,0x8a,0xe9,0xab,0x88,0xf8,0xbd,0x71,0xf6, -0x7f,0x07,0xdc,0x1c,0xe3,0x3f,0xe1,0x5c,0xb8,0xa9,0x72,0xd0,0x9b,0xf2,0x66,0x35, -0x9d,0xa9,0xc9,0x9f,0x08,0x78,0xa6,0x5d,0xfa,0x9d,0xe3,0x67,0xf8,0xcd,0x79,0xb7, -0xc3,0x9b,0x15,0xd7,0x3f,0x6a,0xdf,0x86,0x16,0x6f,0xc8,0x1a,0xd4,0x73,0xe3,0xde, -0x25,0x69,0x47,0xea,0x95,0xdf,0x6b,0xaf,0xba,0x7b,0x86,0xf5,0x63,0x5c,0x9f,0xec, -0xe3,0x0b,0xea,0x3f,0xb6,0xaf,0xc3,0xb4,0x0b,0xb9,0x21,0x96,0xf6,0x66,0xf6,0x0b, -0x67,0x3e,0x0f,0xe6,0x45,0x7c,0x36,0x48,0xaf,0x56,0xe7,0xe4,0x38,0x15,0xed,0x33, -0x9a,0x5e,0xad,0x9f,0xab,0x7b,0x68,0xa5,0xcd,0x15,0xfa,0x21,0xfb,0x08,0xb4,0x51, -0x45,0x22,0xc4,0xcd,0x7c,0xcb,0xfb,0x60,0xf8,0xbc,0xee,0xd1,0xfc,0x33,0x0b,0xe0, -0x1c,0xdf,0x5c,0x80,0x4f,0xba,0xc6,0x3e,0x9f,0x7c,0xfe,0x02,0xbe,0x97,0x95,0xc4, -0x68,0xce,0xc4,0x2a,0xa8,0x24,0x92,0x70,0x00,0xaf,0xcf,0xaf,0x89,0xbe,0x2c,0x93, -0xc6,0xfe,0x3c,0xd6,0x35,0x56,0x72,0xf1,0x4b,0x39,0x8e,0x01,0x9c,0x85,0x89,0x7e, -0x54,0xc7,0xe0,0x33,0xf8,0xd7,0xce,0x67,0x98,0x8f,0x63,0x86,0xf6,0x6b,0x79,0x69, -0xf2,0xea,0x7c,0xc7,0x10,0x62,0x7d,0x96,0x17,0xd9,0x47,0x79,0xbb,0x7c,0xba,0x9e, -0x89,0xfb,0x2d,0x78,0x47,0xfb,0x6b,0xc6,0x8d,0xa9,0xcb,0x1e,0xe8,0x2c,0x17,0x70, -0x27,0xa6,0xf3,0xd2,0xbe,0xc4,0x1d,0x2b,0xca,0x3f,0x67,0x0f,0x08,0xff,0x00,0xc2, -0x37,0xf0,0xfe,0x09,0xe4,0x4d,0xb7,0x17,0xc7,0xce,0x62,0x47,0x38,0xed,0x5e,0xaf, -0x5d,0x19,0x3e,0x1f,0xd8,0x61,0x63,0x7d,0xe5,0xab,0xf9,0xff,0x00,0xc0,0x3d,0x0c, -0xab,0x0d,0xf5,0x6c,0x24,0x62,0xf7,0x7a,0xb1,0x68,0xa2,0x8a,0xf6,0xcf,0x5c,0x29, -0x09,0xa5,0xa4,0xc5,0x00,0x7f,0x37,0xdf,0xb5,0x6f,0x8c,0xaf,0x3c,0x7d,0xfb,0x4a, -0x7c,0x4c,0xd6,0xef,0x9c,0xc9,0x34,0xda,0xfd,0xe4,0x28,0x4f,0x55,0x8a,0x29,0x4c, -0x51,0x2f,0xe1,0x1c,0x68,0x3f,0x0a,0xfd,0x53,0xfd,0x82,0x7f,0x6c,0xcf,0x83,0xf6, -0x1f,0xb3,0x47,0x85,0xfc,0x31,0xa9,0xf8,0xa7,0x4c,0xf0,0xae,0xbb,0xe1,0xbb,0x13, -0x6f,0x77,0xa7,0x6a,0x93,0xad,0xb1,0x99,0x94,0xb3,0x19,0x62,0x67,0x20,0x49,0xbf, -0x24,0xe0,0x1c,0xe4,0x90,0x47,0x4a,0xf8,0x47,0xfe,0x0a,0x39,0xfb,0x2b,0x78,0x83, -0xe0,0x87,0xc7,0x0f,0x10,0xf8,0xa2,0x1d,0x3e,0x69,0xfc,0x11,0xe2,0x7b,0xf9,0x75, -0x1b,0x2d,0x4a,0x35,0xdd,0x1c,0x32,0xca,0xdb,0xe5,0x82,0x4c,0x0f,0x91,0x83,0xb3, -0x6d,0xcf,0x55,0x23,0x07,0x39,0x03,0xe4,0x43,0xc7,0x19,0xaa,0x22,0xf6,0x67,0xaf, -0x6b,0x7a,0xcd,0xcf,0xed,0x4b,0xfb,0x51,0x5c,0xea,0x1a,0x95,0xf2,0x58,0x0f,0x17, -0x78,0x83,0x32,0x5d,0x5d,0xca,0xa8,0xb6,0x76,0xaf,0x20,0x03,0x73,0x36,0x00,0x11, -0xc2,0x00,0xe7,0xfb,0x95,0xfa,0x69,0xfb,0x5b,0xff,0x00,0xc1,0x44,0x3e,0x1f,0x7c, -0x15,0xf8,0x50,0xfe,0x01,0xf8,0x43,0xac,0xda,0x78,0x83,0xc4,0xc7,0x4f,0x5d,0x32, -0xd2,0xe7,0x49,0x71,0x2d,0xa6,0x95,0x08,0x4f,0x2c,0x48,0x65,0x19,0x57,0x90,0x28, -0xf9,0x55,0x49,0xc1,0xc1,0x38,0xc6,0x0f,0xe3,0x6f,0x5a,0xf5,0x3f,0x80,0xff,0x00, -0xb3,0x47,0xc4,0x3f,0xda,0x3b,0xc4,0x91,0x69,0x3e,0x0b,0xd0,0x66,0xbc,0x8b,0x78, -0x17,0x3a,0x9c,0xe0,0xc7,0x65,0x6a,0x33,0xcb,0x4b,0x2e,0x30,0x31,0x9f,0xba,0x32, -0xc7,0xb0,0x34,0x09,0x17,0x3f,0x65,0xcf,0x80,0x7a,0xc7,0xed,0x37,0xf1,0xb7,0x43, -0xf0,0x8d,0x92,0xcc,0x6d,0x27,0x9b,0xed,0x3a,0xb5,0xf8,0xc9,0xfb,0x35,0xa2,0x90, -0x65,0x90,0x9e,0x79,0x3f,0x75,0x73,0xd5,0x99,0x6b,0xfa,0x2e,0xd2,0xb4,0xcb,0x6d, -0x13,0x4b,0xb4,0xd3,0xec,0xa2,0x58,0x2c,0xed,0x21,0x48,0x21,0x89,0x06,0x02,0x22, -0xa8,0x55,0x03,0xe8,0x00,0xaf,0x0f,0xfd,0x90,0xff,0x00,0x64,0x5f,0x0d,0x7e,0xc9, -0xbe,0x00,0x1a,0x4e,0x98,0xcb,0xaa,0x78,0x86,0xfb,0x6c,0x9a,0xb6,0xb6,0xf1,0xed, -0x7b,0x99,0x00,0xe1,0x50,0x73,0xb2,0x35,0xe7,0x6a,0xe4,0xf5,0x24,0x92,0x6b,0xdd, -0x2f,0x6f,0x22,0xb0,0xb4,0x9e,0xe6,0x76,0xd9,0x0c,0x31,0xb4,0x8e,0xc7,0xb2,0x81, -0x92,0x7f,0x2a,0x87,0x24,0x95,0xd9,0x5b,0x23,0xe7,0x6f,0xda,0x2f,0xc4,0x7f,0xda, -0x1e,0x26,0xb5,0xd2,0xa3,0x6c,0xc7,0x61,0x16,0xe7,0x19,0xe3,0xcc,0x7c,0x1f,0xd1, -0x42,0xfe,0x75,0xe4,0x95,0xa1,0xe2,0x0d,0x62,0x4f,0x10,0x6b,0x97,0xfa,0x94,0xbf, -0x7e,0xea,0x66,0x97,0x1e,0x80,0x9e,0x07,0xe0,0x30,0x3f,0x0a,0xcf,0xaf,0xc4,0x31, -0xf8,0x87,0x8a,0xc5,0x4e,0xb7,0x77,0xf8,0x74,0x3e,0x4a,0xb5,0x4f,0x6b,0x51,0xcc, -0x28,0xa2,0xba,0x5f,0x87,0x1e,0x1f,0xff,0x00,0x84,0x9f,0xc6,0xba,0x5d,0x8b,0x2e, -0xe8,0x4c,0xa2,0x49,0x81,0xe9,0xb1,0x7e,0x66,0x07,0xeb,0x8c,0x7e,0x35,0xcb,0x46, -0x94,0xab,0x54,0x8d,0x28,0xef,0x27,0x6f,0xbc,0xce,0x31,0x73,0x92,0x8a,0xea,0x61, -0x49,0xa7,0xdd,0x43,0xfe,0xb2,0xda,0x64,0xff,0x00,0x7a,0x32,0x2a,0xb9,0x18,0x35, -0xf7,0x40,0x41,0x80,0x36,0x8c,0x56,0x37,0x88,0x3c,0x17,0xa3,0x78,0x9e,0xd9,0xe1, -0xd4,0x34,0xe8,0x27,0xdc,0x31,0xe6,0x6c,0x02,0x45,0xf7,0x0c,0x39,0x15,0xf7,0x15, -0x38,0x56,0x49,0x5e,0x9d,0x5b,0xbf,0x35,0xff,0x00,0x04,0xf5,0xe5,0x97,0x3b,0x7b, -0xb2,0x3e,0x30,0xa2,0xba,0x4f,0x88,0x3e,0x0e,0x97,0xc0,0xfe,0x26,0xb8,0xd3,0x5d, -0x8c,0x90,0xe0,0x4b,0x04,0xad,0xd5,0xe3,0x3d,0x09,0xf7,0x18,0x20,0xfb,0x8a,0xe6, -0xeb,0xe1,0xaa,0xd2,0x9d,0x1a,0x8e,0x9c,0xd5,0x9a,0xd0,0xf2,0x25,0x17,0x06,0xe2, -0xfa,0x05,0x74,0x7e,0x0d,0xf1,0xde,0xab,0xe0,0x9d,0x4a,0x3b,0x8b,0x2b,0x87,0x36, -0xfb,0x81,0x96,0xd5,0x98,0xf9,0x72,0xaf,0x70,0x47,0x63,0xef,0xd4,0x57,0x39,0x45, -0x14,0xaa,0xce,0x8c,0xd5,0x4a,0x6e,0xcd,0x04,0x64,0xe0,0xf9,0xa3,0xb9,0xf7,0x06, -0x95,0xa8,0xc3,0xab,0xe9,0xb6,0xd7,0xb6,0xed,0xba,0x0b,0x88,0xd6,0x54,0x3e,0xc4, -0x64,0x7f,0x3a,0xb7,0x5c,0x27,0xc1,0x2b,0xef,0xb7,0x7c,0x37,0xd2,0x49,0x39,0x68, -0x83,0xc2,0x7f,0xe0,0x2e,0x40,0xfd,0x31,0x5d,0xdd,0x7e,0xe5,0x86,0xab,0xed,0xe8, -0x42,0xaf,0x74,0x9f,0xde,0x8f,0xaf,0xa7,0x2e,0x78,0x29,0x77,0x0a,0x28,0xa2,0xba, -0x4d,0x02,0x8a,0x28,0xa0,0x04,0x27,0x00,0xd7,0xc7,0x1f,0x11,0x35,0xcf,0xf8,0x48, -0xbc,0x6d,0xac,0x5f,0x2b,0x07,0x8d,0xa7,0x64,0x8c,0x8e,0x85,0x17,0xe5,0x53,0xf8, -0x80,0x0f,0xe3,0x5f,0x54,0x78,0xf7,0x5d,0xff,0x00,0x84,0x73,0xc1,0xfa,0xb6,0xa0, -0xae,0x12,0x48,0xad,0xdb,0xcb,0x2d,0xd3,0x79,0x18,0x4f,0xfc,0x78,0x8a,0xf8,0xcc, -0x0c,0x0c,0x57,0xc0,0x71,0x4d,0x7d,0x29,0xd0,0x5e,0xaf,0xf2,0x5f,0xa9,0xe2,0xe6, -0x33,0xf8,0x60,0x2d,0x14,0x51,0x5f,0x9f,0x1e,0x20,0x57,0xd8,0xdf,0x0e,0xb4,0x4f, -0xec,0x0f,0x04,0xe8,0xf6,0x44,0x61,0xd6,0xdd,0x5d,0xc7,0xfb,0x4d,0xf3,0x37,0xea, -0xc6,0xbe,0x53,0xf0,0x5e,0x91,0xfd,0xbf,0xe2,0xcd,0x27,0x4f,0xc6,0x56,0x7b,0x94, -0x0e,0x3f,0xd9,0x07,0x2d,0xfa,0x03,0x5f,0x68,0x28,0x01,0x40,0x1c,0x01,0x5f,0x7f, -0xc2,0xd4,0x3f,0x89,0x5d,0xfa,0x7e,0xaf,0xf4,0x3d,0xac,0xba,0x1f,0x14,0xfe,0x41, -0x4b,0x45,0x15,0xfa,0x09,0xed,0x85,0x79,0xb7,0xc7,0xed,0x63,0xfb,0x2f,0xe1,0xfc, -0xf0,0xa9,0x2b,0x25,0xf4,0xc9,0x6e,0xa4,0x7a,0x67,0x73,0x7e,0x88,0x47,0xe3,0x5e, -0x93,0x5e,0x17,0xfb,0x4e,0x6a,0x0e,0xb1,0xe8,0x36,0x4a,0x7e,0x46,0x32,0xcc,0xc3, -0xdc,0x6d,0x03,0xf9,0xb5,0x78,0xd9,0xc5,0x57,0x47,0x01,0x56,0x4b,0xb5,0xbe,0xfd, -0x0e,0x5c,0x54,0xb9,0x28,0xc9,0x9e,0x11,0x45,0x14,0x57,0xe3,0x07,0xca,0x05,0x5e, -0xd0,0xb4,0xc6,0xd6,0xb5,0xab,0x0d,0x3d,0x0e,0x1a,0xea,0x74,0x87,0x3e,0x9b,0x88, -0x19,0xaa,0x35,0xda,0x7c,0x1b,0xb4,0x5b,0xdf,0x89,0x3a,0x2a,0x3f,0xdd,0x57,0x79, -0x3f,0x15,0x8d,0x88,0xfd,0x40,0xae,0xac,0x2d,0x3f,0x6d,0x5e,0x14,0xdf,0x56,0x97, -0xe2,0x69,0x4e,0x3c,0xd3,0x8c,0x7c,0xcf,0xac,0xad,0xa0,0x8e,0xd6,0xde,0x28,0x62, -0x50,0x91,0x46,0xa1,0x11,0x47,0x40,0x00,0xc0,0x02,0xa5,0xa4,0x14,0xb5,0xfb,0xaa, -0x49,0x2b,0x23,0xec,0x42,0x8a,0x28,0xa6,0x01,0x45,0x14,0x50,0x04,0x73,0x38,0x86, -0x27,0x76,0x38,0x55,0x04,0x93,0xf8,0x57,0xc3,0xd7,0x93,0x7d,0xa6,0xf2,0x79,0xbf, -0xe7,0xa4,0x8c,0xff,0x00,0x99,0xcd,0x7d,0x79,0xf1,0x37,0x5a,0x5d,0x07,0xc0,0xba, -0xc5,0xd1,0x38,0x73,0x01,0x8a,0x3c,0x1e,0x77,0x3f,0xca,0x3f,0x9e,0x7f,0x0a,0xf8, -0xf6,0xbf,0x3a,0xe2,0x9a,0xa9,0xce,0x95,0x25,0xd1,0x36,0x78,0x59,0x8c,0xb5,0x8c, -0x42,0x8a,0x28,0xaf,0x84,0x3c,0x70,0xaf,0xa1,0xff,0x00,0x66,0x98,0x36,0xf8,0x6b, -0x56,0x97,0x04,0x6f,0xbb,0x0b,0x9f,0xa2,0x0f,0xf1,0xaf,0x9e,0x3a,0xd7,0xd5,0x5f, -0x02,0xf4,0xa6,0xd3,0x3e,0x1d,0x58,0x3b,0xae,0xd9,0x2e,0x9d,0xee,0x08,0xf6,0x27, -0x0b,0xff,0x00,0x8e,0x81,0x5f,0x55,0xc3,0x74,0xdc,0xf1,0xdc,0xdd,0x93,0xff,0x00, -0x23,0xd1,0xc0,0x46,0xf5,0xaf,0xd9,0x1e,0x81,0x8e,0x2b,0xc3,0xbf,0x68,0x6f,0x02, -0xcd,0x71,0xe4,0xf8,0x8e,0xce,0x33,0x20,0x89,0x04,0x57,0x61,0x47,0x21,0x73,0xf2, -0xbf,0xe1,0x9c,0x1f,0xc3,0xde,0xbd,0xc4,0x53,0x66,0x85,0x27,0x8d,0xa3,0x91,0x16, -0x44,0x71,0xb5,0x95,0x86,0x41,0x1e,0x86,0xbf,0x46,0xc7,0x60,0xe1,0x8e,0xa1,0x2a, -0x33,0xeb,0xf8,0x33,0xdd,0xad,0x49,0x56,0x83,0x83,0x3e,0x17,0xa2,0xbd,0xc7,0xe2, -0x1f,0xec,0xff,0x00,0x20,0x96,0x5b,0xff,0x00,0x0d,0x60,0xa3,0x65,0x9b,0x4f,0x76, -0xc1,0x53,0xff,0x00,0x4c,0xd8,0xff,0x00,0x23,0xef,0xcf,0x41,0x5e,0x2d,0x7f,0xa7, -0x5d,0x69,0x57,0x2f,0x6f,0x79,0x6f,0x2d,0xac,0xe9,0xf7,0xa3,0x95,0x0a,0xb0,0xfc, -0x0d,0x7e,0x43,0x8c,0xcb,0xf1,0x18,0x19,0xb8,0xd5,0x8e,0x9d,0xfa,0x33,0xe6,0x2a, -0xd0,0x9d,0x17,0x69,0x22,0xbd,0x14,0x51,0x5e,0x69,0x80,0x52,0xab,0x14,0x60,0xca, -0x4a,0xb0,0x39,0x04,0x1c,0x11,0x49,0x45,0x34,0xed,0xaa,0x03,0xab,0xd1,0xbe,0x29, -0xf8,0xa7,0x41,0xda,0xb6,0xba,0xcd,0xc3,0x46,0x08,0xfd,0xdd,0xc1,0xf3,0x94,0x8f, -0x4f,0x9b,0x24,0x0f,0xa6,0x2b,0xd1,0x34,0x0f,0xda,0x56,0x65,0x65,0x4d,0x6b,0x4a, -0x57,0x52,0x79,0x9a,0xc9,0x88,0x20,0x7f,0xb8,0xc7,0x9f,0xfb,0xe8,0x57,0x88,0x51, -0x5e,0xae,0x1f,0x35,0xc6,0x61,0xbf,0x87,0x51,0xdb,0xb3,0xd5,0x7e,0x27,0x4c,0x31, -0x35,0x69,0xfc,0x32,0x3e,0xc3,0xf0,0xc7,0xc4,0x9f,0x0f,0xf8,0xb8,0x2a,0xe9,0xf7, -0xe8,0x6e,0x08,0xcf,0xd9,0xa5,0xf9,0x25,0x1f,0xf0,0x13,0xd7,0xf0,0xcd,0x74,0xf9, -0xaf,0x85,0x91,0xda,0x37,0x57,0x46,0x2a,0xca,0x72,0x18,0x1c,0x10,0x6b,0xd6,0x7e, -0x1c,0xfc,0x75,0xbe,0xd1,0x25,0x8a,0xc7,0x5e,0x77,0xbf,0xd3,0xce,0x14,0x5c,0x9e, -0x66,0x8b,0xeb,0xfd,0xe1,0xf5,0xe7,0xeb,0xd2,0xbe,0xcb,0x01,0xc4,0xb0,0xaa,0xd5, -0x3c,0x52,0xe5,0x7d,0xd6,0xdf,0x3e,0xc7,0xab,0x47,0x1e,0xa4,0xf9,0x6a,0x2b,0x1f, -0x48,0xd1,0x50,0x59,0x5e,0xc1,0xa8,0x5a,0xc5,0x73,0x6d,0x2a,0xcf,0x6f,0x2a,0x87, -0x8e,0x44,0x39,0x56,0x53,0xd0,0x83,0x53,0xd7,0xdb,0xa6,0x9a,0xba,0x3d,0x7d,0xc2, -0x8a,0x28,0xa6,0x01,0x5e,0x5f,0xf1,0xfa,0xf4,0xda,0xf8,0x48,0xa8,0xfe,0x2c,0xd7, -0xa8,0x57,0x8a,0xfe,0xd2,0xd7,0x5e,0x57,0x87,0xe3,0x4c,0xff,0x00,0x09,0x38,0xaf, -0x2f,0x33,0x97,0x2e,0x12,0xa3,0xf2,0x38,0xb1,0xb2,0xe5,0xc3,0xcd,0xf9,0x1f,0x18, -0x6b,0x32,0x65,0x65,0x6e,0xe4,0x93,0x55,0xff,0x00,0x62,0x7b,0x51,0xaa,0x7e,0xd9, -0x36,0xcf,0x8c,0x8b,0x2d,0x16,0xfa,0xe7,0xe8,0x49,0x8a,0x3c,0xff,0x00,0xe4,0x43, -0xf9,0xd1,0xad,0xbe,0xdb,0x69,0x0f,0xb1,0xad,0x6f,0xf8,0x27,0x95,0x9f,0xdb,0x3f, -0x6a,0x3f,0x15,0x5e,0xe3,0x22,0xd7,0xc3,0x72,0xc5,0xbb,0xd0,0xc9,0x73,0x01,0xff, -0x00,0xda,0x66,0xbe,0x63,0x21,0x8f,0xbd,0x73,0xf2,0xcc,0x8d,0x73,0xe7,0x09,0xf6, -0x4c,0xfd,0x29,0xdb,0x45,0x1c,0xd1,0x5f,0x79,0x73,0xf5,0xeb,0x21,0xd4,0x51,0x49, -0x48,0xa3,0xcd,0x3f,0x68,0x5f,0x18,0x9f,0x07,0xfc,0x31,0xd4,0xa4,0x85,0xf6,0x5d, -0xdf,0x62,0xc6,0x03,0xe8,0x5f,0x3b,0x8f,0xe0,0x81,0x8f,0xd4,0x0a,0xf8,0xeb,0xc0, -0x3e,0x1d,0x93,0xc5,0x3e,0x2c,0xd3,0x74,0xd8,0xd7,0x3e,0x6c,0xca,0x1b,0xd8,0x67, -0x9a,0xf5,0x7f,0xda,0xdb,0xc6,0x1f,0xda,0xbe,0x30,0xb2,0xd0,0x61,0x7c,0xc1,0xa6, -0xc3,0xe6,0x4a,0x01,0xe0,0xca,0xfe,0xbe,0xe1,0x40,0xff,0x00,0xbe,0xab,0x43,0xf6, -0x4b,0xf0,0x7f,0xda,0xb5,0x7b,0xdd,0x76,0x64,0xca,0x5b,0x2f,0x97,0x11,0x3f,0xde, -0x3d,0x6b,0xe0,0xb1,0xcd,0xe6,0x19,0x8c,0x68,0x2d,0x96,0x9f,0xe6,0x7c,0x06,0x2d, -0xbc,0xc7,0x35,0x54,0x57,0xc3,0x1d,0x3e,0xed,0x59,0xf5,0x0e,0x9f,0x65,0x1e,0x9d, -0x63,0x6f,0x6d,0x12,0x85,0x8e,0x14,0x08,0xa0,0x7a,0x01,0x8a,0xb3,0x48,0x3a,0x52, -0xd7,0xde,0x24,0x92,0xb2,0x3e,0xf9,0x2b,0x2b,0x20,0xa2,0x8a,0x29,0x8c,0x2b,0xf2, -0xdf,0xf6,0xd7,0xff,0x00,0x82,0x9b,0x78,0xf3,0xe1,0x1f,0xed,0x0d,0xa9,0xf8,0x43, -0xe1,0xcc,0x9a,0x4b,0xe8,0xfa,0x0c,0x49,0x69,0x7d,0xfd,0xa1,0x69,0xf6,0x81,0x3d, -0xe6,0x37,0x49,0x82,0x19,0x59,0x42,0x6e,0x09,0x80,0x7a,0xab,0x57,0xea,0x2c,0xb2, -0xa4,0x31,0xb3,0xc8,0xea,0x88,0xa0,0x96,0x66,0x38,0x00,0x7a,0x93,0x5f,0x84,0x3f, -0xf0,0x51,0x9f,0xd9,0xb7,0xc4,0x9f,0x0a,0xbe,0x3b,0xf8,0xa7,0xc5,0xe2,0xde,0x4d, -0x4b,0xc1,0xbe,0x27,0xd4,0x65,0xd4,0xad,0x75,0x8b,0x71,0xbe,0x28,0xe5,0x99,0x8b, -0xc9,0x04,0x84,0x67,0x63,0x2b,0xb3,0x63,0x38,0xdc,0xb8,0x23,0xb8,0x0d,0x09,0x9f, -0x6d,0x7e,0xc1,0xff,0x00,0xb5,0xcf,0xc4,0xef,0xdb,0x5b,0xc4,0xde,0x24,0xd0,0xbc, -0x73,0xe1,0x9f,0x07,0xcf,0xe0,0x9d,0x2e,0xc5,0x5f,0x51,0x78,0x74,0xf9,0x77,0x4d, -0x2c,0x84,0x88,0x62,0xdb,0x24,0xce,0x9c,0xec,0x91,0x89,0xdb,0xc0,0x4c,0x63,0x90, -0x47,0xb1,0xf8,0xbf,0xfe,0x09,0x9f,0xfb,0x3c,0xf8,0xc2,0xe9,0xae,0x64,0xf0,0x2a, -0xe9,0x13,0x39,0x25,0x8e,0x91,0x79,0x35,0xb2,0x1c,0xff,0x00,0xb0,0x1b,0x68,0xfc, -0x00,0xaf,0x84,0xbf,0xe0,0x93,0xbf,0xb5,0x1f,0x82,0x3e,0x09,0xea,0xfe,0x2e,0xf0, -0x97,0x8d,0xb5,0x2b,0x7f,0x0f,0x45,0xe2,0x09,0x2d,0xee,0x2c,0xb5,0x6b,0xaf,0x92, -0x01,0x24,0x61,0xd5,0xa2,0x96,0x4e,0x88,0x08,0x60,0x54,0x9e,0x33,0xbf,0x24,0x64, -0x67,0xf5,0xef,0x4a,0xf1,0x66,0x89,0xad,0xdb,0x47,0x71,0xa7,0xeb,0x36,0x17,0xf0, -0x48,0x01,0x49,0x6d,0xae,0x92,0x45,0x61,0xec,0x54,0x90,0x68,0x04,0x7c,0xe9,0xe1, -0x0f,0xf8,0x26,0x9f,0xec,0xf1,0xe0,0xeb,0x85,0xb8,0x8f,0xc0,0x51,0xea,0xf3,0x29, -0x05,0x5b,0x58,0xbc,0x9a,0xe5,0x47,0xfc,0x01,0x9f,0x69,0xfc,0x41,0xaf,0xa4,0x34, -0x2f,0x0f,0x69,0x7e,0x18,0xd2,0xe0,0xd3,0x74,0x7d,0x3a,0xd7,0x4a,0xd3,0xe0,0x1b, -0x62,0xb4,0xb2,0x85,0x61,0x89,0x07,0xa0,0x55,0x00,0x0a,0xd0,0x0c,0x18,0x02,0x08, -0x20,0xf7,0x14,0x64,0x1a,0x43,0x16,0xbc,0xdb,0xe3,0xcf,0x88,0xff,0x00,0xb1,0x3c, -0x0d,0x35,0xb4,0x6d,0x89,0xf5,0x17,0x16,0xeb,0x83,0xc8,0x5e,0xae,0x7e,0x98,0x18, -0xff,0x00,0x81,0x0a,0xf4,0x83,0xc0,0xaf,0x99,0x7f,0x68,0x4f,0x10,0x9d,0x5f,0xc6, -0x69,0xa7,0xa3,0x66,0x1d,0x3a,0x30,0x84,0x7f,0xd3,0x46,0xc3,0x37,0xe9,0xb4,0x7e, -0x15,0xe0,0xe7,0x78,0x9f,0xaa,0xe0,0xa6,0xd6,0xf2,0xd1,0x7c,0xff,0x00,0xe0,0x1c, -0x58,0xba,0x9e,0xce,0x93,0xf3,0x3c,0xbe,0x8a,0x28,0xaf,0xc7,0x4f,0x97,0x0a,0xf7, -0x2f,0xd9,0xaf,0xc3,0xd9,0x93,0x55,0xd6,0xa4,0x5c,0xe3,0x16,0xb1,0x1f,0xfc,0x79, -0xff,0x00,0xf6,0x5a,0xf0,0xda,0xfa,0xff,0x00,0xe1,0x77,0x87,0x8f,0x86,0x7c,0x0f, -0xa5,0x5a,0x32,0x14,0x99,0xa2,0x13,0x4c,0x0f,0x50,0xef,0xf3,0x10,0x7e,0x99,0xc7, -0xe1,0x5f,0x55,0xc3,0x98,0x6f,0x6d,0x8c,0xf6,0x8f,0x68,0x2b,0xfc,0xf6,0x47,0xa3, -0x80,0xa7,0xcf,0x57,0x9b,0xb1,0xd6,0x51,0x49,0x4b,0x5f,0xab,0x1f,0x48,0x78,0x4f, -0xed,0x35,0xa7,0x28,0x3a,0x1d,0xfa,0xaf,0xcc,0x7c,0xd8,0x5d,0xbd,0x7e,0xe9,0x5f, -0xfd,0x9b,0xf3,0xaf,0x0a,0xaf,0xa3,0xff,0x00,0x69,0x38,0x03,0xf8,0x3a,0xc2,0x5c, -0x72,0x97,0xca,0x33,0xec,0x63,0x7f,0xf0,0x15,0xf3,0x85,0x7e,0x47,0xc4,0x30,0x50, -0xcc,0x26,0xd7,0x54,0x9f,0xe0,0x7c,0xce,0x39,0x5a,0xbb,0x0a,0x28,0xa2,0xbe,0x6c, -0xe0,0x3e,0x92,0xfd,0x9b,0xef,0x84,0xfe,0x0c,0xbc,0xb6,0xce,0x5a,0x0b,0xc6,0xe3, -0xd1,0x59,0x54,0x8f,0xd7,0x35,0xeb,0x35,0xe1,0x1f,0xb3,0x1d,0xd0,0x0d,0xe2,0x0b, -0x62,0xdc,0x91,0x0c,0x8a,0xbf,0xf7,0xd8,0x27,0xf9,0x57,0xbb,0x66,0xbf,0x64,0xc9, -0x6a,0x7b,0x4c,0x05,0x27,0xd9,0x5b,0xee,0x76,0x3e,0xa7,0x09,0x2e,0x6a,0x11,0x16, -0x8a,0x28,0xaf,0x70,0xec,0x0a,0x28,0xa4,0x3d,0x28,0x03,0xc8,0x3f,0x69,0x0d,0x6f, -0xec,0x9e,0x19,0xb1,0xd3,0x11,0x80,0x7b,0xd9,0xf7,0xb0,0xf5,0x44,0xe7,0xff,0x00, -0x42,0x2b,0xf9,0x57,0xce,0x95,0xe9,0x7f,0xb4,0x06,0xb8,0x75,0x4f,0x1e,0x3d,0xa0, -0x20,0xc5,0x61,0x0a,0xc2,0x30,0x73,0xf3,0x1f,0x99,0xbf,0xf4,0x20,0x3f,0x0a,0xf3, -0x4a,0xfc,0x77,0x3b,0xaf,0xf5,0x8c,0x74,0xda,0xd9,0x69,0xf7,0x7f,0xc1,0x3e,0x5b, -0x19,0x3e,0x7a,0xcf,0xcb,0x40,0xa2,0x8a,0x2b,0xc1,0x38,0xcf,0x55,0xfd,0x9d,0x74, -0x53,0x7f,0xe3,0x2b,0x8b,0xf6,0x40,0x62,0xb1,0xb7,0x24,0x37,0xa3,0xb9,0xda,0x3f, -0x40,0xf5,0xf4,0xb5,0x79,0x2f,0xec,0xe7,0xa2,0x7d,0x87,0xc1,0xf7,0x3a,0x83,0xc6, -0x04,0x97,0xd7,0x07,0x6b,0xf7,0x31,0xa7,0xca,0x07,0xfd,0xf5,0xbf,0xf3,0xaf,0x5a, -0xaf,0xd8,0x32,0x2a,0x1e,0xc3,0x01,0x0b,0xef,0x2d,0x7e,0xff,0x00,0xf8,0x16,0x3e, -0xa3,0x07,0x0e,0x4a,0x2b,0xcf,0x50,0xa2,0x8a,0x2b,0xe8,0x0e,0xd0,0xaf,0x00,0xfd, -0xa6,0xc6,0x35,0x3d,0x04,0xf6,0x30,0xcb,0xfc,0xd6,0xbd,0xfe,0xbc,0x67,0xf6,0x97, -0xd2,0xbc,0xed,0x0f,0x49,0xd4,0x42,0x92,0x6d,0xe7,0x68,0x4e,0x07,0x00,0x3a,0xe7, -0x27,0xf1,0x41,0xf9,0xd7,0x81,0x9e,0xc1,0xcf,0x2f,0xa8,0x97,0x93,0xfc,0x4e,0x2c, -0x62,0xbd,0x09,0x1f,0x3d,0x51,0x45,0x15,0xf8,0xf1,0xf2,0xe1,0x5d,0xa7,0xc1,0xcb, -0xc4,0xb1,0xf8,0x93,0xa2,0xbb,0x9c,0x2b,0xc8,0xf1,0x7e,0x2c,0x8c,0xa3,0xf5,0x22, -0xb8,0xba,0xb1,0xa7,0xdf,0x4d,0xa5,0xdf,0xdb,0x5e,0x5b,0xb6,0xd9,0xed,0xe4,0x59, -0x50,0xfa,0x32,0x9c,0x8f,0xe5,0x5d,0x38,0x6a,0xbe,0xc2,0xbc,0x2a,0xbf,0xb2,0xd3, -0xfb,0x99,0x74,0xe5,0xc9,0x35,0x2e,0xcc,0xfb,0x88,0x52,0xd6,0x4f,0x86,0x3c,0x43, -0x6d,0xe2,0x9d,0x0e,0xcf,0x53,0xb4,0x6c,0xc5,0x70,0x81,0xb6,0xe7,0x25,0x1b,0xba, -0x9f,0x70,0x72,0x3f,0x0a,0xd6,0xaf,0xdd,0x21,0x38,0xce,0x2a,0x71,0x77,0x4c,0xfb, -0x14,0xd3,0x57,0x41,0x45,0x14,0x55,0x8c,0x28,0xa4,0xc8,0xae,0x4f,0xe2,0x2f,0x8f, -0xed,0x3c,0x07,0xa2,0xb5,0xcc,0x84,0x4b,0x7b,0x28,0x2b,0x6d,0x6d,0x9e,0x5d,0xbd, -0x4f,0xfb,0x23,0xb9,0xff,0x00,0x1a,0xc6,0xb5,0x68,0x50,0xa6,0xea,0xd4,0x76,0x48, -0x89,0x49,0x41,0x39,0x4b,0x63,0xcb,0x7f,0x68,0xdf,0x17,0x2d,0xc5,0xcd,0x9f,0x87, -0xad,0xdf,0x3e,0x41,0x17,0x37,0x38,0xec,0xc4,0x10,0x8b,0xf9,0x12,0x7f,0x11,0x5e, -0x27,0x56,0x75,0x2d,0x46,0xe3,0x56,0xbf,0x9e,0xf6,0xee,0x53,0x35,0xcc,0xee,0x64, -0x91,0xcf,0x72,0x6a,0xb5,0x7e,0x2d,0x98,0x62,0xde,0x3b,0x13,0x2a,0xcf,0xae,0xde, -0x9d,0x0f,0x94,0xaf,0x55,0xd6,0x9b,0x98,0x51,0x45,0x15,0xe7,0x18,0x16,0x74,0xcd, -0x3e,0x6d,0x5b,0x51,0xb5,0xb2,0xb6,0x5d,0xf7,0x17,0x32,0x2c,0x51,0xa9,0xe8,0x59, -0x8e,0x07,0xf3,0xaf,0xb5,0xb4,0x7d,0x3a,0x2d,0x1f,0x4a,0xb4,0xb1,0x80,0x62,0x1b, -0x68,0x96,0x14,0x1e,0xca,0x00,0x1f,0xca,0xbc,0x03,0xf6,0x78,0xf0,0x69,0xd4,0x75, -0xa9,0xb5,0xfb,0x84,0xff,0x00,0x47,0xb2,0x06,0x38,0x32,0x3e,0xf4,0xa4,0x72,0x7f, -0x05,0x3f,0x99,0xf6,0xaf,0xa2,0x87,0x4a,0xfd,0x3b,0x86,0xb0,0x8e,0x8d,0x09,0x62, -0x24,0xb5,0x9e,0xde,0x88,0xfa,0x0c,0xbe,0x97,0x2c,0x1c,0xdf,0x51,0x68,0xa4,0xcd, -0x2d,0x7d,0x91,0xea,0x88,0x46,0x6b,0x33,0x5b,0xf0,0xd6,0x97,0xe2,0x2b,0x63,0x06, -0xa5,0x61,0x05,0xec,0x7d,0x84,0xa8,0x09,0x1f,0x43,0xd4,0x7e,0x15,0xa9,0x45,0x4c, -0xa1,0x19,0xae,0x59,0x2b,0xa1,0x34,0x9a,0xb3,0x3c,0x7b,0x5f,0xfd,0x9b,0xf4,0x8b, -0xd6,0x32,0x69,0x57,0xd3,0xe9,0xac,0x4e,0x7c,0xb9,0x07,0x9d,0x18,0x1e,0x83,0x90, -0x47,0xe6,0x6b,0xce,0x35,0xdf,0x81,0x3e,0x2a,0xd1,0x81,0x78,0xad,0xa2,0xd4,0xe2, -0x19,0xf9,0xad,0x1f,0x2d,0x8e,0xdf,0x29,0xc1,0xfc,0xb3,0x5f,0x54,0x52,0x11,0x5f, -0x3d,0x88,0xc8,0x30,0x35,0xf5,0x51,0xe5,0x7e,0x5f,0xe5,0xb1,0xc3,0x3c,0x15,0x19, -0xf4,0xb7,0xa1,0xf0,0xe5,0xed,0x85,0xd6,0x9b,0x39,0x86,0xee,0xda,0x5b,0x59,0x87, -0x58,0xe6,0x42,0x8d,0xf9,0x1a,0x82,0xbe,0xdb,0xd5,0xf4,0x1d,0x3f,0x5d,0xb6,0x36, -0xfa,0x85,0x9c,0x37,0xb0,0x9f,0xe1,0x99,0x03,0x63,0xdc,0x7a,0x57,0x8b,0xfc,0x45, -0xf8,0x03,0x1d,0xbd,0xb4,0xda,0x8f,0x86,0xb7,0xe5,0x32,0xef,0x60,0xe7,0x76,0x47, -0x7d,0x84,0xf3,0x9f,0x63,0x9c,0xfa,0xf6,0xaf,0x91,0xc6,0xf0,0xe5,0x7a,0x11,0x75, -0x28,0x4b,0x9d,0x2e,0x9b,0x3f,0xf8,0x27,0x9b,0x57,0x01,0x38,0x2e,0x68,0x3b,0xa3, -0xc3,0x28,0xa0,0x8c,0x1c,0x74,0xa2,0xbe,0x40,0xf2,0xc2,0x8a,0x28,0xa0,0x0f,0x6f, -0xfd,0x9d,0xbc,0x6b,0x22,0xdc,0xcf,0xe1,0xcb,0x99,0x0b,0x46,0xca,0x67,0xb5,0xdc, -0x7e,0xe9,0x1f,0x79,0x07,0xb1,0xeb,0xf8,0x1a,0xf7,0xba,0xf8,0xf7,0xe1,0x7d,0xe3, -0xd8,0xfc,0x41,0xd0,0x64,0x8c,0xe0,0xb5,0xd2,0xc6,0x7e,0x8d,0xf2,0x9f,0xd1,0x8d, -0x7d,0x84,0x2b,0xf5,0x6e,0x1c,0xc4,0x4a,0xb6,0x13,0x92,0x6f,0xe1,0x76,0xf9,0x1f, -0x47,0x80,0xa8,0xe7,0x4a,0xcf,0xa0,0xb4,0x51,0x45,0x7d,0x51,0xe9,0x08,0x78,0xaf, -0x9f,0xbf,0x6a,0x3b,0xbd,0x96,0x51,0xc7,0x9e,0x89,0xd2,0xbe,0x81,0x35,0xf3,0x27, -0xed,0x4f,0x77,0xfe,0x90,0x23,0x07,0xf8,0x45,0x78,0x59,0xd4,0xb9,0x70,0x53,0x3c, -0xac,0xce,0x5c,0xb8,0x59,0xb3,0xe5,0x3f,0x11,0x3e,0xdb,0x19,0x4f,0xfb,0x26,0xbb, -0xef,0xf8,0x26,0x55,0x81,0xb9,0xf8,0x97,0xf1,0x53,0x53,0xed,0x0d,0xa5,0x8d,0xb0, -0x3f,0xef,0xbc,0xcd,0xff,0x00,0xb2,0x0a,0xf3,0x8f,0x16,0xc9,0xe5,0xe9,0xb3,0x9f, -0x45,0xaf,0x63,0xff,0x00,0x82,0x5b,0xdb,0x16,0xb7,0xf8,0xab,0x7d,0xb7,0x89,0x35, -0x1b,0x38,0x43,0x7a,0xec,0x8a,0x42,0x7f,0xf4,0x3a,0xf2,0xb2,0x28,0xe8,0xd9,0xf9, -0xdf,0x0d,0x47,0x9b,0x33,0x9c,0xbb,0x44,0xfb,0xb3,0x9a,0x29,0xd4,0x57,0xd9,0x1f, -0xac,0x85,0x52,0xd5,0xb5,0x28,0x74,0x9d,0x36,0xee,0xfa,0xe0,0xed,0x82,0xda,0x26, -0x99,0xcf,0xfb,0x2a,0x32,0x6a,0xed,0x78,0xaf,0xed,0x53,0xe3,0x0f,0xec,0x0f,0x87, -0xab,0xa5,0xc3,0x26,0xdb,0xad,0x5e,0x61,0x09,0x00,0xe0,0xf9,0x4b,0xf3,0x48,0x7e, -0x9f,0x75,0x7f,0xe0,0x55,0xcd,0x89,0xac,0xb0,0xf4,0x65,0x55,0xf4,0x47,0x26,0x2e, -0xba,0xc2,0xd0,0x9d,0x67,0xd1,0x1f,0x26,0x78,0x83,0x5a,0xb8,0xf1,0x6f,0x89,0x2f, -0xf5,0x4b,0x8c,0xb5,0xc5,0xf5,0xc3,0x4a,0x47,0xa6,0x4f,0x03,0xf0,0x18,0x1f,0x85, -0x7d,0xbd,0xf0,0x4b,0xc2,0x63,0xc2,0x3f,0x0f,0xf4,0xeb,0x76,0x4d,0xb3,0xcc,0x82, -0x69,0x78,0xc7,0x26,0xbe,0x43,0xf8,0x3b,0xe1,0x46,0xf1,0x77,0x8f,0x74,0xcb,0x3d, -0xbb,0xa1,0x59,0x04,0x92,0x9f,0x45,0x1c,0xd7,0xde,0xf0,0xc4,0xb0,0xc2,0x91,0xa0, -0xda,0xaa,0x00,0x03,0xda,0xbe,0x4f,0x21,0xa2,0xea,0x54,0xa9,0x89,0x9f,0xa7,0xdf, -0xab,0x3e,0x57,0x87,0xa8,0x39,0x73,0xe2,0xa7,0xbb,0xfe,0x99,0x25,0x14,0x56,0x47, -0x8b,0xfc,0x53,0xa7,0x78,0x1f,0xc2,0x9a,0xcf,0x88,0xb5,0x79,0xbe,0xcf,0xa5,0xe9, -0x36,0x73,0x5f,0x5d,0x4b,0x8c,0xec,0x8a,0x34,0x2e,0xe7,0x1d,0xf8,0x53,0x5f,0x6a, -0x7d,0xa9,0xaf,0x45,0x7e,0x2d,0xcd,0xff,0x00,0x05,0x91,0xf8,0xd2,0x35,0x2b,0x86, -0xb6,0xd1,0x7c,0x20,0xd6,0x2d,0x2b,0x18,0x22,0x9e,0xc2,0x7f,0x31,0x63,0x2c,0x76, -0xab,0x30,0x9c,0x02,0x40,0xc0,0xce,0x2b,0xf5,0x5f,0xf6,0x6a,0xf1,0xbf,0x8a,0xfe, -0x25,0x7c,0x0e,0xf0,0x8f,0x8a,0xfc,0x6b,0x65,0x63,0xa6,0xf8,0x83,0x5a,0xb3,0x5b, -0xf9,0x2d,0x34,0xe4,0x74,0x8a,0x38,0xa4,0x25,0xa1,0xe1,0xd9,0x8e,0x4c,0x65,0x09, -0xc9,0xea,0x48,0xa0,0x49,0xdc,0xf9,0xef,0xfe,0x0a,0xb9,0xf1,0xa3,0xfe,0x15,0x97, -0xec,0xc9,0x73,0xe1,0xfb,0x39,0x8c,0x7a,0xb7,0x8c,0x6e,0x06,0x96,0x81,0x7a,0x8b, -0x60,0x37,0xdc,0x1f,0xa1,0x50,0x13,0xfe,0xda,0x57,0xe2,0x00,0xd4,0x6e,0xc5,0xab, -0xdb,0x0b,0xa9,0x85,0xb3,0xfd,0xe8,0x44,0x87,0x63,0x73,0x9e,0x47,0x4e,0xa2,0xbf, -0xa2,0x9f,0x8f,0x5f,0xb2,0x2f,0xc3,0x3f,0xda,0x5e,0xfb,0x4b,0xbc,0xf1,0xf6,0x95, -0x77,0xaa,0xcd,0xa6,0x44,0xf0,0xda,0x79,0x3a,0x8c,0xd6,0xeb,0x12,0xb1,0xcb,0x7c, -0xa8,0xc0,0x12,0x48,0x19,0x24,0x67,0x81,0xe9,0x5e,0x33,0x7d,0xff,0x00,0x04,0x93, -0xfd,0x9e,0xae,0xff,0x00,0xd5,0x69,0x5a,0xed,0x97,0xfd,0x70,0xd6,0x24,0x3f,0xfa, -0x1e,0xea,0x62,0x6a,0xe7,0xe1,0xa7,0x34,0xf8,0x66,0x92,0xde,0x41,0x24,0x4e,0xd1, -0x48,0x3a,0x32,0x1c,0x11,0xf8,0xd7,0xed,0x36,0xa9,0xff,0x00,0x04,0x70,0xf8,0x23, -0x78,0xa7,0xec,0x9a,0xb7,0x8b,0xb4,0xf2,0x7b,0xa5,0xfc,0x2f,0x8f,0xfb,0xea,0x13, -0x5c,0x9d,0xff,0x00,0xfc,0x11,0x47,0xe1,0xf4,0xad,0xfe,0x85,0xf1,0x0f,0xc4,0xd6, -0xe3,0xd2,0xe2,0xde,0xde,0x5f,0xe4,0xab,0x4e,0xe2,0xb3,0x3f,0x28,0xad,0x3e,0x21, -0xf8,0xaa,0xc3,0x02,0xd7,0xc4,0xda,0xc5,0xb6,0x3a,0x08,0x6f,0xe5,0x4c,0x7e,0x4d, -0x5f,0xb1,0x9f,0xf0,0x49,0x2f,0x0c,0x78,0x9e,0x4f,0x82,0x3a,0xbf,0x8e,0x7c,0x53, -0xae,0xea,0xda,0xcc,0xbe,0x20,0xbe,0xf2,0x74,0xf4,0xd4,0xef,0x25,0x9c,0x43,0x6d, -0x06,0x54,0xb2,0x07,0x63,0x8d,0xf2,0x17,0xe9,0xd7,0x60,0xaf,0x36,0xbe,0xff,0x00, -0x82,0x23,0xe8,0x0e,0xa7,0xec,0x9f,0x15,0xb5,0x28,0x4f,0xfd,0x36,0xd1,0xa3,0x93, -0xf9,0x4c,0xb5,0xfa,0x0f,0xf0,0x97,0xe1,0xbe,0x9f,0xf0,0x87,0xe1,0x9f,0x86,0x7c, -0x19,0xa5,0xb6,0xfb,0x1d,0x12,0xc2,0x2b,0x28,0xe5,0x2b,0xb4,0xc9,0xb5,0x70,0xce, -0x47,0x38,0x2c,0xd9,0x63,0xcf,0x52,0x69,0x31,0xa4,0xce,0x8f,0x55,0xd4,0x62,0xd2, -0x74,0xdb,0xab,0xd9,0xdb,0x6c,0x36,0xf1,0x34,0xae,0x7d,0x94,0x64,0xd7,0xc5,0x5a, -0xb6,0xa5,0x2e,0xb1,0xaa,0x5d,0xdf,0x4e,0x73,0x35,0xcc,0xad,0x2b,0x7d,0x49,0xcd, -0x7d,0x6b,0xf1,0x2b,0xc3,0xba,0x97,0x8a,0xfc,0x29,0x73,0xa5,0x69,0x93,0x41,0x04, -0xd7,0x0c,0xa1,0xde,0x76,0x65,0x1b,0x01,0xc9,0x03,0x00,0xf2,0x70,0x07,0xd0,0x9a, -0xf1,0x39,0x7f,0x67,0x2f,0x13,0xa2,0x92,0xb7,0x3a,0x6c,0x87,0xd1,0x66,0x70,0x7f, -0x54,0xaf,0x85,0xe2,0x1a,0x18,0xbc,0x5c,0xe1,0x0a,0x34,0xdb,0x8a,0xd7,0x4e,0xe7, -0x93,0x8e,0x85,0x5a,0x8d,0x46,0x11,0xba,0x47,0x95,0xd1,0x5e,0x87,0x3f,0xc0,0x5f, -0x18,0xc2,0x7e,0x5b,0x18,0x26,0xf7,0x4b,0x84,0xfe,0xa4,0x55,0x39,0x3e,0x0a,0x78, -0xd2,0x3c,0x9f,0xec,0x46,0x61,0xfe,0xcd,0xc4,0x47,0xff,0x00,0x66,0xaf,0x89,0x79, -0x6e,0x36,0x3b,0xd2,0x97,0xdc,0xcf,0x25,0xd0,0xaa,0xbe,0xcb,0x32,0xfe,0x1d,0xf8, -0x7b,0xfe,0x12,0x8f,0x19,0xe9,0x76,0x0c,0x81,0xe1,0x69,0x44,0x92,0x83,0xd3,0xcb, -0x5f,0x99,0x87,0xe2,0x06,0x3f,0x1a,0xfb,0x1c,0x70,0x05,0x78,0xcf,0xc0,0xaf,0x87, -0x5a,0x9f,0x86,0x75,0x2d,0x47,0x51,0xd6,0x2c,0x9a,0xd2,0x7d,0x82,0x08,0x55,0xc8, -0x24,0x82,0x72,0xc7,0x82,0x7d,0x14,0x7e,0x75,0xec,0xd5,0xfa,0x37,0x0f,0x61,0x25, -0x86,0xc2,0xb9,0x54,0x56,0x94,0x9f,0xe5,0xa2,0x3d,0xdc,0x0d,0x27,0x4e,0x9d,0xda, -0xd5,0x8b,0x45,0x14,0x57,0xd4,0x9e,0x89,0xe6,0x1f,0xb4,0x3c,0x7e,0x67,0xc3,0xfc, -0xff,0x00,0x72,0xee,0x36,0xfd,0x18,0x7f,0x5a,0xf9,0x8e,0xbe,0xa7,0xf8,0xf7,0x1e, -0xff,0x00,0x86,0xb7,0xed,0xfd,0xc9,0x61,0x6f,0xfc,0x88,0x07,0xf5,0xaf,0x96,0x33, -0x5f,0x96,0x71,0x32,0xb6,0x35,0x3f,0xee,0xaf,0xcd,0x9f,0x3b,0x98,0x2f,0xde,0xdf, -0xc8,0x28,0xa2,0x8a,0xf9,0x23,0xcc,0x3d,0x5f,0xf6,0x6f,0xb9,0x31,0xf8,0xd6,0xf2, -0x1c,0xe1,0x64,0xb1,0x63,0x8f,0x52,0x1d,0x3f,0xc4,0xd7,0xd2,0x63,0xad,0x7c,0xa1, -0xf0,0x42,0xf1,0xad,0x3e,0x25,0x69,0x4a,0xa7,0x0b,0x30,0x96,0x26,0xfa,0x79,0x6c, -0x7f,0x98,0x15,0xf5,0x78,0xaf,0xd5,0x38,0x6a,0x7c,0xd8,0x2e,0x5e,0xcd,0xff,0x00, -0x99,0xf4,0x78,0x07,0x7a,0x36,0xec,0xc5,0xa2,0x8a,0x2b,0xeb,0x0f,0x48,0x2a,0x3b, -0x89,0xd2,0xda,0x09,0x25,0x91,0x82,0x47,0x1a,0x96,0x66,0x27,0x80,0x00,0xe4,0xd3, -0xcd,0x70,0xff,0x00,0x19,0xb5,0xcf,0xec,0x4f,0x87,0xba,0xa1,0x5c,0x79,0xb7,0x4a, -0x2d,0x14,0x1e,0xfb,0xf8,0x6f,0xfc,0x77,0x71,0xfc,0x2b,0x9f,0x11,0x59,0x50,0xa3, -0x3a,0xaf,0xa2,0x6c,0x89,0xcb,0x92,0x2e,0x5d,0x8f,0x96,0xb5,0xbd,0x56,0x4d,0x73, -0x59,0xbe,0xd4,0x65,0x1b,0x64,0xba,0x9d,0xe6,0x2b,0xfd,0xdd,0xc4,0x9c,0x7e,0x15, -0x4a,0x8a,0x2b,0xf0,0x99,0xc9,0xce,0x4e,0x4f,0x76,0x7c,0x73,0x77,0x77,0x61,0x40, -0x04,0x90,0x07,0x24,0xd1,0x5d,0x17,0xc3,0xcd,0x1b,0xfb,0x7f,0xc6,0xda,0x3d,0x91, -0x5d,0xc8,0xf7,0x0a,0xee,0x3d,0x51,0x7e,0x66,0xfd,0x14,0xd5,0xd1,0xa6,0xeb,0x54, -0x8d,0x35,0xbb,0x69,0x0e,0x31,0x72,0x92,0x8a,0xea,0x7d,0x59,0xe0,0x9d,0x10,0x78, -0x77,0xc2,0x7a,0x56,0x9e,0x17,0x6b,0x43,0x6e,0x81,0xc7,0xfb,0x64,0x65,0xbf,0x52, -0x6b,0x76,0x90,0x74,0x18,0xe9,0x4b,0x5f,0xbb,0xd3,0x82,0xa7,0x05,0x05,0xb2,0x56, -0x3e,0xc6,0x2b,0x95,0x24,0x82,0x8a,0x28,0xad,0x0a,0x0a,0xc0,0xf1,0xcf,0x86,0x93, -0xc5,0xde,0x16,0xd4,0x34,0xb6,0x21,0x5a,0x78,0xff,0x00,0x76,0xc7,0xa2,0xc8,0x0e, -0x54,0x9f,0x6c,0x81,0x5b,0xf4,0x86,0xb3,0xa9,0x08,0xd5,0x83,0x84,0xb6,0x7a,0x0a, -0x49,0x49,0x38,0xbe,0xa7,0xc3,0x57,0x56,0xb2,0xd9,0x5c,0xcb,0x6f,0x3c,0x6d,0x14, -0xd1,0x39,0x8d,0xd1,0x86,0x0a,0xb0,0x38,0x20,0xd4,0x55,0xf4,0x07,0xc6,0xef,0x85, -0x32,0xea,0x8c,0xfe,0x20,0xd1,0xe1,0x32,0x5d,0x01,0x9b,0xab,0x64,0x1c,0xc8,0x07, -0xf1,0xa8,0xee,0x40,0xea,0x3b,0x8f,0x7e,0xbf,0x3f,0xd7,0xe2,0xd9,0x86,0x06,0xa6, -0x02,0xb3,0xa7,0x3d,0xba,0x3e,0xeb,0xfa,0xdc,0xf9,0x3a,0xf4,0x65,0x46,0x7c,0xac, -0x28,0xa2,0x8a,0xf3,0x0e,0x73,0xb3,0xf8,0x73,0xf1,0x3a,0xfb,0xe1,0xf5,0xe3,0x04, -0x43,0x77,0xa7,0x4a,0x73,0x35,0xab,0x1c,0x73,0xfd,0xe5,0x3d,0x8f,0xf3,0xfc,0xb1, -0xf4,0x3f,0x86,0xbe,0x2b,0xf8,0x67,0xc4,0xd1,0x21,0x87,0x52,0x8a,0xd6,0x72,0x39, -0xb7,0xbb,0x61,0x13,0x83,0xe9,0xc9,0xc1,0xfc,0x09,0xaf,0x91,0x68,0xaf,0xa1,0xcb, -0xf3,0xbc,0x46,0x02,0x3e,0xcd,0x7b,0xd1,0xec,0xfa,0x7a,0x33,0xba,0x8e,0x2e,0xa5, -0x15,0xcb,0xba,0x3e,0xe7,0x8e,0xe2,0x29,0x90,0x3c,0x72,0x23,0xa1,0xe8,0xca,0xc0, -0x83,0x54,0xf5,0x0d,0x7f,0x4c,0xd2,0x50,0xb5,0xee,0xa1,0x6b,0x68,0xa3,0xbc,0xd3, -0x2a,0xff,0x00,0x33,0x5f,0x13,0x2c,0x8e,0x83,0x0a,0xcc,0xa3,0xd8,0xe2,0x9a,0x79, -0x39,0x27,0x27,0xde,0xbd,0xd7,0xc5,0x52,0xb7,0xbb,0x47,0x5f,0x5f,0xf8,0x07,0x67, -0xf6,0x93,0xe9,0x1f,0xc7,0xfe,0x01,0xf4,0x6f,0x8c,0x7f,0x68,0x5d,0x2b,0x4c,0x89, -0xe1,0xd0,0xe3,0x3a,0xa5,0xd9,0xc8,0x13,0x30,0x29,0x0a,0x7e,0x7c,0xb7,0xe1,0xc1, -0xf5,0xaf,0x03,0xd7,0xbc,0x41,0x7f,0xe2,0x6d,0x4a,0x5b,0xfd,0x46,0xe1,0xae,0x6e, -0x64,0xea,0xcd,0xd0,0x0e,0xc0,0x0e,0xc0,0x7a,0x0a,0xce,0xa2,0xbe,0x5f,0x1d,0x9a, -0x62,0x71,0xef,0xf7,0xaf,0x4e,0xcb,0x63,0xce,0xad,0x88,0xa9,0x5b,0xe2,0xd8,0x28, -0xa2,0x8a,0xf2,0x4e,0x60,0xad,0x8f,0x09,0xf8,0x5e,0xf7,0xc6,0x1a,0xe5,0xbe,0x9b, -0x62,0x84,0xc9,0x21,0xcb,0xc8,0x47,0xcb,0x1a,0x7f,0x13,0x1f,0x61,0xfa,0x9c,0x0e, -0xf4,0x78,0x5f,0xc2,0x9a,0x97,0x8c,0x35,0x44,0xb1,0xd3,0x60,0x32,0xc8,0x7e,0xfb, -0x9c,0x84,0x89,0x7f,0xbc,0xc7,0xb0,0xfd,0x7d,0x33,0x5f,0x54,0x7c,0x3e,0xf8,0x7f, -0x63,0xe0,0x2d,0x24,0x41,0x6e,0x04,0xd7,0x72,0x00,0x6e,0x2e,0x98,0x61,0xa4,0x3f, -0xd0,0x0e,0xc2,0xbe,0x8b,0x29,0xca,0x67,0x8f,0xa8,0xa7,0x35,0x6a,0x6b,0x77,0xdf, -0xc9,0x1d,0xb8,0x6c,0x34,0xab,0xca,0xef,0xe1,0x35,0xbc,0x35,0xe1,0xeb,0x5f,0x0b, -0x68,0xb6,0xba,0x65,0x92,0x95,0x82,0x04,0xda,0x09,0xea,0xc7,0xbb,0x1f,0x72,0x72, -0x7f,0x1a,0xd4,0x14,0x52,0xd7,0xeb,0x70,0x84,0x69,0xc5,0x46,0x2a,0xc9,0x1f,0x4e, -0x92,0x4a,0xc8,0xc7,0xf1,0x4f,0x8a,0x6c,0x7c,0x21,0xa5,0x9d,0x43,0x51,0x76,0x4b, -0x60,0xe9,0x19,0x28,0xbb,0x8e,0x58,0xe3,0xa7,0xb7,0x5e,0x39,0xc0,0xa9,0x74,0x3f, -0x12,0x69,0x9e,0x23,0xb5,0x17,0x1a,0x6d,0xf4,0x37,0x91,0x11,0x92,0x62,0x6c,0x95, -0xfa,0x8e,0xa0,0xfb,0x1a,0xf1,0xdf,0xda,0x5f,0x5d,0xf9,0x74,0x8d,0x1d,0x1b,0xae, -0xeb,0xa9,0x00,0x3f,0xf0,0x15,0xff,0x00,0xd9,0xab,0xc4,0x2c,0xaf,0xee,0x74,0xeb, -0x85,0x9e,0xd2,0xe2,0x5b,0x69,0xd7,0xee,0xc9,0x0b,0x94,0x61,0xf8,0x8a,0xf8,0xec, -0x77,0x10,0x3c,0x16,0x32,0x54,0x79,0x79,0xa2,0xad,0xeb,0x73,0xcb,0xad,0x8d,0xf6, -0x55,0x5c,0x6d,0x74,0x7d,0xc7,0x9a,0x5a,0xf9,0x63,0x44,0xf8,0xf1,0xe2,0xbd,0x1c, -0x2a,0x4d,0x71,0x16,0xa7,0x10,0xfe,0x1b,0xa8,0xf2,0xd8,0xff,0x00,0x79,0x70,0x7f, -0x3c,0xd7,0x6f,0xa6,0x7e,0xd3,0x36,0xcc,0x48,0xd4,0x34,0x39,0xa2,0x03,0xf8,0xad, -0xa6,0x0f,0x93,0xf4,0x60,0xbf,0xce,0xbb,0xe8,0xf1,0x0e,0x06,0xaa,0xf7,0xa4,0xe2, -0xfc,0xd7,0xf9,0x5c,0xda,0x18,0xea,0x32,0xdd,0xd8,0xf6,0xfc,0xd1,0x9a,0xf3,0x1b, -0x0f,0xda,0x1f,0xc2,0xb7,0x6a,0x0c,0xdf,0x6d,0xb1,0x3e,0x93,0x41,0x9f,0xfd,0x00, -0xb5,0x5f,0x5f,0x8e,0xbe,0x0b,0x23,0xfe,0x42,0xce,0x3e,0xb6,0xb2,0xff,0x00,0xf1, -0x35,0xe9,0x47,0x33,0xc1,0x4b,0x6a,0xb1,0xfb,0xcd,0xd6,0x22,0x93,0xda,0x48,0xef, -0xe9,0x1d,0x82,0xa1,0x24,0x80,0x31,0xce,0x6b,0xcd,0xaf,0xff,0x00,0x68,0x1f,0x09, -0x5a,0xc2,0xcd,0x0c,0xd7,0x37,0xcc,0x3f,0x82,0x1b,0x76,0x52,0x7f,0xef,0xbd,0xa3, -0xf5,0xaf,0x35,0xf1,0xe7,0xc7,0xab,0xef,0x12,0x5a,0x4d,0xa7,0xe9,0x36,0xe7,0x4c, -0xb2,0x94,0x15,0x92,0x56,0x6c,0xcc,0xeb,0xe9,0xc7,0x0b,0xef,0x8c,0xfd,0x6b,0x93, -0x13,0x9d,0xe0,0xa8,0x41,0xb5,0x35,0x27,0xd9,0x6a,0x67,0x53,0x17,0x4a,0x0a,0xf7, -0xb9,0xe7,0xbe,0x28,0x96,0x0b,0x8f,0x12,0xea,0xd2,0xda,0xe3,0xec,0xcf,0x77,0x2b, -0x45,0xb7,0xa6,0xd2,0xe4,0x8c,0x7e,0x15,0x97,0x45,0x15,0xf9,0x04,0xe5,0xcf,0x37, -0x2e,0xee,0xe7,0xcb,0xb7,0x77,0x70,0xa2,0x8a,0x2a,0x04,0x75,0xff,0x00,0x08,0xf4, -0xf6,0xd4,0xbe,0x22,0xe8,0x88,0x01,0xc4,0x73,0x79,0xc4,0x8e,0xc1,0x14,0xb7,0xf4, -0xaf,0xae,0xc7,0x4a,0xf0,0x7f,0xd9,0xbf,0xc2,0xac,0x64,0xbe,0xf1,0x04,0xc9,0x85, -0xdb,0xf6,0x6b,0x72,0x47,0x5e,0xee,0x7f,0x40,0x3f,0x3a,0xf7,0x81,0xd2,0xbf,0x57, -0xe1,0xcc,0x3b,0xa3,0x82,0xe7,0x97,0xda,0x77,0xf9,0x74,0x3e,0x93,0x03,0x07,0x1a, -0x57,0x7d,0x45,0xa2,0x8a,0x2b,0xea,0x4f,0x44,0x69,0xaf,0x92,0xff,0x00,0x69,0xfb, -0xbf,0x33,0x5a,0x74,0xce,0x70,0xd5,0xf5,0xab,0x74,0xaf,0x8c,0x7f,0x68,0xdb,0xbf, -0x3b,0xc4,0xb2,0x8c,0xff,0x00,0x19,0xaf,0x99,0xcf,0xdd,0xb0,0xb6,0xee,0xd1,0xe0, -0x67,0x72,0xe5,0xc2,0x48,0xf9,0xcb,0xc7,0x32,0xec,0xd2,0x67,0x3d,0x3e,0x5a,0xfa, -0x47,0xfe,0x09,0x79,0xa6,0x88,0x7e,0x0f,0xf8,0xbb,0x50,0xc7,0xcd,0x77,0xe2,0x39, -0x57,0x38,0xec,0x90,0x42,0x07,0xea,0x4d,0x7c,0xc3,0xf1,0x1e,0x5f,0x2f,0x46,0x9c, -0xe7,0xb1,0xfe,0x55,0xf5,0xff,0x00,0xfc,0x13,0x53,0x4f,0x36,0x9f,0xb3,0x2c,0x17, -0x24,0x63,0xed,0xda,0xcd,0xf5,0xc0,0x3e,0xb8,0x93,0xcb,0xff,0x00,0xda,0x75,0x9e, -0x47,0x1b,0x53,0xb9,0xf1,0xbc,0x27,0x1b,0xe2,0xeb,0xcf,0xc9,0x1f,0x55,0x51,0x45, -0x15,0xf5,0x47,0xea,0x21,0x5f,0x13,0x7e,0xd3,0x3e,0x2f,0x3e,0x27,0xf8,0x9b,0x71, -0x68,0x8e,0x4d,0xa6,0x92,0x9f,0x64,0x41,0xdb,0x7f,0x59,0x0f,0xe7,0x81,0xff,0x00, -0x01,0xaf,0xae,0xbc,0x73,0xe2,0x68,0x7c,0x1d,0xe1,0x2d,0x57,0x59,0x9b,0x1b,0x6c, -0xe0,0x69,0x14,0x1f,0xe2,0x7c,0x61,0x57,0xf1,0x62,0x07,0xe3,0x5f,0x9f,0x28,0x2e, -0x75,0xcd,0x57,0x74,0x8c,0xd3,0x5d,0x5d,0xcc,0x59,0x98,0xf2,0x59,0xd9,0xb2,0x4f, -0xe6,0x6b,0xe4,0xb8,0x83,0x11,0xcb,0x4e,0x34,0x23,0xbb,0xd7,0xfa,0xf9,0x9f,0x1b, -0xc4,0x58,0x87,0xc9,0x0c,0x34,0x77,0x93,0xbb,0xf4,0xff,0x00,0x87,0x3e,0x96,0xfd, -0x92,0x7c,0x1f,0xe4,0xd9,0xdf,0x6b,0xf2,0xa6,0x0c,0x87,0xc9,0x88,0x91,0xdb,0xb9, -0xaf,0xa3,0xeb,0x97,0xf8,0x6f,0xe1,0xa4,0xf0,0x97,0x83,0x74,0xcd,0x39,0x54,0x2b, -0x47,0x10,0x2f,0x8e,0xec,0x7a,0xd7,0x51,0x5e,0xde,0x5d,0x87,0xfa,0xb6,0x1a,0x14, -0xfa,0xf5,0xf5,0x3e,0x8f,0x03,0x87,0x58,0x5c,0x3c,0x29,0x76,0x41,0x5f,0x0c,0x7f, -0xc1,0x5c,0xbe,0x35,0x9f,0x87,0x7f,0xb3,0xbc,0x3e,0x0f,0xb2,0x9b,0xcb,0xd5,0x3c, -0x65,0x75,0xf6,0x56,0xda,0xd8,0x65,0xb4,0x88,0xac,0x93,0x1f,0x70,0xc7,0xcb,0x42, -0x3b,0x87,0x6f,0x4a,0xfb,0x9e,0xbf,0x23,0xff,0x00,0xe0,0xb6,0x56,0x5a,0x90,0xf8, -0x89,0xf0,0xd6,0xf2,0x48,0xdc,0xe9,0x07,0x4a,0xb9,0x8a,0x17,0xc7,0xc8,0x26,0x13, -0x29,0x90,0x7d,0x76,0x98,0xff,0x00,0x2a,0xf4,0xd1,0xdc,0xcf,0x86,0xbf,0x67,0xbf, -0x04,0xe9,0xbf,0x12,0x7e,0x39,0x78,0x17,0xc3,0x3a,0xcd,0xe4,0x76,0x1a,0x56,0xa9, -0xac,0x5b,0xdb,0x5d,0x4f,0x2b,0x05,0x51,0x19,0x71,0xb8,0x64,0xf7,0x61,0xf2,0x8f, -0x72,0x2b,0xfa,0x16,0xf8,0xcd,0xf1,0x1b,0x4e,0xf8,0x1d,0xf0,0x6f,0xc5,0x1e,0x2e, -0x9e,0x38,0xe3,0xb4,0xd0,0x34,0xc9,0x27,0x86,0xd9,0x70,0x81,0xdd,0x53,0x11,0x44, -0xbd,0x86,0xe6,0xda,0xa0,0x7b,0xd7,0xf3,0x4e,0xac,0x51,0x83,0x29,0x2a,0xc0,0xe4, -0x11,0xd4,0x57,0x5f,0xaa,0xfc,0x62,0xf1,0xde,0xbb,0xe1,0x97,0xf0,0xee,0xa7,0xe3, -0x2d,0x7b,0x51,0xd0,0x5f,0x6e,0xed,0x32,0xeb,0x52,0x9a,0x5b,0x73,0xb4,0x86,0x5c, -0xc6,0xcc,0x47,0x04,0x02,0x38,0xe3,0x14,0xc8,0x4e,0xc7,0x77,0xe1,0x9f,0xda,0x7f, -0xe3,0xb6,0xb5,0xe2,0xab,0x6b,0x5d,0x23,0xe2,0x6f,0x8b,0x5b,0x55,0xd5,0x2f,0x16, -0x28,0xa1,0x4d,0x5a,0x72,0xad,0x2c,0x8f,0x85,0x01,0x4b,0x60,0x0c,0xb7,0x40,0x31, -0x5f,0xd0,0x5f,0xc3,0xcd,0x07,0x50,0xf0,0xbf,0x81,0x74,0x0d,0x27,0x55,0xd4,0xae, -0x35,0x9d,0x52,0xce,0xc6,0x18,0x6f,0x35,0x0b,0xa9,0x0c,0x92,0x5c,0xcc,0x10,0x79, -0x92,0x33,0x1e,0x4e,0x5b,0x26,0xbf,0x99,0xff,0x00,0x09,0xf8,0xaf,0x55,0xf0,0x37, -0x89,0x34,0xed,0x7f,0x43,0xbc,0x6d,0x3f,0x58,0xd3,0xa7,0x5b,0x9b,0x5b,0xa4,0x55, -0x66,0x8a,0x45,0x39,0x56,0x01,0x81,0x19,0x1e,0xe2,0xbe,0x84,0xd3,0x3f,0xe0,0xa5, -0x1f,0xb4,0x76,0x95,0xf7,0x3e,0x24,0x5c,0x4e,0x3d,0x2e,0xb4,0xfb,0x49,0x7f,0xf4, -0x28,0x8d,0x0c,0x69,0x9f,0xbf,0xd4,0x57,0xe1,0x66,0x99,0xff,0x00,0x05,0x62,0xfd, -0xa1,0xec,0x17,0x12,0xeb,0xda,0x46,0xa1,0xef,0x73,0xa4,0x42,0x3f,0xf4,0x00,0xb5, -0xbf,0x63,0xff,0x00,0x05,0x87,0xf8,0xed,0x6b,0x81,0x35,0x9f,0x84,0xaf,0x3f,0xeb, -0xae,0x99,0x2a,0x9f,0xfc,0x76,0x61,0x4a,0xc5,0x5d,0x1f,0xb6,0x94,0x57,0x86,0xfe, -0xc6,0x7f,0x16,0x3c,0x69,0xf1,0xc7,0xe0,0x3e,0x8b,0xe3,0x8f,0x1c,0x58,0xe9,0xba, -0x6e,0xa3,0xac,0x49,0x2c,0xd6,0xb6,0xfa,0x64,0x4f,0x1c,0x7f,0x66,0x0d,0xb5,0x18, -0x87,0x76,0x39,0x62,0xac,0x7a,0xe3,0x05,0x7f,0x1f,0x4a,0xf8,0xa1,0xe3,0xfd,0x3f, -0xe1,0x67,0xc3,0xbf,0x12,0x78,0xbf,0x54,0x60,0x2c,0x34,0x4b,0x09,0xaf,0xa5,0x05, -0xb1,0xbf,0x62,0x92,0x14,0x7b,0xb1,0xc2,0x8f,0x72,0x29,0x0c,0xea,0x28,0xaf,0xcb, -0xad,0x3b,0xfe,0x0b,0x77,0x64,0x42,0x8b,0xef,0x84,0xd3,0xab,0x77,0xfb,0x3e,0xb8, -0x0f,0xf3,0x80,0x57,0x61,0xa5,0x7f,0xc1,0x6a,0xfe,0x1b,0xcb,0x1e,0x75,0x2f,0x00, -0x78,0xa6,0xd2,0x4f,0xee,0xda,0xbd,0xb4,0xe3,0xf3,0x69,0x13,0xf9,0x53,0xb0,0xae, -0x8f,0xd1,0x5a,0x2b,0xe0,0x5b,0x4f,0xf8,0x2c,0xef,0xc1,0x89,0xb1,0xe7,0x78,0x6b, -0xc6,0xb6,0xe7,0xd3,0xec,0x56,0xad,0xfc,0xae,0x2b,0xab,0xd1,0xbf,0xe0,0xad,0xdf, -0xb3,0xe6,0xa6,0xa0,0xdd,0x6a,0x9a,0xee,0x90,0x7d,0x2f,0x34,0x89,0x1b,0x1f,0xf7, -0xe8,0xbd,0x01,0x74,0x7d,0x9f,0x45,0x7c,0xa7,0x69,0xff,0x00,0x05,0x44,0xfd,0x9b, -0x6e,0x80,0x27,0xe2,0x04,0x90,0x67,0xfe,0x7a,0xe8,0xb7,0xe3,0xf9,0x42,0x6b,0xa6, -0xd2,0xff,0x00,0xe0,0xa0,0xbf,0xb3,0xce,0xae,0x14,0xc3,0xf1,0x4f,0x46,0x8b,0x77, -0x41,0x74,0xb3,0x40,0x7f,0xf1,0xf4,0x14,0x87,0x73,0xe8,0x6a,0x2b,0xc9,0xf4,0xff, -0x00,0xda,0xcb,0xe0,0xb6,0xa8,0xa1,0xad,0xfe,0x2b,0xf8,0x35,0x81,0xec,0xfa,0xe5, -0xba,0x1f,0xc9,0x9c,0x56,0xfd,0x97,0xc7,0x5f,0x86,0xda,0x96,0x3e,0xc9,0xf1,0x07, -0xc2,0xd7,0x39,0xe9,0xe5,0x6b,0x56,0xcd,0x9f,0xc9,0xe8,0x03,0xb4,0x9a,0x08,0xe7, -0x52,0x92,0x22,0xc8,0x87,0xaa,0xb0,0xc8,0x3f,0x85,0x50,0x9f,0xc3,0x3a,0x3d,0xcf, -0xfa,0xed,0x2e,0xce,0x5f,0xf7,0xed,0xd0,0xff,0x00,0x4a,0x76,0x9f,0xe2,0x4d,0x27, -0x56,0x8c,0x49,0x63,0xa9,0xd9,0x5e,0xc6,0x79,0x0d,0x6f,0x70,0x92,0x03,0xf9,0x13, -0x5a,0x0a,0xe1,0x86,0x41,0x04,0x7a,0x83,0x51,0x28,0x46,0x5f,0x12,0xb8,0x9a,0x4f, -0x74,0x73,0xf3,0x7c,0x3c,0xf0,0xc5,0xc7,0x32,0x78,0x7f,0x4e,0x3f,0xf6,0xea,0x83, -0xfa,0x55,0x49,0x7e,0x15,0x78,0x46,0x51,0xce,0x81,0x66,0xbf,0xee,0x47,0xb7,0xf9, -0x57,0x59,0x9a,0x5a,0xc2,0x58,0x5a,0x12,0xde,0x0b,0xee,0x44,0x3a,0x70,0x7b,0xc5, -0x1c,0x8e,0x9d,0xf0,0xaf,0xc2,0xfa,0x4e,0xa5,0x6f,0x7f,0x65,0xa5,0xad,0xbd,0xd4, -0x0d,0xba,0x37,0x49,0x5f,0x83,0xd3,0xa6,0x71,0x5d,0x68,0xeb,0x4b,0x45,0x69,0x4e, -0x8d,0x3a,0x2a,0xd4,0xe2,0x92,0xf2,0x2a,0x31,0x8c,0x34,0x8a,0xb0,0x51,0x45,0x15, -0xb1,0x42,0x1a,0xe2,0x7e,0x28,0x7c,0x3c,0x9b,0xe2,0x1d,0x85,0x9d,0xaa,0x6a,0x22, -0xc2,0x3b,0x79,0x0c,0xa5,0x4c,0x3e,0x66,0xf6,0xc6,0x07,0xf1,0x0c,0x63,0x27,0xd7, -0xad,0x76,0xf4,0x56,0x15,0xe8,0x43,0x13,0x4d,0xd2,0xa8,0xaf,0x17,0xb9,0x13,0x82, -0xa9,0x17,0x19,0x6c,0x7c,0xf5,0x37,0xec,0xcd,0xaa,0x2e,0x7c,0x9d,0x66,0xd1,0xff, -0x00,0xdf,0x8d,0x97,0xfc,0x6a,0x93,0xfe,0xcd,0xbe,0x23,0x19,0xd9,0x7d,0xa6,0xb7, -0xd6,0x49,0x07,0xfe,0xc9,0x5f,0x49,0x51,0x5e,0x0b,0xe1,0xdc,0xbd,0xfd,0x97,0xf7, -0xb3,0x8d,0xe0,0x68,0xbe,0x9f,0x89,0xf3,0x1c,0xff,0x00,0xb3,0xbf,0x8a,0xa2,0x52, -0x55,0xf4,0xf9,0x88,0xfe,0x14,0x9c,0x8f,0xe6,0xa2,0xbb,0x0f,0x83,0x7f,0x0a,0xb5, -0x8f,0x0a,0x78,0x9a,0x7d,0x4b,0x57,0x82,0x38,0x55,0x20,0x31,0xc3,0xb6,0x45,0x7d, -0xcc,0xc4,0x64,0xf0,0x78,0xc0,0x18,0xfc,0x6b,0xdb,0x28,0xaa,0xa1,0x90,0xe1,0x30, -0xd5,0x63,0x5a,0x17,0xbc,0x7c,0xc2,0x18,0x2a,0x54,0xe4,0xa4,0xaf,0xa0,0x51,0x45, -0x15,0xf4,0x67,0x78,0x51,0x45,0x14,0x00,0x51,0x45,0x14,0x00,0x87,0x9a,0xf2,0xef, -0x88,0x7f,0x03,0xac,0x3c,0x55,0x24,0x97,0xda,0x63,0xa6,0x9b,0xa9,0xb6,0x59,0xb8, -0xfd,0xd4,0xc7,0xd5,0x80,0xe8,0x7d,0xc7,0xe4,0x6b,0xd4,0xa8,0xae,0x4c,0x4e,0x16, -0x8e,0x2e,0x1e,0xce,0xb4,0x6e,0x8c,0xea,0x53,0x8d,0x55,0xcb,0x35,0x73,0xe3,0x1f, -0x13,0x78,0x1f,0x5b,0xf0,0x84,0xc5,0x35,0x4b,0x09,0x20,0x8f,0x38,0x13,0xaf,0xcd, -0x13,0x7d,0x18,0x71,0xf8,0x75,0xf6,0xac,0x2a,0xfb,0x9e,0x68,0x52,0x78,0xca,0x48, -0xaa,0xe8,0x78,0x2a,0xc3,0x20,0xd7,0x15,0xae,0x7c,0x18,0xf0,0x9e,0xb8,0x59,0xdf, -0x4d,0x5b,0x49,0x4f,0xfc,0xb4,0xb3,0x6f,0x2b,0xf4,0x1f,0x2f,0xe9,0x5f,0x0f,0x8a, -0xe1,0x79,0x5e,0xf8,0x69,0xfc,0x9f,0xf9,0xa3,0xc7,0xa9,0x97,0x3d,0xe9,0xbf,0xbc, -0xf9,0x36,0x8a,0xf7,0xed,0x43,0xf6,0x65,0xb2,0x91,0x89,0xb0,0xd6,0xe7,0x85,0x7b, -0x2d,0xc4,0x2b,0x27,0xea,0x0a,0xd6,0x0d,0xcf,0xec,0xd5,0xad,0x23,0x91,0x06,0xa9, -0x63,0x2a,0xf6,0x32,0x07,0x43,0xfa,0x03,0x5e,0x0c,0xf2,0x2c,0xc2,0x0f,0xf8,0x77, -0xf4,0x68,0xe3,0x78,0x3a,0xeb,0xec,0x9e,0x3f,0x45,0x7a,0xb1,0xfd,0x9b,0xfc,0x4b, -0xda,0xf7,0x4b,0x3f,0xf6,0xd6,0x4f,0xfe,0x22,0x9e,0x9f,0xb3,0x6f,0x88,0xc9,0xf9, -0xef,0xb4,0xd5,0x1e,0xd2,0x48,0x7f,0xf6,0x4a,0xc1,0x64,0xf8,0xf7,0xff,0x00,0x2e, -0x99,0x1f,0x55,0xad,0xfc,0xac,0xf2,0x6a,0x2b,0xdb,0x74,0xff,0x00,0xd9,0x9a,0xe9, -0xb9,0xbd,0xd7,0x22,0x8f,0xd5,0x60,0xb7,0x2f,0xfa,0x92,0x3f,0x95,0x75,0x9a,0x3f, -0xec,0xf3,0xe1,0x9b,0x0c,0x35,0xdb,0x5d,0x6a,0x4c,0x3b,0x4b,0x26,0xc4,0xfc,0x97, -0x07,0xf5,0xae,0xda,0x5c,0x3d,0x8f,0xa8,0xf5,0x8a,0x8f,0xab,0xff,0x00,0x2b,0x9a, -0xc7,0x03,0x5a,0x5b,0xab,0x1f,0x36,0x59,0xd9,0x5c,0x6a,0x17,0x09,0x05,0xac,0x12, -0xdc,0xcc,0xe7,0x0b,0x1c,0x28,0x59,0x8f,0xd0,0x0a,0xf5,0x5f,0x05,0xfe,0xcf,0x9a, -0x9e,0xaa,0xd1,0xdc,0xeb,0xb2,0x7f,0x66,0x5a,0x13,0x9f,0x21,0x08,0x69,0xd8,0x7e, -0xa1,0x7f,0x1c,0x9f,0x6a,0xf7,0xdd,0x1f,0xc3,0xba,0x6f,0x87,0xe1,0x31,0x69,0xd6, -0x36,0xf6,0x51,0x9e,0xa2,0x18,0xc2,0xe7,0xeb,0xeb,0x5a,0x75,0xf4,0xd8,0x3e,0x19, -0xa3,0x49,0xa9,0xe2,0x25,0xcc,0xfb,0x6c,0xbf,0xcd,0x9e,0x85,0x2c,0xbe,0x31,0xd6, -0xa3,0xb9,0x93,0xe1,0xdf,0x0c,0xe9,0xbe,0x15,0xd3,0xd6,0xcf,0x4c,0xb5,0x4b,0x58, -0x47,0x5d,0xbf,0x79,0xcf,0xab,0x1e,0xa4,0xfd,0x6b,0x54,0x74,0xa5,0xa2,0xbe,0xca, -0x10,0x8d,0x38,0xa8,0xc1,0x59,0x23,0xd5,0x49,0x45,0x59,0x05,0x35,0xba,0x73,0x4e, -0xa8,0x2f,0x56,0x66,0xb5,0x98,0x40,0x50,0x4f,0xb0,0xf9,0x65,0xfe,0xee,0xec,0x71, -0x9f,0x6c,0xd5,0x3d,0x15,0xc6,0x7c,0x99,0xf1,0x6f,0x5d,0xfe,0xdf,0xf1,0xfe,0xab, -0x32,0xb6,0xe8,0xa1,0x93,0xec,0xd1,0xf3,0x9e,0x13,0x83,0x8f,0xab,0x6e,0x3f,0x8d, -0x71,0xd5,0xdd,0x6b,0xff,0x00,0x06,0x7c,0x5b,0xa3,0xb4,0x92,0x35,0x81,0xd4,0x50, -0x1c,0x99,0xac,0xdb,0xcc,0x2d,0xef,0xb7,0xef,0x7e,0x95,0xc5,0xde,0xd9,0x5c,0x69, -0xb3,0x18,0x6e,0xed,0xe5,0xb5,0x98,0x75,0x8e,0x64,0x28,0xdf,0x91,0xe6,0xbf,0x11, -0xc6,0xd2,0xc4,0x2a,0xd3,0xa9,0x5e,0x0d,0x36,0xdb,0xd5,0x1f,0x23,0x5a,0x33,0xe7, -0x72,0x92,0xdc,0x86,0x8a,0x28,0xaf,0x38,0xc0,0x28,0xa2,0x8a,0x00,0x28,0xa2,0x8a, -0x00,0x28,0xa2,0xae,0xe9,0x5a,0x26,0xa1,0xae,0xcf,0xe4,0xe9,0xd6,0x53,0xde,0xcb, -0xdd,0x60,0x42,0xd8,0xf7,0x38,0xe9,0xf8,0xd5,0x46,0x32,0x9b,0xe5,0x8a,0xbb,0x1a, -0x4d,0xe8,0x8a,0x55,0xd4,0x78,0x03,0xc0,0x17,0xfe,0x3d,0xd5,0xd6,0xde,0xdd,0x5a, -0x2b,0x38,0xc8,0x37,0x17,0x44,0x7c,0xb1,0xaf,0xa0,0xf5,0x63,0xd8,0x7f,0x4a,0xef, -0xbc,0x1b,0xfb,0x3b,0xde,0xdd,0xba,0x5c,0x78,0x86,0x71,0x67,0x00,0xe4,0xda,0x40, -0xc1,0xa4,0x6f,0x62,0xc3,0x81,0xf8,0x67,0xf0,0xaf,0x76,0xd1,0x74,0x5b,0x1f,0x0f, -0xd8,0x47,0x65,0xa7,0xdb,0x25,0xad,0xb4,0x63,0xe5,0x44,0x1f,0xa9,0xf5,0x3e,0xe6, -0xbe,0xc3,0x2c,0xe1,0xfa,0xb5,0xa4,0xaa,0x62,0x97,0x2c,0x7b,0x75,0x7f,0xe4,0x7a, -0x98,0x7c,0x14,0xa4,0xd4,0xaa,0x68,0x83,0x45,0xd1,0xad,0x74,0x0d,0x32,0xdb,0x4f, -0xb2,0x8c,0x45,0x6d,0x02,0x04,0x45,0xf6,0xf5,0x3e,0xa4,0xfa,0xd5,0xe1,0x4b,0x45, -0x7e,0x99,0x18,0xa8,0x25,0x18,0xec,0x8f,0x7d,0x24,0x95,0x90,0x51,0x45,0x15,0x43, -0x1b,0x21,0xdb,0x1b,0x1f,0x40,0x4d,0x7c,0x35,0xf1,0xd6,0xeb,0xcf,0xf1,0x4c,0xbc, -0xe7,0xe6,0x26,0xbe,0xe0,0xbe,0x7f,0x2e,0xce,0x76,0x3d,0x90,0x9f,0xd2,0xbe,0x0b, -0xf8,0xbb,0x38,0x9f,0xc5,0x13,0xfd,0x4f,0xf3,0xaf,0x91,0xe2,0x19,0x5a,0x9d,0x38, -0xf7,0x67,0xcb,0x71,0x0c,0xad,0x86,0xb1,0xe0,0x5f,0x15,0xe7,0xf2,0xb4,0x59,0xb9, -0xec,0x7f,0x95,0x7d,0xeb,0xfb,0x03,0x69,0xbf,0xd9,0xdf,0xb2,0x7f,0x81,0x7d,0x6e, -0x23,0xb8,0xb9,0x38,0xff,0x00,0x6e,0xe2,0x53,0x5f,0x9f,0x7f,0x19,0x26,0x11,0xe8, -0x92,0xf3,0x8f,0x94,0xff,0x00,0x2a,0xfd,0x29,0xfd,0x90,0xec,0x06,0x9b,0xfb,0x31, -0x7c,0x33,0x84,0x2e,0xdc,0xe8,0x76,0xd2,0x90,0x7d,0x5d,0x77,0x9f,0xd5,0xab,0xb3, -0x26,0x56,0xa2,0x78,0x1c,0x1f,0x1b,0xfb,0x79,0xf9,0xa3,0xd7,0xa8,0xa2,0x8a,0xfa, -0x23,0xf4,0x83,0xe7,0x5f,0xda,0xf7,0xc6,0x0d,0x69,0xa2,0xe9,0x5e,0x1c,0x81,0xf0, -0x6f,0x64,0x37,0x37,0x00,0x7f,0x71,0x3e,0xe8,0x3f,0x56,0x39,0xff,0x00,0x80,0xd7, -0x94,0x7e,0xcf,0x3e,0x12,0xff,0x00,0x84,0xa3,0xe2,0x15,0xa3,0x3a,0x6e,0xb7,0xb3, -0xfd,0xfb,0xfa,0x71,0xd2,0xb2,0x7e,0x36,0xf8,0xb1,0xbc,0x65,0xf1,0x33,0x5a,0xbb, -0x0f,0xbe,0xda,0xde,0x53,0x67,0x6f,0xce,0x40,0x48,0xf2,0x38,0xfa,0xb6,0xe3,0xf8, -0xd7,0xd0,0x7f,0xb2,0xb7,0x84,0x46,0x93,0xe1,0x29,0xf5,0x79,0x53,0x13,0xde,0xbe, -0x14,0x91,0xfc,0x03,0xff,0x00,0xaf,0x5f,0x01,0xff,0x00,0x23,0x1c,0xd3,0xfb,0xa9, -0xfe,0x0b,0xfc,0xd9,0xf9,0xfd,0x2f,0xf8,0x52,0xcd,0x5c,0xf7,0x8c,0x7f,0x25,0xff, -0x00,0x04,0xf7,0x30,0x30,0x00,0xe9,0x4b,0x48,0x29,0x6b,0xef,0xcf,0xd0,0x02,0xbc, -0xff,0x00,0xe3,0x67,0xc0,0x9f,0x05,0xfe,0xd0,0x9e,0x0c,0x97,0xc3,0x1e,0x37,0xd1, -0xe3,0xd5,0xb4,0xd2,0xe2,0x58,0x9b,0x71,0x49,0xad,0xe5,0x00,0x81,0x24,0x4e,0x39, -0x46,0xc1,0x23,0x8e,0xa0,0x90,0x72,0x09,0x15,0xe8,0x14,0x50,0x07,0xe6,0x47,0x8d, -0x3f,0xe0,0x89,0xda,0x1d,0xc5,0xc3,0x4b,0xe1,0x5f,0x89,0xb7,0xfa,0x7c,0x1c,0x9f, -0x23,0x57,0xd3,0x92,0xe5,0x87,0xfd,0xb4,0x47,0x8f,0xff,0x00,0x41,0xaf,0xcb,0x8f, -0x1b,0x68,0x56,0x5e,0x17,0xf1,0x86,0xb5,0xa3,0xe9,0xda,0xb4,0x7a,0xf5,0x8e,0x9f, -0x79,0x2d,0xac,0x3a,0x9c,0x31,0x98,0xe3,0xba,0x54,0x72,0xa2,0x55,0x52,0x49,0x0a, -0xd8,0xc8,0xe7,0xa1,0xaf,0xe9,0x9b,0xc6,0x1a,0x1d,0xc7,0x89,0x7c,0x2b,0xac,0x69, -0x16,0x9a,0x94,0xba,0x35,0xcd,0xfd,0x9c,0xb6,0xb1,0xea,0x10,0x20,0x69,0x2d,0x99, -0xd0,0xa8,0x91,0x01,0xe0,0xb2,0xe7,0x23,0x3c,0x64,0x0a,0xfc,0xdd,0xd4,0x3f,0xe0, -0x89,0x1a,0x41,0x95,0x5a,0xc7,0xe2,0x9d,0xea,0xc6,0x18,0x12,0x97,0x3a,0x42,0x31, -0x23,0xb8,0xca,0xca,0x3f,0x95,0x3b,0x92,0xd1,0xf2,0x97,0xc2,0x7f,0xf8,0x26,0x5f, -0xc6,0x3f,0x8c,0xbf,0x0d,0x34,0x4f,0x1b,0xe8,0x03,0x41,0x87,0x4b,0xd5,0xe2,0x69, -0xad,0xed,0xf5,0x0b,0xd7,0x86,0xe3,0x60,0x76,0x50,0xc5,0x7c,0xb2,0x30,0xdb,0x77, -0x0e,0x79,0x04,0x1a,0xd3,0xbc,0xff,0x00,0x82,0x4e,0x7e,0xd1,0x16,0xa4,0x88,0xf4, -0x0d,0x1e,0xe8,0x0e,0xf0,0xeb,0x30,0x8c,0xff,0x00,0xdf,0x44,0x57,0xed,0xff,0x00, -0x85,0x7c,0x35,0x63,0xe0,0xdf,0x0c,0xe9,0x3a,0x06,0x99,0x17,0x91,0xa6,0xe9,0x76, -0x91,0x59,0x5a,0xc5,0x9c,0xec,0x8a,0x34,0x08,0x83,0xf2,0x51,0x5a,0xb4,0x5c,0x2c, -0x8f,0xc0,0x4d,0x47,0xfe,0x09,0xa7,0xfb,0x47,0x69,0xcc,0xc0,0xfc,0x38,0x9a,0xe5, -0x57,0xf8,0xad,0xb5,0x1b,0x47,0x07,0xe9,0xfb,0xdc,0x9a,0xc6,0xd1,0xbf,0x60,0x7f, -0x8e,0xf7,0xde,0x25,0xd3,0x34,0xbb,0xcf,0x86,0x7e,0x20,0xb0,0x86,0xea,0xee,0x2b, -0x79,0x6f,0x5e,0xd7,0x74,0x50,0x2b,0x38,0x53,0x23,0x32,0x92,0x02,0xa8,0x39,0x27, -0x3d,0x05,0x7f,0x42,0x78,0xa0,0x80,0x7b,0x51,0x70,0xe5,0x46,0x2f,0x82,0xfc,0x29, -0x63,0xe0,0x5f,0x07,0x68,0x9e,0x1c,0xd3,0x23,0x58,0xb4,0xfd,0x26,0xce,0x1b,0x28, -0x11,0x46,0x00,0x48,0xd0,0x28,0xfd,0x05,0x7c,0x4f,0xff,0x00,0x05,0x7d,0xf8,0xb1, -0x73,0xe1,0x4f,0x80,0x9a,0x6f,0x82,0x34,0xd5,0xb8,0x6b,0xef,0x15,0xde,0xff,0x00, -0xa4,0x98,0x63,0x2c,0xa2,0xce,0xdf,0x6b,0xb8,0x62,0x3a,0x66,0x46,0x84,0x0f,0x50, -0x1b,0xd2,0xbe,0xf3,0xa6,0xb2,0x2b,0x75,0x00,0xfd,0x45,0x22,0x8f,0xe5,0xad,0xa3, -0x64,0x24,0x32,0xb2,0xe3,0xfb,0xc3,0x14,0xd1,0xcf,0x4e,0x6b,0xfa,0x8b,0xbc,0xd1, -0x74,0xfd,0x42,0x33,0x1d,0xd5,0x85,0xb5,0xca,0x1e,0xab,0x34,0x2a,0xe0,0xfe,0x04, -0x57,0x2d,0xab,0xfc,0x11,0xf8,0x77,0xaf,0xa9,0x5d,0x4b,0xc0,0x7e,0x19,0xbf,0x53, -0xd4,0x5c,0xe9,0x16,0xf2,0x67,0xf3,0x4a,0x77,0x23,0x94,0xfe,0x67,0x71,0x9a,0x2b, -0xfa,0x3a,0xba,0xfd,0x90,0x3e,0x07,0x5e,0xe7,0xcd,0xf8,0x43,0xe0,0x9c,0x9e,0xa5, -0x34,0x1b,0x64,0x3f,0x98,0x41,0x5c,0xbe,0xad,0xff,0x00,0x04,0xfb,0xfd,0x9e,0xb5, -0x9c,0xf9,0xdf,0x0b,0x74,0x58,0x73,0xff,0x00,0x3e,0x7e,0x6d,0xbf,0xfe,0x8b,0x75, -0xc5,0x3b,0x87,0x29,0xfc,0xf6,0xd1,0x5f,0xbd,0x17,0x5f,0xf0,0x4b,0x8f,0xd9,0xb2, -0xe9,0xcb,0x0f,0x01,0xcd,0x01,0x3f,0xf3,0xcb,0x5b,0xbe,0x03,0xf2,0xf3,0xab,0x9f, -0xd5,0x3f,0xe0,0x92,0x1f,0xb3,0xed,0xfe,0xef,0xb3,0xe9,0xba,0xf6,0x9b,0x9e,0x9f, -0x66,0xd5,0xdd,0xb1,0xff,0x00,0x7f,0x03,0x51,0x70,0xe5,0x3f,0x0d,0xe8,0xaf,0xd9, -0xab,0xef,0xf8,0x23,0x0f,0xc1,0xdb,0x87,0x63,0x6d,0xe2,0x8f,0x19,0x5a,0x03,0xd1, -0x7e,0xd5,0x6c,0xe0,0x7e,0x70,0x56,0x05,0xff,0x00,0xfc,0x11,0x43,0xc0,0x32,0x03, -0xf6,0x2f,0x88,0x9e,0x24,0xb7,0x3d,0xbe,0xd1,0x6f,0x6f,0x2e,0x3f,0x25,0x5a,0x2e, -0x1c,0xac,0xfc,0x89,0x8a,0xee,0x68,0x71,0xe5,0xcd,0x24,0x78,0xfe,0xeb,0x11,0x5a, -0xf6,0x3e,0x3b,0xf1,0x2e,0x98,0x41,0xb3,0xf1,0x0e,0xab,0x69,0x8e,0x9e,0x45,0xec, -0xa9,0xfc,0x9a,0xbf,0x4c,0x35,0x5f,0xf8,0x22,0x28,0x24,0xff,0x00,0x66,0x7c,0x59, -0xd8,0x3b,0x0b,0xbd,0x13,0x71,0xff,0x00,0xc7,0x67,0x15,0xcd,0xde,0xff,0x00,0xc1, -0x12,0xbc,0x5d,0x19,0x3f,0x64,0xf8,0x9d,0xa2,0x4e,0x3b,0x79,0xda,0x6c,0xd1,0xff, -0x00,0x27,0x6a,0x05,0x66,0x7c,0x2f,0xa6,0xfe,0xd0,0x9f,0x14,0x34,0x62,0x0d,0x8f, -0xc4,0x5f,0x15,0x5a,0xe3,0xa7,0x95,0xac,0xdc,0x2f,0xfe,0xcf,0x5d,0x56,0x9f,0xfb, -0x6a,0xfc,0x77,0xd2,0xc0,0x16,0xff,0x00,0x15,0xfc,0x53,0x81,0xda,0x5d,0x45,0xe4, -0xff,0x00,0xd0,0xb3,0x5f,0x4c,0x6a,0xdf,0xf0,0x46,0x1f,0x8b,0x96,0xc7,0xfe,0x25, -0xfe,0x2c,0xf0,0x85,0xf0,0xff,0x00,0xa6,0xb3,0x5c,0xc2,0x7f,0xf4,0x4b,0x57,0x29, -0x7d,0xff,0x00,0x04,0x87,0xf8,0xfd,0x68,0x48,0x8a,0x1f,0x0d,0x5e,0x81,0xde,0x1d, -0x57,0x19,0xff,0x00,0xbe,0xd1,0x68,0x1d,0x99,0xe6,0x56,0x1f,0xf0,0x50,0xcf,0xda, -0x23,0x4f,0x60,0x53,0xe2,0x86,0xab,0x28,0x1d,0xae,0x22,0x82,0x5f,0xfd,0x0a,0x33, -0x5d,0x4e,0x9b,0xff,0x00,0x05,0x4c,0xfd,0xa3,0x34,0xec,0x67,0xc6,0x36,0x97,0x80, -0x76,0xb9,0xd2,0x2d,0x9b,0x3f,0x92,0x03,0x4b,0xa9,0xff,0x00,0xc1,0x2c,0x7f,0x68, -0xdd,0x3c,0x9d,0x9e,0x0d,0xb4,0xbd,0x03,0xbd,0xb6,0xb1,0x68,0x73,0xf8,0x34,0x8a, -0x6b,0x8d,0xbf,0xff,0x00,0x82,0x7f,0xfe,0xd0,0xba,0x73,0xb2,0xc9,0xf0,0xb3,0x5a, -0x93,0x6f,0x7b,0x7f,0x2a,0x50,0x7e,0x9b,0x5c,0xe6,0x8d,0x03,0x53,0xd5,0xac,0x7f, -0xe0,0xaf,0x7f,0x1f,0x6d,0x14,0x09,0x64,0xf0,0xcd,0xe7,0xfb,0x53,0x69,0x44,0x1f, -0xfc,0x72,0x45,0xae,0x9f,0x4b,0xff,0x00,0x82,0xce,0xfc,0x5e,0xb4,0x50,0x2f,0x7c, -0x2f,0xe1,0x1b,0xff,0x00,0x53,0xf6,0x7b,0x88,0xcf,0xe9,0x35,0x7c,0xc5,0x7b,0xfb, -0x1b,0xfc,0x73,0xd3,0xf7,0x79,0xff,0x00,0x09,0xbc,0x5c,0x02,0x8c,0x92,0x9a,0x4c, -0xce,0x07,0xe2,0xaa,0x6b,0x90,0xd4,0x7e,0x0a,0xfc,0x42,0xd1,0xd9,0x96,0xfb,0xc0, -0x9e,0x25,0xb4,0x2b,0xf7,0xbc,0xed,0x22,0xe1,0x71,0xf9,0xa5,0x1a,0x05,0xd9,0xf7, -0xa6,0x9f,0xff,0x00,0x05,0xb3,0xf1,0x7c,0x48,0x3e,0xdd,0xf0,0xcb,0x44,0xb8,0x7f, -0x5b,0x7d,0x46,0x68,0x87,0xe4,0x55,0xab,0x7f,0x4f,0xff,0x00,0x82,0xdd,0xce,0x31, -0xf6,0xef,0x84,0x91,0xb7,0xa9,0xb7,0xd7,0x88,0xfd,0x0c,0x06,0xbf,0x32,0xee,0x7c, -0x31,0xac,0x59,0x92,0x27,0xd2,0xaf,0x61,0x23,0xaf,0x99,0x6c,0xeb,0x8f,0xcc,0x56, -0x73,0xa1,0x8d,0xb6,0xb0,0x2a,0xde,0x87,0x8a,0x34,0x0b,0xb3,0xf5,0xc7,0x4a,0xff, -0x00,0x82,0xd8,0xf8,0x36,0x54,0xce,0xa5,0xf0,0xd7,0x5d,0xb6,0x6e,0xe2,0xd2,0xfa, -0x19,0x87,0xfe,0x3c,0x12,0xba,0x0b,0x2f,0xf8,0x2d,0x17,0xc2,0x59,0x71,0xf6,0x9f, -0x06,0xf8,0xc6,0xdc,0xfa,0xa4,0x36,0xae,0x3f,0xf4,0x78,0xaf,0xc6,0xdc,0xe7,0xbd, -0x18,0x34,0x58,0x2e,0xcf,0xdb,0xbd,0x37,0xfe,0x0a,0xfd,0xf0,0x16,0xf5,0x03,0x5c, -0x7f,0xc2,0x4d,0x60,0x4f,0x69,0xb4,0xb0,0xf8,0xff,0x00,0xbe,0x24,0x6a,0xe9,0xec, -0xbf,0xe0,0xaa,0x5f,0xb3,0x75,0xdc,0x41,0xe4,0xf1,0xb5,0xdd,0xa3,0x1f,0xe0,0x9b, -0x44,0xbd,0x24,0x7e,0x2b,0x11,0x1f,0xad,0x7e,0x0e,0xe2,0x8a,0x2c,0x1c,0xc7,0xf4, -0x01,0x63,0xff,0x00,0x05,0x23,0xfd,0x9c,0x6f,0xc0,0xd9,0xf1,0x32,0xce,0x2c,0xf6, -0x9e,0xc6,0xee,0x3f,0xfd,0x0a,0x21,0x5d,0x6e,0x99,0xfb,0x6a,0xfc,0x06,0xd5,0xe3, -0x0f,0x07,0xc5,0xcf,0x08,0xc6,0x0f,0x6b,0xad,0x56,0x2b,0x73,0xf9,0x48,0x54,0xd7, -0xf3,0xa5,0x9a,0x29,0x58,0x39,0x8f,0xe9,0x32,0xcf,0xf6,0x9c,0xf8,0x3f,0xa8,0x15, -0x16,0xdf,0x15,0x3c,0x17,0x39,0x6e,0x82,0x3f,0x10,0x5a,0x1c,0xff,0x00,0xe4,0x4a, -0xeb,0xb4,0xdf,0x1f,0x78,0x63,0x59,0x50,0xd6,0x1e,0x22,0xd2,0x6f,0x94,0xf2,0x0d, -0xb5,0xf4,0x52,0x03,0xf9,0x31,0xaf,0xe6,0x16,0x9c,0xb2,0x32,0x10,0x55,0x8a,0x91, -0xdc,0x1a,0x2c,0x1c,0xc7,0xf5,0x25,0x14,0xf1,0xcc,0x9b,0xe3,0x75,0x75,0xf5,0x52, -0x08,0xa7,0xe6,0xbf,0x97,0x8b,0x7f,0x10,0xea,0xb6,0x98,0xf2,0x35,0x3b,0xc8,0x71, -0xd3,0xcb,0xb8,0x75,0xc7,0xe4,0x6b,0x7b,0x4f,0xf8,0xc3,0xe3,0xcd,0x2b,0x1f,0x62, -0xf1,0xb7,0x88,0xad,0x31,0xd3,0xc9,0xd5,0x67,0x4c,0x7e,0x4f,0x45,0x87,0xcc,0x7f, -0x4d,0x39,0xa5,0xaf,0xe7,0x07,0x4e,0xfd,0xae,0x3e,0x35,0xe9,0x48,0xa9,0x69,0xf1, -0x5b,0xc5,0xf0,0xa2,0xf0,0x17,0xfb,0x66,0x72,0x3f,0x22,0xd5,0xd1,0xe9,0xff,0x00, -0xb7,0xbf,0xed,0x07,0xa6,0xe3,0xca,0xf8,0xab,0xaf,0xc9,0x8e,0xd7,0x12,0x24,0xdf, -0xfa,0x1a,0x9a,0x2c,0x1c,0xc8,0xfe,0x86,0xe8,0xaf,0xc0,0xed,0x33,0xfe,0x0a,0x75, -0xfb,0x46,0xe9,0x7d,0x3c,0x7c,0x2e,0x87,0xa5,0xd6,0x99,0x69,0x27,0xf3,0x8f,0x35, -0xd2,0xd9,0x7f,0xc1,0x5b,0x3f,0x68,0x4b,0x5c,0x79,0xba,0xae,0x85,0x79,0xff,0x00, -0x5d,0xb4,0x88,0xc6,0x7f,0xef,0x82,0xb4,0x58,0x77,0x47,0xee,0x65,0x15,0xf8,0xa9, -0xa6,0xff,0x00,0xc1,0x63,0xbe,0x37,0x5a,0x11,0xf6,0xad,0x2f,0xc2,0x77,0xc3,0xbe, -0xeb,0x09,0x90,0xff,0x00,0xe3,0xb3,0x0a,0xea,0xf4,0xff,0x00,0xf8,0x2d,0x67,0xc4, -0x28,0x71,0xf6,0xdf,0x87,0xfe,0x1b,0xb9,0xff,0x00,0xae,0x33,0xdc,0x45,0xfc,0xd9, -0xa8,0xb0,0x5d,0x1f,0xb0,0x14,0x57,0xe4,0xf5,0x8f,0xfc,0x16,0xe7,0x5b,0x56,0x1f, -0x6c,0xf8,0x51,0x60,0xeb,0xdc,0xc1,0xad,0x3a,0x9f,0xd6,0x13,0x5d,0x66,0x99,0xff, -0x00,0x05,0xb7,0xd0,0x5d,0x07,0xf6,0x8f,0xc2,0xdd,0x4a,0x27,0xef,0xf6,0x5d,0x56, -0x37,0x1f,0xf8,0xf4,0x62,0x8b,0x05,0xd1,0xfa,0x6b,0x45,0x7e,0x77,0xd8,0xff,0x00, -0xc1,0x6a,0x7e,0x18,0xc8,0x83,0xed,0x7e,0x06,0xf1,0x6c,0x12,0x1e,0xa2,0x1f,0xb2, -0xc8,0x07,0xe2,0x65,0x5f,0xe5,0x5d,0x16,0x9b,0xff,0x00,0x05,0x8e,0xf8,0x23,0x76, -0x07,0xda,0x74,0xaf,0x17,0x58,0x9e,0xfb,0xec,0x21,0x7c,0x7f,0xdf,0x33,0x1a,0x56, -0x0b,0xa3,0xee,0xea,0x2b,0xe3,0xdd,0x33,0xfe,0x0a,0xbd,0xfb,0x3a,0xdf,0x45,0xbe, -0x7f,0x12,0x6a,0xba,0x71,0xfe,0xe5,0xce,0x8d,0x72,0xc7,0xff,0x00,0x21,0xab,0x0a, -0xdd,0xb2,0xff,0x00,0x82,0x9c,0x7e,0xcd,0xd7,0xcc,0x14,0x7c,0x43,0x10,0x93,0xff, -0x00,0x3d,0xb4,0xab,0xd4,0xfe,0x70,0xd0,0x3b,0x9f,0x52,0xd1,0x5e,0x13,0xa6,0xfe, -0xdd,0x5f,0x00,0x35,0x58,0x95,0xe2,0xf8,0xb1,0xe1,0xa8,0x81,0xed,0x75,0x77,0xe4, -0x1f,0xc9,0xc0,0x35,0xbd,0x6b,0xfb,0x59,0x7c,0x14,0xbd,0x0a,0x61,0xf8,0xb5,0xe0, -0xa6,0xdd,0xd0,0x1d,0x7e,0xd4,0x13,0xf8,0x17,0xa0,0x0f,0x58,0xa2,0xb8,0xed,0x33, -0xe3,0x27,0x80,0xb5,0xa4,0x56,0xd3,0xfc,0x6d,0xe1,0xdb,0xd5,0x6e,0x86,0xdf,0x55, -0x81,0xf3,0xf9,0x3d,0x74,0xd6,0x9a,0xb5,0x8d,0xfc,0x61,0xed,0xaf,0x2d,0xee,0x10, -0xf4,0x68,0xa5,0x56,0x07,0xf1,0x06,0x80,0x2d,0xd4,0x17,0x56,0x70,0x5e,0x46,0x63, -0x9e,0x08,0xe7,0x8c,0xf5,0x59,0x14,0x30,0x3f,0x81,0xa9,0x43,0x82,0x32,0x0e,0x7e, -0x94,0xb9,0xa4,0xd2,0x6a,0xcc,0x37,0x39,0x4b,0xff,0x00,0x85,0x9e,0x14,0xd4,0x41, -0x12,0xe8,0x56,0x6a,0x4f,0x56,0x85,0x3c,0xa3,0xf9,0xae,0x2b,0x02,0xf3,0xf6,0x7d, -0xf0,0x95,0xc6,0x7c,0xb8,0x6e,0xad,0x73,0xff,0x00,0x3c,0xae,0x09,0xff,0x00,0xd0, -0xb3,0x5e,0x95,0x9a,0x2b,0x86,0xa6,0x5f,0x84,0xab,0xf1,0xd2,0x8b,0xf9,0x23,0x07, -0x42,0x9c,0xb7,0x8a,0x3c,0x7e,0x6f,0xd9,0xa7,0x44,0x63,0xfb,0xad,0x57,0x50,0x4f, -0xf7,0xbc,0xb6,0xff,0x00,0xd9,0x45,0x56,0x6f,0xd9,0x9b,0x4f,0xcf,0xcb,0xad,0x5c, -0x8f,0xac,0x4a,0x7f,0xad,0x7b,0x55,0x26,0x2b,0x8d,0xe4,0xb9,0x7b,0xff,0x00,0x97, -0x4b,0xf1,0xff,0x00,0x33,0x3f,0xaa,0x50,0xfe,0x53,0xc6,0x13,0xf6,0x66,0xd3,0x54, -0xfc,0xda,0xcd,0xd1,0xff,0x00,0x76,0x35,0x15,0x7e,0xd3,0xf6,0x70,0xf0,0xdc,0x0c, -0x0c,0xd7,0x7a,0x85,0xcf,0xb3,0x48,0x8a,0x3f,0x45,0xaf,0x58,0xc5,0x2d,0x38,0xe4, -0xd8,0x08,0xed,0x49,0x02,0xc2,0xd1,0x5f,0x64,0xe2,0x74,0xcf,0x83,0x7e,0x11,0xd2, -0x88,0x29,0xa3,0xc5,0x3b,0x7a,0xdc,0xb3,0x4b,0xfa,0x31,0x22,0xba,0xfb,0x4b,0x2b, -0x7b,0x08,0x56,0x1b,0x68,0x23,0x82,0x25,0xe0,0x24,0x48,0x14,0x0f,0xc0,0x54,0xf4, -0x57,0xa5,0x4b,0x0f,0x46,0x82,0xb5,0x28,0x25,0xe8,0x8e,0x88,0xc2,0x30,0xf8,0x55, -0x82,0x8a,0x28,0xae,0x82,0xc2,0x8a,0x28,0xa0,0x02,0x8a,0x28,0xa0,0x0c,0xef,0x10, -0xcb,0xe4,0xe8,0x97,0xaf,0xe9,0x13,0x7f,0x2a,0xf8,0x0b,0xe2,0x14,0xe6,0x7f,0x11, -0x5d,0x31,0xe7,0xe6,0x35,0xf7,0x7f,0x8e,0x66,0xf2,0x3c,0x2d,0xa8,0x36,0x71,0xfb, -0xb2,0x2b,0xe0,0x2f,0x18,0x4b,0xe6,0xeb,0x37,0x6d,0xfe,0xd1,0xaf,0x88,0xe2,0x29, -0x7b,0xf4,0xa3,0xea,0x7c,0x67,0x12,0x4a,0xd4,0xa2,0x8f,0x00,0xf8,0xed,0x75,0xe5, -0x68,0x93,0x8c,0xf4,0x42,0x7f,0x4a,0xfd,0x6a,0xf8,0x37,0xa6,0xff,0x00,0x63,0x7c, -0x24,0xf0,0x55,0x81,0x50,0x86,0xdb,0x45,0xb3,0x88,0xa8,0x18,0xc1,0x10,0xa0,0xaf, -0xc8,0x7f,0x8e,0xbf,0xe9,0x36,0x82,0xd8,0x13,0x99,0x59,0x63,0xe3,0xfd,0xa3,0x8f, -0xeb,0x5f,0xb3,0x7a,0x25,0xa8,0xb1,0xd1,0xec,0x6d,0x87,0x48,0x60,0x8e,0x31,0xf8, -0x28,0x1f,0xd2,0xbd,0xcc,0xa9,0x5a,0x82,0x38,0xf8,0x3e,0x3f,0xec,0xd5,0x27,0xde, -0x45,0xea,0x28,0xa2,0xbd,0xb3,0xef,0xcf,0xcd,0xfd,0x0b,0x4e,0x93,0xc4,0x1e,0x25, -0x8e,0xce,0x20,0x5a,0x4b,0x8b,0x92,0xbf,0x9b,0x1a,0xfd,0x0a,0xf0,0xbe,0x8b,0x17, -0x87,0xb4,0x1b,0x1d,0x3a,0x15,0xc2,0x41,0x12,0xa7,0xe3,0x8e,0x6b,0xe1,0x7f,0x80, -0x9a,0xce,0x9f,0xa2,0x7c,0x4f,0x67,0xd6,0x07,0x96,0x6c,0xae,0x65,0x88,0xa3,0x8e, -0x56,0x40,0xe4,0x73,0x9f,0xa5,0x7d,0xb5,0x6f,0xf1,0x0b,0x40,0xb8,0x50,0x57,0x51, -0x8b,0xf1,0x35,0xf2,0x19,0x34,0x29,0xd1,0x9d,0x59,0xce,0x49,0x4a,0xf6,0xf9,0x1f, -0x11,0xc3,0x2a,0x9a,0xc3,0xca,0xa4,0x9f,0xbc,0xdd,0xbe,0xe3,0xa4,0xa2,0xb1,0xe3, -0xf1,0x6e,0x91,0x2f,0xdd,0xbf,0x84,0xff,0x00,0xc0,0xaa,0xd2,0x6b,0x76,0x12,0x7d, -0xdb,0xc8,0x4f,0xfc,0x0c,0x57,0xd5,0xaa,0x90,0x7b,0x34,0x7d,0xaa,0x94,0x5f,0x52, -0xf5,0x23,0x67,0x1c,0x75,0xf7,0xa8,0x12,0xf6,0xde,0x5f,0xb9,0x3c,0x6d,0xf4,0x61, -0x52,0x89,0x50,0xf4,0x70,0x7f,0x1a,0xbb,0xa6,0x3b,0x8e,0x19,0xc0,0xc8,0xe6,0x8a, -0x40,0xd9,0x1d,0x69,0x73,0x4c,0x62,0xd1,0x49,0x45,0x00,0x2d,0x14,0x51,0x40,0x05, -0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x09,0x8a,0x5a,0x28,0xa0, -0x02,0x8a,0x28,0xa0,0x02,0x92,0x96,0x8a,0x00,0x4c,0x0f,0x4a,0x31,0x4b,0x45,0x00, -0x25,0x2d,0x14,0x50,0x01,0x45,0x14,0x50,0x03,0x1e,0x24,0x91,0x4a,0xba,0x2b,0x29, -0xea,0x08,0xc8,0xac,0x4d,0x5b,0xc0,0x5e,0x19,0xd7,0xa2,0x31,0xea,0x7e,0x1d,0xd2, -0x75,0x18,0xcf,0x54,0xba,0xb1,0x8a,0x50,0x7f,0x06,0x53,0x5b,0xd4,0x50,0x07,0x98, -0xdf,0x7e,0xcb,0xdf,0x07,0x35,0x26,0x66,0xba,0xf8,0x51,0xe0,0xa9,0xd9,0xba,0xb3, -0xf8,0x7e,0xd0,0x93,0xf8,0xf9,0x75,0x85,0xa9,0xfe,0xc5,0x1f,0x01,0xb5,0x58,0xca, -0x4d,0xf0,0x8f,0xc2,0x31,0x8f,0x5b,0x6d,0x2a,0x28,0x0f,0xe7,0x18,0x53,0x5e,0xd7, -0x45,0x00,0x7c,0xcb,0xa9,0x7f,0xc1,0x35,0xff,0x00,0x67,0x0d,0x53,0x3e,0x67,0xc3, -0x4b,0x58,0x49,0xef,0x6d,0xa8,0x5d,0xc3,0xff,0x00,0xa0,0xca,0x2b,0x9e,0xbe,0xff, -0x00,0x82,0x54,0x7e,0xce,0x37,0x6b,0x88,0xbc,0x21,0x7f,0x64,0x7f,0xbd,0x06,0xb7, -0x78,0x4f,0xfe,0x3f,0x23,0x57,0xd7,0x74,0x50,0x16,0x3e,0x1b,0xd6,0x3f,0xe0,0x8f, -0x5f,0x02,0xb5,0x01,0xfe,0x89,0x71,0xe2,0x9d,0x2c,0xff,0x00,0xd3,0xbe,0xa4,0x8f, -0xff,0x00,0xa3,0x23,0x6a,0xe5,0xae,0xbf,0xe0,0x8a,0xff,0x00,0x0b,0x1c,0x9f,0xb3, -0xf8,0xe3,0xc6,0x10,0xe7,0xa7,0x98,0xd6,0xaf,0x8f,0xca,0x11,0x5f,0xa1,0xb4,0x50, -0x2b,0x23,0xf3,0x37,0x55,0xff,0x00,0x82,0x25,0x78,0x72,0x40,0xdf,0xd9,0x9f,0x14, -0x35,0x4b,0x73,0xdb,0xed,0x7a,0x5c,0x72,0xe3,0xfe,0xf9,0x75,0xae,0x4e,0xef,0xfe, -0x08,0x8b,0xab,0xab,0x1f,0xb2,0xfc,0x59,0xb1,0x91,0x7b,0x09,0xb4,0x37,0x53,0xf8, -0xe2,0x73,0x5f,0xab,0xd4,0x50,0x16,0x47,0xe4,0x0e,0xa5,0xff,0x00,0x04,0x51,0xf8, -0x81,0x10,0x3f,0x60,0xf8,0x85,0xe1,0xbb,0xa3,0xdb,0xcf,0xb7,0x9e,0x1c,0xfe,0x41, -0xab,0x8f,0xd4,0xff,0x00,0xe0,0x8e,0x7f,0x1c,0x2d,0x1b,0x16,0xba,0x97,0x84,0xaf, -0xc7,0xaa,0xea,0x12,0xa7,0xe8,0xd0,0xd7,0xed,0x6d,0x18,0xa7,0x70,0xb2,0x3f,0x0c, -0x35,0x0f,0xf8,0x24,0xc7,0xed,0x0d,0x65,0x9f,0x2b,0x45,0xd1,0x6f,0xb1,0xff,0x00, -0x3e,0xfa,0xc4,0x43,0x3f,0xf7,0xde,0xda,0xe5,0x35,0x6f,0xf8,0x26,0x9f,0xed,0x1d, -0xa4,0xb1,0x07,0xe1,0xcc,0xd7,0x60,0x75,0x6b,0x5d,0x42,0xd2,0x41,0xff,0x00,0xa3, -0x6b,0xf7,0xeb,0x14,0x62,0x8b,0x85,0x91,0xfc,0xf0,0x5e,0xfe,0xc2,0x3f,0xb4,0x05, -0x81,0x22,0x5f,0x85,0x1e,0x22,0x6c,0x7f,0xcf,0x1b,0x71,0x2f,0xfe,0x80,0x4d,0x72, -0xfa,0xa7,0xec,0xb7,0xf1,0x8b,0x46,0x62,0xb7,0x9f,0x0b,0x7c,0x5f,0x16,0x3a,0x91, -0xa2,0x5c,0x38,0x1f,0x8a,0xa1,0x15,0xfd,0x23,0xd1,0x8a,0x2e,0x2b,0x1f,0xcc,0x7d, -0xff,0x00,0xc2,0xef,0x19,0xe9,0x4c,0x56,0xf7,0xc2,0x5a,0xed,0x99,0x1d,0x44,0xfa, -0x6c,0xc9,0x8f,0xcd,0x6b,0x02,0xe7,0x4e,0xbb,0xb3,0x62,0xb3,0xda,0xcd,0x03,0x0e, -0xa2,0x48,0xca,0x91,0xf9,0x8a,0xfe,0xa3,0xf0,0x2a,0xbd,0xc6,0x99,0x67,0x76,0x8c, -0x93,0xda,0xc1,0x32,0xb7,0x05,0x64,0x8c,0x30,0x3f,0x98,0xa2,0xe1,0xca,0x7f,0x2e, -0x18,0xa2,0xbf,0xa6,0x6d,0x43,0xe0,0xc7,0xc3,0xed,0x58,0xb1,0xbe,0xf0,0x2f,0x86, -0xaf,0x0b,0x72,0xc6,0x7d,0x22,0xdd,0xc9,0xfa,0xe5,0x2b,0x9e,0xbd,0xfd,0x95,0xbe, -0x0c,0xea,0x0a,0xcb,0x3f,0xc2,0x8f,0x06,0x3e,0xee,0xa4,0x68,0x36,0xca,0x7f,0x30, -0x80,0xd1,0x71,0x72,0x9f,0xcd,0xd5,0x18,0x3d,0x6b,0xfa,0x1a,0xd5,0x7f,0x60,0x8f, -0xd9,0xf7,0x58,0x56,0x13,0xfc,0x29,0xd0,0x23,0xdd,0xd4,0xda,0xc4,0xd0,0x1f,0xcd, -0x18,0x57,0x23,0x77,0xff,0x00,0x04,0xbb,0xfd,0x9b,0x2e,0xd9,0x9b,0xfe,0x15,0xfc, -0x90,0x33,0x73,0x98,0x75,0xbb,0xf1,0xfa,0x79,0xf8,0x1f,0x95,0x3b,0x87,0x29,0xf8, -0x27,0x45,0x7e,0xe5,0xeb,0x3f,0xf0,0x49,0x4f,0xd9,0xef,0x53,0x8c,0xad,0xae,0x91, -0xad,0xe9,0x07,0xb3,0x5a,0x6b,0x12,0xb9,0x1f,0xf7,0xf7,0x7d,0x71,0xd7,0xbf,0xf0, -0x46,0x0f,0x83,0x73,0xb9,0x6b,0x7f,0x14,0xf8,0xd6,0xdb,0x3f,0xc3,0xf6,0xcb,0x47, -0x03,0xf3,0xb6,0xcf,0xeb,0x45,0xc3,0x94,0xfc,0x65,0xa2,0xbf,0x5f,0xb5,0x5f,0xf8, -0x22,0x97,0xc3,0xc9,0x50,0x0d,0x37,0xe2,0x0f,0x89,0xed,0x5f,0xd6,0xea,0x1b,0x79, -0xc7,0xe4,0xa8,0x95,0xc8,0xea,0x7f,0xf0,0x44,0x58,0x49,0x3f,0xd9,0xdf,0x16,0x9d, -0x7d,0x05,0xd6,0x85,0x9f,0xd5,0x67,0x14,0x5c,0x56,0x67,0xe5,0x7d,0x48,0x97,0x33, -0x45,0xf7,0x25,0x74,0xff,0x00,0x75,0x88,0xaf,0xd2,0x8b,0xef,0xf8,0x22,0x57,0x8a, -0x63,0xcf,0xd8,0xfe,0x28,0xe9,0x13,0xfa,0x79,0xfa,0x54,0xb1,0x67,0xf2,0x91,0xab, -0x95,0xd4,0xff,0x00,0xe0,0x8c,0x1f,0x16,0xad,0xc9,0xfb,0x0f,0x8b,0x3c,0x27,0x7a, -0x07,0x4f,0x32,0x6b,0x88,0x89,0xff,0x00,0xc8,0x46,0x80,0xb3,0x3e,0x19,0xd3,0xfc, -0x77,0xe2,0x5d,0x25,0x95,0xac,0x7c,0x43,0xaa,0xd9,0x95,0xe4,0x1b,0x7b,0xd9,0x13, -0x1f,0x93,0x57,0x63,0xa7,0x7e,0xd3,0xbf,0x17,0xf4,0x95,0x55,0xb3,0xf8,0xa1,0xe2, -0xfb,0x74,0x5e,0x8a,0x9a,0xdd,0xc8,0x03,0xf0,0xdf,0x5f,0x47,0x5e,0x7f,0xc1,0x20, -0x7e,0x3e,0x5b,0x13,0xe5,0x8f,0x0b,0xdd,0x81,0xd3,0xc9,0xd5,0x58,0x67,0xfe,0xfa, -0x8c,0x57,0x35,0xa9,0xff,0x00,0xc1,0x2b,0xff,0x00,0x68,0xcd,0x3c,0x31,0x8f,0xc2, -0x16,0x77,0xd8,0xff,0x00,0x9f,0x5d,0x5e,0xd8,0xe7,0xe9,0xb9,0xd6,0x80,0xd4,0xf3, -0x8b,0x4f,0xdb,0x7b,0xe3,0xdd,0x96,0x3c,0xaf,0x8b,0x3e,0x29,0x38,0xe9,0xe6,0xdf, -0xb4,0x9f,0xfa,0x16,0x6b,0xa5,0xd3,0x7f,0xe0,0xa3,0xbf,0xb4,0x5e,0x99,0x81,0x1f, -0xc4,0xbb,0xd9,0x80,0xed,0x73,0x69,0x6d,0x2e,0x7f,0xef,0xa8,0xcd,0x56,0xbf,0xff, -0x00,0x82,0x78,0x7e,0xd1,0x3a,0x71,0x3e,0x67,0xc2,0xed,0x52,0x4c,0x7f,0xcf,0x09, -0xed,0xe5,0xff,0x00,0xd0,0x64,0x35,0xcd,0x6a,0x5f,0xb1,0x97,0xc7,0x4d,0x28,0x91, -0x71,0xf0,0x9f,0xc5,0x9c,0x75,0x30,0xe9,0x92,0x4a,0x3f,0x34,0x06,0x80,0xd4,0xf5, -0x8b,0x2f,0xf8,0x2a,0xd7,0xed,0x17,0x68,0xa0,0x3f,0x8a,0x34,0xdb,0xac,0x77,0x9f, -0x46,0xb7,0xe7,0xfe,0xf9,0x51,0x5b,0xf6,0x1f,0xf0,0x57,0xff,0x00,0x8f,0x56,0xa4, -0x79,0xeb,0xe1,0x8b,0xc0,0x3a,0xf9,0xba,0x5b,0x29,0x3f,0xf7,0xcc,0x82,0xbe,0x5b, -0xd4,0xfe,0x04,0xfc,0x49,0xd1,0x5c,0xa5,0xf7,0xc3,0xff,0x00,0x14,0x5a,0x30,0xea, -0x25,0xd1,0xee,0x17,0xff,0x00,0x64,0xae,0x7e,0xf3,0xc1,0x5e,0x21,0xd3,0xce,0x2e, -0xb4,0x1d,0x4e,0xd8,0xff,0x00,0xd3,0x6b,0x39,0x13,0xf9,0xad,0x03,0xd4,0xfb,0xcb, -0x4d,0xff,0x00,0x82,0xd2,0xfc,0x51,0xb7,0x50,0x2f,0x7c,0x15,0xe1,0x5b,0xcf,0x52, -0x82,0xe2,0x23,0xff,0x00,0xa3,0x0d,0x74,0x56,0x5f,0xf0,0x5b,0x5f,0x14,0x2e,0x05, -0xdf,0xc3,0x0d,0x22,0x5f,0x53,0x06,0xa7,0x2a,0x7f,0x34,0x35,0xf9,0xab,0x34,0x12, -0xdb,0xb6,0xd9,0x63,0x78,0x9b,0xd1,0xd4,0x83,0x4c,0xa3,0x40,0xbb,0x3f,0x54,0x74, -0xbf,0xf8,0x2d,0xcd,0xbe,0x40,0xd4,0x7e,0x14,0x4a,0x07,0x73,0x6b,0xad,0x03,0xfa, -0x34,0x35,0xd4,0x58,0xff,0x00,0xc1,0x6b,0xfc,0x07,0x20,0x1f,0x6c,0xf8,0x77,0xe2, -0x38,0x0f,0xfd,0x30,0xb9,0xb7,0x93,0xf9,0x95,0xaf,0xc8,0x6c,0x51,0x45,0x85,0xcc, -0xcf,0xd9,0x9d,0x3b,0xfe,0x0b,0x39,0xf0,0x82,0xe4,0x81,0x77,0xe1,0x8f,0x17,0xd9, -0x67,0xf8,0xbe,0xcd,0x6f,0x20,0x1f,0x94,0xd5,0xd7,0x69,0xdf,0xf0,0x56,0xff,0x00, -0xd9,0xf6,0xf2,0x20,0xd7,0x1a,0x96,0xbd,0xa7,0xb1,0xfe,0x19,0xf4,0x99,0x18,0x8f, -0xfb,0xe0,0xb0,0xaf,0xc3,0x8a,0xb5,0xa4,0xd8,0xbe,0xa7,0xaa,0xd9,0xd9,0xc4,0xbb, -0xa5,0xb8,0x99,0x21,0x50,0x3b,0x96,0x60,0x07,0xf3,0xa2,0xc3,0xb9,0xfd,0x3f,0xe8, -0x3a,0xd5,0xb7,0x88,0xf4,0x4d,0x3f,0x56,0xb3,0x2e,0x6c,0xef,0xed,0xe3,0xba,0x84, -0xc8,0xa5,0x58,0xa3,0xa8,0x65,0xca,0x9e,0x41,0xc1,0x1c,0x1a,0xbf,0x55,0x34,0xab, -0x18,0xf4,0xcd,0x32,0xd2,0xce,0x14,0x11,0xc5,0x6f,0x0a,0x44,0x88,0x3a,0x28,0x55, -0x00,0x0f,0xd2,0xad,0xd4,0x96,0x14,0x51,0x45,0x00,0x72,0x3f,0x14,0xe7,0xfb,0x3f, -0x83,0x6f,0x4f,0xa8,0xc5,0x7c,0x0d,0xe2,0x29,0x37,0xdf,0xdd,0x37,0xab,0x9a,0xfb, -0x9b,0xe3,0x65,0xcf,0x91,0xe0,0xc9,0x87,0xf7,0x8e,0x3f,0x4a,0xf8,0x43,0x5a,0x7d, -0xd3,0x4e,0xde,0xac,0x6b,0xe0,0x33,0xe7,0x7c,0x54,0x23,0xd9,0x1f,0x01,0xc4,0xf3, -0xb2,0x48,0xf1,0x4f,0x1a,0x42,0x35,0x2f,0x88,0x9e,0x12,0xb1,0x64,0xf3,0x16,0xe7, -0x5a,0xb2,0x84,0xa6,0x33,0xb8,0x34,0xe8,0x08,0xfc,0x8d,0x7e,0xcc,0xa0,0x0a,0xa1, -0x40,0xc0,0x1c,0x57,0xe3,0xef,0x87,0xac,0x9f,0x5c,0xfd,0xa4,0xfe,0x19,0x59,0x2f, -0x3b,0xbc,0x47,0x67,0x26,0x3d,0x92,0x40,0xe7,0xff,0x00,0x40,0xaf,0xd8,0x31,0x5f, -0x57,0x97,0x46,0xd4,0x11,0xd7,0xc2,0x71,0xe5,0xcb,0xef,0xdd,0xb1,0x68,0xa2,0x8a, -0xf5,0x0f,0xb4,0x3f,0x3c,0xbf,0x6b,0x4f,0x07,0xde,0xfc,0x28,0xf8,0xc1,0x3e,0xbf, -0x6f,0x19,0x5d,0x0b,0xc4,0x4d,0xf6,0x95,0x78,0xc6,0x04,0x73,0x80,0x04,0xaa,0x7d, -0xc9,0xf9,0xff,0x00,0xe0,0x47,0xd2,0xb9,0x0d,0x2b,0xc6,0x12,0x5d,0xc4,0xaf,0x15, -0xeb,0xe0,0x8e,0xcf,0x5f,0xa1,0xbf,0x13,0xfe,0x1a,0x68,0xdf,0x15,0xfc,0x21,0x77, -0xe1,0xfd,0x6e,0x0f,0x36,0xda,0x61,0xba,0x39,0x57,0x1b,0xe0,0x90,0x0f,0x96,0x44, -0x3d,0x88,0xcf,0xe3,0xc8,0x3c,0x1a,0xfc,0xed,0xf8,0x9f,0xfb,0x2e,0xf8,0xe3,0xe1, -0x16,0xa9,0x33,0xdb,0xac,0x97,0xda,0x46,0xec,0xc3,0x7f,0x6e,0xa4,0xc6,0xc3,0x3c, -0x06,0x1f,0xc2,0x7d,0x8f,0xe1,0x9a,0xf9,0x3c,0xcb,0x2d,0x84,0xe4,0xea,0x6c,0x7e, -0x4f,0x9d,0xe5,0x78,0x9c,0x16,0x22,0x58,0xac,0x22,0x6e,0x13,0x77,0x69,0x74,0x66, -0xfc,0x3e,0x28,0xd4,0x23,0xe6,0x3b,0xf9,0x47,0xfc,0x0e,0xaf,0x43,0xe3,0x9d,0x6e, -0x1f,0xbb,0xa9,0x4b,0xf8,0xb5,0x78,0xb9,0xb9,0xf1,0x3e,0x9f,0xf2,0x4d,0x68,0x5c, -0x8e,0xf8,0xe4,0xd2,0x8f,0x15,0xeb,0x11,0x7d,0xfb,0x09,0x3f,0x23,0x5f,0x35,0xf5, -0x19,0xaf,0x86,0x4b,0xef,0x3c,0x48,0xe2,0x71,0xd1,0x5f,0x0c,0xbe,0xf3,0xdd,0x21, -0xf8,0x9f,0xe2,0x38,0x0f,0xcb,0xa8,0xb9,0xad,0x1b,0x7f,0x8c,0xfe,0x26,0xb7,0xe9, -0x7a,0xcd,0xf5,0xaf,0x9f,0x57,0xc7,0x97,0x91,0xfd,0xfb,0x49,0x57,0xf0,0x35,0x22, -0x7c,0x46,0x2b,0xf7,0xe2,0x90,0x1f,0x71,0x4d,0x61,0x71,0x31,0xf8,0x64,0xfe,0xf3, -0x55,0x99,0x63,0x61,0xba,0x91,0xf4,0x94,0x1f,0xb4,0x1f,0x8a,0x21,0xc7,0xef,0xf3, -0xf8,0xd6,0xa5,0xbf,0xed,0x33,0xe2,0x38,0xb1,0xbc,0x96,0xc7,0xbd,0x7c,0xc2,0x9f, -0x12,0x60,0xfe,0x2d,0xc3,0xf0,0xab,0x31,0xfc,0x44,0xb4,0x60,0x32,0xff,0x00,0xa5, -0x5a,0x58,0xf8,0xed,0x37,0xf7,0x9b,0x47,0x3c,0xc5,0x43,0x79,0x4b,0xee,0x3e,0xa8, -0xb5,0xfd,0xaa,0x75,0x98,0x88,0xf3,0x22,0xdc,0x3f,0x3a,0xd5,0xb7,0xfd,0xac,0xae, -0x86,0x3c,0xcb,0x6c,0xfa,0xfc,0xa2,0xbe,0x4c,0x8f,0xc7,0x96,0x4d,0xff,0x00,0x2d, -0x16,0xac,0xa7,0x8c,0xac,0x9f,0x1f,0xbd,0x43,0xf8,0xd5,0xac,0x46,0x63,0x0f,0xb4, -0xcd,0xe3,0xc4,0x98,0x88,0xef,0x3f,0xc0,0xfa,0xfe,0xd7,0xf6,0xb2,0x84,0xe3,0xce, -0xb6,0xff,0x00,0xc7,0x6b,0x52,0xdb,0xf6,0xab,0xd2,0xe4,0x23,0xcc,0x80,0x0f,0xc0, -0xd7,0xc6,0x69,0xe2,0x8b,0x37,0xe9,0x2a,0xfe,0x06,0xa7,0x4d,0x7a,0xd5,0xfa,0x38, -0x3f,0x8d,0x52,0xcc,0x73,0x18,0x6e,0xff,0x00,0x03,0xaa,0x3c,0x51,0x5b,0xf9,0x91, -0xf6,0xdd,0xbf,0xed,0x3b,0xe1,0xe9,0x00,0xde,0x30,0x4f,0xfb,0x55,0xa9,0x6d,0xfb, -0x43,0xf8,0x66,0x7c,0x66,0x5d,0xbf,0xf0,0x21,0x5f,0x0a,0xae,0xad,0x6e,0xdd,0x1c, -0x54,0x83,0x50,0x84,0xf4,0x93,0xf5,0xad,0x16,0x73,0x8f,0x8e,0xf6,0xfb,0x8e,0xb8, -0x71,0x45,0x4e,0xb6,0x3e,0xf8,0xb7,0xf8,0xdf,0xe1,0x99,0xc8,0xc5,0xd0,0x1f,0x88, -0xad,0x28,0x3e,0x2a,0xf8,0x72,0x71,0x91,0x7e,0xa3,0xf2,0xaf,0xcf,0xa5,0xbf,0x51, -0xf7,0x66,0x23,0xe8,0x6a,0x64,0xd4,0xe4,0x5f,0xbb,0x70,0xc3,0xfe,0x05,0x5a,0xac, -0xfb,0x14,0xbe,0x28,0x2f,0xc4,0xeb,0x8f,0x13,0xcb,0xac,0x51,0xfa,0x19,0x17,0x8f, -0xb4,0x29,0xbe,0xee,0xa1,0x1f,0xe7,0x57,0x23,0xf1,0x4e,0x95,0x2f,0xdd,0xbe,0x84, -0xff,0x00,0xc0,0xab,0xf3,0xbe,0x3d,0x6e,0xf1,0x3e,0xe5,0xe4,0xa3,0xe8,0xf5,0x66, -0x3f,0x15,0xea,0xb1,0x11,0xb7,0x50,0x9b,0xfe,0xfb,0x35,0xb2,0xe2,0x1a,0x8b,0xe2, -0xa7,0xf8,0x9d,0x51,0xe2,0x58,0x3d,0xe0,0x7e,0x88,0xa6,0xb1,0x63,0x27,0xdd,0xbb, -0x88,0xff,0x00,0xc0,0xc5,0x4a,0xb7,0x90,0x3f,0xdd,0x99,0x0f,0xd1,0x85,0x7e,0x7b, -0x43,0xe3,0xfd,0x7a,0x2f,0xbb,0xa8,0xcb,0xf9,0xd5,0xf8,0x3e,0x2b,0x78,0x8e,0x0c, -0x62,0xf9,0xcf,0xd4,0xd6,0xeb,0x88,0xa3,0xf6,0xa9,0xbf,0xbc,0xe8,0x8f,0x11,0xd0, -0x7b,0xc5,0x9f,0x7f,0x09,0x14,0xff,0x00,0x10,0xfc,0xe9,0x73,0xef,0x5f,0x08,0xc1, -0xf1,0xbf,0xc4,0xd0,0x7f,0xcb,0xd1,0x6f,0xc4,0xd6,0x9d,0xb7,0xed,0x11,0xe2,0x58, -0x3a,0xcb,0x9f,0xf8,0x11,0xad,0xe3,0xc4,0x34,0x1e,0xf0,0x67,0x44,0x78,0x83,0x0a, -0xf7,0xb9,0xf6,0xe0,0x34,0x66,0xbe,0x37,0xb6,0xfd,0xa7,0x35,0xf8,0x71,0xbf,0x2d, -0xf8,0xd6,0xad,0xbf,0xed,0x57,0xaa,0x2f,0xfa,0xc8,0x49,0x1f,0x85,0x6d,0x1c,0xfb, -0x08,0xf7,0xbf,0xdc,0x6f,0x1c,0xf3,0x06,0xfe,0xd1,0xf5,0x9e,0x68,0x07,0x35,0xf3, -0x0d,0xbf,0xed,0x65,0x28,0xff,0x00,0x59,0x6f,0x9f,0xf8,0x0e,0x6b,0x52,0xdb,0xf6, -0xb1,0xb5,0x38,0xf3,0x6d,0xc0,0xfc,0x2b,0xa2,0x39,0xd6,0x09,0xfd,0xaf,0xc0,0xe9, -0x8e,0x6d,0x83,0x97,0xdb,0x3e,0x8b,0xa2,0xbc,0x26,0x0f,0xda,0xa3,0x47,0x7c,0x07, -0x88,0x03,0xdf,0xad,0x6a,0x5b,0x7e,0xd2,0xde,0x1e,0x98,0x0d,0xe4,0x2f,0xfc,0x0a, -0xb7,0x8e,0x6b,0x83,0x97,0xfc,0xbc,0x46,0xf1,0xc7,0xe1,0xa5,0xb4,0xd1,0xec,0x54, -0x57,0x98,0xdb,0xfe,0xd0,0x3e,0x19,0x9f,0xfe,0x5b,0x05,0xff,0x00,0x81,0x56,0x9c, -0x1f,0x19,0xfc,0x35,0x36,0x3f,0xd3,0x00,0xfc,0x45,0x74,0x47,0x1d,0x86,0x96,0xd5, -0x17,0xde,0x6e,0xb1,0x34,0x65,0xb4,0xd1,0xdd,0xd1,0x5c,0xa4,0x1f,0x13,0xfc,0x3d, -0x38,0x18,0xbe,0x41,0xf5,0x35,0x76,0x2f,0x1c,0xe8,0x93,0x7d,0xdb,0xf8,0x8f,0xe3, -0x5b,0x2c,0x45,0x29,0x6d,0x25,0xf7,0x9a,0x2a,0xb4,0xde,0xd2,0x46,0xf5,0x15,0x97, -0x1f,0x89,0x74,0xc9,0x47,0xcb,0x7d,0x09,0xff,0x00,0x81,0x55,0x94,0xd5,0xac,0xe4, -0xfb,0xb7,0x51,0x1f,0xf8,0x10,0xad,0x54,0xe2,0xf6,0x65,0xa9,0x27,0xb3,0x2d,0xd1, -0x51,0x0b,0xa8,0x5b,0xa4,0xa8,0x7f,0xe0,0x42,0x9e,0x1d,0x58,0x64,0x10,0x7e,0x86, -0xaa,0xe8,0xab,0x8e,0xa2,0x93,0x34,0x66,0x98,0x0b,0x45,0x26,0x45,0x19,0xa0,0x05, -0xa2,0x93,0x34,0xb4,0x00,0x51,0x45,0x14,0x00,0x51,0x45,0x14,0x00,0x51,0x45,0x14, -0x00,0x51,0x45,0x14,0x00,0x51,0x45,0x14,0x00,0x51,0x45,0x14,0x00,0x51,0x45,0x14, -0x00,0x51,0x45,0x14,0x00,0x94,0x6d,0x06,0x96,0x8a,0x00,0x4c,0x51,0x8a,0x5a,0x28, -0x01,0x31,0x4d,0x31,0xa1,0x04,0x15,0x04,0x1e,0xb9,0x14,0xfa,0x28,0x03,0x1e,0xfb, -0xc1,0xba,0x06,0xa9,0x9f,0xb6,0x68,0x7a,0x6d,0xde,0x7a,0xf9,0xf6,0x91,0xbe,0x7f, -0x31,0x5c,0xe5,0xf7,0xc0,0x6f,0x86,0x7a,0x9e,0xef,0xb5,0xfc,0x3c,0xf0,0xad,0xc9, -0x6e,0xa6,0x5d,0x16,0xd9,0x89,0xfc,0x4a,0x57,0x77,0x45,0x00,0x78,0xd6,0xa9,0xfb, -0x1a,0x7c,0x0b,0xd6,0x15,0xc5,0xcf,0xc2,0x6f,0x09,0x12,0xfd,0x5a,0x2d,0x2a,0x28, -0x9b,0xfe,0xfa,0x40,0x08,0xae,0x2e,0xfb,0xfe,0x09,0xb1,0xfb,0x37,0x5f,0xbb,0xb4, -0x9f,0x0c,0xad,0x23,0x2d,0xd7,0xc8,0xd4,0x6f,0x22,0x03,0xe8,0x16,0x60,0x05,0x7d, -0x33,0x45,0x00,0x7c,0x97,0x7f,0xff,0x00,0x04,0xb0,0xfd,0x9b,0xaf,0x22,0x65,0x8f, -0xc1,0x17,0x56,0x6c,0x7f,0x8e,0x0d,0x6e,0xf4,0x91,0xff,0x00,0x7d,0x4a,0xc3,0xf4, -0xac,0x5d,0x0f,0xfe,0x09,0x3f,0xf0,0x43,0xc3,0x5e,0x2b,0xd2,0x3c,0x41,0xa7,0x37, -0x89,0x21,0xba,0xd2,0xef,0x61,0xbe,0x86,0x17,0xd4,0x52,0x48,0x59,0xe3,0x70,0xe1, -0x58,0x34,0x44,0x95,0x25,0x40,0x23,0x3d,0x3b,0xd7,0xd9,0xd4,0x50,0x2b,0x05,0x14, -0x51,0x40,0xc2,0x8a,0x28,0xa0,0x0f,0x29,0xfd,0xa1,0x2e,0x7c,0x9f,0x0a,0x05,0xce, -0x32,0x58,0xfe,0x95,0xf0,0xf6,0xaa,0xfc,0x48,0x7d,0xcd,0x7d,0x97,0xfb,0x4b,0xdc, -0xf9,0x7a,0x24,0x29,0x9f,0xe1,0x3c,0x57,0xc5,0xda,0xb3,0xe2,0x27,0x3f,0x5a,0xfc, -0xeb,0x38,0x7c,0xd8,0xfb,0x76,0x48,0xfc,0xd3,0x8a,0x27,0xef,0xdb,0xc8,0xe4,0x3e, -0x04,0xda,0x0d,0x63,0xf6,0xc8,0xf8,0x6d,0x01,0xc9,0xf2,0xaf,0xe6,0xb9,0xe3,0xfe, -0x99,0xdb,0xca,0xc3,0xf9,0x57,0xeb,0x58,0xaf,0xcb,0x1f,0xd8,0xe7,0x4f,0x6d,0x5f, -0xf6,0xce,0xd0,0xa5,0x03,0x29,0x61,0xa7,0xdf,0x5d,0x37,0xb0,0xf2,0xbc,0xb1,0xfa, -0xc8,0x2b,0xf5,0x38,0x77,0xaf,0xb7,0xc1,0xab,0x51,0x47,0xd1,0xf0,0xd4,0x39,0x32, -0xca,0x7e,0x62,0xd1,0x45,0x15,0xdc,0x7d,0x40,0x98,0xa6,0xc9,0x0a,0x4a,0xa5,0x5d, -0x43,0xa1,0xe0,0xab,0x0c,0x83,0x4f,0xa2,0x80,0x38,0xad,0x6b,0xe0,0xcf,0x83,0x35, -0xf9,0x1a,0x4b,0xbd,0x02,0xd7,0xcc,0x61,0x82,0xd0,0x83,0x17,0xe8,0xa4,0x0a,0xe5, -0xaf,0x7f,0x65,0x8f,0x01,0x5d,0x9c,0xad,0x95,0xc5,0xbf,0xb4,0x53,0x7f,0xf1,0x40, -0xd7,0xaf,0x51,0x5c,0xd2,0xc3,0x51,0x96,0xf0,0x47,0x24,0xb0,0x98,0x79,0xbb,0xca, -0x9a,0xfb,0x8f,0x09,0xba,0xfd,0x8f,0x3c,0x13,0x36,0x4a,0x4d,0xa8,0x46,0x7d,0xdd, -0x08,0xff,0x00,0xd0,0x2b,0x02,0xff,0x00,0xf6,0x26,0xd0,0x27,0xcf,0xd9,0xf5,0x69, -0x22,0x3f,0xf4,0xd2,0xdc,0x3f,0xf2,0x61,0x5f,0x4a,0x51,0xf8,0xd6,0x4f,0x03,0x87, -0x7f,0x60,0xe7,0x79,0x6e,0x16,0x5f,0x63,0xf3,0x3e,0x50,0xbc,0xfd,0x84,0xec,0x64, -0xe6,0x2d,0x6a,0x17,0x3f,0xed,0xda,0x95,0xff,0x00,0xd9,0x8d,0x73,0xd7,0xdf,0xb0, -0x65,0xd9,0x62,0x20,0xbb,0xd3,0x5c,0x76,0x2c,0x59,0x4f,0xfe,0x81,0x5f,0x68,0x62, -0x8c,0x56,0x4f,0x2e,0xa0,0xfa,0x3f,0xbd,0x98,0xbc,0xa7,0x0a,0xfe,0xcb,0xfb,0xd9, -0xf0,0x8d,0xe7,0xec,0x1d,0xae,0x2a,0xb1,0x8d,0x6c,0x65,0x3d,0x82,0x4d,0x8c,0xfe, -0x78,0xae,0x7a,0xfb,0xf6,0x20,0xf1,0x54,0x07,0xe4,0xd3,0x0b,0x0f,0xfa,0x67,0x70, -0x87,0xff,0x00,0x66,0xaf,0xd0,0xfc,0x51,0x8a,0x87,0x96,0xd3,0xe9,0x27,0xf7,0x9c, -0xf2,0xc8,0xf0,0xb2,0xef,0xf8,0x7f,0x91,0xf9,0xa7,0x7b,0xfb,0x1f,0x78,0xc6,0xd4, -0x90,0xba,0x46,0xa0,0x4f,0xfb,0x1f,0x30,0xfd,0x2b,0x0a,0xef,0xf6,0x69,0xf1,0x85, -0x91,0x3b,0xb4,0xed,0x4e,0x3c,0x7a,0xdb,0xb7,0xf8,0x57,0xea,0x4e,0x29,0x0a,0xe6, -0xa1,0xe5,0xab,0xa4,0xdf,0xe0,0x72,0xcb,0x87,0x70,0xd2,0xeb,0xf8,0x23,0xf2,0x7a, -0xef,0xe0,0xd7,0x8a,0x6c,0x72,0x59,0x6e,0xa3,0x03,0xfb,0xf1,0x11,0x59,0xef,0xe0, -0x3f,0x13,0xdb,0x74,0x91,0xce,0x3d,0x54,0xd7,0xeb,0x83,0x44,0xae,0x30,0xc0,0x11, -0xe8,0x45,0x55,0x9f,0x45,0xb0,0xba,0xff,0x00,0x5d,0x65,0x6f,0x30,0xff,0x00,0x6e, -0x25,0x3f,0xd2,0xb2,0x79,0x6c,0xba,0x4f,0xf0,0x38,0xe5,0xc2,0xf8,0x79,0x76,0xfb, -0xbf,0xe0,0x9f,0x92,0x6d,0xa0,0x78,0xaa,0xdf,0xdf,0xeb,0x9a,0x88,0xa7,0x8a,0x2d, -0xfe,0xf4,0x3b,0xbe,0x86,0xbf,0x57,0xee,0x3c,0x03,0xe1,0xbb,0xa0,0x7c,0xdd,0x07, -0x4d,0x7c,0xf7,0x36,0xa9,0xfe,0x15,0x97,0x73,0xf0,0x6f,0xc1,0x77,0x79,0xf3,0x3c, -0x3b,0x67,0xff,0x00,0x00,0x52,0x9f,0xc8,0x8a,0xc9,0xe5,0xb5,0x3b,0xa6,0x72,0x4b, -0x84,0xe9,0x74,0xb7,0xe2,0x8f,0xcb,0x31,0xaa,0xf8,0x8a,0x0f,0xbf,0x68,0xc6,0x94, -0x78,0xab,0x58,0x8b,0xef,0xd8,0xcb,0xc7,0xfb,0x26,0xbf,0x4d,0xae,0x7f,0x67,0x8f, -0x00,0xdd,0x67,0x3a,0x12,0x46,0x4f,0x74,0x99,0xff,0x00,0xf8,0xaa,0xc5,0xbb,0xfd, -0x94,0xfc,0x09,0x75,0x9d,0xb6,0xf7,0x70,0x67,0xfe,0x79,0xca,0xbf,0xd5,0x4d,0x63, -0x2c,0xb2,0xa7,0xf2,0xc5,0x9c,0xb2,0xe1,0x37,0xd3,0xff,0x00,0x4a,0x67,0xe7,0x32, -0xf8,0xee,0xf6,0x3f,0xbf,0x6b,0x28,0xfc,0x0d,0x4c,0x9f,0x11,0x4a,0x9f,0x9e,0x17, -0x1f,0x85,0x7d,0xf7,0x79,0xfb,0x1c,0x78,0x36,0x7f,0xf5,0x37,0x57,0xd1,0x1f,0xf6, -0x8a,0x37,0xfe,0xca,0x2b,0x02,0xf3,0xf6,0x22,0xd1,0x26,0x72,0x62,0xd6,0x9d,0x17, -0xd1,0xed,0x43,0x1f,0xcf,0x78,0xac,0x1e,0x59,0x3e,0xb4,0x97,0xde,0x73,0x4b,0x85, -0xab,0xaf,0x86,0xff,0x00,0x7a,0x3e,0x2b,0x4f,0x89,0x10,0xff,0x00,0x10,0x65,0xfa, -0x8a,0xb1,0x1f,0xc4,0x4b,0x46,0xea,0xf8,0xaf,0xac,0x2f,0x7f,0x61,0x2b,0x49,0x01, -0xf2,0x35,0x88,0x1d,0xbb,0x09,0x2d,0x8a,0xff,0x00,0x53,0x5c,0xf5,0xe7,0xec,0x19, -0xa8,0x1f,0xf5,0x77,0x5a,0x63,0x8f,0xf7,0x98,0x7f,0xec,0xb5,0x83,0xcb,0x5f,0x5a, -0x4c,0xe7,0x97,0x0e,0xe2,0xe3,0xb3,0x97,0xe0,0xcf,0x9e,0xa3,0xf1,0xed,0x9b,0xff, -0x00,0xcb,0x45,0x15,0x66,0x3f,0x19,0xd9,0x3f,0xfc,0xb5,0x4f,0xce,0xbd,0x7a,0xfb, -0xf6,0x11,0xd7,0xe3,0x62,0x23,0x86,0xce,0x61,0xeb,0x1c,0xc0,0x67,0xf3,0xc5,0x73, -0xf7,0x9f,0xb1,0x27,0x8b,0x21,0xdd,0xb3,0x4a,0x76,0x03,0xfe,0x79,0xdc,0x21,0xff, -0x00,0xd9,0xab,0x09,0x65,0xb1,0x5b,0xd3,0x92,0xf9,0x1c,0xd2,0xc9,0x31,0xd1,0xea, -0xff,0x00,0xf0,0x13,0x89,0x4f,0x14,0xd9,0xbf,0xfc,0xb5,0x4f,0xfb,0xea,0xa7,0x4d, -0x7e,0xd5,0xff,0x00,0x8d,0x4f,0xe2,0x2b,0x4a,0xf7,0xf6,0x43,0xf1,0x8d,0xa0,0x2d, -0xfd,0x8f,0xa8,0x81,0xe9,0x1a,0x16,0xfe,0x42,0xb0,0xef,0x7f,0x66,0xdf,0x17,0x58, -0xf2,0xda,0x76,0xa7,0x17,0xfb,0xf6,0xed,0xfe,0x15,0xcf,0x2c,0xbe,0x9a,0xee,0xbe, -0x47,0x3c,0xb2,0xdc,0x74,0x3a,0xfe,0x0c,0xbe,0xba,0xb5,0xbb,0x7f,0x18,0xa9,0x17, -0x51,0x80,0xff,0x00,0x18,0xae,0x46,0xe7,0xe1,0x07,0x89,0xac,0x8e,0x1b,0xed,0x28, -0x47,0x67,0x88,0xd5,0x17,0xf0,0x2f,0x89,0xad,0x8f,0x12,0x3f,0x1e,0xaa,0x6b,0x17, -0x81,0xa5,0xd2,0x46,0x2f,0x0d,0x8d,0x8f,0x63,0xd0,0x16,0xfa,0x23,0xd2,0x4f,0xd6, -0xa5,0x5b,0xdc,0x7d,0xd9,0x88,0xfc,0x6b,0xcc,0xdb,0x42,0xf1,0x4d,0xbe,0x79,0x27, -0xeb,0x9a,0x66,0xcf,0x13,0x41,0xf7,0xa2,0x2d,0x8f,0x43,0x51,0xfd,0x9f,0x17,0xb4, -0x85,0xc9,0x8d,0x8f,0xd8,0xfc,0x4f,0x55,0x4d,0x52,0x74,0xfb,0xb7,0x4e,0x3e,0x8d, -0x56,0x23,0xd7,0xef,0xe3,0xfb,0x97,0xb2,0x8f,0xa3,0x1a,0xf2,0x1f,0xed,0x5f,0x10, -0xc2,0x3e,0x6b,0x47,0x3f,0x4a,0x51,0xe2,0x9d,0x62,0x3f,0xbf,0x67,0x27,0xfd,0xf3, -0x51,0xfd,0x9d,0x2e,0x92,0x41,0xed,0x31,0xb0,0xde,0x9b,0xfb,0xcf,0x67,0x8f,0xc6, -0x1a,0xc4,0x5f,0x77,0x50,0x97,0xfe,0xfa,0xab,0xb0,0x7c,0x44,0xd7,0xe0,0xfb,0xba, -0x84,0x9f,0x8d,0x78,0x7a,0xf8,0xea,0xf2,0x3f,0xf5,0x96,0xb2,0x8f,0xf8,0x09,0xa9, -0x53,0xe2,0x29,0x5f,0xbf,0x14,0x8b,0xf5,0x14,0x96,0x06,0xbc,0x7e,0x17,0xf8,0x94, -0xb1,0xd8,0xb8,0x6f,0x19,0x23,0xde,0x60,0xf8,0xb7,0xe2,0x48,0x3f,0xe5,0xf4,0x9f, -0xad,0x69,0x43,0xf1,0xd7,0xc4,0xd0,0x81,0x8b,0x8c,0xe3,0xdc,0xd7,0xcf,0x91,0xfc, -0x48,0x87,0xb8,0x65,0xfc,0x2a,0xcc,0x7f,0x11,0x2d,0x5b,0xab,0xe3,0xea,0x2a,0x95, -0x0c,0x5c,0x7e,0x19,0x3f,0xbc,0xd5,0x67,0x18,0x98,0x6e,0xe4,0xbe,0x47,0xd1,0xb6, -0xbf,0xb4,0x67,0x88,0xe0,0x00,0x17,0xcf,0xd0,0xd6,0xa5,0xbf,0xed,0x3f,0xae,0x46, -0x7e,0x70,0xc7,0xf1,0xaf,0x99,0xe3,0xf1,0xed,0x9b,0x7f,0xcb,0x41,0xf8,0xd5,0x98, -0xfc,0x69,0x66,0xf8,0xfd,0xea,0x7e,0x75,0x4a,0x58,0xf8,0x6d,0x26,0x6f,0x1e,0x20, -0xaf,0x1f,0xb6,0xfe,0xe3,0xea,0x5b,0x7f,0xda,0xb3,0x50,0x4c,0x6f,0x84,0x93,0xf4, -0x15,0xa9,0x6b,0xfb,0x58,0x37,0x1e,0x6c,0x39,0xff,0x00,0x80,0xd7,0xc9,0xd1,0xf8, -0xae,0xd1,0xff,0x00,0xe5,0xa2,0x7e,0x75,0x3a,0x78,0x86,0xd5,0xfa,0x3a,0xfe,0x75, -0x6b,0x19,0x98,0xc3,0xed,0x33,0xa6,0x3c,0x4d,0x59,0x7f,0xcb,0xc4,0x7d,0x7f,0x6f, -0xfb,0x56,0xd9,0x39,0xc3,0xc2,0x07,0xd4,0x56,0xad,0xb7,0xed,0x45,0xa2,0xc9,0x8f, -0x31,0x00,0xfc,0x6b,0xe3,0x15,0xd6,0x2d,0xdb,0xf8,0x87,0xe7,0x52,0x2e,0xa5,0x03, -0x7f,0x1e,0x2b,0x45,0x9a,0xe6,0x11,0xdd,0xfe,0x07,0x5c,0x38,0x9a,0xb7,0xf3,0x26, -0x7d,0xbb,0x6d,0xfb,0x48,0x78,0x7a,0x7c,0x6e,0x60,0xbf,0xf0,0x2a,0xd4,0x83,0xe3, -0xdf,0x86,0x66,0xc7,0xef,0xc0,0xff,0x00,0x81,0x0a,0xf8,0x48,0x5f,0x44,0x7a,0x3f, -0xeb,0x4f,0x5b,0xc5,0xea,0x25,0xc7,0xe3,0x5a,0x2c,0xef,0x1b,0x1d,0xd2,0xfb,0x8e, -0xc8,0xf1,0x35,0x5e,0xa9,0x33,0xef,0xd8,0x3e,0x30,0xf8,0x6e,0x7c,0x62,0xec,0x0f, -0xc4,0x55,0xe8,0x7e,0x25,0x78,0x7e,0x7c,0x6d,0xbe,0x4f,0xc6,0xbf,0x3e,0x56,0xf9, -0x86,0x31,0x3b,0x7f,0xdf,0x55,0x3a,0x6a,0xd7,0x51,0xfd,0xcb,0xb9,0x07,0xd1,0xab, -0x65,0xc4,0x18,0x85,0xbc,0x11,0xd5,0x1e,0x25,0x7d,0x60,0x7e,0x86,0x47,0xe3,0x4d, -0x16,0x5c,0x62,0xfe,0x2f,0xc4,0xd5,0xa8,0xfc,0x45,0xa6,0xcb,0xf7,0x6f,0x61,0x3f, -0xf0,0x2a,0xfc,0xf1,0x8f,0xc4,0x7a,0x8c,0x7f,0x76,0xf6,0x51,0xff,0x00,0x02,0xab, -0x91,0x78,0xdf,0x5a,0x87,0xee,0xea,0x12,0x7e,0x75,0xb2,0xe2,0x29,0xaf,0x8a,0x9f, -0xe2,0x74,0x47,0x89,0x21,0xd6,0x07,0xe8,0x52,0xea,0x96,0x8f,0xf7,0x6e,0x62,0x3f, -0x46,0x15,0x2a,0xdc,0x44,0xdd,0x24,0x43,0xf4,0x22,0xbf,0x3f,0x20,0xf8,0x97,0xe2, -0x08,0x08,0xdb,0x7c,0xe7,0xeb,0x57,0xe1,0xf8,0xc5,0xe2,0x48,0x7f,0xe5,0xec,0x9a, -0xde,0x3c,0x45,0x0f,0xb5,0x4d,0x9d,0x31,0xe2,0x2c,0x3b,0xde,0x2c,0xfb,0xdc,0x3a, -0x9e,0x8c,0x0f,0xe3,0x4b,0x9a,0xf8,0x66,0xdf,0xe3,0xdf,0x89,0x2d,0xff,0x00,0xe5, -0xb6,0x7f,0x13,0x5a,0x96,0xdf,0xb4,0x87,0x88,0x21,0xc6,0xe6,0x2d,0xf8,0x9a,0xdd, -0x71,0x0e,0x1d,0xef,0x16,0x8d,0xe3,0x9f,0xe1,0x1e,0xec,0xfb,0x4b,0x38,0xa3,0x22, -0xbe,0x42,0xb7,0xfd,0xa8,0xb5,0x98,0xf1,0xb9,0x0f,0xe7,0x9a,0xd4,0xb5,0xfd,0xab, -0x2e,0xd7,0x1e,0x64,0x44,0xfe,0x15,0xba,0xcf,0xb0,0x8f,0x7b,0xfd,0xc7,0x44,0x73, -0xac,0x1c,0xbe,0xd1,0xf5,0x4e,0x45,0x15,0xf3,0x55,0xb7,0xed,0x5c,0xac,0x47,0x99, -0x00,0x03,0xfd,0xda,0xd5,0xb7,0xfd,0xaa,0x74,0xe6,0xc6,0xf8,0x97,0xf2,0x35,0xbc, -0x73,0x9c,0x14,0xbe,0xd9,0xd1,0x1c,0xd3,0x09,0x2d,0xa6,0x8f,0xa0,0x33,0x4b,0x5e, -0x25,0x6b,0xfb,0x4e,0x68,0xb2,0xfd,0xf0,0x8b,0xf8,0x9a,0xd5,0xb7,0xfd,0xa2,0xfc, -0x3b,0x36,0x01,0x60,0x0f,0xfb,0xd5,0xd1,0x1c,0xcf,0x07,0x2d,0xaa,0x23,0x75,0x8e, -0xc3,0xcb,0x69,0xa3,0xd6,0x28,0xaf,0x3a,0x83,0xe3,0x9f,0x86,0xe6,0xc7,0xfa,0x40, -0x5c,0xff,0x00,0xb4,0x2b,0x46,0xdf,0xe2,0xdf,0x87,0x6e,0x31,0x8b,0xb5,0x1f,0x52, -0x2b,0x75,0x8d,0xc3,0x4b,0x6a,0x8b,0xef,0x36,0x58,0x8a,0x2f,0x69,0x23,0xb4,0xa2, -0xb9,0xa8,0xfe,0x22,0xe8,0x12,0xfd,0xdb,0xf4,0xcd,0x5b,0x8b,0xc6,0x1a,0x44,0xdf, -0x76,0xfa,0x2f,0xc4,0xd6,0xca,0xbd,0x29,0x6d,0x25,0xf7,0x9a,0x2a,0x90,0x7b,0x33, -0x6a,0x8a,0xce,0x4f,0x10,0x69,0xd2,0x7d,0xdb,0xc8,0x5b,0xfe,0x05,0x56,0x13,0x51, -0xb6,0x7e,0x97,0x11,0x1f,0xf8,0x18,0xad,0x14,0xe2,0xf6,0x65,0x73,0x2e,0xe5,0x9a, -0x2a,0x35,0xb8,0x89,0xfe,0xec,0x88,0x7e,0x8d,0x4f,0xdc,0x3d,0x45,0x55,0xca,0x16, -0x8a,0x29,0x33,0x4c,0x05,0xa2,0x93,0x34,0x66,0x80,0x16,0x8a,0x4a,0x33,0x40,0x0b, -0x45,0x14,0x94,0x01,0xf3,0xdf,0xed,0x45,0x77,0xb6,0xde,0x38,0xf3,0xd2,0x3c,0x57, -0xc7,0x5e,0x24,0xbc,0x5b,0x7b,0x39,0x58,0x9c,0x61,0x4d,0x7d,0x53,0xfb,0x54,0x5f, -0x88,0xee,0x4a,0x93,0x8c,0x28,0x02,0xbe,0x1a,0xf8,0x97,0xe2,0x95,0xb6,0xb3,0x78, -0x95,0xf2,0xc4,0x73,0xcd,0x7e,0x79,0x88,0xa6,0xeb,0xe6,0x53,0xf2,0xb1,0xf9,0x1f, -0x13,0xd4,0x73,0xc4,0xaa,0x31,0xdd,0x9e,0xad,0xff,0x00,0x04,0xe8,0xd3,0xe6,0xd6, -0x3f,0x69,0x8f,0x14,0xea,0xe1,0x37,0xda,0x69,0xfe,0x1f,0x92,0x06,0x7c,0xfd,0xd9, -0x25,0xb8,0x8b,0x60,0xfc,0x44,0x4f,0xf9,0x57,0xe9,0x78,0xaf,0x87,0x7f,0xe0,0x96, -0xbe,0x07,0x96,0xcb,0xc1,0x1e,0x34,0xf1,0xa4,0xe0,0x8f,0xed,0xcd,0x42,0x3b,0x3b, -0x70,0xc3,0xac,0x56,0xca,0xd9,0x61,0xf5,0x69,0x98,0x7f,0xc0,0x2b,0xee,0x3a,0xfb, -0xba,0x11,0xe5,0xa6,0x91,0xfa,0x46,0x59,0x43,0xea,0xf8,0x3a,0x74,0xfb,0x20,0xa2, -0x8a,0x2b,0xa0,0xf5,0x02,0x8a,0x28,0xa0,0x02,0x8a,0x28,0xa0,0x02,0x8a,0x28,0xa0, -0x02,0x8a,0x28,0xa0,0x02,0x8a,0x28,0xa0,0x02,0x8a,0x28,0xa0,0x02,0x8a,0x28,0xa0, -0x02,0x8a,0x28,0xa0,0x02,0x8a,0x28,0xa0,0x02,0x93,0x14,0xb4,0x50,0x02,0x62,0x8c, -0x52,0xd1,0x40,0x0d,0x23,0xd2,0x94,0x0a,0x5a,0x28,0x01,0x31,0x46,0xd1,0x4b,0x45, -0x00,0x46,0xd0,0xa3,0x82,0x19,0x15,0x81,0xec,0x45,0x54,0x9b,0x40,0xd3,0x6e,0x46, -0x26,0xd3,0xed,0x65,0x1f,0xed,0xc2,0xa7,0xfa,0x55,0xfa,0x2a,0x5c,0x53,0xdd,0x12, -0xe2,0x9e,0xe8,0xe7,0x6e,0x7e,0x1e,0x78,0x62,0xf3,0xfd,0x76,0x81,0xa7,0x3f,0xfd, -0xbb,0x20,0xfe,0x42,0xb2,0xee,0x7e,0x0b,0xf8,0x26,0xef,0x3e,0x67,0x87,0x2c,0xc6, -0x7f,0xb8,0xa5,0x3f,0x91,0x15,0xdb,0x51,0x59,0xba,0x34,0x9e,0xf1,0x5f,0x71,0x93, -0xa1,0x4a,0x5b,0xc1,0x7d,0xc8,0xf3,0x2b,0xbf,0xd9,0xc7,0xc0,0x37,0x60,0x8f,0xec, -0x51,0x1f,0xba,0x4c,0xff,0x00,0xd4,0x9a,0xc7,0xba,0xfd,0x93,0xfc,0x09,0x70,0x72, -0xb0,0xdd,0xc3,0xec,0x92,0xaf,0xf5,0x53,0x5e,0xcb,0x45,0x64,0xf0,0x94,0x1f,0xd8, -0x46,0x0f,0x03,0x86,0x7b,0xd3,0x5f,0x71,0xe0,0x37,0xbf,0xb1,0xaf,0x84,0x27,0xcf, -0x91,0x77,0x79,0x11,0x3f,0xdf,0xd8,0xf8,0xfd,0x05,0x61,0x5d,0x7e,0xc3,0xba,0x2c, -0xb9,0xf2,0xf5,0xc6,0x5f,0x4d,0xd6,0x80,0xff,0x00,0xec,0xf5,0xf4,0xdd,0x15,0x9b, -0xc0,0xe1,0xdf,0xd9,0xfc,0xcc,0x9e,0x5b,0x84,0x7f,0x63,0xf3,0x3e,0x46,0xd4,0x3f, -0x61,0x38,0x98,0x9f,0xb3,0x6a,0xd6,0x92,0x0f,0xfa,0x69,0x01,0x4f,0xe5,0x9a,0xe7, -0xef,0x3f,0x60,0xcd,0x49,0x89,0xf2,0xee,0xb4,0xb7,0x1d,0xbe,0x77,0x07,0xff,0x00, -0x40,0xaf,0xb6,0x31,0x46,0x2b,0x37,0x97,0x50,0xe9,0x75,0xf3,0x31,0x79,0x46,0x15, -0xf4,0x7f,0x79,0xf0,0x45,0xff,0x00,0xec,0x29,0xe2,0x18,0x81,0x31,0x5b,0x5a,0x4d, -0x8e,0xd1,0xdc,0x00,0x4f,0xe7,0x8a,0xc0,0xba,0xfd,0x89,0xbc,0x5d,0x10,0x24,0x69, -0x12,0x71,0xfd,0xcb,0x84,0x3f,0xc9,0xab,0xf4,0x5b,0x14,0x98,0x35,0x1f,0xd9,0xb4, -0xfa,0x49,0x9c,0xf2,0xc8,0xf0,0xd2,0xea,0xff,0x00,0x0f,0xf2,0x3f,0x33,0x2f,0xbf, -0x64,0xaf,0x18,0x59,0x96,0x1f,0xd8,0xda,0x96,0x47,0xfc,0xf3,0x8d,0x98,0x7e,0x60, -0x56,0x15,0xdf,0xec,0xe7,0xe2,0xcb,0x30,0x49,0xd3,0xf5,0x38,0xc0,0xea,0x5a,0xdd, -0xb1,0xfc,0xab,0xf5,0x47,0x14,0x9b,0x73,0xd6,0xb3,0x79,0x6f,0x6a,0x8c,0xe5,0x97, -0x0e,0xe1,0xe5,0xd7,0xf0,0x47,0xe4,0xbd,0xcf,0xc2,0x3f,0x11,0xd9,0x83,0x93,0x70, -0x9f,0xef,0x46,0x45,0x51,0x93,0xc0,0xfe,0x25,0xb7,0xe9,0x23,0xf1,0xea,0xa6,0xbf, -0x5c,0xde,0xde,0x39,0x06,0x19,0x15,0x87,0xa3,0x0c,0xd5,0x3b,0x8f,0x0f,0x69,0x77, -0x9f,0xeb,0xf4,0xeb,0x49,0xbf,0xdf,0x81,0x5b,0xf9,0x8a,0xcd,0xe5,0xd3,0xe9,0x3f, -0xc0,0xe3,0x9f,0x0b,0xd0,0x97,0x6f,0xbb,0xfe,0x09,0xf9,0x24,0xda,0x1f,0x8a,0x2d, -0xfb,0x96,0xc7,0xd6,0xa3,0x2b,0xe2,0x58,0x3a,0xc5,0xbb,0xe8,0x6b,0xf5,0x7a,0xe3, -0xe1,0xb7,0x85,0x6e,0xb3,0xe6,0xf8,0x7b,0x4d,0x6c,0xf5,0x3f,0x66,0x40,0x7f,0x41, -0x59,0x57,0x5f,0x04,0x7c,0x0f,0x77,0xf7,0xfc,0x3b,0x68,0x3d,0x76,0xee,0x5f,0xe4, -0x6b,0x27,0x96,0xd5,0xee,0x99,0xc7,0x2e,0x14,0xa6,0xf6,0xb7,0xe2,0x7e,0x5a,0xff, -0x00,0x6a,0xf8,0x86,0x1f,0xbd,0x6a,0xc7,0x1e,0x94,0xe1,0xe2,0x9d,0x62,0x2f,0xbf, -0x67,0x27,0xfd,0xf3,0x5f,0xa6,0x37,0x7f,0xb3,0x5f,0x80,0x2e,0xff,0x00,0xe6,0x0c, -0x61,0xff,0x00,0xae,0x73,0x3f,0xf5,0x26,0xb1,0xee,0xbf,0x64,0xbf,0x01,0xdc,0x92, -0x56,0x1b,0xd8,0x7d,0x92,0x65,0xfe,0xaa,0x6b,0x17,0x96,0xd5,0xfe,0x58,0x9c,0xb2, -0xe1,0x3e,0xcb,0xf1,0x7f,0xe4,0x7e,0x74,0x8f,0x1c,0xde,0xc6,0x7e,0x7b,0x59,0x07, -0xe0,0x6a,0x54,0xf8,0x88,0xeb,0xf7,0xe2,0x71,0xf9,0xd7,0xde,0xd7,0xbf,0xb1,0x87, -0x85,0x27,0xcf,0x91,0x7f,0x79,0x0f,0xfb,0xea,0xaf,0xfe,0x15,0x89,0x75,0xfb,0x0e, -0x68,0xf2,0x92,0x63,0xd7,0x18,0x7b,0x35,0xa0,0x3f,0xfb,0x3d,0x61,0x2c,0xb6,0xa7, -0x5a,0x6b,0xef,0x39,0xa5,0xc2,0xd5,0x97,0xc3,0x7f,0xbd,0x1f,0x16,0xc7,0xf1,0x1e, -0x2e,0xe0,0x8a,0xb3,0x1f,0xc4,0x4b,0x66,0xea,0xf5,0xf5,0x5e,0xa1,0xfb,0x08,0x29, -0xcf,0xd9,0xb5,0x6b,0x39,0x07,0x6f,0x36,0x16,0x5f,0xe5,0x9a,0xe7,0xee,0xff,0x00, -0x60,0xbd,0x4c,0x82,0x52,0xe7,0x4a,0x7f,0x6d,0xce,0x3f,0xf6,0x4a,0xc2,0x59,0x6b, -0xeb,0x49,0x9c,0xd2,0xe1,0xcc,0x5c,0x76,0x72,0xfc,0x19,0xf3,0xec,0x7e,0x3d,0xb4, -0x7c,0x66,0x40,0x3e,0xb5,0x66,0x3f,0x1a,0xd9,0xbe,0x3f,0x7a,0xb5,0xea,0xfa,0x87, -0xec,0x2f,0xe2,0x58,0x58,0x88,0xac,0x6d,0xe7,0x03,0xbc,0x57,0x0a,0x07,0xea,0x45, -0x61,0x5e,0x7e,0xc5,0x3e,0x2f,0x81,0x49,0x1a,0x3c,0xa7,0x1f,0xf3,0xce,0x74,0x6f, -0xe4,0xd5,0x83,0xcb,0xa3,0xd6,0x9c,0x97,0xc8,0xe7,0x96,0x49,0x8e,0x8e,0xd2,0x7f, -0xf8,0x09,0xc6,0xc7,0xe2,0xcb,0x47,0xc7,0xef,0x53,0xf3,0xa9,0xd3,0xc4,0x76,0xaf, -0xd2,0x45,0x3f,0x8d,0x5d,0xbc,0xfd,0x93,0x7c,0x61,0x66,0x0b,0x7f,0x62,0xea,0x60, -0x7f,0xb1,0x13,0x37,0xf2,0x15,0x87,0x79,0xfb,0x3b,0xf8,0xb2,0xc7,0xef,0xe9,0xfa, -0x9c,0x5f,0xef,0xdb,0xb0,0xfe,0x95,0xce,0xf0,0x14,0x97,0x46,0xbe,0x47,0x3c,0xb2, -0xec,0x74,0x3e,0xd7,0xe0,0xcd,0x55,0xd6,0xad,0xdb,0xf8,0x87,0xe7,0x52,0x0d,0x4e, -0x06,0xfe,0x31,0x5c,0x6d,0xc7,0xc2,0x9f,0x10,0xda,0x31,0x52,0xd3,0xa1,0x07,0x18, -0x68,0xc8,0xaa,0x72,0x78,0x23,0xc4,0x96,0xfd,0x24,0x63,0x8f,0xf6,0x4d,0x66,0xf0, -0x34,0xba,0x48,0xc1,0xe1,0x71,0xb1,0xec,0xcf,0x41,0x17,0xf0,0xff,0x00,0x7a,0x9e, -0xb7,0x91,0xf6,0x7f,0xd6,0xbc,0xd1,0xb4,0x4f,0x13,0x41,0xdc,0x9f,0x6e,0x69,0xa4, -0x78,0x96,0x0e,0xb1,0x16,0xfc,0x6b,0x37,0x97,0xc5,0xed,0x22,0x7d,0x9e,0x35,0x7d, -0x84,0xfe,0x67,0xa8,0xad,0xe0,0x1d,0x25,0x23,0xf1,0xa9,0x93,0x50,0x95,0x7e,0xed, -0xc3,0x8f,0xa3,0x57,0x93,0xff,0x00,0x6a,0xf8,0x82,0x1f,0xbd,0x6a,0xc7,0x1e,0x94, -0xa3,0xc5,0x3a,0xbc,0x5f,0x7e,0xd2,0x4f,0xfb,0xe6,0xa1,0xe5,0xcf,0xa4,0x90,0x73, -0x62,0xe3,0xbd,0x37,0xf7,0x9e,0xbd,0x1e,0xb5,0x7b,0x11,0xf9,0x2e,0xe4,0x1f,0x47, -0x35,0x65,0x3c,0x55,0xaa,0xc7,0xf7,0x6f,0xa5,0xff,0x00,0xbe,0x8d,0x78,0xe0,0xf1, -0xcd,0xe4,0x7f,0x7e,0xda,0x41,0xff,0x00,0x01,0x35,0x2a,0x7c,0x44,0x61,0xf7,0xa2, -0x71,0x51,0xfd,0x9f,0x55,0x6c,0xff,0x00,0x11,0xac,0x5e,0x26,0x3b,0xc2,0x47,0xb4, -0xc3,0xe3,0xcd,0x72,0x0f,0xbb,0x7d,0x27,0xe2,0x6a,0xec,0x3f,0x14,0x7c,0x43,0x0e, -0x31,0x7a,0xe7,0xea,0x6b,0xc4,0x13,0xe2,0x3c,0x47,0x19,0xdd,0x56,0xa3,0xf8,0x89, -0x6c,0x71,0x97,0x22,0x8f,0xa9,0xe2,0x63,0xb5,0xfe,0xf3,0x45,0x9a,0x57,0x86,0xfc, -0xcb,0xef,0x3d,0xda,0xdf,0xe3,0x4f,0x89,0x20,0xc6,0x2e,0x4f,0xe6,0x6b,0x46,0xdb, -0xe3,0xff,0x00,0x88,0xa0,0xc6,0x64,0x2c,0x7d,0x77,0x57,0x81,0x47,0xe3,0xdb,0x46, -0xff,0x00,0x96,0x95,0x66,0x3f,0x1a,0xda,0x37,0xfc,0xb5,0x5a,0x7c,0x98,0xc8,0x6d, -0x27,0xf7,0x9b,0x47,0x3c,0xad,0x1f,0xb6,0xfe,0xe3,0xe8,0x8b,0x7f,0xda,0x53,0x5f, -0x8b,0x86,0x27,0x1e,0xcd,0x5a,0x96,0xdf,0xb5,0x26,0xab,0x10,0x1b,0xe3,0x63,0xf5, -0x35,0xf3,0x5c,0x7e,0x2d,0xb4,0x7e,0x92,0xaf,0xe7,0x53,0xaf,0x88,0xed,0x5f,0xa3, -0xaf,0xe7,0x56,0xab,0xe3,0xe1,0xb4,0xd9,0xd3,0x1e,0x22,0xac,0xbf,0xe5,0xe1,0xf5, -0x0d,0xb7,0xed,0x59,0x73,0x91,0xe6,0xa1,0xff,0x00,0xbe,0x45,0x6b,0x5b,0x7e,0xd5, -0xb0,0xb6,0x03,0xc2,0x3e,0xa4,0x57,0xc9,0xc9,0xad,0xdb,0xbf,0xf1,0x8f,0xce,0xa5, -0x5d,0x52,0x06,0xfe,0x2a,0xb5,0x98,0x66,0x10,0xfb,0x6f,0xee,0x3a,0xe1,0xc4,0x95, -0x97,0xdb,0x47,0xd8,0x16,0xbf,0xb5,0x26,0x9a,0xc3,0xf7,0xa8,0xbf,0x91,0xad,0x4b, -0x6f,0xda,0x5b,0x44,0x9b,0x19,0x0a,0x3f,0x1a,0xf8,0xb4,0x6a,0x30,0x9e,0x77,0x0a, -0x6b,0xea,0xb0,0x20,0x3f,0x3f,0xeb,0x5b,0x47,0x36,0xc7,0xad,0x2f,0x7f,0x91,0xd4, -0xb8,0x9e,0xac,0x77,0x68,0xfb,0xa2,0xdf,0xf6,0x84,0xf0,0xec,0xa0,0x66,0x50,0x0f, -0xb3,0x0a,0xb7,0x37,0xc7,0x8f,0x0d,0x43,0x6e,0x65,0x7b,0x8c,0x01,0xdb,0x70,0xcd, -0x7e,0x7b,0xdf,0xf8,0xce,0xd6,0xc9,0x09,0x33,0x85,0xc7,0xfb,0x55,0xc0,0x78,0x93, -0xe2,0xcc,0x80,0x34,0x76,0x92,0xb1,0x27,0xbe,0x6b,0xd5,0xa1,0x8f,0xcc,0x2a,0xbd, -0x52,0x17,0xfa,0xd9,0x56,0x4f,0x96,0x9d,0x3e,0x66,0x7b,0xb7,0xed,0x37,0xf1,0xc6, -0xcf,0x5f,0xd5,0xee,0xe4,0xb5,0x93,0x31,0x74,0x8c,0x1e,0xb5,0xf2,0xd7,0x87,0x3c, -0x2b,0xaf,0xfc,0x6d,0xf1,0xe6,0x9f,0xe1,0x8d,0x0a,0x16,0xb8,0xd4,0x35,0x09,0x76, -0x6e,0xfe,0x08,0x63,0xcf,0xcd,0x23,0x9e,0xca,0xa3,0x24,0x9f,0x6f,0x5a,0x93,0xc2, -0xbe,0x13,0xf1,0x57,0xc6,0x6f,0x16,0x41,0xa3,0x68,0x36,0x13,0x6a,0xba,0x95,0xc3, -0x70,0x89,0xf7,0x51,0x7b,0xbb,0xb1,0xe1,0x54,0x77,0x27,0xfa,0x8a,0xfd,0x46,0xfd, -0x97,0x3f,0x65,0xdd,0x1b,0xf6,0x79,0xf0,0xdb,0x39,0x31,0xea,0x5e,0x2b,0xbe,0x41, -0xfd,0xa1,0xa9,0xe3,0x8c,0x75,0xf2,0xa2,0xcf,0x21,0x01,0xfc,0x58,0xf2,0x7b,0x01, -0xe9,0x61,0x70,0xaf,0x99,0xce,0x5b,0xbd,0x5b,0x34,0xcb,0x30,0x15,0x73,0x1c,0x53, -0xc6,0x62,0x3f,0xe0,0x7a,0x23,0xd2,0xfe,0x17,0x7c,0x3e,0xd3,0x7e,0x15,0xf8,0x03, -0x44,0xf0,0xa6,0x92,0x81,0x6c,0x74,0xbb,0x65,0x81,0x5b,0x1c,0xbb,0x75,0x67,0x3e, -0xec,0xc4,0x93,0xf5,0xae,0xaa,0x90,0x0c,0x52,0xd7,0xd0,0x25,0x6d,0x0f,0xd2,0xd2, -0xb2,0xb2,0x0a,0x28,0xa2,0x81,0x85,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14, -0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14, -0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14, -0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14, -0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14, -0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14, -0x51,0x40,0x05,0x14,0x51,0x40,0x09,0x46,0x29,0x68,0xa0,0x04,0xc5,0x18,0xa5,0xa2, -0x80,0x13,0x6d,0x26,0xda,0x75,0x14,0x01,0x13,0xda,0xc3,0x26,0x77,0xc4,0x8d,0x9e, -0xb9,0x50,0x6a,0x8d,0xc7,0x86,0xb4,0x9b,0xa0,0x44,0xda,0x5d,0x9c,0xca,0x7a,0x89, -0x20,0x43,0xfd,0x2b,0x4e,0x8a,0x97,0x18,0xbd,0xd1,0x2e,0x31,0x7b,0xa3,0x98,0xb9, -0xf8,0x65,0xe1,0x3b,0xb1,0xfb,0xdf,0x0e,0xe9,0xa7,0xe9,0x6c,0x8b,0xfc,0x85,0x65, -0xdd,0x7c,0x0e,0xf0,0x35,0xd9,0x26,0x4f,0x0e,0x5a,0x0f,0xf7,0x37,0x27,0xf2,0x22, -0xbb,0xba,0x2b,0x37,0x42,0x93,0xde,0x2b,0xee,0x31,0x78,0x7a,0x32,0xde,0x0b,0xee, -0x47,0x96,0x5d,0xfe,0xcc,0xfe,0x00,0xbb,0x24,0xff,0x00,0x64,0x34,0x24,0xff,0x00, -0xcf,0x39,0x9b,0x8f,0xcc,0x9a,0xc7,0xba,0xfd,0x91,0xfc,0x0b,0x71,0xf7,0x12,0xf6, -0x13,0xfe,0xcc,0xaa,0x7f,0x9a,0xd7,0xb5,0xd1,0x59,0x3c,0x25,0x07,0xf6,0x11,0x8b, -0xc0,0xe1,0x9f,0xfc,0xbb,0x47,0xcf,0x37,0xbf,0xb1,0x77,0x85,0x67,0x27,0xc8,0xd4, -0x2e,0xe1,0x1e,0x8e,0x88,0xff,0x00,0xcb,0x15,0x8b,0x75,0xfb,0x0d,0x69,0x12,0xe7, -0xcb,0xd7,0x58,0x7a,0x6f,0xb4,0x07,0xff,0x00,0x66,0xaf,0xa8,0x28,0xac,0xde,0x07, -0x0e,0xfe,0xcf,0xe6,0x64,0xf2,0xcc,0x2b,0xfb,0x1f,0x8b,0x3e,0x3e,0xbf,0xfd,0x84, -0x1c,0x93,0xf6,0x7d,0x56,0xc6,0x40,0x7f,0xe7,0xac,0x4c,0xbf,0xc8,0x1a,0xc1,0xbd, -0xfd,0x83,0x35,0x65,0xc9,0x8e,0xe7,0x4b,0x97,0xe8,0xee,0x0f,0xea,0xa2,0xbe,0xdf, -0xa4,0x6e,0x95,0x93,0xcb,0xa8,0x74,0xbf,0xde,0x60,0xf2,0x8c,0x2b,0xe8,0xfe,0xf3, -0xe0,0x0b,0xef,0xd8,0x67,0xc4,0xd1,0x93,0xe5,0xe9,0xf0,0x4c,0x3f,0xe9,0x95,0xc2, -0x0f,0xe6,0x45,0x61,0x5e,0x7e,0xc5,0x7e,0x30,0xb7,0x04,0x8d,0x16,0x63,0xff,0x00, -0x5c,0xe7,0x46,0xfe,0x4c,0x6b,0xf4,0x6c,0x75,0xa0,0x75,0xac,0xde,0x5d,0x4f,0xa4, -0x99,0xcf,0x2c,0x8f,0x0c,0xfa,0xbf,0xc3,0xfc,0x8f,0xcc,0x3b,0xcf,0xd9,0x53,0xc5, -0xd6,0x8c,0x41,0xd1,0x35,0x51,0x8f,0xee,0xc0,0xec,0x3f,0x30,0x2b,0x16,0xfb,0xf6, -0x7b,0xf1,0x56,0x9e,0xa5,0xa4,0xb1,0xd4,0xa1,0x03,0xbb,0xc0,0xc3,0xfa,0x57,0xea, -0xb8,0xe9,0x4d,0x3c,0xd4,0x3c,0xbb,0xb4,0xd9,0xcb,0x2e,0x1d,0xc3,0xbe,0xbf,0x82, -0x3f,0x24,0x67,0xf8,0x59,0xaf,0xda,0x9c,0x16,0x99,0x7f,0xde,0x42,0x2a,0xa3,0xf8, -0x2b,0xc4,0x50,0x1e,0x25,0x6f,0xc4,0x1a,0xfd,0x75,0x96,0xd6,0x19,0x57,0xe7,0x89, -0x1f,0xfd,0xe5,0x06,0xb3,0x2f,0x3c,0x37,0xa4,0x5d,0xff,0x00,0xaf,0xd2,0xec,0xa6, -0xff,0x00,0xae,0x96,0xe8,0xdf,0xcc,0x57,0x34,0xf0,0x72,0x8f,0xdb,0xfc,0x3f,0xe0, -0x9e,0x65,0x5e,0x1d,0xc3,0xc7,0xb7,0xdd,0xff,0x00,0x04,0xfc,0x94,0x9b,0x44,0xf1, -0x2c,0x2b,0xc3,0x13,0xf4,0xcd,0x64,0x5d,0xe8,0x9e,0x28,0x94,0x13,0x99,0x31,0xec, -0x09,0xaf,0xd4,0x6f,0x14,0x78,0x37,0x40,0x44,0x98,0xae,0x87,0xa6,0x83,0x8e,0xa2, -0xd2,0x3f,0xf0,0xac,0x0f,0x06,0xf8,0x4b,0x43,0x9e,0xf1,0xd6,0x5d,0x1b,0x4f,0x91, -0x72,0x38,0x7b,0x54,0x23,0xf9,0x57,0x1c,0x63,0x25,0x2b,0x2b,0x7d,0xc7,0x8f,0x2c, -0x97,0x0c,0xa5,0xca,0x92,0xfb,0x8f,0xcc,0x9b,0x2f,0x86,0x9e,0x2d,0xf1,0x2d,0xd8, -0xb7,0xb3,0xd3,0xef,0x75,0x19,0xd8,0xf1,0x15,0xbc,0x4c,0xed,0xcf,0xb0,0x15,0xf4, -0x27,0xc2,0x4f,0xf8,0x27,0x6f,0x8a,0x7c,0x4d,0x3c,0x37,0x7e,0x31,0xb9,0x5f,0x0d, -0xe9,0x99,0x05,0xa0,0x52,0x24,0xba,0x71,0xd7,0x85,0x1f,0x2a,0xfd,0x58,0xe4,0x7f, -0x76,0xbf,0x46,0x74,0xed,0x2e,0xcf,0x4c,0xb7,0x58,0xac,0xed,0x20,0xb4,0x8c,0x0e, -0x12,0x08,0xd5,0x00,0xfc,0x00,0xab,0x8b,0x5e,0xfd,0x1c,0x3d,0xd2,0x94,0xdd,0xcf, -0xa2,0xc0,0xf0,0xed,0x18,0x5a,0x75,0x26,0xe4,0xbb,0x5a,0xc8,0xe2,0x7e,0x16,0xfc, -0x1b,0xf0,0xa7,0xc1,0xcd,0x0c,0x69,0x9e,0x18,0xd2,0xe3,0xb3,0x46,0x03,0xce,0xb8, -0x6f,0x9a,0x79,0xc8,0xef,0x23,0xf5,0x3f,0x4e,0x83,0xb0,0x15,0xdb,0x8e,0x28,0x1d, -0x29,0x6b,0xd0,0x49,0x25,0x64,0x7d,0x8c,0x29,0xc6,0x9c,0x54,0x20,0xac,0x90,0x51, -0x45,0x14,0xcd,0x02,0x8a,0x28,0xa0,0x0f,0xff,0xd9,}; - -static const unsigned int dummy_align__runtime_shtml = 3; -static const unsigned char data__runtime_shtml[] = { -/* /runtime.shtml (15 chars) */ -0x2f,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x00,0x00, - -/* HTTP header */ -/* "HTTP/1.0 200 OK -" (17 bytes) */ -0x48,0x54,0x54,0x50,0x2f,0x31,0x2e,0x30,0x20,0x32,0x30,0x30,0x20,0x4f,0x4b,0x0d, -0x0a, -/* "Server: lwIP/1.3.1 (http://savannah.nongnu.org/projects/lwip) -" (63 bytes) */ -0x53,0x65,0x72,0x76,0x65,0x72,0x3a,0x20,0x6c,0x77,0x49,0x50,0x2f,0x31,0x2e,0x33, -0x2e,0x31,0x20,0x28,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x73,0x61,0x76,0x61,0x6e, -0x6e,0x61,0x68,0x2e,0x6e,0x6f,0x6e,0x67,0x6e,0x75,0x2e,0x6f,0x72,0x67,0x2f,0x70, -0x72,0x6f,0x6a,0x65,0x63,0x74,0x73,0x2f,0x6c,0x77,0x69,0x70,0x29,0x0d,0x0a, -/* "Content-type: text/html -Expires: Fri, 10 Apr 2008 14:00:00 GMT -Pragma: no-cache - -" (85 bytes) */ -0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x74,0x79,0x70,0x65,0x3a,0x20,0x74,0x65, -0x78,0x74,0x2f,0x68,0x74,0x6d,0x6c,0x0d,0x0a,0x45,0x78,0x70,0x69,0x72,0x65,0x73, -0x3a,0x20,0x46,0x72,0x69,0x2c,0x20,0x31,0x30,0x20,0x41,0x70,0x72,0x20,0x32,0x30, -0x30,0x38,0x20,0x31,0x34,0x3a,0x30,0x30,0x3a,0x30,0x30,0x20,0x47,0x4d,0x54,0x0d, -0x0a,0x50,0x72,0x61,0x67,0x6d,0x61,0x3a,0x20,0x6e,0x6f,0x2d,0x63,0x61,0x63,0x68, -0x65,0x0d,0x0a,0x0d,0x0a, -/* raw file data (758 bytes) */ -0x3c,0x21,0x44,0x4f,0x43,0x54,0x59,0x50,0x45,0x20,0x48,0x54,0x4d,0x4c,0x20,0x50, -0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f,0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44, -0x54,0x44,0x20,0x48,0x54,0x4d,0x4c,0x20,0x34,0x2e,0x30,0x31,0x20,0x54,0x72,0x61, -0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x2f,0x2f,0x45,0x4e,0x22,0x20,0x22, -0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, -0x67,0x2f,0x54,0x52,0x2f,0x68,0x74,0x6d,0x6c,0x34,0x2f,0x6c,0x6f,0x6f,0x73,0x65, -0x2e,0x64,0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x0d,0x0a, -0x20,0x20,0x3c,0x68,0x65,0x61,0x64,0x3e,0x0d,0x0a,0x20,0x20,0x20,0x20,0x3c,0x74, -0x69,0x74,0x6c,0x65,0x3e,0x46,0x72,0x65,0x65,0x52,0x54,0x4f,0x53,0x2e,0x6f,0x72, -0x67,0x20,0x6c,0x77,0x49,0x50,0x20,0x57,0x45,0x42,0x20,0x73,0x65,0x72,0x76,0x65, -0x72,0x20,0x64,0x65,0x6d,0x6f,0x3c,0x2f,0x74,0x69,0x74,0x6c,0x65,0x3e,0x0d,0x0a, -0x20,0x20,0x3c,0x2f,0x68,0x65,0x61,0x64,0x3e,0x0d,0x0a,0x20,0x20,0x3c,0x42,0x4f, -0x44,0x59,0x20,0x6f,0x6e,0x4c,0x6f,0x61,0x64,0x3d,0x22,0x77,0x69,0x6e,0x64,0x6f, -0x77,0x2e,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x26,0x71,0x75, -0x6f,0x74,0x3b,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x68,0x72,0x65,0x66, -0x3d,0x27,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x27, -0x26,0x71,0x75,0x6f,0x74,0x3b,0x2c,0x32,0x30,0x30,0x30,0x29,0x22,0x3e,0x0d,0x0a, -0x3c,0x66,0x6f,0x6e,0x74,0x20,0x66,0x61,0x63,0x65,0x3d,0x22,0x61,0x72,0x69,0x61, -0x6c,0x22,0x3e,0x0d,0x0a,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x69,0x6e, -0x64,0x65,0x78,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x54,0x61,0x73,0x6b,0x20, -0x53,0x74,0x61,0x74,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62,0x3e,0x7c,0x3c,0x2f, -0x62,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x72,0x75,0x6e,0x74, -0x69,0x6d,0x65,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x52,0x75,0x6e,0x20,0x54, -0x69,0x6d,0x65,0x20,0x53,0x74,0x61,0x74,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62, -0x3e,0x7c,0x3c,0x2f,0x62,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22, -0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x66,0x72,0x65,0x65,0x72, -0x74,0x6f,0x73,0x2e,0x6f,0x72,0x67,0x2f,0x22,0x3e,0x46,0x72,0x65,0x65,0x52,0x54, -0x4f,0x53,0x20,0x48,0x6f,0x6d,0x65,0x70,0x61,0x67,0x65,0x3c,0x2f,0x61,0x3e,0x20, -0x3c,0x62,0x3e,0x7c,0x3c,0x2f,0x62,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66, -0x3d,0x22,0x6c,0x6f,0x67,0x6f,0x2e,0x6a,0x70,0x67,0x22,0x3e,0x33,0x37,0x4b,0x20, -0x6a,0x70,0x67,0x3c,0x2f,0x61,0x3e,0x0d,0x0a,0x3c,0x62,0x72,0x3e,0x3c,0x70,0x3e, -0x0d,0x0a,0x3c,0x68,0x72,0x3e,0x0d,0x0a,0x3c,0x62,0x72,0x3e,0x3c,0x70,0x3e,0x0d, -0x0a,0x3c,0x68,0x32,0x3e,0x52,0x75,0x6e,0x2d,0x74,0x69,0x6d,0x65,0x20,0x73,0x74, -0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x3c,0x2f,0x68,0x32,0x3e,0x0d,0x0a,0x50, -0x61,0x67,0x65,0x20,0x77,0x69,0x6c,0x6c,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68, -0x20,0x65,0x76,0x65,0x72,0x79,0x20,0x32,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x73, -0x2e,0x3c,0x70,0x3e,0x0d,0x0a,0x3c,0x66,0x6f,0x6e,0x74,0x20,0x66,0x61,0x63,0x65, -0x3d,0x22,0x63,0x6f,0x75,0x72,0x69,0x65,0x72,0x22,0x3e,0x3c,0x70,0x72,0x65,0x3e, -0x54,0x61,0x73,0x6b,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, -0x41,0x62,0x73,0x20,0x54,0x69,0x6d,0x65,0x20,0x20,0x20,0x20,0x20,0x20,0x25,0x20, -0x54,0x69,0x6d,0x65,0x3c,0x62,0x72,0x3e,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a, -0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a, -0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a, -0x3c,0x62,0x72,0x3e,0x0d,0x0a,0x3c,0x21,0x2d,0x2d,0x23,0x72,0x75,0x6e,0x5f,0x73, -0x74,0x61,0x74,0x73,0x2d,0x2d,0x3e,0x0d,0x0d,0x0a,0x3c,0x2f,0x70,0x72,0x65,0x3e, -0x3c,0x2f,0x66,0x6f,0x6e,0x74,0x3e,0x0d,0x0a,0x3c,0x2f,0x66,0x6f,0x6e,0x74,0x3e, -0x0d,0x0a,0x3c,0x2f,0x62,0x6f,0x64,0x79,0x3e,0x0d,0x0a,0x3c,0x2f,0x68,0x74,0x6d, -0x6c,0x3e,0x0d,0x0a,0x0d,0x0a,}; - - - -const struct fsdata_file file__404_html[] = { { -file_NULL, -data__404_html, -data__404_html + 12, -sizeof(data__404_html) - 12, -1, -}}; - -const struct fsdata_file file__index_shtml[] = { { -file__404_html, -data__index_shtml, -data__index_shtml + 16, -sizeof(data__index_shtml) - 16, -1, -}}; - -const struct fsdata_file file__logo_jpg[] = { { -file__index_shtml, -data__logo_jpg, -data__logo_jpg + 12, -sizeof(data__logo_jpg) - 12, -1, -}}; - -const struct fsdata_file file__runtime_shtml[] = { { -file__logo_jpg, -data__runtime_shtml, -data__runtime_shtml + 16, -sizeof(data__runtime_shtml) - 16, -1, -}}; - -#define FS_ROOT file__runtime_shtml -#define FS_NUMFILES 4 - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata deleted file mode 100644 index 37b4203e6..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata +++ /dev/null @@ -1,97 +0,0 @@ -#!/usr/bin/perl - -open(OUTPUT, "> fsdata.c"); - -chdir("fs"); -open(FILES, "find . -type f |"); - -while($file = ) { - - # Do not include files in CVS directories nor backup files. - if($file =~ /(CVS|~)/) { - next; - } - - chop($file); - - open(HEADER, "> /tmp/header") || die $!; - if($file =~ /404/) { - print(HEADER "HTTP/1.0 404 File not found\r\n"); - } else { - print(HEADER "HTTP/1.0 200 OK\r\n"); - } - print(HEADER "Server: lwIP/pre-0.6 (http://www.sics.se/~adam/lwip/)\r\n"); - if($file =~ /\.html$/) { - print(HEADER "Content-type: text/html\r\n"); - } elsif($file =~ /\.gif$/) { - print(HEADER "Content-type: image/gif\r\n"); - } elsif($file =~ /\.png$/) { - print(HEADER "Content-type: image/png\r\n"); - } elsif($file =~ /\.jpg$/) { - print(HEADER "Content-type: image/jpeg\r\n"); - } elsif($file =~ /\.class$/) { - print(HEADER "Content-type: application/octet-stream\r\n"); - } elsif($file =~ /\.ram$/) { - print(HEADER "Content-type: audio/x-pn-realaudio\r\n"); - } else { - print(HEADER "Content-type: text/plain\r\n"); - } - print(HEADER "\r\n"); - close(HEADER); - - unless($file =~ /\.plain$/ || $file =~ /cgi/) { - system("cat /tmp/header $file > /tmp/file"); - } else { - system("cp $file /tmp/file"); - } - - open(FILE, "/tmp/file"); - unlink("/tmp/file"); - unlink("/tmp/header"); - - $file =~ s/\.//; - $fvar = $file; - $fvar =~ s-/-_-g; - $fvar =~ s-\.-_-g; - print(OUTPUT "static const unsigned char data".$fvar."[] = {\n"); - print(OUTPUT "\t/* $file */\n\t"); - for($j = 0; $j < length($file); $j++) { - printf(OUTPUT "%#02x, ", unpack("C", substr($file, $j, 1))); - } - printf(OUTPUT "0,\n"); - - - $i = 0; - while(read(FILE, $data, 1)) { - if($i == 0) { - print(OUTPUT "\t"); - } - printf(OUTPUT "%#02x, ", unpack("C", $data)); - $i++; - if($i == 10) { - print(OUTPUT "\n"); - $i = 0; - } - } - print(OUTPUT "};\n\n"); - close(FILE); - push(@fvars, $fvar); - push(@files, $file); -} - -for($i = 0; $i < @fvars; $i++) { - $file = $files[$i]; - $fvar = $fvars[$i]; - - if($i == 0) { - $prevfile = "NULL"; - } else { - $prevfile = "file" . $fvars[$i - 1]; - } - print(OUTPUT "const struct fsdata_file file".$fvar."[] = {{$prevfile, data$fvar, "); - print(OUTPUT "data$fvar + ". (length($file) + 1) .", "); - print(OUTPUT "sizeof(data$fvar) - ". (length($file) + 1) ."}};\n\n"); -} - -print(OUTPUT "#define FS_ROOT file$fvars[$i - 1]\n\n"); -print(OUTPUT "#define FS_NUMFILES $i\n"); diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata.c deleted file mode 100644 index b065caa08..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata.c +++ /dev/null @@ -1,610 +0,0 @@ -/** - * makefsdata: Converts a directory structure for use with the lwIP httpd. - * - * This file is part of the lwIP TCP/IP stack. - * - * Author: Jim Pettinato - * Simon Goldschmidt - * - * @todo: - * - take TCP_MSS, LWIP_TCP_TIMESTAMPS and - * PAYLOAD_ALIGN_TYPE/PAYLOAD_ALIGNMENT as arguments - */ - -#include -#include -#ifdef WIN32 -#define WIN32_LEAN_AND_MEAN -#include "windows.h" -#else -#include -#endif -#include -#include - -/* Compatibility defines Win32 vs. DOS */ -#ifdef WIN32 - -#define FIND_T WIN32_FIND_DATAA -#define FIND_T_FILENAME(fInfo) (fInfo.cFileName) -#define FIND_T_IS_DIR(fInfo) ((fInfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0) -#define FIND_T_IS_FILE(fInfo) ((fInfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0) -#define FIND_RET_T HANDLE -#define FINDFIRST_FILE(path, result) FindFirstFileA(path, result) -#define FINDFIRST_DIR(path, result) FindFirstFileA(path, result) -#define FINDNEXT(ff_res, result) FindNextFileA(ff_res, result) -#define FINDFIRST_SUCCEEDED(ret) (ret != INVALID_HANDLE_VALUE) -#define FINDNEXT_SUCCEEDED(ret) (ret == TRUE) - -#define GETCWD(path, len) GetCurrentDirectoryA(len, path) -#define CHDIR(path) SetCurrentDirectoryA(path) - -#define NEWLINE "\r\n" -#define NEWLINE_LEN 2 - -#else - -#define FIND_T struct fflbk -#define FIND_T_FILENAME(fInfo) (fInfo.ff_name) -#define FIND_T_IS_DIR(fInfo) ((fInfo.ff_attrib & FA_DIREC) == FA_DIREC) -#define FIND_T_IS_FILE(fInfo) (1) -#define FIND_RET_T int -#define FINDFIRST_FILE(path, result) findfirst(path, result, FA_ARCH) -#define FINDFIRST_DIR(path, result) findfirst(path, result, FA_DIREC) -#define FINDNEXT(ff_res, result) FindNextFileA(ff_res, result) -#define FINDFIRST_SUCCEEDED(ret) (ret == 0) -#define FINDNEXT_SUCCEEDED(ret) (ret == 0) - -#define GETCWD(path, len) getcwd(path, len) -#define CHDIR(path) chdir(path) - -#endif - -/* define this to get the header variables we use to build HTTP headers */ -#define LWIP_HTTPD_DYNAMIC_HEADERS 1 -#include "../httpd_structs.h" - -#include "../../../lwip-1.4.0/src/core/ipv4/inet_chksum.c" -#include "../../../lwip-1.4.0/src/core/def.c" - -/** (Your server name here) */ -const char *serverID = "Server: "HTTPD_SERVER_AGENT"\r\n"; - -/* change this to suit your MEM_ALIGNMENT */ -#define PAYLOAD_ALIGNMENT 4 -/* set this to 0 to prevent aligning payload */ -#define ALIGN_PAYLOAD 1 -/* define this to a type that has the required alignment */ -#define PAYLOAD_ALIGN_TYPE "unsigned int" -static int payload_alingment_dummy_counter = 0; - -#define HEX_BYTES_PER_LINE 16 - -#define MAX_PATH_LEN 256 - -#define COPY_BUFSIZE 10240 - -int process_sub(FILE *data_file, FILE *struct_file); -int process_file(FILE *data_file, FILE *struct_file, const char *filename); -int file_write_http_header(FILE *data_file, const char *filename, int file_size, - u16_t *http_hdr_len, u16_t *http_hdr_chksum); -int file_put_ascii(FILE *file, const char *ascii_string, int len, int *i); -int s_put_ascii(char *buf, const char *ascii_string, int len, int *i); -void concat_files(const char *file1, const char *file2, const char *targetfile); - -static unsigned char file_buffer_raw[COPY_BUFSIZE]; -/* 5 bytes per char + 3 bytes per line */ -static char file_buffer_c[COPY_BUFSIZE * 5 + ((COPY_BUFSIZE / HEX_BYTES_PER_LINE) * 3)]; - -char curSubdir[MAX_PATH_LEN]; -char lastFileVar[MAX_PATH_LEN]; -char hdr_buf[4096]; - -unsigned char processSubs = 1; -unsigned char includeHttpHeader = 1; -unsigned char useHttp11 = 0; -unsigned char precalcChksum = 0; - -int main(int argc, char *argv[]) -{ - FIND_T fInfo; - FIND_RET_T fret; - char path[MAX_PATH_LEN]; - char appPath[MAX_PATH_LEN]; - FILE *data_file; - FILE *struct_file; - int filesProcessed; - int i; - char targetfile[MAX_PATH_LEN]; - strcpy(targetfile, "fsdata.c"); - - memset(path, 0, sizeof(path)); - memset(appPath, 0, sizeof(appPath)); - - printf(NEWLINE " makefsdata - HTML to C source converter" NEWLINE); - printf(" by Jim Pettinato - circa 2003 " NEWLINE); - printf(" extended by Simon Goldschmidt - 2009 " NEWLINE NEWLINE); - - strcpy(path, "fs"); - for(i = 1; i < argc; i++) { - if (argv[i][0] == '-') { - if (strstr(argv[i], "-s")) { - processSubs = 0; - } else if (strstr(argv[i], "-e")) { - includeHttpHeader = 0; - } else if (strstr(argv[i], "-11")) { - useHttp11 = 1; - } else if (strstr(argv[i], "-c")) { - precalcChksum = 1; - } else if((argv[i][1] == 'f') && (argv[i][2] == ':')) { - strcpy(targetfile, &argv[i][3]); - printf("Writing to file \"%s\"\n", targetfile); - } - } else { - strcpy(path, argv[i]); - } - } - - /* if command line param or subdir named 'fs' not found spout usage verbiage */ - fret = FINDFIRST_DIR(path, &fInfo); - if (!FINDFIRST_SUCCEEDED(fret)) { - /* if no subdir named 'fs' (or the one which was given) exists, spout usage verbiage */ - printf(" Failed to open directory \"%s\"." NEWLINE NEWLINE, path); - printf(" Usage: htmlgen [targetdir] [-s] [-i] [-f:]" NEWLINE NEWLINE); - printf(" targetdir: relative or absolute path to files to convert" NEWLINE); - printf(" switch -s: toggle processing of subdirectories (default is on)" NEWLINE); - printf(" switch -e: exclude HTTP header from file (header is created at runtime, default is off)" NEWLINE); - printf(" switch -11: include HTTP 1.1 header (1.0 is default)" NEWLINE); - printf(" switch -c: precalculate checksums for all pages (default is off)" NEWLINE); - printf(" switch -f: target filename (default is \"fsdata.c\")" NEWLINE); - printf(" if targetdir not specified, htmlgen will attempt to" NEWLINE); - printf(" process files in subdirectory 'fs'" NEWLINE); - exit(-1); - } - - printf("HTTP %sheader will %s statically included." NEWLINE, - (includeHttpHeader ? (useHttp11 ? "1.1 " : "1.0 ") : ""), - (includeHttpHeader ? "be" : "not be")); - - sprintf(curSubdir, ""); /* start off in web page's root directory - relative paths */ - printf(" Processing all files in directory %s", path); - if (processSubs) { - printf(" and subdirectories..." NEWLINE NEWLINE); - } else { - printf("..." NEWLINE NEWLINE); - } - - GETCWD(appPath, MAX_PATH_LEN); - data_file = fopen("fsdata.tmp", "wb"); - if (data_file == NULL) { - printf("Failed to create file \"fsdata.tmp\"\n"); - exit(-1); - } - struct_file = fopen("fshdr.tmp", "wb"); - if (struct_file == NULL) { - printf("Failed to create file \"fshdr.tmp\"\n"); - exit(-1); - } - - CHDIR(path); - - fprintf(data_file, "#include \"fs.h\"" NEWLINE); - fprintf(data_file, "#include \"lwip/def.h\"" NEWLINE); - fprintf(data_file, "#include \"fsdata.h\"" NEWLINE NEWLINE NEWLINE); - - fprintf(data_file, "#define file_NULL (struct fsdata_file *) NULL" NEWLINE NEWLINE NEWLINE); - - sprintf(lastFileVar, "NULL"); - - filesProcessed = process_sub(data_file, struct_file); - - /* data_file now contains all of the raw data.. now append linked list of - * file header structs to allow embedded app to search for a file name */ - fprintf(data_file, NEWLINE NEWLINE); - fprintf(struct_file, "#define FS_ROOT file_%s" NEWLINE, lastFileVar); - fprintf(struct_file, "#define FS_NUMFILES %d" NEWLINE NEWLINE, filesProcessed); - - fclose(data_file); - fclose(struct_file); - - CHDIR(appPath); - /* append struct_file to data_file */ - printf(NEWLINE "Creating target file..." NEWLINE NEWLINE); - concat_files("fsdata.tmp", "fshdr.tmp", targetfile); - - /* if succeeded, delete the temporary files */ - remove("fsdata.tmp"); - remove("fshdr.tmp"); - - printf(NEWLINE "Processed %d files - done." NEWLINE NEWLINE, filesProcessed); - - return 0; -} - -static void copy_file(const char *filename_in, FILE *fout) -{ - FILE *fin; - size_t len; - fin = fopen(filename_in, "rb"); - if (fin == NULL) { - printf("Failed to open file \"%s\"\n", filename_in); - exit(-1); - } - - while((len = fread(file_buffer_raw, 1, COPY_BUFSIZE, fin)) > 0) - { - fwrite(file_buffer_raw, 1, len, fout); - } - fclose(fin); -} - -void concat_files(const char *file1, const char *file2, const char *targetfile) -{ - FILE *fout; - fout = fopen(targetfile, "wb"); - if (fout == NULL) { - printf("Failed to open file \"%s\"\n", targetfile); - exit(-1); - } - copy_file(file1, fout); - copy_file(file2, fout); - fclose(fout); -} - -int process_sub(FILE *data_file, FILE *struct_file) -{ - FIND_T fInfo; - FIND_RET_T fret; - int filesProcessed = 0; - char oldSubdir[MAX_PATH_LEN]; - - if (processSubs) { - /* process subs recursively */ - strcpy(oldSubdir, curSubdir); - fret = FINDFIRST_DIR("*", &fInfo); - if (FINDFIRST_SUCCEEDED(fret)) { - do { - const char *curName = FIND_T_FILENAME(fInfo); - if (curName == NULL) continue; - if (curName[0] == '.') continue; - if (strcmp(curName, "CVS") == 0) continue; - if (!FIND_T_IS_DIR(fInfo)) continue; - CHDIR(curName); - strcat(curSubdir, "/"); - strcat(curSubdir, curName); - printf(NEWLINE "processing subdirectory %s/..." NEWLINE, curSubdir); - filesProcessed += process_sub(data_file, struct_file); - CHDIR(".."); - strcpy(curSubdir, oldSubdir); - } while (FINDNEXT_SUCCEEDED(FINDNEXT(fret, &fInfo))); - } - } - - fret = FINDFIRST_FILE("*.*", &fInfo); - if (FINDFIRST_SUCCEEDED(fret)) { - /* at least one file in directory */ - do { - if (FIND_T_IS_FILE(fInfo)) { - const char *curName = FIND_T_FILENAME(fInfo); - printf("processing %s/%s..." NEWLINE, curSubdir, curName); - if (process_file(data_file, struct_file, curName) < 0) { - printf(NEWLINE "Error... aborting" NEWLINE); - return -1; - } - filesProcessed++; - } - } while (FINDNEXT_SUCCEEDED(FINDNEXT(fret, &fInfo))); - } - return filesProcessed; -} - -int get_file_size(const char* filename) -{ - FILE *inFile; - int file_size = -1; - inFile = fopen(filename, "rb"); - if (inFile == NULL) { - printf("Failed to open file \"%s\"\n", filename); - exit(-1); - } - fseek(inFile, 0, SEEK_END); - file_size = ftell(inFile); - fclose(inFile); - return file_size; -} - -void process_file_data(const char *filename, FILE *data_file) -{ - FILE *source_file; - size_t len, written, i, src_off=0; - - source_file = fopen(filename, "rb"); - - do { - size_t off = 0; - len = fread(file_buffer_raw, 1, COPY_BUFSIZE, source_file); - if (len > 0) { - for (i = 0; i < len; i++) { - sprintf(&file_buffer_c[off], "0x%02.2x,", file_buffer_raw[i]); - off += 5; - if ((++src_off % HEX_BYTES_PER_LINE) == 0) { - memcpy(&file_buffer_c[off], NEWLINE, NEWLINE_LEN); - off += NEWLINE_LEN; - } - } - written = fwrite(file_buffer_c, 1, off, data_file); - } - } while(len > 0); - fclose(source_file); -} - -int write_checksums(FILE *struct_file, const char *filename, const char *varname, - u16_t hdr_len, u16_t hdr_chksum) -{ - int chunk_size = TCP_MSS; - int offset; - size_t len; - int i = 0; - FILE *f; -#if LWIP_TCP_TIMESTAMPS - /* when timestamps are used, usable space is 12 bytes less per segment */ - chunk_size -= 12; -#endif - - fprintf(struct_file, "#if HTTPD_PRECALCULATED_CHECKSUM" NEWLINE); - fprintf(struct_file, "const struct fsdata_chksum chksums_%s[] = {" NEWLINE, varname); - - memset(file_buffer_raw, 0xab, sizeof(file_buffer_raw)); - f = fopen(filename, "rb"); - if (f == INVALID_HANDLE_VALUE) { - printf("Failed to open file \"%s\"\n", filename); - exit(-1); - } - if (hdr_len > 0) { - /* add checksum for HTTP header */ - fprintf(struct_file, "{%d, 0x%04x, %d}," NEWLINE, 0, hdr_chksum, hdr_len); - i++; - } - for (offset = hdr_len; ; offset += len) { - unsigned short chksum; - len = fread(file_buffer_raw, 1, chunk_size, f); - if (len == 0) { - break; - } - chksum = ~inet_chksum(file_buffer_raw, (u16_t)len); - /* add checksum for data */ - fprintf(struct_file, "{%d, 0x%04x, %d}," NEWLINE, offset, chksum, len); - i++; - } - fclose(f); - fprintf(struct_file, "};" NEWLINE); - fprintf(struct_file, "#endif /* HTTPD_PRECALCULATED_CHECKSUM */" NEWLINE); - return i; -} - -int process_file(FILE *data_file, FILE *struct_file, const char *filename) -{ - char *pch; - char varname[MAX_PATH_LEN]; - int i = 0; - char qualifiedName[MAX_PATH_LEN]; - int file_size; - u16_t http_hdr_chksum = 0; - u16_t http_hdr_len = 0; - int chksum_count = 0; - - /* create qualified name (TODO: prepend slash or not?) */ - sprintf(qualifiedName,"%s/%s", curSubdir, filename); - /* create C variable name */ - strcpy(varname, qualifiedName); - /* convert slashes & dots to underscores */ - while ((pch = strpbrk(varname, "./\\")) != NULL) { - *pch = '_'; - } -#if ALIGN_PAYLOAD - /* to force even alignment of array */ - fprintf(data_file, "static const " PAYLOAD_ALIGN_TYPE " dummy_align_%s = %d;" NEWLINE, varname, payload_alingment_dummy_counter++); -#endif /* ALIGN_PAYLOAD */ - fprintf(data_file, "static const unsigned char data_%s[] = {" NEWLINE, varname); - /* encode source file name (used by file system, not returned to browser) */ - fprintf(data_file, "/* %s (%d chars) */" NEWLINE, qualifiedName, strlen(qualifiedName)+1); - file_put_ascii(data_file, qualifiedName, strlen(qualifiedName)+1, &i); -#if ALIGN_PAYLOAD - /* pad to even number of bytes to assure payload is on aligned boundary */ - while(i % PAYLOAD_ALIGNMENT != 0) { - fprintf(data_file, "0x%02.2x,", 0); - i++; - } -#endif /* ALIGN_PAYLOAD */ - fprintf(data_file, NEWLINE); - - file_size = get_file_size(filename); - if (includeHttpHeader) { - file_write_http_header(data_file, filename, file_size, &http_hdr_len, &http_hdr_chksum); - } - if (precalcChksum) { - chksum_count = write_checksums(struct_file, filename, varname, http_hdr_len, http_hdr_chksum); - } - - /* build declaration of struct fsdata_file in temp file */ - fprintf(struct_file, "const struct fsdata_file file_%s[] = { {" NEWLINE, varname); - fprintf(struct_file, "file_%s," NEWLINE, lastFileVar); - fprintf(struct_file, "data_%s," NEWLINE, varname); - fprintf(struct_file, "data_%s + %d," NEWLINE, varname, i); - fprintf(struct_file, "sizeof(data_%s) - %d," NEWLINE, varname, i); - fprintf(struct_file, "%d," NEWLINE, includeHttpHeader); - if (precalcChksum) { - fprintf(struct_file, "#if HTTPD_PRECALCULATED_CHECKSUM" NEWLINE); - fprintf(struct_file, "%d, chksums_%s," NEWLINE, chksum_count, varname); - fprintf(struct_file, "#endif /* HTTPD_PRECALCULATED_CHECKSUM */" NEWLINE); - } - fprintf(struct_file, "}};" NEWLINE NEWLINE); - strcpy(lastFileVar, varname); - - /* write actual file contents */ - i = 0; - fprintf(data_file, NEWLINE "/* raw file data (%d bytes) */" NEWLINE, file_size); - process_file_data(filename, data_file); - fprintf(data_file, "};" NEWLINE NEWLINE); - - return 0; -} - -int file_write_http_header(FILE *data_file, const char *filename, int file_size, - u16_t *http_hdr_len, u16_t *http_hdr_chksum) -{ - int i = 0; - int response_type = HTTP_HDR_OK; - int file_type = HTTP_HDR_DEFAULT_TYPE; - const char *cur_string; - size_t cur_len; - int written = 0; - size_t hdr_len = 0; - u16_t acc; - const char *file_ext; - int j; - - memset(hdr_buf, 0, sizeof(hdr_buf)); - - if (useHttp11) { - response_type = HTTP_HDR_OK_11; - } - - fprintf(data_file, NEWLINE "/* HTTP header */"); - if (strstr(filename, "404") == filename) { - response_type = HTTP_HDR_NOT_FOUND; - if (useHttp11) { - response_type = HTTP_HDR_NOT_FOUND_11; - } - } else if (strstr(filename, "400") == filename) { - response_type = HTTP_HDR_BAD_REQUEST; - if (useHttp11) { - response_type = HTTP_HDR_BAD_REQUEST_11; - } - } else if (strstr(filename, "501") == filename) { - response_type = HTTP_HDR_NOT_IMPL; - if (useHttp11) { - response_type = HTTP_HDR_NOT_IMPL_11; - } - } - cur_string = g_psHTTPHeaderStrings[response_type]; - cur_len = strlen(cur_string); - fprintf(data_file, NEWLINE "/* \"%s\" (%d bytes) */" NEWLINE, cur_string, cur_len); - written += file_put_ascii(data_file, cur_string, cur_len, &i); - i = 0; - if (precalcChksum) { - memcpy(&hdr_buf[hdr_len], cur_string, cur_len); - hdr_len += cur_len; - } - - cur_string = serverID; - cur_len = strlen(cur_string); - fprintf(data_file, NEWLINE "/* \"%s\" (%d bytes) */" NEWLINE, cur_string, cur_len); - written += file_put_ascii(data_file, cur_string, cur_len, &i); - i = 0; - if (precalcChksum) { - memcpy(&hdr_buf[hdr_len], cur_string, cur_len); - hdr_len += cur_len; - } - - file_ext = filename; - while(strstr(file_ext, ".") != NULL) { - file_ext = strstr(file_ext, "."); - file_ext++; - } - if((file_ext == NULL) || (*file_ext == 0)) { - printf("failed to get extension for file \"%s\", using default.\n", filename); - } else { - for(j = 0; j < NUM_HTTP_HEADERS; j++) { - if(!strcmp(file_ext, g_psHTTPHeaders[j].extension)) { - file_type = g_psHTTPHeaders[j].headerIndex; - break; - } - } - if (j >= NUM_HTTP_HEADERS) { - printf("failed to get file type for extension \"%s\", using default.\n", file_ext); - file_type = HTTP_HDR_DEFAULT_TYPE; - } - } - - if (useHttp11) { - char intbuf[MAX_PATH_LEN]; - memset(intbuf, 0, sizeof(intbuf)); - - cur_string = g_psHTTPHeaderStrings[HTTP_HDR_CONTENT_LENGTH]; - cur_len = strlen(cur_string); - fprintf(data_file, NEWLINE "/* \"%s%d\r\n\" (%d+ bytes) */" NEWLINE, cur_string, file_size, cur_len+2); - written += file_put_ascii(data_file, cur_string, cur_len, &i); - if (precalcChksum) { - memcpy(&hdr_buf[hdr_len], cur_string, cur_len); - hdr_len += cur_len; - } - - _itoa(file_size, intbuf, 10); - strcat(intbuf, "\r\n"); - cur_len = strlen(intbuf); - written += file_put_ascii(data_file, intbuf, cur_len, &i); - i = 0; - if (precalcChksum) { - memcpy(&hdr_buf[hdr_len], intbuf, cur_len); - hdr_len += cur_len; - } - - cur_string = g_psHTTPHeaderStrings[HTTP_HDR_CONN_CLOSE]; - cur_len = strlen(cur_string); - fprintf(data_file, NEWLINE "/* \"%s\" (%d bytes) */" NEWLINE, cur_string, cur_len); - written += file_put_ascii(data_file, cur_string, cur_len, &i); - i = 0; - if (precalcChksum) { - memcpy(&hdr_buf[hdr_len], cur_string, cur_len); - hdr_len += cur_len; - } - } - - cur_string = g_psHTTPHeaderStrings[file_type]; - cur_len = strlen(cur_string); - fprintf(data_file, NEWLINE "/* \"%s\" (%d bytes) */" NEWLINE, cur_string, cur_len); - written += file_put_ascii(data_file, cur_string, cur_len, &i); - i = 0; - if (precalcChksum) { - memcpy(&hdr_buf[hdr_len], cur_string, cur_len); - hdr_len += cur_len; - - LWIP_ASSERT("hdr_len <= 0xffff", hdr_len <= 0xffff); - LWIP_ASSERT("strlen(hdr_buf) == hdr_len", strlen(hdr_buf) == hdr_len); - acc = ~inet_chksum(hdr_buf, (u16_t)hdr_len); - *http_hdr_len = (u16_t)hdr_len; - *http_hdr_chksum = acc; - } - - return written; -} - -int file_put_ascii(FILE *file, const char* ascii_string, int len, int *i) -{ - int x; - for(x = 0; x < len; x++) { - unsigned char cur = ascii_string[x]; - fprintf(file, "0x%02.2x,", cur); - if ((++(*i) % HEX_BYTES_PER_LINE) == 0) { - fprintf(file, NEWLINE); - } - } - return len; -} - -int s_put_ascii(char *buf, const char *ascii_string, int len, int *i) -{ - int x; - int idx = 0; - for(x = 0; x < len; x++) { - unsigned char cur = ascii_string[x]; - sprintf(&buf[idx], "0x%02.2x,", cur); - idx += 5; - if ((++(*i) % HEX_BYTES_PER_LINE) == 0) { - sprintf(&buf[idx], NEWLINE); - idx += NEWLINE_LEN; - } - } - return len; -} diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata.exe b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata.exe deleted file mode 100644 index 7d4271d0a..000000000 Binary files a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata.exe and /dev/null differ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/stdafx.cpp b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/stdafx.cpp deleted file mode 100644 index fbc3eaeaa..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/stdafx.cpp +++ /dev/null @@ -1,8 +0,0 @@ -// stdafx.cpp : source file that includes just the standard includes -// MakeFSData_proj.pch will be the pre-compiled header -// stdafx.obj will contain the pre-compiled type information - -#include "stdafx.h" - -// TODO: reference any additional headers you need in STDAFX.H -// and not in this file diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/stdafx.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/stdafx.h deleted file mode 100644 index 47a0d0252..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/stdafx.h +++ /dev/null @@ -1,15 +0,0 @@ -// stdafx.h : include file for standard system include files, -// or project specific include files that are used frequently, but -// are changed infrequently -// - -#pragma once - -#include "targetver.h" - -#include -#include - - - -// TODO: reference additional headers your program requires here diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/targetver.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/targetver.h deleted file mode 100644 index 90e767bfc..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/targetver.h +++ /dev/null @@ -1,8 +0,0 @@ -#pragma once - -// Including SDKDDKVer.h defines the highest available Windows platform. - -// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and -// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. - -#include diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/lwIP_Apps.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/lwIP_Apps.c deleted file mode 100644 index 737348182..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/lwIP_Apps.c +++ /dev/null @@ -1,262 +0,0 @@ -/* - FreeRTOS V7.0.2 - Copyright (C) 2011 Real Time Engineers Ltd. - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS 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 the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -/* Standard includes. */ -#include - -/* FreeRTOS includes. */ -#include "FreeRTOS.h" -#include "task.h" -#include "semphr.h" - -/* lwIP core includes */ -#include "lwip/opt.h" -#include "lwip/tcpip.h" -#include "lwip/inet.h" - -/* applications includes */ -#include "apps/httpserver_raw_from_lwIP_download/httpd.h" - -/* include the port-dependent configuration */ -#include "lwipcfg_msvc.h" - -/* Dimensions the cTxBuffer array - which is itself used to hold replies from -command line commands. cTxBuffer is a shared buffer, so protected by the -xTxBufferMutex mutex. */ -#define lwipappsTX_BUFFER_SIZE 1024 - -/* The maximum time to block waiting to obtain the xTxBufferMutex to become -available. */ -#define lwipappsMAX_TIME_TO_WAIT_FOR_TX_BUFFER_MS ( 100 / portTICK_RATE_MS ) - -/* Definitions of the various SSI callback functions within the pccSSITags -array. If pccSSITags is updated, then these definitions must also be updated. */ -#define ssiTASK_STATS_INDEX 0 -#define ssiRUN_TIME_STATS_INDEX 1 - -/*-----------------------------------------------------------*/ - -/* - * The function that implements the lwIP based sockets command interpreter - * server. - */ -extern void vBasicSocketsCommandInterpreterTask( void *pvParameters ); - -/* - * The SSI handler callback function passed to lwIP. - */ -static unsigned short uslwIPAppsSSIHandler( int iIndex, char *pcBuffer, int iBufferLength ); - -/*-----------------------------------------------------------*/ - -/* The SSI strings that are embedded in the served html files. If this array -is changed, then the index position defined by the #defines such as -ssiTASK_STATS_INDEX above must also be updated. */ -static const char *pccSSITags[] = -{ - "rtos_stats", - "run_stats" -}; - -/* Semaphore used to guard the Tx buffer. */ -static xSemaphoreHandle xTxBufferMutex = NULL; - -/* The Tx buffer itself. This is used to hold the text generated by the -execution of command line commands, and (hopefully) the execution of -server side include callbacks. It is a shared buffer so protected by the -xTxBufferMutex mutex. pcLwipAppsBlockingGetTxBuffer() and -vLwipAppsReleaseTxBuffer() are provided to obtain and release the -xTxBufferMutex respectively. pcLwipAppsBlockingGetTxBuffer() must be used with -caution as it has the potential to block. */ -static signed char cTxBuffer[ lwipappsTX_BUFFER_SIZE ]; - -/*-----------------------------------------------------------*/ - -void vStatusCallback( struct netif *pxNetIf ) -{ -char pcMessage[20]; - - if( netif_is_up( pxNetIf ) != 0 ) - { - strcpy( pcMessage, "IP=" ); - strcat( pcMessage, inet_ntoa( *( struct in_addr* ) &( pxNetIf->ip_addr ) ) ); - xil_printf( pcMessage ); - } - else - { - xil_printf( "Network is down" ); - } -} - -/* Called from the TCP/IP thread. */ -void lwIPAppsInit( void *pvArgument ) -{ -ip_addr_t xIPAddr, xNetMask, xGateway; -extern err_t xemacpsif_init( struct netif *netif ); -extern void xemacif_input_thread( void *netif ); -static struct netif xNetIf; - - ( void ) pvArgument; - - /* Set up the network interface. */ - ip_addr_set_zero( &xGateway ); - ip_addr_set_zero( &xIPAddr ); - ip_addr_set_zero( &xNetMask ); - - LWIP_PORT_INIT_GW(&xGateway); - LWIP_PORT_INIT_IPADDR( &xIPAddr ); - LWIP_PORT_INIT_NETMASK(&xNetMask); - - /* Set mac address */ - xNetIf.hwaddr_len = 6; - xNetIf.hwaddr[ 0 ] = configMAC_ADDR0; - xNetIf.hwaddr[ 1 ] = configMAC_ADDR1; - xNetIf.hwaddr[ 2 ] = configMAC_ADDR2; - xNetIf.hwaddr[ 3 ] = configMAC_ADDR3; - xNetIf.hwaddr[ 4 ] = configMAC_ADDR4; - xNetIf.hwaddr[ 5 ] = configMAC_ADDR5; - - netif_set_default( netif_add( &xNetIf, &xIPAddr, &xNetMask, &xGateway, ( void * ) XPAR_XEMACPS_0_BASEADDR, xemacpsif_init, tcpip_input ) ); - netif_set_status_callback( &xNetIf, vStatusCallback ); - #if LWIP_DHCP - { - dhcp_start( &xNetIf ); - } - #else - { - netif_set_up( &xNetIf ); - } - #endif - - /* Install the server side include handler. */ - http_set_ssi_handler( uslwIPAppsSSIHandler, pccSSITags, sizeof( pccSSITags ) / sizeof( char * ) ); - - /* Create the mutex used to ensure mutual exclusive access to the Tx - buffer. */ - xTxBufferMutex = xSemaphoreCreateMutex(); - configASSERT( xTxBufferMutex ); - - /* Create the httpd server from the standard lwIP code. This demonstrates - use of the lwIP raw API. */ - httpd_init(); - - sys_thread_new( "lwIP_In", xemacif_input_thread, &xNetIf, configMINIMAL_STACK_SIZE, configMAC_INPUT_TASK_PRIORITY ); - - /* Create the FreeRTOS defined basic command server. This demonstrates use - of the lwIP sockets API. */ - xTaskCreate( vBasicSocketsCommandInterpreterTask, "CmdInt", configMINIMAL_STACK_SIZE * 5, NULL, configCLI_TASK_PRIORITY, NULL ); -} -/*-----------------------------------------------------------*/ - -static unsigned short uslwIPAppsSSIHandler( int iIndex, char *pcBuffer, int iBufferLength ) -{ -static unsigned int uiUpdateCount = 0; -static char cUpdateString[ 200 ]; -extern char *pcMainGetTaskStatusMessage( void ); - - /* Unused parameter. */ - ( void ) iBufferLength; - - /* The SSI handler function that generates text depending on the index of - the SSI tag encountered. */ - - switch( iIndex ) - { - case ssiTASK_STATS_INDEX : - vTaskList( pcBuffer ); - break; - - case ssiRUN_TIME_STATS_INDEX : - vTaskGetRunTimeStats( pcBuffer ); - break; - } - - /* Include a count of the number of times an SSI function has been executed - in the returned string. */ - uiUpdateCount++; - sprintf( cUpdateString, "\r\n\r\n%u\r\nStatus - %s", uiUpdateCount, pcMainGetTaskStatusMessage() ); - strcat( pcBuffer, cUpdateString ); - - return strlen( pcBuffer ); -} -/*-----------------------------------------------------------*/ - -signed char *pcLwipAppsBlockingGetTxBuffer( void ) -{ -signed char *pcReturn; - - /* Attempt to obtain the semaphore that guards the Tx buffer. */ - if( xSemaphoreTakeRecursive( xTxBufferMutex, lwipappsMAX_TIME_TO_WAIT_FOR_TX_BUFFER_MS ) == pdFAIL ) - { - /* The semaphore could not be obtained before timing out. */ - pcReturn = NULL; - } - else - { - /* The semaphore was obtained successfully. Return a pointer to the - Tx buffer. */ - pcReturn = cTxBuffer; - } - - return pcReturn; -} -/*-----------------------------------------------------------*/ - -void vLwipAppsReleaseTxBuffer( void ) -{ - /* Finished with the Tx buffer. Return the mutex. */ - xSemaphoreGiveRecursive( xTxBufferMutex ); -} - - - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/lwIP_Apps.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/lwIP_Apps.h deleted file mode 100644 index cf6fd02a2..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/lwIP_Apps.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS 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 the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ -#ifndef LWIP_APPS_H -#define LWIP_APPS_H - -/* Functions used to obtain and release exclusive access to the Tx buffer. The -Get function will block if the Tx buffer is not available - use with care! */ -signed char *pcLwipAppsBlockingGetTxBuffer( void ); -void vLwipAppsReleaseTxBuffer( void ); - -#endif /* LWIP_APPS_H */ - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/lwipcfg_msvc.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/lwipcfg_msvc.h deleted file mode 100644 index fa35c3c99..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/lwipcfg_msvc.h +++ /dev/null @@ -1,46 +0,0 @@ -/** - * Additional settings for the win32 port. - * Copy this to lwipcfg_msvc.h and make the config changes you need. - */ - -/* configuration for this port */ -#define PPP_USERNAME "Admin" -#define PPP_PASSWORD "pass" - - -/** Define this to the GUID of the windows network adapter to use - * or NOT define this if you want PACKET_LIB_ADAPTER_NR to be used */ -/*#define PACKET_LIB_ADAPTER_GUID "00000000-0000-0000-0000-000000000000"*/ -/*#define PACKET_LIB_GET_ADAPTER_NETADDRESS(addr) IP4_ADDR((addr), 192,168,1,0)*/ -/*#define PACKET_LIB_QUIET*/ - -#define LWIP_PORT_INIT_IPADDR(addr) IP4_ADDR((addr), configIP_ADDR0,configIP_ADDR1,configIP_ADDR2,configIP_ADDR3) -#define LWIP_PORT_INIT_GW(addr) IP4_ADDR((addr), 192,168,0,3) -#define LWIP_PORT_INIT_NETMASK(addr) IP4_ADDR((addr), 255,255,255,0) - -/* remember to change this MAC address to suit your needs! - the last octet will be increased by netif->num for each netif */ -#define LWIP_MAC_ADDR_BASE {0x00,0x01,0x02,0x03,0x04,0x05} - -/* configuration for applications */ - -#define LWIP_CHARGEN_APP 0 -#define LWIP_DNS_APP 0 -#define LWIP_HTTPD_APP 1 -/* Set this to 1 to use the netconn http server, - * otherwise the raw api server will be used. */ -/*#define LWIP_HTTPD_APP_NETCONN */ -#define LWIP_NETBIOS_APP 0 -#define LWIP_NETIO_APP 0 -#define LWIP_PING_APP 0 -#define LWIP_RTP_APP 0 -#define LWIP_SHELL_APP 0 -#define LWIP_SNTP_APP 0 -#define LWIP_SOCKET_EXAMPLES_APP 0 -#define LWIP_TCPECHO_APP 0 -/* Set this to 1 to use the netconn tcpecho server, - * otherwise the raw api server will be used. */ -/*#define LWIP_TCPECHO_APP_NETCONN */ -#define LWIP_UDPECHO_APP 0 - - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/arch/bpstruct.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/arch/bpstruct.h deleted file mode 100644 index 1d81e3f7b..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/arch/bpstruct.h +++ /dev/null @@ -1 +0,0 @@ -#pragma pack(push,1) diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/arch/cc.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/arch/cc.h deleted file mode 100644 index 8c64b5d43..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/arch/cc.h +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright (c) 2001-2003 Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. - * - * This file is part of the lwIP TCP/IP stack. - * - * Author: Adam Dunkels - * - */ -#ifndef __ARCH_CC_H__ -#define __ARCH_CC_H__ - -#if 1 -/* Include some files for defining library routines */ -#include /* printf, fflush, FILE */ -#include /* abort */ -#else -/* Declare fuction prototypes for assert/diag/error - leads to some warnings, - * but good to test if no includes are missing. */ -int printf(const char *format, ...); -void abort(void); -struct _iobuf; -typedef struct _iobuf FILE; -int fflush(FILE *stream); -#endif - - - -/** @todo fix some warnings: don't use #pragma if compiling with cygwin gcc */ -#ifndef __GNUC__ -#include -#pragma warning (disable: 4244) /* disable conversion warning (implicit integer promotion!) */ -#pragma warning (disable: 4127) /* conditional expression is constant */ -#pragma warning (disable: 4996) /* 'strncpy' was declared deprecated */ -#pragma warning (disable: 4103) /* structure packing changed by including file */ -#endif - -#define LWIP_PROVIDE_ERRNO - -/* Define platform endianness (might already be defined) */ -#ifndef BYTE_ORDER -#define BYTE_ORDER LITTLE_ENDIAN -#endif /* BYTE_ORDER */ - -/* Define generic types used in lwIP */ -typedef unsigned char u8_t; -typedef signed char s8_t; -typedef unsigned short u16_t; -typedef signed short s16_t; -typedef unsigned long u32_t; -typedef signed long s32_t; - -typedef size_t mem_ptr_t; -typedef u32_t sys_prot_t; - -/* Define (sn)printf formatters for these lwIP types */ -#define X8_F "02x" -#define U16_F "hu" -#define S16_F "hd" -#define X16_F "hx" -#define U32_F "lu" -#define S32_F "ld" -#define X32_F "lx" -#define SZT_F U32_F - -/* Compiler hints for packing structures */ -#define PACK_STRUCT_STRUCT -#define PACK_STRUCT_USE_INCLUDES - -/* Plaform specific diagnostic output */ -#define LWIP_PLATFORM_DIAG(x) do { printf x; } while(0) - -#define LWIP_PLATFORM_ASSERT(x) do { printf("Assertion \"%s\" failed at line %d in %s\n", \ - x, __LINE__, __FILE__); fflush(NULL); abort(); } while(0) - -#define LWIP_ERROR(message, expression, handler) do { if (!(expression)) { \ - printf("Assertion \"%s\" failed at line %d in %s\n", message, __LINE__, __FILE__); \ - fflush(NULL);handler;} } while(0) - -/* C runtime functions redefined */ -#define snprintf _snprintf - -u32_t dns_lookup_external_hosts_file(const char *name); - -#define LWIP_RAND() ((u32_t)rand()) - -#endif /* __ARCH_CC_H__ */ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/arch/epstruct.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/arch/epstruct.h deleted file mode 100644 index 65898b54b..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/arch/epstruct.h +++ /dev/null @@ -1 +0,0 @@ -#pragma pack(pop) diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/arch/perf.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/arch/perf.h deleted file mode 100644 index 089facac1..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/arch/perf.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2001, Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. Neither the name of the Institute 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 INSTITUTE 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 INSTITUTE 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. - * - * This file is part of the lwIP TCP/IP stack. - * - * Author: Adam Dunkels - * - */ -#ifndef __PERF_H__ -#define __PERF_H__ - -#define PERF_START /* null definition */ -#define PERF_STOP(x) /* null definition */ - -#endif /* __PERF_H__ */ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/arch/sys_arch.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/arch/sys_arch.h deleted file mode 100644 index f9eae84db..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/arch/sys_arch.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2001-2003 Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. - * - * This file is part of the lwIP TCP/IP stack. - * - * Author: Adam Dunkels - * - */ -#ifndef __ARCH_SYS_ARCH_H__ -#define __ARCH_SYS_ARCH_H__ - -#include "FreeRTOS.h" -#include "task.h" -#include "queue.h" -#include "semphr.h" - -#define SYS_MBOX_NULL ( ( QueueHandle_t ) NULL ) -#define SYS_SEM_NULL ( ( SemaphoreHandle_t ) NULL ) -#define SYS_DEFAULT_THREAD_STACK_DEPTH configMINIMAL_STACK_SIZE - -typedef SemaphoreHandle_t sys_sem_t; -typedef SemaphoreHandle_t sys_mutex_t; -typedef QueueHandle_t sys_mbox_t; -typedef TaskHandle_t sys_thread_t; - -typedef unsigned long sys_prot_t; - -#define sys_mbox_valid( x ) ( ( ( *x ) == NULL) ? pdFALSE : pdTRUE ) -#define sys_mbox_set_invalid( x ) ( ( *x ) = NULL ) -#define sys_sem_valid( x ) ( ( ( *x ) == NULL) ? pdFALSE : pdTRUE ) -#define sys_sem_set_invalid( x ) ( ( *x ) = NULL ) - - -#endif /* __ARCH_SYS_ARCH_H__ */ - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/netif/xadapter.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/netif/xadapter.h deleted file mode 100644 index 3ce71b3b4..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/netif/xadapter.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2007-2013 Xilinx, Inc. All rights reserved. - * - * Xilinx, Inc. - * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A - * COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS - * ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR - * STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION - * IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE - * FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION. - * XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO - * THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO - * ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE - * FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#ifndef __XADAPTER_H_ -#define __XADAPTER_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include "lwipopts.h" - -#if !NO_SYS -#ifdef OS_IS_XILKERNEL -#include "xmk.h" -#endif -#include "lwip/sys.h" -#endif - -#include "lwip/netif.h" -#include "lwip/ip.h" - -#include "netif/xtopology.h" - -struct xemac_s { - enum xemac_types type; - int topology_index; - void *state; -#if !NO_SYS - sys_sem_t sem_rx_data_available; -#endif -}; - -void lwip_raw_init(); -int xemacif_input(struct netif *netif); -void xemacif_input_thread(struct netif *netif); -struct netif * xemac_add(struct netif *netif, - struct ip_addr *ipaddr, struct ip_addr *netmask, struct ip_addr *gw, - unsigned char *mac_ethernet_address, - unsigned mac_baseaddr); -#ifdef __arm__ -void xemacpsif_resetrx_on_no_rxdata(struct netif *netif); -#endif - -/* global lwip debug variable used for debugging */ -extern int lwip_runtime_debug; - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/netif/xaxiemacif.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/netif/xaxiemacif.h deleted file mode 100644 index ae23f05df..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/netif/xaxiemacif.h +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright (c) 2010-2013 Xilinx, Inc. All rights reserved. - * - * Xilinx, Inc. - * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A - * COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS - * ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR - * STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION - * IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE - * FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION. - * XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO - * THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO - * ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE - * FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#ifndef __NETIF_XAXIEMACIF_H__ -#define __NETIF_XAXIEMACIF_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -#include "xlwipconfig.h" -#include "lwip/netif.h" -#include "netif/etharp.h" -#include "netif/xadapter.h" - -#include "xparameters.h" -#include "xstatus.h" - -#include "xaxiethernet.h" -#ifdef XLWIP_CONFIG_INCLUDE_AXI_ETHERNET_FIFO -#include "xllfifo.h" -#else -#include "xaxidma.h" -#include "xaxidma_hw.h" -#endif - -#include "netif/xpqueue.h" -#include "xlwipconfig.h" - -void xaxiemacif_setmac(u32_t index, u8_t *addr); -u8_t* xaxiemacif_getmac(u32_t index); -err_t xaxiemacif_init(struct netif *netif); -int xaxiemacif_input(struct netif *netif); - -unsigned get_IEEE_phy_speed(XAxiEthernet *xaxiemacp); -unsigned configure_IEEE_phy_speed(XAxiEthernet *xaxiemacp, unsigned speed); -unsigned Phy_Setup (XAxiEthernet *xaxiemacp); - -/* xaxiemacif_hw.c */ -void xaxiemac_error_handler(XAxiEthernet * Temac); - -/* structure within each netif, encapsulating all information required for - * using a particular temac instance - */ -typedef struct { -#ifdef XLWIP_CONFIG_INCLUDE_AXI_ETHERNET_FIFO - XLlFifo axififo; -#else - XAxiDma axidma; -#endif - XAxiEthernet axi_ethernet; - - /* queue to store overflow packets */ - pq_queue_t *recv_q; - pq_queue_t *send_q; - - /* pointers to memory holding buffer descriptors (used only with SDMA) */ - void *rx_bdspace; - void *tx_bdspace; -} xaxiemacif_s; - -extern xaxiemacif_s xaxiemacif; - -int is_tx_space_available(xaxiemacif_s *emac); - -/* xaxiemacif_dma.c */ -#ifndef XLWIP_CONFIG_INCLUDE_AXI_ETHERNET_FIFO -XStatus init_axi_dma(struct xemac_s *xemac); -int process_sent_bds(XAxiDma_BdRing *txring); - -void axidma_send_handler(void *arg); -XStatus axidma_sgsend(xaxiemacif_s *xaxiemacif, struct pbuf *p); -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* __NETIF_XAXIEMACIF_H__ */ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/netif/xemacliteif.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/netif/xemacliteif.h deleted file mode 100644 index 8c2918906..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/netif/xemacliteif.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2007-2013 Xilinx, Inc. All rights reserved. - * - * Xilinx, Inc. - * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A - * COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS - * ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR - * STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION - * IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE - * FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION. - * XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO - * THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO - * ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE - * FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#ifndef __NETIF_XEMACLITEIF_H__ -#define __NETIF_XEMACLITEIF_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -#include "lwip/netif.h" -#include "netif/etharp.h" -#include "netif/xpqueue.h" -#include "xemaclite.h" -#include "xemaclite_i.h" -#include "xstatus.h" - -/* structure within each netif, encapsulating all information required for - * using a particular emaclite instance - */ -typedef struct { - XEmacLite *instance; - - /* queue to store overflow packets */ - pq_queue_t *recv_q; - pq_queue_t *send_q; -} xemacliteif_s; - -void xemacliteif_setmac(u32_t index, u8_t *addr); -u8_t* xemacliteif_getmac(u32_t index); -err_t xemacliteif_init(struct netif *netif); -int xemacliteif_input(struct netif *netif); - -#ifdef __cplusplus -} -#endif - -#endif /* __NETIF_XEMACLITEIF_H__ */ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/netif/xemacpsif.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/netif/xemacpsif.h deleted file mode 100644 index f07f018b4..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/netif/xemacpsif.h +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright (c) 2010-2013 Xilinx, Inc. All rights reserved. - * - * Xilinx, Inc. - * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A - * COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS - * ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR - * STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION - * IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE - * FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION. - * XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO - * THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO - * ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE - * FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#ifndef __NETIF_XEMACPSIF_H__ -#define __NETIF_XEMACPSIF_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -#include "xlwipconfig.h" -#include "lwip/netif.h" -#include "netif/etharp.h" -#include "netif/xadapter.h" - -#include "xstatus.h" -#include "sleep.h" -#include "xparameters.h" -#include "xparameters_ps.h" /* defines XPAR values */ -#include "xil_types.h" -#include "xil_assert.h" -#include "xil_io.h" -#include "xil_exception.h" -#include "xpseudo_asm.h" -#include "xil_cache.h" -#include "xil_printf.h" -#include "xuartps.h" -#include "xscugic.h" -#include "xemacps.h" /* defines XEmacPs API */ - -#include "netif/xpqueue.h" -#include "xlwipconfig.h" - -void xemacpsif_setmac(u32_t index, u8_t *addr); -u8_t* xemacpsif_getmac(u32_t index); -err_t xemacpsif_init(struct netif *netif); -int xemacpsif_input(struct netif *netif); -#ifdef NOTNOW_BHILL -unsigned get_IEEE_phy_speed(XLlTemac *xlltemacp); -#endif - -/* xaxiemacif_hw.c */ -void xemacps_error_handler(XEmacPs * Temac); - -/* structure within each netif, encapsulating all information required for - * using a particular temac instance - */ -typedef struct { - XEmacPs emacps; - - /* queue to store overflow packets */ - pq_queue_t *recv_q; - pq_queue_t *send_q; - - /* pointers to memory holding buffer descriptors (used only with SDMA) */ - void *rx_bdspace; - void *tx_bdspace; - - unsigned int last_rx_frms_cntr; - -} xemacpsif_s; - -extern xemacpsif_s xemacpsif; - -int is_tx_space_available(xemacpsif_s *emac); - -/* xaxiemacif_dma.c */ - -XStatus init_axi_dma(struct xemac_s *xemac); -void process_sent_bds(XEmacPs_BdRing *txring); -unsigned Phy_Setup (XEmacPs *xemacpsp); -void emacps_send_handler(void *arg); -XStatus emacps_sgsend(xemacpsif_s *xemacpsif, struct pbuf *p); -void emacps_recv_handler(void *arg); -void emacps_error_handler(void *arg,u8 Direction, u32 ErrorWord); -void setup_rx_bds(XEmacPs_BdRing *rxring); -void HandleTxErrors(struct xemac_s *xemac); -void HandleEmacPsError(struct xemac_s *xemac); -XEmacPs_Config *xemacps_lookup_config(unsigned mac_base); -void init_emacps(xemacpsif_s *xemacps, struct netif *netif); -void setup_isr (struct xemac_s *xemac); -XStatus init_dma(struct xemac_s *xemac); -void start_emacps (xemacpsif_s *xemacps); -void FreeTxRxPBufs(void); -void FreeOnlyTxPBufs(void); -void init_emacps_on_error (xemacpsif_s *xemacps, struct netif *netif); -void clean_dma_txdescs(struct xemac_s *xemac); -void resetrx_on_no_rxdata(xemacpsif_s *xemacpsif); - -#ifdef __cplusplus -} -#endif - -#endif /* __NETIF_XAXIEMACIF_H__ */ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/netif/xlltemacif.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/netif/xlltemacif.h deleted file mode 100644 index 1fc82da66..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/netif/xlltemacif.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2007-2013 Xilinx, Inc. All rights reserved. - * - * Xilinx, Inc. - * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A - * COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS - * ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR - * STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION - * IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE - * FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION. - * XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO - * THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO - * ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE - * FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#ifndef __NETIF_XLLTEMACIF_H__ -#define __NETIF_XLLTEMACIF_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -#include "lwip/netif.h" -#include "netif/etharp.h" -#include "netif/xadapter.h" - -#include "xparameters.h" -#include "xstatus.h" -#include "xlltemac.h" -#include "xlldma.h" -#include "xllfifo.h" -#include "xlldma_bdring.h" - -#include "netif/xpqueue.h" -#include "xlwipconfig.h" - -void xlltemacif_setmac(u32_t index, u8_t *addr); -u8_t* xlltemacif_getmac(u32_t index); -err_t xlltemacif_init(struct netif *netif); -int xlltemacif_input(struct netif *netif); -unsigned get_IEEE_phy_speed(XLlTemac *xlltemacp); -unsigned Phy_Setup (XLlTemac *xlltemacp); -unsigned configure_IEEE_phy_speed(XLlTemac *xlltemacp, unsigned speed); - -/* xlltemacif_hw.c */ -void xlltemac_error_handler(XLlTemac * Temac); - -/* structure within each netif, encapsulating all information required for - * using a particular temac instance - */ -typedef struct { - XLlDma lldma; - XLlFifo llfifo; - XLlTemac lltemac; - - /* queue to store overflow packets */ - pq_queue_t *recv_q; - pq_queue_t *send_q; - - /* pointers to memory holding buffer descriptors (used only with SDMA) */ - void *rx_bdspace; - void *tx_bdspace; -} xlltemacif_s; - -extern xlltemacif_s xlltemacif; - -/* xlltemacif_sdma.c */ -XStatus init_sdma(struct xemac_s *xemac); -int process_sent_bds(XLlDma_BdRing *txring); -void lldma_send_handler(void *arg); -XStatus lldma_sgsend(xlltemacif_s *xlltemacif, struct pbuf *p); - -#ifdef __cplusplus -} -#endif - -#endif /* __NETIF_XLLTEMACIF_H__ */ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/netif/xpqueue.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/netif/xpqueue.h deleted file mode 100644 index fe89d278e..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/netif/xpqueue.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2007-2013 Xilinx, Inc. All rights reserved. - * - * Xilinx, Inc. - * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A - * COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS - * ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR - * STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION - * IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE - * FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION. - * XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO - * THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO - * ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE - * FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#ifndef __LWIP_PBUF_QUEUE_H_ -#define __LWIP_PBUF_QUEUE_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#define PQ_QUEUE_SIZE 4096 - -typedef struct { - void *data[PQ_QUEUE_SIZE]; - int head, tail, len; -} pq_queue_t; - -pq_queue_t* pq_create_queue(); -int pq_enqueue(pq_queue_t *q, void *p); -void* pq_dequeue(pq_queue_t *q); -int pq_qlength(pq_queue_t *q); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/netif/xtopology.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/netif/xtopology.h deleted file mode 100644 index 7620b96b9..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/netif/xtopology.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2007-2013 Xilinx, Inc. All rights reserved. - * - * Xilinx, Inc. - * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A - * COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS - * ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR - * STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION - * IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE - * FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION. - * XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO - * THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO - * ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE - * FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#ifndef __XTOPOLOGY_H_ -#define __XTOPOLOGY_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -enum xemac_types { xemac_type_unknown = -1, xemac_type_xps_emaclite, xemac_type_xps_ll_temac, xemac_type_axi_ethernet, xemac_type_emacps }; - -struct xtopology_t { - unsigned emac_baseaddr; - enum xemac_types emac_type; - unsigned intc_baseaddr; - unsigned intc_emac_intr; /* valid only for xemac_type_xps_emaclite */ - unsigned scugic_baseaddr; /* valid only for Zynq */ - unsigned scugic_emac_intr; /* valid only for GEM */ -}; - -extern int xtopology_n_emacs; -extern struct xtopology_t xtopology[]; - -int xtopology_find_index(unsigned base); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/xlwipconfig.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/xlwipconfig.h deleted file mode 100644 index 635a9e851..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/include/xlwipconfig.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef __XLWIPCONFIG_H_ -#define __XLWIPCONFIG_H_ - - -/* This is a generated file - do not edit */ - -#define XLWIP_CONFIG_INCLUDE_GEM 1 -#define XLWIP_CONFIG_EMAC_NUMBER 0 -#define XLWIP_CONFIG_N_TX_DESC 64 -#define XLWIP_CONFIG_N_RX_DESC 64 - -#endif diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/netif/xadapter.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/netif/xadapter.c deleted file mode 100644 index 065746b18..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/netif/xadapter.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - * Copyright (c) 2007-2013 Xilinx, Inc. All rights reserved. - * - * Xilinx, Inc. - * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A - * COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS - * ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR - * STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION - * IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE - * FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION. - * XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO - * THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO - * ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE - * FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#include "lwipopts.h" -#include "xlwipconfig.h" - -#if !NO_SYS -#ifdef OS_IS_XILKERNEL -#include "xmk.h" -#include "sys/process.h" -#endif -#endif - -#include "lwip/mem.h" -#include "lwip/stats.h" -#include "lwip/sys.h" -#include "lwip/ip.h" -#include "lwip/tcp.h" -#include "lwip/udp.h" -#include "lwip/tcp_impl.h" - -#include "netif/etharp.h" -#include "netif/xadapter.h" - -#ifdef XLWIP_CONFIG_INCLUDE_EMACLITE -#include "netif/xemacliteif.h" -#endif - -#ifdef XLWIP_CONFIG_INCLUDE_TEMAC -#include "netif/xlltemacif.h" -#endif - -#ifdef XLWIP_CONFIG_INCLUDE_AXI_ETHERNET -#include "netif/xaxiemacif.h" -#endif - -#ifdef XLWIP_CONFIG_INCLUDE_GEM -#include "netif/xemacpsif.h" -#endif - -#if !NO_SYS -#include "lwip/tcpip.h" -#endif - - -/* global lwip debug variable used for debugging */ -int lwip_runtime_debug = 0; - -void -lwip_raw_init() -{ - ip_init(); /* Doesn't do much, it should be called to handle future changes. */ -#if LWIP_UDP - udp_init(); /* Clears the UDP PCB list. */ -#endif -#if LWIP_TCP - tcp_init(); /* Clears the TCP PCB list and clears some internal TCP timers. */ - /* Note: you must call tcp_fasttmr() and tcp_slowtmr() at the */ - /* predefined regular intervals after this initialization. */ -#endif -} - -static enum xemac_types -find_mac_type(unsigned base) -{ - int i; - - for (i = 0; i < xtopology_n_emacs; i++) { - if (xtopology[i].emac_baseaddr == base) - return xtopology[i].emac_type; - } - - return xemac_type_unknown; -} - -int -xtopology_find_index(unsigned base) -{ - int i; - - for (i = 0; i < xtopology_n_emacs; i++) { - if (xtopology[i].emac_baseaddr == base) - return i; - } - - return -1; -} - -/* - * xemac_add: this is a wrapper around lwIP's netif_add function. - * The objective is to provide portability between the different Xilinx MAC's - * This function can be used to add both xps_ethernetlite and xps_ll_temac - * based interfaces - */ -struct netif * -xemac_add(struct netif *netif, - struct ip_addr *ipaddr, struct ip_addr *netmask, struct ip_addr *gw, - unsigned char *mac_ethernet_address, - unsigned mac_baseaddr) -{ - int i; - - /* set mac address */ - netif->hwaddr_len = 6; - for (i = 0; i < 6; i++) - netif->hwaddr[i] = mac_ethernet_address[i]; - - /* initialize based on MAC type */ - switch (find_mac_type(mac_baseaddr)) { - case xemac_type_xps_emaclite: -#ifdef XLWIP_CONFIG_INCLUDE_EMACLITE - return netif_add(netif, ipaddr, netmask, gw, - (void*)mac_baseaddr, - xemacliteif_init, -#if NO_SYS - ethernet_input -#else - tcpip_input -#endif - ); -#else - return NULL; -#endif - case xemac_type_xps_ll_temac: -#ifdef XLWIP_CONFIG_INCLUDE_TEMAC - return netif_add(netif, ipaddr, netmask, gw, - (void*)mac_baseaddr, - xlltemacif_init, -#if NO_SYS - ethernet_input -#else - tcpip_input -#endif - ); -#else - return NULL; -#endif - case xemac_type_axi_ethernet: -#ifdef XLWIP_CONFIG_INCLUDE_AXI_ETHERNET - return netif_add(netif, ipaddr, netmask, gw, - (void*)mac_baseaddr, - xaxiemacif_init, -#if NO_SYS - ethernet_input -#else - tcpip_input -#endif - ); -#else - return NULL; -#endif -#ifdef __arm__ - case xemac_type_emacps: -#ifdef XLWIP_CONFIG_INCLUDE_GEM - return netif_add(netif, ipaddr, netmask, gw, - (void*)mac_baseaddr, - xemacpsif_init, -#if NO_SYS - ethernet_input -#else - tcpip_input -#endif - - ); -#endif -#endif - default: - printf("unable to determine type of EMAC with baseaddress 0x%08x\r\n", - mac_baseaddr); - return NULL; - } -} - -#if !NO_SYS -/* - * The input thread calls lwIP to process any received packets. - * This thread waits until a packet is received (sem_rx_data_available), - * and then calls xemacif_input which processes 1 packet at a time. - */ -void -xemacif_input_thread(struct netif *netif) -{ - struct xemac_s *emac = (struct xemac_s *)netif->state; - while (1) { - /* sleep until there are packets to process - * This semaphore is set by the packet receive interrupt - * routine. - */ - sys_arch_sem_wait( &emac->sem_rx_data_available, 250 / portTICK_PERIOD_MS ); - - /* move all received packets to lwIP */ - xemacif_input(netif); - } -} -#endif - -int -xemacif_input(struct netif *netif) -{ - struct xemac_s *emac = (struct xemac_s *)netif->state; - SYS_ARCH_DECL_PROTECT(lev); - - int n_packets = 0; - - switch (emac->type) { - case xemac_type_xps_emaclite: -#ifdef XLWIP_CONFIG_INCLUDE_EMACLITE - SYS_ARCH_PROTECT(lev); - n_packets = xemacliteif_input(netif); - SYS_ARCH_UNPROTECT(lev); - break; -#else - print("incorrect configuration: xps_ethernetlite drivers not present?"); - while(1); - return 0; -#endif - case xemac_type_xps_ll_temac: -#ifdef XLWIP_CONFIG_INCLUDE_TEMAC - SYS_ARCH_PROTECT(lev); - n_packets = xlltemacif_input(netif); - SYS_ARCH_UNPROTECT(lev); - break; -#else - print("incorrect configuration: xps_ll_temac drivers not present?"); - while(1); - return 0; -#endif - case xemac_type_axi_ethernet: -#ifdef XLWIP_CONFIG_INCLUDE_AXI_ETHERNET - SYS_ARCH_PROTECT(lev); - n_packets = xaxiemacif_input(netif); - SYS_ARCH_UNPROTECT(lev); - break; -#else - print("incorrect configuration: axi_ethernet drivers not present?"); - while(1); - return 0; -#endif -#ifdef __arm__ - case xemac_type_emacps: -#ifdef XLWIP_CONFIG_INCLUDE_GEM - SYS_ARCH_PROTECT(lev); - n_packets = xemacpsif_input(netif); - SYS_ARCH_UNPROTECT(lev); - break; -#else - xil_printf("incorrect configuration: ps7_ethernet drivers not present?\r\n"); - while(1); - return 0; -#endif -#endif - default: - print("incorrect configuration: unknown temac type"); - while(1); - return 0; - } - - return n_packets; -} diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/netif/xemacpsif.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/netif/xemacpsif.c deleted file mode 100644 index 2793f65ac..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/netif/xemacpsif.c +++ /dev/null @@ -1,458 +0,0 @@ -/* - * Copyright (c) 2001-2004 Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. - * - * This file is part of the lwIP TCP/IP stack. - * - * Author: Adam Dunkels - * - */ - -/* - * Copyright (c) 2010-2013 Xilinx, Inc. All rights reserved. - * - * Xilinx, Inc. - * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A - * COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS - * ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR - * STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION - * IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE - * FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION. - * XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO - * THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO - * ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE - * FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#include -#include - -#include -#include "lwipopts.h" -#include "xlwipconfig.h" -#include "lwip/opt.h" -#include "lwip/def.h" -#include "lwip/mem.h" -#include "lwip/pbuf.h" -#include "lwip/sys.h" -#include "lwip/stats.h" -#include "lwip/igmp.h" - -#include "netif/etharp.h" -#include "netif/xemacpsif.h" -#include "netif/xadapter.h" -#include "netif/xpqueue.h" -#include "xparameters.h" -#include "xuartps.h" -#include "xscugic.h" -#include "xemacps.h" - - -/* Define those to better describe your network interface. */ -#define IFNAME0 't' -#define IFNAME1 'e' - -#if LWIP_IGMP -static err_t xemacpsif_mac_filter_update (struct netif *netif, - struct ip_addr *group, u8_t action); - -static u8_t xemacps_mcast_entry_mask = 0; -#endif - -XEmacPs_Config *mac_config; -struct netif *NetIf; -void FreeTxPBufs(void); -/* - * this function is always called with interrupts off - * this function also assumes that there are available BD's - */ -static err_t _unbuffered_low_level_output(xemacpsif_s *xemacpsif, - struct pbuf *p) -{ - XStatus status = 0; - -#if ETH_PAD_SIZE - pbuf_header(p, -ETH_PAD_SIZE); /* drop the padding word */ -#endif - status = emacps_sgsend(xemacpsif, p); - if (status != XST_SUCCESS) { -#if LINK_STATS - lwip_stats.link.drop++; -#endif - } - -#if ETH_PAD_SIZE - pbuf_header(p, ETH_PAD_SIZE); /* reclaim the padding word */ -#endif - -#if LINK_STATS - lwip_stats.link.xmit++; -#endif /* LINK_STATS */ - - return ERR_OK; - -} - -/* - * low_level_output(): - * - * Should do the actual transmission of the packet. The packet is - * contained in the pbuf that is passed to the function. This pbuf - * might be chained. - * - */ - -static err_t low_level_output(struct netif *netif, struct pbuf *p) -{ - SYS_ARCH_DECL_PROTECT(lev); - err_t err; - - struct xemac_s *xemac = (struct xemac_s *)(netif->state); - xemacpsif_s *xemacpsif = (xemacpsif_s *)(xemac->state); - - SYS_ARCH_PROTECT(lev); - - - /* check if space is available to send */ - if (is_tx_space_available(xemacpsif)) { - _unbuffered_low_level_output(xemacpsif, p); - err = ERR_OK; - } else { -#if LINK_STATS - lwip_stats.link.drop++; -#endif - print("pack dropped, no space\r\n"); - err = ERR_MEM; - } - - - SYS_ARCH_UNPROTECT(lev); - return err; -} - -/* - * low_level_input(): - * - * Should allocate a pbuf and transfer the bytes of the incoming - * packet from the interface into the pbuf. - * - */ -static struct pbuf * low_level_input(struct netif *netif) -{ - struct xemac_s *xemac = (struct xemac_s *)(netif->state); - xemacpsif_s *xemacpsif = (xemacpsif_s *)(xemac->state); - struct pbuf *p; - - /* see if there is data to process */ - if (pq_qlength(xemacpsif->recv_q) == 0) - return NULL; - - /* return one packet from receive q */ - p = (struct pbuf *)pq_dequeue(xemacpsif->recv_q); - return p; -} - -/* - * xemacpsif_output(): - * - * This function is called by the TCP/IP stack when an IP packet - * should be sent. It calls the function called low_level_output() to - * do the actual transmission of the packet. - * - */ - -static err_t xemacpsif_output(struct netif *netif, struct pbuf *p, - struct ip_addr *ipaddr) -{ - /* resolve hardware address, then send (or queue) packet */ - return etharp_output(netif, p, ipaddr); -} - -/* - * xemacpsif_input(): - * - * This function should be called when a packet is ready to be read - * from the interface. It uses the function low_level_input() that - * should handle the actual reception of bytes from the network - * interface. - * - * Returns the number of packets read (max 1 packet on success, - * 0 if there are no packets) - * - */ - -int xemacpsif_input(struct netif *netif) -{ - struct eth_hdr *ethhdr; - struct pbuf *p; - SYS_ARCH_DECL_PROTECT(lev); - -#ifdef OS_IS_FREERTOS - while (1) -#endif - { - /* move received packet into a new pbuf */ - SYS_ARCH_PROTECT(lev); - p = low_level_input(netif); - SYS_ARCH_UNPROTECT(lev); - - /* no packet could be read, silently ignore this */ - if (p == NULL) { - return 0; - } - - /* points to packet payload, which starts with an Ethernet header */ - ethhdr = p->payload; - -#if LINK_STATS - lwip_stats.link.recv++; -#endif /* LINK_STATS */ - - switch (htons(ethhdr->type)) { - /* IP or ARP packet? */ - case ETHTYPE_IP: - case ETHTYPE_ARP: -#if PPPOE_SUPPORT - /* PPPoE packet? */ - case ETHTYPE_PPPOEDISC: - case ETHTYPE_PPPOE: -#endif /* PPPOE_SUPPORT */ - /* full packet send to tcpip_thread to process */ - if (netif->input(p, netif) != ERR_OK) { - LWIP_DEBUGF(NETIF_DEBUG, ("xemacpsif_input: IP input error\r\n")); - pbuf_free(p); - p = NULL; - } - break; - - default: - pbuf_free(p); - p = NULL; - break; - } - } - - return 1; -} - - -static err_t low_level_init(struct netif *netif) -{ - unsigned mac_address = (unsigned)(netif->state); - struct xemac_s *xemac; - xemacpsif_s *xemacpsif; - u32 dmacrreg; - - int Status = XST_SUCCESS; - - NetIf = netif; - - xemacpsif = mem_malloc(sizeof *xemacpsif); - if (xemacpsif == NULL) { - LWIP_DEBUGF(NETIF_DEBUG, ("xemacpsif_init: out of memory\r\n")); - return ERR_MEM; - } - - xemac = mem_malloc(sizeof *xemac); - if (xemac == NULL) { - LWIP_DEBUGF(NETIF_DEBUG, ("xemacpsif_init: out of memory\r\n")); - return ERR_MEM; - } - - xemac->state = (void *)xemacpsif; - xemac->topology_index = xtopology_find_index(mac_address); - xemac->type = xemac_type_emacps; - - xemacpsif->send_q = NULL; - xemacpsif->recv_q = pq_create_queue(); - if (!xemacpsif->recv_q) - return ERR_MEM; - - /* maximum transfer unit */ - netif->mtu = XEMACPS_MTU - XEMACPS_HDR_SIZE; - -#if LWIP_IGMP - netif->igmp_mac_filter = xemacpsif_mac_filter_update; -#endif - - netif->flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | - NETIF_FLAG_LINK_UP; - -#if LWIP_IGMP - netif->flags |= NETIF_FLAG_IGMP; -#endif - -#if !NO_SYS - sys_sem_new(&xemac->sem_rx_data_available, 0); -#endif - /* obtain config of this emac */ - mac_config = (XEmacPs_Config *)xemacps_lookup_config((unsigned)netif->state); - - Status = XEmacPs_CfgInitialize(&xemacpsif->emacps, mac_config, - mac_config->BaseAddress); - if (Status != XST_SUCCESS) { - xil_printf("In %s:EmacPs Configuration Failed....\r\n", __func__); - } - - /* initialize the mac */ - init_emacps(xemacpsif, netif); - - dmacrreg = XEmacPs_ReadReg(xemacpsif->emacps.Config.BaseAddress, - XEMACPS_DMACR_OFFSET); - dmacrreg = dmacrreg | (0x00000010); - XEmacPs_WriteReg(xemacpsif->emacps.Config.BaseAddress, - XEMACPS_DMACR_OFFSET, dmacrreg); - - setup_isr(xemac); - init_dma(xemac); - start_emacps(xemacpsif); - - /* replace the state in netif (currently the emac baseaddress) - * with the mac instance pointer. - */ - netif->state = (void *)xemac; - - return ERR_OK; -} - -void HandleEmacPsError(struct xemac_s *xemac) -{ - xemacpsif_s *xemacpsif; - int Status = XST_SUCCESS; - u32 dmacrreg; - - SYS_ARCH_DECL_PROTECT(lev); - SYS_ARCH_PROTECT(lev); - - FreeTxRxPBufs(); - xemacpsif = (xemacpsif_s *)(xemac->state); - Status = XEmacPs_CfgInitialize(&xemacpsif->emacps, mac_config, - mac_config->BaseAddress); - if (Status != XST_SUCCESS) { - xil_printf("In %s:EmacPs Configuration Failed....\r\n", __func__); - } - /* initialize the mac */ - init_emacps_on_error(xemacpsif, NetIf); - dmacrreg = XEmacPs_ReadReg(xemacpsif->emacps.Config.BaseAddress, - XEMACPS_DMACR_OFFSET); - dmacrreg = dmacrreg | (0x01000000); - XEmacPs_WriteReg(xemacpsif->emacps.Config.BaseAddress, - XEMACPS_DMACR_OFFSET, dmacrreg); - setup_isr(xemac); - init_dma(xemac); - start_emacps(xemacpsif); - - SYS_ARCH_UNPROTECT(lev); -} - -void HandleTxErrors(struct xemac_s *xemac) -{ - xemacpsif_s *xemacpsif; - u32 netctrlreg; - - SYS_ARCH_DECL_PROTECT(lev); - SYS_ARCH_PROTECT(lev); - xemacpsif = (xemacpsif_s *)(xemac->state); - netctrlreg = XEmacPs_ReadReg(xemacpsif->emacps.Config.BaseAddress, - XEMACPS_NWCTRL_OFFSET); - netctrlreg = netctrlreg & (~XEMACPS_NWCTRL_TXEN_MASK); - XEmacPs_WriteReg(xemacpsif->emacps.Config.BaseAddress, - XEMACPS_NWCTRL_OFFSET, netctrlreg); - FreeOnlyTxPBufs(); - - clean_dma_txdescs(xemac); - netctrlreg = XEmacPs_ReadReg(xemacpsif->emacps.Config.BaseAddress, - XEMACPS_NWCTRL_OFFSET); - netctrlreg = netctrlreg | (XEMACPS_NWCTRL_TXEN_MASK); - XEmacPs_WriteReg(xemacpsif->emacps.Config.BaseAddress, - XEMACPS_NWCTRL_OFFSET, netctrlreg); - SYS_ARCH_UNPROTECT(lev); -} - - -#if LWIP_IGMP -static err_t xemacpsif_mac_filter_update (struct netif *netif, struct ip_addr *group, - u8_t action) -{ - return 0; -} -#endif - -/* - * xemacpsif_init(): - * - * Should be called at the beginning of the program to set up the - * network interface. It calls the function low_level_init() to do the - * actual setup of the hardware. - * - */ - -err_t xemacpsif_init(struct netif *netif) -{ -#if LWIP_SNMP - /* ifType ethernetCsmacd(6) @see RFC1213 */ - netif->link_type = 6; - /* your link speed here */ - netif->link_speed = ; - netif->ts = 0; - netif->ifinoctets = 0; - netif->ifinucastpkts = 0; - netif->ifinnucastpkts = 0; - netif->ifindiscards = 0; - netif->ifoutoctets = 0; - netif->ifoutucastpkts = 0; - netif->ifoutnucastpkts = 0; - netif->ifoutdiscards = 0; -#endif - - netif->name[0] = IFNAME0; - netif->name[1] = IFNAME1; - netif->output = xemacpsif_output; - netif->linkoutput = low_level_output; - - low_level_init(netif); - return ERR_OK; -} - -/* - * xemacpsif_resetrx_on_no_rxdata(): - * - * Should be called by the user at regular intervals, typically - * from a timer (100 msecond). This is to provide a SW workaround - * for the HW bug (SI #692601). Please refer to the function header - * for the function resetrx_on_no_rxdata in xemacpsif_dma.c to - * know more about the SI. - * - */ - -void xemacpsif_resetrx_on_no_rxdata(struct netif *netif) -{ - struct xemac_s *xemac = (struct xemac_s *)(netif->state); - xemacpsif_s *xemacpsif = (xemacpsif_s *)(xemac->state); - - resetrx_on_no_rxdata(xemacpsif); -} diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/netif/xemacpsif_dma.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/netif/xemacpsif_dma.c deleted file mode 100644 index 429b51a7e..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/netif/xemacpsif_dma.c +++ /dev/null @@ -1,622 +0,0 @@ -/* - * Copyright (c) 2010-2013 Xilinx, Inc. All rights reserved. - * - * Xilinx, Inc. - * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A - * COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS - * ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR - * STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION - * IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE - * FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION. - * XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO - * THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO - * ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE - * FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#include "lwipopts.h" -#include "lwip/stats.h" -#include "lwip/sys.h" -#include "lwip/inet_chksum.h" - -#include "netif/xadapter.h" -#include "netif/xemacpsif.h" -#include "xstatus.h" - -#include "xlwipconfig.h" -#include "xparameters.h" -#include "xparameters_ps.h" -#include "xil_exception.h" -#include "xil_mmu.h" -#ifdef CONFIG_XTRACE -#include "xtrace.h" -#endif -#ifdef OS_IS_FREERTOS -#include "FreeRTOS.h" -#include "semphr.h" -#include "timers.h" -#endif - -/*** IMPORTANT: Define PEEP in xemacpsif.h and sys_arch_raw.c - *** to run it on a PEEP board - ***/ - -#define INTC_BASE_ADDR XPAR_SCUGIC_CPU_BASEADDR -#define INTC_DIST_BASE_ADDR XPAR_SCUGIC_DIST_BASEADDR - -/* Byte alignment of BDs */ -#define BD_ALIGNMENT (XEMACPS_DMABD_MINIMUM_ALIGNMENT*2) - -static int tx_pbufs_storage[XLWIP_CONFIG_N_TX_DESC]; -static int rx_pbufs_storage[XLWIP_CONFIG_N_RX_DESC]; - -static int EmacIntrNum; -extern u8 _end; - -#ifdef OS_IS_FREERTOS -extern BaseType_t xInsideISR; -#endif - -#define XEMACPS_BD_TO_INDEX(ringptr, bdptr) \ - (((u32)bdptr - (u32)(ringptr)->BaseBdAddr) / (ringptr)->Separation) - - -int is_tx_space_available(xemacpsif_s *emac) -{ - XEmacPs_BdRing *txring; - int freecnt = 0; - - txring = &(XEmacPs_GetTxRing(&emac->emacps)); - - /* tx space is available as long as there are valid BD's */ - freecnt = XEmacPs_BdRingGetFreeCnt(txring); - return freecnt; -} - -void process_sent_bds(XEmacPs_BdRing *txring) -{ - XEmacPs_Bd *txbdset; - XEmacPs_Bd *CurBdPntr; - int n_bds; - XStatus Status; - int n_pbufs_freed = 0; - unsigned int BdIndex; - struct pbuf *p; - unsigned int *Temp; - - while (1) { - /* obtain processed BD's */ - n_bds = XEmacPs_BdRingFromHwTx(txring, - XLWIP_CONFIG_N_TX_DESC, &txbdset); - if (n_bds == 0) { - return; - } - /* free the processed BD's */ - n_pbufs_freed = n_bds; - CurBdPntr = txbdset; - while (n_pbufs_freed > 0) { - BdIndex = XEMACPS_BD_TO_INDEX(txring, CurBdPntr); - Temp = (unsigned int *)CurBdPntr; - *Temp = 0; - Temp++; - *Temp = 0x80000000; - if (BdIndex == (XLWIP_CONFIG_N_TX_DESC - 1)) { - *Temp = 0xC0000000; - } - - p = (struct pbuf *)tx_pbufs_storage[BdIndex]; - if(p != NULL) { - pbuf_free(p); - } - tx_pbufs_storage[BdIndex] = 0; - CurBdPntr = XEmacPs_BdRingNext(txring, CurBdPntr); - n_pbufs_freed--; - dsb(); - } - - Status = XEmacPs_BdRingFree(txring, n_bds, txbdset); - if (Status != XST_SUCCESS) { - LWIP_DEBUGF(NETIF_DEBUG, ("Failure while freeing in Tx Done ISR\r\n")); - } - } - return; -} - -void vPendableSendCompleteFunction( void *pvParameter, uint32_t ulParameter ) -{ - ( void ) ulParameter; - process_sent_bds(pvParameter); -} - -void emacps_send_handler(void *arg) -{ - struct xemac_s *xemac; - xemacpsif_s *xemacpsif; - XEmacPs_BdRing *TxRingPtr; - unsigned int regval; -#ifdef OS_IS_FREERTOS - xInsideISR++; -#endif - xemac = (struct xemac_s *)(arg); - xemacpsif = (xemacpsif_s *)(xemac->state); - TxRingPtr = &(XEmacPs_GetTxRing(&xemacpsif->emacps)); - regval = XEmacPs_ReadReg(xemacpsif->emacps.Config.BaseAddress, XEMACPS_TXSR_OFFSET); - XEmacPs_WriteReg(xemacpsif->emacps.Config.BaseAddress,XEMACPS_TXSR_OFFSET, regval); - -#ifdef OS_IS_FREERTOS - xInsideISR--; -#endif - - /* If Transmit done interrupt is asserted, process completed BD's - Replaced - a call to process_sent_bds(TxRingPtr); with a pendable function to prevent - the memory allocation files being accessed from the ISR with not redress if - obtaining the mutex fails. */ - { - BaseType_t xHigherPriorityTaskWoken = pdFALSE; - xTimerPendFunctionCallFromISR( vPendableSendCompleteFunction, TxRingPtr, 0, &xHigherPriorityTaskWoken ); - portYIELD_FROM_ISR( xHigherPriorityTaskWoken ); - } -} - -XStatus emacps_sgsend(xemacpsif_s *xemacpsif, struct pbuf *p) -{ - struct pbuf *q; - int n_pbufs; - XEmacPs_Bd *txbdset, *txbd, *last_txbd = NULL; - XEmacPs_Bd *temp_txbd; - XStatus Status; - XEmacPs_BdRing *txring; - unsigned int BdIndex; - unsigned int lev; - - lev = mfcpsr(); - mtcpsr(lev | 0x000000C0); - -#ifdef PEEP - while((XEmacPs_ReadReg((xemacpsif->emacps).Config.BaseAddress, - XEMACPS_TXSR_OFFSET)) & 0x08); -#endif - txring = &(XEmacPs_GetTxRing(&xemacpsif->emacps)); - - /* first count the number of pbufs */ - for (q = p, n_pbufs = 0; q != NULL; q = q->next) - n_pbufs++; - - /* obtain as many BD's */ - Status = XEmacPs_BdRingAlloc(txring, n_pbufs, &txbdset); - if (Status != XST_SUCCESS) { - mtcpsr(lev); - LWIP_DEBUGF(NETIF_DEBUG, ("sgsend: Error allocating TxBD\r\n")); - return ERR_IF; - } - - for(q = p, txbd = txbdset; q != NULL; q = q->next) { - BdIndex = XEMACPS_BD_TO_INDEX(txring, txbd); - if (tx_pbufs_storage[BdIndex] != 0) { - mtcpsr(lev); - LWIP_DEBUGF(NETIF_DEBUG, ("PBUFS not available\r\n")); - return ERR_IF; - } - - /* Send the data from the pbuf to the interface, one pbuf at a - time. The size of the data in each pbuf is kept in the ->len - variable. */ - Xil_DCacheFlushRange((unsigned int)q->payload, (unsigned)q->len); - - XEmacPs_BdSetAddressTx(txbd, (u32)q->payload); - if (q->len > (XEMACPS_MAX_FRAME_SIZE - 18)) - XEmacPs_BdSetLength(txbd, (XEMACPS_MAX_FRAME_SIZE - 18) & 0x3FFF); - else - XEmacPs_BdSetLength(txbd, q->len & 0x3FFF); - - tx_pbufs_storage[BdIndex] = (int)q; - - pbuf_ref(q); - last_txbd = txbd; - XEmacPs_BdClearLast(txbd); - dsb(); - txbd = XEmacPs_BdRingNext(txring, txbd); - } - XEmacPs_BdSetLast(last_txbd); - dsb(); - /* For fragmented packets, remember the 1st BD allocated for the 1st - packet fragment. The used bit for this BD should be cleared at the end - after clearing out used bits for other fragments. For packets without - just remember the allocated BD. */ - temp_txbd = txbdset; - txbd = txbdset; - txbd = XEmacPs_BdRingNext(txring, txbd); - q = p->next; - for(; q != NULL; q = q->next) { - XEmacPs_BdClearTxUsed(txbd); - txbd = XEmacPs_BdRingNext(txring, txbd); - } - XEmacPs_BdClearTxUsed(temp_txbd); - dsb(); - - Status = XEmacPs_BdRingToHw(txring, n_pbufs, txbdset); - if (Status != XST_SUCCESS) { - mtcpsr(lev); - LWIP_DEBUGF(NETIF_DEBUG, ("sgsend: Error submitting TxBD\r\n")); - return ERR_IF; - } - dsb(); - /* Start transmit */ - XEmacPs_WriteReg((xemacpsif->emacps).Config.BaseAddress, - XEMACPS_NWCTRL_OFFSET, - (XEmacPs_ReadReg((xemacpsif->emacps).Config.BaseAddress, - XEMACPS_NWCTRL_OFFSET) | XEMACPS_NWCTRL_STARTTX_MASK)); - dsb(); - mtcpsr(lev); - return Status; -} - -void setup_rx_bds(XEmacPs_BdRing *rxring) -{ - XEmacPs_Bd *rxbd; - XStatus Status; - struct pbuf *p; - unsigned int FreeBds; - unsigned int BdIndex; - unsigned int *Temp; - - FreeBds = XEmacPs_BdRingGetFreeCnt (rxring); - while (FreeBds > 0) { - FreeBds--; - Status = XEmacPs_BdRingAlloc(rxring, 1, &rxbd); - if (Status != XST_SUCCESS) { - LWIP_DEBUGF(NETIF_DEBUG, ("setup_rx_bds: Error allocating RxBD\r\n")); - return; - } - BdIndex = XEMACPS_BD_TO_INDEX(rxring, rxbd); - Temp = (unsigned int *)rxbd; - *Temp = 0; - if (BdIndex == (XLWIP_CONFIG_N_RX_DESC - 1)) { - *Temp = 0x00000002; - } - Temp++; - *Temp = 0; - - p = pbuf_alloc(PBUF_RAW, XEMACPS_MAX_FRAME_SIZE, PBUF_POOL); - if (!p) { -#if LINK_STATS - lwip_stats.link.memerr++; - lwip_stats.link.drop++; -#endif - LWIP_DEBUGF(NETIF_DEBUG, ("unable to alloc pbuf in recv_handler\r\n")); - XEmacPs_BdRingUnAlloc(rxring, 1, rxbd); - dsb(); - return; - } - XEmacPs_BdSetAddressRx(rxbd, (u32)p->payload); - dsb(); - - rx_pbufs_storage[BdIndex] = (int)p; - Status = XEmacPs_BdRingToHw(rxring, 1, rxbd); - if (Status != XST_SUCCESS) { - LWIP_DEBUGF(NETIF_DEBUG, ("Error committing RxBD to hardware: ")); - if (Status == XST_DMA_SG_LIST_ERROR) - LWIP_DEBUGF(NETIF_DEBUG, ("XST_DMA_SG_LIST_ERROR: this function was called out of sequence with XEmacPs_BdRingAlloc()\r\n")); - else - { - LWIP_DEBUGF(NETIF_DEBUG, ("set of BDs was rejected because the first BD did not have its start-of-packet bit set, or the last BD did not have its end-of-packet bit set, or any one of the BD set has 0 as length value\r\n")); - } - return; - } - } -} - -void emacps_recv_handler(void *arg) -{ - struct pbuf *p; - XEmacPs_Bd *rxbdset, *CurBdPtr; - struct xemac_s *xemac; - xemacpsif_s *xemacpsif; - XEmacPs_BdRing *rxring; - volatile int bd_processed; - int rx_bytes, k; - unsigned int BdIndex; - unsigned int regval; - - xemac = (struct xemac_s *)(arg); - xemacpsif = (xemacpsif_s *)(xemac->state); - rxring = &XEmacPs_GetRxRing(&xemacpsif->emacps); - -#ifdef OS_IS_FREERTOS - xInsideISR++; -#endif - /* - * If Reception done interrupt is asserted, call RX call back function - * to handle the processed BDs and then raise the according flag. - */ - regval = XEmacPs_ReadReg(xemacpsif->emacps.Config.BaseAddress, XEMACPS_RXSR_OFFSET); - XEmacPs_WriteReg(xemacpsif->emacps.Config.BaseAddress, XEMACPS_RXSR_OFFSET, regval); - - resetrx_on_no_rxdata(xemacpsif); - - while(1) { - - bd_processed = XEmacPs_BdRingFromHwRx(rxring, XLWIP_CONFIG_N_RX_DESC, &rxbdset); - - if (bd_processed <= 0) { - break; - } - - for (k = 0, CurBdPtr=rxbdset; k < bd_processed; k++) { - - BdIndex = XEMACPS_BD_TO_INDEX(rxring, CurBdPtr); - p = (struct pbuf *)rx_pbufs_storage[BdIndex]; - - /* - * Adjust the buffer size to the actual number of bytes received. - */ - rx_bytes = XEmacPs_BdGetLength(CurBdPtr); - pbuf_realloc(p, rx_bytes); - Xil_DCacheInvalidateRange((unsigned int)p->payload, (unsigned)XEMACPS_MAX_FRAME_SIZE); - /* store it in the receive queue, - * where it'll be processed by a different handler - */ - if (pq_enqueue(xemacpsif->recv_q, (void*)p) < 0) { -#if LINK_STATS - lwip_stats.link.memerr++; - lwip_stats.link.drop++; -#endif - pbuf_free(p); - } else { -#if !NO_SYS - sys_sem_signal(&xemac->sem_rx_data_available); -#endif - } - CurBdPtr = XEmacPs_BdRingNext( rxring, CurBdPtr); - } - /* free up the BD's */ - XEmacPs_BdRingFree(rxring, bd_processed, rxbdset); - setup_rx_bds(rxring); - } - -#ifdef OS_IS_FREERTOS - xInsideISR--; -#endif - return; -} - -void clean_dma_txdescs(struct xemac_s *xemac) -{ - XEmacPs_Bd BdTemplate; - XEmacPs_BdRing *TxRingPtr; - xemacpsif_s *xemacpsif = (xemacpsif_s *)(xemac->state); - - TxRingPtr = &XEmacPs_GetTxRing(&xemacpsif->emacps); - - XEmacPs_BdClear(&BdTemplate); - XEmacPs_BdSetStatus(&BdTemplate, XEMACPS_TXBUF_USED_MASK); - - /* - * Create the TxBD ring - */ - XEmacPs_BdRingCreate(TxRingPtr, (u32) xemacpsif->tx_bdspace, - (u32) xemacpsif->tx_bdspace, BD_ALIGNMENT, - XLWIP_CONFIG_N_TX_DESC); - XEmacPs_BdRingClone(TxRingPtr, &BdTemplate, XEMACPS_SEND); -} - - -XStatus init_dma(struct xemac_s *xemac) -{ - XEmacPs_Bd BdTemplate; - XEmacPs_BdRing *RxRingPtr, *TxRingPtr; - XEmacPs_Bd *rxbd; - struct pbuf *p; - XStatus Status; - int i; - unsigned int BdIndex; - char *endAdd = (char *) &_end; - /* - * Align the BD starte address to 1 MB boundary. - */ - char *endAdd_aligned = (char *)(((int)endAdd + 0x100000) & (~0xFFFFF)); - xemacpsif_s *xemacpsif = (xemacpsif_s *)(xemac->state); - struct xtopology_t *xtopologyp = &xtopology[xemac->topology_index]; - - /* - * The BDs need to be allocated in uncached memory. Hence the 1 MB - * address range that starts at address 0xFF00000 is made uncached - * by setting appropriate attributes in the translation table. - */ - Xil_SetTlbAttributes((int)endAdd_aligned, 0xc02); // addr, attr - - RxRingPtr = &XEmacPs_GetRxRing(&xemacpsif->emacps); - TxRingPtr = &XEmacPs_GetTxRing(&xemacpsif->emacps); - LWIP_DEBUGF(NETIF_DEBUG, ("RxRingPtr: 0x%08x\r\n", RxRingPtr)); - LWIP_DEBUGF(NETIF_DEBUG, ("TxRingPtr: 0x%08x\r\n", TxRingPtr)); - - xemacpsif->rx_bdspace = (void *)endAdd_aligned; - /* - * We allocate 65536 bytes for Rx BDs which can accomodate a - * maximum of 8192 BDs which is much more than any application - * will ever need. - */ - xemacpsif->tx_bdspace = (void *)(endAdd_aligned + 0x10000); - - LWIP_DEBUGF(NETIF_DEBUG, ("rx_bdspace: 0x%08x\r\n", xemacpsif->rx_bdspace)); - LWIP_DEBUGF(NETIF_DEBUG, ("tx_bdspace: 0x%08x\r\n", xemacpsif->tx_bdspace)); - - if (!xemacpsif->rx_bdspace || !xemacpsif->tx_bdspace) { - xil_printf("%s@%d: Error: Unable to allocate memory for TX/RX buffer descriptors", - __FILE__, __LINE__); - return XST_FAILURE; - } - - /* - * Setup RxBD space. - * - * Setup a BD template for the Rx channel. This template will be copied to - * every RxBD. We will not have to explicitly set these again. - */ - XEmacPs_BdClear(&BdTemplate); - - /* - * Create the RxBD ring - */ - - Status = XEmacPs_BdRingCreate(RxRingPtr, (u32) xemacpsif->rx_bdspace, - (u32) xemacpsif->rx_bdspace, BD_ALIGNMENT, - XLWIP_CONFIG_N_RX_DESC); - - if (Status != XST_SUCCESS) { - LWIP_DEBUGF(NETIF_DEBUG, ("Error setting up RxBD space\r\n")); - return XST_FAILURE; - } - - Status = XEmacPs_BdRingClone(RxRingPtr, &BdTemplate, XEMACPS_RECV); - if (Status != XST_SUCCESS) { - LWIP_DEBUGF(NETIF_DEBUG, ("Error initializing RxBD space\r\n")); - return XST_FAILURE; - } - - XEmacPs_BdClear(&BdTemplate); - XEmacPs_BdSetStatus(&BdTemplate, XEMACPS_TXBUF_USED_MASK); - /* - * Create the TxBD ring - */ - Status = XEmacPs_BdRingCreate(TxRingPtr, (u32) xemacpsif->tx_bdspace, - (u32) xemacpsif->tx_bdspace, BD_ALIGNMENT, - XLWIP_CONFIG_N_TX_DESC); - - if (Status != XST_SUCCESS) { - return XST_FAILURE; - } - - /* We reuse the bd template, as the same one will work for both rx and tx. */ - Status = XEmacPs_BdRingClone(TxRingPtr, &BdTemplate, XEMACPS_SEND); - if (Status != XST_SUCCESS) { - return ERR_IF; - } - - /* - * Allocate RX descriptors, 1 RxBD at a time. - */ - for (i = 0; i < XLWIP_CONFIG_N_RX_DESC; i++) { - Status = XEmacPs_BdRingAlloc(RxRingPtr, 1, &rxbd); - if (Status != XST_SUCCESS) { - LWIP_DEBUGF(NETIF_DEBUG, ("init_dma: Error allocating RxBD\r\n")); - return ERR_IF; - } - - p = pbuf_alloc(PBUF_RAW, XEMACPS_MAX_FRAME_SIZE, PBUF_POOL); - if (!p) { -#if LINK_STATS - lwip_stats.link.memerr++; - lwip_stats.link.drop++; -#endif - LWIP_DEBUGF(NETIF_DEBUG, ("unable to alloc pbuf in recv_handler\r\n")); - return -1; - } - - XEmacPs_BdSetAddressRx(rxbd, (u32)p->payload); - - BdIndex = XEMACPS_BD_TO_INDEX(RxRingPtr, rxbd); - rx_pbufs_storage[BdIndex] = (int)p; - - /* Enqueue to HW */ - Status = XEmacPs_BdRingToHw(RxRingPtr, 1, rxbd); - if (Status != XST_SUCCESS) { - LWIP_DEBUGF(NETIF_DEBUG, ("Error: committing RxBD to HW\r\n")); - return XST_FAILURE; - } - } - - /* - * Connect the device driver handler that will be called when an - * interrupt for the device occurs, the handler defined above performs - * the specific interrupt processing for the device. - */ - XScuGic_RegisterHandler(INTC_BASE_ADDR, xtopologyp->scugic_emac_intr, - (Xil_ExceptionHandler)XEmacPs_IntrHandler, - (void *)&xemacpsif->emacps); - /* - * Enable the interrupt for emacps. - */ - XScuGic_EnableIntr(INTC_DIST_BASE_ADDR, (u32) xtopologyp->scugic_emac_intr); - EmacIntrNum = (u32) xtopologyp->scugic_emac_intr; - return 0; -} - -/* - * resetrx_on_no_rxdata(): - * - * It is called at regular intervals through the API xemacpsif_resetrx_on_no_rxdata - * called by the user. - * The EmacPs has a HW bug (SI# 692601) on the Rx path for heavy Rx traffic. - * Under heavy Rx traffic because of the HW bug there are times when the Rx path - * becomes unresponsive. The workaround for it is to check for the Rx path for - * traffic (by reading the stats registers regularly). If the stats register - * does not increment for sometime (proving no Rx traffic), the function resets - * the Rx data path. - * - */ - -void resetrx_on_no_rxdata(xemacpsif_s *xemacpsif) -{ - unsigned long regctrl; - unsigned long tempcntr; - - tempcntr = XEmacPs_ReadReg(xemacpsif->emacps.Config.BaseAddress, XEMACPS_RXCNT_OFFSET); - if ((!tempcntr) && (!(xemacpsif->last_rx_frms_cntr))) { - regctrl = XEmacPs_ReadReg(xemacpsif->emacps.Config.BaseAddress, - XEMACPS_NWCTRL_OFFSET); - regctrl &= (~XEMACPS_NWCTRL_RXEN_MASK); - XEmacPs_WriteReg(xemacpsif->emacps.Config.BaseAddress, - XEMACPS_NWCTRL_OFFSET, regctrl); - regctrl = XEmacPs_ReadReg(xemacpsif->emacps.Config.BaseAddress, XEMACPS_NWCTRL_OFFSET); - regctrl |= (XEMACPS_NWCTRL_RXEN_MASK); - XEmacPs_WriteReg(xemacpsif->emacps.Config.BaseAddress, XEMACPS_NWCTRL_OFFSET, regctrl); - } - xemacpsif->last_rx_frms_cntr = tempcntr; -} - -void FreeTxRxPBufs(void) -{ - int Index; - struct pbuf *p; - - for (Index = 0; Index < XLWIP_CONFIG_N_TX_DESC; Index++) { - if (tx_pbufs_storage[Index] != 0) { - p = (struct pbuf *)tx_pbufs_storage[Index]; - pbuf_free(p); - tx_pbufs_storage[Index] = 0; - } - } - - for (Index = 0; Index < XLWIP_CONFIG_N_RX_DESC; Index++) { - p = (struct pbuf *)rx_pbufs_storage[Index]; - pbuf_free(p); - - } -} - -void FreeOnlyTxPBufs(void) -{ - int Index; - struct pbuf *p; - - for (Index = 0; Index < XLWIP_CONFIG_N_TX_DESC; Index++) { - if (tx_pbufs_storage[Index] != 0) { - p = (struct pbuf *)tx_pbufs_storage[Index]; - pbuf_free(p); - tx_pbufs_storage[Index] = 0; - } - } -} - -void EmacDisableIntr(void) -{ - XScuGic_DisableIntr(INTC_DIST_BASE_ADDR, EmacIntrNum); -} - -void EmacEnableIntr(void) -{ - XScuGic_EnableIntr(INTC_DIST_BASE_ADDR, EmacIntrNum); -} diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/netif/xemacpsif_hw.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/netif/xemacpsif_hw.c deleted file mode 100644 index 86209f259..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/netif/xemacpsif_hw.c +++ /dev/null @@ -1,208 +0,0 @@ -/* - * Copyright (c) 2010-2013 Xilinx, Inc. All rights reserved. - * - * Xilinx, Inc. - * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A - * COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS - * ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR - * STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION - * IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE - * FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION. - * XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO - * THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO - * ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE - * FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#include "netif/xemacpsif.h" -#include "lwipopts.h" - -/*** IMPORTANT: Define PEEP in xemacpsif.h and sys_arch_raw.c - *** to run it on a PEEP board - ***/ - -unsigned int link_speed = 100; - -XEmacPs_Config *xemacps_lookup_config(unsigned mac_base) -{ - extern XEmacPs_Config XEmacPs_ConfigTable[]; - XEmacPs_Config *CfgPtr = NULL; - int i; - - for (i = 0; i < XPAR_XEMACPS_NUM_INSTANCES; i++) { - if (XEmacPs_ConfigTable[i].BaseAddress == mac_base) { - CfgPtr = &XEmacPs_ConfigTable[i]; - break; - } - } - - return (CfgPtr); -} - -void init_emacps(xemacpsif_s *xemacps, struct netif *netif) -{ - unsigned mac_address = (unsigned)(netif->state); - XEmacPs *xemacpsp; - XEmacPs_Config *mac_config; - int Status = XST_SUCCESS; - - /* obtain config of this emac */ - mac_config = (XEmacPs_Config *)xemacps_lookup_config(mac_address); - - /* Does not appear to be used. */ - ( void ) mac_config; - - xemacpsp = &xemacps->emacps; - - /* set mac address */ - Status = XEmacPs_SetMacAddress(xemacpsp, (void*)(netif->hwaddr), 1); - if (Status != XST_SUCCESS) { - xil_printf("In %s:Emac Mac Address set failed...\r\n",__func__); - } - XEmacPs_SetMdioDivisor(xemacpsp, MDC_DIV_224); - link_speed = Phy_Setup(xemacpsp); - XEmacPs_SetOperatingSpeed(xemacpsp, link_speed); - /* Setting the operating speed of the MAC needs a delay. */ - { - volatile int wait; - for (wait=0; wait < 20000; wait++); - } -} - -void init_emacps_on_error (xemacpsif_s *xemacps, struct netif *netif) -{ - unsigned mac_address = (unsigned)(netif->state); - XEmacPs *xemacpsp; - XEmacPs_Config *mac_config; - int Status = XST_SUCCESS; - - /* obtain config of this emac */ - mac_config = (XEmacPs_Config *)xemacps_lookup_config(mac_address); - - /* Does not appear to be used? */ - ( void ) mac_config; - - xemacpsp = &xemacps->emacps; - - /* set mac address */ - Status = XEmacPs_SetMacAddress(xemacpsp, (void*)(netif->hwaddr), 1); - if (Status != XST_SUCCESS) { - xil_printf("In %s:Emac Mac Address set failed...\r\n",__func__); - } - - XEmacPs_SetOperatingSpeed(xemacpsp, link_speed); - - /* Setting the operating speed of the MAC needs a delay. */ - { - volatile int wait; - for (wait=0; wait < 20000; wait++); - } -} - -void setup_isr (struct xemac_s *xemac) -{ - xemacpsif_s *xemacpsif; - - xemacpsif = (xemacpsif_s *)(xemac->state); - /* - * Setup callbacks - */ - XEmacPs_SetHandler(&xemacpsif->emacps, XEMACPS_HANDLER_DMASEND, - (void *) emacps_send_handler, - (void *) xemac); - - XEmacPs_SetHandler(&xemacpsif->emacps, XEMACPS_HANDLER_DMARECV, - (void *) emacps_recv_handler, - (void *) xemac); - - XEmacPs_SetHandler(&xemacpsif->emacps, XEMACPS_HANDLER_ERROR, - (void *) emacps_error_handler, - (void *) xemac); -} - -void start_emacps (xemacpsif_s *xemacps) -{ - /* start the temac */ - XEmacPs_Start(&xemacps->emacps); -} - -void restart_emacps_transmitter (xemacpsif_s *xemacps) { - u32 Reg; - Reg = XEmacPs_ReadReg(xemacps->emacps.Config.BaseAddress, - XEMACPS_NWCTRL_OFFSET); - Reg = Reg & (~XEMACPS_NWCTRL_TXEN_MASK); - XEmacPs_WriteReg(xemacps->emacps.Config.BaseAddress, - XEMACPS_NWCTRL_OFFSET, Reg); - - Reg = XEmacPs_ReadReg(xemacps->emacps.Config.BaseAddress, - XEMACPS_NWCTRL_OFFSET); - Reg = Reg | (XEMACPS_NWCTRL_TXEN_MASK); - XEmacPs_WriteReg(xemacps->emacps.Config.BaseAddress, - XEMACPS_NWCTRL_OFFSET, Reg); -} - -void emacps_error_handler(void *arg,u8 Direction, u32 ErrorWord) -{ - struct xemac_s *xemac; - xemacpsif_s *xemacpsif; - struct xtopology_t *xtopologyp; - XEmacPs *xemacps; - XEmacPs_BdRing *rxring; - XEmacPs_BdRing *txring; - - xemac = (struct xemac_s *)(arg); - xemacpsif = (xemacpsif_s *)(xemac->state); - rxring = &XEmacPs_GetRxRing(&xemacpsif->emacps); - txring = &XEmacPs_GetRxRing(&xemacpsif->emacps); - xtopologyp = &xtopology[xemac->topology_index]; - xemacps = &xemacpsif->emacps; - - /* Do not appear to be used. */ - ( void ) xemacps; - ( void ) xtopologyp; - - if (ErrorWord != 0) { - switch (Direction) { - case XEMACPS_RECV: - if (ErrorWord & XEMACPS_RXSR_HRESPNOK_MASK) { - LWIP_DEBUGF(NETIF_DEBUG, ("Receive DMA error\r\n")); - HandleEmacPsError(xemac); - } - if (ErrorWord & XEMACPS_RXSR_RXOVR_MASK) { - LWIP_DEBUGF(NETIF_DEBUG, ("Receive over run\r\n")); - emacps_recv_handler(arg); - setup_rx_bds(rxring); - } - if (ErrorWord & XEMACPS_RXSR_BUFFNA_MASK) { - LWIP_DEBUGF(NETIF_DEBUG, ("Receive buffer not available\r\n")); - emacps_recv_handler(arg); - setup_rx_bds(rxring); - } - break; - case XEMACPS_SEND: - if (ErrorWord & XEMACPS_TXSR_HRESPNOK_MASK) { - LWIP_DEBUGF(NETIF_DEBUG, ("Transmit DMA error\r\n")); - HandleEmacPsError(xemac); - } - if (ErrorWord & XEMACPS_TXSR_URUN_MASK) { - LWIP_DEBUGF(NETIF_DEBUG, ("Transmit under run\r\n")); - HandleTxErrors(xemac); - } - if (ErrorWord & XEMACPS_TXSR_BUFEXH_MASK) { - LWIP_DEBUGF(NETIF_DEBUG, ("Transmit buffer exhausted\r\n")); - HandleTxErrors(xemac); - } - if (ErrorWord & XEMACPS_TXSR_RXOVR_MASK) { - LWIP_DEBUGF(NETIF_DEBUG, ("Transmit retry excessed limits\r\n")); - HandleTxErrors(xemac); - } - if (ErrorWord & XEMACPS_TXSR_FRAMERX_MASK) { - LWIP_DEBUGF(NETIF_DEBUG, ("Transmit collision\r\n")); - process_sent_bds(txring); - } - break; - } - } -} diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/netif/xemacpsif_hw.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/netif/xemacpsif_hw.h deleted file mode 100644 index 923f66185..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/netif/xemacpsif_hw.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2010-2013 Xilinx, Inc. All rights reserved. - * - * Xilinx, Inc. - * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A - * COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS - * ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR - * STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION - * IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE - * FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION. - * XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO - * THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO - * ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE - * FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#ifndef __XEMACPSIF_HW_H_ -#define __XEMACPSIF_HW_H_ - -#include "netif/xemacpsif.h" -#include "lwip/netif.h" - -#ifdef __cplusplus -extern "C" { -#endif - -XEmacPs_Config * lookup_config(unsigned mac_base); - -void init_emacps(xemacpsif_s *xemacpsif, struct netif *netif); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/netif/xemacpsif_physpeed.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/netif/xemacpsif_physpeed.c deleted file mode 100644 index 367a9b30f..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/netif/xemacpsif_physpeed.c +++ /dev/null @@ -1,558 +0,0 @@ -/* - * Copyright (c) 2007-2008, Advanced Micro Devices, 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 Advanced Micro Devices, Inc. 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 - * OWNER 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. - */ - -/* - * Some portions copyright (c) 2010-2013 Xilinx, Inc. All rights reserved. - * - * Xilinx, Inc. - * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A - * COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS - * ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR - * STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION - * IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE - * FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION. - * XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO - * THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO - * ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE - * FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#include "netif/xemacpsif.h" -#include "lwipopts.h" -#include "xparameters_ps.h" -#include "xparameters.h" - -/*** IMPORTANT: Define PEEP in xemacpsif.h and sys_arch_raw.c - *** to run it on a PEEP board - ***/ - -/* Advertisement control register. */ -#define ADVERTISE_10HALF 0x0020 /* Try for 10mbps half-duplex */ -#define ADVERTISE_10FULL 0x0040 /* Try for 10mbps full-duplex */ -#define ADVERTISE_100HALF 0x0080 /* Try for 100mbps half-duplex */ -#define ADVERTISE_100FULL 0x0100 /* Try for 100mbps full-duplex */ - -#define ADVERTISE_100_AND_10 (ADVERTISE_10FULL | ADVERTISE_100FULL | \ - ADVERTISE_10HALF | ADVERTISE_100HALF) -#define ADVERTISE_100 (ADVERTISE_100FULL | ADVERTISE_100HALF) -#define ADVERTISE_10 (ADVERTISE_10FULL | ADVERTISE_10HALF) - -#define ADVERTISE_1000 0x0300 - - -#define IEEE_CONTROL_REG_OFFSET 0 -#define IEEE_STATUS_REG_OFFSET 1 -#define IEEE_AUTONEGO_ADVERTISE_REG 4 -#define IEEE_PARTNER_ABILITIES_1_REG_OFFSET 5 -#define IEEE_1000_ADVERTISE_REG_OFFSET 9 -#define IEEE_PARTNER_ABILITIES_3_REG_OFFSET 10 -#define IEEE_COPPER_SPECIFIC_CONTROL_REG 16 -#define IEEE_SPECIFIC_STATUS_REG 17 -#define IEEE_COPPER_SPECIFIC_STATUS_REG_2 19 -#define IEEE_CONTROL_REG_MAC 21 -#define IEEE_PAGE_ADDRESS_REGISTER 22 - - -#define IEEE_CTRL_1GBPS_LINKSPEED_MASK 0x2040 -#define IEEE_CTRL_LINKSPEED_MASK 0x0040 -#define IEEE_CTRL_LINKSPEED_1000M 0x0040 -#define IEEE_CTRL_LINKSPEED_100M 0x2000 -#define IEEE_CTRL_LINKSPEED_10M 0x0000 -#define IEEE_CTRL_RESET_MASK 0x8000 -#define IEEE_CTRL_AUTONEGOTIATE_ENABLE 0x1000 -#if XPAR_GIGE_PCS_PMA_CORE_PRESENT == 1 -#define IEEE_CTRL_RESET 0x9140 -#define IEEE_CTRL_ISOLATE_DISABLE 0xFBFF -#endif -#define IEEE_STAT_AUTONEGOTIATE_CAPABLE 0x0008 -#define IEEE_STAT_AUTONEGOTIATE_COMPLETE 0x0020 -#define IEEE_STAT_AUTONEGOTIATE_RESTART 0x0200 -#define IEEE_STAT_1GBPS_EXTENSIONS 0x0100 -#define IEEE_AN1_ABILITY_MASK 0x1FE0 -#define IEEE_AN3_ABILITY_MASK_1GBPS 0x0C00 -#define IEEE_AN1_ABILITY_MASK_100MBPS 0x0380 -#define IEEE_AN1_ABILITY_MASK_10MBPS 0x0060 -#define IEEE_RGMII_TXRX_CLOCK_DELAYED_MASK 0x0030 - -#define IEEE_ASYMMETRIC_PAUSE_MASK 0x0800 -#define IEEE_PAUSE_MASK 0x0400 -#define IEEE_AUTONEG_ERROR_MASK 0x8000 - -#define PHY_DETECT_REG 1 -#define PHY_DETECT_MASK 0x1808 - -#define XEMACPS_GMII2RGMII_SPEED1000_FD 0x140 -#define XEMACPS_GMII2RGMII_SPEED100_FD 0x2100 -#define XEMACPS_GMII2RGMII_SPEED10_FD 0x100 -#define XEMACPS_GMII2RGMII_REG_NUM 0x10 - -/* Frequency setting */ -#define SLCR_LOCK_ADDR (XPS_SYS_CTRL_BASEADDR + 0x4) -#define SLCR_UNLOCK_ADDR (XPS_SYS_CTRL_BASEADDR + 0x8) -#define SLCR_GEM0_CLK_CTRL_ADDR (XPS_SYS_CTRL_BASEADDR + 0x140) -#define SLCR_GEM1_CLK_CTRL_ADDR (XPS_SYS_CTRL_BASEADDR + 0x144) -#ifdef PEEP -#define SLCR_GEM_10M_CLK_CTRL_VALUE 0x00103031 -#define SLCR_GEM_100M_CLK_CTRL_VALUE 0x00103001 -#define SLCR_GEM_1G_CLK_CTRL_VALUE 0x00103011 -#endif -#define SLCR_LOCK_KEY_VALUE 0x767B -#define SLCR_UNLOCK_KEY_VALUE 0xDF0D -#define SLCR_ADDR_GEM_RST_CTRL (XPS_SYS_CTRL_BASEADDR + 0x214) -#define EMACPS_SLCR_DIV_MASK 0xFC0FC0FF - -#define EMAC0_BASE_ADDRESS 0xE000B000 -#define EMAC1_BASE_ADDRESS 0xE000C000 - -static int detect_phy(XEmacPs *xemacpsp) -{ - u16 phy_reg; - u32 phy_addr; - - for (phy_addr = 31; phy_addr > 0; phy_addr--) { - XEmacPs_PhyRead(xemacpsp, phy_addr, PHY_DETECT_REG, - &phy_reg); - - if ((phy_reg != 0xFFFF) && - ((phy_reg & PHY_DETECT_MASK) == PHY_DETECT_MASK)) { - /* Found a valid PHY address */ - LWIP_DEBUGF(NETIF_DEBUG, ("XEmacPs detect_phy: PHY detected at address %d.\r\n", - phy_addr)); - LWIP_DEBUGF(NETIF_DEBUG, ("XEmacPs detect_phy: PHY detected.\r\n")); - return phy_addr; - } - } - - LWIP_DEBUGF(NETIF_DEBUG, ("XEmacPs detect_phy: No PHY detected. Assuming a PHY at address 0\r\n")); - - /* default to zero */ - return 0; -} - -#ifdef PEEP -unsigned get_IEEE_phy_speed(XEmacPs *xemacpsp) -{ - - u16 control; - u16 status; - u16 partner_capabilities; - u16 partner_capabilities_1000; - u16 phylinkspeed; - u32 phy_addr = detect_phy(xemacpsp); - - XEmacPs_PhyWrite(xemacpsp, phy_addr, IEEE_1000_ADVERTISE_REG_OFFSET, - ADVERTISE_1000); - /* Advertise PHY speed of 100 and 10 Mbps */ - XEmacPs_PhyWrite(xemacpsp, phy_addr, IEEE_AUTONEGO_ADVERTISE_REG, - ADVERTISE_100_AND_10); - - XEmacPs_PhyRead(xemacpsp, phy_addr, IEEE_CONTROL_REG_OFFSET, - &control); - control |= (IEEE_CTRL_AUTONEGOTIATE_ENABLE | - IEEE_STAT_AUTONEGOTIATE_RESTART); - - XEmacPs_PhyWrite(xemacpsp, phy_addr, IEEE_CONTROL_REG_OFFSET, control); - - /* Read PHY control and status registers is successful. */ - XEmacPs_PhyRead(xemacpsp, phy_addr, IEEE_CONTROL_REG_OFFSET, &control); - XEmacPs_PhyRead(xemacpsp, phy_addr, IEEE_STATUS_REG_OFFSET, &status); - - if ((control & IEEE_CTRL_AUTONEGOTIATE_ENABLE) && (status & - IEEE_STAT_AUTONEGOTIATE_CAPABLE)) { - - while ( !(status & IEEE_STAT_AUTONEGOTIATE_COMPLETE) ) { - XEmacPs_PhyRead(xemacpsp, phy_addr, IEEE_STATUS_REG_OFFSET, - &status); - } - - XEmacPs_PhyRead(xemacpsp, phy_addr, IEEE_PARTNER_ABILITIES_1_REG_OFFSET, - &partner_capabilities); - - if (status & IEEE_STAT_1GBPS_EXTENSIONS) { - XEmacPs_PhyRead(xemacpsp, phy_addr, IEEE_PARTNER_ABILITIES_3_REG_OFFSET, - &partner_capabilities_1000); - if (partner_capabilities_1000 & IEEE_AN3_ABILITY_MASK_1GBPS) - return 1000; - } - - if (partner_capabilities & IEEE_AN1_ABILITY_MASK_100MBPS) - return 100; - if (partner_capabilities & IEEE_AN1_ABILITY_MASK_10MBPS) - return 10; - - xil_printf("%s: unknown PHY link speed, setting TEMAC speed to be 10 Mbps\r\n", - __FUNCTION__); - return 10; - - } else { - - /* Update TEMAC speed accordingly */ - if (status & IEEE_STAT_1GBPS_EXTENSIONS) { - /* Get commanded link speed */ - phylinkspeed = control & IEEE_CTRL_1GBPS_LINKSPEED_MASK; - - switch (phylinkspeed) { - case (IEEE_CTRL_LINKSPEED_1000M): - return 1000; - case (IEEE_CTRL_LINKSPEED_100M): - return 100; - case (IEEE_CTRL_LINKSPEED_10M): - return 10; - default: - xil_printf("%s: unknown PHY link speed (%d), setting TEMAC speed to be 10 Mbps\r\n", - __FUNCTION__, phylinkspeed); - return 10; - } - - } else { - - return (control & IEEE_CTRL_LINKSPEED_MASK) ? 100 : 10; - - } - } -} - -#else /* Zynq */ -unsigned get_IEEE_phy_speed(XEmacPs *xemacpsp) -{ - u16 temp; - u16 control; - u16 status; - u16 partner_capabilities; -#if XPAR_GIGE_PCS_PMA_CORE_PRESENT == 1 - u32 phy_addr = XPAR_PCSPMA_SGMII_PHYADDR; -#else - u32 phy_addr = detect_phy(xemacpsp); -#endif - xil_printf("Start PHY autonegotiation \r\n"); - -#if XPAR_GIGE_PCS_PMA_CORE_PRESENT == 1 -#else - XEmacPs_PhyWrite(xemacpsp,phy_addr, IEEE_PAGE_ADDRESS_REGISTER, 2); - XEmacPs_PhyRead(xemacpsp, phy_addr, IEEE_CONTROL_REG_MAC, &control); - control |= IEEE_RGMII_TXRX_CLOCK_DELAYED_MASK; - XEmacPs_PhyWrite(xemacpsp, phy_addr, IEEE_CONTROL_REG_MAC, control); - - XEmacPs_PhyWrite(xemacpsp, phy_addr, IEEE_PAGE_ADDRESS_REGISTER, 0); - - XEmacPs_PhyRead(xemacpsp, phy_addr, IEEE_AUTONEGO_ADVERTISE_REG, &control); - control |= IEEE_ASYMMETRIC_PAUSE_MASK; - control |= IEEE_PAUSE_MASK; - control |= ADVERTISE_100; - control |= ADVERTISE_10; - XEmacPs_PhyWrite(xemacpsp, phy_addr, IEEE_AUTONEGO_ADVERTISE_REG, control); - - XEmacPs_PhyRead(xemacpsp, phy_addr, IEEE_1000_ADVERTISE_REG_OFFSET, - &control); - control |= ADVERTISE_1000; - XEmacPs_PhyWrite(xemacpsp, phy_addr, IEEE_1000_ADVERTISE_REG_OFFSET, - control); - - XEmacPs_PhyWrite(xemacpsp, phy_addr, IEEE_PAGE_ADDRESS_REGISTER, 0); - XEmacPs_PhyRead(xemacpsp, phy_addr, IEEE_COPPER_SPECIFIC_CONTROL_REG, - &control); - control |= (7 << 12); /* max number of gigabit attempts */ - control |= (1 << 11); /* enable downshift */ - XEmacPs_PhyWrite(xemacpsp, phy_addr, IEEE_COPPER_SPECIFIC_CONTROL_REG, - control); -#endif - XEmacPs_PhyRead(xemacpsp, phy_addr, IEEE_CONTROL_REG_OFFSET, &control); - control |= IEEE_CTRL_AUTONEGOTIATE_ENABLE; - control |= IEEE_STAT_AUTONEGOTIATE_RESTART; -#if XPAR_GIGE_PCS_PMA_CORE_PRESENT == 1 - control &= IEEE_CTRL_ISOLATE_DISABLE; -#endif - - XEmacPs_PhyWrite(xemacpsp, phy_addr, IEEE_CONTROL_REG_OFFSET, control); - - -#if XPAR_GIGE_PCS_PMA_CORE_PRESENT == 1 -#else - XEmacPs_PhyRead(xemacpsp, phy_addr, IEEE_CONTROL_REG_OFFSET, &control); - control |= IEEE_CTRL_RESET_MASK; - XEmacPs_PhyWrite(xemacpsp, phy_addr, IEEE_CONTROL_REG_OFFSET, control); - - while (1) { - XEmacPs_PhyRead(xemacpsp, phy_addr, IEEE_CONTROL_REG_OFFSET, &control); - if (control & IEEE_CTRL_RESET_MASK) - continue; - else - break; - } -#endif - xil_printf("Waiting for PHY to complete autonegotiation.\r\n"); - - XEmacPs_PhyRead(xemacpsp, phy_addr, IEEE_STATUS_REG_OFFSET, &status); - while ( !(status & IEEE_STAT_AUTONEGOTIATE_COMPLETE) ) { - sleep(1); -#if XPAR_GIGE_PCS_PMA_CORE_PRESENT == 1 -#else - XEmacPs_PhyRead(xemacpsp, phy_addr, IEEE_COPPER_SPECIFIC_STATUS_REG_2, - &temp); - if (temp & IEEE_AUTONEG_ERROR_MASK) { - xil_printf("Auto negotiation error \r\n"); - } -#endif - XEmacPs_PhyRead(xemacpsp, phy_addr, IEEE_STATUS_REG_OFFSET, - &status); - } - - xil_printf("autonegotiation complete \r\n"); - -#if XPAR_GIGE_PCS_PMA_CORE_PRESENT == 1 -#else - XEmacPs_PhyRead(xemacpsp, phy_addr, IEEE_SPECIFIC_STATUS_REG, &partner_capabilities); -#endif - -#if XPAR_GIGE_PCS_PMA_CORE_PRESENT == 1 - xil_printf("Waiting for Link to be up; Polling for SGMII core Reg \r\n"); - XEmacPs_PhyRead(xemacpsp, phy_addr, 5, &temp); - while(!(temp & 0x8000)) { - XEmacPs_PhyRead(xemacpsp, phy_addr, 5, &temp); - } - if((temp & 0x0C00) == 0x0800) { - XEmacPs_PhyRead(xemacpsp, phy_addr, 0, &temp); - return 1000; - } - else if((temp & 0x0C00) == 0x0400) { - XEmacPs_PhyRead(xemacpsp, phy_addr, 0, &temp); - return 100; - } - else if((temp & 0x0C00) == 0x0000) { - XEmacPs_PhyRead(xemacpsp, phy_addr, 0, &temp); - return 10; - } else { - xil_printf("get_IEEE_phy_speed(): Invalid speed bit value, Deafulting to Speed = 10 Mbps\r\n"); - XEmacPs_PhyRead(xemacpsp, phy_addr, 0, &temp); - XEmacPs_PhyWrite(xemacpsp, phy_addr, 0, 0x0100); - return 10; - } -#else - if ( ((partner_capabilities >> 14) & 3) == 2)/* 1000Mbps */ - return 1000; - else if ( ((partner_capabilities >> 14) & 3) == 1)/* 100Mbps */ - return 100; - else /* 10Mbps */ - return 10; -#endif -} -#endif - -unsigned configure_IEEE_phy_speed(XEmacPs *xemacpsp, unsigned speed) -{ - u16 control; - u32 phy_addr = detect_phy(xemacpsp); - - XEmacPs_PhyWrite(xemacpsp,phy_addr, IEEE_PAGE_ADDRESS_REGISTER, 2); - XEmacPs_PhyRead(xemacpsp, phy_addr, IEEE_CONTROL_REG_MAC, &control); - control |= IEEE_RGMII_TXRX_CLOCK_DELAYED_MASK; - XEmacPs_PhyWrite(xemacpsp, phy_addr, IEEE_CONTROL_REG_MAC, control); - - XEmacPs_PhyWrite(xemacpsp, phy_addr, IEEE_PAGE_ADDRESS_REGISTER, 0); - - XEmacPs_PhyRead(xemacpsp, phy_addr, IEEE_AUTONEGO_ADVERTISE_REG, &control); - control |= IEEE_ASYMMETRIC_PAUSE_MASK; - control |= IEEE_PAUSE_MASK; - XEmacPs_PhyWrite(xemacpsp, phy_addr, IEEE_AUTONEGO_ADVERTISE_REG, control); - - XEmacPs_PhyRead(xemacpsp, phy_addr, IEEE_CONTROL_REG_OFFSET, &control); - control &= ~IEEE_CTRL_LINKSPEED_1000M; - control &= ~IEEE_CTRL_LINKSPEED_100M; - control &= ~IEEE_CTRL_LINKSPEED_10M; - - if (speed == 1000) { - control |= IEEE_CTRL_LINKSPEED_1000M; - } - - else if (speed == 100) { - control |= IEEE_CTRL_LINKSPEED_100M; - /* Dont advertise PHY speed of 1000 Mbps */ - XEmacPs_PhyWrite(xemacpsp, phy_addr, IEEE_1000_ADVERTISE_REG_OFFSET, 0); - /* Dont advertise PHY speed of 10 Mbps */ - XEmacPs_PhyWrite(xemacpsp, phy_addr, IEEE_AUTONEGO_ADVERTISE_REG, - ADVERTISE_100); - } - - else if (speed == 10) { - control |= IEEE_CTRL_LINKSPEED_10M; - /* Dont advertise PHY speed of 1000 Mbps */ - XEmacPs_PhyWrite(xemacpsp, phy_addr, IEEE_1000_ADVERTISE_REG_OFFSET, - 0); - /* Dont advertise PHY speed of 100 Mbps */ - XEmacPs_PhyWrite(xemacpsp, phy_addr, IEEE_AUTONEGO_ADVERTISE_REG, - ADVERTISE_10); - } - - XEmacPs_PhyWrite(xemacpsp, phy_addr, IEEE_CONTROL_REG_OFFSET, - control | IEEE_CTRL_RESET_MASK); - { - volatile int wait; - for (wait=0; wait < 100000; wait++); - } - return 0; -} - -static void SetUpSLCRDivisors(int mac_baseaddr, int speed) -{ - volatile u32 slcrBaseAddress; -#ifndef PEEP - u32 SlcrDiv0; - u32 SlcrDiv1; - u32 SlcrTxClkCntrl; -#endif - - *(volatile unsigned int *)(SLCR_UNLOCK_ADDR) = SLCR_UNLOCK_KEY_VALUE; - - if ((unsigned long)mac_baseaddr == EMAC0_BASE_ADDRESS) { - slcrBaseAddress = SLCR_GEM0_CLK_CTRL_ADDR; - } else { - slcrBaseAddress = SLCR_GEM1_CLK_CTRL_ADDR; - } -#ifdef PEEP - if (speed == 1000) { - *(volatile unsigned int *)(slcrBaseAddress) = - SLCR_GEM_1G_CLK_CTRL_VALUE; - } else if (speed == 100) { - *(volatile unsigned int *)(slcrBaseAddress) = - SLCR_GEM_100M_CLK_CTRL_VALUE; - } else { - *(volatile unsigned int *)(slcrBaseAddress) = - SLCR_GEM_10M_CLK_CTRL_VALUE; - } -#else - if (speed == 1000) { - if ((unsigned long)mac_baseaddr == EMAC0_BASE_ADDRESS) { -#ifdef XPAR_PS7_ETHERNET_0_ENET_SLCR_1000MBPS_DIV0 - SlcrDiv0 = XPAR_PS7_ETHERNET_0_ENET_SLCR_1000MBPS_DIV0; - SlcrDiv1 = XPAR_PS7_ETHERNET_0_ENET_SLCR_1000MBPS_DIV1; -#endif - } else { -#ifdef XPAR_PS7_ETHERNET_1_ENET_SLCR_1000MBPS_DIV0 - SlcrDiv0 = XPAR_PS7_ETHERNET_1_ENET_SLCR_1000MBPS_DIV0; - SlcrDiv1 = XPAR_PS7_ETHERNET_1_ENET_SLCR_1000MBPS_DIV1; -#endif - } - } else if (speed == 100) { - if ((unsigned long)mac_baseaddr == EMAC0_BASE_ADDRESS) { -#ifdef XPAR_PS7_ETHERNET_0_ENET_SLCR_100MBPS_DIV0 - SlcrDiv0 = XPAR_PS7_ETHERNET_0_ENET_SLCR_100MBPS_DIV0; - SlcrDiv1 = XPAR_PS7_ETHERNET_0_ENET_SLCR_100MBPS_DIV1; -#endif - } else { -#ifdef XPAR_PS7_ETHERNET_1_ENET_SLCR_100MBPS_DIV0 - SlcrDiv0 = XPAR_PS7_ETHERNET_1_ENET_SLCR_100MBPS_DIV0; - SlcrDiv1 = XPAR_PS7_ETHERNET_1_ENET_SLCR_100MBPS_DIV1; -#endif - } - } else { - if ((unsigned long)mac_baseaddr == EMAC0_BASE_ADDRESS) { -#ifdef XPAR_PS7_ETHERNET_0_ENET_SLCR_10MBPS_DIV0 - SlcrDiv0 = XPAR_PS7_ETHERNET_0_ENET_SLCR_10MBPS_DIV0; - SlcrDiv1 = XPAR_PS7_ETHERNET_0_ENET_SLCR_10MBPS_DIV1; -#endif - } else { -#ifdef XPAR_PS7_ETHERNET_1_ENET_SLCR_10MBPS_DIV0 - SlcrDiv0 = XPAR_PS7_ETHERNET_1_ENET_SLCR_10MBPS_DIV0; - SlcrDiv1 = XPAR_PS7_ETHERNET_1_ENET_SLCR_10MBPS_DIV1; -#endif - } - } - SlcrTxClkCntrl = *(volatile unsigned int *)(slcrBaseAddress); - SlcrTxClkCntrl &= EMACPS_SLCR_DIV_MASK; - SlcrTxClkCntrl |= (SlcrDiv1 << 20); - SlcrTxClkCntrl |= (SlcrDiv0 << 8); - *(volatile unsigned int *)(slcrBaseAddress) = SlcrTxClkCntrl; -#endif - *(volatile unsigned int *)(SLCR_LOCK_ADDR) = SLCR_LOCK_KEY_VALUE; - return; -} - - -unsigned Phy_Setup (XEmacPs *xemacpsp) -{ - unsigned link_speed; - unsigned long conv_present = 0; - unsigned long convspeeddupsetting = 0; - unsigned long convphyaddr = 0; - -#ifdef XPAR_GMII2RGMIICON_0N_ETH0_ADDR - convphyaddr = XPAR_GMII2RGMIICON_0N_ETH0_ADDR; - conv_present = 1; -#else -#ifdef XPAR_GMII2RGMIICON_0N_ETH1_ADDR - convphyaddr = XPAR_GMII2RGMIICON_0N_ETH1_ADDR; - conv_present = 1; -#endif -#endif - -#ifdef CONFIG_LINKSPEED_AUTODETECT - link_speed = get_IEEE_phy_speed(xemacpsp); - if (link_speed == 1000) { - SetUpSLCRDivisors(xemacpsp->Config.BaseAddress,1000); - convspeeddupsetting = XEMACPS_GMII2RGMII_SPEED1000_FD; - } else if (link_speed == 100) { - SetUpSLCRDivisors(xemacpsp->Config.BaseAddress,100); - convspeeddupsetting = XEMACPS_GMII2RGMII_SPEED100_FD; - } else { - SetUpSLCRDivisors(xemacpsp->Config.BaseAddress,10); - convspeeddupsetting = XEMACPS_GMII2RGMII_SPEED10_FD; - } -#elif defined(CONFIG_LINKSPEED1000) - SetUpSLCRDivisors(xemacpsp->Config.BaseAddress,1000); - link_speed = 1000; - configure_IEEE_phy_speed(xemacpsp, link_speed); - convspeeddupsetting = XEMACPS_GMII2RGMII_SPEED1000_FD; - sleep(1); -#elif defined(CONFIG_LINKSPEED100) - SetUpSLCRDivisors(xemacpsp->Config.BaseAddress,100); - link_speed = 100; - configure_IEEE_phy_speed(xemacpsp, link_speed); - convspeeddupsetting = XEMACPS_GMII2RGMII_SPEED100_FD; - sleep(1); -#elif defined(CONFIG_LINKSPEED10) - SetUpSLCRDivisors(xemacpsp->Config.BaseAddress,10); - link_speed = 10; - configure_IEEE_phy_speed(xemacpsp, link_speed); - convspeeddupsetting = XEMACPS_GMII2RGMII_SPEED10_FD; - sleep(1); -#endif - if (conv_present) { - XEmacPs_PhyWrite(xemacpsp, convphyaddr, - XEMACPS_GMII2RGMII_REG_NUM, convspeeddupsetting); - } - - xil_printf("link speed: %d\r\n", link_speed); - return link_speed; -} - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/netif/xpqueue.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/netif/xpqueue.c deleted file mode 100644 index 6802c1310..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/netif/xpqueue.c +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2007-13 Xilinx, Inc. All rights reserved. - * - * Xilinx, Inc. - * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A - * COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS - * ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR - * STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION - * IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE - * FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION. - * XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO - * THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO - * ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE - * FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#include - -#include "netif/xpqueue.h" - -#define NUM_QUEUES 2 - -pq_queue_t pq_queue[NUM_QUEUES]; - -pq_queue_t * -pq_create_queue() -{ - static int i; - pq_queue_t *q = NULL; - - if (i >= NUM_QUEUES) { - //xil_printf("ERR: Max Queues allocated\n\r"); - return q; - } - - q = &pq_queue[i++]; - - if (!q) - return q; - - q->head = q->tail = q->len = 0; - - return q; -} - -int -pq_enqueue(pq_queue_t *q, void *p) -{ - if (q->len == PQ_QUEUE_SIZE) - return -1; - - q->data[q->head] = p; - q->head = (q->head + 1)%PQ_QUEUE_SIZE; - q->len++; - - return 0; -} - -void* -pq_dequeue(pq_queue_t *q) -{ - int ptail; - - if (q->len == 0) - return NULL; - - ptail = q->tail; - q->tail = (q->tail + 1)%PQ_QUEUE_SIZE; - q->len--; - - return q->data[ptail]; -} - -int -pq_qlength(pq_queue_t *q) -{ - return q->len; -} diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/netif/xtopology_g.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/netif/xtopology_g.c deleted file mode 100644 index 128583e59..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/netif/xtopology_g.c +++ /dev/null @@ -1,15 +0,0 @@ -#include "netif/xtopology.h" -#include "xparameters.h" - -struct xtopology_t xtopology[] = { - { - 0xE000B000, - xemac_type_emacps, - 0x0, - 0x0, - 0xF8F00100, - 0x36, - }, -}; - -int xtopology_n_emacs = 1; diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/sys_arch.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/sys_arch.c deleted file mode 100644 index bb3662e0d..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_port/sys_arch.c +++ /dev/null @@ -1,600 +0,0 @@ -/* - * Copyright (c) 2001-2003 Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. - * - * This file is part of the lwIP TCP/IP stack. - * - * Author: Adam Dunkels - * - */ - -//***************************************************************************** -// -// Include OS functionality. -// -//***************************************************************************** - -/* ------------------------ System architecture includes ----------------------------- */ -#include "arch/sys_arch.h" - -/* ------------------------ lwIP includes --------------------------------- */ -#include "lwip/opt.h" - -#include "lwip/debug.h" -#include "lwip/def.h" -#include "lwip/sys.h" -#include "lwip/mem.h" -#include "lwip/stats.h" - -/* Very crude mechanism used to determine if the critical section handling -functions are being called from an interrupt context or not. This relies on -the interrupt handler setting this variable manually. */ -BaseType_t xInsideISR = pdFALSE; - -/*---------------------------------------------------------------------------* - * Routine: sys_mbox_new - *---------------------------------------------------------------------------* - * Description: - * Creates a new mailbox - * Inputs: - * int size -- Size of elements in the mailbox - * Outputs: - * sys_mbox_t -- Handle to new mailbox - *---------------------------------------------------------------------------*/ -err_t sys_mbox_new( sys_mbox_t *pxMailBox, int iSize ) -{ -err_t xReturn = ERR_MEM; - - *pxMailBox = xQueueCreate( iSize, sizeof( void * ) ); - - if( *pxMailBox != NULL ) - { - xReturn = ERR_OK; - SYS_STATS_INC_USED( mbox ); - } - - return xReturn; -} - - -/*---------------------------------------------------------------------------* - * Routine: sys_mbox_free - *---------------------------------------------------------------------------* - * Description: - * Deallocates a mailbox. If there are messages still present in the - * mailbox when the mailbox is deallocated, it is an indication of a - * programming error in lwIP and the developer should be notified. - * Inputs: - * sys_mbox_t mbox -- Handle of mailbox - * Outputs: - * sys_mbox_t -- Handle to new mailbox - *---------------------------------------------------------------------------*/ -void sys_mbox_free( sys_mbox_t *pxMailBox ) -{ -unsigned long ulMessagesWaiting; - - ulMessagesWaiting = uxQueueMessagesWaiting( *pxMailBox ); - configASSERT( ( ulMessagesWaiting == 0 ) ); - - #if SYS_STATS - { - if( ulMessagesWaiting != 0UL ) - { - SYS_STATS_INC( mbox.err ); - } - - SYS_STATS_DEC( mbox.used ); - } - #endif /* SYS_STATS */ - - vQueueDelete( *pxMailBox ); -} - -/*---------------------------------------------------------------------------* - * Routine: sys_mbox_post - *---------------------------------------------------------------------------* - * Description: - * Post the "msg" to the mailbox. - * Inputs: - * sys_mbox_t mbox -- Handle of mailbox - * void *data -- Pointer to data to post - *---------------------------------------------------------------------------*/ -void sys_mbox_post( sys_mbox_t *pxMailBox, void *pxMessageToPost ) -{ - while( xQueueSendToBack( *pxMailBox, &pxMessageToPost, portMAX_DELAY ) != pdTRUE ); -} - -/*---------------------------------------------------------------------------* - * Routine: sys_mbox_trypost - *---------------------------------------------------------------------------* - * Description: - * Try to post the "msg" to the mailbox. Returns immediately with - * error if cannot. - * Inputs: - * sys_mbox_t mbox -- Handle of mailbox - * void *msg -- Pointer to data to post - * Outputs: - * err_t -- ERR_OK if message posted, else ERR_MEM - * if not. - *---------------------------------------------------------------------------*/ -err_t sys_mbox_trypost( sys_mbox_t *pxMailBox, void *pxMessageToPost ) -{ -err_t xReturn; -portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; - - if( xInsideISR != pdFALSE ) - { - xReturn = xQueueSendFromISR( *pxMailBox, &pxMessageToPost, &xHigherPriorityTaskWoken ); - portYIELD_FROM_ISR( xHigherPriorityTaskWoken ); - } - else - { - xReturn = xQueueSend( *pxMailBox, &pxMessageToPost, ( TickType_t ) 0 ); - } - - if( xReturn == pdPASS ) - { - xReturn = ERR_OK; - } - else - { - /* The queue was already full. */ - xReturn = ERR_MEM; - SYS_STATS_INC( mbox.err ); - } - - return xReturn; -} - -/*---------------------------------------------------------------------------* - * Routine: sys_arch_mbox_fetch - *---------------------------------------------------------------------------* - * Description: - * Blocks the thread until a message arrives in the mailbox, but does - * not block the thread longer than "timeout" milliseconds (similar to - * the sys_arch_sem_wait() function). The "msg" argument is a result - * parameter that is set by the function (i.e., by doing "*msg = - * ptr"). The "msg" parameter maybe NULL to indicate that the message - * should be dropped. - * - * The return values are the same as for the sys_arch_sem_wait() function: - * Number of milliseconds spent waiting or SYS_ARCH_TIMEOUT if there was a - * timeout. - * - * Note that a function with a similar name, sys_mbox_fetch(), is - * implemented by lwIP. - * Inputs: - * sys_mbox_t mbox -- Handle of mailbox - * void **msg -- Pointer to pointer to msg received - * u32_t timeout -- Number of milliseconds until timeout - * Outputs: - * u32_t -- SYS_ARCH_TIMEOUT if timeout, else number - * of milliseconds until received. - *---------------------------------------------------------------------------*/ -u32_t sys_arch_mbox_fetch( sys_mbox_t *pxMailBox, void **ppvBuffer, u32_t ulTimeOut ) -{ -void *pvDummy; -TickType_t xStartTime, xEndTime, xElapsed; -unsigned long ulReturn; - - xStartTime = xTaskGetTickCount(); - - if( NULL == ppvBuffer ) - { - ppvBuffer = &pvDummy; - } - - if( ulTimeOut != 0UL ) - { - configASSERT( xInsideISR == ( portBASE_TYPE ) 0 ); - - if( pdTRUE == xQueueReceive( *pxMailBox, &( *ppvBuffer ), ulTimeOut/ portTICK_PERIOD_MS ) ) - { - xEndTime = xTaskGetTickCount(); - xElapsed = ( xEndTime - xStartTime ) * portTICK_PERIOD_MS; - - ulReturn = xElapsed; - } - else - { - /* Timed out. */ - *ppvBuffer = NULL; - ulReturn = SYS_ARCH_TIMEOUT; - } - } - else - { - while( pdTRUE != xQueueReceive( *pxMailBox, &( *ppvBuffer ), portMAX_DELAY ) ); - xEndTime = xTaskGetTickCount(); - xElapsed = ( xEndTime - xStartTime ) * portTICK_PERIOD_MS; - - if( xElapsed == 0UL ) - { - xElapsed = 1UL; - } - - ulReturn = xElapsed; - } - - return ulReturn; -} - -/*---------------------------------------------------------------------------* - * Routine: sys_arch_mbox_tryfetch - *---------------------------------------------------------------------------* - * Description: - * Similar to sys_arch_mbox_fetch, but if message is not ready - * immediately, we'll return with SYS_MBOX_EMPTY. On success, 0 is - * returned. - * Inputs: - * sys_mbox_t mbox -- Handle of mailbox - * void **msg -- Pointer to pointer to msg received - * Outputs: - * u32_t -- SYS_MBOX_EMPTY if no messages. Otherwise, - * return ERR_OK. - *---------------------------------------------------------------------------*/ -u32_t sys_arch_mbox_tryfetch( sys_mbox_t *pxMailBox, void **ppvBuffer ) -{ -void *pvDummy; -unsigned long ulReturn; -long lResult; -portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; - - if( ppvBuffer== NULL ) - { - ppvBuffer = &pvDummy; - } - - if( xInsideISR != pdFALSE ) - { - lResult = xQueueReceiveFromISR( *pxMailBox, &( *ppvBuffer ), &xHigherPriorityTaskWoken ); - portYIELD_FROM_ISR( xHigherPriorityTaskWoken ); - } - else - { - lResult = xQueueReceive( *pxMailBox, &( *ppvBuffer ), 0UL ); - } - - if( lResult == pdPASS ) - { - ulReturn = ERR_OK; - } - else - { - ulReturn = SYS_MBOX_EMPTY; - } - - return ulReturn; -} - -/*---------------------------------------------------------------------------* - * Routine: sys_sem_new - *---------------------------------------------------------------------------* - * Description: - * Creates and returns a new semaphore. The "ucCount" argument specifies - * the initial state of the semaphore. - * NOTE: Currently this routine only creates counts of 1 or 0 - * Inputs: - * sys_mbox_t mbox -- Handle of mailbox - * u8_t ucCount -- Initial ucCount of semaphore (1 or 0) - * Outputs: - * sys_sem_t -- Created semaphore or 0 if could not create. - *---------------------------------------------------------------------------*/ -err_t sys_sem_new( sys_sem_t *pxSemaphore, u8_t ucCount ) -{ -err_t xReturn = ERR_MEM; - - //vSemaphoreCreateBinary( ( *pxSemaphore ) ); - *pxSemaphore = xSemaphoreCreateCounting( 0xffff, ( unsigned long ) ucCount ); - - if( *pxSemaphore != NULL ) - { - if( ucCount == 0U ) - { -// xSemaphoreTake( *pxSemaphore, 1UL ); - } - - xReturn = ERR_OK; - SYS_STATS_INC_USED( sem ); - } - else - { - SYS_STATS_INC( sem.err ); - } - - return xReturn; -} - -/*---------------------------------------------------------------------------* - * Routine: sys_arch_sem_wait - *---------------------------------------------------------------------------* - * Description: - * Blocks the thread while waiting for the semaphore to be - * signaled. If the "timeout" argument is non-zero, the thread should - * only be blocked for the specified time (measured in - * milliseconds). - * - * If the timeout argument is non-zero, the return value is the number of - * milliseconds spent waiting for the semaphore to be signaled. If the - * semaphore wasn't signaled within the specified time, the return value is - * SYS_ARCH_TIMEOUT. If the thread didn't have to wait for the semaphore - * (i.e., it was already signaled), the function may return zero. - * - * Notice that lwIP implements a function with a similar name, - * sys_sem_wait(), that uses the sys_arch_sem_wait() function. - * Inputs: - * sys_sem_t sem -- Semaphore to wait on - * u32_t timeout -- Number of milliseconds until timeout - * Outputs: - * u32_t -- Time elapsed or SYS_ARCH_TIMEOUT. - *---------------------------------------------------------------------------*/ -u32_t sys_arch_sem_wait( sys_sem_t *pxSemaphore, u32_t ulTimeout ) -{ -TickType_t xStartTime, xEndTime, xElapsed; -unsigned long ulReturn; - - xStartTime = xTaskGetTickCount(); - - if( ulTimeout != 0UL ) - { - if( xSemaphoreTake( *pxSemaphore, ulTimeout / portTICK_PERIOD_MS ) == pdTRUE ) - { - xEndTime = xTaskGetTickCount(); - xElapsed = (xEndTime - xStartTime) * portTICK_PERIOD_MS; - ulReturn = xElapsed; - } - else - { - ulReturn = SYS_ARCH_TIMEOUT; - } - } - else - { - while( xSemaphoreTake( *pxSemaphore, portMAX_DELAY ) != pdTRUE ); - xEndTime = xTaskGetTickCount(); - xElapsed = ( xEndTime - xStartTime ) * portTICK_PERIOD_MS; - - if( xElapsed == 0UL ) - { - xElapsed = 1UL; - } - - ulReturn = xElapsed; - } - - return ulReturn; -} - -/** Create a new mutex - * @param mutex pointer to the mutex to create - * @return a new mutex */ -err_t sys_mutex_new( sys_mutex_t *pxMutex ) -{ -err_t xReturn = ERR_MEM; - - *pxMutex = xSemaphoreCreateMutex(); - - if( *pxMutex != NULL ) - { - xReturn = ERR_OK; - SYS_STATS_INC_USED( mutex ); - } - else - { - SYS_STATS_INC( mutex.err ); - } - - return xReturn; -} - -/** Lock a mutex - * @param mutex the mutex to lock */ -void sys_mutex_lock( sys_mutex_t *pxMutex ) -{ -BaseType_t xGotSemaphore; -BaseType_t xHigherPriorityTaskWoken = pdFALSE; - - if( xInsideISR == 0 ) - { - while( xSemaphoreTake( *pxMutex, portMAX_DELAY ) != pdPASS ); - } - else - { - xGotSemaphore = xSemaphoreTakeFromISR( *pxMutex, &xHigherPriorityTaskWoken ); - configASSERT( xGotSemaphore ); - portYIELD_FROM_ISR( xHigherPriorityTaskWoken ); - } -} - -/** Unlock a mutex - * @param mutex the mutex to unlock */ -void sys_mutex_unlock(sys_mutex_t *pxMutex ) -{ - xSemaphoreGive( *pxMutex ); -} - - -/** Delete a semaphore - * @param mutex the mutex to delete */ -void sys_mutex_free( sys_mutex_t *pxMutex ) -{ - SYS_STATS_DEC( mutex.used ); - vQueueDelete( *pxMutex ); -} - - -/*---------------------------------------------------------------------------* - * Routine: sys_sem_signal - *---------------------------------------------------------------------------* - * Description: - * Signals (releases) a semaphore - * Inputs: - * sys_sem_t sem -- Semaphore to signal - *---------------------------------------------------------------------------*/ -void sys_sem_signal( sys_sem_t *pxSemaphore ) -{ -portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; - - if( xInsideISR != pdFALSE ) - { - xSemaphoreGiveFromISR( *pxSemaphore, &xHigherPriorityTaskWoken ); - portYIELD_FROM_ISR( xHigherPriorityTaskWoken ); - } - else - { - xSemaphoreGive( *pxSemaphore ); - } -} - -/*---------------------------------------------------------------------------* - * Routine: sys_sem_free - *---------------------------------------------------------------------------* - * Description: - * Deallocates a semaphore - * Inputs: - * sys_sem_t sem -- Semaphore to free - *---------------------------------------------------------------------------*/ -void sys_sem_free( sys_sem_t *pxSemaphore ) -{ - SYS_STATS_DEC(sem.used); - vQueueDelete( *pxSemaphore ); -} - -/*---------------------------------------------------------------------------* - * Routine: sys_init - *---------------------------------------------------------------------------* - * Description: - * Initialize sys arch - *---------------------------------------------------------------------------*/ -void sys_init(void) -{ -} - -u32_t sys_now(void) -{ - return xTaskGetTickCount(); -} - -/*---------------------------------------------------------------------------* - * Routine: sys_thread_new - *---------------------------------------------------------------------------* - * Description: - * Starts a new thread with priority "prio" that will begin its - * execution in the function "thread()". The "arg" argument will be - * passed as an argument to the thread() function. The id of the new - * thread is returned. Both the id and the priority are system - * dependent. - * Inputs: - * char *name -- Name of thread - * void (* thread)(void *arg) -- Pointer to function to run. - * void *arg -- Argument passed into function - * int stacksize -- Required stack amount in bytes - * int prio -- Thread priority - * Outputs: - * sys_thread_t -- Pointer to per-thread timeouts. - *---------------------------------------------------------------------------*/ -sys_thread_t sys_thread_new( const char *pcName, void( *pxThread )( void *pvParameters ), void *pvArg, int iStackSize, int iPriority ) -{ -TaskHandle_t xCreatedTask; -portBASE_TYPE xResult; -sys_thread_t xReturn; - - xResult = xTaskCreate( pxThread, pcName, iStackSize, pvArg, iPriority, &xCreatedTask ); - - if( xResult == pdPASS ) - { - xReturn = xCreatedTask; - } - else - { - xReturn = NULL; - } - - return xReturn; -} - -/*---------------------------------------------------------------------------* - * Routine: sys_arch_protect - *---------------------------------------------------------------------------* - * Description: - * This optional function does a "fast" critical region protection and - * returns the previous protection level. This function is only called - * during very short critical regions. An embedded system which supports - * ISR-based drivers might want to implement this function by disabling - * interrupts. Task-based systems might want to implement this by using - * a mutex or disabling tasking. This function should support recursive - * calls from the same task or interrupt. In other words, - * sys_arch_protect() could be called while already protected. In - * that case the return value indicates that it is already protected. - * - * sys_arch_protect() is only required if your port is supporting an - * operating system. - * Outputs: - * sys_prot_t -- Previous protection level (not used here) - *---------------------------------------------------------------------------*/ -sys_prot_t sys_arch_protect( void ) -{ - if( xInsideISR == pdFALSE ) - { - taskENTER_CRITICAL(); - } - return ( sys_prot_t ) 1; -} - -/*---------------------------------------------------------------------------* - * Routine: sys_arch_unprotect - *---------------------------------------------------------------------------* - * Description: - * This optional function does a "fast" set of critical region - * protection to the value specified by pval. See the documentation for - * sys_arch_protect() for more information. This function is only - * required if your port is supporting an operating system. - * Inputs: - * sys_prot_t -- Previous protection level (not used here) - *---------------------------------------------------------------------------*/ -void sys_arch_unprotect( sys_prot_t xValue ) -{ - (void) xValue; - if( xInsideISR == pdFALSE ) - { - taskEXIT_CRITICAL(); - } -} - -/* - * Prints an assertion messages and aborts execution. - */ -void sys_assert( const char *pcMessage ) -{ - (void) pcMessage; - - for (;;) - { - } -} -/*-------------------------------------------------------------------------* - * End of File: sys_arch.c - *-------------------------------------------------------------------------*/ - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/main_lwIP.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/main_lwIP.c deleted file mode 100644 index d749abda5..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/main_lwIP.c +++ /dev/null @@ -1,174 +0,0 @@ -/* - FreeRTOS V8.0.1 - Copyright (C) 2014 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - - FreeRTOS 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. Full license text is available from the following - link: http://www.freertos.org/a00114.html - - 1 tab == 4 spaces! - - *************************************************************************** - * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * - * * - * http://www.FreeRTOS.org/FAQHelp.html * - * * - *************************************************************************** - - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - -/****************************************************************************** - * NOTE 1: This project provides three demo applications. A simple blinky - * style project, a more comprehensive test and demo application, and an - * lwIP example. The mainSELECTED_APPLICATION setting in main.c is used to - * select between the three. See the notes on using mainSELECTED_APPLICATION - * in main.c. This file implements the simply blinky style version. - * - * NOTE 2: This file only contains the source code that is specific to the - * basic demo. Generic functions, such FreeRTOS hook functions, and functions - * required to configure the hardware are defined in main.c. - ****************************************************************************** - * - * The lwIP example can be configured to use either a static or dynamic IP - * address: - * + To use a dynamically allocated IP address set LWIP_DHCP to 1 in - * lwipopts.h and connect the target to a network that includes a DHCP - * server. The obtained IP address is printed to the UART console. - * + To use a static IP address set LWIP_DHCP to 0 in lwipopts.h and set - * the static IP address using the configIP_ADDR0 to configIP_ADDR3 - * constants at the bottom of FreeRTOSConfig.h. Constants used to define - * a netmask are also located at the bottom of FreeRTOSConfig.h. - * - * When connected correctly the demo uses the lwIP sockets API to create - * a FreeRTOS+CLI command console, and the lwIP raw API to create a create a - * basic HTTP web server with server side includes that generate dynamic run - * time web pages. See http://www.freertos.org/RTOS-Xilinx-Zynq.html for more - * information. - */ - -/* Kernel includes. */ -#include "FreeRTOS.h" -#include "task.h" -#include "timers.h" - -/* Standard demo includes. */ -#include "partest.h" - -/* lwIP includes. */ -#include "lwip/tcpip.h" - -/* The rate at which data is sent to the queue. The 200ms value is converted -to ticks using the portTICK_PERIOD_MS constant. */ -#define mainTIMER_PERIOD_MS ( 200 / portTICK_PERIOD_MS ) - -/* The LED toggled by the Rx task. */ -#define mainTIMER_LED ( 0 ) - -/* A block time of zero just means "don't block". */ -#define mainDONT_BLOCK ( 0 ) - -/*-----------------------------------------------------------*/ - -/* - * The callback for the timer that just toggles an LED to show the system is - * running. - */ -static void prvLEDToggleTimer( TimerHandle_t pxTimer ); - -/* - * Defined in lwIPApps.c. - */ -extern void lwIPAppsInit( void *pvArguments ); - -/*-----------------------------------------------------------*/ - -void main_lwIP( void ) -{ -TimerHandle_t xTimer; - - /* Init lwIP and start lwIP tasks. */ - tcpip_init( lwIPAppsInit, NULL ); - - /* A timer is used to toggle an LED just to show the application is - executing. */ - xTimer = xTimerCreate( "LED", /* Text name to make debugging easier. */ - mainTIMER_PERIOD_MS, /* The timer's period. */ - pdTRUE, /* This is an auto reload timer. */ - NULL, /* ID is not used. */ - prvLEDToggleTimer ); /* The callback function. */ - - /* Start the timer. */ - configASSERT( xTimer ); - xTimerStart( xTimer, mainDONT_BLOCK ); - - /* Start the tasks and timer running. */ - vTaskStartScheduler(); - - /* If all is well, the scheduler will now be running, and the following - line will never be reached. If the following line does execute, then - there was either insufficient FreeRTOS heap memory available for the idle - and/or timer tasks to be created, or vTaskStartScheduler() was called from - User mode. See the memory management section on the FreeRTOS web site for - more details on the FreeRTOS heap http://www.freertos.org/a00111.html. The - mode from which main() is called is set in the C start up code and must be - a privileged mode (not user mode). */ - for( ;; ); -} -/*-----------------------------------------------------------*/ - -static void prvLEDToggleTimer( TimerHandle_t pxTimer ) -{ - /* Prevent compiler warnings. */ - ( void ) pxTimer; - - /* Just toggle an LED to show the application is running. */ - vParTestToggleLED( mainTIMER_LED ); -} - -/*-----------------------------------------------------------*/ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwipopts.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwipopts.h deleted file mode 100644 index 30025dc2d..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwipopts.h +++ /dev/null @@ -1,312 +0,0 @@ -/* - * Copyright (c) 2001-2003 Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. - * - * This file is part of the lwIP TCP/IP stack. - * - * Author: Adam Dunkels - * - */ -#ifndef __LWIPOPTS_H__ -#define __LWIPOPTS_H__ - -#include - -/* Functions used to obtain and release exclusive access to the Tx buffer. The -Get function will block if the Tx buffer is not available - use with care! */ -signed char *pcLwipBlockingGetTxBuffer( void ); -void vLwipAppsReleaseTxBuffer( void ); - -#define CONFIG_LINKSPEED_AUTODETECT 1 -#define OS_IS_FREERTOS - -/* SSI options. */ -#define TCPIP_THREAD_NAME "tcpip" -#define LWIP_HTTPD_MAX_TAG_NAME_LEN 20 -#define LWIP_HTTPD_MAX_TAG_INSERT_LEN 1024 -#define TCPIP_THREAD_PRIO configLWIP_TASK_PRIORITY -#define TCPIP_THREAD_STACKSIZE configMINIMAL_STACK_SIZE * 3 - -#define DEFAULT_TCP_RECVMBOX_SIZE 5 -#define DEFAULT_ACCEPTMBOX_SIZE 5 -#define TCPIP_MBOX_SIZE 10 - -#define NO_SYS 0 -#define LWIP_SOCKET (NO_SYS==0) -#define LWIP_NETCONN 1 - -#define LWIP_SNMP 0 -#define LWIP_IGMP 0 -#define LWIP_ICMP 1 - -/* DNS is not going to be used as this is a simple local example. */ -#define LWIP_DNS 0 - -#define LWIP_HAVE_LOOPIF 0 -#define TCP_LISTEN_BACKLOG 0 -#define LWIP_SO_RCVTIMEO 1 -#define LWIP_SO_RCVBUF 1 - -//#define LWIP_DEBUG -#ifdef LWIP_DEBUG - -#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_ALL // LWIP_DBG_LEVEL_SERIOUS -#define PPP_DEBUG LWIP_DBG_OFF -#define MEM_DEBUG LWIP_DBG_OFF -#define MEMP_DEBUG LWIP_DBG_OFF -#define PBUF_DEBUG LWIP_DBG_OFF -#define API_LIB_DEBUG LWIP_DBG_OFF -#define API_MSG_DEBUG LWIP_DBG_OFF -#define TCPIP_DEBUG LWIP_DBG_OFF -#define NETIF_DEBUG LWIP_DBG_OFF -#define SOCKETS_DEBUG LWIP_DBG_OFF -#define DNS_DEBUG LWIP_DBG_OFF -#define AUTOIP_DEBUG LWIP_DBG_OFF -#define DHCP_DEBUG LWIP_DBG_ON -#define IP_DEBUG LWIP_DBG_OFF -#define IP_REASS_DEBUG LWIP_DBG_OFF -#define ICMP_DEBUG LWIP_DBG_OFF -#define IGMP_DEBUG LWIP_DBG_OFF -#define UDP_DEBUG LWIP_DBG_OFF -#define TCP_DEBUG LWIP_DBG_OFF -#define TCP_INPUT_DEBUG LWIP_DBG_OFF -#define TCP_OUTPUT_DEBUG LWIP_DBG_OFF -#define TCP_RTO_DEBUG LWIP_DBG_OFF -#define TCP_CWND_DEBUG LWIP_DBG_OFF -#define TCP_WND_DEBUG LWIP_DBG_OFF -#define TCP_FR_DEBUG LWIP_DBG_OFF -#define TCP_QLEN_DEBUG LWIP_DBG_OFF -#define TCP_RST_DEBUG LWIP_DBG_OFF -#endif - -#define LWIP_DBG_TYPES_ON (LWIP_DBG_ON|LWIP_DBG_TRACE|LWIP_DBG_STATE|LWIP_DBG_FRESH|LWIP_DBG_HALT) - - - -/* ---------- Memory options ---------- */ -/* MEM_ALIGNMENT: should be set to the alignment of the CPU for which - lwIP is compiled. 4 byte alignment -> define MEM_ALIGNMENT to 4, 2 - byte alignment -> define MEM_ALIGNMENT to 2. */ -/* MSVC port: intel processors don't need 4-byte alignment, - but are faster that way! */ -#define MEM_ALIGNMENT 64 - -/* MEM_SIZE: the size of the heap memory. If the application will send -a lot of data that needs to be copied, this should be set high. */ -#define MEM_SIZE 0x20000 - -/* MEMP_NUM_PBUF: the number of memp struct pbufs. If the application - sends a lot of data out of ROM (or other static memory), this - should be set high. */ -#define MEMP_NUM_PBUF 16 - -/* MEMP_NUM_RAW_PCB: the number of UDP protocol control blocks. One - per active RAW "connection". */ -#define LWIP_RAW 0 -#define MEMP_NUM_RAW_PCB 0 - -/* MEMP_NUM_UDP_PCB: the number of UDP protocol control blocks. One - per active UDP "connection". */ -#define MEMP_NUM_UDP_PCB 4 - -/* MEMP_NUM_TCP_PCB: the number of simulatenously active TCP - connections. */ -#define MEMP_NUM_TCP_PCB 32 - -/* MEMP_NUM_TCP_PCB_LISTEN: the number of listening TCP - connections. */ -#define MEMP_NUM_TCP_PCB_LISTEN 8 - -/* MEMP_NUM_TCP_SEG: the number of simultaneously queued TCP - segments. */ -#define MEMP_NUM_TCP_SEG 256 - -/* MEMP_NUM_SYS_TIMEOUT: the number of simulateously active - timeouts. */ -#define MEMP_NUM_SYS_TIMEOUT 8 - -/* The following four are used only with the sequential API and can be - set to 0 if the application only will use the raw API. */ -/* MEMP_NUM_NETBUF: the number of struct netbufs. */ -#define MEMP_NUM_NETBUF 0 - -/* MEMP_NUM_NETCONN: the number of struct netconns. */ -#define MEMP_NUM_NETCONN 10 - -/* MEMP_NUM_TCPIP_MSG_*: the number of struct tcpip_msg, which is used - for sequential API communication and incoming packets. Used in - src/api/tcpip.c. */ -#define MEMP_NUM_TCPIP_MSG_API 4 -#define MEMP_NUM_TCPIP_MSG_INPKT 4 - -#define MEMP_NUM_ARP_QUEUE 5 - -/* ---------- Pbuf options ---------- */ -/* PBUF_POOL_SIZE: the number of buffers in the pbuf pool. */ -#define PBUF_POOL_SIZE 256 - -/* PBUF_POOL_BUFSIZE: the size of each pbuf in the pbuf pool. */ -#define PBUF_POOL_BUFSIZE 1700 - -/* PBUF_LINK_HLEN: the number of bytes that should be allocated for a - link level header. */ -#define PBUF_LINK_HLEN 16 - -/** SYS_LIGHTWEIGHT_PROT - * define SYS_LIGHTWEIGHT_PROT in lwipopts.h if you want inter-task protection - * for certain critical regions during buffer allocation, deallocation and memory - * allocation and deallocation. - */ -#define SYS_LIGHTWEIGHT_PROT (NO_SYS==0) - - -/* ---------- TCP options ---------- */ -#define LWIP_TCP 1 -#define TCP_TTL 255 - -/* Controls if TCP should queue segments that arrive out of - order. Define to 0 if your device is low on memory. */ -#define TCP_QUEUE_OOSEQ 1 - -/* TCP Maximum segment size. */ -#define TCP_MSS 1460 - -/* TCP sender buffer space (bytes). */ -#define TCP_SND_BUF 8129 - -/* TCP sender buffer space (pbufs). This must be at least = 2 * - TCP_SND_BUF/TCP_MSS for things to work. */ -#define TCP_SND_QUEUELEN (16 * TCP_SND_BUF/TCP_MSS) - -/* TCP writable space (bytes). This must be less than or equal - to TCP_SND_BUF. It is the amount of space which must be - available in the tcp snd_buf for select to return writable */ -#define TCP_SNDLOWAT (TCP_SND_BUF/2) - -/* TCP receive window. */ -#define TCP_WND ( 2048 ) - -/* Maximum number of retransmissions of data segments. */ -#define TCP_MAXRTX 12 - -/* Maximum number of retransmissions of SYN segments. */ -#define TCP_SYNMAXRTX 4 - - -/* ---------- ARP options ---------- */ -#define LWIP_ARP 1 -#define ARP_TABLE_SIZE 10 -#define ARP_QUEUEING 1 - -#define ICMP_TTL 255 - -#define IP_OPTIONS 0 - -/* ---------- IP options ---------- */ -/* Define IP_FORWARD to 1 if you wish to have the ability to forward - IP packets across network interfaces. If you are going to run lwIP - on a device with only one network interface, define this to 0. */ -#define IP_FORWARD 0 - -/* IP reassembly and segmentation.These are orthogonal even - * if they both deal with IP fragments */ -#define IP_REASSEMBLY 0 -#define IP_REASS_MAX_PBUFS 10 -#define MEMP_NUM_REASSDATA 10 -#define IP_FRAG 0 - - -/* ---------- ICMP options ---------- */ -#define ICMP_TTL 255 - - -/* ---------- DHCP options ---------- */ -/* Define LWIP_DHCP to 1 if you want DHCP configuration of - interfaces. */ -#define LWIP_DHCP 0 - -/* 1 if you want to do an ARP check on the offered address - (recommended). */ -#define DHCP_DOES_ARP_CHECK (LWIP_DHCP) - - -/* ---------- AUTOIP options ------- */ -#define LWIP_AUTOIP 0 -#define LWIP_DHCP_AUTOIP_COOP (LWIP_DHCP && LWIP_AUTOIP) - - -/* ---------- UDP options ---------- */ -#define LWIP_UDP 1 -#define LWIP_UDPLITE 1 -#define UDP_TTL 255 - - -/* ---------- Statistics options ---------- */ - -#define LWIP_STATS 1 -#define LWIP_STATS_DISPLAY 0 - -#if LWIP_STATS - #define LINK_STATS 1 - #define IP_STATS 1 - #define ICMP_STATS 0 - #define IGMP_STATS 0 - #define IPFRAG_STATS 0 - #define UDP_STATS 1 - #define TCP_STATS 1 - #define MEM_STATS 1 - #define MEMP_STATS 1 - #define PBUF_STATS 1 - #define SYS_STATS 1 -#endif /* LWIP_STATS */ - - -/* ---------- PPP options ---------- */ - -#define PPP_SUPPORT 0 /* Set > 0 for PPP */ - -#if PPP_SUPPORT - - #define NUM_PPP 1 /* Max PPP sessions. */ - - /* Select modules to enable. Ideally these would be set in the makefile but - * we're limited by the command line length so you need to modify the settings - * in this file. - */ - #define PPPOE_SUPPORT 1 - #define PPPOS_SUPPORT 1 - #define PAP_SUPPORT 1 /* Set > 0 for PAP. */ - #define CHAP_SUPPORT 1 /* Set > 0 for CHAP. */ - #define MSCHAP_SUPPORT 0 /* Set > 0 for MSCHAP (NOT FUNCTIONAL!) */ - #define CBCP_SUPPORT 0 /* Set > 0 for CBCP (NOT FUNCTIONAL!) */ - #define CCP_SUPPORT 0 /* Set > 0 for CCP (NOT FUNCTIONAL!) */ - #define VJ_SUPPORT 1 /* Set > 0 for VJ header compression. */ - #define MD5_SUPPORT 1 /* Set > 0 for MD5 (see also CHAP) */ - -#endif /* PPP_SUPPORT */ - -#define LWIP_NETIF_STATUS_CALLBACK 1 - -#endif /* __LWIPOPTS_H__ */ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/main.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/main.c deleted file mode 100644 index 5019093db..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/main.c +++ /dev/null @@ -1,388 +0,0 @@ -/* - FreeRTOS V8.0.1 - Copyright (C) 2014 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - - FreeRTOS 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. Full license text is available from the following - link: http://www.freertos.org/a00114.html - - 1 tab == 4 spaces! - - *************************************************************************** - * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * - * * - * http://www.FreeRTOS.org/FAQHelp.html * - * * - *************************************************************************** - - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - -/****************************************************************************** - * This project provides three demo applications. A simple blinky style - * project, a more comprehensive test and demo application, and an lwIP example. - * The mainSELECTED_APPLICATION setting (defined in this file) is used to - * select between the three. The simply blinky demo is implemented and - * described in main_blinky.c. The more comprehensive test and demo application - * is implemented and described in main_full.c. The lwIP example is implemented - * and described in main_lwIP.c. - * - * This file implements the code that is not demo specific, including the - * hardware setup and FreeRTOS hook functions. - * - * !!! IMPORTANT NOTE !!! - * The GCC libraries that ship with the Xilinx SDK make use of the floating - * point registers. To avoid this causing corruption it is necessary to avoid - * their use. For this reason main.c contains very basic C implementations of - * the standard C library functions memset(), memcpy() and memcmp(), which are - * are used by FreeRTOS itself. Defining these functions in the project - * prevents the linker pulling them in from the library. Any other standard C - * library functions that are used by the application must likewise be defined - * in C. - * - * ENSURE TO READ THE DOCUMENTATION PAGE FOR THIS PORT AND DEMO APPLICATION ON - * THE http://www.FreeRTOS.org WEB SITE FOR FULL INFORMATION ON USING THIS DEMO - * APPLICATION, AND ITS ASSOCIATE FreeRTOS ARCHITECTURE PORT! - * - */ - -/* Standard includes. */ -#include -#include - -/* Scheduler include files. */ -#include "FreeRTOS.h" -#include "task.h" -#include "semphr.h" - -/* Standard demo includes. */ -#include "partest.h" -#include "TimerDemo.h" -#include "QueueOverwrite.h" -#include "EventGroupsDemo.h" - -/* Xilinx includes. */ -#include "platform.h" -#include "xparameters.h" -#include "xscutimer.h" -#include "xscugic.h" -#include "xil_exception.h" - -/* mainSELECTED_APPLICATION is used to select between three demo applications, - * as described at the top of this file. - * - * When mainSELECTED_APPLICATION is set to 0 the simple blinky example will - * be run. - * - * When mainSELECTED_APPLICATION is set to 1 the comprehensive test and demo - * application will be run. - * - * When mainSELECTED_APPLICATION is set to 2 the lwIP example will be run. - */ -#define mainSELECTED_APPLICATION 1 - -/*-----------------------------------------------------------*/ - -/* - * Configure the hardware as necessary to run this demo. - */ -static void prvSetupHardware( void ); - -/* - * See the comments at the top of this file and above the - * mainSELECTED_APPLICATION definition. - */ -#if ( mainSELECTED_APPLICATION == 0 ) - extern void main_blinky( void ); -#elif ( mainSELECTED_APPLICATION == 1 ) - extern void main_full( void ); -#elif ( mainSELECTED_APPLICATION == 2 ) - extern void main_lwIP( void ); -#else - #error Invalid mainSELECTED_APPLICATION setting. See the comments at the top of this file and above the mainSELECTED_APPLICATION definition. -#endif /* #if mainCREATE_SIMPLE_BLINKY_DEMO_ONLY == 1 */ - -/* - * The Xilinx projects use a BSP that do not allow the start up code to be - * altered easily. Therefore the vector table used by FreeRTOS is defined in - * FreeRTOS_asm_vectors.S, which is part of this project. Switch to use the - * FreeRTOS vector table. - */ -extern void vPortInstallFreeRTOSVectorTable( void ); - -/* Prototypes for the standard FreeRTOS callback/hook functions implemented -within this file. */ -void vApplicationMallocFailedHook( void ); -void vApplicationIdleHook( void ); -void vApplicationStackOverflowHook( TaskHandle_t pxTask, char *pcTaskName ); -void vApplicationTickHook( void ); - -/* The private watchdog is used as the timer that generates run time -stats. This frequency means it will overflow quite quickly. */ -XScuWdt xWatchDogInstance; - -/*-----------------------------------------------------------*/ - -/* The interrupt controller is initialised in this file, and made available to -other modules. */ -XScuGic xInterruptController; - -/*-----------------------------------------------------------*/ - -int main( void ) -{ -extern void main_lwIP( void ); - - /* Configure the hardware ready to run the demo. */ - prvSetupHardware(); - - /* The mainSELECTED_APPLICATION setting is described at the top - of this file. */ - #if( mainSELECTED_APPLICATION == 0 ) - { - main_blinky(); - } - #elif( mainSELECTED_APPLICATION == 1 ) - { - main_full(); - } - #else - { - main_lwIP(); - } - #endif - - /* Don't expect to reach here. */ - return 0; -} -/*-----------------------------------------------------------*/ - -static void prvSetupHardware( void ) -{ -BaseType_t xStatus; -XScuGic_Config *pxGICConfig; - - /* Ensure no interrupts execute while the scheduler is in an inconsistent - state. Interrupts are automatically enabled when the scheduler is - started. */ - portDISABLE_INTERRUPTS(); - - /* Obtain the configuration of the GIC. */ - pxGICConfig = XScuGic_LookupConfig( XPAR_SCUGIC_SINGLE_DEVICE_ID ); - - /* Sanity check the FreeRTOSConfig.h settings are correct for the - hardware. */ - configASSERT( pxGICConfig ); - configASSERT( pxGICConfig->CpuBaseAddress == ( configINTERRUPT_CONTROLLER_BASE_ADDRESS + configINTERRUPT_CONTROLLER_CPU_INTERFACE_OFFSET ) ); - configASSERT( pxGICConfig->DistBaseAddress == configINTERRUPT_CONTROLLER_BASE_ADDRESS ); - - /* Install a default handler for each GIC interrupt. */ - xStatus = XScuGic_CfgInitialize( &xInterruptController, pxGICConfig, pxGICConfig->CpuBaseAddress ); - configASSERT( xStatus == XST_SUCCESS ); - ( void ) xStatus; /* Remove compiler warning if configASSERT() is not defined. */ - - /* Initialise the LED port. */ - vParTestInitialise(); - - /* The Xilinx projects use a BSP that do not allow the start up code to be - altered easily. Therefore the vector table used by FreeRTOS is defined in - FreeRTOS_asm_vectors.S, which is part of this project. Switch to use the - FreeRTOS vector table. */ - vPortInstallFreeRTOSVectorTable(); -} -/*-----------------------------------------------------------*/ - -void vApplicationMallocFailedHook( void ) -{ - /* Called if a call to pvPortMalloc() fails because there is insufficient - free memory available in the FreeRTOS heap. pvPortMalloc() is called - internally by FreeRTOS API functions that create tasks, queues, software - timers, and semaphores. The size of the FreeRTOS heap is set by the - configTOTAL_HEAP_SIZE configuration constant in FreeRTOSConfig.h. */ - taskDISABLE_INTERRUPTS(); - for( ;; ); -} -/*-----------------------------------------------------------*/ - -void vApplicationStackOverflowHook( TaskHandle_t pxTask, char *pcTaskName ) -{ - ( void ) pcTaskName; - ( void ) pxTask; - - /* Run time stack overflow checking is performed if - configCHECK_FOR_STACK_OVERFLOW is defined to 1 or 2. This hook - function is called if a stack overflow is detected. */ - taskDISABLE_INTERRUPTS(); - for( ;; ); -} -/*-----------------------------------------------------------*/ - -void vApplicationIdleHook( void ) -{ -volatile size_t xFreeHeapSpace; - - /* This is just a trivial example of an idle hook. It is called on each - cycle of the idle task. It must *NOT* attempt to block. In this case the - idle task just queries the amount of FreeRTOS heap that remains. See the - memory management section on the http://www.FreeRTOS.org web site for memory - management options. If there is a lot of heap memory free then the - configTOTAL_HEAP_SIZE value in FreeRTOSConfig.h can be reduced to free up - RAM. */ - xFreeHeapSpace = xPortGetFreeHeapSize(); - - /* Remove compiler warning about xFreeHeapSpace being set but never used. */ - ( void ) xFreeHeapSpace; -} -/*-----------------------------------------------------------*/ - -void vAssertCalled( const char * pcFile, unsigned long ulLine ) -{ -volatile unsigned long ul = 0; - - ( void ) pcFile; - ( void ) ulLine; - - taskENTER_CRITICAL(); - { - /* Set ul to a non-zero value using the debugger to step out of this - function. */ - while( ul == 0 ) - { - portNOP(); - } - } - taskEXIT_CRITICAL(); -} -/*-----------------------------------------------------------*/ - -void vApplicationTickHook( void ) -{ - #if( mainSELECTED_APPLICATION == 1 ) - { - /* The full demo includes a software timer demo/test that requires - prodding periodically from the tick interrupt. */ - vTimerPeriodicISRTests(); - - /* Call the periodic queue overwrite from ISR demo. */ - vQueueOverwritePeriodicISRDemo(); - - /* Call the periodic event group from ISR demo. */ - vPeriodicEventGroupsProcessing(); - } - #endif -} -/*-----------------------------------------------------------*/ - -void *memcpy( void *pvDest, const void *pvSource, size_t ulBytes ) -{ -unsigned char *pcDest = ( unsigned char * ) pvDest, *pcSource = ( unsigned char * ) pvSource; -size_t x; - - for( x = 0; x < ulBytes; x++ ) - { - *pcDest = *pcSource; - pcDest++; - pcSource++; - } - - return pvDest; -} -/*-----------------------------------------------------------*/ - -void *memset( void *pvDest, int iValue, size_t ulBytes ) -{ -unsigned char *pcDest = ( unsigned char * ) pvDest; -size_t x; - - for( x = 0; x < ulBytes; x++ ) - { - *pcDest = ( unsigned char ) iValue; - pcDest++; - } - - return pvDest; -} -/*-----------------------------------------------------------*/ - -int memcmp( const void *pvMem1, const void *pvMem2, size_t ulBytes ) -{ -const unsigned char *pucMem1 = pvMem1, *pucMem2 = pvMem2; -size_t x; - - for( x = 0; x < ulBytes; x++ ) - { - if( pucMem1[ x ] != pucMem2[ x ] ) - { - break; - } - } - - return ulBytes - x; -} -/*-----------------------------------------------------------*/ - -void vInitialiseTimerForRunTimeStats( void ) -{ -XScuWdt_Config *pxWatchDogInstance; -uint32_t ulValue; -const uint32_t ulMaxDivisor = 0xff, ulDivisorShift = 0x08; - - pxWatchDogInstance = XScuWdt_LookupConfig( XPAR_SCUWDT_0_DEVICE_ID ); - XScuWdt_CfgInitialize( &xWatchDogInstance, pxWatchDogInstance, pxWatchDogInstance->BaseAddr ); - - ulValue = XScuWdt_GetControlReg( &xWatchDogInstance ); - ulValue |= ulMaxDivisor << ulDivisorShift; - XScuWdt_SetControlReg( &xWatchDogInstance, ulValue ); - - XScuWdt_LoadWdt( &xWatchDogInstance, UINT_MAX ); - XScuWdt_SetTimerMode( &xWatchDogInstance ); - XScuWdt_Start( &xWatchDogInstance ); -} - - - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/platform.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/platform.c deleted file mode 100644 index ea7849798..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/platform.c +++ /dev/null @@ -1,112 +0,0 @@ -/****************************************************************************** -* -* (c) Copyright 2010-2012 Xilinx, Inc. All rights reserved. -* -* This file contains confidential and proprietary information of Xilinx, Inc. -* and is protected under U.S. and international copyright and other -* intellectual property laws. -* -* DISCLAIMER -* This disclaimer is not a license and does not grant any rights to the -* materials distributed herewith. Except as otherwise provided in a valid -* license issued to you by Xilinx, and to the maximum extent permitted by -* applicable law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND WITH ALL -* FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS, -* IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF -* MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; -* and (2) Xilinx shall not be liable (whether in contract or tort, including -* negligence, or under any other theory of liability) for any loss or damage -* of any kind or nature related to, arising under or in connection with these -* materials, including for any direct, or any indirect, special, incidental, -* or consequential loss or damage (including loss of data, profits, goodwill, -* or any type of loss or damage suffered as a result of any action brought by -* a third party) even if such damage or loss was reasonably foreseeable or -* Xilinx had been advised of the possibility of the same. -* -* CRITICAL APPLICATIONS -* Xilinx products are not designed or intended to be fail-safe, or for use in -* any application requiring fail-safe performance, such as life-support or -* safety devices or systems, Class III medical devices, nuclear facilities, -* applications related to the deployment of airbags, or any other applications -* that could lead to death, personal injury, or severe property or -* environmental damage (individually and collectively, "Critical -* Applications"). Customer assumes the sole risk and liability of any use of -* Xilinx products in Critical Applications, subject only to applicable laws -* and regulations governing limitations on product liability. -* -* THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS PART OF THIS FILE -* AT ALL TIMES. -* -******************************************************************************/ - -#include "xparameters.h" -#include "xil_cache.h" - -#include "platform_config.h" - -/* - * Uncomment the following line if ps7 init source files are added in the - * source directory for compiling example outside of SDK. - */ -/*#include "ps7_init.h"*/ - -#ifdef STDOUT_IS_16550 - #include "xuartns550_l.h" - - #define UART_BAUD 9600 -#endif - -void -enable_caches() -{ -#ifdef __PPC__ - Xil_ICacheEnableRegion(CACHEABLE_REGION_MASK); - Xil_DCacheEnableRegion(CACHEABLE_REGION_MASK); -#elif __MICROBLAZE__ -#ifdef XPAR_MICROBLAZE_USE_ICACHE - Xil_ICacheEnable(); -#endif -#ifdef XPAR_MICROBLAZE_USE_DCACHE - Xil_DCacheEnable(); -#endif -#endif -} - -void -disable_caches() -{ - Xil_DCacheDisable(); - Xil_ICacheDisable(); -} - -void -init_uart() -{ -#ifdef STDOUT_IS_16550 - XUartNs550_SetBaud(STDOUT_BASEADDR, XPAR_XUARTNS550_CLOCK_HZ, UART_BAUD); - XUartNs550_SetLineControlReg(STDOUT_BASEADDR, XUN_LCR_8_DATA_BITS); -#endif -#ifdef STDOUT_IS_PS7_UART - /* Bootrom/BSP configures PS7 UART to 115200 bps */ -#endif -} - -void -init_platform() -{ - /* - * If you want to run this example outside of SDK, - * uncomment the following line and also #include "ps7_init.h" at the top. - * Make sure that the ps7_init.c and ps7_init.h files are included - * along with this example source files for compilation. - */ - /* ps7_init();*/ - enable_caches(); - init_uart(); -} - -void -cleanup_platform() -{ - disable_caches(); -} diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/platform.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/platform.h deleted file mode 100644 index efc90882b..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/platform.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) 2008 Xilinx, Inc. All rights reserved. - * - * Xilinx, Inc. - * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A - * COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS - * ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR - * STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION - * IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE - * FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION. - * XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO - * THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO - * ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE - * FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#ifndef __PLATFORM_H_ -#define __PLATFORM_H_ - -#include "platform_config.h" - -void init_platform(); -void cleanup_platform(); - -#endif diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/platform_config.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/platform_config.h deleted file mode 100644 index afb62cf9d..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/platform_config.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef __PLATFORM_CONFIG_H_ -#define __PLATFORM_CONFIG_H_ - -#define STDOUT_IS_PS7_UART -#define UART_DEVICE_ID 0 -#ifdef __PPC__ -#define CACHEABLE_REGION_MASK 0xff000001 -#endif - -#endif diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/printf-stdarg.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/printf-stdarg.c deleted file mode 100644 index 117519837..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/printf-stdarg.c +++ /dev/null @@ -1,285 +0,0 @@ -/* - Copyright 2001, 2002 Georges Menie (www.menie.org) - stdarg version contributed by Christian Ettinger - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - 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 the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -/* - putchar is the only external dependency for this file, - if you have a working putchar, leave it commented out. - If not, uncomment the define below and - replace outbyte(c) by your own function call. - -*/ - -#define putchar(c) c - -#include - -static void printchar(char **str, int c) -{ - //extern int putchar(int c); - - if (str) { - **str = (char)c; - ++(*str); - } - else - { - (void)putchar(c); - } -} - -#define PAD_RIGHT 1 -#define PAD_ZERO 2 - -static int prints(char **out, const char *string, int width, int pad) -{ - register int pc = 0, padchar = ' '; - - if (width > 0) { - register int len = 0; - register const char *ptr; - for (ptr = string; *ptr; ++ptr) ++len; - if (len >= width) width = 0; - else width -= len; - if (pad & PAD_ZERO) padchar = '0'; - } - if (!(pad & PAD_RIGHT)) { - for ( ; width > 0; --width) { - printchar (out, padchar); - ++pc; - } - } - for ( ; *string ; ++string) { - printchar (out, *string); - ++pc; - } - for ( ; width > 0; --width) { - printchar (out, padchar); - ++pc; - } - - return pc; -} - -/* the following should be enough for 32 bit int */ -#define PRINT_BUF_LEN 12 - -static int printi(char **out, int i, int b, int sg, int width, int pad, int letbase) -{ - char print_buf[PRINT_BUF_LEN]; - register char *s; - register int t, neg = 0, pc = 0; - register unsigned int u = (unsigned int)i; - - if (i == 0) { - print_buf[0] = '0'; - print_buf[1] = '\0'; - return prints (out, print_buf, width, pad); - } - - if (sg && b == 10 && i < 0) { - neg = 1; - u = (unsigned int)-i; - } - - s = print_buf + PRINT_BUF_LEN-1; - *s = '\0'; - - while (u) { - t = (unsigned int)u % b; - if( t >= 10 ) - t += letbase - '0' - 10; - *--s = (char)(t + '0'); - u /= b; - } - - if (neg) { - if( width && (pad & PAD_ZERO) ) { - printchar (out, '-'); - ++pc; - --width; - } - else { - *--s = '-'; - } - } - - return pc + prints (out, s, width, pad); -} - -static int print( char **out, const char *format, va_list args ) -{ - register int width, pad; - register int pc = 0; - char scr[2]; - - for (; *format != 0; ++format) { - if (*format == '%') { - ++format; - width = pad = 0; - if (*format == '\0') break; - if (*format == '%') goto out; - if (*format == '-') { - ++format; - pad = PAD_RIGHT; - } - while (*format == '0') { - ++format; - pad |= PAD_ZERO; - } - for ( ; *format >= '0' && *format <= '9'; ++format) { - width *= 10; - width += *format - '0'; - } - if( *format == 's' ) { - register char *s = (char *)va_arg( args, int ); - pc += prints (out, s?s:"(null)", width, pad); - continue; - } - if( *format == 'd' ) { - pc += printi (out, va_arg( args, int ), 10, 1, width, pad, 'a'); - continue; - } - if( *format == 'x' ) { - pc += printi (out, va_arg( args, int ), 16, 0, width, pad, 'a'); - continue; - } - if( *format == 'X' ) { - pc += printi (out, va_arg( args, int ), 16, 0, width, pad, 'A'); - continue; - } - if( *format == 'u' ) { - pc += printi (out, va_arg( args, int ), 10, 0, width, pad, 'a'); - continue; - } - if( *format == 'c' ) { - /* char are converted to int then pushed on the stack */ - scr[0] = (char)va_arg( args, int ); - scr[1] = '\0'; - pc += prints (out, scr, width, pad); - continue; - } - } - else { - out: - printchar (out, *format); - ++pc; - } - } - if (out) **out = '\0'; - va_end( args ); - return pc; -} - -int printf(const char *format, ...) -{ - va_list args; - - va_start( args, format ); - return print( 0, format, args ); -} - -int sprintf(char *out, const char *format, ...) -{ - va_list args; - - va_start( args, format ); - return print( &out, format, args ); -} - - -int snprintf( char *buf, unsigned int count, const char *format, ... ) -{ - va_list args; - - ( void ) count; - - va_start( args, format ); - return print( &buf, format, args ); -} - - -#ifdef TEST_PRINTF -int main(void) -{ - char *ptr = "Hello world!"; - char *np = 0; - int i = 5; - unsigned int bs = sizeof(int)*8; - int mi; - char buf[80]; - - mi = (1 << (bs-1)) + 1; - printf("%s\n", ptr); - printf("printf test\n"); - printf("%s is null pointer\n", np); - printf("%d = 5\n", i); - printf("%d = - max int\n", mi); - printf("char %c = 'a'\n", 'a'); - printf("hex %x = ff\n", 0xff); - printf("hex %02x = 00\n", 0); - printf("signed %d = unsigned %u = hex %x\n", -3, -3, -3); - printf("%d %s(s)%", 0, "message"); - printf("\n"); - printf("%d %s(s) with %%\n", 0, "message"); - sprintf(buf, "justif: \"%-10s\"\n", "left"); printf("%s", buf); - sprintf(buf, "justif: \"%10s\"\n", "right"); printf("%s", buf); - sprintf(buf, " 3: %04d zero padded\n", 3); printf("%s", buf); - sprintf(buf, " 3: %-4d left justif.\n", 3); printf("%s", buf); - sprintf(buf, " 3: %4d right justif.\n", 3); printf("%s", buf); - sprintf(buf, "-3: %04d zero padded\n", -3); printf("%s", buf); - sprintf(buf, "-3: %-4d left justif.\n", -3); printf("%s", buf); - sprintf(buf, "-3: %4d right justif.\n", -3); printf("%s", buf); - - return 0; -} - -/* - * if you compile this file with - * gcc -Wall $(YOUR_C_OPTIONS) -DTEST_PRINTF -c printf.c - * you will get a normal warning: - * printf.c:214: warning: spurious trailing `%' in format - * this line is testing an invalid % at the end of the format string. - * - * this should display (on 32bit int machine) : - * - * Hello world! - * printf test - * (null) is null pointer - * 5 = 5 - * -2147483647 = - max int - * char a = 'a' - * hex ff = ff - * hex 00 = 00 - * signed -3 = unsigned 4294967293 = hex fffffffd - * 0 message(s) - * 0 message(s) with % - * justif: "left " - * justif: " right" - * 3: 0003 zero padded - * 3: 3 left justif. - * 3: 3 right justif. - * -3: -003 zero padded - * -3: -3 left justif. - * -3: -3 right justif. - */ - -#endif - - - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/.cproject b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/.cproject deleted file mode 100644 index 66c94fd3a..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/.cproject +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/.project b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/.project deleted file mode 100644 index 1ac923aef..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/.project +++ /dev/null @@ -1,87 +0,0 @@ - - - RTOSDemo_bsp - - - ZC702_hw_platform - - - - org.eclipse.cdt.make.core.makeBuilder - - - org.eclipse.cdt.core.errorOutputParser - org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.VCErrorParser;org.eclipse.cdt.core.CWDLocator;org.eclipse.cdt.core.MakeErrorParser; - - - org.eclipse.cdt.make.core.append_environment - true - - - org.eclipse.cdt.make.core.build.arguments - - - - org.eclipse.cdt.make.core.build.command - make - - - org.eclipse.cdt.make.core.build.target.auto - all - - - org.eclipse.cdt.make.core.build.target.clean - clean - - - org.eclipse.cdt.make.core.build.target.inc - all - - - org.eclipse.cdt.make.core.enableAutoBuild - true - - - org.eclipse.cdt.make.core.enableCleanBuild - true - - - org.eclipse.cdt.make.core.enableFullBuild - true - - - org.eclipse.cdt.make.core.enabledIncrementalBuild - true - - - org.eclipse.cdt.make.core.environment - - - - org.eclipse.cdt.make.core.stopOnError - false - - - org.eclipse.cdt.make.core.useDefaultBuildCmd - true - - - - - - com.xilinx.sdk.sw.SwProjectNature - org.eclipse.cdt.core.cnature - org.eclipse.cdt.make.core.makeNature - - - - 1390399902942 - - 6 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-asm_vectors.S - - - - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/.sdkproject b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/.sdkproject deleted file mode 100644 index 3135ec9f7..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/.sdkproject +++ /dev/null @@ -1,3 +0,0 @@ -THIRPARTY=false -PROCESSOR=ps7_cortexa9_0 -MSS_FILE=system.mss diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/Makefile b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/Makefile deleted file mode 100644 index fe2a0efc7..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile generated by Xilinx SDK. - --include libgen.options - -LIBRARIES = ${PROCESSOR}/lib/libxil.a -MSS = system.mss - -all: libs - @echo 'Finished building libraries' - -libs: $(LIBRARIES) - -$(LIBRARIES): $(MSS) - libgen -hw ${HWSPEC}\ - ${REPOSITORIES}\ - -pe ${PROCESSOR} \ - -log libgen.log \ - $(MSS) - -clean: - rm -rf ${PROCESSOR} diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/libgen.options b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/libgen.options deleted file mode 100644 index 3b2890994..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/libgen.options +++ /dev/null @@ -1,3 +0,0 @@ -PROCESSOR=ps7_cortexa9_0 -REPOSITORIES= -HWSPEC=../ZC702_hw_platform/system.xml diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/system.mss b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/system.mss deleted file mode 100644 index dec7138ff..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/system.mss +++ /dev/null @@ -1,225 +0,0 @@ - - PARAMETER VERSION = 2.2.0 - - -BEGIN OS - PARAMETER OS_NAME = standalone - PARAMETER OS_VER = 3.12.a - PARAMETER PROC_INSTANCE = ps7_cortexa9_0 - PARAMETER STDIN = ps7_uart_1 - PARAMETER STDOUT = ps7_uart_1 -END - - -BEGIN PROCESSOR - PARAMETER DRIVER_NAME = cpu_cortexa9 - PARAMETER DRIVER_VER = 1.01.a - PARAMETER HW_INSTANCE = ps7_cortexa9_0 -END - - -BEGIN DRIVER - PARAMETER DRIVER_NAME = generic - PARAMETER DRIVER_VER = 1.00.a - PARAMETER HW_INSTANCE = ps7_afi_0 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = generic - PARAMETER DRIVER_VER = 1.00.a - PARAMETER HW_INSTANCE = ps7_afi_1 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = generic - PARAMETER DRIVER_VER = 1.00.a - PARAMETER HW_INSTANCE = ps7_afi_2 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = generic - PARAMETER DRIVER_VER = 1.00.a - PARAMETER HW_INSTANCE = ps7_afi_3 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = canps - PARAMETER DRIVER_VER = 1.02.a - PARAMETER HW_INSTANCE = ps7_can_0 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = generic - PARAMETER DRIVER_VER = 1.00.a - PARAMETER HW_INSTANCE = ps7_coresight_comp_0 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = generic - PARAMETER DRIVER_VER = 1.00.a - PARAMETER HW_INSTANCE = ps7_ddr_0 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = generic - PARAMETER DRIVER_VER = 1.00.a - PARAMETER HW_INSTANCE = ps7_ddrc_0 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = devcfg - PARAMETER DRIVER_VER = 2.04.a - PARAMETER HW_INSTANCE = ps7_dev_cfg_0 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = dmaps - PARAMETER DRIVER_VER = 1.07.a - PARAMETER HW_INSTANCE = ps7_dma_ns -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = dmaps - PARAMETER DRIVER_VER = 1.07.a - PARAMETER HW_INSTANCE = ps7_dma_s -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = emacps - PARAMETER DRIVER_VER = 1.06.a - PARAMETER HW_INSTANCE = ps7_ethernet_0 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = generic - PARAMETER DRIVER_VER = 1.00.a - PARAMETER HW_INSTANCE = ps7_globaltimer_0 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = gpiops - PARAMETER DRIVER_VER = 1.02.a - PARAMETER HW_INSTANCE = ps7_gpio_0 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = generic - PARAMETER DRIVER_VER = 1.00.a - PARAMETER HW_INSTANCE = ps7_gpv_0 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = iicps - PARAMETER DRIVER_VER = 1.04.a - PARAMETER HW_INSTANCE = ps7_i2c_0 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = generic - PARAMETER DRIVER_VER = 1.00.a - PARAMETER HW_INSTANCE = ps7_intc_dist_0 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = generic - PARAMETER DRIVER_VER = 1.00.a - PARAMETER HW_INSTANCE = ps7_iop_bus_config_0 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = generic - PARAMETER DRIVER_VER = 1.00.a - PARAMETER HW_INSTANCE = ps7_l2cachec_0 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = generic - PARAMETER DRIVER_VER = 1.00.a - PARAMETER HW_INSTANCE = ps7_ocmc_0 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = qspips - PARAMETER DRIVER_VER = 2.03.a - PARAMETER HW_INSTANCE = ps7_qspi_0 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = generic - PARAMETER DRIVER_VER = 1.00.a - PARAMETER HW_INSTANCE = ps7_qspi_linear_0 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = generic - PARAMETER DRIVER_VER = 1.00.a - PARAMETER HW_INSTANCE = ps7_ram_0 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = generic - PARAMETER DRIVER_VER = 1.00.a - PARAMETER HW_INSTANCE = ps7_ram_1 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = generic - PARAMETER DRIVER_VER = 1.00.a - PARAMETER HW_INSTANCE = ps7_scuc_0 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = scugic - PARAMETER DRIVER_VER = 1.06.a - PARAMETER HW_INSTANCE = ps7_scugic_0 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = scutimer - PARAMETER DRIVER_VER = 1.02.a - PARAMETER HW_INSTANCE = ps7_scutimer_0 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = scuwdt - PARAMETER DRIVER_VER = 1.02.a - PARAMETER HW_INSTANCE = ps7_scuwdt_0 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = sdps - PARAMETER DRIVER_VER = 1.00.a - PARAMETER HW_INSTANCE = ps7_sd_0 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = generic - PARAMETER DRIVER_VER = 1.00.a - PARAMETER HW_INSTANCE = ps7_slcr_0 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = ttcps - PARAMETER DRIVER_VER = 1.01.a - PARAMETER HW_INSTANCE = ps7_ttc_0 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = uartps - PARAMETER DRIVER_VER = 1.05.a - PARAMETER HW_INSTANCE = ps7_uart_1 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = usbps - PARAMETER DRIVER_VER = 1.06.a - PARAMETER HW_INSTANCE = ps7_usb_0 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = xadcps - PARAMETER DRIVER_VER = 1.03.a - PARAMETER HW_INSTANCE = ps7_xadc_0 -END - - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/.project b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/.project deleted file mode 100644 index e4d66483e..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/.project +++ /dev/null @@ -1,12 +0,0 @@ - - - ZC702_hw_platform - - - - - - - com.xilinx.sdk.hw.HwProject - - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/ps7_init.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/ps7_init.c deleted file mode 100644 index 98e44be9c..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/ps7_init.c +++ /dev/null @@ -1,12750 +0,0 @@ -/****************************************************************************** -* -* (c) Copyright 2010-2012 Xilinx, Inc. All rights reserved. -* -* This file contains confidential and proprietary information of Xilinx, Inc. -* and is protected under U.S. and international copyright and other -* intellectual property laws. -* -* DISCLAIMER -* This disclaimer is not a license and does not grant any rights to the -* materials distributed herewith. Except as otherwise provided in a valid -* license issued to you by Xilinx, and to the maximum extent permitted by -* applicable law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND WITH ALL -* FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS, -* IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF -* MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; -* and (2) Xilinx shall not be liable (whether in contract or tort, including -* negligence, or under any other theory of liability) for any loss or damage -* of any kind or nature related to, arising under or in connection with these -* materials, including for any direct, or any indirect, special, incidental, -* or consequential loss or damage (including loss of data, profits, goodwill, -* or any type of loss or damage suffered as a result of any action brought by -* a third party) even if such damage or loss was reasonably foreseeable or -* Xilinx had been advised of the possibility of the same. -* -* CRITICAL APPLICATIONS -* Xilinx products are not designed or intended to be fail-safe, or for use in -* any application requiring fail-safe performance, such as life-support or -* safety devices or systems, Class III medical devices, nuclear facilities, -* applications related to the deployment of airbags, or any other applications -* that could lead to death, personal injury, or severe property or -* environmental damage (individually and collectively, "Critical -* Applications"). Customer assumes the sole risk and liability of any use of -* Xilinx products in Critical Applications, subject only to applicable laws -* and regulations governing limitations on product liability. -* -* THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS PART OF THIS FILE -* AT ALL TIMES. -* -******************************************************************************/ -/****************************************************************************/ -/** -* -* @file ps7_init.c -* -* This file is automatically generated -* -*****************************************************************************/ - -#include "ps7_init.h" - -unsigned long ps7_pll_init_data_3_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: PLL SLCR REGISTERS - // .. .. START: ARM PLL INIT - // .. .. PLL_RES = 0x2 - // .. .. ==> 0XF8000110[7:4] = 0x00000002U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000020U - // .. .. PLL_CP = 0x2 - // .. .. ==> 0XF8000110[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. LOCK_CNT = 0xfa - // .. .. ==> 0XF8000110[21:12] = 0x000000FAU - // .. .. ==> MASK : 0x003FF000U VAL : 0x000FA000U - // .. .. - EMIT_MASKWRITE(0XF8000110, 0x003FFFF0U ,0x000FA220U), - // .. .. .. START: UPDATE FB_DIV - // .. .. .. PLL_FDIV = 0x28 - // .. .. .. ==> 0XF8000100[18:12] = 0x00000028U - // .. .. .. ==> MASK : 0x0007F000U VAL : 0x00028000U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x0007F000U ,0x00028000U), - // .. .. .. FINISH: UPDATE FB_DIV - // .. .. .. START: BY PASS PLL - // .. .. .. PLL_BYPASS_FORCE = 1 - // .. .. .. ==> 0XF8000100[4:4] = 0x00000001U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000010U ,0x00000010U), - // .. .. .. FINISH: BY PASS PLL - // .. .. .. START: ASSERT RESET - // .. .. .. PLL_RESET = 1 - // .. .. .. ==> 0XF8000100[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000001U ,0x00000001U), - // .. .. .. FINISH: ASSERT RESET - // .. .. .. START: DEASSERT RESET - // .. .. .. PLL_RESET = 0 - // .. .. .. ==> 0XF8000100[0:0] = 0x00000000U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000001U ,0x00000000U), - // .. .. .. FINISH: DEASSERT RESET - // .. .. .. START: CHECK PLL STATUS - // .. .. .. ARM_PLL_LOCK = 1 - // .. .. .. ==> 0XF800010C[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKPOLL(0XF800010C, 0x00000001U), - // .. .. .. FINISH: CHECK PLL STATUS - // .. .. .. START: REMOVE PLL BY PASS - // .. .. .. PLL_BYPASS_FORCE = 0 - // .. .. .. ==> 0XF8000100[4:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000010U ,0x00000000U), - // .. .. .. FINISH: REMOVE PLL BY PASS - // .. .. .. SRCSEL = 0x0 - // .. .. .. ==> 0XF8000120[5:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. .. .. DIVISOR = 0x2 - // .. .. .. ==> 0XF8000120[13:8] = 0x00000002U - // .. .. .. ==> MASK : 0x00003F00U VAL : 0x00000200U - // .. .. .. CPU_6OR4XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[24:24] = 0x00000001U - // .. .. .. ==> MASK : 0x01000000U VAL : 0x01000000U - // .. .. .. CPU_3OR2XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[25:25] = 0x00000001U - // .. .. .. ==> MASK : 0x02000000U VAL : 0x02000000U - // .. .. .. CPU_2XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[26:26] = 0x00000001U - // .. .. .. ==> MASK : 0x04000000U VAL : 0x04000000U - // .. .. .. CPU_1XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[27:27] = 0x00000001U - // .. .. .. ==> MASK : 0x08000000U VAL : 0x08000000U - // .. .. .. CPU_PERI_CLKACT = 0x1 - // .. .. .. ==> 0XF8000120[28:28] = 0x00000001U - // .. .. .. ==> MASK : 0x10000000U VAL : 0x10000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000120, 0x1F003F30U ,0x1F000200U), - // .. .. FINISH: ARM PLL INIT - // .. .. START: DDR PLL INIT - // .. .. PLL_RES = 0x2 - // .. .. ==> 0XF8000114[7:4] = 0x00000002U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000020U - // .. .. PLL_CP = 0x2 - // .. .. ==> 0XF8000114[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. LOCK_CNT = 0x12c - // .. .. ==> 0XF8000114[21:12] = 0x0000012CU - // .. .. ==> MASK : 0x003FF000U VAL : 0x0012C000U - // .. .. - EMIT_MASKWRITE(0XF8000114, 0x003FFFF0U ,0x0012C220U), - // .. .. .. START: UPDATE FB_DIV - // .. .. .. PLL_FDIV = 0x20 - // .. .. .. ==> 0XF8000104[18:12] = 0x00000020U - // .. .. .. ==> MASK : 0x0007F000U VAL : 0x00020000U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x0007F000U ,0x00020000U), - // .. .. .. FINISH: UPDATE FB_DIV - // .. .. .. START: BY PASS PLL - // .. .. .. PLL_BYPASS_FORCE = 1 - // .. .. .. ==> 0XF8000104[4:4] = 0x00000001U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000010U ,0x00000010U), - // .. .. .. FINISH: BY PASS PLL - // .. .. .. START: ASSERT RESET - // .. .. .. PLL_RESET = 1 - // .. .. .. ==> 0XF8000104[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000001U ,0x00000001U), - // .. .. .. FINISH: ASSERT RESET - // .. .. .. START: DEASSERT RESET - // .. .. .. PLL_RESET = 0 - // .. .. .. ==> 0XF8000104[0:0] = 0x00000000U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000001U ,0x00000000U), - // .. .. .. FINISH: DEASSERT RESET - // .. .. .. START: CHECK PLL STATUS - // .. .. .. DDR_PLL_LOCK = 1 - // .. .. .. ==> 0XF800010C[1:1] = 0x00000001U - // .. .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. .. - EMIT_MASKPOLL(0XF800010C, 0x00000002U), - // .. .. .. FINISH: CHECK PLL STATUS - // .. .. .. START: REMOVE PLL BY PASS - // .. .. .. PLL_BYPASS_FORCE = 0 - // .. .. .. ==> 0XF8000104[4:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000010U ,0x00000000U), - // .. .. .. FINISH: REMOVE PLL BY PASS - // .. .. .. DDR_3XCLKACT = 0x1 - // .. .. .. ==> 0XF8000124[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. DDR_2XCLKACT = 0x1 - // .. .. .. ==> 0XF8000124[1:1] = 0x00000001U - // .. .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. .. DDR_3XCLK_DIVISOR = 0x2 - // .. .. .. ==> 0XF8000124[25:20] = 0x00000002U - // .. .. .. ==> MASK : 0x03F00000U VAL : 0x00200000U - // .. .. .. DDR_2XCLK_DIVISOR = 0x3 - // .. .. .. ==> 0XF8000124[31:26] = 0x00000003U - // .. .. .. ==> MASK : 0xFC000000U VAL : 0x0C000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000124, 0xFFF00003U ,0x0C200003U), - // .. .. FINISH: DDR PLL INIT - // .. .. START: IO PLL INIT - // .. .. PLL_RES = 0xc - // .. .. ==> 0XF8000118[7:4] = 0x0000000CU - // .. .. ==> MASK : 0x000000F0U VAL : 0x000000C0U - // .. .. PLL_CP = 0x2 - // .. .. ==> 0XF8000118[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. LOCK_CNT = 0x145 - // .. .. ==> 0XF8000118[21:12] = 0x00000145U - // .. .. ==> MASK : 0x003FF000U VAL : 0x00145000U - // .. .. - EMIT_MASKWRITE(0XF8000118, 0x003FFFF0U ,0x001452C0U), - // .. .. .. START: UPDATE FB_DIV - // .. .. .. PLL_FDIV = 0x1e - // .. .. .. ==> 0XF8000108[18:12] = 0x0000001EU - // .. .. .. ==> MASK : 0x0007F000U VAL : 0x0001E000U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x0007F000U ,0x0001E000U), - // .. .. .. FINISH: UPDATE FB_DIV - // .. .. .. START: BY PASS PLL - // .. .. .. PLL_BYPASS_FORCE = 1 - // .. .. .. ==> 0XF8000108[4:4] = 0x00000001U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000010U ,0x00000010U), - // .. .. .. FINISH: BY PASS PLL - // .. .. .. START: ASSERT RESET - // .. .. .. PLL_RESET = 1 - // .. .. .. ==> 0XF8000108[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000001U ,0x00000001U), - // .. .. .. FINISH: ASSERT RESET - // .. .. .. START: DEASSERT RESET - // .. .. .. PLL_RESET = 0 - // .. .. .. ==> 0XF8000108[0:0] = 0x00000000U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000001U ,0x00000000U), - // .. .. .. FINISH: DEASSERT RESET - // .. .. .. START: CHECK PLL STATUS - // .. .. .. IO_PLL_LOCK = 1 - // .. .. .. ==> 0XF800010C[2:2] = 0x00000001U - // .. .. .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. .. .. - EMIT_MASKPOLL(0XF800010C, 0x00000004U), - // .. .. .. FINISH: CHECK PLL STATUS - // .. .. .. START: REMOVE PLL BY PASS - // .. .. .. PLL_BYPASS_FORCE = 0 - // .. .. .. ==> 0XF8000108[4:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000010U ,0x00000000U), - // .. .. .. FINISH: REMOVE PLL BY PASS - // .. .. FINISH: IO PLL INIT - // .. FINISH: PLL SLCR REGISTERS - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_clock_init_data_3_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: CLOCK CONTROL SLCR REGISTERS - // .. CLKACT = 0x1 - // .. ==> 0XF8000128[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. DIVISOR0 = 0x23 - // .. ==> 0XF8000128[13:8] = 0x00000023U - // .. ==> MASK : 0x00003F00U VAL : 0x00002300U - // .. DIVISOR1 = 0x3 - // .. ==> 0XF8000128[25:20] = 0x00000003U - // .. ==> MASK : 0x03F00000U VAL : 0x00300000U - // .. - EMIT_MASKWRITE(0XF8000128, 0x03F03F01U ,0x00302301U), - // .. CLKACT = 0x1 - // .. ==> 0XF8000138[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000138[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000138, 0x00000011U ,0x00000001U), - // .. CLKACT = 0x1 - // .. ==> 0XF8000140[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000140[6:4] = 0x00000000U - // .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. DIVISOR = 0x8 - // .. ==> 0XF8000140[13:8] = 0x00000008U - // .. ==> MASK : 0x00003F00U VAL : 0x00000800U - // .. DIVISOR1 = 0x5 - // .. ==> 0XF8000140[25:20] = 0x00000005U - // .. ==> MASK : 0x03F00000U VAL : 0x00500000U - // .. - EMIT_MASKWRITE(0XF8000140, 0x03F03F71U ,0x00500801U), - // .. CLKACT = 0x1 - // .. ==> 0XF800014C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF800014C[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x5 - // .. ==> 0XF800014C[13:8] = 0x00000005U - // .. ==> MASK : 0x00003F00U VAL : 0x00000500U - // .. - EMIT_MASKWRITE(0XF800014C, 0x00003F31U ,0x00000501U), - // .. CLKACT0 = 0x1 - // .. ==> 0XF8000150[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. CLKACT1 = 0x0 - // .. ==> 0XF8000150[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000150[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x14 - // .. ==> 0XF8000150[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. - EMIT_MASKWRITE(0XF8000150, 0x00003F33U ,0x00001401U), - // .. CLKACT0 = 0x0 - // .. ==> 0XF8000154[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. CLKACT1 = 0x1 - // .. ==> 0XF8000154[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000154[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x14 - // .. ==> 0XF8000154[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. - EMIT_MASKWRITE(0XF8000154, 0x00003F33U ,0x00001402U), - // .. CLKACT0 = 0x1 - // .. ==> 0XF800015C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. CLKACT1 = 0x0 - // .. ==> 0XF800015C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. SRCSEL = 0x0 - // .. ==> 0XF800015C[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0xe - // .. ==> 0XF800015C[13:8] = 0x0000000EU - // .. ==> MASK : 0x00003F00U VAL : 0x00000E00U - // .. DIVISOR1 = 0x3 - // .. ==> 0XF800015C[25:20] = 0x00000003U - // .. ==> MASK : 0x03F00000U VAL : 0x00300000U - // .. - EMIT_MASKWRITE(0XF800015C, 0x03F03F33U ,0x00300E01U), - // .. CAN0_MUX = 0x0 - // .. ==> 0XF8000160[5:0] = 0x00000000U - // .. ==> MASK : 0x0000003FU VAL : 0x00000000U - // .. CAN0_REF_SEL = 0x0 - // .. ==> 0XF8000160[6:6] = 0x00000000U - // .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. CAN1_MUX = 0x0 - // .. ==> 0XF8000160[21:16] = 0x00000000U - // .. ==> MASK : 0x003F0000U VAL : 0x00000000U - // .. CAN1_REF_SEL = 0x0 - // .. ==> 0XF8000160[22:22] = 0x00000000U - // .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000160, 0x007F007FU ,0x00000000U), - // .. CLKACT = 0x1 - // .. ==> 0XF8000168[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000168[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x5 - // .. ==> 0XF8000168[13:8] = 0x00000005U - // .. ==> MASK : 0x00003F00U VAL : 0x00000500U - // .. - EMIT_MASKWRITE(0XF8000168, 0x00003F31U ,0x00000501U), - // .. SRCSEL = 0x0 - // .. ==> 0XF8000170[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF8000170[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF8000170[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF8000170, 0x03F03F30U ,0x00101400U), - // .. SRCSEL = 0x0 - // .. ==> 0XF8000180[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF8000180[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF8000180[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF8000180, 0x03F03F30U ,0x00101400U), - // .. SRCSEL = 0x0 - // .. ==> 0XF8000190[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF8000190[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF8000190[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF8000190, 0x03F03F30U ,0x00101400U), - // .. SRCSEL = 0x0 - // .. ==> 0XF80001A0[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF80001A0[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF80001A0[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF80001A0, 0x03F03F30U ,0x00101400U), - // .. CLK_621_TRUE = 0x1 - // .. ==> 0XF80001C4[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. - EMIT_MASKWRITE(0XF80001C4, 0x00000001U ,0x00000001U), - // .. DMA_CPU_2XCLKACT = 0x1 - // .. ==> 0XF800012C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. USB0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. USB1_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[3:3] = 0x00000001U - // .. ==> MASK : 0x00000008U VAL : 0x00000008U - // .. GEM0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[6:6] = 0x00000001U - // .. ==> MASK : 0x00000040U VAL : 0x00000040U - // .. GEM1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. SDI0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[10:10] = 0x00000001U - // .. ==> MASK : 0x00000400U VAL : 0x00000400U - // .. SDI1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. SPI0_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[14:14] = 0x00000000U - // .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. SPI1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[15:15] = 0x00000000U - // .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. CAN0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[16:16] = 0x00000001U - // .. ==> MASK : 0x00010000U VAL : 0x00010000U - // .. CAN1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[17:17] = 0x00000000U - // .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. I2C0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[18:18] = 0x00000001U - // .. ==> MASK : 0x00040000U VAL : 0x00040000U - // .. I2C1_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[19:19] = 0x00000001U - // .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. UART0_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[20:20] = 0x00000000U - // .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. UART1_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[21:21] = 0x00000001U - // .. ==> MASK : 0x00200000U VAL : 0x00200000U - // .. GPIO_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[22:22] = 0x00000001U - // .. ==> MASK : 0x00400000U VAL : 0x00400000U - // .. LQSPI_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[23:23] = 0x00000001U - // .. ==> MASK : 0x00800000U VAL : 0x00800000U - // .. SMC_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[24:24] = 0x00000001U - // .. ==> MASK : 0x01000000U VAL : 0x01000000U - // .. - EMIT_MASKWRITE(0XF800012C, 0x01FFCCCDU ,0x01ED044DU), - // .. FINISH: CLOCK CONTROL SLCR REGISTERS - // .. START: THIS SHOULD BE BLANK - // .. FINISH: THIS SHOULD BE BLANK - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_ddr_init_data_3_0[] = { - // START: top - // .. START: DDR INITIALIZATION - // .. .. START: LOCK DDR - // .. .. reg_ddrc_soft_rstb = 0 - // .. .. ==> 0XF8006000[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_powerdown_en = 0x0 - // .. .. ==> 0XF8006000[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_data_bus_width = 0x0 - // .. .. ==> 0XF8006000[3:2] = 0x00000000U - // .. .. ==> MASK : 0x0000000CU VAL : 0x00000000U - // .. .. reg_ddrc_burst8_refresh = 0x0 - // .. .. ==> 0XF8006000[6:4] = 0x00000000U - // .. .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. .. reg_ddrc_rdwr_idle_gap = 0x1 - // .. .. ==> 0XF8006000[13:7] = 0x00000001U - // .. .. ==> MASK : 0x00003F80U VAL : 0x00000080U - // .. .. reg_ddrc_dis_rd_bypass = 0x0 - // .. .. ==> 0XF8006000[14:14] = 0x00000000U - // .. .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_act_bypass = 0x0 - // .. .. ==> 0XF8006000[15:15] = 0x00000000U - // .. .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_auto_refresh = 0x0 - // .. .. ==> 0XF8006000[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006000, 0x0001FFFFU ,0x00000080U), - // .. .. FINISH: LOCK DDR - // .. .. reg_ddrc_t_rfc_nom_x32 = 0x81 - // .. .. ==> 0XF8006004[11:0] = 0x00000081U - // .. .. ==> MASK : 0x00000FFFU VAL : 0x00000081U - // .. .. reserved_reg_ddrc_active_ranks = 0x1 - // .. .. ==> 0XF8006004[13:12] = 0x00000001U - // .. .. ==> MASK : 0x00003000U VAL : 0x00001000U - // .. .. reg_ddrc_addrmap_cs_bit0 = 0x0 - // .. .. ==> 0XF8006004[18:14] = 0x00000000U - // .. .. ==> MASK : 0x0007C000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006004, 0x0007FFFFU ,0x00001081U), - // .. .. reg_ddrc_hpr_min_non_critical_x32 = 0xf - // .. .. ==> 0XF8006008[10:0] = 0x0000000FU - // .. .. ==> MASK : 0x000007FFU VAL : 0x0000000FU - // .. .. reg_ddrc_hpr_max_starve_x32 = 0xf - // .. .. ==> 0XF8006008[21:11] = 0x0000000FU - // .. .. ==> MASK : 0x003FF800U VAL : 0x00007800U - // .. .. reg_ddrc_hpr_xact_run_length = 0xf - // .. .. ==> 0XF8006008[25:22] = 0x0000000FU - // .. .. ==> MASK : 0x03C00000U VAL : 0x03C00000U - // .. .. - EMIT_MASKWRITE(0XF8006008, 0x03FFFFFFU ,0x03C0780FU), - // .. .. reg_ddrc_lpr_min_non_critical_x32 = 0x1 - // .. .. ==> 0XF800600C[10:0] = 0x00000001U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000001U - // .. .. reg_ddrc_lpr_max_starve_x32 = 0x2 - // .. .. ==> 0XF800600C[21:11] = 0x00000002U - // .. .. ==> MASK : 0x003FF800U VAL : 0x00001000U - // .. .. reg_ddrc_lpr_xact_run_length = 0x8 - // .. .. ==> 0XF800600C[25:22] = 0x00000008U - // .. .. ==> MASK : 0x03C00000U VAL : 0x02000000U - // .. .. - EMIT_MASKWRITE(0XF800600C, 0x03FFFFFFU ,0x02001001U), - // .. .. reg_ddrc_w_min_non_critical_x32 = 0x1 - // .. .. ==> 0XF8006010[10:0] = 0x00000001U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000001U - // .. .. reg_ddrc_w_xact_run_length = 0x8 - // .. .. ==> 0XF8006010[14:11] = 0x00000008U - // .. .. ==> MASK : 0x00007800U VAL : 0x00004000U - // .. .. reg_ddrc_w_max_starve_x32 = 0x2 - // .. .. ==> 0XF8006010[25:15] = 0x00000002U - // .. .. ==> MASK : 0x03FF8000U VAL : 0x00010000U - // .. .. - EMIT_MASKWRITE(0XF8006010, 0x03FFFFFFU ,0x00014001U), - // .. .. reg_ddrc_t_rc = 0x1b - // .. .. ==> 0XF8006014[5:0] = 0x0000001BU - // .. .. ==> MASK : 0x0000003FU VAL : 0x0000001BU - // .. .. reg_ddrc_t_rfc_min = 0x56 - // .. .. ==> 0XF8006014[13:6] = 0x00000056U - // .. .. ==> MASK : 0x00003FC0U VAL : 0x00001580U - // .. .. reg_ddrc_post_selfref_gap_x32 = 0x10 - // .. .. ==> 0XF8006014[20:14] = 0x00000010U - // .. .. ==> MASK : 0x001FC000U VAL : 0x00040000U - // .. .. - EMIT_MASKWRITE(0XF8006014, 0x001FFFFFU ,0x0004159BU), - // .. .. reg_ddrc_wr2pre = 0x12 - // .. .. ==> 0XF8006018[4:0] = 0x00000012U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000012U - // .. .. reg_ddrc_powerdown_to_x32 = 0x6 - // .. .. ==> 0XF8006018[9:5] = 0x00000006U - // .. .. ==> MASK : 0x000003E0U VAL : 0x000000C0U - // .. .. reg_ddrc_t_faw = 0x10 - // .. .. ==> 0XF8006018[15:10] = 0x00000010U - // .. .. ==> MASK : 0x0000FC00U VAL : 0x00004000U - // .. .. reg_ddrc_t_ras_max = 0x24 - // .. .. ==> 0XF8006018[21:16] = 0x00000024U - // .. .. ==> MASK : 0x003F0000U VAL : 0x00240000U - // .. .. reg_ddrc_t_ras_min = 0x14 - // .. .. ==> 0XF8006018[26:22] = 0x00000014U - // .. .. ==> MASK : 0x07C00000U VAL : 0x05000000U - // .. .. reg_ddrc_t_cke = 0x4 - // .. .. ==> 0XF8006018[31:28] = 0x00000004U - // .. .. ==> MASK : 0xF0000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006018, 0xF7FFFFFFU ,0x452440D2U), - // .. .. reg_ddrc_write_latency = 0x5 - // .. .. ==> 0XF800601C[4:0] = 0x00000005U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000005U - // .. .. reg_ddrc_rd2wr = 0x7 - // .. .. ==> 0XF800601C[9:5] = 0x00000007U - // .. .. ==> MASK : 0x000003E0U VAL : 0x000000E0U - // .. .. reg_ddrc_wr2rd = 0xe - // .. .. ==> 0XF800601C[14:10] = 0x0000000EU - // .. .. ==> MASK : 0x00007C00U VAL : 0x00003800U - // .. .. reg_ddrc_t_xp = 0x4 - // .. .. ==> 0XF800601C[19:15] = 0x00000004U - // .. .. ==> MASK : 0x000F8000U VAL : 0x00020000U - // .. .. reg_ddrc_pad_pd = 0x0 - // .. .. ==> 0XF800601C[22:20] = 0x00000000U - // .. .. ==> MASK : 0x00700000U VAL : 0x00000000U - // .. .. reg_ddrc_rd2pre = 0x4 - // .. .. ==> 0XF800601C[27:23] = 0x00000004U - // .. .. ==> MASK : 0x0F800000U VAL : 0x02000000U - // .. .. reg_ddrc_t_rcd = 0x7 - // .. .. ==> 0XF800601C[31:28] = 0x00000007U - // .. .. ==> MASK : 0xF0000000U VAL : 0x70000000U - // .. .. - EMIT_MASKWRITE(0XF800601C, 0xFFFFFFFFU ,0x720238E5U), - // .. .. reg_ddrc_t_ccd = 0x4 - // .. .. ==> 0XF8006020[4:2] = 0x00000004U - // .. .. ==> MASK : 0x0000001CU VAL : 0x00000010U - // .. .. reg_ddrc_t_rrd = 0x4 - // .. .. ==> 0XF8006020[7:5] = 0x00000004U - // .. .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. .. reg_ddrc_refresh_margin = 0x2 - // .. .. ==> 0XF8006020[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. reg_ddrc_t_rp = 0x7 - // .. .. ==> 0XF8006020[15:12] = 0x00000007U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00007000U - // .. .. reg_ddrc_refresh_to_x32 = 0x8 - // .. .. ==> 0XF8006020[20:16] = 0x00000008U - // .. .. ==> MASK : 0x001F0000U VAL : 0x00080000U - // .. .. reg_ddrc_mobile = 0x0 - // .. .. ==> 0XF8006020[22:22] = 0x00000000U - // .. .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. .. reg_ddrc_en_dfi_dram_clk_disable = 0x0 - // .. .. ==> 0XF8006020[23:23] = 0x00000000U - // .. .. ==> MASK : 0x00800000U VAL : 0x00000000U - // .. .. reg_ddrc_read_latency = 0x7 - // .. .. ==> 0XF8006020[28:24] = 0x00000007U - // .. .. ==> MASK : 0x1F000000U VAL : 0x07000000U - // .. .. reg_phy_mode_ddr1_ddr2 = 0x1 - // .. .. ==> 0XF8006020[29:29] = 0x00000001U - // .. .. ==> MASK : 0x20000000U VAL : 0x20000000U - // .. .. reg_ddrc_dis_pad_pd = 0x0 - // .. .. ==> 0XF8006020[30:30] = 0x00000000U - // .. .. ==> MASK : 0x40000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006020, 0x7FDFFFFCU ,0x27087290U), - // .. .. reg_ddrc_en_2t_timing_mode = 0x0 - // .. .. ==> 0XF8006024[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_prefer_write = 0x0 - // .. .. ==> 0XF8006024[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_mr_wr = 0x0 - // .. .. ==> 0XF8006024[6:6] = 0x00000000U - // .. .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. .. reg_ddrc_mr_addr = 0x0 - // .. .. ==> 0XF8006024[8:7] = 0x00000000U - // .. .. ==> MASK : 0x00000180U VAL : 0x00000000U - // .. .. reg_ddrc_mr_data = 0x0 - // .. .. ==> 0XF8006024[24:9] = 0x00000000U - // .. .. ==> MASK : 0x01FFFE00U VAL : 0x00000000U - // .. .. ddrc_reg_mr_wr_busy = 0x0 - // .. .. ==> 0XF8006024[25:25] = 0x00000000U - // .. .. ==> MASK : 0x02000000U VAL : 0x00000000U - // .. .. reg_ddrc_mr_type = 0x0 - // .. .. ==> 0XF8006024[26:26] = 0x00000000U - // .. .. ==> MASK : 0x04000000U VAL : 0x00000000U - // .. .. reg_ddrc_mr_rdata_valid = 0x0 - // .. .. ==> 0XF8006024[27:27] = 0x00000000U - // .. .. ==> MASK : 0x08000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006024, 0x0FFFFFC3U ,0x00000000U), - // .. .. reg_ddrc_final_wait_x32 = 0x7 - // .. .. ==> 0XF8006028[6:0] = 0x00000007U - // .. .. ==> MASK : 0x0000007FU VAL : 0x00000007U - // .. .. reg_ddrc_pre_ocd_x32 = 0x0 - // .. .. ==> 0XF8006028[10:7] = 0x00000000U - // .. .. ==> MASK : 0x00000780U VAL : 0x00000000U - // .. .. reg_ddrc_t_mrd = 0x4 - // .. .. ==> 0XF8006028[13:11] = 0x00000004U - // .. .. ==> MASK : 0x00003800U VAL : 0x00002000U - // .. .. - EMIT_MASKWRITE(0XF8006028, 0x00003FFFU ,0x00002007U), - // .. .. reg_ddrc_emr2 = 0x8 - // .. .. ==> 0XF800602C[15:0] = 0x00000008U - // .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000008U - // .. .. reg_ddrc_emr3 = 0x0 - // .. .. ==> 0XF800602C[31:16] = 0x00000000U - // .. .. ==> MASK : 0xFFFF0000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800602C, 0xFFFFFFFFU ,0x00000008U), - // .. .. reg_ddrc_mr = 0x930 - // .. .. ==> 0XF8006030[15:0] = 0x00000930U - // .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000930U - // .. .. reg_ddrc_emr = 0x4 - // .. .. ==> 0XF8006030[31:16] = 0x00000004U - // .. .. ==> MASK : 0xFFFF0000U VAL : 0x00040000U - // .. .. - EMIT_MASKWRITE(0XF8006030, 0xFFFFFFFFU ,0x00040930U), - // .. .. reg_ddrc_burst_rdwr = 0x4 - // .. .. ==> 0XF8006034[3:0] = 0x00000004U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000004U - // .. .. reg_ddrc_pre_cke_x1024 = 0x105 - // .. .. ==> 0XF8006034[13:4] = 0x00000105U - // .. .. ==> MASK : 0x00003FF0U VAL : 0x00001050U - // .. .. reg_ddrc_post_cke_x1024 = 0x1 - // .. .. ==> 0XF8006034[25:16] = 0x00000001U - // .. .. ==> MASK : 0x03FF0000U VAL : 0x00010000U - // .. .. reg_ddrc_burstchop = 0x0 - // .. .. ==> 0XF8006034[28:28] = 0x00000000U - // .. .. ==> MASK : 0x10000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006034, 0x13FF3FFFU ,0x00011054U), - // .. .. reg_ddrc_force_low_pri_n = 0x0 - // .. .. ==> 0XF8006038[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_dis_dq = 0x0 - // .. .. ==> 0XF8006038[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006038, 0x00000003U ,0x00000000U), - // .. .. reg_ddrc_addrmap_bank_b0 = 0x7 - // .. .. ==> 0XF800603C[3:0] = 0x00000007U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000007U - // .. .. reg_ddrc_addrmap_bank_b1 = 0x7 - // .. .. ==> 0XF800603C[7:4] = 0x00000007U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000070U - // .. .. reg_ddrc_addrmap_bank_b2 = 0x7 - // .. .. ==> 0XF800603C[11:8] = 0x00000007U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000700U - // .. .. reg_ddrc_addrmap_col_b5 = 0x0 - // .. .. ==> 0XF800603C[15:12] = 0x00000000U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b6 = 0x0 - // .. .. ==> 0XF800603C[19:16] = 0x00000000U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800603C, 0x000FFFFFU ,0x00000777U), - // .. .. reg_ddrc_addrmap_col_b2 = 0x0 - // .. .. ==> 0XF8006040[3:0] = 0x00000000U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b3 = 0x0 - // .. .. ==> 0XF8006040[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b4 = 0x0 - // .. .. ==> 0XF8006040[11:8] = 0x00000000U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b7 = 0x0 - // .. .. ==> 0XF8006040[15:12] = 0x00000000U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b8 = 0x0 - // .. .. ==> 0XF8006040[19:16] = 0x00000000U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b9 = 0xf - // .. .. ==> 0XF8006040[23:20] = 0x0000000FU - // .. .. ==> MASK : 0x00F00000U VAL : 0x00F00000U - // .. .. reg_ddrc_addrmap_col_b10 = 0xf - // .. .. ==> 0XF8006040[27:24] = 0x0000000FU - // .. .. ==> MASK : 0x0F000000U VAL : 0x0F000000U - // .. .. reg_ddrc_addrmap_col_b11 = 0xf - // .. .. ==> 0XF8006040[31:28] = 0x0000000FU - // .. .. ==> MASK : 0xF0000000U VAL : 0xF0000000U - // .. .. - EMIT_MASKWRITE(0XF8006040, 0xFFFFFFFFU ,0xFFF00000U), - // .. .. reg_ddrc_addrmap_row_b0 = 0x6 - // .. .. ==> 0XF8006044[3:0] = 0x00000006U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000006U - // .. .. reg_ddrc_addrmap_row_b1 = 0x6 - // .. .. ==> 0XF8006044[7:4] = 0x00000006U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000060U - // .. .. reg_ddrc_addrmap_row_b2_11 = 0x6 - // .. .. ==> 0XF8006044[11:8] = 0x00000006U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000600U - // .. .. reg_ddrc_addrmap_row_b12 = 0x6 - // .. .. ==> 0XF8006044[15:12] = 0x00000006U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00006000U - // .. .. reg_ddrc_addrmap_row_b13 = 0x6 - // .. .. ==> 0XF8006044[19:16] = 0x00000006U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00060000U - // .. .. reg_ddrc_addrmap_row_b14 = 0x6 - // .. .. ==> 0XF8006044[23:20] = 0x00000006U - // .. .. ==> MASK : 0x00F00000U VAL : 0x00600000U - // .. .. reg_ddrc_addrmap_row_b15 = 0xf - // .. .. ==> 0XF8006044[27:24] = 0x0000000FU - // .. .. ==> MASK : 0x0F000000U VAL : 0x0F000000U - // .. .. - EMIT_MASKWRITE(0XF8006044, 0x0FFFFFFFU ,0x0F666666U), - // .. .. reg_phy_rd_local_odt = 0x0 - // .. .. ==> 0XF8006048[13:12] = 0x00000000U - // .. .. ==> MASK : 0x00003000U VAL : 0x00000000U - // .. .. reg_phy_wr_local_odt = 0x3 - // .. .. ==> 0XF8006048[15:14] = 0x00000003U - // .. .. ==> MASK : 0x0000C000U VAL : 0x0000C000U - // .. .. reg_phy_idle_local_odt = 0x3 - // .. .. ==> 0XF8006048[17:16] = 0x00000003U - // .. .. ==> MASK : 0x00030000U VAL : 0x00030000U - // .. .. - EMIT_MASKWRITE(0XF8006048, 0x0003F000U ,0x0003C000U), - // .. .. reg_phy_rd_cmd_to_data = 0x0 - // .. .. ==> 0XF8006050[3:0] = 0x00000000U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000000U - // .. .. reg_phy_wr_cmd_to_data = 0x0 - // .. .. ==> 0XF8006050[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. reg_phy_rdc_we_to_re_delay = 0x8 - // .. .. ==> 0XF8006050[11:8] = 0x00000008U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000800U - // .. .. reg_phy_rdc_fifo_rst_disable = 0x0 - // .. .. ==> 0XF8006050[15:15] = 0x00000000U - // .. .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. .. reg_phy_use_fixed_re = 0x1 - // .. .. ==> 0XF8006050[16:16] = 0x00000001U - // .. .. ==> MASK : 0x00010000U VAL : 0x00010000U - // .. .. reg_phy_rdc_fifo_rst_err_cnt_clr = 0x0 - // .. .. ==> 0XF8006050[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_phy_dis_phy_ctrl_rstn = 0x0 - // .. .. ==> 0XF8006050[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_phy_clk_stall_level = 0x0 - // .. .. ==> 0XF8006050[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_num_of_dq0 = 0x7 - // .. .. ==> 0XF8006050[27:24] = 0x00000007U - // .. .. ==> MASK : 0x0F000000U VAL : 0x07000000U - // .. .. reg_phy_wrlvl_num_of_dq0 = 0x7 - // .. .. ==> 0XF8006050[31:28] = 0x00000007U - // .. .. ==> MASK : 0xF0000000U VAL : 0x70000000U - // .. .. - EMIT_MASKWRITE(0XF8006050, 0xFF0F8FFFU ,0x77010800U), - // .. .. reg_ddrc_dis_dll_calib = 0x0 - // .. .. ==> 0XF8006058[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006058, 0x00010000U ,0x00000000U), - // .. .. reg_ddrc_rd_odt_delay = 0x3 - // .. .. ==> 0XF800605C[3:0] = 0x00000003U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000003U - // .. .. reg_ddrc_wr_odt_delay = 0x0 - // .. .. ==> 0XF800605C[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. reg_ddrc_rd_odt_hold = 0x0 - // .. .. ==> 0XF800605C[11:8] = 0x00000000U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000000U - // .. .. reg_ddrc_wr_odt_hold = 0x5 - // .. .. ==> 0XF800605C[15:12] = 0x00000005U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00005000U - // .. .. - EMIT_MASKWRITE(0XF800605C, 0x0000FFFFU ,0x00005003U), - // .. .. reg_ddrc_pageclose = 0x0 - // .. .. ==> 0XF8006060[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_lpr_num_entries = 0x1f - // .. .. ==> 0XF8006060[6:1] = 0x0000001FU - // .. .. ==> MASK : 0x0000007EU VAL : 0x0000003EU - // .. .. reg_ddrc_auto_pre_en = 0x0 - // .. .. ==> 0XF8006060[7:7] = 0x00000000U - // .. .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. .. reg_ddrc_refresh_update_level = 0x0 - // .. .. ==> 0XF8006060[8:8] = 0x00000000U - // .. .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. .. reg_ddrc_dis_wc = 0x0 - // .. .. ==> 0XF8006060[9:9] = 0x00000000U - // .. .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. .. reg_ddrc_dis_collision_page_opt = 0x0 - // .. .. ==> 0XF8006060[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_ddrc_selfref_en = 0x0 - // .. .. ==> 0XF8006060[12:12] = 0x00000000U - // .. .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006060, 0x000017FFU ,0x0000003EU), - // .. .. reg_ddrc_go2critical_hysteresis = 0x0 - // .. .. ==> 0XF8006064[12:5] = 0x00000000U - // .. .. ==> MASK : 0x00001FE0U VAL : 0x00000000U - // .. .. reg_arb_go2critical_en = 0x1 - // .. .. ==> 0XF8006064[17:17] = 0x00000001U - // .. .. ==> MASK : 0x00020000U VAL : 0x00020000U - // .. .. - EMIT_MASKWRITE(0XF8006064, 0x00021FE0U ,0x00020000U), - // .. .. reg_ddrc_wrlvl_ww = 0x41 - // .. .. ==> 0XF8006068[7:0] = 0x00000041U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000041U - // .. .. reg_ddrc_rdlvl_rr = 0x41 - // .. .. ==> 0XF8006068[15:8] = 0x00000041U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00004100U - // .. .. reg_ddrc_dfi_t_wlmrd = 0x28 - // .. .. ==> 0XF8006068[25:16] = 0x00000028U - // .. .. ==> MASK : 0x03FF0000U VAL : 0x00280000U - // .. .. - EMIT_MASKWRITE(0XF8006068, 0x03FFFFFFU ,0x00284141U), - // .. .. dfi_t_ctrlupd_interval_min_x1024 = 0x10 - // .. .. ==> 0XF800606C[7:0] = 0x00000010U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000010U - // .. .. dfi_t_ctrlupd_interval_max_x1024 = 0x16 - // .. .. ==> 0XF800606C[15:8] = 0x00000016U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00001600U - // .. .. - EMIT_MASKWRITE(0XF800606C, 0x0000FFFFU ,0x00001610U), - // .. .. reg_ddrc_dfi_t_ctrl_delay = 0x1 - // .. .. ==> 0XF8006078[3:0] = 0x00000001U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000001U - // .. .. reg_ddrc_dfi_t_dram_clk_disable = 0x1 - // .. .. ==> 0XF8006078[7:4] = 0x00000001U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000010U - // .. .. reg_ddrc_dfi_t_dram_clk_enable = 0x1 - // .. .. ==> 0XF8006078[11:8] = 0x00000001U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000100U - // .. .. reg_ddrc_t_cksre = 0x6 - // .. .. ==> 0XF8006078[15:12] = 0x00000006U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00006000U - // .. .. reg_ddrc_t_cksrx = 0x6 - // .. .. ==> 0XF8006078[19:16] = 0x00000006U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00060000U - // .. .. reg_ddrc_t_ckesr = 0x4 - // .. .. ==> 0XF8006078[25:20] = 0x00000004U - // .. .. ==> MASK : 0x03F00000U VAL : 0x00400000U - // .. .. - EMIT_MASKWRITE(0XF8006078, 0x03FFFFFFU ,0x00466111U), - // .. .. reg_ddrc_t_ckpde = 0x2 - // .. .. ==> 0XF800607C[3:0] = 0x00000002U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000002U - // .. .. reg_ddrc_t_ckpdx = 0x2 - // .. .. ==> 0XF800607C[7:4] = 0x00000002U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000020U - // .. .. reg_ddrc_t_ckdpde = 0x2 - // .. .. ==> 0XF800607C[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. reg_ddrc_t_ckdpdx = 0x2 - // .. .. ==> 0XF800607C[15:12] = 0x00000002U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00002000U - // .. .. reg_ddrc_t_ckcsx = 0x3 - // .. .. ==> 0XF800607C[19:16] = 0x00000003U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00030000U - // .. .. - EMIT_MASKWRITE(0XF800607C, 0x000FFFFFU ,0x00032222U), - // .. .. reg_ddrc_dis_auto_zq = 0x0 - // .. .. ==> 0XF80060A4[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_ddr3 = 0x1 - // .. .. ==> 0XF80060A4[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. reg_ddrc_t_mod = 0x200 - // .. .. ==> 0XF80060A4[11:2] = 0x00000200U - // .. .. ==> MASK : 0x00000FFCU VAL : 0x00000800U - // .. .. reg_ddrc_t_zq_long_nop = 0x200 - // .. .. ==> 0XF80060A4[21:12] = 0x00000200U - // .. .. ==> MASK : 0x003FF000U VAL : 0x00200000U - // .. .. reg_ddrc_t_zq_short_nop = 0x40 - // .. .. ==> 0XF80060A4[31:22] = 0x00000040U - // .. .. ==> MASK : 0xFFC00000U VAL : 0x10000000U - // .. .. - EMIT_MASKWRITE(0XF80060A4, 0xFFFFFFFFU ,0x10200802U), - // .. .. t_zq_short_interval_x1024 = 0xcb73 - // .. .. ==> 0XF80060A8[19:0] = 0x0000CB73U - // .. .. ==> MASK : 0x000FFFFFU VAL : 0x0000CB73U - // .. .. dram_rstn_x1024 = 0x69 - // .. .. ==> 0XF80060A8[27:20] = 0x00000069U - // .. .. ==> MASK : 0x0FF00000U VAL : 0x06900000U - // .. .. - EMIT_MASKWRITE(0XF80060A8, 0x0FFFFFFFU ,0x0690CB73U), - // .. .. deeppowerdown_en = 0x0 - // .. .. ==> 0XF80060AC[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. deeppowerdown_to_x1024 = 0xff - // .. .. ==> 0XF80060AC[8:1] = 0x000000FFU - // .. .. ==> MASK : 0x000001FEU VAL : 0x000001FEU - // .. .. - EMIT_MASKWRITE(0XF80060AC, 0x000001FFU ,0x000001FEU), - // .. .. dfi_wrlvl_max_x1024 = 0xfff - // .. .. ==> 0XF80060B0[11:0] = 0x00000FFFU - // .. .. ==> MASK : 0x00000FFFU VAL : 0x00000FFFU - // .. .. dfi_rdlvl_max_x1024 = 0xfff - // .. .. ==> 0XF80060B0[23:12] = 0x00000FFFU - // .. .. ==> MASK : 0x00FFF000U VAL : 0x00FFF000U - // .. .. ddrc_reg_twrlvl_max_error = 0x0 - // .. .. ==> 0XF80060B0[24:24] = 0x00000000U - // .. .. ==> MASK : 0x01000000U VAL : 0x00000000U - // .. .. ddrc_reg_trdlvl_max_error = 0x0 - // .. .. ==> 0XF80060B0[25:25] = 0x00000000U - // .. .. ==> MASK : 0x02000000U VAL : 0x00000000U - // .. .. reg_ddrc_dfi_wr_level_en = 0x1 - // .. .. ==> 0XF80060B0[26:26] = 0x00000001U - // .. .. ==> MASK : 0x04000000U VAL : 0x04000000U - // .. .. reg_ddrc_dfi_rd_dqs_gate_level = 0x1 - // .. .. ==> 0XF80060B0[27:27] = 0x00000001U - // .. .. ==> MASK : 0x08000000U VAL : 0x08000000U - // .. .. reg_ddrc_dfi_rd_data_eye_train = 0x1 - // .. .. ==> 0XF80060B0[28:28] = 0x00000001U - // .. .. ==> MASK : 0x10000000U VAL : 0x10000000U - // .. .. - EMIT_MASKWRITE(0XF80060B0, 0x1FFFFFFFU ,0x1CFFFFFFU), - // .. .. reg_ddrc_skip_ocd = 0x1 - // .. .. ==> 0XF80060B4[9:9] = 0x00000001U - // .. .. ==> MASK : 0x00000200U VAL : 0x00000200U - // .. .. - EMIT_MASKWRITE(0XF80060B4, 0x00000200U ,0x00000200U), - // .. .. reg_ddrc_dfi_t_rddata_en = 0x6 - // .. .. ==> 0XF80060B8[4:0] = 0x00000006U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000006U - // .. .. reg_ddrc_dfi_t_ctrlup_min = 0x3 - // .. .. ==> 0XF80060B8[14:5] = 0x00000003U - // .. .. ==> MASK : 0x00007FE0U VAL : 0x00000060U - // .. .. reg_ddrc_dfi_t_ctrlup_max = 0x40 - // .. .. ==> 0XF80060B8[24:15] = 0x00000040U - // .. .. ==> MASK : 0x01FF8000U VAL : 0x00200000U - // .. .. - EMIT_MASKWRITE(0XF80060B8, 0x01FFFFFFU ,0x00200066U), - // .. .. START: RESET ECC ERROR - // .. .. Clear_Uncorrectable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. Clear_Correctable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. - EMIT_MASKWRITE(0XF80060C4, 0x00000003U ,0x00000003U), - // .. .. FINISH: RESET ECC ERROR - // .. .. Clear_Uncorrectable_DRAM_ECC_error = 0x0 - // .. .. ==> 0XF80060C4[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. Clear_Correctable_DRAM_ECC_error = 0x0 - // .. .. ==> 0XF80060C4[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060C4, 0x00000003U ,0x00000000U), - // .. .. CORR_ECC_LOG_VALID = 0x0 - // .. .. ==> 0XF80060C8[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. ECC_CORRECTED_BIT_NUM = 0x0 - // .. .. ==> 0XF80060C8[7:1] = 0x00000000U - // .. .. ==> MASK : 0x000000FEU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060C8, 0x000000FFU ,0x00000000U), - // .. .. UNCORR_ECC_LOG_VALID = 0x0 - // .. .. ==> 0XF80060DC[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060DC, 0x00000001U ,0x00000000U), - // .. .. STAT_NUM_CORR_ERR = 0x0 - // .. .. ==> 0XF80060F0[15:8] = 0x00000000U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00000000U - // .. .. STAT_NUM_UNCORR_ERR = 0x0 - // .. .. ==> 0XF80060F0[7:0] = 0x00000000U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060F0, 0x0000FFFFU ,0x00000000U), - // .. .. reg_ddrc_ecc_mode = 0x0 - // .. .. ==> 0XF80060F4[2:0] = 0x00000000U - // .. .. ==> MASK : 0x00000007U VAL : 0x00000000U - // .. .. reg_ddrc_dis_scrub = 0x1 - // .. .. ==> 0XF80060F4[3:3] = 0x00000001U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000008U - // .. .. - EMIT_MASKWRITE(0XF80060F4, 0x0000000FU ,0x00000008U), - // .. .. reg_phy_dif_on = 0x0 - // .. .. ==> 0XF8006114[3:0] = 0x00000000U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000000U - // .. .. reg_phy_dif_off = 0x0 - // .. .. ==> 0XF8006114[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006114, 0x000000FFU ,0x00000000U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006118[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006118[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006118[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006118[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006118[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006118[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006118[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006118, 0x7FFFFFCFU ,0x40000001U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF800611C[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF800611C[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF800611C[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF800611C[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF800611C[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF800611C[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF800611C[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF800611C, 0x7FFFFFCFU ,0x40000001U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006120[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006120[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006120[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006120[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006120, 0x7FFFFFCFU ,0x40000001U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006124[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006124[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006124[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006124[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006124[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006124[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006124[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006124, 0x7FFFFFCFU ,0x40000001U), - // .. .. reg_phy_wrlvl_init_ratio = 0x1d - // .. .. ==> 0XF800612C[9:0] = 0x0000001DU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000001DU - // .. .. reg_phy_gatelvl_init_ratio = 0xf2 - // .. .. ==> 0XF800612C[19:10] = 0x000000F2U - // .. .. ==> MASK : 0x000FFC00U VAL : 0x0003C800U - // .. .. - EMIT_MASKWRITE(0XF800612C, 0x000FFFFFU ,0x0003C81DU), - // .. .. reg_phy_wrlvl_init_ratio = 0x12 - // .. .. ==> 0XF8006130[9:0] = 0x00000012U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000012U - // .. .. reg_phy_gatelvl_init_ratio = 0xd8 - // .. .. ==> 0XF8006130[19:10] = 0x000000D8U - // .. .. ==> MASK : 0x000FFC00U VAL : 0x00036000U - // .. .. - EMIT_MASKWRITE(0XF8006130, 0x000FFFFFU ,0x00036012U), - // .. .. reg_phy_wrlvl_init_ratio = 0xc - // .. .. ==> 0XF8006134[9:0] = 0x0000000CU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000000CU - // .. .. reg_phy_gatelvl_init_ratio = 0xde - // .. .. ==> 0XF8006134[19:10] = 0x000000DEU - // .. .. ==> MASK : 0x000FFC00U VAL : 0x00037800U - // .. .. - EMIT_MASKWRITE(0XF8006134, 0x000FFFFFU ,0x0003780CU), - // .. .. reg_phy_wrlvl_init_ratio = 0x21 - // .. .. ==> 0XF8006138[9:0] = 0x00000021U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000021U - // .. .. reg_phy_gatelvl_init_ratio = 0xee - // .. .. ==> 0XF8006138[19:10] = 0x000000EEU - // .. .. ==> MASK : 0x000FFC00U VAL : 0x0003B800U - // .. .. - EMIT_MASKWRITE(0XF8006138, 0x000FFFFFU ,0x0003B821U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF8006140[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006140[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006140[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006140, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF8006144[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006144[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006144[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006144, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF8006148[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006148[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006148[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006148, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF800614C[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF800614C[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF800614C[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800614C, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_wr_dqs_slave_ratio = 0x9d - // .. .. ==> 0XF8006154[9:0] = 0x0000009DU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000009DU - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006154[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006154[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006154, 0x000FFFFFU ,0x0000009DU), - // .. .. reg_phy_wr_dqs_slave_ratio = 0x92 - // .. .. ==> 0XF8006158[9:0] = 0x00000092U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000092U - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006158[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006158[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006158, 0x000FFFFFU ,0x00000092U), - // .. .. reg_phy_wr_dqs_slave_ratio = 0x8c - // .. .. ==> 0XF800615C[9:0] = 0x0000008CU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000008CU - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF800615C[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF800615C[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800615C, 0x000FFFFFU ,0x0000008CU), - // .. .. reg_phy_wr_dqs_slave_ratio = 0xa1 - // .. .. ==> 0XF8006160[9:0] = 0x000000A1U - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000A1U - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006160[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006160[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006160, 0x000FFFFFU ,0x000000A1U), - // .. .. reg_phy_fifo_we_slave_ratio = 0x147 - // .. .. ==> 0XF8006168[10:0] = 0x00000147U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000147U - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF8006168[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF8006168[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006168, 0x001FFFFFU ,0x00000147U), - // .. .. reg_phy_fifo_we_slave_ratio = 0x12d - // .. .. ==> 0XF800616C[10:0] = 0x0000012DU - // .. .. ==> MASK : 0x000007FFU VAL : 0x0000012DU - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF800616C[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF800616C[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800616C, 0x001FFFFFU ,0x0000012DU), - // .. .. reg_phy_fifo_we_slave_ratio = 0x133 - // .. .. ==> 0XF8006170[10:0] = 0x00000133U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000133U - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF8006170[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF8006170[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006170, 0x001FFFFFU ,0x00000133U), - // .. .. reg_phy_fifo_we_slave_ratio = 0x143 - // .. .. ==> 0XF8006174[10:0] = 0x00000143U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000143U - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF8006174[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF8006174[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006174, 0x001FFFFFU ,0x00000143U), - // .. .. reg_phy_wr_data_slave_ratio = 0xdd - // .. .. ==> 0XF800617C[9:0] = 0x000000DDU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000DDU - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF800617C[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF800617C[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800617C, 0x000FFFFFU ,0x000000DDU), - // .. .. reg_phy_wr_data_slave_ratio = 0xd2 - // .. .. ==> 0XF8006180[9:0] = 0x000000D2U - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000D2U - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF8006180[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF8006180[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006180, 0x000FFFFFU ,0x000000D2U), - // .. .. reg_phy_wr_data_slave_ratio = 0xcc - // .. .. ==> 0XF8006184[9:0] = 0x000000CCU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000CCU - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF8006184[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF8006184[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006184, 0x000FFFFFU ,0x000000CCU), - // .. .. reg_phy_wr_data_slave_ratio = 0xe1 - // .. .. ==> 0XF8006188[9:0] = 0x000000E1U - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000E1U - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF8006188[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF8006188[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006188, 0x000FFFFFU ,0x000000E1U), - // .. .. reg_phy_bl2 = 0x0 - // .. .. ==> 0XF8006190[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_at_spd_atpg = 0x0 - // .. .. ==> 0XF8006190[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_bist_enable = 0x0 - // .. .. ==> 0XF8006190[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_bist_force_err = 0x0 - // .. .. ==> 0XF8006190[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_bist_mode = 0x0 - // .. .. ==> 0XF8006190[6:5] = 0x00000000U - // .. .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. .. reg_phy_invert_clkout = 0x1 - // .. .. ==> 0XF8006190[7:7] = 0x00000001U - // .. .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. .. reg_phy_sel_logic = 0x0 - // .. .. ==> 0XF8006190[9:9] = 0x00000000U - // .. .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. .. reg_phy_ctrl_slave_ratio = 0x100 - // .. .. ==> 0XF8006190[19:10] = 0x00000100U - // .. .. ==> MASK : 0x000FFC00U VAL : 0x00040000U - // .. .. reg_phy_ctrl_slave_force = 0x0 - // .. .. ==> 0XF8006190[20:20] = 0x00000000U - // .. .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. .. reg_phy_ctrl_slave_delay = 0x0 - // .. .. ==> 0XF8006190[27:21] = 0x00000000U - // .. .. ==> MASK : 0x0FE00000U VAL : 0x00000000U - // .. .. reg_phy_lpddr = 0x0 - // .. .. ==> 0XF8006190[29:29] = 0x00000000U - // .. .. ==> MASK : 0x20000000U VAL : 0x00000000U - // .. .. reg_phy_cmd_latency = 0x0 - // .. .. ==> 0XF8006190[30:30] = 0x00000000U - // .. .. ==> MASK : 0x40000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006190, 0x6FFFFEFEU ,0x00040080U), - // .. .. reg_phy_wr_rl_delay = 0x2 - // .. .. ==> 0XF8006194[4:0] = 0x00000002U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000002U - // .. .. reg_phy_rd_rl_delay = 0x4 - // .. .. ==> 0XF8006194[9:5] = 0x00000004U - // .. .. ==> MASK : 0x000003E0U VAL : 0x00000080U - // .. .. reg_phy_dll_lock_diff = 0xf - // .. .. ==> 0XF8006194[13:10] = 0x0000000FU - // .. .. ==> MASK : 0x00003C00U VAL : 0x00003C00U - // .. .. reg_phy_use_wr_level = 0x1 - // .. .. ==> 0XF8006194[14:14] = 0x00000001U - // .. .. ==> MASK : 0x00004000U VAL : 0x00004000U - // .. .. reg_phy_use_rd_dqs_gate_level = 0x1 - // .. .. ==> 0XF8006194[15:15] = 0x00000001U - // .. .. ==> MASK : 0x00008000U VAL : 0x00008000U - // .. .. reg_phy_use_rd_data_eye_level = 0x1 - // .. .. ==> 0XF8006194[16:16] = 0x00000001U - // .. .. ==> MASK : 0x00010000U VAL : 0x00010000U - // .. .. reg_phy_dis_calib_rst = 0x0 - // .. .. ==> 0XF8006194[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_phy_ctrl_slave_delay = 0x0 - // .. .. ==> 0XF8006194[19:18] = 0x00000000U - // .. .. ==> MASK : 0x000C0000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006194, 0x000FFFFFU ,0x0001FC82U), - // .. .. reg_arb_page_addr_mask = 0x0 - // .. .. ==> 0XF8006204[31:0] = 0x00000000U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006204, 0xFFFFFFFFU ,0x00000000U), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF8006208[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF8006208[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF8006208[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF8006208[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006208, 0x000703FFU ,0x000003FFU), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF800620C[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF800620C[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF800620C[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF800620C[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800620C, 0x000703FFU ,0x000003FFU), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF8006210[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF8006210[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF8006210[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF8006210[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006210, 0x000703FFU ,0x000003FFU), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF8006214[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF8006214[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF8006214[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF8006214[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006214, 0x000703FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF8006218[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF8006218[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF8006218[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF8006218[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF8006218[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006218, 0x000F03FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF800621C[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF800621C[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF800621C[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF800621C[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF800621C[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800621C, 0x000F03FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF8006220[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF8006220[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF8006220[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF8006220[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF8006220[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006220, 0x000F03FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF8006224[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF8006224[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF8006224[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF8006224[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF8006224[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006224, 0x000F03FFU ,0x000003FFU), - // .. .. reg_ddrc_lpddr2 = 0x0 - // .. .. ==> 0XF80062A8[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_derate_enable = 0x0 - // .. .. ==> 0XF80062A8[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_ddrc_mr4_margin = 0x0 - // .. .. ==> 0XF80062A8[11:4] = 0x00000000U - // .. .. ==> MASK : 0x00000FF0U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80062A8, 0x00000FF5U ,0x00000000U), - // .. .. reg_ddrc_mr4_read_interval = 0x0 - // .. .. ==> 0XF80062AC[31:0] = 0x00000000U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80062AC, 0xFFFFFFFFU ,0x00000000U), - // .. .. reg_ddrc_min_stable_clock_x1 = 0x5 - // .. .. ==> 0XF80062B0[3:0] = 0x00000005U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000005U - // .. .. reg_ddrc_idle_after_reset_x32 = 0x12 - // .. .. ==> 0XF80062B0[11:4] = 0x00000012U - // .. .. ==> MASK : 0x00000FF0U VAL : 0x00000120U - // .. .. reg_ddrc_t_mrw = 0x5 - // .. .. ==> 0XF80062B0[21:12] = 0x00000005U - // .. .. ==> MASK : 0x003FF000U VAL : 0x00005000U - // .. .. - EMIT_MASKWRITE(0XF80062B0, 0x003FFFFFU ,0x00005125U), - // .. .. reg_ddrc_max_auto_init_x1024 = 0xa8 - // .. .. ==> 0XF80062B4[7:0] = 0x000000A8U - // .. .. ==> MASK : 0x000000FFU VAL : 0x000000A8U - // .. .. reg_ddrc_dev_zqinit_x32 = 0x12 - // .. .. ==> 0XF80062B4[17:8] = 0x00000012U - // .. .. ==> MASK : 0x0003FF00U VAL : 0x00001200U - // .. .. - EMIT_MASKWRITE(0XF80062B4, 0x0003FFFFU ,0x000012A8U), - // .. .. START: POLL ON DCI STATUS - // .. .. DONE = 1 - // .. .. ==> 0XF8000B74[13:13] = 0x00000001U - // .. .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. .. - EMIT_MASKPOLL(0XF8000B74, 0x00002000U), - // .. .. FINISH: POLL ON DCI STATUS - // .. .. START: UNLOCK DDR - // .. .. reg_ddrc_soft_rstb = 0x1 - // .. .. ==> 0XF8006000[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_ddrc_powerdown_en = 0x0 - // .. .. ==> 0XF8006000[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_data_bus_width = 0x0 - // .. .. ==> 0XF8006000[3:2] = 0x00000000U - // .. .. ==> MASK : 0x0000000CU VAL : 0x00000000U - // .. .. reg_ddrc_burst8_refresh = 0x0 - // .. .. ==> 0XF8006000[6:4] = 0x00000000U - // .. .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. .. reg_ddrc_rdwr_idle_gap = 1 - // .. .. ==> 0XF8006000[13:7] = 0x00000001U - // .. .. ==> MASK : 0x00003F80U VAL : 0x00000080U - // .. .. reg_ddrc_dis_rd_bypass = 0x0 - // .. .. ==> 0XF8006000[14:14] = 0x00000000U - // .. .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_act_bypass = 0x0 - // .. .. ==> 0XF8006000[15:15] = 0x00000000U - // .. .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_auto_refresh = 0x0 - // .. .. ==> 0XF8006000[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006000, 0x0001FFFFU ,0x00000081U), - // .. .. FINISH: UNLOCK DDR - // .. .. START: CHECK DDR STATUS - // .. .. ddrc_reg_operating_mode = 1 - // .. .. ==> 0XF8006054[2:0] = 0x00000001U - // .. .. ==> MASK : 0x00000007U VAL : 0x00000001U - // .. .. - EMIT_MASKPOLL(0XF8006054, 0x00000007U), - // .. .. FINISH: CHECK DDR STATUS - // .. FINISH: DDR INITIALIZATION - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_mio_init_data_3_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: OCM REMAPPING - // .. VREF_EN = 0x1 - // .. ==> 0XF8000B00[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. VREF_SEL = 0x0 - // .. ==> 0XF8000B00[6:4] = 0x00000000U - // .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B00, 0x00000071U ,0x00000001U), - // .. FINISH: OCM REMAPPING - // .. START: DDRIOB SETTINGS - // .. reserved_INP_POWER = 0x0 - // .. ==> 0XF8000B40[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x0 - // .. ==> 0XF8000B40[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. DCI_UPDATE_B = 0x0 - // .. ==> 0XF8000B40[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x0 - // .. ==> 0XF8000B40[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. DCI_TYPE = 0x0 - // .. ==> 0XF8000B40[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. IBUF_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B40[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B40[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B40[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B40[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B40, 0x00000FFFU ,0x00000600U), - // .. reserved_INP_POWER = 0x0 - // .. ==> 0XF8000B44[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x0 - // .. ==> 0XF8000B44[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. DCI_UPDATE_B = 0x0 - // .. ==> 0XF8000B44[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x0 - // .. ==> 0XF8000B44[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. DCI_TYPE = 0x0 - // .. ==> 0XF8000B44[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. IBUF_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B44[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B44[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B44[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B44[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B44, 0x00000FFFU ,0x00000600U), - // .. reserved_INP_POWER = 0x0 - // .. ==> 0XF8000B48[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x1 - // .. ==> 0XF8000B48[2:1] = 0x00000001U - // .. ==> MASK : 0x00000006U VAL : 0x00000002U - // .. DCI_UPDATE_B = 0x0 - // .. ==> 0XF8000B48[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B48[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCI_TYPE = 0x3 - // .. ==> 0XF8000B48[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B48[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B48[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B48[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B48[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B48, 0x00000FFFU ,0x00000672U), - // .. reserved_INP_POWER = 0x0 - // .. ==> 0XF8000B4C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x1 - // .. ==> 0XF8000B4C[2:1] = 0x00000001U - // .. ==> MASK : 0x00000006U VAL : 0x00000002U - // .. DCI_UPDATE_B = 0x0 - // .. ==> 0XF8000B4C[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B4C[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCI_TYPE = 0x3 - // .. ==> 0XF8000B4C[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B4C[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B4C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B4C[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B4C[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B4C, 0x00000FFFU ,0x00000672U), - // .. reserved_INP_POWER = 0x0 - // .. ==> 0XF8000B50[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x2 - // .. ==> 0XF8000B50[2:1] = 0x00000002U - // .. ==> MASK : 0x00000006U VAL : 0x00000004U - // .. DCI_UPDATE_B = 0x0 - // .. ==> 0XF8000B50[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B50[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCI_TYPE = 0x3 - // .. ==> 0XF8000B50[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B50[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B50[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B50[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B50[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B50, 0x00000FFFU ,0x00000674U), - // .. reserved_INP_POWER = 0x0 - // .. ==> 0XF8000B54[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x2 - // .. ==> 0XF8000B54[2:1] = 0x00000002U - // .. ==> MASK : 0x00000006U VAL : 0x00000004U - // .. DCI_UPDATE_B = 0x0 - // .. ==> 0XF8000B54[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B54[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCI_TYPE = 0x3 - // .. ==> 0XF8000B54[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B54[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B54[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B54[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B54[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B54, 0x00000FFFU ,0x00000674U), - // .. reserved_INP_POWER = 0x0 - // .. ==> 0XF8000B58[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x0 - // .. ==> 0XF8000B58[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. DCI_UPDATE_B = 0x0 - // .. ==> 0XF8000B58[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x0 - // .. ==> 0XF8000B58[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. DCI_TYPE = 0x0 - // .. ==> 0XF8000B58[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. IBUF_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B58[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B58[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B58[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B58[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B58, 0x00000FFFU ,0x00000600U), - // .. reserved_DRIVE_P = 0x1c - // .. ==> 0XF8000B5C[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. reserved_DRIVE_N = 0xc - // .. ==> 0XF8000B5C[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. reserved_SLEW_P = 0x3 - // .. ==> 0XF8000B5C[18:14] = 0x00000003U - // .. ==> MASK : 0x0007C000U VAL : 0x0000C000U - // .. reserved_SLEW_N = 0x3 - // .. ==> 0XF8000B5C[23:19] = 0x00000003U - // .. ==> MASK : 0x00F80000U VAL : 0x00180000U - // .. reserved_GTL = 0x0 - // .. ==> 0XF8000B5C[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. reserved_RTERM = 0x0 - // .. ==> 0XF8000B5C[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B5C, 0xFFFFFFFFU ,0x0018C61CU), - // .. reserved_DRIVE_P = 0x1c - // .. ==> 0XF8000B60[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. reserved_DRIVE_N = 0xc - // .. ==> 0XF8000B60[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. reserved_SLEW_P = 0x6 - // .. ==> 0XF8000B60[18:14] = 0x00000006U - // .. ==> MASK : 0x0007C000U VAL : 0x00018000U - // .. reserved_SLEW_N = 0x1f - // .. ==> 0XF8000B60[23:19] = 0x0000001FU - // .. ==> MASK : 0x00F80000U VAL : 0x00F80000U - // .. reserved_GTL = 0x0 - // .. ==> 0XF8000B60[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. reserved_RTERM = 0x0 - // .. ==> 0XF8000B60[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B60, 0xFFFFFFFFU ,0x00F9861CU), - // .. reserved_DRIVE_P = 0x1c - // .. ==> 0XF8000B64[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. reserved_DRIVE_N = 0xc - // .. ==> 0XF8000B64[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. reserved_SLEW_P = 0x6 - // .. ==> 0XF8000B64[18:14] = 0x00000006U - // .. ==> MASK : 0x0007C000U VAL : 0x00018000U - // .. reserved_SLEW_N = 0x1f - // .. ==> 0XF8000B64[23:19] = 0x0000001FU - // .. ==> MASK : 0x00F80000U VAL : 0x00F80000U - // .. reserved_GTL = 0x0 - // .. ==> 0XF8000B64[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. reserved_RTERM = 0x0 - // .. ==> 0XF8000B64[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B64, 0xFFFFFFFFU ,0x00F9861CU), - // .. reserved_DRIVE_P = 0x1c - // .. ==> 0XF8000B68[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. reserved_DRIVE_N = 0xc - // .. ==> 0XF8000B68[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. reserved_SLEW_P = 0x6 - // .. ==> 0XF8000B68[18:14] = 0x00000006U - // .. ==> MASK : 0x0007C000U VAL : 0x00018000U - // .. reserved_SLEW_N = 0x1f - // .. ==> 0XF8000B68[23:19] = 0x0000001FU - // .. ==> MASK : 0x00F80000U VAL : 0x00F80000U - // .. reserved_GTL = 0x0 - // .. ==> 0XF8000B68[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. reserved_RTERM = 0x0 - // .. ==> 0XF8000B68[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B68, 0xFFFFFFFFU ,0x00F9861CU), - // .. VREF_INT_EN = 0x1 - // .. ==> 0XF8000B6C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. VREF_SEL = 0x4 - // .. ==> 0XF8000B6C[4:1] = 0x00000004U - // .. ==> MASK : 0x0000001EU VAL : 0x00000008U - // .. VREF_EXT_EN = 0x0 - // .. ==> 0XF8000B6C[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. reserved_VREF_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[8:7] = 0x00000000U - // .. ==> MASK : 0x00000180U VAL : 0x00000000U - // .. REFIO_EN = 0x1 - // .. ==> 0XF8000B6C[9:9] = 0x00000001U - // .. ==> MASK : 0x00000200U VAL : 0x00000200U - // .. reserved_REFIO_TEST = 0x3 - // .. ==> 0XF8000B6C[11:10] = 0x00000003U - // .. ==> MASK : 0x00000C00U VAL : 0x00000C00U - // .. reserved_REFIO_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. reserved_DRST_B_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. reserved_CKE_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[14:14] = 0x00000000U - // .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B6C, 0x00007FFFU ,0x00000E09U), - // .. .. START: ASSERT RESET - // .. .. RESET = 1 - // .. .. ==> 0XF8000B70[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. - EMIT_MASKWRITE(0XF8000B70, 0x00000001U ,0x00000001U), - // .. .. FINISH: ASSERT RESET - // .. .. START: DEASSERT RESET - // .. .. RESET = 0 - // .. .. ==> 0XF8000B70[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reserved_VRN_OUT = 0x1 - // .. .. ==> 0XF8000B70[5:5] = 0x00000001U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000020U - // .. .. - EMIT_MASKWRITE(0XF8000B70, 0x00000021U ,0x00000020U), - // .. .. FINISH: DEASSERT RESET - // .. .. RESET = 0x1 - // .. .. ==> 0XF8000B70[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. ENABLE = 0x1 - // .. .. ==> 0XF8000B70[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. reserved_VRP_TRI = 0x0 - // .. .. ==> 0XF8000B70[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reserved_VRN_TRI = 0x0 - // .. .. ==> 0XF8000B70[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reserved_VRP_OUT = 0x0 - // .. .. ==> 0XF8000B70[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reserved_VRN_OUT = 0x1 - // .. .. ==> 0XF8000B70[5:5] = 0x00000001U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000020U - // .. .. NREF_OPT1 = 0x0 - // .. .. ==> 0XF8000B70[7:6] = 0x00000000U - // .. .. ==> MASK : 0x000000C0U VAL : 0x00000000U - // .. .. NREF_OPT2 = 0x0 - // .. .. ==> 0XF8000B70[10:8] = 0x00000000U - // .. .. ==> MASK : 0x00000700U VAL : 0x00000000U - // .. .. NREF_OPT4 = 0x1 - // .. .. ==> 0XF8000B70[13:11] = 0x00000001U - // .. .. ==> MASK : 0x00003800U VAL : 0x00000800U - // .. .. PREF_OPT1 = 0x0 - // .. .. ==> 0XF8000B70[15:14] = 0x00000000U - // .. .. ==> MASK : 0x0000C000U VAL : 0x00000000U - // .. .. PREF_OPT2 = 0x0 - // .. .. ==> 0XF8000B70[19:17] = 0x00000000U - // .. .. ==> MASK : 0x000E0000U VAL : 0x00000000U - // .. .. UPDATE_CONTROL = 0x0 - // .. .. ==> 0XF8000B70[20:20] = 0x00000000U - // .. .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. .. reserved_INIT_COMPLETE = 0x0 - // .. .. ==> 0XF8000B70[21:21] = 0x00000000U - // .. .. ==> MASK : 0x00200000U VAL : 0x00000000U - // .. .. reserved_TST_CLK = 0x0 - // .. .. ==> 0XF8000B70[22:22] = 0x00000000U - // .. .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. .. reserved_TST_HLN = 0x0 - // .. .. ==> 0XF8000B70[23:23] = 0x00000000U - // .. .. ==> MASK : 0x00800000U VAL : 0x00000000U - // .. .. reserved_TST_HLP = 0x0 - // .. .. ==> 0XF8000B70[24:24] = 0x00000000U - // .. .. ==> MASK : 0x01000000U VAL : 0x00000000U - // .. .. reserved_TST_RST = 0x0 - // .. .. ==> 0XF8000B70[25:25] = 0x00000000U - // .. .. ==> MASK : 0x02000000U VAL : 0x00000000U - // .. .. reserved_INT_DCI_EN = 0x0 - // .. .. ==> 0XF8000B70[26:26] = 0x00000000U - // .. .. ==> MASK : 0x04000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8000B70, 0x07FEFFFFU ,0x00000823U), - // .. FINISH: DDRIOB SETTINGS - // .. START: MIO PROGRAMMING - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000700[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. Speed = 0 - // .. ==> 0XF8000700[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000700[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000700[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000700[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000700, 0x00003F01U ,0x00001201U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000704[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000704[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000704[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000704[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000704[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000704[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000704[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000704[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000704[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000704, 0x00003FFFU ,0x00001202U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000708[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000708[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000708[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000708[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000708[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000708[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000708[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000708[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000708[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000708, 0x00003FFFU ,0x00000202U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800070C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF800070C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800070C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800070C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800070C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800070C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800070C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF800070C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800070C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800070C, 0x00003FFFU ,0x00000202U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000710[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000710[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000710[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000710[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000710[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000710[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000710[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000710[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000710[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000710, 0x00003FFFU ,0x00000202U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000714[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000714[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000714[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000714[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000714[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000714[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000714[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000714[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000714[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000714, 0x00003FFFU ,0x00000202U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000718[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000718[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000718[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000718[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000718[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000718[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000718[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000718[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000718[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000718, 0x00003FFFU ,0x00000202U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800071C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800071C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF800071C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800071C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800071C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800071C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800071C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF800071C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800071C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800071C, 0x00003FFFU ,0x00000200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000720[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000720[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000720[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000720[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000720[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000720[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000720[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000720[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000720[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000720, 0x00003FFFU ,0x00000202U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000724[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000724[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000724[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000724[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000724[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000724[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000724[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000724[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000724[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000724, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000728[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000728[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000728[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000728[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000728[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000728[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000728[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000728[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000728[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000728, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800072C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800072C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF800072C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800072C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800072C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800072C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800072C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800072C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800072C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800072C, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000730[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000730[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000730[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000730[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000730[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000730[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000730[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000730[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000730[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000730, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000734[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000734[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000734[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000734[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000734[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000734[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000734[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000734[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000734[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000734, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000738[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000738[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000738[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000738[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000738[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000738[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000738[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000738[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000738[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000738, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800073C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. Speed = 0 - // .. ==> 0XF800073C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800073C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800073C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800073C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800073C, 0x00003F01U ,0x00001201U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000740[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000740[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000740[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000740[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000740[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000740[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF8000740[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF8000740[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000740[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000740, 0x00003FFFU ,0x00002802U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000744[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000744[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000744[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000744[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000744[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000744[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF8000744[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF8000744[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000744[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000744, 0x00003FFFU ,0x00002802U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000748[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000748[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000748[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000748[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000748[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000748[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF8000748[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF8000748[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000748[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000748, 0x00003FFFU ,0x00002802U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800074C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF800074C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800074C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800074C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800074C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800074C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF800074C[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF800074C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 1 - // .. ==> 0XF800074C[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF800074C, 0x00003FFFU ,0x00002802U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000750[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000750[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000750[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000750[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000750[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000750[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF8000750[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF8000750[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000750[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000750, 0x00003FFFU ,0x00002802U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000754[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000754[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000754[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000754[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000754[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000754[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF8000754[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF8000754[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000754[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000754, 0x00003FFFU ,0x00002802U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000758[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000758[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000758[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000758[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000758[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000758[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF8000758[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF8000758[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000758[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000758, 0x00003FFFU ,0x00000803U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800075C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF800075C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800075C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800075C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800075C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800075C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF800075C[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF800075C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800075C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800075C, 0x00003FFFU ,0x00000803U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000760[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000760[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000760[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000760[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000760[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000760[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF8000760[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF8000760[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000760[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000760, 0x00003FFFU ,0x00000803U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000764[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000764[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000764[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000764[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000764[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000764[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF8000764[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF8000764[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000764[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000764, 0x00003FFFU ,0x00000803U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000768[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000768[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000768[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000768[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000768[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000768[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF8000768[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF8000768[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000768[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000768, 0x00003FFFU ,0x00000803U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800076C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF800076C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800076C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800076C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800076C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800076C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF800076C[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF800076C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800076C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800076C, 0x00003FFFU ,0x00000803U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000770[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000770[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000770[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000770[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000770[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000770[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000770[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000770[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000770[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000770, 0x00003FFFU ,0x00000204U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000774[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF8000774[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000774[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000774[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000774[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000774[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000774[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000774[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000774[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000774, 0x00003FFFU ,0x00000205U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000778[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000778[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000778[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000778[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000778[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000778[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000778[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000778[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000778[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000778, 0x00003FFFU ,0x00000204U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800077C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF800077C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF800077C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF800077C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800077C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800077C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800077C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF800077C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800077C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800077C, 0x00003FFFU ,0x00000205U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000780[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000780[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000780[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000780[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000780[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000780[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000780[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000780[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000780[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000780, 0x00003FFFU ,0x00000204U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000784[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000784[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000784[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000784[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000784[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000784[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000784[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000784[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000784[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000784, 0x00003FFFU ,0x00000204U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000788[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000788[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000788[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000788[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000788[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000788[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000788[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000788[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000788[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000788, 0x00003FFFU ,0x00000204U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800078C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800078C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF800078C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF800078C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800078C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800078C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800078C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF800078C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800078C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800078C, 0x00003FFFU ,0x00000204U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000790[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF8000790[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000790[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000790[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000790[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000790[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000790[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000790[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000790[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000790, 0x00003FFFU ,0x00000205U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000794[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000794[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000794[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000794[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000794[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000794[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000794[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000794[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000794[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000794, 0x00003FFFU ,0x00000204U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000798[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000798[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000798[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000798[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000798[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000798[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000798[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000798[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000798[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000798, 0x00003FFFU ,0x00000204U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800079C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800079C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF800079C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF800079C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800079C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800079C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800079C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF800079C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800079C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800079C, 0x00003FFFU ,0x00000204U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007A0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007A0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007A0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007A0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007A0[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007A0[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007A0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007A0[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007A0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007A0, 0x00003FFFU ,0x00000280U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007A4[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007A4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007A4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007A4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007A4[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007A4[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007A4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007A4[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007A4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007A4, 0x00003FFFU ,0x00000280U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007A8[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007A8[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007A8[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007A8[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007A8[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007A8[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007A8[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007A8[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007A8[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007A8, 0x00003FFFU ,0x00000280U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007AC[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007AC[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007AC[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007AC[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007AC[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007AC[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007AC[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007AC[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007AC[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007AC, 0x00003FFFU ,0x00000280U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007B0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007B0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007B0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007B0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007B0[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007B0[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007B0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007B0[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007B0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007B0, 0x00003FFFU ,0x00000280U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007B4[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007B4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007B4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007B4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007B4[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007B4[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007B4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007B4[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007B4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007B4, 0x00003FFFU ,0x00000280U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF80007B8[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF80007B8[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007B8[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007B8[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 1 - // .. ==> 0XF80007B8[7:5] = 0x00000001U - // .. ==> MASK : 0x000000E0U VAL : 0x00000020U - // .. Speed = 0 - // .. ==> 0XF80007B8[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007B8[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007B8[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007B8[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007B8, 0x00003FFFU ,0x00001221U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007BC[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007BC[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007BC[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007BC[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 1 - // .. ==> 0XF80007BC[7:5] = 0x00000001U - // .. ==> MASK : 0x000000E0U VAL : 0x00000020U - // .. Speed = 0 - // .. ==> 0XF80007BC[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007BC[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007BC[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007BC[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007BC, 0x00003FFFU ,0x00001220U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007C0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007C0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007C0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007C0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 7 - // .. ==> 0XF80007C0[7:5] = 0x00000007U - // .. ==> MASK : 0x000000E0U VAL : 0x000000E0U - // .. Speed = 0 - // .. ==> 0XF80007C0[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007C0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007C0[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007C0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007C0, 0x00003FFFU ,0x000002E0U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF80007C4[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF80007C4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007C4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007C4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 7 - // .. ==> 0XF80007C4[7:5] = 0x00000007U - // .. ==> MASK : 0x000000E0U VAL : 0x000000E0U - // .. Speed = 0 - // .. ==> 0XF80007C4[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007C4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007C4[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007C4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007C4, 0x00003FFFU ,0x000002E1U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007C8[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007C8[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007C8[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007C8[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 2 - // .. ==> 0XF80007C8[7:5] = 0x00000002U - // .. ==> MASK : 0x000000E0U VAL : 0x00000040U - // .. Speed = 0 - // .. ==> 0XF80007C8[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007C8[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007C8[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007C8[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007C8, 0x00003FFFU ,0x00001240U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007CC[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007CC[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007CC[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007CC[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 2 - // .. ==> 0XF80007CC[7:5] = 0x00000002U - // .. ==> MASK : 0x000000E0U VAL : 0x00000040U - // .. Speed = 0 - // .. ==> 0XF80007CC[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007CC[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007CC[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007CC[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007CC, 0x00003FFFU ,0x00001240U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007D0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007D0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007D0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007D0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007D0[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007D0[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007D0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007D0[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007D0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007D0, 0x00003FFFU ,0x00000280U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007D4[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007D4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007D4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007D4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007D4[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007D4[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007D4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007D4[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007D4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007D4, 0x00003FFFU ,0x00000280U), - // .. SDIO0_WP_SEL = 15 - // .. ==> 0XF8000830[5:0] = 0x0000000FU - // .. ==> MASK : 0x0000003FU VAL : 0x0000000FU - // .. SDIO0_CD_SEL = 0 - // .. ==> 0XF8000830[21:16] = 0x00000000U - // .. ==> MASK : 0x003F0000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000830, 0x003F003FU ,0x0000000FU), - // .. FINISH: MIO PROGRAMMING - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_peripherals_init_data_3_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: DDR TERM/IBUF_DISABLE_MODE SETTINGS - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B48[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B48[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B48, 0x00000180U ,0x00000180U), - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B4C[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B4C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B4C, 0x00000180U ,0x00000180U), - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B50[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B50[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B50, 0x00000180U ,0x00000180U), - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B54[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B54[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B54, 0x00000180U ,0x00000180U), - // .. FINISH: DDR TERM/IBUF_DISABLE_MODE SETTINGS - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // .. START: SRAM/NOR SET OPMODE - // .. FINISH: SRAM/NOR SET OPMODE - // .. START: TRACE CURRENT PORT SIZE - // .. FINISH: TRACE CURRENT PORT SIZE - // .. START: UART REGISTERS - // .. BDIV = 0x6 - // .. ==> 0XE0001034[7:0] = 0x00000006U - // .. ==> MASK : 0x000000FFU VAL : 0x00000006U - // .. - EMIT_MASKWRITE(0XE0001034, 0x000000FFU ,0x00000006U), - // .. CD = 0x3e - // .. ==> 0XE0001018[15:0] = 0x0000003EU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000003EU - // .. - EMIT_MASKWRITE(0XE0001018, 0x0000FFFFU ,0x0000003EU), - // .. STPBRK = 0x0 - // .. ==> 0XE0001000[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. STTBRK = 0x0 - // .. ==> 0XE0001000[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. RSTTO = 0x0 - // .. ==> 0XE0001000[6:6] = 0x00000000U - // .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. TXDIS = 0x0 - // .. ==> 0XE0001000[5:5] = 0x00000000U - // .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. TXEN = 0x1 - // .. ==> 0XE0001000[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. RXDIS = 0x0 - // .. ==> 0XE0001000[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. RXEN = 0x1 - // .. ==> 0XE0001000[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. TXRES = 0x1 - // .. ==> 0XE0001000[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. RXRES = 0x1 - // .. ==> 0XE0001000[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. - EMIT_MASKWRITE(0XE0001000, 0x000001FFU ,0x00000017U), - // .. CHMODE = 0x0 - // .. ==> 0XE0001004[9:8] = 0x00000000U - // .. ==> MASK : 0x00000300U VAL : 0x00000000U - // .. NBSTOP = 0x0 - // .. ==> 0XE0001004[7:6] = 0x00000000U - // .. ==> MASK : 0x000000C0U VAL : 0x00000000U - // .. PAR = 0x4 - // .. ==> 0XE0001004[5:3] = 0x00000004U - // .. ==> MASK : 0x00000038U VAL : 0x00000020U - // .. CHRL = 0x0 - // .. ==> 0XE0001004[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. CLKS = 0x0 - // .. ==> 0XE0001004[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XE0001004, 0x000003FFU ,0x00000020U), - // .. FINISH: UART REGISTERS - // .. START: QSPI REGISTERS - // .. Holdb_dr = 1 - // .. ==> 0XE000D000[19:19] = 0x00000001U - // .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. - EMIT_MASKWRITE(0XE000D000, 0x00080000U ,0x00080000U), - // .. FINISH: QSPI REGISTERS - // .. START: PL POWER ON RESET REGISTERS - // .. PCFG_POR_CNT_4K = 0 - // .. ==> 0XF8007000[29:29] = 0x00000000U - // .. ==> MASK : 0x20000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8007000, 0x20000000U ,0x00000000U), - // .. FINISH: PL POWER ON RESET REGISTERS - // .. START: SMC TIMING CALCULATION REGISTER UPDATE - // .. .. START: NAND SET CYCLE - // .. .. FINISH: NAND SET CYCLE - // .. .. START: OPMODE - // .. .. FINISH: OPMODE - // .. .. START: DIRECT COMMAND - // .. .. FINISH: DIRECT COMMAND - // .. .. START: SRAM/NOR CS0 SET CYCLE - // .. .. FINISH: SRAM/NOR CS0 SET CYCLE - // .. .. START: DIRECT COMMAND - // .. .. FINISH: DIRECT COMMAND - // .. .. START: NOR CS0 BASE ADDRESS - // .. .. FINISH: NOR CS0 BASE ADDRESS - // .. .. START: SRAM/NOR CS1 SET CYCLE - // .. .. FINISH: SRAM/NOR CS1 SET CYCLE - // .. .. START: DIRECT COMMAND - // .. .. FINISH: DIRECT COMMAND - // .. .. START: NOR CS1 BASE ADDRESS - // .. .. FINISH: NOR CS1 BASE ADDRESS - // .. .. START: USB RESET - // .. .. .. START: DIR MODE BANK 0 - // .. .. .. DIRECTION_0 = 0x2880 - // .. .. .. ==> 0XE000A204[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A204, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: DIR MODE BANK 0 - // .. .. .. START: DIR MODE BANK 1 - // .. .. .. FINISH: DIR MODE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xff7f - // .. .. .. ==> 0XE000A000[31:16] = 0x0000FF7FU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xFF7F0000U - // .. .. .. DATA_0_LSW = 0x80 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000080U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000080U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xFF7F0080U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. START: OUTPUT ENABLE BANK 0 - // .. .. .. OP_ENABLE_0 = 0x2880 - // .. .. .. ==> 0XE000A208[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A208, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: OUTPUT ENABLE BANK 0 - // .. .. .. START: OUTPUT ENABLE BANK 1 - // .. .. .. FINISH: OUTPUT ENABLE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. MASK_0_LSW = 0xff7f - // .. .. .. ==> 0XE000A000[31:16] = 0x0000FF7FU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xFF7F0000U - // .. .. .. DATA_0_LSW = 0x0 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xFF7F0000U), - // .. .. .. FINISH: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xff7f - // .. .. .. ==> 0XE000A000[31:16] = 0x0000FF7FU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xFF7F0000U - // .. .. .. DATA_0_LSW = 0x80 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000080U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000080U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xFF7F0080U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. FINISH: USB RESET - // .. .. START: ENET RESET - // .. .. .. START: DIR MODE BANK 0 - // .. .. .. DIRECTION_0 = 0x2880 - // .. .. .. ==> 0XE000A204[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A204, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: DIR MODE BANK 0 - // .. .. .. START: DIR MODE BANK 1 - // .. .. .. FINISH: DIR MODE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xf7ff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000F7FFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xF7FF0000U - // .. .. .. DATA_0_LSW = 0x800 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000800U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000800U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xF7FF0800U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. START: OUTPUT ENABLE BANK 0 - // .. .. .. OP_ENABLE_0 = 0x2880 - // .. .. .. ==> 0XE000A208[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A208, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: OUTPUT ENABLE BANK 0 - // .. .. .. START: OUTPUT ENABLE BANK 1 - // .. .. .. FINISH: OUTPUT ENABLE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. MASK_0_LSW = 0xf7ff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000F7FFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xF7FF0000U - // .. .. .. DATA_0_LSW = 0x0 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xF7FF0000U), - // .. .. .. FINISH: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xf7ff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000F7FFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xF7FF0000U - // .. .. .. DATA_0_LSW = 0x800 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000800U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000800U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xF7FF0800U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. FINISH: ENET RESET - // .. .. START: I2C RESET - // .. .. .. START: DIR MODE GPIO BANK0 - // .. .. .. DIRECTION_0 = 0x2880 - // .. .. .. ==> 0XE000A204[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A204, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: DIR MODE GPIO BANK0 - // .. .. .. START: DIR MODE GPIO BANK1 - // .. .. .. FINISH: DIR MODE GPIO BANK1 - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xdfff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000DFFFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xDFFF0000U - // .. .. .. DATA_0_LSW = 0x2000 - // .. .. .. ==> 0XE000A000[15:0] = 0x00002000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00002000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xDFFF2000U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. START: OUTPUT ENABLE - // .. .. .. OP_ENABLE_0 = 0x2880 - // .. .. .. ==> 0XE000A208[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A208, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: OUTPUT ENABLE - // .. .. .. START: OUTPUT ENABLE - // .. .. .. FINISH: OUTPUT ENABLE - // .. .. .. START: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. MASK_0_LSW = 0xdfff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000DFFFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xDFFF0000U - // .. .. .. DATA_0_LSW = 0x0 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xDFFF0000U), - // .. .. .. FINISH: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xdfff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000DFFFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xDFFF0000U - // .. .. .. DATA_0_LSW = 0x2000 - // .. .. .. ==> 0XE000A000[15:0] = 0x00002000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00002000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xDFFF2000U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. FINISH: I2C RESET - // .. FINISH: SMC TIMING CALCULATION REGISTER UPDATE - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_post_config_3_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: ENABLING LEVEL SHIFTER - // .. USER_LVL_INP_EN_0 = 1 - // .. ==> 0XF8000900[3:3] = 0x00000001U - // .. ==> MASK : 0x00000008U VAL : 0x00000008U - // .. USER_LVL_OUT_EN_0 = 1 - // .. ==> 0XF8000900[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. USER_LVL_INP_EN_1 = 1 - // .. ==> 0XF8000900[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. USER_LVL_OUT_EN_1 = 1 - // .. ==> 0XF8000900[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. - EMIT_MASKWRITE(0XF8000900, 0x0000000FU ,0x0000000FU), - // .. FINISH: ENABLING LEVEL SHIFTER - // .. START: FPGA RESETS TO 0 - // .. reserved_3 = 0 - // .. ==> 0XF8000240[31:25] = 0x00000000U - // .. ==> MASK : 0xFE000000U VAL : 0x00000000U - // .. reserved_FPGA_ACP_RST = 0 - // .. ==> 0XF8000240[24:24] = 0x00000000U - // .. ==> MASK : 0x01000000U VAL : 0x00000000U - // .. reserved_FPGA_AXDS3_RST = 0 - // .. ==> 0XF8000240[23:23] = 0x00000000U - // .. ==> MASK : 0x00800000U VAL : 0x00000000U - // .. reserved_FPGA_AXDS2_RST = 0 - // .. ==> 0XF8000240[22:22] = 0x00000000U - // .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. reserved_FPGA_AXDS1_RST = 0 - // .. ==> 0XF8000240[21:21] = 0x00000000U - // .. ==> MASK : 0x00200000U VAL : 0x00000000U - // .. reserved_FPGA_AXDS0_RST = 0 - // .. ==> 0XF8000240[20:20] = 0x00000000U - // .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. reserved_2 = 0 - // .. ==> 0XF8000240[19:18] = 0x00000000U - // .. ==> MASK : 0x000C0000U VAL : 0x00000000U - // .. reserved_FSSW1_FPGA_RST = 0 - // .. ==> 0XF8000240[17:17] = 0x00000000U - // .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. reserved_FSSW0_FPGA_RST = 0 - // .. ==> 0XF8000240[16:16] = 0x00000000U - // .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. reserved_1 = 0 - // .. ==> 0XF8000240[15:14] = 0x00000000U - // .. ==> MASK : 0x0000C000U VAL : 0x00000000U - // .. reserved_FPGA_FMSW1_RST = 0 - // .. ==> 0XF8000240[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. reserved_FPGA_FMSW0_RST = 0 - // .. ==> 0XF8000240[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. reserved_FPGA_DMA3_RST = 0 - // .. ==> 0XF8000240[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. reserved_FPGA_DMA2_RST = 0 - // .. ==> 0XF8000240[10:10] = 0x00000000U - // .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. reserved_FPGA_DMA1_RST = 0 - // .. ==> 0XF8000240[9:9] = 0x00000000U - // .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. reserved_FPGA_DMA0_RST = 0 - // .. ==> 0XF8000240[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. reserved = 0 - // .. ==> 0XF8000240[7:4] = 0x00000000U - // .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. FPGA3_OUT_RST = 0 - // .. ==> 0XF8000240[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. FPGA2_OUT_RST = 0 - // .. ==> 0XF8000240[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. FPGA1_OUT_RST = 0 - // .. ==> 0XF8000240[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. FPGA0_OUT_RST = 0 - // .. ==> 0XF8000240[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000240, 0xFFFFFFFFU ,0x00000000U), - // .. FINISH: FPGA RESETS TO 0 - // .. START: AFI REGISTERS - // .. .. START: AFI0 REGISTERS - // .. .. FINISH: AFI0 REGISTERS - // .. .. START: AFI1 REGISTERS - // .. .. FINISH: AFI1 REGISTERS - // .. .. START: AFI2 REGISTERS - // .. .. FINISH: AFI2 REGISTERS - // .. .. START: AFI3 REGISTERS - // .. .. FINISH: AFI3 REGISTERS - // .. FINISH: AFI REGISTERS - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_pll_init_data_2_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: PLL SLCR REGISTERS - // .. .. START: ARM PLL INIT - // .. .. PLL_RES = 0x2 - // .. .. ==> 0XF8000110[7:4] = 0x00000002U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000020U - // .. .. PLL_CP = 0x2 - // .. .. ==> 0XF8000110[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. LOCK_CNT = 0xfa - // .. .. ==> 0XF8000110[21:12] = 0x000000FAU - // .. .. ==> MASK : 0x003FF000U VAL : 0x000FA000U - // .. .. - EMIT_MASKWRITE(0XF8000110, 0x003FFFF0U ,0x000FA220U), - // .. .. .. START: UPDATE FB_DIV - // .. .. .. PLL_FDIV = 0x28 - // .. .. .. ==> 0XF8000100[18:12] = 0x00000028U - // .. .. .. ==> MASK : 0x0007F000U VAL : 0x00028000U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x0007F000U ,0x00028000U), - // .. .. .. FINISH: UPDATE FB_DIV - // .. .. .. START: BY PASS PLL - // .. .. .. PLL_BYPASS_FORCE = 1 - // .. .. .. ==> 0XF8000100[4:4] = 0x00000001U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000010U ,0x00000010U), - // .. .. .. FINISH: BY PASS PLL - // .. .. .. START: ASSERT RESET - // .. .. .. PLL_RESET = 1 - // .. .. .. ==> 0XF8000100[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000001U ,0x00000001U), - // .. .. .. FINISH: ASSERT RESET - // .. .. .. START: DEASSERT RESET - // .. .. .. PLL_RESET = 0 - // .. .. .. ==> 0XF8000100[0:0] = 0x00000000U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000001U ,0x00000000U), - // .. .. .. FINISH: DEASSERT RESET - // .. .. .. START: CHECK PLL STATUS - // .. .. .. ARM_PLL_LOCK = 1 - // .. .. .. ==> 0XF800010C[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKPOLL(0XF800010C, 0x00000001U), - // .. .. .. FINISH: CHECK PLL STATUS - // .. .. .. START: REMOVE PLL BY PASS - // .. .. .. PLL_BYPASS_FORCE = 0 - // .. .. .. ==> 0XF8000100[4:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000010U ,0x00000000U), - // .. .. .. FINISH: REMOVE PLL BY PASS - // .. .. .. SRCSEL = 0x0 - // .. .. .. ==> 0XF8000120[5:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. .. .. DIVISOR = 0x2 - // .. .. .. ==> 0XF8000120[13:8] = 0x00000002U - // .. .. .. ==> MASK : 0x00003F00U VAL : 0x00000200U - // .. .. .. CPU_6OR4XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[24:24] = 0x00000001U - // .. .. .. ==> MASK : 0x01000000U VAL : 0x01000000U - // .. .. .. CPU_3OR2XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[25:25] = 0x00000001U - // .. .. .. ==> MASK : 0x02000000U VAL : 0x02000000U - // .. .. .. CPU_2XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[26:26] = 0x00000001U - // .. .. .. ==> MASK : 0x04000000U VAL : 0x04000000U - // .. .. .. CPU_1XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[27:27] = 0x00000001U - // .. .. .. ==> MASK : 0x08000000U VAL : 0x08000000U - // .. .. .. CPU_PERI_CLKACT = 0x1 - // .. .. .. ==> 0XF8000120[28:28] = 0x00000001U - // .. .. .. ==> MASK : 0x10000000U VAL : 0x10000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000120, 0x1F003F30U ,0x1F000200U), - // .. .. FINISH: ARM PLL INIT - // .. .. START: DDR PLL INIT - // .. .. PLL_RES = 0x2 - // .. .. ==> 0XF8000114[7:4] = 0x00000002U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000020U - // .. .. PLL_CP = 0x2 - // .. .. ==> 0XF8000114[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. LOCK_CNT = 0x12c - // .. .. ==> 0XF8000114[21:12] = 0x0000012CU - // .. .. ==> MASK : 0x003FF000U VAL : 0x0012C000U - // .. .. - EMIT_MASKWRITE(0XF8000114, 0x003FFFF0U ,0x0012C220U), - // .. .. .. START: UPDATE FB_DIV - // .. .. .. PLL_FDIV = 0x20 - // .. .. .. ==> 0XF8000104[18:12] = 0x00000020U - // .. .. .. ==> MASK : 0x0007F000U VAL : 0x00020000U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x0007F000U ,0x00020000U), - // .. .. .. FINISH: UPDATE FB_DIV - // .. .. .. START: BY PASS PLL - // .. .. .. PLL_BYPASS_FORCE = 1 - // .. .. .. ==> 0XF8000104[4:4] = 0x00000001U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000010U ,0x00000010U), - // .. .. .. FINISH: BY PASS PLL - // .. .. .. START: ASSERT RESET - // .. .. .. PLL_RESET = 1 - // .. .. .. ==> 0XF8000104[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000001U ,0x00000001U), - // .. .. .. FINISH: ASSERT RESET - // .. .. .. START: DEASSERT RESET - // .. .. .. PLL_RESET = 0 - // .. .. .. ==> 0XF8000104[0:0] = 0x00000000U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000001U ,0x00000000U), - // .. .. .. FINISH: DEASSERT RESET - // .. .. .. START: CHECK PLL STATUS - // .. .. .. DDR_PLL_LOCK = 1 - // .. .. .. ==> 0XF800010C[1:1] = 0x00000001U - // .. .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. .. - EMIT_MASKPOLL(0XF800010C, 0x00000002U), - // .. .. .. FINISH: CHECK PLL STATUS - // .. .. .. START: REMOVE PLL BY PASS - // .. .. .. PLL_BYPASS_FORCE = 0 - // .. .. .. ==> 0XF8000104[4:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000010U ,0x00000000U), - // .. .. .. FINISH: REMOVE PLL BY PASS - // .. .. .. DDR_3XCLKACT = 0x1 - // .. .. .. ==> 0XF8000124[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. DDR_2XCLKACT = 0x1 - // .. .. .. ==> 0XF8000124[1:1] = 0x00000001U - // .. .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. .. DDR_3XCLK_DIVISOR = 0x2 - // .. .. .. ==> 0XF8000124[25:20] = 0x00000002U - // .. .. .. ==> MASK : 0x03F00000U VAL : 0x00200000U - // .. .. .. DDR_2XCLK_DIVISOR = 0x3 - // .. .. .. ==> 0XF8000124[31:26] = 0x00000003U - // .. .. .. ==> MASK : 0xFC000000U VAL : 0x0C000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000124, 0xFFF00003U ,0x0C200003U), - // .. .. FINISH: DDR PLL INIT - // .. .. START: IO PLL INIT - // .. .. PLL_RES = 0xc - // .. .. ==> 0XF8000118[7:4] = 0x0000000CU - // .. .. ==> MASK : 0x000000F0U VAL : 0x000000C0U - // .. .. PLL_CP = 0x2 - // .. .. ==> 0XF8000118[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. LOCK_CNT = 0x145 - // .. .. ==> 0XF8000118[21:12] = 0x00000145U - // .. .. ==> MASK : 0x003FF000U VAL : 0x00145000U - // .. .. - EMIT_MASKWRITE(0XF8000118, 0x003FFFF0U ,0x001452C0U), - // .. .. .. START: UPDATE FB_DIV - // .. .. .. PLL_FDIV = 0x1e - // .. .. .. ==> 0XF8000108[18:12] = 0x0000001EU - // .. .. .. ==> MASK : 0x0007F000U VAL : 0x0001E000U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x0007F000U ,0x0001E000U), - // .. .. .. FINISH: UPDATE FB_DIV - // .. .. .. START: BY PASS PLL - // .. .. .. PLL_BYPASS_FORCE = 1 - // .. .. .. ==> 0XF8000108[4:4] = 0x00000001U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000010U ,0x00000010U), - // .. .. .. FINISH: BY PASS PLL - // .. .. .. START: ASSERT RESET - // .. .. .. PLL_RESET = 1 - // .. .. .. ==> 0XF8000108[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000001U ,0x00000001U), - // .. .. .. FINISH: ASSERT RESET - // .. .. .. START: DEASSERT RESET - // .. .. .. PLL_RESET = 0 - // .. .. .. ==> 0XF8000108[0:0] = 0x00000000U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000001U ,0x00000000U), - // .. .. .. FINISH: DEASSERT RESET - // .. .. .. START: CHECK PLL STATUS - // .. .. .. IO_PLL_LOCK = 1 - // .. .. .. ==> 0XF800010C[2:2] = 0x00000001U - // .. .. .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. .. .. - EMIT_MASKPOLL(0XF800010C, 0x00000004U), - // .. .. .. FINISH: CHECK PLL STATUS - // .. .. .. START: REMOVE PLL BY PASS - // .. .. .. PLL_BYPASS_FORCE = 0 - // .. .. .. ==> 0XF8000108[4:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000010U ,0x00000000U), - // .. .. .. FINISH: REMOVE PLL BY PASS - // .. .. FINISH: IO PLL INIT - // .. FINISH: PLL SLCR REGISTERS - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_clock_init_data_2_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: CLOCK CONTROL SLCR REGISTERS - // .. CLKACT = 0x1 - // .. ==> 0XF8000128[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. DIVISOR0 = 0x23 - // .. ==> 0XF8000128[13:8] = 0x00000023U - // .. ==> MASK : 0x00003F00U VAL : 0x00002300U - // .. DIVISOR1 = 0x3 - // .. ==> 0XF8000128[25:20] = 0x00000003U - // .. ==> MASK : 0x03F00000U VAL : 0x00300000U - // .. - EMIT_MASKWRITE(0XF8000128, 0x03F03F01U ,0x00302301U), - // .. CLKACT = 0x1 - // .. ==> 0XF8000138[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000138[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000138, 0x00000011U ,0x00000001U), - // .. CLKACT = 0x1 - // .. ==> 0XF8000140[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000140[6:4] = 0x00000000U - // .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. DIVISOR = 0x8 - // .. ==> 0XF8000140[13:8] = 0x00000008U - // .. ==> MASK : 0x00003F00U VAL : 0x00000800U - // .. DIVISOR1 = 0x5 - // .. ==> 0XF8000140[25:20] = 0x00000005U - // .. ==> MASK : 0x03F00000U VAL : 0x00500000U - // .. - EMIT_MASKWRITE(0XF8000140, 0x03F03F71U ,0x00500801U), - // .. CLKACT = 0x1 - // .. ==> 0XF800014C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF800014C[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x5 - // .. ==> 0XF800014C[13:8] = 0x00000005U - // .. ==> MASK : 0x00003F00U VAL : 0x00000500U - // .. - EMIT_MASKWRITE(0XF800014C, 0x00003F31U ,0x00000501U), - // .. CLKACT0 = 0x1 - // .. ==> 0XF8000150[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. CLKACT1 = 0x0 - // .. ==> 0XF8000150[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000150[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x14 - // .. ==> 0XF8000150[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. - EMIT_MASKWRITE(0XF8000150, 0x00003F33U ,0x00001401U), - // .. CLKACT0 = 0x0 - // .. ==> 0XF8000154[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. CLKACT1 = 0x1 - // .. ==> 0XF8000154[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000154[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x14 - // .. ==> 0XF8000154[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. - EMIT_MASKWRITE(0XF8000154, 0x00003F33U ,0x00001402U), - // .. CLKACT0 = 0x1 - // .. ==> 0XF800015C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. CLKACT1 = 0x0 - // .. ==> 0XF800015C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. SRCSEL = 0x0 - // .. ==> 0XF800015C[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0xe - // .. ==> 0XF800015C[13:8] = 0x0000000EU - // .. ==> MASK : 0x00003F00U VAL : 0x00000E00U - // .. DIVISOR1 = 0x3 - // .. ==> 0XF800015C[25:20] = 0x00000003U - // .. ==> MASK : 0x03F00000U VAL : 0x00300000U - // .. - EMIT_MASKWRITE(0XF800015C, 0x03F03F33U ,0x00300E01U), - // .. CAN0_MUX = 0x0 - // .. ==> 0XF8000160[5:0] = 0x00000000U - // .. ==> MASK : 0x0000003FU VAL : 0x00000000U - // .. CAN0_REF_SEL = 0x0 - // .. ==> 0XF8000160[6:6] = 0x00000000U - // .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. CAN1_MUX = 0x0 - // .. ==> 0XF8000160[21:16] = 0x00000000U - // .. ==> MASK : 0x003F0000U VAL : 0x00000000U - // .. CAN1_REF_SEL = 0x0 - // .. ==> 0XF8000160[22:22] = 0x00000000U - // .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000160, 0x007F007FU ,0x00000000U), - // .. CLKACT = 0x1 - // .. ==> 0XF8000168[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000168[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x5 - // .. ==> 0XF8000168[13:8] = 0x00000005U - // .. ==> MASK : 0x00003F00U VAL : 0x00000500U - // .. - EMIT_MASKWRITE(0XF8000168, 0x00003F31U ,0x00000501U), - // .. SRCSEL = 0x0 - // .. ==> 0XF8000170[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF8000170[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF8000170[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF8000170, 0x03F03F30U ,0x00101400U), - // .. SRCSEL = 0x0 - // .. ==> 0XF8000180[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF8000180[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF8000180[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF8000180, 0x03F03F30U ,0x00101400U), - // .. SRCSEL = 0x0 - // .. ==> 0XF8000190[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF8000190[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF8000190[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF8000190, 0x03F03F30U ,0x00101400U), - // .. SRCSEL = 0x0 - // .. ==> 0XF80001A0[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF80001A0[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF80001A0[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF80001A0, 0x03F03F30U ,0x00101400U), - // .. CLK_621_TRUE = 0x1 - // .. ==> 0XF80001C4[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. - EMIT_MASKWRITE(0XF80001C4, 0x00000001U ,0x00000001U), - // .. DMA_CPU_2XCLKACT = 0x1 - // .. ==> 0XF800012C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. USB0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. USB1_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[3:3] = 0x00000001U - // .. ==> MASK : 0x00000008U VAL : 0x00000008U - // .. GEM0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[6:6] = 0x00000001U - // .. ==> MASK : 0x00000040U VAL : 0x00000040U - // .. GEM1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. SDI0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[10:10] = 0x00000001U - // .. ==> MASK : 0x00000400U VAL : 0x00000400U - // .. SDI1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. SPI0_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[14:14] = 0x00000000U - // .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. SPI1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[15:15] = 0x00000000U - // .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. CAN0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[16:16] = 0x00000001U - // .. ==> MASK : 0x00010000U VAL : 0x00010000U - // .. CAN1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[17:17] = 0x00000000U - // .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. I2C0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[18:18] = 0x00000001U - // .. ==> MASK : 0x00040000U VAL : 0x00040000U - // .. I2C1_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[19:19] = 0x00000001U - // .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. UART0_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[20:20] = 0x00000000U - // .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. UART1_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[21:21] = 0x00000001U - // .. ==> MASK : 0x00200000U VAL : 0x00200000U - // .. GPIO_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[22:22] = 0x00000001U - // .. ==> MASK : 0x00400000U VAL : 0x00400000U - // .. LQSPI_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[23:23] = 0x00000001U - // .. ==> MASK : 0x00800000U VAL : 0x00800000U - // .. SMC_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[24:24] = 0x00000001U - // .. ==> MASK : 0x01000000U VAL : 0x01000000U - // .. - EMIT_MASKWRITE(0XF800012C, 0x01FFCCCDU ,0x01ED044DU), - // .. FINISH: CLOCK CONTROL SLCR REGISTERS - // .. START: THIS SHOULD BE BLANK - // .. FINISH: THIS SHOULD BE BLANK - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_ddr_init_data_2_0[] = { - // START: top - // .. START: DDR INITIALIZATION - // .. .. START: LOCK DDR - // .. .. reg_ddrc_soft_rstb = 0 - // .. .. ==> 0XF8006000[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_powerdown_en = 0x0 - // .. .. ==> 0XF8006000[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_data_bus_width = 0x0 - // .. .. ==> 0XF8006000[3:2] = 0x00000000U - // .. .. ==> MASK : 0x0000000CU VAL : 0x00000000U - // .. .. reg_ddrc_burst8_refresh = 0x0 - // .. .. ==> 0XF8006000[6:4] = 0x00000000U - // .. .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. .. reg_ddrc_rdwr_idle_gap = 0x1 - // .. .. ==> 0XF8006000[13:7] = 0x00000001U - // .. .. ==> MASK : 0x00003F80U VAL : 0x00000080U - // .. .. reg_ddrc_dis_rd_bypass = 0x0 - // .. .. ==> 0XF8006000[14:14] = 0x00000000U - // .. .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_act_bypass = 0x0 - // .. .. ==> 0XF8006000[15:15] = 0x00000000U - // .. .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_auto_refresh = 0x0 - // .. .. ==> 0XF8006000[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006000, 0x0001FFFFU ,0x00000080U), - // .. .. FINISH: LOCK DDR - // .. .. reg_ddrc_t_rfc_nom_x32 = 0x81 - // .. .. ==> 0XF8006004[11:0] = 0x00000081U - // .. .. ==> MASK : 0x00000FFFU VAL : 0x00000081U - // .. .. reg_ddrc_active_ranks = 0x1 - // .. .. ==> 0XF8006004[13:12] = 0x00000001U - // .. .. ==> MASK : 0x00003000U VAL : 0x00001000U - // .. .. reg_ddrc_addrmap_cs_bit0 = 0x0 - // .. .. ==> 0XF8006004[18:14] = 0x00000000U - // .. .. ==> MASK : 0x0007C000U VAL : 0x00000000U - // .. .. reg_ddrc_wr_odt_block = 0x1 - // .. .. ==> 0XF8006004[20:19] = 0x00000001U - // .. .. ==> MASK : 0x00180000U VAL : 0x00080000U - // .. .. reg_ddrc_diff_rank_rd_2cycle_gap = 0x0 - // .. .. ==> 0XF8006004[21:21] = 0x00000000U - // .. .. ==> MASK : 0x00200000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_cs_bit1 = 0x0 - // .. .. ==> 0XF8006004[26:22] = 0x00000000U - // .. .. ==> MASK : 0x07C00000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_open_bank = 0x0 - // .. .. ==> 0XF8006004[27:27] = 0x00000000U - // .. .. ==> MASK : 0x08000000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_4bank_ram = 0x0 - // .. .. ==> 0XF8006004[28:28] = 0x00000000U - // .. .. ==> MASK : 0x10000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006004, 0x1FFFFFFFU ,0x00081081U), - // .. .. reg_ddrc_hpr_min_non_critical_x32 = 0xf - // .. .. ==> 0XF8006008[10:0] = 0x0000000FU - // .. .. ==> MASK : 0x000007FFU VAL : 0x0000000FU - // .. .. reg_ddrc_hpr_max_starve_x32 = 0xf - // .. .. ==> 0XF8006008[21:11] = 0x0000000FU - // .. .. ==> MASK : 0x003FF800U VAL : 0x00007800U - // .. .. reg_ddrc_hpr_xact_run_length = 0xf - // .. .. ==> 0XF8006008[25:22] = 0x0000000FU - // .. .. ==> MASK : 0x03C00000U VAL : 0x03C00000U - // .. .. - EMIT_MASKWRITE(0XF8006008, 0x03FFFFFFU ,0x03C0780FU), - // .. .. reg_ddrc_lpr_min_non_critical_x32 = 0x1 - // .. .. ==> 0XF800600C[10:0] = 0x00000001U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000001U - // .. .. reg_ddrc_lpr_max_starve_x32 = 0x2 - // .. .. ==> 0XF800600C[21:11] = 0x00000002U - // .. .. ==> MASK : 0x003FF800U VAL : 0x00001000U - // .. .. reg_ddrc_lpr_xact_run_length = 0x8 - // .. .. ==> 0XF800600C[25:22] = 0x00000008U - // .. .. ==> MASK : 0x03C00000U VAL : 0x02000000U - // .. .. - EMIT_MASKWRITE(0XF800600C, 0x03FFFFFFU ,0x02001001U), - // .. .. reg_ddrc_w_min_non_critical_x32 = 0x1 - // .. .. ==> 0XF8006010[10:0] = 0x00000001U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000001U - // .. .. reg_ddrc_w_xact_run_length = 0x8 - // .. .. ==> 0XF8006010[14:11] = 0x00000008U - // .. .. ==> MASK : 0x00007800U VAL : 0x00004000U - // .. .. reg_ddrc_w_max_starve_x32 = 0x2 - // .. .. ==> 0XF8006010[25:15] = 0x00000002U - // .. .. ==> MASK : 0x03FF8000U VAL : 0x00010000U - // .. .. - EMIT_MASKWRITE(0XF8006010, 0x03FFFFFFU ,0x00014001U), - // .. .. reg_ddrc_t_rc = 0x1b - // .. .. ==> 0XF8006014[5:0] = 0x0000001BU - // .. .. ==> MASK : 0x0000003FU VAL : 0x0000001BU - // .. .. reg_ddrc_t_rfc_min = 0x56 - // .. .. ==> 0XF8006014[13:6] = 0x00000056U - // .. .. ==> MASK : 0x00003FC0U VAL : 0x00001580U - // .. .. reg_ddrc_post_selfref_gap_x32 = 0x10 - // .. .. ==> 0XF8006014[20:14] = 0x00000010U - // .. .. ==> MASK : 0x001FC000U VAL : 0x00040000U - // .. .. - EMIT_MASKWRITE(0XF8006014, 0x001FFFFFU ,0x0004159BU), - // .. .. reg_ddrc_wr2pre = 0x12 - // .. .. ==> 0XF8006018[4:0] = 0x00000012U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000012U - // .. .. reg_ddrc_powerdown_to_x32 = 0x6 - // .. .. ==> 0XF8006018[9:5] = 0x00000006U - // .. .. ==> MASK : 0x000003E0U VAL : 0x000000C0U - // .. .. reg_ddrc_t_faw = 0x10 - // .. .. ==> 0XF8006018[15:10] = 0x00000010U - // .. .. ==> MASK : 0x0000FC00U VAL : 0x00004000U - // .. .. reg_ddrc_t_ras_max = 0x24 - // .. .. ==> 0XF8006018[21:16] = 0x00000024U - // .. .. ==> MASK : 0x003F0000U VAL : 0x00240000U - // .. .. reg_ddrc_t_ras_min = 0x14 - // .. .. ==> 0XF8006018[26:22] = 0x00000014U - // .. .. ==> MASK : 0x07C00000U VAL : 0x05000000U - // .. .. reg_ddrc_t_cke = 0x4 - // .. .. ==> 0XF8006018[31:28] = 0x00000004U - // .. .. ==> MASK : 0xF0000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006018, 0xF7FFFFFFU ,0x452440D2U), - // .. .. reg_ddrc_write_latency = 0x5 - // .. .. ==> 0XF800601C[4:0] = 0x00000005U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000005U - // .. .. reg_ddrc_rd2wr = 0x7 - // .. .. ==> 0XF800601C[9:5] = 0x00000007U - // .. .. ==> MASK : 0x000003E0U VAL : 0x000000E0U - // .. .. reg_ddrc_wr2rd = 0xe - // .. .. ==> 0XF800601C[14:10] = 0x0000000EU - // .. .. ==> MASK : 0x00007C00U VAL : 0x00003800U - // .. .. reg_ddrc_t_xp = 0x4 - // .. .. ==> 0XF800601C[19:15] = 0x00000004U - // .. .. ==> MASK : 0x000F8000U VAL : 0x00020000U - // .. .. reg_ddrc_pad_pd = 0x0 - // .. .. ==> 0XF800601C[22:20] = 0x00000000U - // .. .. ==> MASK : 0x00700000U VAL : 0x00000000U - // .. .. reg_ddrc_rd2pre = 0x4 - // .. .. ==> 0XF800601C[27:23] = 0x00000004U - // .. .. ==> MASK : 0x0F800000U VAL : 0x02000000U - // .. .. reg_ddrc_t_rcd = 0x7 - // .. .. ==> 0XF800601C[31:28] = 0x00000007U - // .. .. ==> MASK : 0xF0000000U VAL : 0x70000000U - // .. .. - EMIT_MASKWRITE(0XF800601C, 0xFFFFFFFFU ,0x720238E5U), - // .. .. reg_ddrc_t_ccd = 0x4 - // .. .. ==> 0XF8006020[4:2] = 0x00000004U - // .. .. ==> MASK : 0x0000001CU VAL : 0x00000010U - // .. .. reg_ddrc_t_rrd = 0x4 - // .. .. ==> 0XF8006020[7:5] = 0x00000004U - // .. .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. .. reg_ddrc_refresh_margin = 0x2 - // .. .. ==> 0XF8006020[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. reg_ddrc_t_rp = 0x7 - // .. .. ==> 0XF8006020[15:12] = 0x00000007U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00007000U - // .. .. reg_ddrc_refresh_to_x32 = 0x8 - // .. .. ==> 0XF8006020[20:16] = 0x00000008U - // .. .. ==> MASK : 0x001F0000U VAL : 0x00080000U - // .. .. reg_ddrc_sdram = 0x1 - // .. .. ==> 0XF8006020[21:21] = 0x00000001U - // .. .. ==> MASK : 0x00200000U VAL : 0x00200000U - // .. .. reg_ddrc_mobile = 0x0 - // .. .. ==> 0XF8006020[22:22] = 0x00000000U - // .. .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. .. reg_ddrc_clock_stop_en = 0x0 - // .. .. ==> 0XF8006020[23:23] = 0x00000000U - // .. .. ==> MASK : 0x00800000U VAL : 0x00000000U - // .. .. reg_ddrc_read_latency = 0x7 - // .. .. ==> 0XF8006020[28:24] = 0x00000007U - // .. .. ==> MASK : 0x1F000000U VAL : 0x07000000U - // .. .. reg_phy_mode_ddr1_ddr2 = 0x1 - // .. .. ==> 0XF8006020[29:29] = 0x00000001U - // .. .. ==> MASK : 0x20000000U VAL : 0x20000000U - // .. .. reg_ddrc_dis_pad_pd = 0x0 - // .. .. ==> 0XF8006020[30:30] = 0x00000000U - // .. .. ==> MASK : 0x40000000U VAL : 0x00000000U - // .. .. reg_ddrc_loopback = 0x0 - // .. .. ==> 0XF8006020[31:31] = 0x00000000U - // .. .. ==> MASK : 0x80000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006020, 0xFFFFFFFCU ,0x27287290U), - // .. .. reg_ddrc_en_2t_timing_mode = 0x0 - // .. .. ==> 0XF8006024[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_prefer_write = 0x0 - // .. .. ==> 0XF8006024[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_max_rank_rd = 0xf - // .. .. ==> 0XF8006024[5:2] = 0x0000000FU - // .. .. ==> MASK : 0x0000003CU VAL : 0x0000003CU - // .. .. reg_ddrc_mr_wr = 0x0 - // .. .. ==> 0XF8006024[6:6] = 0x00000000U - // .. .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. .. reg_ddrc_mr_addr = 0x0 - // .. .. ==> 0XF8006024[8:7] = 0x00000000U - // .. .. ==> MASK : 0x00000180U VAL : 0x00000000U - // .. .. reg_ddrc_mr_data = 0x0 - // .. .. ==> 0XF8006024[24:9] = 0x00000000U - // .. .. ==> MASK : 0x01FFFE00U VAL : 0x00000000U - // .. .. ddrc_reg_mr_wr_busy = 0x0 - // .. .. ==> 0XF8006024[25:25] = 0x00000000U - // .. .. ==> MASK : 0x02000000U VAL : 0x00000000U - // .. .. reg_ddrc_mr_type = 0x0 - // .. .. ==> 0XF8006024[26:26] = 0x00000000U - // .. .. ==> MASK : 0x04000000U VAL : 0x00000000U - // .. .. reg_ddrc_mr_rdata_valid = 0x0 - // .. .. ==> 0XF8006024[27:27] = 0x00000000U - // .. .. ==> MASK : 0x08000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006024, 0x0FFFFFFFU ,0x0000003CU), - // .. .. reg_ddrc_final_wait_x32 = 0x7 - // .. .. ==> 0XF8006028[6:0] = 0x00000007U - // .. .. ==> MASK : 0x0000007FU VAL : 0x00000007U - // .. .. reg_ddrc_pre_ocd_x32 = 0x0 - // .. .. ==> 0XF8006028[10:7] = 0x00000000U - // .. .. ==> MASK : 0x00000780U VAL : 0x00000000U - // .. .. reg_ddrc_t_mrd = 0x4 - // .. .. ==> 0XF8006028[13:11] = 0x00000004U - // .. .. ==> MASK : 0x00003800U VAL : 0x00002000U - // .. .. - EMIT_MASKWRITE(0XF8006028, 0x00003FFFU ,0x00002007U), - // .. .. reg_ddrc_emr2 = 0x8 - // .. .. ==> 0XF800602C[15:0] = 0x00000008U - // .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000008U - // .. .. reg_ddrc_emr3 = 0x0 - // .. .. ==> 0XF800602C[31:16] = 0x00000000U - // .. .. ==> MASK : 0xFFFF0000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800602C, 0xFFFFFFFFU ,0x00000008U), - // .. .. reg_ddrc_mr = 0x930 - // .. .. ==> 0XF8006030[15:0] = 0x00000930U - // .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000930U - // .. .. reg_ddrc_emr = 0x4 - // .. .. ==> 0XF8006030[31:16] = 0x00000004U - // .. .. ==> MASK : 0xFFFF0000U VAL : 0x00040000U - // .. .. - EMIT_MASKWRITE(0XF8006030, 0xFFFFFFFFU ,0x00040930U), - // .. .. reg_ddrc_burst_rdwr = 0x4 - // .. .. ==> 0XF8006034[3:0] = 0x00000004U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000004U - // .. .. reg_ddrc_pre_cke_x1024 = 0x105 - // .. .. ==> 0XF8006034[13:4] = 0x00000105U - // .. .. ==> MASK : 0x00003FF0U VAL : 0x00001050U - // .. .. reg_ddrc_post_cke_x1024 = 0x1 - // .. .. ==> 0XF8006034[25:16] = 0x00000001U - // .. .. ==> MASK : 0x03FF0000U VAL : 0x00010000U - // .. .. reg_ddrc_burstchop = 0x0 - // .. .. ==> 0XF8006034[28:28] = 0x00000000U - // .. .. ==> MASK : 0x10000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006034, 0x13FF3FFFU ,0x00011054U), - // .. .. reg_ddrc_force_low_pri_n = 0x0 - // .. .. ==> 0XF8006038[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_dis_dq = 0x0 - // .. .. ==> 0XF8006038[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_debug_mode = 0x0 - // .. .. ==> 0XF8006038[6:6] = 0x00000000U - // .. .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. .. reg_phy_wr_level_start = 0x0 - // .. .. ==> 0XF8006038[7:7] = 0x00000000U - // .. .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. .. reg_phy_rd_level_start = 0x0 - // .. .. ==> 0XF8006038[8:8] = 0x00000000U - // .. .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. .. reg_phy_dq0_wait_t = 0x0 - // .. .. ==> 0XF8006038[12:9] = 0x00000000U - // .. .. ==> MASK : 0x00001E00U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006038, 0x00001FC3U ,0x00000000U), - // .. .. reg_ddrc_addrmap_bank_b0 = 0x7 - // .. .. ==> 0XF800603C[3:0] = 0x00000007U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000007U - // .. .. reg_ddrc_addrmap_bank_b1 = 0x7 - // .. .. ==> 0XF800603C[7:4] = 0x00000007U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000070U - // .. .. reg_ddrc_addrmap_bank_b2 = 0x7 - // .. .. ==> 0XF800603C[11:8] = 0x00000007U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000700U - // .. .. reg_ddrc_addrmap_col_b5 = 0x0 - // .. .. ==> 0XF800603C[15:12] = 0x00000000U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b6 = 0x0 - // .. .. ==> 0XF800603C[19:16] = 0x00000000U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800603C, 0x000FFFFFU ,0x00000777U), - // .. .. reg_ddrc_addrmap_col_b2 = 0x0 - // .. .. ==> 0XF8006040[3:0] = 0x00000000U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b3 = 0x0 - // .. .. ==> 0XF8006040[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b4 = 0x0 - // .. .. ==> 0XF8006040[11:8] = 0x00000000U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b7 = 0x0 - // .. .. ==> 0XF8006040[15:12] = 0x00000000U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b8 = 0x0 - // .. .. ==> 0XF8006040[19:16] = 0x00000000U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b9 = 0xf - // .. .. ==> 0XF8006040[23:20] = 0x0000000FU - // .. .. ==> MASK : 0x00F00000U VAL : 0x00F00000U - // .. .. reg_ddrc_addrmap_col_b10 = 0xf - // .. .. ==> 0XF8006040[27:24] = 0x0000000FU - // .. .. ==> MASK : 0x0F000000U VAL : 0x0F000000U - // .. .. reg_ddrc_addrmap_col_b11 = 0xf - // .. .. ==> 0XF8006040[31:28] = 0x0000000FU - // .. .. ==> MASK : 0xF0000000U VAL : 0xF0000000U - // .. .. - EMIT_MASKWRITE(0XF8006040, 0xFFFFFFFFU ,0xFFF00000U), - // .. .. reg_ddrc_addrmap_row_b0 = 0x6 - // .. .. ==> 0XF8006044[3:0] = 0x00000006U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000006U - // .. .. reg_ddrc_addrmap_row_b1 = 0x6 - // .. .. ==> 0XF8006044[7:4] = 0x00000006U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000060U - // .. .. reg_ddrc_addrmap_row_b2_11 = 0x6 - // .. .. ==> 0XF8006044[11:8] = 0x00000006U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000600U - // .. .. reg_ddrc_addrmap_row_b12 = 0x6 - // .. .. ==> 0XF8006044[15:12] = 0x00000006U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00006000U - // .. .. reg_ddrc_addrmap_row_b13 = 0x6 - // .. .. ==> 0XF8006044[19:16] = 0x00000006U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00060000U - // .. .. reg_ddrc_addrmap_row_b14 = 0x6 - // .. .. ==> 0XF8006044[23:20] = 0x00000006U - // .. .. ==> MASK : 0x00F00000U VAL : 0x00600000U - // .. .. reg_ddrc_addrmap_row_b15 = 0xf - // .. .. ==> 0XF8006044[27:24] = 0x0000000FU - // .. .. ==> MASK : 0x0F000000U VAL : 0x0F000000U - // .. .. - EMIT_MASKWRITE(0XF8006044, 0x0FFFFFFFU ,0x0F666666U), - // .. .. reg_ddrc_rank0_rd_odt = 0x0 - // .. .. ==> 0XF8006048[2:0] = 0x00000000U - // .. .. ==> MASK : 0x00000007U VAL : 0x00000000U - // .. .. reg_ddrc_rank0_wr_odt = 0x1 - // .. .. ==> 0XF8006048[5:3] = 0x00000001U - // .. .. ==> MASK : 0x00000038U VAL : 0x00000008U - // .. .. reg_ddrc_rank1_rd_odt = 0x1 - // .. .. ==> 0XF8006048[8:6] = 0x00000001U - // .. .. ==> MASK : 0x000001C0U VAL : 0x00000040U - // .. .. reg_ddrc_rank1_wr_odt = 0x1 - // .. .. ==> 0XF8006048[11:9] = 0x00000001U - // .. .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. .. reg_phy_rd_local_odt = 0x0 - // .. .. ==> 0XF8006048[13:12] = 0x00000000U - // .. .. ==> MASK : 0x00003000U VAL : 0x00000000U - // .. .. reg_phy_wr_local_odt = 0x3 - // .. .. ==> 0XF8006048[15:14] = 0x00000003U - // .. .. ==> MASK : 0x0000C000U VAL : 0x0000C000U - // .. .. reg_phy_idle_local_odt = 0x3 - // .. .. ==> 0XF8006048[17:16] = 0x00000003U - // .. .. ==> MASK : 0x00030000U VAL : 0x00030000U - // .. .. reg_ddrc_rank2_rd_odt = 0x0 - // .. .. ==> 0XF8006048[20:18] = 0x00000000U - // .. .. ==> MASK : 0x001C0000U VAL : 0x00000000U - // .. .. reg_ddrc_rank2_wr_odt = 0x0 - // .. .. ==> 0XF8006048[23:21] = 0x00000000U - // .. .. ==> MASK : 0x00E00000U VAL : 0x00000000U - // .. .. reg_ddrc_rank3_rd_odt = 0x0 - // .. .. ==> 0XF8006048[26:24] = 0x00000000U - // .. .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. .. reg_ddrc_rank3_wr_odt = 0x0 - // .. .. ==> 0XF8006048[29:27] = 0x00000000U - // .. .. ==> MASK : 0x38000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006048, 0x3FFFFFFFU ,0x0003C248U), - // .. .. reg_phy_rd_cmd_to_data = 0x0 - // .. .. ==> 0XF8006050[3:0] = 0x00000000U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000000U - // .. .. reg_phy_wr_cmd_to_data = 0x0 - // .. .. ==> 0XF8006050[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. reg_phy_rdc_we_to_re_delay = 0x8 - // .. .. ==> 0XF8006050[11:8] = 0x00000008U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000800U - // .. .. reg_phy_rdc_fifo_rst_disable = 0x0 - // .. .. ==> 0XF8006050[15:15] = 0x00000000U - // .. .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. .. reg_phy_use_fixed_re = 0x1 - // .. .. ==> 0XF8006050[16:16] = 0x00000001U - // .. .. ==> MASK : 0x00010000U VAL : 0x00010000U - // .. .. reg_phy_rdc_fifo_rst_err_cnt_clr = 0x0 - // .. .. ==> 0XF8006050[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_phy_dis_phy_ctrl_rstn = 0x0 - // .. .. ==> 0XF8006050[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_phy_clk_stall_level = 0x0 - // .. .. ==> 0XF8006050[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_num_of_dq0 = 0x7 - // .. .. ==> 0XF8006050[27:24] = 0x00000007U - // .. .. ==> MASK : 0x0F000000U VAL : 0x07000000U - // .. .. reg_phy_wrlvl_num_of_dq0 = 0x7 - // .. .. ==> 0XF8006050[31:28] = 0x00000007U - // .. .. ==> MASK : 0xF0000000U VAL : 0x70000000U - // .. .. - EMIT_MASKWRITE(0XF8006050, 0xFF0F8FFFU ,0x77010800U), - // .. .. reg_ddrc_dll_calib_to_min_x1024 = 0x1 - // .. .. ==> 0XF8006058[7:0] = 0x00000001U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000001U - // .. .. reg_ddrc_dll_calib_to_max_x1024 = 0x1 - // .. .. ==> 0XF8006058[15:8] = 0x00000001U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00000100U - // .. .. reg_ddrc_dis_dll_calib = 0x0 - // .. .. ==> 0XF8006058[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006058, 0x0001FFFFU ,0x00000101U), - // .. .. reg_ddrc_rd_odt_delay = 0x3 - // .. .. ==> 0XF800605C[3:0] = 0x00000003U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000003U - // .. .. reg_ddrc_wr_odt_delay = 0x0 - // .. .. ==> 0XF800605C[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. reg_ddrc_rd_odt_hold = 0x0 - // .. .. ==> 0XF800605C[11:8] = 0x00000000U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000000U - // .. .. reg_ddrc_wr_odt_hold = 0x5 - // .. .. ==> 0XF800605C[15:12] = 0x00000005U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00005000U - // .. .. - EMIT_MASKWRITE(0XF800605C, 0x0000FFFFU ,0x00005003U), - // .. .. reg_ddrc_pageclose = 0x0 - // .. .. ==> 0XF8006060[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_lpr_num_entries = 0x1f - // .. .. ==> 0XF8006060[6:1] = 0x0000001FU - // .. .. ==> MASK : 0x0000007EU VAL : 0x0000003EU - // .. .. reg_ddrc_auto_pre_en = 0x0 - // .. .. ==> 0XF8006060[7:7] = 0x00000000U - // .. .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. .. reg_ddrc_refresh_update_level = 0x0 - // .. .. ==> 0XF8006060[8:8] = 0x00000000U - // .. .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. .. reg_ddrc_dis_wc = 0x0 - // .. .. ==> 0XF8006060[9:9] = 0x00000000U - // .. .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. .. reg_ddrc_dis_collision_page_opt = 0x0 - // .. .. ==> 0XF8006060[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_ddrc_selfref_en = 0x0 - // .. .. ==> 0XF8006060[12:12] = 0x00000000U - // .. .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006060, 0x000017FFU ,0x0000003EU), - // .. .. reg_ddrc_go2critical_hysteresis = 0x0 - // .. .. ==> 0XF8006064[12:5] = 0x00000000U - // .. .. ==> MASK : 0x00001FE0U VAL : 0x00000000U - // .. .. reg_arb_go2critical_en = 0x1 - // .. .. ==> 0XF8006064[17:17] = 0x00000001U - // .. .. ==> MASK : 0x00020000U VAL : 0x00020000U - // .. .. - EMIT_MASKWRITE(0XF8006064, 0x00021FE0U ,0x00020000U), - // .. .. reg_ddrc_wrlvl_ww = 0x41 - // .. .. ==> 0XF8006068[7:0] = 0x00000041U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000041U - // .. .. reg_ddrc_rdlvl_rr = 0x41 - // .. .. ==> 0XF8006068[15:8] = 0x00000041U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00004100U - // .. .. reg_ddrc_dfi_t_wlmrd = 0x28 - // .. .. ==> 0XF8006068[25:16] = 0x00000028U - // .. .. ==> MASK : 0x03FF0000U VAL : 0x00280000U - // .. .. - EMIT_MASKWRITE(0XF8006068, 0x03FFFFFFU ,0x00284141U), - // .. .. dfi_t_ctrlupd_interval_min_x1024 = 0x10 - // .. .. ==> 0XF800606C[7:0] = 0x00000010U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000010U - // .. .. dfi_t_ctrlupd_interval_max_x1024 = 0x16 - // .. .. ==> 0XF800606C[15:8] = 0x00000016U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00001600U - // .. .. - EMIT_MASKWRITE(0XF800606C, 0x0000FFFFU ,0x00001610U), - // .. .. reg_ddrc_dfi_t_ctrl_delay = 0x1 - // .. .. ==> 0XF8006078[3:0] = 0x00000001U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000001U - // .. .. reg_ddrc_dfi_t_dram_clk_disable = 0x1 - // .. .. ==> 0XF8006078[7:4] = 0x00000001U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000010U - // .. .. reg_ddrc_dfi_t_dram_clk_enable = 0x1 - // .. .. ==> 0XF8006078[11:8] = 0x00000001U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000100U - // .. .. reg_ddrc_t_cksre = 0x6 - // .. .. ==> 0XF8006078[15:12] = 0x00000006U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00006000U - // .. .. reg_ddrc_t_cksrx = 0x6 - // .. .. ==> 0XF8006078[19:16] = 0x00000006U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00060000U - // .. .. reg_ddrc_t_ckesr = 0x4 - // .. .. ==> 0XF8006078[25:20] = 0x00000004U - // .. .. ==> MASK : 0x03F00000U VAL : 0x00400000U - // .. .. - EMIT_MASKWRITE(0XF8006078, 0x03FFFFFFU ,0x00466111U), - // .. .. reg_ddrc_t_ckpde = 0x2 - // .. .. ==> 0XF800607C[3:0] = 0x00000002U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000002U - // .. .. reg_ddrc_t_ckpdx = 0x2 - // .. .. ==> 0XF800607C[7:4] = 0x00000002U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000020U - // .. .. reg_ddrc_t_ckdpde = 0x2 - // .. .. ==> 0XF800607C[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. reg_ddrc_t_ckdpdx = 0x2 - // .. .. ==> 0XF800607C[15:12] = 0x00000002U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00002000U - // .. .. reg_ddrc_t_ckcsx = 0x3 - // .. .. ==> 0XF800607C[19:16] = 0x00000003U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00030000U - // .. .. - EMIT_MASKWRITE(0XF800607C, 0x000FFFFFU ,0x00032222U), - // .. .. refresh_timer0_start_value_x32 = 0x0 - // .. .. ==> 0XF80060A0[11:0] = 0x00000000U - // .. .. ==> MASK : 0x00000FFFU VAL : 0x00000000U - // .. .. refresh_timer1_start_value_x32 = 0x8 - // .. .. ==> 0XF80060A0[23:12] = 0x00000008U - // .. .. ==> MASK : 0x00FFF000U VAL : 0x00008000U - // .. .. - EMIT_MASKWRITE(0XF80060A0, 0x00FFFFFFU ,0x00008000U), - // .. .. reg_ddrc_dis_auto_zq = 0x0 - // .. .. ==> 0XF80060A4[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_ddr3 = 0x1 - // .. .. ==> 0XF80060A4[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. reg_ddrc_t_mod = 0x200 - // .. .. ==> 0XF80060A4[11:2] = 0x00000200U - // .. .. ==> MASK : 0x00000FFCU VAL : 0x00000800U - // .. .. reg_ddrc_t_zq_long_nop = 0x200 - // .. .. ==> 0XF80060A4[21:12] = 0x00000200U - // .. .. ==> MASK : 0x003FF000U VAL : 0x00200000U - // .. .. reg_ddrc_t_zq_short_nop = 0x40 - // .. .. ==> 0XF80060A4[31:22] = 0x00000040U - // .. .. ==> MASK : 0xFFC00000U VAL : 0x10000000U - // .. .. - EMIT_MASKWRITE(0XF80060A4, 0xFFFFFFFFU ,0x10200802U), - // .. .. t_zq_short_interval_x1024 = 0xcb73 - // .. .. ==> 0XF80060A8[19:0] = 0x0000CB73U - // .. .. ==> MASK : 0x000FFFFFU VAL : 0x0000CB73U - // .. .. dram_rstn_x1024 = 0x69 - // .. .. ==> 0XF80060A8[27:20] = 0x00000069U - // .. .. ==> MASK : 0x0FF00000U VAL : 0x06900000U - // .. .. - EMIT_MASKWRITE(0XF80060A8, 0x0FFFFFFFU ,0x0690CB73U), - // .. .. deeppowerdown_en = 0x0 - // .. .. ==> 0XF80060AC[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. deeppowerdown_to_x1024 = 0xff - // .. .. ==> 0XF80060AC[8:1] = 0x000000FFU - // .. .. ==> MASK : 0x000001FEU VAL : 0x000001FEU - // .. .. - EMIT_MASKWRITE(0XF80060AC, 0x000001FFU ,0x000001FEU), - // .. .. dfi_wrlvl_max_x1024 = 0xfff - // .. .. ==> 0XF80060B0[11:0] = 0x00000FFFU - // .. .. ==> MASK : 0x00000FFFU VAL : 0x00000FFFU - // .. .. dfi_rdlvl_max_x1024 = 0xfff - // .. .. ==> 0XF80060B0[23:12] = 0x00000FFFU - // .. .. ==> MASK : 0x00FFF000U VAL : 0x00FFF000U - // .. .. ddrc_reg_twrlvl_max_error = 0x0 - // .. .. ==> 0XF80060B0[24:24] = 0x00000000U - // .. .. ==> MASK : 0x01000000U VAL : 0x00000000U - // .. .. ddrc_reg_trdlvl_max_error = 0x0 - // .. .. ==> 0XF80060B0[25:25] = 0x00000000U - // .. .. ==> MASK : 0x02000000U VAL : 0x00000000U - // .. .. reg_ddrc_dfi_wr_level_en = 0x1 - // .. .. ==> 0XF80060B0[26:26] = 0x00000001U - // .. .. ==> MASK : 0x04000000U VAL : 0x04000000U - // .. .. reg_ddrc_dfi_rd_dqs_gate_level = 0x1 - // .. .. ==> 0XF80060B0[27:27] = 0x00000001U - // .. .. ==> MASK : 0x08000000U VAL : 0x08000000U - // .. .. reg_ddrc_dfi_rd_data_eye_train = 0x1 - // .. .. ==> 0XF80060B0[28:28] = 0x00000001U - // .. .. ==> MASK : 0x10000000U VAL : 0x10000000U - // .. .. - EMIT_MASKWRITE(0XF80060B0, 0x1FFFFFFFU ,0x1CFFFFFFU), - // .. .. reg_ddrc_2t_delay = 0x0 - // .. .. ==> 0XF80060B4[8:0] = 0x00000000U - // .. .. ==> MASK : 0x000001FFU VAL : 0x00000000U - // .. .. reg_ddrc_skip_ocd = 0x1 - // .. .. ==> 0XF80060B4[9:9] = 0x00000001U - // .. .. ==> MASK : 0x00000200U VAL : 0x00000200U - // .. .. reg_ddrc_dis_pre_bypass = 0x0 - // .. .. ==> 0XF80060B4[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060B4, 0x000007FFU ,0x00000200U), - // .. .. reg_ddrc_dfi_t_rddata_en = 0x6 - // .. .. ==> 0XF80060B8[4:0] = 0x00000006U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000006U - // .. .. reg_ddrc_dfi_t_ctrlup_min = 0x3 - // .. .. ==> 0XF80060B8[14:5] = 0x00000003U - // .. .. ==> MASK : 0x00007FE0U VAL : 0x00000060U - // .. .. reg_ddrc_dfi_t_ctrlup_max = 0x40 - // .. .. ==> 0XF80060B8[24:15] = 0x00000040U - // .. .. ==> MASK : 0x01FF8000U VAL : 0x00200000U - // .. .. - EMIT_MASKWRITE(0XF80060B8, 0x01FFFFFFU ,0x00200066U), - // .. .. START: RESET ECC ERROR - // .. .. Clear_Uncorrectable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. Clear_Correctable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. - EMIT_MASKWRITE(0XF80060C4, 0x00000003U ,0x00000003U), - // .. .. FINISH: RESET ECC ERROR - // .. .. Clear_Uncorrectable_DRAM_ECC_error = 0x0 - // .. .. ==> 0XF80060C4[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. Clear_Correctable_DRAM_ECC_error = 0x0 - // .. .. ==> 0XF80060C4[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060C4, 0x00000003U ,0x00000000U), - // .. .. CORR_ECC_LOG_VALID = 0x0 - // .. .. ==> 0XF80060C8[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. ECC_CORRECTED_BIT_NUM = 0x0 - // .. .. ==> 0XF80060C8[7:1] = 0x00000000U - // .. .. ==> MASK : 0x000000FEU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060C8, 0x000000FFU ,0x00000000U), - // .. .. UNCORR_ECC_LOG_VALID = 0x0 - // .. .. ==> 0XF80060DC[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060DC, 0x00000001U ,0x00000000U), - // .. .. STAT_NUM_CORR_ERR = 0x0 - // .. .. ==> 0XF80060F0[15:8] = 0x00000000U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00000000U - // .. .. STAT_NUM_UNCORR_ERR = 0x0 - // .. .. ==> 0XF80060F0[7:0] = 0x00000000U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060F0, 0x0000FFFFU ,0x00000000U), - // .. .. reg_ddrc_ecc_mode = 0x0 - // .. .. ==> 0XF80060F4[2:0] = 0x00000000U - // .. .. ==> MASK : 0x00000007U VAL : 0x00000000U - // .. .. reg_ddrc_dis_scrub = 0x1 - // .. .. ==> 0XF80060F4[3:3] = 0x00000001U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000008U - // .. .. - EMIT_MASKWRITE(0XF80060F4, 0x0000000FU ,0x00000008U), - // .. .. reg_phy_dif_on = 0x0 - // .. .. ==> 0XF8006114[3:0] = 0x00000000U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000000U - // .. .. reg_phy_dif_off = 0x0 - // .. .. ==> 0XF8006114[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006114, 0x000000FFU ,0x00000000U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006118[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006118[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006118[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006118[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_tx = 0x0 - // .. .. ==> 0XF8006118[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_rx = 0x0 - // .. .. ==> 0XF8006118[5:5] = 0x00000000U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006118[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006118[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006118[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006118, 0x7FFFFFFFU ,0x40000001U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF800611C[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF800611C[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF800611C[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF800611C[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_tx = 0x0 - // .. .. ==> 0XF800611C[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_rx = 0x0 - // .. .. ==> 0XF800611C[5:5] = 0x00000000U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF800611C[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF800611C[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF800611C[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF800611C, 0x7FFFFFFFU ,0x40000001U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006120[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_tx = 0x0 - // .. .. ==> 0XF8006120[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_rx = 0x0 - // .. .. ==> 0XF8006120[5:5] = 0x00000000U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006120[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006120[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006120[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006120[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_tx = 0x0 - // .. .. ==> 0XF8006120[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_rx = 0x0 - // .. .. ==> 0XF8006120[5:5] = 0x00000000U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006120[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006120[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006120[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006120, 0x7FFFFFFFU ,0x40000001U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006124[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006124[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006124[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006124[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_tx = 0x0 - // .. .. ==> 0XF8006124[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_rx = 0x0 - // .. .. ==> 0XF8006124[5:5] = 0x00000000U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006124[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006124[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006124[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006124, 0x7FFFFFFFU ,0x40000001U), - // .. .. reg_phy_wrlvl_init_ratio = 0x1d - // .. .. ==> 0XF800612C[9:0] = 0x0000001DU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000001DU - // .. .. reg_phy_gatelvl_init_ratio = 0xf2 - // .. .. ==> 0XF800612C[19:10] = 0x000000F2U - // .. .. ==> MASK : 0x000FFC00U VAL : 0x0003C800U - // .. .. - EMIT_MASKWRITE(0XF800612C, 0x000FFFFFU ,0x0003C81DU), - // .. .. reg_phy_wrlvl_init_ratio = 0x12 - // .. .. ==> 0XF8006130[9:0] = 0x00000012U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000012U - // .. .. reg_phy_gatelvl_init_ratio = 0xd8 - // .. .. ==> 0XF8006130[19:10] = 0x000000D8U - // .. .. ==> MASK : 0x000FFC00U VAL : 0x00036000U - // .. .. - EMIT_MASKWRITE(0XF8006130, 0x000FFFFFU ,0x00036012U), - // .. .. reg_phy_wrlvl_init_ratio = 0xc - // .. .. ==> 0XF8006134[9:0] = 0x0000000CU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000000CU - // .. .. reg_phy_gatelvl_init_ratio = 0xde - // .. .. ==> 0XF8006134[19:10] = 0x000000DEU - // .. .. ==> MASK : 0x000FFC00U VAL : 0x00037800U - // .. .. - EMIT_MASKWRITE(0XF8006134, 0x000FFFFFU ,0x0003780CU), - // .. .. reg_phy_wrlvl_init_ratio = 0x21 - // .. .. ==> 0XF8006138[9:0] = 0x00000021U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000021U - // .. .. reg_phy_gatelvl_init_ratio = 0xee - // .. .. ==> 0XF8006138[19:10] = 0x000000EEU - // .. .. ==> MASK : 0x000FFC00U VAL : 0x0003B800U - // .. .. - EMIT_MASKWRITE(0XF8006138, 0x000FFFFFU ,0x0003B821U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF8006140[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006140[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006140[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006140, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF8006144[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006144[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006144[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006144, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF8006148[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006148[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006148[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006148, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF800614C[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF800614C[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF800614C[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800614C, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_wr_dqs_slave_ratio = 0x9d - // .. .. ==> 0XF8006154[9:0] = 0x0000009DU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000009DU - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006154[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006154[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006154, 0x000FFFFFU ,0x0000009DU), - // .. .. reg_phy_wr_dqs_slave_ratio = 0x92 - // .. .. ==> 0XF8006158[9:0] = 0x00000092U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000092U - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006158[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006158[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006158, 0x000FFFFFU ,0x00000092U), - // .. .. reg_phy_wr_dqs_slave_ratio = 0x8c - // .. .. ==> 0XF800615C[9:0] = 0x0000008CU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000008CU - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF800615C[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF800615C[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800615C, 0x000FFFFFU ,0x0000008CU), - // .. .. reg_phy_wr_dqs_slave_ratio = 0xa1 - // .. .. ==> 0XF8006160[9:0] = 0x000000A1U - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000A1U - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006160[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006160[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006160, 0x000FFFFFU ,0x000000A1U), - // .. .. reg_phy_fifo_we_slave_ratio = 0x147 - // .. .. ==> 0XF8006168[10:0] = 0x00000147U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000147U - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF8006168[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF8006168[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006168, 0x001FFFFFU ,0x00000147U), - // .. .. reg_phy_fifo_we_slave_ratio = 0x12d - // .. .. ==> 0XF800616C[10:0] = 0x0000012DU - // .. .. ==> MASK : 0x000007FFU VAL : 0x0000012DU - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF800616C[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF800616C[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800616C, 0x001FFFFFU ,0x0000012DU), - // .. .. reg_phy_fifo_we_slave_ratio = 0x133 - // .. .. ==> 0XF8006170[10:0] = 0x00000133U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000133U - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF8006170[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF8006170[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006170, 0x001FFFFFU ,0x00000133U), - // .. .. reg_phy_fifo_we_slave_ratio = 0x143 - // .. .. ==> 0XF8006174[10:0] = 0x00000143U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000143U - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF8006174[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF8006174[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006174, 0x001FFFFFU ,0x00000143U), - // .. .. reg_phy_wr_data_slave_ratio = 0xdd - // .. .. ==> 0XF800617C[9:0] = 0x000000DDU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000DDU - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF800617C[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF800617C[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800617C, 0x000FFFFFU ,0x000000DDU), - // .. .. reg_phy_wr_data_slave_ratio = 0xd2 - // .. .. ==> 0XF8006180[9:0] = 0x000000D2U - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000D2U - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF8006180[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF8006180[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006180, 0x000FFFFFU ,0x000000D2U), - // .. .. reg_phy_wr_data_slave_ratio = 0xcc - // .. .. ==> 0XF8006184[9:0] = 0x000000CCU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000CCU - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF8006184[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF8006184[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006184, 0x000FFFFFU ,0x000000CCU), - // .. .. reg_phy_wr_data_slave_ratio = 0xe1 - // .. .. ==> 0XF8006188[9:0] = 0x000000E1U - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000E1U - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF8006188[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF8006188[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006188, 0x000FFFFFU ,0x000000E1U), - // .. .. reg_phy_loopback = 0x0 - // .. .. ==> 0XF8006190[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_phy_bl2 = 0x0 - // .. .. ==> 0XF8006190[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_at_spd_atpg = 0x0 - // .. .. ==> 0XF8006190[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_bist_enable = 0x0 - // .. .. ==> 0XF8006190[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_bist_force_err = 0x0 - // .. .. ==> 0XF8006190[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_bist_mode = 0x0 - // .. .. ==> 0XF8006190[6:5] = 0x00000000U - // .. .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. .. reg_phy_invert_clkout = 0x1 - // .. .. ==> 0XF8006190[7:7] = 0x00000001U - // .. .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. .. reg_phy_all_dq_mpr_rd_resp = 0x0 - // .. .. ==> 0XF8006190[8:8] = 0x00000000U - // .. .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. .. reg_phy_sel_logic = 0x0 - // .. .. ==> 0XF8006190[9:9] = 0x00000000U - // .. .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. .. reg_phy_ctrl_slave_ratio = 0x100 - // .. .. ==> 0XF8006190[19:10] = 0x00000100U - // .. .. ==> MASK : 0x000FFC00U VAL : 0x00040000U - // .. .. reg_phy_ctrl_slave_force = 0x0 - // .. .. ==> 0XF8006190[20:20] = 0x00000000U - // .. .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. .. reg_phy_ctrl_slave_delay = 0x0 - // .. .. ==> 0XF8006190[27:21] = 0x00000000U - // .. .. ==> MASK : 0x0FE00000U VAL : 0x00000000U - // .. .. reg_phy_use_rank0_delays = 0x1 - // .. .. ==> 0XF8006190[28:28] = 0x00000001U - // .. .. ==> MASK : 0x10000000U VAL : 0x10000000U - // .. .. reg_phy_lpddr = 0x0 - // .. .. ==> 0XF8006190[29:29] = 0x00000000U - // .. .. ==> MASK : 0x20000000U VAL : 0x00000000U - // .. .. reg_phy_cmd_latency = 0x0 - // .. .. ==> 0XF8006190[30:30] = 0x00000000U - // .. .. ==> MASK : 0x40000000U VAL : 0x00000000U - // .. .. reg_phy_int_lpbk = 0x0 - // .. .. ==> 0XF8006190[31:31] = 0x00000000U - // .. .. ==> MASK : 0x80000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006190, 0xFFFFFFFFU ,0x10040080U), - // .. .. reg_phy_wr_rl_delay = 0x2 - // .. .. ==> 0XF8006194[4:0] = 0x00000002U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000002U - // .. .. reg_phy_rd_rl_delay = 0x4 - // .. .. ==> 0XF8006194[9:5] = 0x00000004U - // .. .. ==> MASK : 0x000003E0U VAL : 0x00000080U - // .. .. reg_phy_dll_lock_diff = 0xf - // .. .. ==> 0XF8006194[13:10] = 0x0000000FU - // .. .. ==> MASK : 0x00003C00U VAL : 0x00003C00U - // .. .. reg_phy_use_wr_level = 0x1 - // .. .. ==> 0XF8006194[14:14] = 0x00000001U - // .. .. ==> MASK : 0x00004000U VAL : 0x00004000U - // .. .. reg_phy_use_rd_dqs_gate_level = 0x1 - // .. .. ==> 0XF8006194[15:15] = 0x00000001U - // .. .. ==> MASK : 0x00008000U VAL : 0x00008000U - // .. .. reg_phy_use_rd_data_eye_level = 0x1 - // .. .. ==> 0XF8006194[16:16] = 0x00000001U - // .. .. ==> MASK : 0x00010000U VAL : 0x00010000U - // .. .. reg_phy_dis_calib_rst = 0x0 - // .. .. ==> 0XF8006194[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_phy_ctrl_slave_delay = 0x0 - // .. .. ==> 0XF8006194[19:18] = 0x00000000U - // .. .. ==> MASK : 0x000C0000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006194, 0x000FFFFFU ,0x0001FC82U), - // .. .. reg_arb_page_addr_mask = 0x0 - // .. .. ==> 0XF8006204[31:0] = 0x00000000U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006204, 0xFFFFFFFFU ,0x00000000U), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF8006208[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF8006208[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF8006208[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF8006208[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_dis_rmw_portn = 0x1 - // .. .. ==> 0XF8006208[19:19] = 0x00000001U - // .. .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. .. - EMIT_MASKWRITE(0XF8006208, 0x000F03FFU ,0x000803FFU), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF800620C[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF800620C[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF800620C[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF800620C[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_dis_rmw_portn = 0x1 - // .. .. ==> 0XF800620C[19:19] = 0x00000001U - // .. .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. .. - EMIT_MASKWRITE(0XF800620C, 0x000F03FFU ,0x000803FFU), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF8006210[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF8006210[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF8006210[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF8006210[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_dis_rmw_portn = 0x1 - // .. .. ==> 0XF8006210[19:19] = 0x00000001U - // .. .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. .. - EMIT_MASKWRITE(0XF8006210, 0x000F03FFU ,0x000803FFU), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF8006214[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF8006214[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF8006214[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF8006214[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_dis_rmw_portn = 0x1 - // .. .. ==> 0XF8006214[19:19] = 0x00000001U - // .. .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. .. - EMIT_MASKWRITE(0XF8006214, 0x000F03FFU ,0x000803FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF8006218[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF8006218[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF8006218[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF8006218[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF8006218[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006218, 0x000F03FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF800621C[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF800621C[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF800621C[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF800621C[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF800621C[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800621C, 0x000F03FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF8006220[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF8006220[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF8006220[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF8006220[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF8006220[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006220, 0x000F03FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF8006224[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF8006224[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF8006224[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF8006224[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF8006224[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006224, 0x000F03FFU ,0x000003FFU), - // .. .. reg_ddrc_lpddr2 = 0x0 - // .. .. ==> 0XF80062A8[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_per_bank_refresh = 0x0 - // .. .. ==> 0XF80062A8[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_derate_enable = 0x0 - // .. .. ==> 0XF80062A8[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_ddrc_mr4_margin = 0x0 - // .. .. ==> 0XF80062A8[11:4] = 0x00000000U - // .. .. ==> MASK : 0x00000FF0U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80062A8, 0x00000FF7U ,0x00000000U), - // .. .. reg_ddrc_mr4_read_interval = 0x0 - // .. .. ==> 0XF80062AC[31:0] = 0x00000000U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80062AC, 0xFFFFFFFFU ,0x00000000U), - // .. .. reg_ddrc_min_stable_clock_x1 = 0x5 - // .. .. ==> 0XF80062B0[3:0] = 0x00000005U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000005U - // .. .. reg_ddrc_idle_after_reset_x32 = 0x12 - // .. .. ==> 0XF80062B0[11:4] = 0x00000012U - // .. .. ==> MASK : 0x00000FF0U VAL : 0x00000120U - // .. .. reg_ddrc_t_mrw = 0x5 - // .. .. ==> 0XF80062B0[21:12] = 0x00000005U - // .. .. ==> MASK : 0x003FF000U VAL : 0x00005000U - // .. .. - EMIT_MASKWRITE(0XF80062B0, 0x003FFFFFU ,0x00005125U), - // .. .. reg_ddrc_max_auto_init_x1024 = 0xa8 - // .. .. ==> 0XF80062B4[7:0] = 0x000000A8U - // .. .. ==> MASK : 0x000000FFU VAL : 0x000000A8U - // .. .. reg_ddrc_dev_zqinit_x32 = 0x12 - // .. .. ==> 0XF80062B4[17:8] = 0x00000012U - // .. .. ==> MASK : 0x0003FF00U VAL : 0x00001200U - // .. .. - EMIT_MASKWRITE(0XF80062B4, 0x0003FFFFU ,0x000012A8U), - // .. .. START: POLL ON DCI STATUS - // .. .. DONE = 1 - // .. .. ==> 0XF8000B74[13:13] = 0x00000001U - // .. .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. .. - EMIT_MASKPOLL(0XF8000B74, 0x00002000U), - // .. .. FINISH: POLL ON DCI STATUS - // .. .. START: UNLOCK DDR - // .. .. reg_ddrc_soft_rstb = 0x1 - // .. .. ==> 0XF8006000[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_ddrc_powerdown_en = 0x0 - // .. .. ==> 0XF8006000[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_data_bus_width = 0x0 - // .. .. ==> 0XF8006000[3:2] = 0x00000000U - // .. .. ==> MASK : 0x0000000CU VAL : 0x00000000U - // .. .. reg_ddrc_burst8_refresh = 0x0 - // .. .. ==> 0XF8006000[6:4] = 0x00000000U - // .. .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. .. reg_ddrc_rdwr_idle_gap = 1 - // .. .. ==> 0XF8006000[13:7] = 0x00000001U - // .. .. ==> MASK : 0x00003F80U VAL : 0x00000080U - // .. .. reg_ddrc_dis_rd_bypass = 0x0 - // .. .. ==> 0XF8006000[14:14] = 0x00000000U - // .. .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_act_bypass = 0x0 - // .. .. ==> 0XF8006000[15:15] = 0x00000000U - // .. .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_auto_refresh = 0x0 - // .. .. ==> 0XF8006000[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006000, 0x0001FFFFU ,0x00000081U), - // .. .. FINISH: UNLOCK DDR - // .. .. START: CHECK DDR STATUS - // .. .. ddrc_reg_operating_mode = 1 - // .. .. ==> 0XF8006054[2:0] = 0x00000001U - // .. .. ==> MASK : 0x00000007U VAL : 0x00000001U - // .. .. - EMIT_MASKPOLL(0XF8006054, 0x00000007U), - // .. .. FINISH: CHECK DDR STATUS - // .. FINISH: DDR INITIALIZATION - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_mio_init_data_2_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: OCM REMAPPING - // .. VREF_EN = 0x1 - // .. ==> 0XF8000B00[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. VREF_PULLUP_EN = 0x0 - // .. ==> 0XF8000B00[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. CLK_PULLUP_EN = 0x0 - // .. ==> 0XF8000B00[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. SRSTN_PULLUP_EN = 0x0 - // .. ==> 0XF8000B00[9:9] = 0x00000000U - // .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B00, 0x00000303U ,0x00000001U), - // .. FINISH: OCM REMAPPING - // .. START: DDRIOB SETTINGS - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B40[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x0 - // .. ==> 0XF8000B40[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B40[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x0 - // .. ==> 0XF8000B40[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. DCR_TYPE = 0x0 - // .. ==> 0XF8000B40[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. IBUF_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B40[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B40[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B40[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B40[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B40, 0x00000FFFU ,0x00000600U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B44[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x0 - // .. ==> 0XF8000B44[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B44[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x0 - // .. ==> 0XF8000B44[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. DCR_TYPE = 0x0 - // .. ==> 0XF8000B44[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. IBUF_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B44[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B44[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B44[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B44[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B44, 0x00000FFFU ,0x00000600U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B48[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x1 - // .. ==> 0XF8000B48[2:1] = 0x00000001U - // .. ==> MASK : 0x00000006U VAL : 0x00000002U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B48[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B48[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCR_TYPE = 0x3 - // .. ==> 0XF8000B48[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B48[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B48[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B48[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B48[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B48, 0x00000FFFU ,0x00000672U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B4C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x1 - // .. ==> 0XF8000B4C[2:1] = 0x00000001U - // .. ==> MASK : 0x00000006U VAL : 0x00000002U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B4C[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B4C[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCR_TYPE = 0x3 - // .. ==> 0XF8000B4C[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B4C[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B4C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B4C[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B4C[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B4C, 0x00000FFFU ,0x00000672U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B50[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x2 - // .. ==> 0XF8000B50[2:1] = 0x00000002U - // .. ==> MASK : 0x00000006U VAL : 0x00000004U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B50[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B50[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCR_TYPE = 0x3 - // .. ==> 0XF8000B50[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B50[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B50[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B50[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B50[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B50, 0x00000FFFU ,0x00000674U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B54[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x2 - // .. ==> 0XF8000B54[2:1] = 0x00000002U - // .. ==> MASK : 0x00000006U VAL : 0x00000004U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B54[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B54[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCR_TYPE = 0x3 - // .. ==> 0XF8000B54[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B54[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B54[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B54[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B54[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B54, 0x00000FFFU ,0x00000674U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B58[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x0 - // .. ==> 0XF8000B58[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B58[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x0 - // .. ==> 0XF8000B58[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. DCR_TYPE = 0x0 - // .. ==> 0XF8000B58[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. IBUF_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B58[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B58[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B58[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B58[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B58, 0x00000FFFU ,0x00000600U), - // .. DRIVE_P = 0x1c - // .. ==> 0XF8000B5C[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. DRIVE_N = 0xc - // .. ==> 0XF8000B5C[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. SLEW_P = 0x3 - // .. ==> 0XF8000B5C[18:14] = 0x00000003U - // .. ==> MASK : 0x0007C000U VAL : 0x0000C000U - // .. SLEW_N = 0x3 - // .. ==> 0XF8000B5C[23:19] = 0x00000003U - // .. ==> MASK : 0x00F80000U VAL : 0x00180000U - // .. GTL = 0x0 - // .. ==> 0XF8000B5C[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. RTERM = 0x0 - // .. ==> 0XF8000B5C[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B5C, 0xFFFFFFFFU ,0x0018C61CU), - // .. DRIVE_P = 0x1c - // .. ==> 0XF8000B60[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. DRIVE_N = 0xc - // .. ==> 0XF8000B60[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. SLEW_P = 0x6 - // .. ==> 0XF8000B60[18:14] = 0x00000006U - // .. ==> MASK : 0x0007C000U VAL : 0x00018000U - // .. SLEW_N = 0x1f - // .. ==> 0XF8000B60[23:19] = 0x0000001FU - // .. ==> MASK : 0x00F80000U VAL : 0x00F80000U - // .. GTL = 0x0 - // .. ==> 0XF8000B60[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. RTERM = 0x0 - // .. ==> 0XF8000B60[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B60, 0xFFFFFFFFU ,0x00F9861CU), - // .. DRIVE_P = 0x1c - // .. ==> 0XF8000B64[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. DRIVE_N = 0xc - // .. ==> 0XF8000B64[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. SLEW_P = 0x6 - // .. ==> 0XF8000B64[18:14] = 0x00000006U - // .. ==> MASK : 0x0007C000U VAL : 0x00018000U - // .. SLEW_N = 0x1f - // .. ==> 0XF8000B64[23:19] = 0x0000001FU - // .. ==> MASK : 0x00F80000U VAL : 0x00F80000U - // .. GTL = 0x0 - // .. ==> 0XF8000B64[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. RTERM = 0x0 - // .. ==> 0XF8000B64[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B64, 0xFFFFFFFFU ,0x00F9861CU), - // .. DRIVE_P = 0x1c - // .. ==> 0XF8000B68[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. DRIVE_N = 0xc - // .. ==> 0XF8000B68[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. SLEW_P = 0x6 - // .. ==> 0XF8000B68[18:14] = 0x00000006U - // .. ==> MASK : 0x0007C000U VAL : 0x00018000U - // .. SLEW_N = 0x1f - // .. ==> 0XF8000B68[23:19] = 0x0000001FU - // .. ==> MASK : 0x00F80000U VAL : 0x00F80000U - // .. GTL = 0x0 - // .. ==> 0XF8000B68[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. RTERM = 0x0 - // .. ==> 0XF8000B68[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B68, 0xFFFFFFFFU ,0x00F9861CU), - // .. VREF_INT_EN = 0x1 - // .. ==> 0XF8000B6C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. VREF_SEL = 0x4 - // .. ==> 0XF8000B6C[4:1] = 0x00000004U - // .. ==> MASK : 0x0000001EU VAL : 0x00000008U - // .. VREF_EXT_EN = 0x0 - // .. ==> 0XF8000B6C[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. VREF_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[8:7] = 0x00000000U - // .. ==> MASK : 0x00000180U VAL : 0x00000000U - // .. REFIO_EN = 0x1 - // .. ==> 0XF8000B6C[9:9] = 0x00000001U - // .. ==> MASK : 0x00000200U VAL : 0x00000200U - // .. REFIO_TEST = 0x3 - // .. ==> 0XF8000B6C[11:10] = 0x00000003U - // .. ==> MASK : 0x00000C00U VAL : 0x00000C00U - // .. REFIO_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DRST_B_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. CKE_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[14:14] = 0x00000000U - // .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B6C, 0x00007FFFU ,0x00000E09U), - // .. .. START: ASSERT RESET - // .. .. RESET = 1 - // .. .. ==> 0XF8000B70[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. VRN_OUT = 0x1 - // .. .. ==> 0XF8000B70[5:5] = 0x00000001U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000020U - // .. .. - EMIT_MASKWRITE(0XF8000B70, 0x00000021U ,0x00000021U), - // .. .. FINISH: ASSERT RESET - // .. .. START: DEASSERT RESET - // .. .. RESET = 0 - // .. .. ==> 0XF8000B70[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. VRN_OUT = 0x1 - // .. .. ==> 0XF8000B70[5:5] = 0x00000001U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000020U - // .. .. - EMIT_MASKWRITE(0XF8000B70, 0x00000021U ,0x00000020U), - // .. .. FINISH: DEASSERT RESET - // .. .. RESET = 0x1 - // .. .. ==> 0XF8000B70[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. ENABLE = 0x1 - // .. .. ==> 0XF8000B70[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. VRP_TRI = 0x0 - // .. .. ==> 0XF8000B70[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. VRN_TRI = 0x0 - // .. .. ==> 0XF8000B70[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. VRP_OUT = 0x0 - // .. .. ==> 0XF8000B70[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. VRN_OUT = 0x1 - // .. .. ==> 0XF8000B70[5:5] = 0x00000001U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000020U - // .. .. NREF_OPT1 = 0x0 - // .. .. ==> 0XF8000B70[7:6] = 0x00000000U - // .. .. ==> MASK : 0x000000C0U VAL : 0x00000000U - // .. .. NREF_OPT2 = 0x0 - // .. .. ==> 0XF8000B70[10:8] = 0x00000000U - // .. .. ==> MASK : 0x00000700U VAL : 0x00000000U - // .. .. NREF_OPT4 = 0x1 - // .. .. ==> 0XF8000B70[13:11] = 0x00000001U - // .. .. ==> MASK : 0x00003800U VAL : 0x00000800U - // .. .. PREF_OPT1 = 0x0 - // .. .. ==> 0XF8000B70[16:14] = 0x00000000U - // .. .. ==> MASK : 0x0001C000U VAL : 0x00000000U - // .. .. PREF_OPT2 = 0x0 - // .. .. ==> 0XF8000B70[19:17] = 0x00000000U - // .. .. ==> MASK : 0x000E0000U VAL : 0x00000000U - // .. .. UPDATE_CONTROL = 0x0 - // .. .. ==> 0XF8000B70[20:20] = 0x00000000U - // .. .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. .. INIT_COMPLETE = 0x0 - // .. .. ==> 0XF8000B70[21:21] = 0x00000000U - // .. .. ==> MASK : 0x00200000U VAL : 0x00000000U - // .. .. TST_CLK = 0x0 - // .. .. ==> 0XF8000B70[22:22] = 0x00000000U - // .. .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. .. TST_HLN = 0x0 - // .. .. ==> 0XF8000B70[23:23] = 0x00000000U - // .. .. ==> MASK : 0x00800000U VAL : 0x00000000U - // .. .. TST_HLP = 0x0 - // .. .. ==> 0XF8000B70[24:24] = 0x00000000U - // .. .. ==> MASK : 0x01000000U VAL : 0x00000000U - // .. .. TST_RST = 0x0 - // .. .. ==> 0XF8000B70[25:25] = 0x00000000U - // .. .. ==> MASK : 0x02000000U VAL : 0x00000000U - // .. .. INT_DCI_EN = 0x0 - // .. .. ==> 0XF8000B70[26:26] = 0x00000000U - // .. .. ==> MASK : 0x04000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8000B70, 0x07FFFFFFU ,0x00000823U), - // .. FINISH: DDRIOB SETTINGS - // .. START: MIO PROGRAMMING - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000700[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. Speed = 0 - // .. ==> 0XF8000700[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000700[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000700[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000700[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000700, 0x00003F01U ,0x00001201U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000704[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000704[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000704[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000704[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000704[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000704[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000704[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000704[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000704[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000704, 0x00003FFFU ,0x00001202U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000708[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000708[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000708[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000708[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000708[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000708[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000708[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000708[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000708[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000708, 0x00003FFFU ,0x00000202U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800070C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF800070C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800070C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800070C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800070C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800070C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800070C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF800070C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800070C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800070C, 0x00003FFFU ,0x00000202U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000710[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000710[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000710[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000710[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000710[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000710[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000710[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000710[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000710[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000710, 0x00003FFFU ,0x00000202U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000714[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000714[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000714[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000714[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000714[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000714[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000714[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000714[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000714[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000714, 0x00003FFFU ,0x00000202U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000718[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000718[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000718[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000718[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000718[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000718[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000718[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000718[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000718[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000718, 0x00003FFFU ,0x00000202U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800071C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800071C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF800071C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800071C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800071C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800071C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800071C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF800071C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800071C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800071C, 0x00003FFFU ,0x00000200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000720[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000720[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000720[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000720[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000720[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000720[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000720[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000720[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000720[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000720, 0x00003FFFU ,0x00000202U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000724[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000724[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000724[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000724[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000724[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000724[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000724[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000724[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000724[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000724, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000728[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000728[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000728[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000728[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000728[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000728[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000728[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000728[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000728[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000728, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800072C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800072C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF800072C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800072C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800072C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800072C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800072C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800072C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800072C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800072C, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000730[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000730[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000730[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000730[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000730[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000730[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000730[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000730[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000730[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000730, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000734[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000734[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000734[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000734[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000734[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000734[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000734[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000734[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000734[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000734, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000738[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000738[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000738[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000738[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000738[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000738[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000738[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000738[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000738[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000738, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800073C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. Speed = 0 - // .. ==> 0XF800073C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800073C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800073C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800073C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800073C, 0x00003F01U ,0x00001201U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000740[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000740[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000740[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000740[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000740[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000740[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF8000740[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF8000740[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000740[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000740, 0x00003FFFU ,0x00002802U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000744[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000744[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000744[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000744[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000744[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000744[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF8000744[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF8000744[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000744[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000744, 0x00003FFFU ,0x00002802U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000748[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000748[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000748[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000748[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000748[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000748[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF8000748[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF8000748[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000748[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000748, 0x00003FFFU ,0x00002802U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800074C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF800074C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800074C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800074C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800074C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800074C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF800074C[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF800074C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 1 - // .. ==> 0XF800074C[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF800074C, 0x00003FFFU ,0x00002802U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000750[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000750[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000750[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000750[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000750[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000750[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF8000750[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF8000750[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000750[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000750, 0x00003FFFU ,0x00002802U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000754[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000754[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000754[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000754[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000754[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000754[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF8000754[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF8000754[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000754[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000754, 0x00003FFFU ,0x00002802U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000758[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000758[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000758[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000758[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000758[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000758[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF8000758[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF8000758[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000758[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000758, 0x00003FFFU ,0x00000803U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800075C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF800075C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800075C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800075C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800075C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800075C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF800075C[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF800075C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800075C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800075C, 0x00003FFFU ,0x00000803U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000760[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000760[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000760[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000760[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000760[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000760[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF8000760[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF8000760[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000760[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000760, 0x00003FFFU ,0x00000803U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000764[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000764[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000764[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000764[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000764[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000764[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF8000764[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF8000764[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000764[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000764, 0x00003FFFU ,0x00000803U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000768[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000768[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000768[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000768[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000768[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000768[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF8000768[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF8000768[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000768[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000768, 0x00003FFFU ,0x00000803U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800076C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF800076C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800076C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800076C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800076C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800076C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF800076C[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF800076C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800076C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800076C, 0x00003FFFU ,0x00000803U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000770[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000770[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000770[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000770[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000770[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000770[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000770[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000770[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000770[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000770, 0x00003FFFU ,0x00000204U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000774[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF8000774[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000774[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000774[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000774[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000774[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000774[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000774[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000774[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000774, 0x00003FFFU ,0x00000205U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000778[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000778[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000778[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000778[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000778[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000778[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000778[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000778[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000778[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000778, 0x00003FFFU ,0x00000204U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800077C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF800077C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF800077C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF800077C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800077C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800077C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800077C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF800077C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800077C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800077C, 0x00003FFFU ,0x00000205U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000780[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000780[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000780[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000780[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000780[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000780[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000780[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000780[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000780[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000780, 0x00003FFFU ,0x00000204U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000784[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000784[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000784[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000784[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000784[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000784[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000784[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000784[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000784[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000784, 0x00003FFFU ,0x00000204U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000788[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000788[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000788[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000788[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000788[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000788[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000788[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000788[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000788[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000788, 0x00003FFFU ,0x00000204U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800078C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800078C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF800078C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF800078C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800078C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800078C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800078C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF800078C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800078C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800078C, 0x00003FFFU ,0x00000204U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000790[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF8000790[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000790[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000790[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000790[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000790[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000790[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000790[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000790[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000790, 0x00003FFFU ,0x00000205U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000794[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000794[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000794[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000794[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000794[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000794[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000794[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000794[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000794[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000794, 0x00003FFFU ,0x00000204U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000798[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000798[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000798[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000798[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000798[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000798[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000798[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000798[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000798[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000798, 0x00003FFFU ,0x00000204U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800079C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800079C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF800079C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF800079C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800079C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800079C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800079C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF800079C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800079C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800079C, 0x00003FFFU ,0x00000204U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007A0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007A0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007A0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007A0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007A0[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007A0[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007A0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007A0[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007A0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007A0, 0x00003FFFU ,0x00000280U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007A4[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007A4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007A4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007A4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007A4[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007A4[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007A4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007A4[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007A4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007A4, 0x00003FFFU ,0x00000280U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007A8[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007A8[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007A8[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007A8[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007A8[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007A8[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007A8[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007A8[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007A8[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007A8, 0x00003FFFU ,0x00000280U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007AC[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007AC[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007AC[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007AC[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007AC[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007AC[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007AC[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007AC[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007AC[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007AC, 0x00003FFFU ,0x00000280U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007B0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007B0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007B0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007B0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007B0[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007B0[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007B0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007B0[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007B0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007B0, 0x00003FFFU ,0x00000280U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007B4[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007B4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007B4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007B4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007B4[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007B4[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007B4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007B4[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007B4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007B4, 0x00003FFFU ,0x00000280U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF80007B8[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF80007B8[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007B8[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007B8[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 1 - // .. ==> 0XF80007B8[7:5] = 0x00000001U - // .. ==> MASK : 0x000000E0U VAL : 0x00000020U - // .. Speed = 0 - // .. ==> 0XF80007B8[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007B8[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007B8[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007B8[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007B8, 0x00003FFFU ,0x00001221U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007BC[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007BC[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007BC[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007BC[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 1 - // .. ==> 0XF80007BC[7:5] = 0x00000001U - // .. ==> MASK : 0x000000E0U VAL : 0x00000020U - // .. Speed = 0 - // .. ==> 0XF80007BC[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007BC[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007BC[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007BC[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007BC, 0x00003FFFU ,0x00001220U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007C0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007C0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007C0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007C0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 7 - // .. ==> 0XF80007C0[7:5] = 0x00000007U - // .. ==> MASK : 0x000000E0U VAL : 0x000000E0U - // .. Speed = 0 - // .. ==> 0XF80007C0[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007C0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007C0[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007C0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007C0, 0x00003FFFU ,0x000002E0U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF80007C4[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF80007C4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007C4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007C4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 7 - // .. ==> 0XF80007C4[7:5] = 0x00000007U - // .. ==> MASK : 0x000000E0U VAL : 0x000000E0U - // .. Speed = 0 - // .. ==> 0XF80007C4[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007C4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007C4[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007C4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007C4, 0x00003FFFU ,0x000002E1U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007C8[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007C8[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007C8[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007C8[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 2 - // .. ==> 0XF80007C8[7:5] = 0x00000002U - // .. ==> MASK : 0x000000E0U VAL : 0x00000040U - // .. Speed = 0 - // .. ==> 0XF80007C8[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007C8[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007C8[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007C8[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007C8, 0x00003FFFU ,0x00001240U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007CC[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007CC[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007CC[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007CC[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 2 - // .. ==> 0XF80007CC[7:5] = 0x00000002U - // .. ==> MASK : 0x000000E0U VAL : 0x00000040U - // .. Speed = 0 - // .. ==> 0XF80007CC[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007CC[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007CC[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007CC[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007CC, 0x00003FFFU ,0x00001240U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007D0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007D0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007D0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007D0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007D0[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007D0[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007D0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007D0[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007D0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007D0, 0x00003FFFU ,0x00000280U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007D4[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007D4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007D4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007D4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007D4[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007D4[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007D4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007D4[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007D4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007D4, 0x00003FFFU ,0x00000280U), - // .. SDIO0_WP_SEL = 15 - // .. ==> 0XF8000830[5:0] = 0x0000000FU - // .. ==> MASK : 0x0000003FU VAL : 0x0000000FU - // .. SDIO0_CD_SEL = 0 - // .. ==> 0XF8000830[21:16] = 0x00000000U - // .. ==> MASK : 0x003F0000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000830, 0x003F003FU ,0x0000000FU), - // .. FINISH: MIO PROGRAMMING - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_peripherals_init_data_2_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: DDR TERM/IBUF_DISABLE_MODE SETTINGS - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B48[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B48[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B48, 0x00000180U ,0x00000180U), - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B4C[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B4C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B4C, 0x00000180U ,0x00000180U), - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B50[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B50[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B50, 0x00000180U ,0x00000180U), - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B54[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B54[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B54, 0x00000180U ,0x00000180U), - // .. FINISH: DDR TERM/IBUF_DISABLE_MODE SETTINGS - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // .. START: SRAM/NOR SET OPMODE - // .. FINISH: SRAM/NOR SET OPMODE - // .. START: TRACE CURRENT PORT SIZE - // .. FINISH: TRACE CURRENT PORT SIZE - // .. START: UART REGISTERS - // .. BDIV = 0x6 - // .. ==> 0XE0001034[7:0] = 0x00000006U - // .. ==> MASK : 0x000000FFU VAL : 0x00000006U - // .. - EMIT_MASKWRITE(0XE0001034, 0x000000FFU ,0x00000006U), - // .. CD = 0x3e - // .. ==> 0XE0001018[15:0] = 0x0000003EU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000003EU - // .. - EMIT_MASKWRITE(0XE0001018, 0x0000FFFFU ,0x0000003EU), - // .. STPBRK = 0x0 - // .. ==> 0XE0001000[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. STTBRK = 0x0 - // .. ==> 0XE0001000[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. RSTTO = 0x0 - // .. ==> 0XE0001000[6:6] = 0x00000000U - // .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. TXDIS = 0x0 - // .. ==> 0XE0001000[5:5] = 0x00000000U - // .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. TXEN = 0x1 - // .. ==> 0XE0001000[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. RXDIS = 0x0 - // .. ==> 0XE0001000[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. RXEN = 0x1 - // .. ==> 0XE0001000[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. TXRES = 0x1 - // .. ==> 0XE0001000[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. RXRES = 0x1 - // .. ==> 0XE0001000[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. - EMIT_MASKWRITE(0XE0001000, 0x000001FFU ,0x00000017U), - // .. IRMODE = 0x0 - // .. ==> 0XE0001004[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. UCLKEN = 0x0 - // .. ==> 0XE0001004[10:10] = 0x00000000U - // .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. CHMODE = 0x0 - // .. ==> 0XE0001004[9:8] = 0x00000000U - // .. ==> MASK : 0x00000300U VAL : 0x00000000U - // .. NBSTOP = 0x0 - // .. ==> 0XE0001004[7:6] = 0x00000000U - // .. ==> MASK : 0x000000C0U VAL : 0x00000000U - // .. PAR = 0x4 - // .. ==> 0XE0001004[5:3] = 0x00000004U - // .. ==> MASK : 0x00000038U VAL : 0x00000020U - // .. CHRL = 0x0 - // .. ==> 0XE0001004[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. CLKS = 0x0 - // .. ==> 0XE0001004[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XE0001004, 0x00000FFFU ,0x00000020U), - // .. FINISH: UART REGISTERS - // .. START: QSPI REGISTERS - // .. Holdb_dr = 1 - // .. ==> 0XE000D000[19:19] = 0x00000001U - // .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. - EMIT_MASKWRITE(0XE000D000, 0x00080000U ,0x00080000U), - // .. FINISH: QSPI REGISTERS - // .. START: PL POWER ON RESET REGISTERS - // .. PCFG_POR_CNT_4K = 0 - // .. ==> 0XF8007000[29:29] = 0x00000000U - // .. ==> MASK : 0x20000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8007000, 0x20000000U ,0x00000000U), - // .. FINISH: PL POWER ON RESET REGISTERS - // .. START: SMC TIMING CALCULATION REGISTER UPDATE - // .. .. START: NAND SET CYCLE - // .. .. FINISH: NAND SET CYCLE - // .. .. START: OPMODE - // .. .. FINISH: OPMODE - // .. .. START: DIRECT COMMAND - // .. .. FINISH: DIRECT COMMAND - // .. .. START: SRAM/NOR CS0 SET CYCLE - // .. .. FINISH: SRAM/NOR CS0 SET CYCLE - // .. .. START: DIRECT COMMAND - // .. .. FINISH: DIRECT COMMAND - // .. .. START: NOR CS0 BASE ADDRESS - // .. .. FINISH: NOR CS0 BASE ADDRESS - // .. .. START: SRAM/NOR CS1 SET CYCLE - // .. .. FINISH: SRAM/NOR CS1 SET CYCLE - // .. .. START: DIRECT COMMAND - // .. .. FINISH: DIRECT COMMAND - // .. .. START: NOR CS1 BASE ADDRESS - // .. .. FINISH: NOR CS1 BASE ADDRESS - // .. .. START: USB RESET - // .. .. .. START: DIR MODE BANK 0 - // .. .. .. DIRECTION_0 = 0x2880 - // .. .. .. ==> 0XE000A204[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A204, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: DIR MODE BANK 0 - // .. .. .. START: DIR MODE BANK 1 - // .. .. .. FINISH: DIR MODE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xff7f - // .. .. .. ==> 0XE000A000[31:16] = 0x0000FF7FU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xFF7F0000U - // .. .. .. DATA_0_LSW = 0x80 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000080U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000080U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xFF7F0080U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. START: OUTPUT ENABLE BANK 0 - // .. .. .. OP_ENABLE_0 = 0x2880 - // .. .. .. ==> 0XE000A208[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A208, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: OUTPUT ENABLE BANK 0 - // .. .. .. START: OUTPUT ENABLE BANK 1 - // .. .. .. FINISH: OUTPUT ENABLE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. MASK_0_LSW = 0xff7f - // .. .. .. ==> 0XE000A000[31:16] = 0x0000FF7FU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xFF7F0000U - // .. .. .. DATA_0_LSW = 0x0 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xFF7F0000U), - // .. .. .. FINISH: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xff7f - // .. .. .. ==> 0XE000A000[31:16] = 0x0000FF7FU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xFF7F0000U - // .. .. .. DATA_0_LSW = 0x80 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000080U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000080U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xFF7F0080U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. FINISH: USB RESET - // .. .. START: ENET RESET - // .. .. .. START: DIR MODE BANK 0 - // .. .. .. DIRECTION_0 = 0x2880 - // .. .. .. ==> 0XE000A204[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A204, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: DIR MODE BANK 0 - // .. .. .. START: DIR MODE BANK 1 - // .. .. .. FINISH: DIR MODE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xf7ff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000F7FFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xF7FF0000U - // .. .. .. DATA_0_LSW = 0x800 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000800U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000800U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xF7FF0800U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. START: OUTPUT ENABLE BANK 0 - // .. .. .. OP_ENABLE_0 = 0x2880 - // .. .. .. ==> 0XE000A208[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A208, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: OUTPUT ENABLE BANK 0 - // .. .. .. START: OUTPUT ENABLE BANK 1 - // .. .. .. FINISH: OUTPUT ENABLE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. MASK_0_LSW = 0xf7ff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000F7FFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xF7FF0000U - // .. .. .. DATA_0_LSW = 0x0 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xF7FF0000U), - // .. .. .. FINISH: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xf7ff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000F7FFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xF7FF0000U - // .. .. .. DATA_0_LSW = 0x800 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000800U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000800U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xF7FF0800U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. FINISH: ENET RESET - // .. .. START: I2C RESET - // .. .. .. START: DIR MODE GPIO BANK0 - // .. .. .. DIRECTION_0 = 0x2880 - // .. .. .. ==> 0XE000A204[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A204, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: DIR MODE GPIO BANK0 - // .. .. .. START: DIR MODE GPIO BANK1 - // .. .. .. FINISH: DIR MODE GPIO BANK1 - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xdfff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000DFFFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xDFFF0000U - // .. .. .. DATA_0_LSW = 0x2000 - // .. .. .. ==> 0XE000A000[15:0] = 0x00002000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00002000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xDFFF2000U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. START: OUTPUT ENABLE - // .. .. .. OP_ENABLE_0 = 0x2880 - // .. .. .. ==> 0XE000A208[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A208, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: OUTPUT ENABLE - // .. .. .. START: OUTPUT ENABLE - // .. .. .. FINISH: OUTPUT ENABLE - // .. .. .. START: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. MASK_0_LSW = 0xdfff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000DFFFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xDFFF0000U - // .. .. .. DATA_0_LSW = 0x0 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xDFFF0000U), - // .. .. .. FINISH: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xdfff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000DFFFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xDFFF0000U - // .. .. .. DATA_0_LSW = 0x2000 - // .. .. .. ==> 0XE000A000[15:0] = 0x00002000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00002000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xDFFF2000U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. FINISH: I2C RESET - // .. FINISH: SMC TIMING CALCULATION REGISTER UPDATE - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_post_config_2_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: ENABLING LEVEL SHIFTER - // .. USER_INP_ICT_EN_0 = 3 - // .. ==> 0XF8000900[1:0] = 0x00000003U - // .. ==> MASK : 0x00000003U VAL : 0x00000003U - // .. USER_INP_ICT_EN_1 = 3 - // .. ==> 0XF8000900[3:2] = 0x00000003U - // .. ==> MASK : 0x0000000CU VAL : 0x0000000CU - // .. - EMIT_MASKWRITE(0XF8000900, 0x0000000FU ,0x0000000FU), - // .. FINISH: ENABLING LEVEL SHIFTER - // .. START: FPGA RESETS TO 0 - // .. reserved_3 = 0 - // .. ==> 0XF8000240[31:25] = 0x00000000U - // .. ==> MASK : 0xFE000000U VAL : 0x00000000U - // .. FPGA_ACP_RST = 0 - // .. ==> 0XF8000240[24:24] = 0x00000000U - // .. ==> MASK : 0x01000000U VAL : 0x00000000U - // .. FPGA_AXDS3_RST = 0 - // .. ==> 0XF8000240[23:23] = 0x00000000U - // .. ==> MASK : 0x00800000U VAL : 0x00000000U - // .. FPGA_AXDS2_RST = 0 - // .. ==> 0XF8000240[22:22] = 0x00000000U - // .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. FPGA_AXDS1_RST = 0 - // .. ==> 0XF8000240[21:21] = 0x00000000U - // .. ==> MASK : 0x00200000U VAL : 0x00000000U - // .. FPGA_AXDS0_RST = 0 - // .. ==> 0XF8000240[20:20] = 0x00000000U - // .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. reserved_2 = 0 - // .. ==> 0XF8000240[19:18] = 0x00000000U - // .. ==> MASK : 0x000C0000U VAL : 0x00000000U - // .. FSSW1_FPGA_RST = 0 - // .. ==> 0XF8000240[17:17] = 0x00000000U - // .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. FSSW0_FPGA_RST = 0 - // .. ==> 0XF8000240[16:16] = 0x00000000U - // .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. reserved_1 = 0 - // .. ==> 0XF8000240[15:14] = 0x00000000U - // .. ==> MASK : 0x0000C000U VAL : 0x00000000U - // .. FPGA_FMSW1_RST = 0 - // .. ==> 0XF8000240[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. FPGA_FMSW0_RST = 0 - // .. ==> 0XF8000240[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. FPGA_DMA3_RST = 0 - // .. ==> 0XF8000240[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. FPGA_DMA2_RST = 0 - // .. ==> 0XF8000240[10:10] = 0x00000000U - // .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. FPGA_DMA1_RST = 0 - // .. ==> 0XF8000240[9:9] = 0x00000000U - // .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. FPGA_DMA0_RST = 0 - // .. ==> 0XF8000240[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. reserved = 0 - // .. ==> 0XF8000240[7:4] = 0x00000000U - // .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. FPGA3_OUT_RST = 0 - // .. ==> 0XF8000240[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. FPGA2_OUT_RST = 0 - // .. ==> 0XF8000240[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. FPGA1_OUT_RST = 0 - // .. ==> 0XF8000240[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. FPGA0_OUT_RST = 0 - // .. ==> 0XF8000240[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000240, 0xFFFFFFFFU ,0x00000000U), - // .. FINISH: FPGA RESETS TO 0 - // .. START: AFI REGISTERS - // .. .. START: AFI0 REGISTERS - // .. .. FINISH: AFI0 REGISTERS - // .. .. START: AFI1 REGISTERS - // .. .. FINISH: AFI1 REGISTERS - // .. .. START: AFI2 REGISTERS - // .. .. FINISH: AFI2 REGISTERS - // .. .. START: AFI3 REGISTERS - // .. .. FINISH: AFI3 REGISTERS - // .. FINISH: AFI REGISTERS - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_pll_init_data_1_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: PLL SLCR REGISTERS - // .. .. START: ARM PLL INIT - // .. .. PLL_RES = 0x2 - // .. .. ==> 0XF8000110[7:4] = 0x00000002U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000020U - // .. .. PLL_CP = 0x2 - // .. .. ==> 0XF8000110[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. LOCK_CNT = 0xfa - // .. .. ==> 0XF8000110[21:12] = 0x000000FAU - // .. .. ==> MASK : 0x003FF000U VAL : 0x000FA000U - // .. .. - EMIT_MASKWRITE(0XF8000110, 0x003FFFF0U ,0x000FA220U), - // .. .. .. START: UPDATE FB_DIV - // .. .. .. PLL_FDIV = 0x28 - // .. .. .. ==> 0XF8000100[18:12] = 0x00000028U - // .. .. .. ==> MASK : 0x0007F000U VAL : 0x00028000U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x0007F000U ,0x00028000U), - // .. .. .. FINISH: UPDATE FB_DIV - // .. .. .. START: BY PASS PLL - // .. .. .. PLL_BYPASS_FORCE = 1 - // .. .. .. ==> 0XF8000100[4:4] = 0x00000001U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000010U ,0x00000010U), - // .. .. .. FINISH: BY PASS PLL - // .. .. .. START: ASSERT RESET - // .. .. .. PLL_RESET = 1 - // .. .. .. ==> 0XF8000100[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000001U ,0x00000001U), - // .. .. .. FINISH: ASSERT RESET - // .. .. .. START: DEASSERT RESET - // .. .. .. PLL_RESET = 0 - // .. .. .. ==> 0XF8000100[0:0] = 0x00000000U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000001U ,0x00000000U), - // .. .. .. FINISH: DEASSERT RESET - // .. .. .. START: CHECK PLL STATUS - // .. .. .. ARM_PLL_LOCK = 1 - // .. .. .. ==> 0XF800010C[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKPOLL(0XF800010C, 0x00000001U), - // .. .. .. FINISH: CHECK PLL STATUS - // .. .. .. START: REMOVE PLL BY PASS - // .. .. .. PLL_BYPASS_FORCE = 0 - // .. .. .. ==> 0XF8000100[4:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000010U ,0x00000000U), - // .. .. .. FINISH: REMOVE PLL BY PASS - // .. .. .. SRCSEL = 0x0 - // .. .. .. ==> 0XF8000120[5:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. .. .. DIVISOR = 0x2 - // .. .. .. ==> 0XF8000120[13:8] = 0x00000002U - // .. .. .. ==> MASK : 0x00003F00U VAL : 0x00000200U - // .. .. .. CPU_6OR4XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[24:24] = 0x00000001U - // .. .. .. ==> MASK : 0x01000000U VAL : 0x01000000U - // .. .. .. CPU_3OR2XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[25:25] = 0x00000001U - // .. .. .. ==> MASK : 0x02000000U VAL : 0x02000000U - // .. .. .. CPU_2XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[26:26] = 0x00000001U - // .. .. .. ==> MASK : 0x04000000U VAL : 0x04000000U - // .. .. .. CPU_1XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[27:27] = 0x00000001U - // .. .. .. ==> MASK : 0x08000000U VAL : 0x08000000U - // .. .. .. CPU_PERI_CLKACT = 0x1 - // .. .. .. ==> 0XF8000120[28:28] = 0x00000001U - // .. .. .. ==> MASK : 0x10000000U VAL : 0x10000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000120, 0x1F003F30U ,0x1F000200U), - // .. .. FINISH: ARM PLL INIT - // .. .. START: DDR PLL INIT - // .. .. PLL_RES = 0x2 - // .. .. ==> 0XF8000114[7:4] = 0x00000002U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000020U - // .. .. PLL_CP = 0x2 - // .. .. ==> 0XF8000114[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. LOCK_CNT = 0x12c - // .. .. ==> 0XF8000114[21:12] = 0x0000012CU - // .. .. ==> MASK : 0x003FF000U VAL : 0x0012C000U - // .. .. - EMIT_MASKWRITE(0XF8000114, 0x003FFFF0U ,0x0012C220U), - // .. .. .. START: UPDATE FB_DIV - // .. .. .. PLL_FDIV = 0x20 - // .. .. .. ==> 0XF8000104[18:12] = 0x00000020U - // .. .. .. ==> MASK : 0x0007F000U VAL : 0x00020000U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x0007F000U ,0x00020000U), - // .. .. .. FINISH: UPDATE FB_DIV - // .. .. .. START: BY PASS PLL - // .. .. .. PLL_BYPASS_FORCE = 1 - // .. .. .. ==> 0XF8000104[4:4] = 0x00000001U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000010U ,0x00000010U), - // .. .. .. FINISH: BY PASS PLL - // .. .. .. START: ASSERT RESET - // .. .. .. PLL_RESET = 1 - // .. .. .. ==> 0XF8000104[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000001U ,0x00000001U), - // .. .. .. FINISH: ASSERT RESET - // .. .. .. START: DEASSERT RESET - // .. .. .. PLL_RESET = 0 - // .. .. .. ==> 0XF8000104[0:0] = 0x00000000U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000001U ,0x00000000U), - // .. .. .. FINISH: DEASSERT RESET - // .. .. .. START: CHECK PLL STATUS - // .. .. .. DDR_PLL_LOCK = 1 - // .. .. .. ==> 0XF800010C[1:1] = 0x00000001U - // .. .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. .. - EMIT_MASKPOLL(0XF800010C, 0x00000002U), - // .. .. .. FINISH: CHECK PLL STATUS - // .. .. .. START: REMOVE PLL BY PASS - // .. .. .. PLL_BYPASS_FORCE = 0 - // .. .. .. ==> 0XF8000104[4:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000010U ,0x00000000U), - // .. .. .. FINISH: REMOVE PLL BY PASS - // .. .. .. DDR_3XCLKACT = 0x1 - // .. .. .. ==> 0XF8000124[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. DDR_2XCLKACT = 0x1 - // .. .. .. ==> 0XF8000124[1:1] = 0x00000001U - // .. .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. .. DDR_3XCLK_DIVISOR = 0x2 - // .. .. .. ==> 0XF8000124[25:20] = 0x00000002U - // .. .. .. ==> MASK : 0x03F00000U VAL : 0x00200000U - // .. .. .. DDR_2XCLK_DIVISOR = 0x3 - // .. .. .. ==> 0XF8000124[31:26] = 0x00000003U - // .. .. .. ==> MASK : 0xFC000000U VAL : 0x0C000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000124, 0xFFF00003U ,0x0C200003U), - // .. .. FINISH: DDR PLL INIT - // .. .. START: IO PLL INIT - // .. .. PLL_RES = 0xc - // .. .. ==> 0XF8000118[7:4] = 0x0000000CU - // .. .. ==> MASK : 0x000000F0U VAL : 0x000000C0U - // .. .. PLL_CP = 0x2 - // .. .. ==> 0XF8000118[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. LOCK_CNT = 0x145 - // .. .. ==> 0XF8000118[21:12] = 0x00000145U - // .. .. ==> MASK : 0x003FF000U VAL : 0x00145000U - // .. .. - EMIT_MASKWRITE(0XF8000118, 0x003FFFF0U ,0x001452C0U), - // .. .. .. START: UPDATE FB_DIV - // .. .. .. PLL_FDIV = 0x1e - // .. .. .. ==> 0XF8000108[18:12] = 0x0000001EU - // .. .. .. ==> MASK : 0x0007F000U VAL : 0x0001E000U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x0007F000U ,0x0001E000U), - // .. .. .. FINISH: UPDATE FB_DIV - // .. .. .. START: BY PASS PLL - // .. .. .. PLL_BYPASS_FORCE = 1 - // .. .. .. ==> 0XF8000108[4:4] = 0x00000001U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000010U ,0x00000010U), - // .. .. .. FINISH: BY PASS PLL - // .. .. .. START: ASSERT RESET - // .. .. .. PLL_RESET = 1 - // .. .. .. ==> 0XF8000108[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000001U ,0x00000001U), - // .. .. .. FINISH: ASSERT RESET - // .. .. .. START: DEASSERT RESET - // .. .. .. PLL_RESET = 0 - // .. .. .. ==> 0XF8000108[0:0] = 0x00000000U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000001U ,0x00000000U), - // .. .. .. FINISH: DEASSERT RESET - // .. .. .. START: CHECK PLL STATUS - // .. .. .. IO_PLL_LOCK = 1 - // .. .. .. ==> 0XF800010C[2:2] = 0x00000001U - // .. .. .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. .. .. - EMIT_MASKPOLL(0XF800010C, 0x00000004U), - // .. .. .. FINISH: CHECK PLL STATUS - // .. .. .. START: REMOVE PLL BY PASS - // .. .. .. PLL_BYPASS_FORCE = 0 - // .. .. .. ==> 0XF8000108[4:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000010U ,0x00000000U), - // .. .. .. FINISH: REMOVE PLL BY PASS - // .. .. FINISH: IO PLL INIT - // .. FINISH: PLL SLCR REGISTERS - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_clock_init_data_1_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: CLOCK CONTROL SLCR REGISTERS - // .. CLKACT = 0x1 - // .. ==> 0XF8000128[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. DIVISOR0 = 0x23 - // .. ==> 0XF8000128[13:8] = 0x00000023U - // .. ==> MASK : 0x00003F00U VAL : 0x00002300U - // .. DIVISOR1 = 0x3 - // .. ==> 0XF8000128[25:20] = 0x00000003U - // .. ==> MASK : 0x03F00000U VAL : 0x00300000U - // .. - EMIT_MASKWRITE(0XF8000128, 0x03F03F01U ,0x00302301U), - // .. CLKACT = 0x1 - // .. ==> 0XF8000138[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000138[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000138, 0x00000011U ,0x00000001U), - // .. CLKACT = 0x1 - // .. ==> 0XF8000140[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000140[6:4] = 0x00000000U - // .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. DIVISOR = 0x8 - // .. ==> 0XF8000140[13:8] = 0x00000008U - // .. ==> MASK : 0x00003F00U VAL : 0x00000800U - // .. DIVISOR1 = 0x5 - // .. ==> 0XF8000140[25:20] = 0x00000005U - // .. ==> MASK : 0x03F00000U VAL : 0x00500000U - // .. - EMIT_MASKWRITE(0XF8000140, 0x03F03F71U ,0x00500801U), - // .. CLKACT = 0x1 - // .. ==> 0XF800014C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF800014C[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x5 - // .. ==> 0XF800014C[13:8] = 0x00000005U - // .. ==> MASK : 0x00003F00U VAL : 0x00000500U - // .. - EMIT_MASKWRITE(0XF800014C, 0x00003F31U ,0x00000501U), - // .. CLKACT0 = 0x1 - // .. ==> 0XF8000150[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. CLKACT1 = 0x0 - // .. ==> 0XF8000150[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000150[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x14 - // .. ==> 0XF8000150[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. - EMIT_MASKWRITE(0XF8000150, 0x00003F33U ,0x00001401U), - // .. CLKACT0 = 0x0 - // .. ==> 0XF8000154[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. CLKACT1 = 0x1 - // .. ==> 0XF8000154[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000154[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x14 - // .. ==> 0XF8000154[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. - EMIT_MASKWRITE(0XF8000154, 0x00003F33U ,0x00001402U), - // .. CLKACT0 = 0x1 - // .. ==> 0XF800015C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. CLKACT1 = 0x0 - // .. ==> 0XF800015C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. SRCSEL = 0x0 - // .. ==> 0XF800015C[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0xe - // .. ==> 0XF800015C[13:8] = 0x0000000EU - // .. ==> MASK : 0x00003F00U VAL : 0x00000E00U - // .. DIVISOR1 = 0x3 - // .. ==> 0XF800015C[25:20] = 0x00000003U - // .. ==> MASK : 0x03F00000U VAL : 0x00300000U - // .. - EMIT_MASKWRITE(0XF800015C, 0x03F03F33U ,0x00300E01U), - // .. CAN0_MUX = 0x0 - // .. ==> 0XF8000160[5:0] = 0x00000000U - // .. ==> MASK : 0x0000003FU VAL : 0x00000000U - // .. CAN0_REF_SEL = 0x0 - // .. ==> 0XF8000160[6:6] = 0x00000000U - // .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. CAN1_MUX = 0x0 - // .. ==> 0XF8000160[21:16] = 0x00000000U - // .. ==> MASK : 0x003F0000U VAL : 0x00000000U - // .. CAN1_REF_SEL = 0x0 - // .. ==> 0XF8000160[22:22] = 0x00000000U - // .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000160, 0x007F007FU ,0x00000000U), - // .. CLKACT = 0x1 - // .. ==> 0XF8000168[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000168[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x5 - // .. ==> 0XF8000168[13:8] = 0x00000005U - // .. ==> MASK : 0x00003F00U VAL : 0x00000500U - // .. - EMIT_MASKWRITE(0XF8000168, 0x00003F31U ,0x00000501U), - // .. SRCSEL = 0x0 - // .. ==> 0XF8000170[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF8000170[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF8000170[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF8000170, 0x03F03F30U ,0x00101400U), - // .. SRCSEL = 0x0 - // .. ==> 0XF8000180[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF8000180[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF8000180[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF8000180, 0x03F03F30U ,0x00101400U), - // .. SRCSEL = 0x0 - // .. ==> 0XF8000190[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF8000190[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF8000190[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF8000190, 0x03F03F30U ,0x00101400U), - // .. SRCSEL = 0x0 - // .. ==> 0XF80001A0[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF80001A0[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF80001A0[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF80001A0, 0x03F03F30U ,0x00101400U), - // .. CLK_621_TRUE = 0x1 - // .. ==> 0XF80001C4[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. - EMIT_MASKWRITE(0XF80001C4, 0x00000001U ,0x00000001U), - // .. DMA_CPU_2XCLKACT = 0x1 - // .. ==> 0XF800012C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. USB0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. USB1_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[3:3] = 0x00000001U - // .. ==> MASK : 0x00000008U VAL : 0x00000008U - // .. GEM0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[6:6] = 0x00000001U - // .. ==> MASK : 0x00000040U VAL : 0x00000040U - // .. GEM1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. SDI0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[10:10] = 0x00000001U - // .. ==> MASK : 0x00000400U VAL : 0x00000400U - // .. SDI1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. SPI0_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[14:14] = 0x00000000U - // .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. SPI1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[15:15] = 0x00000000U - // .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. CAN0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[16:16] = 0x00000001U - // .. ==> MASK : 0x00010000U VAL : 0x00010000U - // .. CAN1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[17:17] = 0x00000000U - // .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. I2C0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[18:18] = 0x00000001U - // .. ==> MASK : 0x00040000U VAL : 0x00040000U - // .. I2C1_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[19:19] = 0x00000001U - // .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. UART0_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[20:20] = 0x00000000U - // .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. UART1_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[21:21] = 0x00000001U - // .. ==> MASK : 0x00200000U VAL : 0x00200000U - // .. GPIO_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[22:22] = 0x00000001U - // .. ==> MASK : 0x00400000U VAL : 0x00400000U - // .. LQSPI_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[23:23] = 0x00000001U - // .. ==> MASK : 0x00800000U VAL : 0x00800000U - // .. SMC_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[24:24] = 0x00000001U - // .. ==> MASK : 0x01000000U VAL : 0x01000000U - // .. - EMIT_MASKWRITE(0XF800012C, 0x01FFCCCDU ,0x01ED044DU), - // .. FINISH: CLOCK CONTROL SLCR REGISTERS - // .. START: THIS SHOULD BE BLANK - // .. FINISH: THIS SHOULD BE BLANK - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_ddr_init_data_1_0[] = { - // START: top - // .. START: DDR INITIALIZATION - // .. .. START: LOCK DDR - // .. .. reg_ddrc_soft_rstb = 0 - // .. .. ==> 0XF8006000[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_powerdown_en = 0x0 - // .. .. ==> 0XF8006000[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_data_bus_width = 0x0 - // .. .. ==> 0XF8006000[3:2] = 0x00000000U - // .. .. ==> MASK : 0x0000000CU VAL : 0x00000000U - // .. .. reg_ddrc_burst8_refresh = 0x0 - // .. .. ==> 0XF8006000[6:4] = 0x00000000U - // .. .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. .. reg_ddrc_rdwr_idle_gap = 0x1 - // .. .. ==> 0XF8006000[13:7] = 0x00000001U - // .. .. ==> MASK : 0x00003F80U VAL : 0x00000080U - // .. .. reg_ddrc_dis_rd_bypass = 0x0 - // .. .. ==> 0XF8006000[14:14] = 0x00000000U - // .. .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_act_bypass = 0x0 - // .. .. ==> 0XF8006000[15:15] = 0x00000000U - // .. .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_auto_refresh = 0x0 - // .. .. ==> 0XF8006000[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006000, 0x0001FFFFU ,0x00000080U), - // .. .. FINISH: LOCK DDR - // .. .. reg_ddrc_t_rfc_nom_x32 = 0x81 - // .. .. ==> 0XF8006004[11:0] = 0x00000081U - // .. .. ==> MASK : 0x00000FFFU VAL : 0x00000081U - // .. .. reg_ddrc_active_ranks = 0x1 - // .. .. ==> 0XF8006004[13:12] = 0x00000001U - // .. .. ==> MASK : 0x00003000U VAL : 0x00001000U - // .. .. reg_ddrc_addrmap_cs_bit0 = 0x0 - // .. .. ==> 0XF8006004[18:14] = 0x00000000U - // .. .. ==> MASK : 0x0007C000U VAL : 0x00000000U - // .. .. reg_ddrc_wr_odt_block = 0x1 - // .. .. ==> 0XF8006004[20:19] = 0x00000001U - // .. .. ==> MASK : 0x00180000U VAL : 0x00080000U - // .. .. reg_ddrc_diff_rank_rd_2cycle_gap = 0x0 - // .. .. ==> 0XF8006004[21:21] = 0x00000000U - // .. .. ==> MASK : 0x00200000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_cs_bit1 = 0x0 - // .. .. ==> 0XF8006004[26:22] = 0x00000000U - // .. .. ==> MASK : 0x07C00000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_open_bank = 0x0 - // .. .. ==> 0XF8006004[27:27] = 0x00000000U - // .. .. ==> MASK : 0x08000000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_4bank_ram = 0x0 - // .. .. ==> 0XF8006004[28:28] = 0x00000000U - // .. .. ==> MASK : 0x10000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006004, 0x1FFFFFFFU ,0x00081081U), - // .. .. reg_ddrc_hpr_min_non_critical_x32 = 0xf - // .. .. ==> 0XF8006008[10:0] = 0x0000000FU - // .. .. ==> MASK : 0x000007FFU VAL : 0x0000000FU - // .. .. reg_ddrc_hpr_max_starve_x32 = 0xf - // .. .. ==> 0XF8006008[21:11] = 0x0000000FU - // .. .. ==> MASK : 0x003FF800U VAL : 0x00007800U - // .. .. reg_ddrc_hpr_xact_run_length = 0xf - // .. .. ==> 0XF8006008[25:22] = 0x0000000FU - // .. .. ==> MASK : 0x03C00000U VAL : 0x03C00000U - // .. .. - EMIT_MASKWRITE(0XF8006008, 0x03FFFFFFU ,0x03C0780FU), - // .. .. reg_ddrc_lpr_min_non_critical_x32 = 0x1 - // .. .. ==> 0XF800600C[10:0] = 0x00000001U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000001U - // .. .. reg_ddrc_lpr_max_starve_x32 = 0x2 - // .. .. ==> 0XF800600C[21:11] = 0x00000002U - // .. .. ==> MASK : 0x003FF800U VAL : 0x00001000U - // .. .. reg_ddrc_lpr_xact_run_length = 0x8 - // .. .. ==> 0XF800600C[25:22] = 0x00000008U - // .. .. ==> MASK : 0x03C00000U VAL : 0x02000000U - // .. .. - EMIT_MASKWRITE(0XF800600C, 0x03FFFFFFU ,0x02001001U), - // .. .. reg_ddrc_w_min_non_critical_x32 = 0x1 - // .. .. ==> 0XF8006010[10:0] = 0x00000001U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000001U - // .. .. reg_ddrc_w_xact_run_length = 0x8 - // .. .. ==> 0XF8006010[14:11] = 0x00000008U - // .. .. ==> MASK : 0x00007800U VAL : 0x00004000U - // .. .. reg_ddrc_w_max_starve_x32 = 0x2 - // .. .. ==> 0XF8006010[25:15] = 0x00000002U - // .. .. ==> MASK : 0x03FF8000U VAL : 0x00010000U - // .. .. - EMIT_MASKWRITE(0XF8006010, 0x03FFFFFFU ,0x00014001U), - // .. .. reg_ddrc_t_rc = 0x1b - // .. .. ==> 0XF8006014[5:0] = 0x0000001BU - // .. .. ==> MASK : 0x0000003FU VAL : 0x0000001BU - // .. .. reg_ddrc_t_rfc_min = 0x56 - // .. .. ==> 0XF8006014[13:6] = 0x00000056U - // .. .. ==> MASK : 0x00003FC0U VAL : 0x00001580U - // .. .. reg_ddrc_post_selfref_gap_x32 = 0x10 - // .. .. ==> 0XF8006014[20:14] = 0x00000010U - // .. .. ==> MASK : 0x001FC000U VAL : 0x00040000U - // .. .. - EMIT_MASKWRITE(0XF8006014, 0x001FFFFFU ,0x0004159BU), - // .. .. reg_ddrc_wr2pre = 0x12 - // .. .. ==> 0XF8006018[4:0] = 0x00000012U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000012U - // .. .. reg_ddrc_powerdown_to_x32 = 0x6 - // .. .. ==> 0XF8006018[9:5] = 0x00000006U - // .. .. ==> MASK : 0x000003E0U VAL : 0x000000C0U - // .. .. reg_ddrc_t_faw = 0x10 - // .. .. ==> 0XF8006018[15:10] = 0x00000010U - // .. .. ==> MASK : 0x0000FC00U VAL : 0x00004000U - // .. .. reg_ddrc_t_ras_max = 0x24 - // .. .. ==> 0XF8006018[21:16] = 0x00000024U - // .. .. ==> MASK : 0x003F0000U VAL : 0x00240000U - // .. .. reg_ddrc_t_ras_min = 0x14 - // .. .. ==> 0XF8006018[26:22] = 0x00000014U - // .. .. ==> MASK : 0x07C00000U VAL : 0x05000000U - // .. .. reg_ddrc_t_cke = 0x4 - // .. .. ==> 0XF8006018[31:28] = 0x00000004U - // .. .. ==> MASK : 0xF0000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006018, 0xF7FFFFFFU ,0x452440D2U), - // .. .. reg_ddrc_write_latency = 0x5 - // .. .. ==> 0XF800601C[4:0] = 0x00000005U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000005U - // .. .. reg_ddrc_rd2wr = 0x7 - // .. .. ==> 0XF800601C[9:5] = 0x00000007U - // .. .. ==> MASK : 0x000003E0U VAL : 0x000000E0U - // .. .. reg_ddrc_wr2rd = 0xe - // .. .. ==> 0XF800601C[14:10] = 0x0000000EU - // .. .. ==> MASK : 0x00007C00U VAL : 0x00003800U - // .. .. reg_ddrc_t_xp = 0x4 - // .. .. ==> 0XF800601C[19:15] = 0x00000004U - // .. .. ==> MASK : 0x000F8000U VAL : 0x00020000U - // .. .. reg_ddrc_pad_pd = 0x0 - // .. .. ==> 0XF800601C[22:20] = 0x00000000U - // .. .. ==> MASK : 0x00700000U VAL : 0x00000000U - // .. .. reg_ddrc_rd2pre = 0x4 - // .. .. ==> 0XF800601C[27:23] = 0x00000004U - // .. .. ==> MASK : 0x0F800000U VAL : 0x02000000U - // .. .. reg_ddrc_t_rcd = 0x7 - // .. .. ==> 0XF800601C[31:28] = 0x00000007U - // .. .. ==> MASK : 0xF0000000U VAL : 0x70000000U - // .. .. - EMIT_MASKWRITE(0XF800601C, 0xFFFFFFFFU ,0x720238E5U), - // .. .. reg_ddrc_t_ccd = 0x4 - // .. .. ==> 0XF8006020[4:2] = 0x00000004U - // .. .. ==> MASK : 0x0000001CU VAL : 0x00000010U - // .. .. reg_ddrc_t_rrd = 0x4 - // .. .. ==> 0XF8006020[7:5] = 0x00000004U - // .. .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. .. reg_ddrc_refresh_margin = 0x2 - // .. .. ==> 0XF8006020[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. reg_ddrc_t_rp = 0x7 - // .. .. ==> 0XF8006020[15:12] = 0x00000007U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00007000U - // .. .. reg_ddrc_refresh_to_x32 = 0x8 - // .. .. ==> 0XF8006020[20:16] = 0x00000008U - // .. .. ==> MASK : 0x001F0000U VAL : 0x00080000U - // .. .. reg_ddrc_sdram = 0x1 - // .. .. ==> 0XF8006020[21:21] = 0x00000001U - // .. .. ==> MASK : 0x00200000U VAL : 0x00200000U - // .. .. reg_ddrc_mobile = 0x0 - // .. .. ==> 0XF8006020[22:22] = 0x00000000U - // .. .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. .. reg_ddrc_clock_stop_en = 0x0 - // .. .. ==> 0XF8006020[23:23] = 0x00000000U - // .. .. ==> MASK : 0x00800000U VAL : 0x00000000U - // .. .. reg_ddrc_read_latency = 0x7 - // .. .. ==> 0XF8006020[28:24] = 0x00000007U - // .. .. ==> MASK : 0x1F000000U VAL : 0x07000000U - // .. .. reg_phy_mode_ddr1_ddr2 = 0x1 - // .. .. ==> 0XF8006020[29:29] = 0x00000001U - // .. .. ==> MASK : 0x20000000U VAL : 0x20000000U - // .. .. reg_ddrc_dis_pad_pd = 0x0 - // .. .. ==> 0XF8006020[30:30] = 0x00000000U - // .. .. ==> MASK : 0x40000000U VAL : 0x00000000U - // .. .. reg_ddrc_loopback = 0x0 - // .. .. ==> 0XF8006020[31:31] = 0x00000000U - // .. .. ==> MASK : 0x80000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006020, 0xFFFFFFFCU ,0x27287290U), - // .. .. reg_ddrc_en_2t_timing_mode = 0x0 - // .. .. ==> 0XF8006024[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_prefer_write = 0x0 - // .. .. ==> 0XF8006024[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_max_rank_rd = 0xf - // .. .. ==> 0XF8006024[5:2] = 0x0000000FU - // .. .. ==> MASK : 0x0000003CU VAL : 0x0000003CU - // .. .. reg_ddrc_mr_wr = 0x0 - // .. .. ==> 0XF8006024[6:6] = 0x00000000U - // .. .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. .. reg_ddrc_mr_addr = 0x0 - // .. .. ==> 0XF8006024[8:7] = 0x00000000U - // .. .. ==> MASK : 0x00000180U VAL : 0x00000000U - // .. .. reg_ddrc_mr_data = 0x0 - // .. .. ==> 0XF8006024[24:9] = 0x00000000U - // .. .. ==> MASK : 0x01FFFE00U VAL : 0x00000000U - // .. .. ddrc_reg_mr_wr_busy = 0x0 - // .. .. ==> 0XF8006024[25:25] = 0x00000000U - // .. .. ==> MASK : 0x02000000U VAL : 0x00000000U - // .. .. reg_ddrc_mr_type = 0x0 - // .. .. ==> 0XF8006024[26:26] = 0x00000000U - // .. .. ==> MASK : 0x04000000U VAL : 0x00000000U - // .. .. reg_ddrc_mr_rdata_valid = 0x0 - // .. .. ==> 0XF8006024[27:27] = 0x00000000U - // .. .. ==> MASK : 0x08000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006024, 0x0FFFFFFFU ,0x0000003CU), - // .. .. reg_ddrc_final_wait_x32 = 0x7 - // .. .. ==> 0XF8006028[6:0] = 0x00000007U - // .. .. ==> MASK : 0x0000007FU VAL : 0x00000007U - // .. .. reg_ddrc_pre_ocd_x32 = 0x0 - // .. .. ==> 0XF8006028[10:7] = 0x00000000U - // .. .. ==> MASK : 0x00000780U VAL : 0x00000000U - // .. .. reg_ddrc_t_mrd = 0x4 - // .. .. ==> 0XF8006028[13:11] = 0x00000004U - // .. .. ==> MASK : 0x00003800U VAL : 0x00002000U - // .. .. - EMIT_MASKWRITE(0XF8006028, 0x00003FFFU ,0x00002007U), - // .. .. reg_ddrc_emr2 = 0x8 - // .. .. ==> 0XF800602C[15:0] = 0x00000008U - // .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000008U - // .. .. reg_ddrc_emr3 = 0x0 - // .. .. ==> 0XF800602C[31:16] = 0x00000000U - // .. .. ==> MASK : 0xFFFF0000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800602C, 0xFFFFFFFFU ,0x00000008U), - // .. .. reg_ddrc_mr = 0x930 - // .. .. ==> 0XF8006030[15:0] = 0x00000930U - // .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000930U - // .. .. reg_ddrc_emr = 0x4 - // .. .. ==> 0XF8006030[31:16] = 0x00000004U - // .. .. ==> MASK : 0xFFFF0000U VAL : 0x00040000U - // .. .. - EMIT_MASKWRITE(0XF8006030, 0xFFFFFFFFU ,0x00040930U), - // .. .. reg_ddrc_burst_rdwr = 0x4 - // .. .. ==> 0XF8006034[3:0] = 0x00000004U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000004U - // .. .. reg_ddrc_pre_cke_x1024 = 0x105 - // .. .. ==> 0XF8006034[13:4] = 0x00000105U - // .. .. ==> MASK : 0x00003FF0U VAL : 0x00001050U - // .. .. reg_ddrc_post_cke_x1024 = 0x1 - // .. .. ==> 0XF8006034[25:16] = 0x00000001U - // .. .. ==> MASK : 0x03FF0000U VAL : 0x00010000U - // .. .. reg_ddrc_burstchop = 0x0 - // .. .. ==> 0XF8006034[28:28] = 0x00000000U - // .. .. ==> MASK : 0x10000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006034, 0x13FF3FFFU ,0x00011054U), - // .. .. reg_ddrc_force_low_pri_n = 0x0 - // .. .. ==> 0XF8006038[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_dis_dq = 0x0 - // .. .. ==> 0XF8006038[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_debug_mode = 0x0 - // .. .. ==> 0XF8006038[6:6] = 0x00000000U - // .. .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. .. reg_phy_wr_level_start = 0x0 - // .. .. ==> 0XF8006038[7:7] = 0x00000000U - // .. .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. .. reg_phy_rd_level_start = 0x0 - // .. .. ==> 0XF8006038[8:8] = 0x00000000U - // .. .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. .. reg_phy_dq0_wait_t = 0x0 - // .. .. ==> 0XF8006038[12:9] = 0x00000000U - // .. .. ==> MASK : 0x00001E00U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006038, 0x00001FC3U ,0x00000000U), - // .. .. reg_ddrc_addrmap_bank_b0 = 0x7 - // .. .. ==> 0XF800603C[3:0] = 0x00000007U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000007U - // .. .. reg_ddrc_addrmap_bank_b1 = 0x7 - // .. .. ==> 0XF800603C[7:4] = 0x00000007U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000070U - // .. .. reg_ddrc_addrmap_bank_b2 = 0x7 - // .. .. ==> 0XF800603C[11:8] = 0x00000007U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000700U - // .. .. reg_ddrc_addrmap_col_b5 = 0x0 - // .. .. ==> 0XF800603C[15:12] = 0x00000000U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b6 = 0x0 - // .. .. ==> 0XF800603C[19:16] = 0x00000000U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800603C, 0x000FFFFFU ,0x00000777U), - // .. .. reg_ddrc_addrmap_col_b2 = 0x0 - // .. .. ==> 0XF8006040[3:0] = 0x00000000U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b3 = 0x0 - // .. .. ==> 0XF8006040[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b4 = 0x0 - // .. .. ==> 0XF8006040[11:8] = 0x00000000U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b7 = 0x0 - // .. .. ==> 0XF8006040[15:12] = 0x00000000U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b8 = 0x0 - // .. .. ==> 0XF8006040[19:16] = 0x00000000U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b9 = 0xf - // .. .. ==> 0XF8006040[23:20] = 0x0000000FU - // .. .. ==> MASK : 0x00F00000U VAL : 0x00F00000U - // .. .. reg_ddrc_addrmap_col_b10 = 0xf - // .. .. ==> 0XF8006040[27:24] = 0x0000000FU - // .. .. ==> MASK : 0x0F000000U VAL : 0x0F000000U - // .. .. reg_ddrc_addrmap_col_b11 = 0xf - // .. .. ==> 0XF8006040[31:28] = 0x0000000FU - // .. .. ==> MASK : 0xF0000000U VAL : 0xF0000000U - // .. .. - EMIT_MASKWRITE(0XF8006040, 0xFFFFFFFFU ,0xFFF00000U), - // .. .. reg_ddrc_addrmap_row_b0 = 0x6 - // .. .. ==> 0XF8006044[3:0] = 0x00000006U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000006U - // .. .. reg_ddrc_addrmap_row_b1 = 0x6 - // .. .. ==> 0XF8006044[7:4] = 0x00000006U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000060U - // .. .. reg_ddrc_addrmap_row_b2_11 = 0x6 - // .. .. ==> 0XF8006044[11:8] = 0x00000006U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000600U - // .. .. reg_ddrc_addrmap_row_b12 = 0x6 - // .. .. ==> 0XF8006044[15:12] = 0x00000006U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00006000U - // .. .. reg_ddrc_addrmap_row_b13 = 0x6 - // .. .. ==> 0XF8006044[19:16] = 0x00000006U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00060000U - // .. .. reg_ddrc_addrmap_row_b14 = 0x6 - // .. .. ==> 0XF8006044[23:20] = 0x00000006U - // .. .. ==> MASK : 0x00F00000U VAL : 0x00600000U - // .. .. reg_ddrc_addrmap_row_b15 = 0xf - // .. .. ==> 0XF8006044[27:24] = 0x0000000FU - // .. .. ==> MASK : 0x0F000000U VAL : 0x0F000000U - // .. .. - EMIT_MASKWRITE(0XF8006044, 0x0FFFFFFFU ,0x0F666666U), - // .. .. reg_ddrc_rank0_rd_odt = 0x0 - // .. .. ==> 0XF8006048[2:0] = 0x00000000U - // .. .. ==> MASK : 0x00000007U VAL : 0x00000000U - // .. .. reg_ddrc_rank0_wr_odt = 0x1 - // .. .. ==> 0XF8006048[5:3] = 0x00000001U - // .. .. ==> MASK : 0x00000038U VAL : 0x00000008U - // .. .. reg_ddrc_rank1_rd_odt = 0x1 - // .. .. ==> 0XF8006048[8:6] = 0x00000001U - // .. .. ==> MASK : 0x000001C0U VAL : 0x00000040U - // .. .. reg_ddrc_rank1_wr_odt = 0x1 - // .. .. ==> 0XF8006048[11:9] = 0x00000001U - // .. .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. .. reg_phy_rd_local_odt = 0x0 - // .. .. ==> 0XF8006048[13:12] = 0x00000000U - // .. .. ==> MASK : 0x00003000U VAL : 0x00000000U - // .. .. reg_phy_wr_local_odt = 0x3 - // .. .. ==> 0XF8006048[15:14] = 0x00000003U - // .. .. ==> MASK : 0x0000C000U VAL : 0x0000C000U - // .. .. reg_phy_idle_local_odt = 0x3 - // .. .. ==> 0XF8006048[17:16] = 0x00000003U - // .. .. ==> MASK : 0x00030000U VAL : 0x00030000U - // .. .. reg_ddrc_rank2_rd_odt = 0x0 - // .. .. ==> 0XF8006048[20:18] = 0x00000000U - // .. .. ==> MASK : 0x001C0000U VAL : 0x00000000U - // .. .. reg_ddrc_rank2_wr_odt = 0x0 - // .. .. ==> 0XF8006048[23:21] = 0x00000000U - // .. .. ==> MASK : 0x00E00000U VAL : 0x00000000U - // .. .. reg_ddrc_rank3_rd_odt = 0x0 - // .. .. ==> 0XF8006048[26:24] = 0x00000000U - // .. .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. .. reg_ddrc_rank3_wr_odt = 0x0 - // .. .. ==> 0XF8006048[29:27] = 0x00000000U - // .. .. ==> MASK : 0x38000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006048, 0x3FFFFFFFU ,0x0003C248U), - // .. .. reg_phy_rd_cmd_to_data = 0x0 - // .. .. ==> 0XF8006050[3:0] = 0x00000000U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000000U - // .. .. reg_phy_wr_cmd_to_data = 0x0 - // .. .. ==> 0XF8006050[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. reg_phy_rdc_we_to_re_delay = 0x8 - // .. .. ==> 0XF8006050[11:8] = 0x00000008U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000800U - // .. .. reg_phy_rdc_fifo_rst_disable = 0x0 - // .. .. ==> 0XF8006050[15:15] = 0x00000000U - // .. .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. .. reg_phy_use_fixed_re = 0x1 - // .. .. ==> 0XF8006050[16:16] = 0x00000001U - // .. .. ==> MASK : 0x00010000U VAL : 0x00010000U - // .. .. reg_phy_rdc_fifo_rst_err_cnt_clr = 0x0 - // .. .. ==> 0XF8006050[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_phy_dis_phy_ctrl_rstn = 0x0 - // .. .. ==> 0XF8006050[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_phy_clk_stall_level = 0x0 - // .. .. ==> 0XF8006050[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_num_of_dq0 = 0x7 - // .. .. ==> 0XF8006050[27:24] = 0x00000007U - // .. .. ==> MASK : 0x0F000000U VAL : 0x07000000U - // .. .. reg_phy_wrlvl_num_of_dq0 = 0x7 - // .. .. ==> 0XF8006050[31:28] = 0x00000007U - // .. .. ==> MASK : 0xF0000000U VAL : 0x70000000U - // .. .. - EMIT_MASKWRITE(0XF8006050, 0xFF0F8FFFU ,0x77010800U), - // .. .. reg_ddrc_dll_calib_to_min_x1024 = 0x1 - // .. .. ==> 0XF8006058[7:0] = 0x00000001U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000001U - // .. .. reg_ddrc_dll_calib_to_max_x1024 = 0x1 - // .. .. ==> 0XF8006058[15:8] = 0x00000001U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00000100U - // .. .. reg_ddrc_dis_dll_calib = 0x0 - // .. .. ==> 0XF8006058[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006058, 0x0001FFFFU ,0x00000101U), - // .. .. reg_ddrc_rd_odt_delay = 0x3 - // .. .. ==> 0XF800605C[3:0] = 0x00000003U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000003U - // .. .. reg_ddrc_wr_odt_delay = 0x0 - // .. .. ==> 0XF800605C[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. reg_ddrc_rd_odt_hold = 0x0 - // .. .. ==> 0XF800605C[11:8] = 0x00000000U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000000U - // .. .. reg_ddrc_wr_odt_hold = 0x5 - // .. .. ==> 0XF800605C[15:12] = 0x00000005U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00005000U - // .. .. - EMIT_MASKWRITE(0XF800605C, 0x0000FFFFU ,0x00005003U), - // .. .. reg_ddrc_pageclose = 0x0 - // .. .. ==> 0XF8006060[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_lpr_num_entries = 0x1f - // .. .. ==> 0XF8006060[6:1] = 0x0000001FU - // .. .. ==> MASK : 0x0000007EU VAL : 0x0000003EU - // .. .. reg_ddrc_auto_pre_en = 0x0 - // .. .. ==> 0XF8006060[7:7] = 0x00000000U - // .. .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. .. reg_ddrc_refresh_update_level = 0x0 - // .. .. ==> 0XF8006060[8:8] = 0x00000000U - // .. .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. .. reg_ddrc_dis_wc = 0x0 - // .. .. ==> 0XF8006060[9:9] = 0x00000000U - // .. .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. .. reg_ddrc_dis_collision_page_opt = 0x0 - // .. .. ==> 0XF8006060[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_ddrc_selfref_en = 0x0 - // .. .. ==> 0XF8006060[12:12] = 0x00000000U - // .. .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006060, 0x000017FFU ,0x0000003EU), - // .. .. reg_ddrc_go2critical_hysteresis = 0x0 - // .. .. ==> 0XF8006064[12:5] = 0x00000000U - // .. .. ==> MASK : 0x00001FE0U VAL : 0x00000000U - // .. .. reg_arb_go2critical_en = 0x1 - // .. .. ==> 0XF8006064[17:17] = 0x00000001U - // .. .. ==> MASK : 0x00020000U VAL : 0x00020000U - // .. .. - EMIT_MASKWRITE(0XF8006064, 0x00021FE0U ,0x00020000U), - // .. .. reg_ddrc_wrlvl_ww = 0x41 - // .. .. ==> 0XF8006068[7:0] = 0x00000041U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000041U - // .. .. reg_ddrc_rdlvl_rr = 0x41 - // .. .. ==> 0XF8006068[15:8] = 0x00000041U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00004100U - // .. .. reg_ddrc_dfi_t_wlmrd = 0x28 - // .. .. ==> 0XF8006068[25:16] = 0x00000028U - // .. .. ==> MASK : 0x03FF0000U VAL : 0x00280000U - // .. .. - EMIT_MASKWRITE(0XF8006068, 0x03FFFFFFU ,0x00284141U), - // .. .. dfi_t_ctrlupd_interval_min_x1024 = 0x10 - // .. .. ==> 0XF800606C[7:0] = 0x00000010U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000010U - // .. .. dfi_t_ctrlupd_interval_max_x1024 = 0x16 - // .. .. ==> 0XF800606C[15:8] = 0x00000016U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00001600U - // .. .. - EMIT_MASKWRITE(0XF800606C, 0x0000FFFFU ,0x00001610U), - // .. .. refresh_timer0_start_value_x32 = 0x0 - // .. .. ==> 0XF80060A0[11:0] = 0x00000000U - // .. .. ==> MASK : 0x00000FFFU VAL : 0x00000000U - // .. .. refresh_timer1_start_value_x32 = 0x8 - // .. .. ==> 0XF80060A0[23:12] = 0x00000008U - // .. .. ==> MASK : 0x00FFF000U VAL : 0x00008000U - // .. .. - EMIT_MASKWRITE(0XF80060A0, 0x00FFFFFFU ,0x00008000U), - // .. .. reg_ddrc_dis_auto_zq = 0x0 - // .. .. ==> 0XF80060A4[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_ddr3 = 0x1 - // .. .. ==> 0XF80060A4[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. reg_ddrc_t_mod = 0x200 - // .. .. ==> 0XF80060A4[11:2] = 0x00000200U - // .. .. ==> MASK : 0x00000FFCU VAL : 0x00000800U - // .. .. reg_ddrc_t_zq_long_nop = 0x200 - // .. .. ==> 0XF80060A4[21:12] = 0x00000200U - // .. .. ==> MASK : 0x003FF000U VAL : 0x00200000U - // .. .. reg_ddrc_t_zq_short_nop = 0x40 - // .. .. ==> 0XF80060A4[31:22] = 0x00000040U - // .. .. ==> MASK : 0xFFC00000U VAL : 0x10000000U - // .. .. - EMIT_MASKWRITE(0XF80060A4, 0xFFFFFFFFU ,0x10200802U), - // .. .. t_zq_short_interval_x1024 = 0xcb73 - // .. .. ==> 0XF80060A8[19:0] = 0x0000CB73U - // .. .. ==> MASK : 0x000FFFFFU VAL : 0x0000CB73U - // .. .. dram_rstn_x1024 = 0x69 - // .. .. ==> 0XF80060A8[27:20] = 0x00000069U - // .. .. ==> MASK : 0x0FF00000U VAL : 0x06900000U - // .. .. - EMIT_MASKWRITE(0XF80060A8, 0x0FFFFFFFU ,0x0690CB73U), - // .. .. deeppowerdown_en = 0x0 - // .. .. ==> 0XF80060AC[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. deeppowerdown_to_x1024 = 0xff - // .. .. ==> 0XF80060AC[8:1] = 0x000000FFU - // .. .. ==> MASK : 0x000001FEU VAL : 0x000001FEU - // .. .. - EMIT_MASKWRITE(0XF80060AC, 0x000001FFU ,0x000001FEU), - // .. .. dfi_wrlvl_max_x1024 = 0xfff - // .. .. ==> 0XF80060B0[11:0] = 0x00000FFFU - // .. .. ==> MASK : 0x00000FFFU VAL : 0x00000FFFU - // .. .. dfi_rdlvl_max_x1024 = 0xfff - // .. .. ==> 0XF80060B0[23:12] = 0x00000FFFU - // .. .. ==> MASK : 0x00FFF000U VAL : 0x00FFF000U - // .. .. ddrc_reg_twrlvl_max_error = 0x0 - // .. .. ==> 0XF80060B0[24:24] = 0x00000000U - // .. .. ==> MASK : 0x01000000U VAL : 0x00000000U - // .. .. ddrc_reg_trdlvl_max_error = 0x0 - // .. .. ==> 0XF80060B0[25:25] = 0x00000000U - // .. .. ==> MASK : 0x02000000U VAL : 0x00000000U - // .. .. reg_ddrc_dfi_wr_level_en = 0x1 - // .. .. ==> 0XF80060B0[26:26] = 0x00000001U - // .. .. ==> MASK : 0x04000000U VAL : 0x04000000U - // .. .. reg_ddrc_dfi_rd_dqs_gate_level = 0x1 - // .. .. ==> 0XF80060B0[27:27] = 0x00000001U - // .. .. ==> MASK : 0x08000000U VAL : 0x08000000U - // .. .. reg_ddrc_dfi_rd_data_eye_train = 0x1 - // .. .. ==> 0XF80060B0[28:28] = 0x00000001U - // .. .. ==> MASK : 0x10000000U VAL : 0x10000000U - // .. .. - EMIT_MASKWRITE(0XF80060B0, 0x1FFFFFFFU ,0x1CFFFFFFU), - // .. .. reg_ddrc_2t_delay = 0x0 - // .. .. ==> 0XF80060B4[8:0] = 0x00000000U - // .. .. ==> MASK : 0x000001FFU VAL : 0x00000000U - // .. .. reg_ddrc_skip_ocd = 0x1 - // .. .. ==> 0XF80060B4[9:9] = 0x00000001U - // .. .. ==> MASK : 0x00000200U VAL : 0x00000200U - // .. .. reg_ddrc_dis_pre_bypass = 0x0 - // .. .. ==> 0XF80060B4[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060B4, 0x000007FFU ,0x00000200U), - // .. .. reg_ddrc_dfi_t_rddata_en = 0x6 - // .. .. ==> 0XF80060B8[4:0] = 0x00000006U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000006U - // .. .. reg_ddrc_dfi_t_ctrlup_min = 0x3 - // .. .. ==> 0XF80060B8[14:5] = 0x00000003U - // .. .. ==> MASK : 0x00007FE0U VAL : 0x00000060U - // .. .. reg_ddrc_dfi_t_ctrlup_max = 0x40 - // .. .. ==> 0XF80060B8[24:15] = 0x00000040U - // .. .. ==> MASK : 0x01FF8000U VAL : 0x00200000U - // .. .. - EMIT_MASKWRITE(0XF80060B8, 0x01FFFFFFU ,0x00200066U), - // .. .. START: RESET ECC ERROR - // .. .. Clear_Uncorrectable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. Clear_Correctable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. - EMIT_MASKWRITE(0XF80060C4, 0x00000003U ,0x00000003U), - // .. .. FINISH: RESET ECC ERROR - // .. .. Clear_Uncorrectable_DRAM_ECC_error = 0x0 - // .. .. ==> 0XF80060C4[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. Clear_Correctable_DRAM_ECC_error = 0x0 - // .. .. ==> 0XF80060C4[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060C4, 0x00000003U ,0x00000000U), - // .. .. CORR_ECC_LOG_VALID = 0x0 - // .. .. ==> 0XF80060C8[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. ECC_CORRECTED_BIT_NUM = 0x0 - // .. .. ==> 0XF80060C8[7:1] = 0x00000000U - // .. .. ==> MASK : 0x000000FEU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060C8, 0x000000FFU ,0x00000000U), - // .. .. UNCORR_ECC_LOG_VALID = 0x0 - // .. .. ==> 0XF80060DC[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060DC, 0x00000001U ,0x00000000U), - // .. .. STAT_NUM_CORR_ERR = 0x0 - // .. .. ==> 0XF80060F0[15:8] = 0x00000000U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00000000U - // .. .. STAT_NUM_UNCORR_ERR = 0x0 - // .. .. ==> 0XF80060F0[7:0] = 0x00000000U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060F0, 0x0000FFFFU ,0x00000000U), - // .. .. reg_ddrc_ecc_mode = 0x0 - // .. .. ==> 0XF80060F4[2:0] = 0x00000000U - // .. .. ==> MASK : 0x00000007U VAL : 0x00000000U - // .. .. reg_ddrc_dis_scrub = 0x1 - // .. .. ==> 0XF80060F4[3:3] = 0x00000001U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000008U - // .. .. - EMIT_MASKWRITE(0XF80060F4, 0x0000000FU ,0x00000008U), - // .. .. reg_phy_dif_on = 0x0 - // .. .. ==> 0XF8006114[3:0] = 0x00000000U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000000U - // .. .. reg_phy_dif_off = 0x0 - // .. .. ==> 0XF8006114[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006114, 0x000000FFU ,0x00000000U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006118[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006118[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006118[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006118[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_tx = 0x0 - // .. .. ==> 0XF8006118[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_rx = 0x0 - // .. .. ==> 0XF8006118[5:5] = 0x00000000U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006118[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006118[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006118[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006118, 0x7FFFFFFFU ,0x40000001U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF800611C[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF800611C[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF800611C[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF800611C[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_tx = 0x0 - // .. .. ==> 0XF800611C[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_rx = 0x0 - // .. .. ==> 0XF800611C[5:5] = 0x00000000U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF800611C[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF800611C[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF800611C[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF800611C, 0x7FFFFFFFU ,0x40000001U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006120[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_tx = 0x0 - // .. .. ==> 0XF8006120[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_rx = 0x0 - // .. .. ==> 0XF8006120[5:5] = 0x00000000U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006120[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006120[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006120[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006120, 0x7FFFFFFFU ,0x40000001U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006124[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006124[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006124[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006124[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_tx = 0x0 - // .. .. ==> 0XF8006124[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_rx = 0x0 - // .. .. ==> 0XF8006124[5:5] = 0x00000000U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006124[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006124[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006124[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006124, 0x7FFFFFFFU ,0x40000001U), - // .. .. reg_phy_wrlvl_init_ratio = 0x1d - // .. .. ==> 0XF800612C[9:0] = 0x0000001DU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000001DU - // .. .. reg_phy_gatelvl_init_ratio = 0xf2 - // .. .. ==> 0XF800612C[19:10] = 0x000000F2U - // .. .. ==> MASK : 0x000FFC00U VAL : 0x0003C800U - // .. .. - EMIT_MASKWRITE(0XF800612C, 0x000FFFFFU ,0x0003C81DU), - // .. .. reg_phy_wrlvl_init_ratio = 0x12 - // .. .. ==> 0XF8006130[9:0] = 0x00000012U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000012U - // .. .. reg_phy_gatelvl_init_ratio = 0xd8 - // .. .. ==> 0XF8006130[19:10] = 0x000000D8U - // .. .. ==> MASK : 0x000FFC00U VAL : 0x00036000U - // .. .. - EMIT_MASKWRITE(0XF8006130, 0x000FFFFFU ,0x00036012U), - // .. .. reg_phy_wrlvl_init_ratio = 0xc - // .. .. ==> 0XF8006134[9:0] = 0x0000000CU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000000CU - // .. .. reg_phy_gatelvl_init_ratio = 0xde - // .. .. ==> 0XF8006134[19:10] = 0x000000DEU - // .. .. ==> MASK : 0x000FFC00U VAL : 0x00037800U - // .. .. - EMIT_MASKWRITE(0XF8006134, 0x000FFFFFU ,0x0003780CU), - // .. .. reg_phy_wrlvl_init_ratio = 0x21 - // .. .. ==> 0XF8006138[9:0] = 0x00000021U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000021U - // .. .. reg_phy_gatelvl_init_ratio = 0xee - // .. .. ==> 0XF8006138[19:10] = 0x000000EEU - // .. .. ==> MASK : 0x000FFC00U VAL : 0x0003B800U - // .. .. - EMIT_MASKWRITE(0XF8006138, 0x000FFFFFU ,0x0003B821U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF8006140[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006140[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006140[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006140, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF8006144[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006144[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006144[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006144, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF8006148[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006148[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006148[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006148, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF800614C[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF800614C[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF800614C[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800614C, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_wr_dqs_slave_ratio = 0x9d - // .. .. ==> 0XF8006154[9:0] = 0x0000009DU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000009DU - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006154[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006154[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006154, 0x000FFFFFU ,0x0000009DU), - // .. .. reg_phy_wr_dqs_slave_ratio = 0x92 - // .. .. ==> 0XF8006158[9:0] = 0x00000092U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000092U - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006158[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006158[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006158, 0x000FFFFFU ,0x00000092U), - // .. .. reg_phy_wr_dqs_slave_ratio = 0x8c - // .. .. ==> 0XF800615C[9:0] = 0x0000008CU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000008CU - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF800615C[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF800615C[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800615C, 0x000FFFFFU ,0x0000008CU), - // .. .. reg_phy_wr_dqs_slave_ratio = 0xa1 - // .. .. ==> 0XF8006160[9:0] = 0x000000A1U - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000A1U - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006160[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006160[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006160, 0x000FFFFFU ,0x000000A1U), - // .. .. reg_phy_fifo_we_slave_ratio = 0x147 - // .. .. ==> 0XF8006168[10:0] = 0x00000147U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000147U - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF8006168[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF8006168[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006168, 0x001FFFFFU ,0x00000147U), - // .. .. reg_phy_fifo_we_slave_ratio = 0x12d - // .. .. ==> 0XF800616C[10:0] = 0x0000012DU - // .. .. ==> MASK : 0x000007FFU VAL : 0x0000012DU - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF800616C[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF800616C[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800616C, 0x001FFFFFU ,0x0000012DU), - // .. .. reg_phy_fifo_we_slave_ratio = 0x133 - // .. .. ==> 0XF8006170[10:0] = 0x00000133U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000133U - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF8006170[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF8006170[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006170, 0x001FFFFFU ,0x00000133U), - // .. .. reg_phy_fifo_we_slave_ratio = 0x143 - // .. .. ==> 0XF8006174[10:0] = 0x00000143U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000143U - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF8006174[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF8006174[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006174, 0x001FFFFFU ,0x00000143U), - // .. .. reg_phy_wr_data_slave_ratio = 0xdd - // .. .. ==> 0XF800617C[9:0] = 0x000000DDU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000DDU - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF800617C[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF800617C[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800617C, 0x000FFFFFU ,0x000000DDU), - // .. .. reg_phy_wr_data_slave_ratio = 0xd2 - // .. .. ==> 0XF8006180[9:0] = 0x000000D2U - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000D2U - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF8006180[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF8006180[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006180, 0x000FFFFFU ,0x000000D2U), - // .. .. reg_phy_wr_data_slave_ratio = 0xcc - // .. .. ==> 0XF8006184[9:0] = 0x000000CCU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000CCU - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF8006184[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF8006184[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006184, 0x000FFFFFU ,0x000000CCU), - // .. .. reg_phy_wr_data_slave_ratio = 0xe1 - // .. .. ==> 0XF8006188[9:0] = 0x000000E1U - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000E1U - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF8006188[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF8006188[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006188, 0x000FFFFFU ,0x000000E1U), - // .. .. reg_phy_loopback = 0x0 - // .. .. ==> 0XF8006190[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_phy_bl2 = 0x0 - // .. .. ==> 0XF8006190[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_at_spd_atpg = 0x0 - // .. .. ==> 0XF8006190[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_bist_enable = 0x0 - // .. .. ==> 0XF8006190[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_bist_force_err = 0x0 - // .. .. ==> 0XF8006190[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_bist_mode = 0x0 - // .. .. ==> 0XF8006190[6:5] = 0x00000000U - // .. .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. .. reg_phy_invert_clkout = 0x1 - // .. .. ==> 0XF8006190[7:7] = 0x00000001U - // .. .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. .. reg_phy_all_dq_mpr_rd_resp = 0x0 - // .. .. ==> 0XF8006190[8:8] = 0x00000000U - // .. .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. .. reg_phy_sel_logic = 0x0 - // .. .. ==> 0XF8006190[9:9] = 0x00000000U - // .. .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. .. reg_phy_ctrl_slave_ratio = 0x100 - // .. .. ==> 0XF8006190[19:10] = 0x00000100U - // .. .. ==> MASK : 0x000FFC00U VAL : 0x00040000U - // .. .. reg_phy_ctrl_slave_force = 0x0 - // .. .. ==> 0XF8006190[20:20] = 0x00000000U - // .. .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. .. reg_phy_ctrl_slave_delay = 0x0 - // .. .. ==> 0XF8006190[27:21] = 0x00000000U - // .. .. ==> MASK : 0x0FE00000U VAL : 0x00000000U - // .. .. reg_phy_use_rank0_delays = 0x1 - // .. .. ==> 0XF8006190[28:28] = 0x00000001U - // .. .. ==> MASK : 0x10000000U VAL : 0x10000000U - // .. .. reg_phy_lpddr = 0x0 - // .. .. ==> 0XF8006190[29:29] = 0x00000000U - // .. .. ==> MASK : 0x20000000U VAL : 0x00000000U - // .. .. reg_phy_cmd_latency = 0x0 - // .. .. ==> 0XF8006190[30:30] = 0x00000000U - // .. .. ==> MASK : 0x40000000U VAL : 0x00000000U - // .. .. reg_phy_int_lpbk = 0x0 - // .. .. ==> 0XF8006190[31:31] = 0x00000000U - // .. .. ==> MASK : 0x80000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006190, 0xFFFFFFFFU ,0x10040080U), - // .. .. reg_phy_wr_rl_delay = 0x2 - // .. .. ==> 0XF8006194[4:0] = 0x00000002U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000002U - // .. .. reg_phy_rd_rl_delay = 0x4 - // .. .. ==> 0XF8006194[9:5] = 0x00000004U - // .. .. ==> MASK : 0x000003E0U VAL : 0x00000080U - // .. .. reg_phy_dll_lock_diff = 0xf - // .. .. ==> 0XF8006194[13:10] = 0x0000000FU - // .. .. ==> MASK : 0x00003C00U VAL : 0x00003C00U - // .. .. reg_phy_use_wr_level = 0x1 - // .. .. ==> 0XF8006194[14:14] = 0x00000001U - // .. .. ==> MASK : 0x00004000U VAL : 0x00004000U - // .. .. reg_phy_use_rd_dqs_gate_level = 0x1 - // .. .. ==> 0XF8006194[15:15] = 0x00000001U - // .. .. ==> MASK : 0x00008000U VAL : 0x00008000U - // .. .. reg_phy_use_rd_data_eye_level = 0x1 - // .. .. ==> 0XF8006194[16:16] = 0x00000001U - // .. .. ==> MASK : 0x00010000U VAL : 0x00010000U - // .. .. reg_phy_dis_calib_rst = 0x0 - // .. .. ==> 0XF8006194[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_phy_ctrl_slave_delay = 0x0 - // .. .. ==> 0XF8006194[19:18] = 0x00000000U - // .. .. ==> MASK : 0x000C0000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006194, 0x000FFFFFU ,0x0001FC82U), - // .. .. reg_arb_page_addr_mask = 0x0 - // .. .. ==> 0XF8006204[31:0] = 0x00000000U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006204, 0xFFFFFFFFU ,0x00000000U), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF8006208[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF8006208[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF8006208[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF8006208[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_dis_rmw_portn = 0x1 - // .. .. ==> 0XF8006208[19:19] = 0x00000001U - // .. .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. .. - EMIT_MASKWRITE(0XF8006208, 0x000F03FFU ,0x000803FFU), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF800620C[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF800620C[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF800620C[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF800620C[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_dis_rmw_portn = 0x1 - // .. .. ==> 0XF800620C[19:19] = 0x00000001U - // .. .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. .. - EMIT_MASKWRITE(0XF800620C, 0x000F03FFU ,0x000803FFU), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF8006210[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF8006210[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF8006210[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF8006210[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_dis_rmw_portn = 0x1 - // .. .. ==> 0XF8006210[19:19] = 0x00000001U - // .. .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. .. - EMIT_MASKWRITE(0XF8006210, 0x000F03FFU ,0x000803FFU), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF8006214[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF8006214[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF8006214[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF8006214[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_dis_rmw_portn = 0x1 - // .. .. ==> 0XF8006214[19:19] = 0x00000001U - // .. .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. .. - EMIT_MASKWRITE(0XF8006214, 0x000F03FFU ,0x000803FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF8006218[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF8006218[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF8006218[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF8006218[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF8006218[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006218, 0x000F03FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF800621C[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF800621C[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF800621C[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF800621C[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF800621C[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800621C, 0x000F03FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF8006220[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF8006220[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF8006220[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF8006220[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF8006220[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006220, 0x000F03FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF8006224[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF8006224[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF8006224[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF8006224[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF8006224[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006224, 0x000F03FFU ,0x000003FFU), - // .. .. reg_ddrc_lpddr2 = 0x0 - // .. .. ==> 0XF80062A8[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_per_bank_refresh = 0x0 - // .. .. ==> 0XF80062A8[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_derate_enable = 0x0 - // .. .. ==> 0XF80062A8[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_ddrc_mr4_margin = 0x0 - // .. .. ==> 0XF80062A8[11:4] = 0x00000000U - // .. .. ==> MASK : 0x00000FF0U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80062A8, 0x00000FF7U ,0x00000000U), - // .. .. reg_ddrc_mr4_read_interval = 0x0 - // .. .. ==> 0XF80062AC[31:0] = 0x00000000U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80062AC, 0xFFFFFFFFU ,0x00000000U), - // .. .. reg_ddrc_min_stable_clock_x1 = 0x5 - // .. .. ==> 0XF80062B0[3:0] = 0x00000005U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000005U - // .. .. reg_ddrc_idle_after_reset_x32 = 0x12 - // .. .. ==> 0XF80062B0[11:4] = 0x00000012U - // .. .. ==> MASK : 0x00000FF0U VAL : 0x00000120U - // .. .. reg_ddrc_t_mrw = 0x5 - // .. .. ==> 0XF80062B0[21:12] = 0x00000005U - // .. .. ==> MASK : 0x003FF000U VAL : 0x00005000U - // .. .. - EMIT_MASKWRITE(0XF80062B0, 0x003FFFFFU ,0x00005125U), - // .. .. reg_ddrc_max_auto_init_x1024 = 0xa8 - // .. .. ==> 0XF80062B4[7:0] = 0x000000A8U - // .. .. ==> MASK : 0x000000FFU VAL : 0x000000A8U - // .. .. reg_ddrc_dev_zqinit_x32 = 0x12 - // .. .. ==> 0XF80062B4[17:8] = 0x00000012U - // .. .. ==> MASK : 0x0003FF00U VAL : 0x00001200U - // .. .. - EMIT_MASKWRITE(0XF80062B4, 0x0003FFFFU ,0x000012A8U), - // .. .. START: POLL ON DCI STATUS - // .. .. DONE = 1 - // .. .. ==> 0XF8000B74[13:13] = 0x00000001U - // .. .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. .. - EMIT_MASKPOLL(0XF8000B74, 0x00002000U), - // .. .. FINISH: POLL ON DCI STATUS - // .. .. START: UNLOCK DDR - // .. .. reg_ddrc_soft_rstb = 0x1 - // .. .. ==> 0XF8006000[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_ddrc_powerdown_en = 0x0 - // .. .. ==> 0XF8006000[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_data_bus_width = 0x0 - // .. .. ==> 0XF8006000[3:2] = 0x00000000U - // .. .. ==> MASK : 0x0000000CU VAL : 0x00000000U - // .. .. reg_ddrc_burst8_refresh = 0x0 - // .. .. ==> 0XF8006000[6:4] = 0x00000000U - // .. .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. .. reg_ddrc_rdwr_idle_gap = 1 - // .. .. ==> 0XF8006000[13:7] = 0x00000001U - // .. .. ==> MASK : 0x00003F80U VAL : 0x00000080U - // .. .. reg_ddrc_dis_rd_bypass = 0x0 - // .. .. ==> 0XF8006000[14:14] = 0x00000000U - // .. .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_act_bypass = 0x0 - // .. .. ==> 0XF8006000[15:15] = 0x00000000U - // .. .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_auto_refresh = 0x0 - // .. .. ==> 0XF8006000[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006000, 0x0001FFFFU ,0x00000081U), - // .. .. FINISH: UNLOCK DDR - // .. .. START: CHECK DDR STATUS - // .. .. ddrc_reg_operating_mode = 1 - // .. .. ==> 0XF8006054[2:0] = 0x00000001U - // .. .. ==> MASK : 0x00000007U VAL : 0x00000001U - // .. .. - EMIT_MASKPOLL(0XF8006054, 0x00000007U), - // .. .. FINISH: CHECK DDR STATUS - // .. FINISH: DDR INITIALIZATION - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_mio_init_data_1_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: OCM REMAPPING - // .. VREF_EN = 0x1 - // .. ==> 0XF8000B00[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. VREF_PULLUP_EN = 0x0 - // .. ==> 0XF8000B00[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. CLK_PULLUP_EN = 0x0 - // .. ==> 0XF8000B00[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. SRSTN_PULLUP_EN = 0x0 - // .. ==> 0XF8000B00[9:9] = 0x00000000U - // .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B00, 0x00000303U ,0x00000001U), - // .. FINISH: OCM REMAPPING - // .. START: DDRIOB SETTINGS - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B40[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x0 - // .. ==> 0XF8000B40[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B40[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x0 - // .. ==> 0XF8000B40[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. DCR_TYPE = 0x0 - // .. ==> 0XF8000B40[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. IBUF_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B40[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B40[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B40[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B40[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B40, 0x00000FFFU ,0x00000600U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B44[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x0 - // .. ==> 0XF8000B44[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B44[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x0 - // .. ==> 0XF8000B44[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. DCR_TYPE = 0x0 - // .. ==> 0XF8000B44[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. IBUF_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B44[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B44[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B44[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B44[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B44, 0x00000FFFU ,0x00000600U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B48[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x1 - // .. ==> 0XF8000B48[2:1] = 0x00000001U - // .. ==> MASK : 0x00000006U VAL : 0x00000002U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B48[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B48[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCR_TYPE = 0x3 - // .. ==> 0XF8000B48[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B48[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B48[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B48[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B48[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B48, 0x00000FFFU ,0x00000672U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B4C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x1 - // .. ==> 0XF8000B4C[2:1] = 0x00000001U - // .. ==> MASK : 0x00000006U VAL : 0x00000002U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B4C[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B4C[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCR_TYPE = 0x3 - // .. ==> 0XF8000B4C[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B4C[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B4C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B4C[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B4C[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B4C, 0x00000FFFU ,0x00000672U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B50[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x2 - // .. ==> 0XF8000B50[2:1] = 0x00000002U - // .. ==> MASK : 0x00000006U VAL : 0x00000004U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B50[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B50[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCR_TYPE = 0x3 - // .. ==> 0XF8000B50[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B50[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B50[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B50[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B50[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B50, 0x00000FFFU ,0x00000674U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B54[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x2 - // .. ==> 0XF8000B54[2:1] = 0x00000002U - // .. ==> MASK : 0x00000006U VAL : 0x00000004U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B54[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B54[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCR_TYPE = 0x3 - // .. ==> 0XF8000B54[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B54[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B54[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B54[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B54[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B54, 0x00000FFFU ,0x00000674U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B58[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x0 - // .. ==> 0XF8000B58[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B58[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x0 - // .. ==> 0XF8000B58[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. DCR_TYPE = 0x0 - // .. ==> 0XF8000B58[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. IBUF_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B58[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B58[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B58[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B58[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B58, 0x00000FFFU ,0x00000600U), - // .. DRIVE_P = 0x1c - // .. ==> 0XF8000B5C[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. DRIVE_N = 0xc - // .. ==> 0XF8000B5C[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. SLEW_P = 0x3 - // .. ==> 0XF8000B5C[18:14] = 0x00000003U - // .. ==> MASK : 0x0007C000U VAL : 0x0000C000U - // .. SLEW_N = 0x3 - // .. ==> 0XF8000B5C[23:19] = 0x00000003U - // .. ==> MASK : 0x00F80000U VAL : 0x00180000U - // .. GTL = 0x0 - // .. ==> 0XF8000B5C[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. RTERM = 0x0 - // .. ==> 0XF8000B5C[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B5C, 0xFFFFFFFFU ,0x0018C61CU), - // .. DRIVE_P = 0x1c - // .. ==> 0XF8000B60[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. DRIVE_N = 0xc - // .. ==> 0XF8000B60[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. SLEW_P = 0x6 - // .. ==> 0XF8000B60[18:14] = 0x00000006U - // .. ==> MASK : 0x0007C000U VAL : 0x00018000U - // .. SLEW_N = 0x1f - // .. ==> 0XF8000B60[23:19] = 0x0000001FU - // .. ==> MASK : 0x00F80000U VAL : 0x00F80000U - // .. GTL = 0x0 - // .. ==> 0XF8000B60[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. RTERM = 0x0 - // .. ==> 0XF8000B60[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B60, 0xFFFFFFFFU ,0x00F9861CU), - // .. DRIVE_P = 0x1c - // .. ==> 0XF8000B64[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. DRIVE_N = 0xc - // .. ==> 0XF8000B64[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. SLEW_P = 0x6 - // .. ==> 0XF8000B64[18:14] = 0x00000006U - // .. ==> MASK : 0x0007C000U VAL : 0x00018000U - // .. SLEW_N = 0x1f - // .. ==> 0XF8000B64[23:19] = 0x0000001FU - // .. ==> MASK : 0x00F80000U VAL : 0x00F80000U - // .. GTL = 0x0 - // .. ==> 0XF8000B64[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. RTERM = 0x0 - // .. ==> 0XF8000B64[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B64, 0xFFFFFFFFU ,0x00F9861CU), - // .. DRIVE_P = 0x1c - // .. ==> 0XF8000B68[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. DRIVE_N = 0xc - // .. ==> 0XF8000B68[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. SLEW_P = 0x6 - // .. ==> 0XF8000B68[18:14] = 0x00000006U - // .. ==> MASK : 0x0007C000U VAL : 0x00018000U - // .. SLEW_N = 0x1f - // .. ==> 0XF8000B68[23:19] = 0x0000001FU - // .. ==> MASK : 0x00F80000U VAL : 0x00F80000U - // .. GTL = 0x0 - // .. ==> 0XF8000B68[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. RTERM = 0x0 - // .. ==> 0XF8000B68[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B68, 0xFFFFFFFFU ,0x00F9861CU), - // .. VREF_INT_EN = 0x1 - // .. ==> 0XF8000B6C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. VREF_SEL = 0x4 - // .. ==> 0XF8000B6C[4:1] = 0x00000004U - // .. ==> MASK : 0x0000001EU VAL : 0x00000008U - // .. VREF_EXT_EN = 0x0 - // .. ==> 0XF8000B6C[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. VREF_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[8:7] = 0x00000000U - // .. ==> MASK : 0x00000180U VAL : 0x00000000U - // .. REFIO_EN = 0x1 - // .. ==> 0XF8000B6C[9:9] = 0x00000001U - // .. ==> MASK : 0x00000200U VAL : 0x00000200U - // .. REFIO_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DRST_B_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. CKE_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[14:14] = 0x00000000U - // .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B6C, 0x000073FFU ,0x00000209U), - // .. .. START: ASSERT RESET - // .. .. RESET = 1 - // .. .. ==> 0XF8000B70[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. VRN_OUT = 0x1 - // .. .. ==> 0XF8000B70[5:5] = 0x00000001U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000020U - // .. .. - EMIT_MASKWRITE(0XF8000B70, 0x00000021U ,0x00000021U), - // .. .. FINISH: ASSERT RESET - // .. .. START: DEASSERT RESET - // .. .. RESET = 0 - // .. .. ==> 0XF8000B70[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. VRN_OUT = 0x1 - // .. .. ==> 0XF8000B70[5:5] = 0x00000001U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000020U - // .. .. - EMIT_MASKWRITE(0XF8000B70, 0x00000021U ,0x00000020U), - // .. .. FINISH: DEASSERT RESET - // .. .. RESET = 0x1 - // .. .. ==> 0XF8000B70[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. ENABLE = 0x1 - // .. .. ==> 0XF8000B70[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. VRP_TRI = 0x0 - // .. .. ==> 0XF8000B70[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. VRN_TRI = 0x0 - // .. .. ==> 0XF8000B70[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. VRP_OUT = 0x0 - // .. .. ==> 0XF8000B70[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. VRN_OUT = 0x1 - // .. .. ==> 0XF8000B70[5:5] = 0x00000001U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000020U - // .. .. NREF_OPT1 = 0x0 - // .. .. ==> 0XF8000B70[7:6] = 0x00000000U - // .. .. ==> MASK : 0x000000C0U VAL : 0x00000000U - // .. .. NREF_OPT2 = 0x0 - // .. .. ==> 0XF8000B70[10:8] = 0x00000000U - // .. .. ==> MASK : 0x00000700U VAL : 0x00000000U - // .. .. NREF_OPT4 = 0x1 - // .. .. ==> 0XF8000B70[13:11] = 0x00000001U - // .. .. ==> MASK : 0x00003800U VAL : 0x00000800U - // .. .. PREF_OPT1 = 0x0 - // .. .. ==> 0XF8000B70[16:14] = 0x00000000U - // .. .. ==> MASK : 0x0001C000U VAL : 0x00000000U - // .. .. PREF_OPT2 = 0x0 - // .. .. ==> 0XF8000B70[19:17] = 0x00000000U - // .. .. ==> MASK : 0x000E0000U VAL : 0x00000000U - // .. .. UPDATE_CONTROL = 0x0 - // .. .. ==> 0XF8000B70[20:20] = 0x00000000U - // .. .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. .. INIT_COMPLETE = 0x0 - // .. .. ==> 0XF8000B70[21:21] = 0x00000000U - // .. .. ==> MASK : 0x00200000U VAL : 0x00000000U - // .. .. TST_CLK = 0x0 - // .. .. ==> 0XF8000B70[22:22] = 0x00000000U - // .. .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. .. TST_HLN = 0x0 - // .. .. ==> 0XF8000B70[23:23] = 0x00000000U - // .. .. ==> MASK : 0x00800000U VAL : 0x00000000U - // .. .. TST_HLP = 0x0 - // .. .. ==> 0XF8000B70[24:24] = 0x00000000U - // .. .. ==> MASK : 0x01000000U VAL : 0x00000000U - // .. .. TST_RST = 0x0 - // .. .. ==> 0XF8000B70[25:25] = 0x00000000U - // .. .. ==> MASK : 0x02000000U VAL : 0x00000000U - // .. .. INT_DCI_EN = 0x0 - // .. .. ==> 0XF8000B70[26:26] = 0x00000000U - // .. .. ==> MASK : 0x04000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8000B70, 0x07FFFFFFU ,0x00000823U), - // .. FINISH: DDRIOB SETTINGS - // .. START: MIO PROGRAMMING - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000700[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. Speed = 0 - // .. ==> 0XF8000700[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000700[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000700[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000700[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000700, 0x00003F01U ,0x00001201U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000704[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000704[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000704[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000704[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000704[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000704[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000704[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000704[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000704[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000704, 0x00003FFFU ,0x00001202U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000708[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000708[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000708[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000708[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000708[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000708[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000708[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000708[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000708[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000708, 0x00003FFFU ,0x00000202U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800070C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF800070C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800070C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800070C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800070C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800070C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800070C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF800070C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800070C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800070C, 0x00003FFFU ,0x00000202U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000710[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000710[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000710[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000710[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000710[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000710[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000710[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000710[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000710[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000710, 0x00003FFFU ,0x00000202U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000714[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000714[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000714[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000714[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000714[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000714[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000714[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000714[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000714[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000714, 0x00003FFFU ,0x00000202U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000718[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000718[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000718[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000718[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000718[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000718[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000718[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000718[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000718[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000718, 0x00003FFFU ,0x00000202U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800071C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800071C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF800071C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800071C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800071C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800071C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800071C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF800071C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800071C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800071C, 0x00003FFFU ,0x00000200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000720[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000720[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000720[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000720[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000720[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000720[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000720[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000720[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000720[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000720, 0x00003FFFU ,0x00000202U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000724[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000724[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000724[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000724[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000724[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000724[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000724[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000724[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000724[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000724, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000728[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000728[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000728[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000728[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000728[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000728[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000728[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000728[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000728[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000728, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800072C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800072C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF800072C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800072C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800072C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800072C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800072C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800072C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800072C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800072C, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000730[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000730[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000730[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000730[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000730[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000730[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000730[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000730[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000730[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000730, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000734[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000734[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000734[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000734[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000734[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000734[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000734[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000734[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000734[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000734, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000738[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000738[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000738[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000738[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000738[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000738[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000738[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000738[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000738[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000738, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800073C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. Speed = 0 - // .. ==> 0XF800073C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800073C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800073C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800073C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800073C, 0x00003F01U ,0x00001201U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000740[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000740[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000740[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000740[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000740[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000740[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF8000740[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF8000740[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000740[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000740, 0x00003FFFU ,0x00002802U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000744[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000744[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000744[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000744[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000744[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000744[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF8000744[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF8000744[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000744[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000744, 0x00003FFFU ,0x00002802U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000748[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000748[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000748[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000748[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000748[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000748[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF8000748[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF8000748[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000748[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000748, 0x00003FFFU ,0x00002802U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800074C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF800074C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800074C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800074C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800074C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800074C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF800074C[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF800074C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 1 - // .. ==> 0XF800074C[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF800074C, 0x00003FFFU ,0x00002802U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000750[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000750[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000750[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000750[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000750[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000750[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF8000750[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF8000750[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000750[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000750, 0x00003FFFU ,0x00002802U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000754[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000754[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000754[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000754[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000754[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000754[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF8000754[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF8000754[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000754[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000754, 0x00003FFFU ,0x00002802U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000758[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000758[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000758[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000758[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000758[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000758[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF8000758[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF8000758[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000758[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000758, 0x00003FFFU ,0x00000803U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800075C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF800075C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800075C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800075C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800075C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800075C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF800075C[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF800075C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800075C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800075C, 0x00003FFFU ,0x00000803U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000760[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000760[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000760[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000760[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000760[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000760[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF8000760[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF8000760[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000760[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000760, 0x00003FFFU ,0x00000803U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000764[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000764[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000764[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000764[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000764[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000764[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF8000764[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF8000764[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000764[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000764, 0x00003FFFU ,0x00000803U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000768[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000768[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000768[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000768[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000768[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000768[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF8000768[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF8000768[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000768[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000768, 0x00003FFFU ,0x00000803U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800076C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF800076C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800076C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800076C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800076C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800076C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 4 - // .. ==> 0XF800076C[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 0 - // .. ==> 0XF800076C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800076C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800076C, 0x00003FFFU ,0x00000803U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000770[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000770[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000770[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000770[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000770[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000770[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000770[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000770[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000770[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000770, 0x00003FFFU ,0x00000204U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000774[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF8000774[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000774[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000774[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000774[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000774[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000774[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000774[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000774[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000774, 0x00003FFFU ,0x00000205U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000778[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000778[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000778[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000778[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000778[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000778[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000778[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000778[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000778[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000778, 0x00003FFFU ,0x00000204U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800077C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF800077C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF800077C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF800077C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800077C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800077C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800077C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF800077C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800077C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800077C, 0x00003FFFU ,0x00000205U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000780[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000780[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000780[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000780[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000780[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000780[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000780[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000780[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000780[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000780, 0x00003FFFU ,0x00000204U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000784[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000784[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000784[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000784[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000784[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000784[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000784[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000784[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000784[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000784, 0x00003FFFU ,0x00000204U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000788[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000788[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000788[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000788[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000788[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000788[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000788[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000788[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000788[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000788, 0x00003FFFU ,0x00000204U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800078C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800078C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF800078C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF800078C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800078C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800078C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800078C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF800078C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800078C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800078C, 0x00003FFFU ,0x00000204U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000790[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF8000790[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000790[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000790[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000790[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000790[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000790[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000790[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000790[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000790, 0x00003FFFU ,0x00000205U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000794[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000794[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000794[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000794[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000794[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000794[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000794[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000794[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000794[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000794, 0x00003FFFU ,0x00000204U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000798[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000798[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000798[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000798[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000798[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000798[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000798[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000798[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000798[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000798, 0x00003FFFU ,0x00000204U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800079C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800079C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF800079C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF800079C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800079C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800079C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800079C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF800079C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800079C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800079C, 0x00003FFFU ,0x00000204U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007A0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007A0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007A0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007A0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007A0[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007A0[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007A0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007A0[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007A0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007A0, 0x00003FFFU ,0x00000280U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007A4[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007A4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007A4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007A4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007A4[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007A4[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007A4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007A4[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007A4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007A4, 0x00003FFFU ,0x00000280U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007A8[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007A8[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007A8[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007A8[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007A8[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007A8[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007A8[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007A8[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007A8[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007A8, 0x00003FFFU ,0x00000280U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007AC[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007AC[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007AC[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007AC[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007AC[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007AC[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007AC[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007AC[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007AC[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007AC, 0x00003FFFU ,0x00000280U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007B0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007B0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007B0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007B0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007B0[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007B0[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007B0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007B0[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007B0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007B0, 0x00003FFFU ,0x00000280U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007B4[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007B4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007B4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007B4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007B4[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007B4[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007B4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007B4[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007B4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007B4, 0x00003FFFU ,0x00000280U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF80007B8[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF80007B8[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007B8[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007B8[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 1 - // .. ==> 0XF80007B8[7:5] = 0x00000001U - // .. ==> MASK : 0x000000E0U VAL : 0x00000020U - // .. Speed = 0 - // .. ==> 0XF80007B8[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007B8[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007B8[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007B8[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007B8, 0x00003FFFU ,0x00001221U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007BC[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007BC[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007BC[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007BC[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 1 - // .. ==> 0XF80007BC[7:5] = 0x00000001U - // .. ==> MASK : 0x000000E0U VAL : 0x00000020U - // .. Speed = 0 - // .. ==> 0XF80007BC[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007BC[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007BC[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007BC[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007BC, 0x00003FFFU ,0x00001220U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007C0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007C0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007C0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007C0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 7 - // .. ==> 0XF80007C0[7:5] = 0x00000007U - // .. ==> MASK : 0x000000E0U VAL : 0x000000E0U - // .. Speed = 0 - // .. ==> 0XF80007C0[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007C0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007C0[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007C0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007C0, 0x00003FFFU ,0x000002E0U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF80007C4[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF80007C4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007C4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007C4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 7 - // .. ==> 0XF80007C4[7:5] = 0x00000007U - // .. ==> MASK : 0x000000E0U VAL : 0x000000E0U - // .. Speed = 0 - // .. ==> 0XF80007C4[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007C4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007C4[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007C4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007C4, 0x00003FFFU ,0x000002E1U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007C8[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007C8[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007C8[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007C8[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 2 - // .. ==> 0XF80007C8[7:5] = 0x00000002U - // .. ==> MASK : 0x000000E0U VAL : 0x00000040U - // .. Speed = 0 - // .. ==> 0XF80007C8[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007C8[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007C8[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007C8[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007C8, 0x00003FFFU ,0x00001240U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007CC[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007CC[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007CC[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007CC[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 2 - // .. ==> 0XF80007CC[7:5] = 0x00000002U - // .. ==> MASK : 0x000000E0U VAL : 0x00000040U - // .. Speed = 0 - // .. ==> 0XF80007CC[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007CC[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007CC[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007CC[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007CC, 0x00003FFFU ,0x00001240U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007D0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007D0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007D0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007D0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007D0[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007D0[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007D0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007D0[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007D0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007D0, 0x00003FFFU ,0x00000280U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007D4[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007D4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007D4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007D4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007D4[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007D4[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007D4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF80007D4[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007D4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007D4, 0x00003FFFU ,0x00000280U), - // .. SDIO0_WP_SEL = 15 - // .. ==> 0XF8000830[5:0] = 0x0000000FU - // .. ==> MASK : 0x0000003FU VAL : 0x0000000FU - // .. SDIO0_CD_SEL = 0 - // .. ==> 0XF8000830[21:16] = 0x00000000U - // .. ==> MASK : 0x003F0000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000830, 0x003F003FU ,0x0000000FU), - // .. FINISH: MIO PROGRAMMING - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_peripherals_init_data_1_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: DDR TERM/IBUF_DISABLE_MODE SETTINGS - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B48[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B48[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B48, 0x00000180U ,0x00000180U), - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B4C[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B4C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B4C, 0x00000180U ,0x00000180U), - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B50[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B50[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B50, 0x00000180U ,0x00000180U), - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B54[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B54[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B54, 0x00000180U ,0x00000180U), - // .. FINISH: DDR TERM/IBUF_DISABLE_MODE SETTINGS - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // .. START: SRAM/NOR SET OPMODE - // .. FINISH: SRAM/NOR SET OPMODE - // .. START: TRACE CURRENT PORT SIZE - // .. FINISH: TRACE CURRENT PORT SIZE - // .. START: UART REGISTERS - // .. BDIV = 0x6 - // .. ==> 0XE0001034[7:0] = 0x00000006U - // .. ==> MASK : 0x000000FFU VAL : 0x00000006U - // .. - EMIT_MASKWRITE(0XE0001034, 0x000000FFU ,0x00000006U), - // .. CD = 0x3e - // .. ==> 0XE0001018[15:0] = 0x0000003EU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000003EU - // .. - EMIT_MASKWRITE(0XE0001018, 0x0000FFFFU ,0x0000003EU), - // .. STPBRK = 0x0 - // .. ==> 0XE0001000[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. STTBRK = 0x0 - // .. ==> 0XE0001000[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. RSTTO = 0x0 - // .. ==> 0XE0001000[6:6] = 0x00000000U - // .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. TXDIS = 0x0 - // .. ==> 0XE0001000[5:5] = 0x00000000U - // .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. TXEN = 0x1 - // .. ==> 0XE0001000[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. RXDIS = 0x0 - // .. ==> 0XE0001000[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. RXEN = 0x1 - // .. ==> 0XE0001000[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. TXRES = 0x1 - // .. ==> 0XE0001000[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. RXRES = 0x1 - // .. ==> 0XE0001000[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. - EMIT_MASKWRITE(0XE0001000, 0x000001FFU ,0x00000017U), - // .. IRMODE = 0x0 - // .. ==> 0XE0001004[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. UCLKEN = 0x0 - // .. ==> 0XE0001004[10:10] = 0x00000000U - // .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. CHMODE = 0x0 - // .. ==> 0XE0001004[9:8] = 0x00000000U - // .. ==> MASK : 0x00000300U VAL : 0x00000000U - // .. NBSTOP = 0x0 - // .. ==> 0XE0001004[7:6] = 0x00000000U - // .. ==> MASK : 0x000000C0U VAL : 0x00000000U - // .. PAR = 0x4 - // .. ==> 0XE0001004[5:3] = 0x00000004U - // .. ==> MASK : 0x00000038U VAL : 0x00000020U - // .. CHRL = 0x0 - // .. ==> 0XE0001004[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. CLKS = 0x0 - // .. ==> 0XE0001004[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XE0001004, 0x00000FFFU ,0x00000020U), - // .. FINISH: UART REGISTERS - // .. START: QSPI REGISTERS - // .. Holdb_dr = 1 - // .. ==> 0XE000D000[19:19] = 0x00000001U - // .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. - EMIT_MASKWRITE(0XE000D000, 0x00080000U ,0x00080000U), - // .. FINISH: QSPI REGISTERS - // .. START: PL POWER ON RESET REGISTERS - // .. PCFG_POR_CNT_4K = 0 - // .. ==> 0XF8007000[29:29] = 0x00000000U - // .. ==> MASK : 0x20000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8007000, 0x20000000U ,0x00000000U), - // .. FINISH: PL POWER ON RESET REGISTERS - // .. START: SMC TIMING CALCULATION REGISTER UPDATE - // .. .. START: NAND SET CYCLE - // .. .. FINISH: NAND SET CYCLE - // .. .. START: OPMODE - // .. .. FINISH: OPMODE - // .. .. START: DIRECT COMMAND - // .. .. FINISH: DIRECT COMMAND - // .. .. START: SRAM/NOR CS0 SET CYCLE - // .. .. FINISH: SRAM/NOR CS0 SET CYCLE - // .. .. START: DIRECT COMMAND - // .. .. FINISH: DIRECT COMMAND - // .. .. START: NOR CS0 BASE ADDRESS - // .. .. FINISH: NOR CS0 BASE ADDRESS - // .. .. START: SRAM/NOR CS1 SET CYCLE - // .. .. FINISH: SRAM/NOR CS1 SET CYCLE - // .. .. START: DIRECT COMMAND - // .. .. FINISH: DIRECT COMMAND - // .. .. START: NOR CS1 BASE ADDRESS - // .. .. FINISH: NOR CS1 BASE ADDRESS - // .. .. START: USB RESET - // .. .. .. START: DIR MODE BANK 0 - // .. .. .. DIRECTION_0 = 0x2880 - // .. .. .. ==> 0XE000A204[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A204, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: DIR MODE BANK 0 - // .. .. .. START: DIR MODE BANK 1 - // .. .. .. FINISH: DIR MODE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xff7f - // .. .. .. ==> 0XE000A000[31:16] = 0x0000FF7FU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xFF7F0000U - // .. .. .. DATA_0_LSW = 0x80 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000080U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000080U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xFF7F0080U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. START: OUTPUT ENABLE BANK 0 - // .. .. .. OP_ENABLE_0 = 0x2880 - // .. .. .. ==> 0XE000A208[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A208, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: OUTPUT ENABLE BANK 0 - // .. .. .. START: OUTPUT ENABLE BANK 1 - // .. .. .. FINISH: OUTPUT ENABLE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. MASK_0_LSW = 0xff7f - // .. .. .. ==> 0XE000A000[31:16] = 0x0000FF7FU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xFF7F0000U - // .. .. .. DATA_0_LSW = 0x0 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xFF7F0000U), - // .. .. .. FINISH: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xff7f - // .. .. .. ==> 0XE000A000[31:16] = 0x0000FF7FU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xFF7F0000U - // .. .. .. DATA_0_LSW = 0x80 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000080U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000080U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xFF7F0080U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. FINISH: USB RESET - // .. .. START: ENET RESET - // .. .. .. START: DIR MODE BANK 0 - // .. .. .. DIRECTION_0 = 0x2880 - // .. .. .. ==> 0XE000A204[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A204, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: DIR MODE BANK 0 - // .. .. .. START: DIR MODE BANK 1 - // .. .. .. FINISH: DIR MODE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xf7ff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000F7FFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xF7FF0000U - // .. .. .. DATA_0_LSW = 0x800 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000800U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000800U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xF7FF0800U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. START: OUTPUT ENABLE BANK 0 - // .. .. .. OP_ENABLE_0 = 0x2880 - // .. .. .. ==> 0XE000A208[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A208, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: OUTPUT ENABLE BANK 0 - // .. .. .. START: OUTPUT ENABLE BANK 1 - // .. .. .. FINISH: OUTPUT ENABLE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. MASK_0_LSW = 0xf7ff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000F7FFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xF7FF0000U - // .. .. .. DATA_0_LSW = 0x0 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xF7FF0000U), - // .. .. .. FINISH: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xf7ff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000F7FFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xF7FF0000U - // .. .. .. DATA_0_LSW = 0x800 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000800U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000800U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xF7FF0800U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. FINISH: ENET RESET - // .. .. START: I2C RESET - // .. .. .. START: DIR MODE GPIO BANK0 - // .. .. .. DIRECTION_0 = 0x2880 - // .. .. .. ==> 0XE000A204[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A204, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: DIR MODE GPIO BANK0 - // .. .. .. START: DIR MODE GPIO BANK1 - // .. .. .. FINISH: DIR MODE GPIO BANK1 - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xdfff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000DFFFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xDFFF0000U - // .. .. .. DATA_0_LSW = 0x2000 - // .. .. .. ==> 0XE000A000[15:0] = 0x00002000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00002000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xDFFF2000U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. START: OUTPUT ENABLE - // .. .. .. OP_ENABLE_0 = 0x2880 - // .. .. .. ==> 0XE000A208[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A208, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: OUTPUT ENABLE - // .. .. .. START: OUTPUT ENABLE - // .. .. .. FINISH: OUTPUT ENABLE - // .. .. .. START: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. MASK_0_LSW = 0xdfff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000DFFFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xDFFF0000U - // .. .. .. DATA_0_LSW = 0x0 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xDFFF0000U), - // .. .. .. FINISH: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xdfff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000DFFFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xDFFF0000U - // .. .. .. DATA_0_LSW = 0x2000 - // .. .. .. ==> 0XE000A000[15:0] = 0x00002000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00002000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xDFFF2000U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. FINISH: I2C RESET - // .. FINISH: SMC TIMING CALCULATION REGISTER UPDATE - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_post_config_1_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: ENABLING LEVEL SHIFTER - // .. USER_INP_ICT_EN_0 = 3 - // .. ==> 0XF8000900[1:0] = 0x00000003U - // .. ==> MASK : 0x00000003U VAL : 0x00000003U - // .. USER_INP_ICT_EN_1 = 3 - // .. ==> 0XF8000900[3:2] = 0x00000003U - // .. ==> MASK : 0x0000000CU VAL : 0x0000000CU - // .. - EMIT_MASKWRITE(0XF8000900, 0x0000000FU ,0x0000000FU), - // .. FINISH: ENABLING LEVEL SHIFTER - // .. START: FPGA RESETS TO 0 - // .. reserved_3 = 0 - // .. ==> 0XF8000240[31:25] = 0x00000000U - // .. ==> MASK : 0xFE000000U VAL : 0x00000000U - // .. FPGA_ACP_RST = 0 - // .. ==> 0XF8000240[24:24] = 0x00000000U - // .. ==> MASK : 0x01000000U VAL : 0x00000000U - // .. FPGA_AXDS3_RST = 0 - // .. ==> 0XF8000240[23:23] = 0x00000000U - // .. ==> MASK : 0x00800000U VAL : 0x00000000U - // .. FPGA_AXDS2_RST = 0 - // .. ==> 0XF8000240[22:22] = 0x00000000U - // .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. FPGA_AXDS1_RST = 0 - // .. ==> 0XF8000240[21:21] = 0x00000000U - // .. ==> MASK : 0x00200000U VAL : 0x00000000U - // .. FPGA_AXDS0_RST = 0 - // .. ==> 0XF8000240[20:20] = 0x00000000U - // .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. reserved_2 = 0 - // .. ==> 0XF8000240[19:18] = 0x00000000U - // .. ==> MASK : 0x000C0000U VAL : 0x00000000U - // .. FSSW1_FPGA_RST = 0 - // .. ==> 0XF8000240[17:17] = 0x00000000U - // .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. FSSW0_FPGA_RST = 0 - // .. ==> 0XF8000240[16:16] = 0x00000000U - // .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. reserved_1 = 0 - // .. ==> 0XF8000240[15:14] = 0x00000000U - // .. ==> MASK : 0x0000C000U VAL : 0x00000000U - // .. FPGA_FMSW1_RST = 0 - // .. ==> 0XF8000240[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. FPGA_FMSW0_RST = 0 - // .. ==> 0XF8000240[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. FPGA_DMA3_RST = 0 - // .. ==> 0XF8000240[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. FPGA_DMA2_RST = 0 - // .. ==> 0XF8000240[10:10] = 0x00000000U - // .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. FPGA_DMA1_RST = 0 - // .. ==> 0XF8000240[9:9] = 0x00000000U - // .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. FPGA_DMA0_RST = 0 - // .. ==> 0XF8000240[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. reserved = 0 - // .. ==> 0XF8000240[7:4] = 0x00000000U - // .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. FPGA3_OUT_RST = 0 - // .. ==> 0XF8000240[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. FPGA2_OUT_RST = 0 - // .. ==> 0XF8000240[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. FPGA1_OUT_RST = 0 - // .. ==> 0XF8000240[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. FPGA0_OUT_RST = 0 - // .. ==> 0XF8000240[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000240, 0xFFFFFFFFU ,0x00000000U), - // .. FINISH: FPGA RESETS TO 0 - // .. START: AFI REGISTERS - // .. .. START: AFI0 REGISTERS - // .. .. FINISH: AFI0 REGISTERS - // .. .. START: AFI1 REGISTERS - // .. .. FINISH: AFI1 REGISTERS - // .. .. START: AFI2 REGISTERS - // .. .. FINISH: AFI2 REGISTERS - // .. .. START: AFI3 REGISTERS - // .. .. FINISH: AFI3 REGISTERS - // .. FINISH: AFI REGISTERS - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - - -#include "xil_io.h" -#define PS7_MASK_POLL_TIME 100000000 - -char* -getPS7MessageInfo(unsigned key) { - - char* err_msg = ""; - switch (key) { - case PS7_INIT_SUCCESS: err_msg = "PS7 initialization successful"; break; - case PS7_INIT_CORRUPT: err_msg = "PS7 init Data Corrupted"; break; - case PS7_INIT_TIMEOUT: err_msg = "PS7 init mask poll timeout"; break; - case PS7_POLL_FAILED_DDR_INIT: err_msg = "Mask Poll failed for DDR Init"; break; - case PS7_POLL_FAILED_DMA: err_msg = "Mask Poll failed for PLL Init"; break; - case PS7_POLL_FAILED_PLL: err_msg = "Mask Poll failed for DMA done bit"; break; - default: err_msg = "Undefined error status"; break; - } - - return err_msg; -} - -unsigned long -ps7GetSiliconVersion () { - // Read PS version from MCTRL register [31:28] - unsigned long mask = 0xF0000000; - unsigned long *addr = (unsigned long*) 0XF8007080; - unsigned long ps_version = (*addr & mask) >> 28; - return ps_version; -} - -void mask_write (unsigned long add , unsigned long mask, unsigned long val ) { - unsigned long *addr = (unsigned long*) add; - *addr = ( val & mask ) | ( *addr & ~mask); - //xil_printf("MaskWrite : 0x%x--> 0x%x \n \r" ,add, *addr); -} - - -int mask_poll(unsigned long add , unsigned long mask ) { - unsigned long *addr = (unsigned long*) add; - int i = 0; - while (!(*addr & mask)) { - if (i == PS7_MASK_POLL_TIME) { - return -1; - } - i++; - } - return 1; - //xil_printf("MaskPoll : 0x%x --> 0x%x \n \r" , add, *addr); -} - -unsigned long mask_read(unsigned long add , unsigned long mask ) { - unsigned long *addr = (unsigned long*) add; - unsigned long val = (*addr & mask); - //xil_printf("MaskRead : 0x%x --> 0x%x \n \r" , add, val); - return val; -} - - - -int -ps7_config(unsigned long * ps7_config_init) -{ - unsigned long *ptr = ps7_config_init; - - unsigned long opcode; // current instruction .. - unsigned long args[16]; // no opcode has so many args ... - int numargs; // number of arguments of this instruction - int j; // general purpose index - - volatile unsigned long *addr; // some variable to make code readable - unsigned long val,mask; // some variable to make code readable - - int finish = -1 ; // loop while this is negative ! - int i = 0; // Timeout variable - - while( finish < 0 ) { - numargs = ptr[0] & 0xF; - opcode = ptr[0] >> 4; - - for( j = 0 ; j < numargs ; j ++ ) - args[j] = ptr[j+1]; - ptr += numargs + 1; - - - switch ( opcode ) { - - case OPCODE_EXIT: - finish = PS7_INIT_SUCCESS; - break; - - case OPCODE_CLEAR: - addr = (unsigned long*) args[0]; - *addr = 0; - break; - - case OPCODE_WRITE: - addr = (unsigned long*) args[0]; - val = args[1]; - *addr = val; - break; - - case OPCODE_MASKWRITE: - addr = (unsigned long*) args[0]; - mask = args[1]; - val = args[2]; - *addr = ( val & mask ) | ( *addr & ~mask); - break; - - case OPCODE_MASKPOLL: - addr = (unsigned long*) args[0]; - mask = args[1]; - i = 0; - while (!(*addr & mask)) { - if (i == PS7_MASK_POLL_TIME) { - finish = PS7_INIT_TIMEOUT; - break; - } - i++; - } - break; - default: - finish = PS7_INIT_CORRUPT; - break; - } - } - return finish; -} - -unsigned long *ps7_mio_init_data = ps7_mio_init_data_3_0; -unsigned long *ps7_pll_init_data = ps7_pll_init_data_3_0; -unsigned long *ps7_clock_init_data = ps7_clock_init_data_3_0; -unsigned long *ps7_ddr_init_data = ps7_ddr_init_data_3_0; -unsigned long *ps7_peripherals_init_data = ps7_peripherals_init_data_3_0; - -int -ps7_post_config() -{ - // Get the PS_VERSION on run time - unsigned long si_ver = ps7GetSiliconVersion (); - int ret = -1; - if (si_ver == PCW_SILICON_VERSION_1) { - ret = ps7_config (ps7_post_config_1_0); - if (ret != PS7_INIT_SUCCESS) return ret; - } else if (si_ver == PCW_SILICON_VERSION_2) { - ret = ps7_config (ps7_post_config_2_0); - if (ret != PS7_INIT_SUCCESS) return ret; - } else { - ret = ps7_config (ps7_post_config_3_0); - if (ret != PS7_INIT_SUCCESS) return ret; - } - return PS7_INIT_SUCCESS; -} - -int -ps7_init() -{ - // Get the PS_VERSION on run time - unsigned long si_ver = ps7GetSiliconVersion (); - //int pcw_ver = 0; - - if (si_ver == PCW_SILICON_VERSION_1) { - ps7_mio_init_data = ps7_mio_init_data_1_0; - ps7_pll_init_data = ps7_pll_init_data_1_0; - ps7_clock_init_data = ps7_clock_init_data_1_0; - ps7_ddr_init_data = ps7_ddr_init_data_1_0; - ps7_peripherals_init_data = ps7_peripherals_init_data_1_0; - //pcw_ver = 1; - - } else if (si_ver == PCW_SILICON_VERSION_2) { - ps7_mio_init_data = ps7_mio_init_data_2_0; - ps7_pll_init_data = ps7_pll_init_data_2_0; - ps7_clock_init_data = ps7_clock_init_data_2_0; - ps7_ddr_init_data = ps7_ddr_init_data_2_0; - ps7_peripherals_init_data = ps7_peripherals_init_data_2_0; - //pcw_ver = 2; - - } else { - ps7_mio_init_data = ps7_mio_init_data_3_0; - ps7_pll_init_data = ps7_pll_init_data_3_0; - ps7_clock_init_data = ps7_clock_init_data_3_0; - ps7_ddr_init_data = ps7_ddr_init_data_3_0; - ps7_peripherals_init_data = ps7_peripherals_init_data_3_0; - //pcw_ver = 3; - } - - // MIO init - int ret = ps7_config (ps7_mio_init_data); - if (ret != PS7_INIT_SUCCESS) return ret; - - // PLL init - ret = ps7_config (ps7_pll_init_data); - if (ret != PS7_INIT_SUCCESS) return ret; - - // Clock init - ret = ps7_config (ps7_clock_init_data); - if (ret != PS7_INIT_SUCCESS) return ret; - - // DDR init - ret = ps7_config (ps7_ddr_init_data); - if (ret != PS7_INIT_SUCCESS) return ret; - - - - // Peripherals init - ret = ps7_config (ps7_peripherals_init_data); - if (ret != PS7_INIT_SUCCESS) return ret; - //xil_printf ("\n PCW Silicon Version : %d.0", pcw_ver); - return PS7_INIT_SUCCESS; -} - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/ps7_init.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/ps7_init.h deleted file mode 100644 index 422c1e92b..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/ps7_init.h +++ /dev/null @@ -1,137 +0,0 @@ - -/****************************************************************************** -* -* (c) Copyright 2010-2012 Xilinx, Inc. All rights reserved. -* -* This file contains confidential and proprietary information of Xilinx, Inc. -* and is protected under U.S. and international copyright and other -* intellectual property laws. -* -* DISCLAIMER -* This disclaimer is not a license and does not grant any rights to the -* materials distributed herewith. Except as otherwise provided in a valid -* license issued to you by Xilinx, and to the maximum extent permitted by -* applicable law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND WITH ALL -* FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS, -* IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF -* MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; -* and (2) Xilinx shall not be liable (whether in contract or tort, including -* negligence, or under any other theory of liability) for any loss or damage -* of any kind or nature related to, arising under or in connection with these -* materials, including for any direct, or any indirect, special, incidental, -* or consequential loss or damage (including loss of data, profits, goodwill, -* or any type of loss or damage suffered as a result of any action brought by -* a third party) even if such damage or loss was reasonably foreseeable or -* Xilinx had been advised of the possibility of the same. -* -* CRITICAL APPLICATIONS -* Xilinx products are not designed or intended to be fail-safe, or for use in -* any application requiring fail-safe performance, such as life-support or -* safety devices or systems, Class III medical devices, nuclear facilities, -* applications related to the deployment of airbags, or any other applications -* that could lead to death, personal injury, or severe property or -* environmental damage (individually and collectively, "Critical -* Applications"). Customer assumes the sole risk and liability of any use of -* Xilinx products in Critical Applications, subject only to applicable laws -* and regulations governing limitations on product liability. -* -* THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS PART OF THIS FILE -* AT ALL TIMES. -* -******************************************************************************/ -/****************************************************************************/ -/** -* -* @file ps7_init.h -* -* This file can be included in FSBL code -* to get prototype of ps7_init() function -* and error codes -* -*****************************************************************************/ - -#ifdef __cplusplus -extern "C" { -#endif - - -//typedef unsigned int u32; - - -/** do we need to make this name more unique ? **/ -//extern u32 ps7_init_data[]; -extern unsigned long * ps7_ddr_init_data; -extern unsigned long * ps7_mio_init_data; -extern unsigned long * ps7_pll_init_data; -extern unsigned long * ps7_clock_init_data; -extern unsigned long * ps7_peripherals_init_data; - - - -#define OPCODE_EXIT 0U -#define OPCODE_CLEAR 1U -#define OPCODE_WRITE 2U -#define OPCODE_MASKWRITE 3U -#define OPCODE_MASKPOLL 4U -#define NEW_PS7_ERR_CODE 1 - -/* Encode number of arguments in last nibble */ -#define EMIT_EXIT() ( (OPCODE_EXIT << 4 ) | 0 ) -#define EMIT_CLEAR(addr) ( (OPCODE_CLEAR << 4 ) | 1 ) , addr -#define EMIT_WRITE(addr,val) ( (OPCODE_WRITE << 4 ) | 2 ) , addr, val -#define EMIT_MASKWRITE(addr,mask,val) ( (OPCODE_MASKWRITE << 4 ) | 3 ) , addr, mask, val -#define EMIT_MASKPOLL(addr,mask) ( (OPCODE_MASKPOLL << 4 ) | 2 ) , addr, mask - - - -/* Returns codes of PS7_Init */ -#define PS7_INIT_SUCCESS (0) // 0 is success in good old C -#define PS7_INIT_CORRUPT (1) // 1 the data is corrupted, and slcr reg are in corrupted state now -#define PS7_INIT_TIMEOUT (2) // 2 when a poll operation timed out -#define PS7_POLL_FAILED_DDR_INIT (3) // 3 when a poll operation timed out for ddr init -#define PS7_POLL_FAILED_DMA (4) // 4 when a poll operation timed out for dma done bit -#define PS7_POLL_FAILED_PLL (5) // 5 when a poll operation timed out for pll sequence init - - -/* Silicon Versions */ -#define PCW_SILICON_VERSION_1 0 -#define PCW_SILICON_VERSION_2 1 -#define PCW_SILICON_VERSION_3 2 - -/* This flag to be used by FSBL to check whether ps7_post_config() proc exixts */ -#define PS7_POST_CONFIG - -/* Freq of all peripherals */ - -#define APU_FREQ 666666666 -#define DDR_FREQ 533333333 -#define DCI_FREQ 10159000 -#define QSPI_FREQ 200000000 -#define SMC_FREQ 100000000 -#define ENET0_FREQ 25000000 -#define ENET1_FREQ 125000000 -#define USB0_FREQ 60000000 -#define USB1_FREQ 60000000 -#define SDIO_FREQ 50000000 -#define UART_FREQ 50000000 -#define SPI_FREQ 166666666 -#define I2C_FREQ 111111115 -#define WDT_FREQ 133333333 -#define TTC_FREQ 50000000 -#define CAN_FREQ 23809500 -#define PCAP_FREQ 200000000 -#define TPIU_FREQ 200000000 -#define FPGA0_FREQ 50000000 -#define FPGA1_FREQ 50000000 -#define FPGA2_FREQ 50000000 -#define FPGA3_FREQ 50000000 - - -int ps7_config( unsigned long*); -int ps7_init(); -int ps7_post_config(); -char* getPS7MessageInfo(unsigned key); - -#ifdef __cplusplus -} -#endif diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/ps7_init.html b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/ps7_init.html deleted file mode 100644 index 640ec2078..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/ps7_init.html +++ /dev/null @@ -1,145985 +0,0 @@ - - - - -Zynq PS configuration detail - - - - -
- -
Zynq PS7 Summary Report -
-
-
User Configurations -
- -
-
Select Version: - -
-
-
Zynq Register View -
- -
This design is targeted forxc7z020board (part number: xc7z020clg484-1) - -
-

Zynq Design Summary

- - - - - - - - - - - - - - - - - - - - - -
-Device - -xc7z020 -
-SpeedGrade - -xc7z020 -
-Part - -xc7z020clg484-1 -
-Description - -Zynq PS Configuration Report with register details -
-Vendor - -Xilinx -
-

MIO Table View

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-MIO Pin - -Peripheral - -Signal - -IO Type - -Speed - -Pullup - -Direction -
-MIO 0 - -SD 0 - -cd - -LVCMOS 1.8V - -slow - -enabled - -in -
-MIO 1 - -Quad SPI Flash - -qspi0_ss_b - -LVCMOS 1.8V - -slow - -enabled - -out -
-MIO 2 - -Quad SPI Flash - -qspi0_io[0] - -LVCMOS 1.8V - -slow - -disabled - -inout -
-MIO 3 - -Quad SPI Flash - -qspi0_io[1] - -LVCMOS 1.8V - -slow - -disabled - -inout -
-MIO 4 - -Quad SPI Flash - -qspi0_io[2] - -LVCMOS 1.8V - -slow - -disabled - -inout -
-MIO 5 - -Quad SPI Flash - -qspi0_io[3] - -LVCMOS 1.8V - -slow - -disabled - -inout -
-MIO 6 - -Quad SPI Flash - -qspi0_sclk - -LVCMOS 1.8V - -slow - -disabled - -out -
-MIO 7 - -USB Reset - -reset - -LVCMOS 1.8V - -slow - -disabled - -out -
-MIO 8 - -Quad SPI Flash - -qspi_fbclk - -LVCMOS 1.8V - -slow - -disabled - -out -
-MIO 9 - -GPIO - -gpio[9] - -LVCMOS 1.8V - -slow - -enabled - -inout -
-MIO 10 - -GPIO - -gpio[10] - -LVCMOS 1.8V - -slow - -enabled - -inout -
-MIO 11 - -ENET Reset - -reset - -LVCMOS 1.8V - -slow - -enabled - -out -
-MIO 12 - -GPIO - -gpio[12] - -LVCMOS 1.8V - -slow - -enabled - -inout -
-MIO 13 - -I2C Reset - -reset - -LVCMOS 1.8V - -slow - -enabled - -out -
-MIO 14 - -GPIO - -gpio[14] - -LVCMOS 1.8V - -slow - -enabled - -inout -
-MIO 15 - -SD 0 - -wp - -LVCMOS 1.8V - -slow - -enabled - -in -
-MIO 16 - -Enet 0 - -tx_clk - -HSTL 1.8V - -slow - -disabled - -out -
-MIO 17 - -Enet 0 - -txd[0] - -HSTL 1.8V - -slow - -disabled - -out -
-MIO 18 - -Enet 0 - -txd[1] - -HSTL 1.8V - -slow - -disabled - -out -
-MIO 19 - -Enet 0 - -txd[2] - -HSTL 1.8V - -slow - -disabled - -out -
-MIO 20 - -Enet 0 - -txd[3] - -HSTL 1.8V - -slow - -disabled - -out -
-MIO 21 - -Enet 0 - -tx_ctl - -HSTL 1.8V - -slow - -disabled - -out -
-MIO 22 - -Enet 0 - -rx_clk - -HSTL 1.8V - -slow - -disabled - -in -
-MIO 23 - -Enet 0 - -rxd[0] - -HSTL 1.8V - -slow - -disabled - -in -
-MIO 24 - -Enet 0 - -rxd[1] - -HSTL 1.8V - -slow - -disabled - -in -
-MIO 25 - -Enet 0 - -rxd[2] - -HSTL 1.8V - -slow - -disabled - -in -
-MIO 26 - -Enet 0 - -rxd[3] - -HSTL 1.8V - -slow - -disabled - -in -
-MIO 27 - -Enet 0 - -rx_ctl - -HSTL 1.8V - -slow - -disabled - -in -
-MIO 28 - -USB 0 - -data[4] - -LVCMOS 1.8V - -slow - -disabled - -inout -
-MIO 29 - -USB 0 - -dir - -LVCMOS 1.8V - -slow - -disabled - -in -
-MIO 30 - -USB 0 - -stp - -LVCMOS 1.8V - -slow - -disabled - -out -
-MIO 31 - -USB 0 - -nxt - -LVCMOS 1.8V - -slow - -disabled - -in -
-MIO 32 - -USB 0 - -data[0] - -LVCMOS 1.8V - -slow - -disabled - -inout -
-MIO 33 - -USB 0 - -data[1] - -LVCMOS 1.8V - -slow - -disabled - -inout -
-MIO 34 - -USB 0 - -data[2] - -LVCMOS 1.8V - -slow - -disabled - -inout -
-MIO 35 - -USB 0 - -data[3] - -LVCMOS 1.8V - -slow - -disabled - -inout -
-MIO 36 - -USB 0 - -clk - -LVCMOS 1.8V - -slow - -disabled - -in -
-MIO 37 - -USB 0 - -data[5] - -LVCMOS 1.8V - -slow - -disabled - -inout -
-MIO 38 - -USB 0 - -data[6] - -LVCMOS 1.8V - -slow - -disabled - -inout -
-MIO 39 - -USB 0 - -data[7] - -LVCMOS 1.8V - -slow - -disabled - -inout -
-MIO 40 - -SD 0 - -clk - -LVCMOS 1.8V - -slow - -disabled - -inout -
-MIO 41 - -SD 0 - -cmd - -LVCMOS 1.8V - -slow - -disabled - -inout -
-MIO 42 - -SD 0 - -data[0] - -LVCMOS 1.8V - -slow - -disabled - -inout -
-MIO 43 - -SD 0 - -data[1] - -LVCMOS 1.8V - -slow - -disabled - -inout -
-MIO 44 - -SD 0 - -data[2] - -LVCMOS 1.8V - -slow - -disabled - -inout -
-MIO 45 - -SD 0 - -data[3] - -LVCMOS 1.8V - -slow - -disabled - -inout -
-MIO 46 - -CAN 0 - -rx - -LVCMOS 1.8V - -slow - -enabled - -in -
-MIO 47 - -CAN 0 - -tx - -LVCMOS 1.8V - -slow - -enabled - -out -
-MIO 48 - -UART 1 - -tx - -LVCMOS 1.8V - -slow - -disabled - -out -
-MIO 49 - -UART 1 - -rx - -LVCMOS 1.8V - -slow - -disabled - -in -
-MIO 50 - -I2C 0 - -scl - -LVCMOS 1.8V - -slow - -enabled - -inout -
-MIO 51 - -I2C 0 - -sda - -LVCMOS 1.8V - -slow - -enabled - -inout -
-MIO 52 - -Enet 0 - -mdc - -LVCMOS 1.8V - -slow - -disabled - -out -
-MIO 53 - -Enet 0 - -mdio - -LVCMOS 1.8V - -slow - -disabled - -inout -
-

DDR Memory information

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Parameter name - -Value - -Description -
-Enable DDR - -1 - -Enable DDR Controller of Zynq PS -
-Enable DDR - -1 - -Enable DDR Controller of Zynq PS -
-Memory Part - -MT41J256M8 HX-15E - - -
-DRAM bus width - -32 Bit - -Select the desired data width. Refer to the Thechnical Reference Manual(TRM) for a detailed list of supported DDR data widths -
-ECC - -Disabled - -ECC is supported only for data width of 16-bit -
-BURST Length (lppdr only) - -8 - -Select the burst Length. It refers to the amount of data read/written after a read/write command is presented to the controller -
-Internal Vref - -1 - - -
-Operating Frequency (MHz) - -533.333333 - -Chose the clock period for the desired frequency. The allowed freq range (200 - 667 MHz) is a function of FPGA part and FPGA speed grade -
-HIGH temperature - -Normal (0-85) - -Select the operating temparature -
-DRAM IC bus width - -8 Bits - -Provide the width of the DRAM chip -
-DRAM Device Capacity - -2048 MBits - - -
-Speed Bin - -DDR3_1066F - -Provide the Speed Bin -
-BANK Address Count - -3 - -Defines the bank to which an active an ACTIVE, READ, WRITE, or Precharge Command is being applied -
-ROW Address Count - -15 - -Provide the Row address for ACTIVE commands -
-COLUMN Address Count - -10 - -Provide the Row address for READ/WRITE commands -
-CAS Latency - -7 - -Select the Column Access Strobe (CAS) Latency. It refers to the amount of time it takes for data to appear on the pins of the memory module -
-CAS Write Latency - -6 - -Select the CAS Write Latency -
-RAS to CAS Delay - -7 - -Provide the row address to column address delay time. tRCD is t he time required between the memory controller asserting a row address strobe (RAS), and then asserting the column address strobe (CAS) -
-RECHARGE Time - -7 - -Precharge Time (tRP) is the number of clock cycles needed o terminate acces s to an open row of memory, and open access to the next row -
-tRC (ns ) - -49.5 - -Provide the Row cycle time tRC (ns) -
-tRASmin ( ns ) - -36.0 - -tRASmin (ns) is the minimum number of clock cycles required between an Active command and issuing the Precharge command -
-tFAW - -30.0 - -It restricts the number of activates that can be done within a certain window of time -
-ADDITIVE Latency - -0 - -Provide the Additive Latency (ns). Increases the efficiency of the command and data bus for sustainable bandwidths -
-Write levelling - -1 - - -
-Read gate - -1 - - -
-Read gate - -1 - - -
-DQS to Clock delay [0] (ns) - -0.217 - -The daly difference of each DQS path delay subtracted from the clock path delay -
-DQS to Clock delay [1] (ns) - -0.133 - -The daly difference of each DQS path delay subtracted from the clock path delay -
-DQS to Clock delay [2] (ns) - -0.089 - -The daly difference of each DQS path delay subtracted from the clock path delay -
-DQS to Clock delay [3] (ns) - -0.248 - -The daly difference of each DQS path delay subtracted from the clock path delay -
-Board delay [0] (ns) - -0.537 - -The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) -
-Board delay [1] (ns) - -0.442 - -The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) -
-Board delay [2] (ns) - -0.464 - -The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) -
-Board delay [3] (ns) - -0.521 - -The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) -
-

PS Clocks information

-

PS Reference Clock : 33.333333

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Peripheral - -PLL source - -Frequency (MHz) -
-CPU 6x Freq (MHz) - -ARM PLL - -666.666687 -
-QSPI Flash Freq (MHz) - -IO PLL - -200.000000 -
-ENET0 Freq (MHz) - -IO PLL - -25.000000 -
-SDIO Freq (MHz) - -IO PLL - -50.000000 -
-UART Freq (MHz) - -IO PLL - -50.000000 -
-CAN Freq (MHz) - -IO PLL - -23.809523 -
-- - -CPU_1X - -111.111115 -
-- - -CPU_1X - -111.111115 -
-- - -CPU_1X - -111.111115 -
-FPGA0 Freq (MHz) - -IO PLL - -50.000000 -
-FPGA1 Freq (MHz) - -IO PLL - -50.000000 -
-FPGA2 Freq (MHz) - -IO PLL - -50.000000 -
-FPGA3 Freq (MHz) - -IO PLL - -50.000000 -
-

ps7_pll_init_data_3_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -ARM_PLL_CFG - - -0XF8000110 - -32 - -RW - -0x000000 - -ARM PLL Configuration -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_CLK_CTRL - - -0XF8000120 - -32 - -RW - -0x000000 - -CPU Clock Control -
- -DDR_PLL_CFG - - -0XF8000114 - -32 - -RW - -0x000000 - -DDR PLL Configuration -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_CLK_CTRL - - -0XF8000124 - -32 - -RW - -0x000000 - -DDR Clock Control -
- -IO_PLL_CFG - - -0XF8000118 - -32 - -RW - -0x000000 - -IO PLL Configuration -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
-

-

ps7_pll_init_data_3_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

PLL SLCR REGISTERS

-

ARM PLL INIT

-

Register ( slcr )ARM_PLL_CFG

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CFG - -0XF8000110 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RES - -7:4 - -f0 - -2 - -20 - -Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control -
-PLL_CP - -11:8 - -f00 - -2 - -200 - -Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control -
-LOCK_CNT - -21:12 - -3ff000 - -fa - -fa000 - -Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before syaing locked. -
-ARM_PLL_CFG@0XF8000110 - -31:0 - -3ffff0 - - - -fa220 - -ARM PLL Configuration -
-

-

UPDATE FB_DIV

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_FDIV - -18:12 - -7f000 - -28 - -28000 - -Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for the PLL. -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -7f000 - - - -28000 - -ARM PLL Control -
-

-

BY PASS PLL

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -1 - -10 - -ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value): 0: PLL mode is set based on pin strap setting. 1: PLL bypassed regardless of the pin strapping. -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -10 - - - -10 - -ARM PLL Control -
-

-

ASSERT RESET

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -1 - -1 - -PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -1 - - - -1 - -ARM PLL Control -
-

-

DEASSERT RESET

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -0 - -0 - -PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -1 - - - -0 - -ARM PLL Control -
-

-

CHECK PLL STATUS

-

Register ( slcr )PLL_STATUS

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PLL_STATUS - -0XF800010C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-ARM_PLL_LOCK - -0:0 - -1 - -1 - -1 - -ARM PLL lock status: 0: not locked, 1: locked -
-PLL_STATUS@0XF800010C - -31:0 - -1 - - - -1 - -tobe -
-

-

REMOVE PLL BY PASS

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -0 - -0 - -ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value): 0: PLL mode is set based on pin strap setting. 1: PLL bypassed regardless of the pin strapping. -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -10 - - - -0 - -ARM PLL Control -
-

-

Register ( slcr )ARM_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_CLK_CTRL - -0XF8000120 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the CPU clock: 0x: ARM PLL 10: DDR PLL 11: IO PLL This field is reset by POR only. -
-DIVISOR - -13:8 - -3f00 - -2 - -200 - -Frequency divisor for the CPU clock source. -
-CPU_6OR4XCLKACT - -24:24 - -1000000 - -1 - -1000000 - -CPU_6x4x Clock control: 0: disable, 1: enable -
-CPU_3OR2XCLKACT - -25:25 - -2000000 - -1 - -2000000 - -CPU_3x2x Clock control: 0: disable, 1: enable -
-CPU_2XCLKACT - -26:26 - -4000000 - -1 - -4000000 - -CPU_2x Clock control: 0: disable, 1: enable -
-CPU_1XCLKACT - -27:27 - -8000000 - -1 - -8000000 - -CPU_1x Clock control: 0: disable, 1: enable -
-CPU_PERI_CLKACT - -28:28 - -10000000 - -1 - -10000000 - -Clock active: 0: Clock is disabled 1: Clock is enabled -
-ARM_CLK_CTRL@0XF8000120 - -31:0 - -1f003f30 - - - -1f000200 - -CPU Clock Control -
-

-

DDR PLL INIT

-

Register ( slcr )DDR_PLL_CFG

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CFG - -0XF8000114 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RES - -7:4 - -f0 - -2 - -20 - -Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. -
-PLL_CP - -11:8 - -f00 - -2 - -200 - -Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. -
-LOCK_CNT - -21:12 - -3ff000 - -12c - -12c000 - -Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before staying locked. -
-DDR_PLL_CFG@0XF8000114 - -31:0 - -3ffff0 - - - -12c220 - -DDR PLL Configuration -
-

-

UPDATE FB_DIV

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_FDIV - -18:12 - -7f000 - -20 - -20000 - -Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for the PLL. -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -7f000 - - - -20000 - -DDR PLL Control -
-

-

BY PASS PLL

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -1 - -10 - -DDR PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -10 - - - -10 - -DDR PLL Control -
-

-

ASSERT RESET

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -1 - -1 - -PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -1 - - - -1 - -DDR PLL Control -
-

-

DEASSERT RESET

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -0 - -0 - -PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -1 - - - -0 - -DDR PLL Control -
-

-

CHECK PLL STATUS

-

Register ( slcr )PLL_STATUS

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PLL_STATUS - -0XF800010C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DDR_PLL_LOCK - -1:1 - -2 - -1 - -2 - -DDR PLL lock status: 0: not locked, 1: locked -
-PLL_STATUS@0XF800010C - -31:0 - -2 - - - -2 - -tobe -
-

-

REMOVE PLL BY PASS

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -0 - -0 - -DDR PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -10 - - - -0 - -DDR PLL Control -
-

-

Register ( slcr )DDR_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_CLK_CTRL - -0XF8000124 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DDR_3XCLKACT - -0:0 - -1 - -1 - -1 - -DDR_3x Clock control: 0: disable, 1: enable -
-DDR_2XCLKACT - -1:1 - -2 - -1 - -2 - -DDR_2x Clock control: 0: disable, 1: enable -
-DDR_3XCLK_DIVISOR - -25:20 - -3f00000 - -2 - -200000 - -Frequency divisor for the ddr_3x clock -
-DDR_2XCLK_DIVISOR - -31:26 - -fc000000 - -3 - -c000000 - -Frequency divisor for the ddr_2x clock -
-DDR_CLK_CTRL@0XF8000124 - -31:0 - -fff00003 - - - -c200003 - -DDR Clock Control -
-

-

IO PLL INIT

-

Register ( slcr )IO_PLL_CFG

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CFG - -0XF8000118 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RES - -7:4 - -f0 - -c - -c0 - -Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. -
-PLL_CP - -11:8 - -f00 - -2 - -200 - -Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. -
-LOCK_CNT - -21:12 - -3ff000 - -145 - -145000 - -Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before staying locked. -
-IO_PLL_CFG@0XF8000118 - -31:0 - -3ffff0 - - - -1452c0 - -IO PLL Configuration -
-

-

UPDATE FB_DIV

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_FDIV - -18:12 - -7f000 - -1e - -1e000 - -Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for programming the PLL. -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -7f000 - - - -1e000 - -IO PLL Control -
-

-

BY PASS PLL

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -1 - -10 - -IO PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -10 - - - -10 - -IO PLL Control -
-

-

ASSERT RESET

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -1 - -1 - -PLL Reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -1 - - - -1 - -IO PLL Control -
-

-

DEASSERT RESET

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -0 - -0 - -PLL Reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -1 - - - -0 - -IO PLL Control -
-

-

CHECK PLL STATUS

-

Register ( slcr )PLL_STATUS

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PLL_STATUS - -0XF800010C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IO_PLL_LOCK - -2:2 - -4 - -1 - -4 - -IO PLL lock status: 0: not locked, 1: locked -
-PLL_STATUS@0XF800010C - -31:0 - -4 - - - -4 - -tobe -
-

-

REMOVE PLL BY PASS

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -0 - -0 - -IO PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -10 - - - -0 - -IO PLL Control -
-

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

- -

-

ps7_clock_init_data_3_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -DCI_CLK_CTRL - - -0XF8000128 - -32 - -RW - -0x000000 - -DCI clock control -
- -GEM0_RCLK_CTRL - - -0XF8000138 - -32 - -RW - -0x000000 - -GigE 0 Rx Clock and Rx Signals Select -
- -GEM0_CLK_CTRL - - -0XF8000140 - -32 - -RW - -0x000000 - -GigE 0 Ref Clock Control -
- -LQSPI_CLK_CTRL - - -0XF800014C - -32 - -RW - -0x000000 - -Quad SPI Ref Clock Control -
- -SDIO_CLK_CTRL - - -0XF8000150 - -32 - -RW - -0x000000 - -SDIO Ref Clock Control -
- -UART_CLK_CTRL - - -0XF8000154 - -32 - -RW - -0x000000 - -UART Ref Clock Control -
- -CAN_CLK_CTRL - - -0XF800015C - -32 - -RW - -0x000000 - -CAN Ref Clock Control -
- -CAN_MIOCLK_CTRL - - -0XF8000160 - -32 - -RW - -0x000000 - -CAN MIO Clock Control -
- -PCAP_CLK_CTRL - - -0XF8000168 - -32 - -RW - -0x000000 - -PCAP Clock Control -
- -FPGA0_CLK_CTRL - - -0XF8000170 - -32 - -RW - -0x000000 - -PL Clock 0 Output control -
- -FPGA1_CLK_CTRL - - -0XF8000180 - -32 - -RW - -0x000000 - -PL Clock 1 Output control -
- -FPGA2_CLK_CTRL - - -0XF8000190 - -32 - -RW - -0x000000 - -PL Clock 2 output control -
- -FPGA3_CLK_CTRL - - -0XF80001A0 - -32 - -RW - -0x000000 - -PL Clock 3 output control -
- -CLK_621_TRUE - - -0XF80001C4 - -32 - -RW - -0x000000 - -CPU Clock Ratio Mode select -
- -APER_CLK_CTRL - - -0XF800012C - -32 - -RW - -0x000000 - -AMBA Peripheral Clock Control -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
-

-

ps7_clock_init_data_3_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

CLOCK CONTROL SLCR REGISTERS

-

Register ( slcr )DCI_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DCI_CLK_CTRL - -0XF8000128 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -DCI clock control - 0: disable, 1: enable -
-DIVISOR0 - -13:8 - -3f00 - -23 - -2300 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. -
-DIVISOR1 - -25:20 - -3f00000 - -3 - -300000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider -
-DCI_CLK_CTRL@0XF8000128 - -31:0 - -3f03f01 - - - -302301 - -DCI clock control -
-

-

Register ( slcr )GEM0_RCLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-GEM0_RCLK_CTRL - -0XF8000138 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -Ethernet Controler 0 Rx Clock control 0: disable, 1: enable -
-SRCSEL - -4:4 - -10 - -0 - -0 - -Select the source of the Rx clock, control and data signals: 0: MIO 1: EMIO -
-GEM0_RCLK_CTRL@0XF8000138 - -31:0 - -11 - - - -1 - -GigE 0 Rx Clock and Rx Signals Select -
-

-

Register ( slcr )GEM0_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-GEM0_CLK_CTRL - -0XF8000140 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -Ethernet Controller 0 Reference Clock control 0: disable, 1: enable -
-SRCSEL - -6:4 - -70 - -0 - -0 - -Selects the source to generate the reference clock 00x: IO PLL. 010: ARM PLL. 011: DDR PLL 1xx: Ethernet controller 0 EMIO clock -
-DIVISOR - -13:8 - -3f00 - -8 - -800 - -First divisor for Ethernet controller 0 source clock. -
-DIVISOR1 - -25:20 - -3f00000 - -5 - -500000 - -Second divisor for Ethernet controller 0 source clock. -
-GEM0_CLK_CTRL@0XF8000140 - -31:0 - -3f03f71 - - - -500801 - -GigE 0 Ref Clock Control -
-

-

Register ( slcr )LQSPI_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LQSPI_CLK_CTRL - -0XF800014C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -Quad SPI Controller Reference Clock control 0: disable, 1: enable -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select clock source generate Quad SPI clock: 0x: IO PLL, 10: ARM PLL, 11: DDR PLL -
-DIVISOR - -13:8 - -3f00 - -5 - -500 - -Divisor for Quad SPI Controller source clock. -
-LQSPI_CLK_CTRL@0XF800014C - -31:0 - -3f31 - - - -501 - -Quad SPI Ref Clock Control -
-

-

Register ( slcr )SDIO_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SDIO_CLK_CTRL - -0XF8000150 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT0 - -0:0 - -1 - -1 - -1 - -SDIO Controller 0 Clock control. 0: disable, 1: enable -
-CLKACT1 - -1:1 - -2 - -0 - -0 - -SDIO Controller 1 Clock control. 0: disable, 1: enable -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock. 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
-DIVISOR - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. -
-SDIO_CLK_CTRL@0XF8000150 - -31:0 - -3f33 - - - -1401 - -SDIO Ref Clock Control -
-

-

Register ( slcr )UART_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-UART_CLK_CTRL - -0XF8000154 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT0 - -0:0 - -1 - -0 - -0 - -UART 0 Reference clock control. 0: disable, 1: enable -
-CLKACT1 - -1:1 - -2 - -1 - -2 - -UART 1 reference clock active: 0: Clock is disabled 1: Clock is enabled -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Selects the PLL source to generate the clock. 0x: IO PLL 10: ARM PLL 11: DDR PLL -
-DIVISOR - -13:8 - -3f00 - -14 - -1400 - -Divisor for UART Controller source clock. -
-UART_CLK_CTRL@0XF8000154 - -31:0 - -3f33 - - - -1402 - -UART Ref Clock Control -
-

-

Register ( slcr )CAN_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CAN_CLK_CTRL - -0XF800015C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT0 - -0:0 - -1 - -1 - -1 - -CAN 0 Reference Clock active: 0: Clock is disabled 1: Clock is enabled -
-CLKACT1 - -1:1 - -2 - -0 - -0 - -CAN 1 Reference Clock active: 0: Clock is disabled 1: Clock is enabled -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -e - -e00 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider -
-DIVISOR1 - -25:20 - -3f00000 - -3 - -300000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider. -
-CAN_CLK_CTRL@0XF800015C - -31:0 - -3f03f33 - - - -300e01 - -CAN Ref Clock Control -
-

-

Register ( slcr )CAN_MIOCLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CAN_MIOCLK_CTRL - -0XF8000160 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CAN0_MUX - -5:0 - -3f - -0 - -0 - -CAN 0 mux selection for MIO. Setting this to zero will select MIO[0] as the clock source. Only values 0-53 are valid. -
-CAN0_REF_SEL - -6:6 - -40 - -0 - -0 - -CAN 0 Reference Clock selection: 0: From internal PLL 1: From MIO based on the next field -
-CAN1_MUX - -21:16 - -3f0000 - -0 - -0 - -CAN 1 mux selection for MIO. Setting this to zero will select MIO[0] as the clock source. Only values 0-53 are valid. -
-CAN1_REF_SEL - -22:22 - -400000 - -0 - -0 - -CAN 1 Reference Clock selection: 0: From internal PLL. 1: From MIO based on the next field -
-CAN_MIOCLK_CTRL@0XF8000160 - -31:0 - -7f007f - - - -0 - -CAN MIO Clock Control -
-

-

Register ( slcr )PCAP_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PCAP_CLK_CTRL - -0XF8000168 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -Clock active: 0: Clock is disabled 1: Clock is enabled -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
-DIVISOR - -13:8 - -3f00 - -5 - -500 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. -
-PCAP_CLK_CTRL@0XF8000168 - -31:0 - -3f31 - - - -501 - -PCAP Clock Control -
-

-

Register ( slcr )FPGA0_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA0_CLK_CTRL - -0XF8000170 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. -
-DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide -
-FPGA0_CLK_CTRL@0XF8000170 - -31:0 - -3f03f30 - - - -101400 - -PL Clock 0 Output control -
-

-

Register ( slcr )FPGA1_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA1_CLK_CTRL - -0XF8000180 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. -
-DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide -
-FPGA1_CLK_CTRL@0XF8000180 - -31:0 - -3f03f30 - - - -101400 - -PL Clock 1 Output control -
-

-

Register ( slcr )FPGA2_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA2_CLK_CTRL - -0XF8000190 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. -
-DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide -
-FPGA2_CLK_CTRL@0XF8000190 - -31:0 - -3f03f30 - - - -101400 - -PL Clock 2 output control -
-

-

Register ( slcr )FPGA3_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA3_CLK_CTRL - -0XF80001A0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. -
-DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide -
-FPGA3_CLK_CTRL@0XF80001A0 - -31:0 - -3f03f30 - - - -101400 - -PL Clock 3 output control -
-

-

Register ( slcr )CLK_621_TRUE

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CLK_621_TRUE - -0XF80001C4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLK_621_TRUE - -0:0 - -1 - -1 - -1 - -Select the CPU clock ratio: (When this register changes, no access are allowed to OCM.) 0: 4:2:1 1: 6:2:1 -
-CLK_621_TRUE@0XF80001C4 - -31:0 - -1 - - - -1 - -CPU Clock Ratio Mode select -
-

-

Register ( slcr )APER_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-APER_CLK_CTRL - -0XF800012C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DMA_CPU_2XCLKACT - -0:0 - -1 - -1 - -1 - -DMA controller AMBA Clock control 0: disable, 1: enable -
-USB0_CPU_1XCLKACT - -2:2 - -4 - -1 - -4 - -USB controller 0 AMBA Clock control 0: disable, 1: enable -
-USB1_CPU_1XCLKACT - -3:3 - -8 - -1 - -8 - -USB controller 1 AMBA Clock control 0: disable, 1: enable -
-GEM0_CPU_1XCLKACT - -6:6 - -40 - -1 - -40 - -Gigabit Ethernet 0 AMBA Clock control 0: disable, 1: enable -
-GEM1_CPU_1XCLKACT - -7:7 - -80 - -0 - -0 - -Gigabit Ethernet 1 AMBA Clock control 0: disable, 1: enable -
-SDI0_CPU_1XCLKACT - -10:10 - -400 - -1 - -400 - -SDIO controller 0 AMBA Clock 0: disable, 1: enable -
-SDI1_CPU_1XCLKACT - -11:11 - -800 - -0 - -0 - -SDIO controller 1 AMBA Clock control 0: disable, 1: enable -
-SPI0_CPU_1XCLKACT - -14:14 - -4000 - -0 - -0 - -SPI 0 AMBA Clock control 0: disable, 1: enable -
-SPI1_CPU_1XCLKACT - -15:15 - -8000 - -0 - -0 - -SPI 1 AMBA Clock control 0: disable, 1: enable -
-CAN0_CPU_1XCLKACT - -16:16 - -10000 - -1 - -10000 - -CAN 0 AMBA Clock control 0: disable, 1: enable -
-CAN1_CPU_1XCLKACT - -17:17 - -20000 - -0 - -0 - -CAN 1 AMBA Clock control 0: disable, 1: enable -
-I2C0_CPU_1XCLKACT - -18:18 - -40000 - -1 - -40000 - -I2C 0 AMBA Clock control 0: disable, 1: enable -
-I2C1_CPU_1XCLKACT - -19:19 - -80000 - -1 - -80000 - -I2C 1 AMBA Clock control 0: disable, 1: enable -
-UART0_CPU_1XCLKACT - -20:20 - -100000 - -0 - -0 - -UART 0 AMBA Clock control 0: disable, 1: enable -
-UART1_CPU_1XCLKACT - -21:21 - -200000 - -1 - -200000 - -UART 1 AMBA Clock control 0: disable, 1: enable -
-GPIO_CPU_1XCLKACT - -22:22 - -400000 - -1 - -400000 - -GPIO AMBA Clock control 0: disable, 1: enable -
-LQSPI_CPU_1XCLKACT - -23:23 - -800000 - -1 - -800000 - -Quad SPI AMBA Clock control 0: disable, 1: enable -
-SMC_CPU_1XCLKACT - -24:24 - -1000000 - -1 - -1000000 - -SMC AMBA Clock control 0: disable, 1: enable -
-APER_CLK_CTRL@0XF800012C - -31:0 - -1ffcccd - - - -1ed044d - -AMBA Peripheral Clock Control -
-

-

THIS SHOULD BE BLANK

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

- -

-

ps7_ddr_init_data_3_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -ddrc_ctrl - - -0XF8006000 - -32 - -RW - -0x000000 - -DDRC Control -
- -Two_rank_cfg - - -0XF8006004 - -32 - -RW - -0x000000 - -Two Rank Configuration -
- -HPR_reg - - -0XF8006008 - -32 - -RW - -0x000000 - -HPR Queue control -
- -LPR_reg - - -0XF800600C - -32 - -RW - -0x000000 - -LPR Queue control -
- -WR_reg - - -0XF8006010 - -32 - -RW - -0x000000 - -WR Queue control -
- -DRAM_param_reg0 - - -0XF8006014 - -32 - -RW - -0x000000 - -DRAM Parameters 0 -
- -DRAM_param_reg1 - - -0XF8006018 - -32 - -RW - -0x000000 - -DRAM Parameters 1 -
- -DRAM_param_reg2 - - -0XF800601C - -32 - -RW - -0x000000 - -DRAM Parameters 2 -
- -DRAM_param_reg3 - - -0XF8006020 - -32 - -RW - -0x000000 - -DRAM Parameters 3 -
- -DRAM_param_reg4 - - -0XF8006024 - -32 - -RW - -0x000000 - -DRAM Parameters 4 -
- -DRAM_init_param - - -0XF8006028 - -32 - -RW - -0x000000 - -DRAM Initialization Parameters -
- -DRAM_EMR_reg - - -0XF800602C - -32 - -RW - -0x000000 - -DRAM EMR2, EMR3 access -
- -DRAM_EMR_MR_reg - - -0XF8006030 - -32 - -RW - -0x000000 - -DRAM EMR, MR access -
- -DRAM_burst8_rdwr - - -0XF8006034 - -32 - -RW - -0x000000 - -DRAM Burst 8 read/write -
- -DRAM_disable_DQ - - -0XF8006038 - -32 - -RW - -0x000000 - -DRAM Disable DQ -
- -DRAM_addr_map_bank - - -0XF800603C - -32 - -RW - -0x000000 - -Row/Column address bits -
- -DRAM_addr_map_col - - -0XF8006040 - -32 - -RW - -0x000000 - -Column address bits -
- -DRAM_addr_map_row - - -0XF8006044 - -32 - -RW - -0x000000 - -Select DRAM row address bits -
- -DRAM_ODT_reg - - -0XF8006048 - -32 - -RW - -0x000000 - -DRAM ODT control -
- -phy_cmd_timeout_rddata_cpt - - -0XF8006050 - -32 - -RW - -0x000000 - -PHY command time out and read data capture FIFO -
- -DLL_calib - - -0XF8006058 - -32 - -RW - -0x000000 - -DLL calibration -
- -ODT_delay_hold - - -0XF800605C - -32 - -RW - -0x000000 - -ODT delay and ODT hold -
- -ctrl_reg1 - - -0XF8006060 - -32 - -RW - -0x000000 - -Controller 1 -
- -ctrl_reg2 - - -0XF8006064 - -32 - -RW - -0x000000 - -Controller 2 -
- -ctrl_reg3 - - -0XF8006068 - -32 - -RW - -0x000000 - -Controller 3 -
- -ctrl_reg4 - - -0XF800606C - -32 - -RW - -0x000000 - -Controller 4 -
- -ctrl_reg5 - - -0XF8006078 - -32 - -RW - -0x000000 - -Controller register 5 -
- -ctrl_reg6 - - -0XF800607C - -32 - -RW - -0x000000 - -Controller register 6 -
- -CHE_T_ZQ - - -0XF80060A4 - -32 - -RW - -0x000000 - -ZQ parameters -
- -CHE_T_ZQ_Short_Interval_Reg - - -0XF80060A8 - -32 - -RW - -0x000000 - -Misc parameters -
- -deep_pwrdwn_reg - - -0XF80060AC - -32 - -RW - -0x000000 - -Deep powerdown (LPDDR2) -
- -reg_2c - - -0XF80060B0 - -32 - -RW - -0x000000 - -Training control -
- -reg_2d - - -0XF80060B4 - -32 - -RW - -0x000000 - -Misc Debug -
- -dfi_timing - - -0XF80060B8 - -32 - -RW - -0x000000 - -DFI timing -
- -CHE_ECC_CONTROL_REG_OFFSET - - -0XF80060C4 - -32 - -RW - -0x000000 - -ECC error clear -
- -CHE_ECC_CONTROL_REG_OFFSET - - -0XF80060C4 - -32 - -RW - -0x000000 - -ECC error clear -
- -CHE_CORR_ECC_LOG_REG_OFFSET - - -0XF80060C8 - -32 - -RW - -0x000000 - -ECC error correction -
- -CHE_UNCORR_ECC_LOG_REG_OFFSET - - -0XF80060DC - -32 - -RW - -0x000000 - -ECC unrecoverable error status -
- -CHE_ECC_STATS_REG_OFFSET - - -0XF80060F0 - -32 - -RW - -0x000000 - -ECC error count -
- -ECC_scrub - - -0XF80060F4 - -32 - -RW - -0x000000 - -ECC mode/scrub -
- -phy_rcvr_enable - - -0XF8006114 - -32 - -RW - -0x000000 - -Phy receiver enable register -
- -PHY_Config - - -0XF8006118 - -32 - -RW - -0x000000 - -PHY configuration register for data slice 0. -
- -PHY_Config - - -0XF800611C - -32 - -RW - -0x000000 - -PHY configuration register for data slice 0. -
- -PHY_Config - - -0XF8006120 - -32 - -RW - -0x000000 - -PHY configuration register for data slice 0. -
- -PHY_Config - - -0XF8006124 - -32 - -RW - -0x000000 - -PHY configuration register for data slice 0. -
- -phy_init_ratio - - -0XF800612C - -32 - -RW - -0x000000 - -PHY init ratio register for data slice 0. -
- -phy_init_ratio - - -0XF8006130 - -32 - -RW - -0x000000 - -PHY init ratio register for data slice 0. -
- -phy_init_ratio - - -0XF8006134 - -32 - -RW - -0x000000 - -PHY init ratio register for data slice 0. -
- -phy_init_ratio - - -0XF8006138 - -32 - -RW - -0x000000 - -PHY init ratio register for data slice 0. -
- -phy_rd_dqs_cfg - - -0XF8006140 - -32 - -RW - -0x000000 - -PHY read DQS configuration register for data slice 0. -
- -phy_rd_dqs_cfg - - -0XF8006144 - -32 - -RW - -0x000000 - -PHY read DQS configuration register for data slice 0. -
- -phy_rd_dqs_cfg - - -0XF8006148 - -32 - -RW - -0x000000 - -PHY read DQS configuration register for data slice 0. -
- -phy_rd_dqs_cfg - - -0XF800614C - -32 - -RW - -0x000000 - -PHY read DQS configuration register for data slice 0. -
- -phy_wr_dqs_cfg - - -0XF8006154 - -32 - -RW - -0x000000 - -PHY write DQS configuration register for data slice 0. -
- -phy_wr_dqs_cfg - - -0XF8006158 - -32 - -RW - -0x000000 - -PHY write DQS configuration register for data slice 0. -
- -phy_wr_dqs_cfg - - -0XF800615C - -32 - -RW - -0x000000 - -PHY write DQS configuration register for data slice 0. -
- -phy_wr_dqs_cfg - - -0XF8006160 - -32 - -RW - -0x000000 - -PHY write DQS configuration register for data slice 0. -
- -phy_we_cfg - - -0XF8006168 - -32 - -RW - -0x000000 - -PHY FIFO write enable configuration for data slice 0. -
- -phy_we_cfg - - -0XF800616C - -32 - -RW - -0x000000 - -PHY FIFO write enable configuration for data slice 0. -
- -phy_we_cfg - - -0XF8006170 - -32 - -RW - -0x000000 - -PHY FIFO write enable configuration for data slice 0. -
- -phy_we_cfg - - -0XF8006174 - -32 - -RW - -0x000000 - -PHY FIFO write enable configuration for data slice 0. -
- -wr_data_slv - - -0XF800617C - -32 - -RW - -0x000000 - -PHY write data slave ratio config for data slice 0. -
- -wr_data_slv - - -0XF8006180 - -32 - -RW - -0x000000 - -PHY write data slave ratio config for data slice 0. -
- -wr_data_slv - - -0XF8006184 - -32 - -RW - -0x000000 - -PHY write data slave ratio config for data slice 0. -
- -wr_data_slv - - -0XF8006188 - -32 - -RW - -0x000000 - -PHY write data slave ratio config for data slice 0. -
- -reg_64 - - -0XF8006190 - -32 - -RW - -0x000000 - -Training control 2 -
- -reg_65 - - -0XF8006194 - -32 - -RW - -0x000000 - -Training control 3 -
- -page_mask - - -0XF8006204 - -32 - -RW - -0x000000 - -Page mask -
- -axi_priority_wr_port - - -0XF8006208 - -32 - -RW - -0x000000 - -AXI Priority control for write port 0. -
- -axi_priority_wr_port - - -0XF800620C - -32 - -RW - -0x000000 - -AXI Priority control for write port 0. -
- -axi_priority_wr_port - - -0XF8006210 - -32 - -RW - -0x000000 - -AXI Priority control for write port 0. -
- -axi_priority_wr_port - - -0XF8006214 - -32 - -RW - -0x000000 - -AXI Priority control for write port 0. -
- -axi_priority_rd_port - - -0XF8006218 - -32 - -RW - -0x000000 - -AXI Priority control for read port 0. -
- -axi_priority_rd_port - - -0XF800621C - -32 - -RW - -0x000000 - -AXI Priority control for read port 0. -
- -axi_priority_rd_port - - -0XF8006220 - -32 - -RW - -0x000000 - -AXI Priority control for read port 0. -
- -axi_priority_rd_port - - -0XF8006224 - -32 - -RW - -0x000000 - -AXI Priority control for read port 0. -
- -lpddr_ctrl0 - - -0XF80062A8 - -32 - -RW - -0x000000 - -LPDDR2 Control 0 -
- -lpddr_ctrl1 - - -0XF80062AC - -32 - -RW - -0x000000 - -LPDDR2 Control 1 -
- -lpddr_ctrl2 - - -0XF80062B0 - -32 - -RW - -0x000000 - -LPDDR2 Control 2 -
- -lpddr_ctrl3 - - -0XF80062B4 - -32 - -RW - -0x000000 - -LPDDR2 Control 3 -
- -ddrc_ctrl - - -0XF8006000 - -32 - -RW - -0x000000 - -DDRC Control -
-

-

ps7_ddr_init_data_3_0

- - - - - - - - - -

DDR INITIALIZATION

-

LOCK DDR

-

Register ( slcr )ddrc_ctrl

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ddrc_ctrl - -0XF8006000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_soft_rstb - -0:0 - -1 - -0 - -0 - -Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. -
-reg_ddrc_powerdown_en - -1:1 - -2 - -0 - -0 - -Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable -
-reg_ddrc_data_bus_width - -3:2 - -c - -0 - -0 - -DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved -
-reg_ddrc_burst8_refresh - -6:4 - -70 - -0 - -0 - -Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh -
-reg_ddrc_rdwr_idle_gap - -13:7 - -3f80 - -1 - -80 - -When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. -
-reg_ddrc_dis_rd_bypass - -14:14 - -4000 - -0 - -0 - -Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. -
-reg_ddrc_dis_act_bypass - -15:15 - -8000 - -0 - -0 - -Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. -
-reg_ddrc_dis_auto_refresh - -16:16 - -10000 - -0 - -0 - -Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. -
-ddrc_ctrl@0XF8006000 - -31:0 - -1ffff - - - -80 - -DDRC Control -
-

-

Register ( slcr )Two_rank_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Two_rank_cfg - -0XF8006004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_t_rfc_nom_x32 - -11:0 - -fff - -81 - -81 - -tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM related. Default value is set for DDR3. Dynamic Bit Field. -
-reserved_reg_ddrc_active_ranks - -13:12 - -3000 - -1 - -1000 - -Reserved. Do not modify. -
-reg_ddrc_addrmap_cs_bit0 - -18:14 - -7c000 - -0 - -0 - -Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. -
-Two_rank_cfg@0XF8006004 - -31:0 - -7ffff - - - -1081 - -Two Rank Configuration -
-

-

Register ( slcr )HPR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-HPR_reg - -0XF8006008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_hpr_min_non_critical_x32 - -10:0 - -7ff - -f - -f - -Number of counts that the HPR queue is guaranteed to be non-critical (1 count = 32 DDR clocks). -
-reg_ddrc_hpr_max_starve_x32 - -21:11 - -3ff800 - -f - -7800 - -Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks -
-reg_ddrc_hpr_xact_run_length - -25:22 - -3c00000 - -f - -3c00000 - -Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. -
-HPR_reg@0XF8006008 - -31:0 - -3ffffff - - - -3c0780f - -HPR Queue control -
-

-

Register ( slcr )LPR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LPR_reg - -0XF800600C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_lpr_min_non_critical_x32 - -10:0 - -7ff - -1 - -1 - -Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks -
-reg_ddrc_lpr_max_starve_x32 - -21:11 - -3ff800 - -2 - -1000 - -Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks -
-reg_ddrc_lpr_xact_run_length - -25:22 - -3c00000 - -8 - -2000000 - -Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available -
-LPR_reg@0XF800600C - -31:0 - -3ffffff - - - -2001001 - -LPR Queue control -
-

-

Register ( slcr )WR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-WR_reg - -0XF8006010 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_w_min_non_critical_x32 - -10:0 - -7ff - -1 - -1 - -Number of clock cycles that the WR queue is guaranteed to be non-critical. -
-reg_ddrc_w_xact_run_length - -14:11 - -7800 - -8 - -4000 - -Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available -
-reg_ddrc_w_max_starve_x32 - -25:15 - -3ff8000 - -2 - -10000 - -Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. -
-WR_reg@0XF8006010 - -31:0 - -3ffffff - - - -14001 - -WR Queue control -
-

-

Register ( slcr )DRAM_param_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg0 - -0XF8006014 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_t_rc - -5:0 - -3f - -1b - -1b - -tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM Related. Default value is set for DDR3. -
-reg_ddrc_t_rfc_min - -13:6 - -3fc0 - -56 - -1580 - -tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75nS to 195nS). DRAM Related. Default value is set for DDR3. Dynamic Bit Field. -
-reg_ddrc_post_selfref_gap_x32 - -20:14 - -1fc000 - -10 - -40000 - -Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks. DRAM Related -
-DRAM_param_reg0@0XF8006014 - -31:0 - -1fffff - - - -4159b - -DRAM Parameters 0 -
-

-

Register ( slcr )DRAM_param_reg1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg1 - -0XF8006018 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_wr2pre - -4:0 - -1f - -12 - -12 - -Minimum time between write and precharge to same bank DDR and DDR3: WL + BL/2 + tWR LPDDR2: WL + BL/2 + tWR + 1 Unit: Clocks where, WL: write latency. BL: burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR: write recovery time. This comes directly from the DRAM specs. -
-reg_ddrc_powerdown_to_x32 - -9:5 - -3e0 - -6 - -c0 - -After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. -
-reg_ddrc_t_faw - -15:10 - -fc00 - -10 - -4000 - -tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks. DRAM Related. -
-reg_ddrc_t_ras_max - -21:16 - -3f0000 - -24 - -240000 - -tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec is 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM related. -
-reg_ddrc_t_ras_min - -26:22 - -7c00000 - -14 - -5000000 - -tRAS(min) - Minimum time between activate and precharge to the same bank (spec is 45 ns). Unit: clocks DRAM related. Default value is set for DDR3. -
-reg_ddrc_t_cke - -31:28 - -f0000000 - -4 - -40000000 - -Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. DDR2 and DDR3: Set this to tCKE value. LPDDR2: Set this to the larger of tCKE or tCKESR. Unit: clocks. -
-DRAM_param_reg1@0XF8006018 - -31:0 - -f7ffffff - - - -452440d2 - -DRAM Parameters 1 -
-

-

Register ( slcr )DRAM_param_reg2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg2 - -0XF800601C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_write_latency - -4:0 - -1f - -5 - -5 - -Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2 and DDR3: WL -1 LPDDR2: WL Where WL: Write Latency of DRAM DRAM related. In non-LPDDR mode, the minimum DRAM Write Latency (DDR2) supported is 3. In LPDDR mode, the required DRAM Write Latency of 1 is supported. Since write latency (CWL) min is 3, and DDR2 CWL is CL-1, the min (DDR2) CL supported is 4 -
-reg_ddrc_rd2wr - -9:5 - -3e0 - -7 - -e0 - -Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. DDR2 and DDR3: RL + BL/2 + 2 - WL LPDDR2: RL + BL/2 + RU (tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. -
-reg_ddrc_wr2rd - -14:10 - -7c00 - -e - -3800 - -Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. DDR2 and DDR3: WL + tWTR + BL/2 LPDDR2: WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL: Write latency, BL: burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR: internal WRITE to READ command delay. This comes directly from the DRAM specs. -
-reg_ddrc_t_xp - -19:15 - -f8000 - -4 - -20000 - -tXP: Minimum time after power down exit to any operation. DRAM related. -
-reg_ddrc_pad_pd - -22:20 - -700000 - -0 - -0 - -If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. -
-reg_ddrc_rd2pre - -27:23 - -f800000 - -4 - -2000000 - -Minimum time from read to precharge of same bank DDR2: AL + BL/2 + max(tRTP, 2) - 2 DDR3: AL + max (tRTP, 4) LPDDR2: BL/2 + tRTP - 1 AL: Additive Latency; BL: DRAM Burst Length; tRTP: value from spec. DRAM related. -
-reg_ddrc_t_rcd - -31:28 - -f0000000 - -7 - -70000000 - -tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency. DRAM Related. -
-DRAM_param_reg2@0XF800601C - -31:0 - -ffffffff - - - -720238e5 - -DRAM Parameters 2 -
-

-

Register ( slcr )DRAM_param_reg3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg3 - -0XF8006020 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_t_ccd - -4:2 - -1c - -4 - -10 - -tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1. DRAM related. -
-reg_ddrc_t_rrd - -7:5 - -e0 - -4 - -80 - -tRRD - Minimum time between activates from bank A to bank B. (spec: 10ns or less) DRAM RELATED -
-reg_ddrc_refresh_margin - -11:8 - -f00 - -2 - -200 - -Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. -
-reg_ddrc_t_rp - -15:12 - -f000 - -7 - -7000 - -tRP - Minimum time from precharge to activate of same bank. DRAM RELATED -
-reg_ddrc_refresh_to_x32 - -20:16 - -1f0000 - -8 - -80000 - -If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. Dynamic Bit Field. -
-reg_ddrc_mobile - -22:22 - -400000 - -0 - -0 - -0: DDR2 or DDR3 device. 1: LPDDR2 device. -
-reg_ddrc_en_dfi_dram_clk_disable - -23:23 - -800000 - -0 - -0 - -Enables the assertion of ddrc_dfi_dram_clk_disable. In DDR2/DDR3, only asserted in Self Refresh. In mDDR/LPDDR2, can be asserted in following: - during normal operation (Clock Stop), - in Power Down - in Self Refresh - In Deep Power Down -
-reg_ddrc_read_latency - -28:24 - -1f000000 - -7 - -7000000 - -Non-LPDDR2: not used. DDR2 and DDR3: Set to Read Latency, RL. Time from Read command to Read data on DRAM interface. It is used to calculate when DRAM clock may be stopped. Unit: DDR clock. -
-reg_phy_mode_ddr1_ddr2 - -29:29 - -20000000 - -1 - -20000000 - -unused -
-reg_ddrc_dis_pad_pd - -30:30 - -40000000 - -0 - -0 - -1: disable the pad power down feature 0: Enable the pad power down feature. -
-DRAM_param_reg3@0XF8006020 - -31:0 - -7fdffffc - - - -27087290 - -DRAM Parameters 3 -
-

-

Register ( slcr )DRAM_param_reg4

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg4 - -0XF8006024 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_en_2t_timing_mode - -0:0 - -1 - -0 - -0 - -1: DDRC will use 2T timing 0: DDRC will use 1T timing -
-reg_ddrc_prefer_write - -1:1 - -2 - -0 - -0 - -1: Bank selector prefers writes over reads -
-reg_ddrc_mr_wr - -6:6 - -40 - -0 - -0 - -A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and "ddrc_reg_mr_wr_busy" is detected low. -
-reg_ddrc_mr_addr - -8:7 - -180 - -0 - -0 - -DDR2 and DDR3: Mode register address. LPDDR2: not used. 00: MR0 01: MR1 10: MR2 11: MR3 -
-reg_ddrc_mr_data - -24:9 - -1fffe00 - -0 - -0 - -DDR2 and DDR3: Mode register write data. LPDDR2: The 16 bits are interpreted for reads and writes: Reads: MR Addr[7:0], Don't Care[7:0]. Writes: MR Addf[7:0], MR Data[7:0]. -
-ddrc_reg_mr_wr_busy - -25:25 - -2000000 - -0 - -0 - -Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 0: Indicates that the core can initiate a mode register write / read operation. 1: Indicates that mode register write / read operation is in progress. -
-reg_ddrc_mr_type - -26:26 - -4000000 - -0 - -0 - -Indicates whether the Mode register operation is read or write 0: write 1: read -
-reg_ddrc_mr_rdata_valid - -27:27 - -8000000 - -0 - -0 - -This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 0 by default. This bit will be cleared (0), whenever a Mode Register Read command is issued. This bit will be set to 1, when the Mode Register Read Data is written to register 0xA9. -
-DRAM_param_reg4@0XF8006024 - -31:0 - -fffffc3 - - - -0 - -DRAM Parameters 4 -
-

-

Register ( slcr )DRAM_init_param

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_init_param - -0XF8006028 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_final_wait_x32 - -6:0 - -7f - -7 - -7 - -Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. -
-reg_ddrc_pre_ocd_x32 - -10:7 - -780 - -0 - -0 - -Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. -
-reg_ddrc_t_mrd - -13:11 - -3800 - -4 - -2000 - -tMRD - Cycles between Load Mode commands. DRAM related. Default value is set for DDR3. -
-DRAM_init_param@0XF8006028 - -31:0 - -3fff - - - -2007 - -DRAM Initialization Parameters -
-

-

Register ( slcr )DRAM_EMR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_EMR_reg - -0XF800602C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_emr2 - -15:0 - -ffff - -8 - -8 - -DDR2: Value loaded into EMR2 register DDR3: Value loaded into MR2 register LPDDR2: Value loaded into MR3 register -
-reg_ddrc_emr3 - -31:16 - -ffff0000 - -0 - -0 - -DDR2: Value loaded into EMR3 register DDR3: Value loaded into MR3 register. Set Bit[2:0] to 3'b000. These bits are set appropriately by the Controller during Read Data eye training and Read DQS gate leveling. LPDDR2: Unused -
-DRAM_EMR_reg@0XF800602C - -31:0 - -ffffffff - - - -8 - -DRAM EMR2, EMR3 access -
-

-

Register ( slcr )DRAM_EMR_MR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_EMR_MR_reg - -0XF8006030 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_mr - -15:0 - -ffff - -930 - -930 - -DDR2: Value loaded into MR register. (Bit[8] is for DLL and the setting here is ignored. Controller sets this bit appropriately DDR3: Value loaded into MR0 register. LPDDR2: Value loaded into MR1 register -
-reg_ddrc_emr - -31:16 - -ffff0000 - -4 - -40000 - -DDR2: Value loaded into EMR1register. (Bits[9:7] are for OCD and the setting in this reg is ignored. Controller sets this bits appropriately during initialization DDR3: Value loaded into MR1 register. Set Bit[7] to 0. This bit is set appropriately by the Controller during Write Leveling LPDDR2: Value loaded into MR2 register -
-DRAM_EMR_MR_reg@0XF8006030 - -31:0 - -ffffffff - - - -40930 - -DRAM EMR, MR access -
-

-

Register ( slcr )DRAM_burst8_rdwr

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_burst8_rdwr - -0XF8006034 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_burst_rdwr - -3:0 - -f - -4 - -4 - -Controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. 0010: Burst length of 4 0100: Burst length of 8 1000: Burst length of 16 (LPDDR2 with ___-bit data) All other values are reserved -
-reg_ddrc_pre_cke_x1024 - -13:4 - -3ff0 - -105 - -1050 - -Clock cycles to wait after a DDR software reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 uS. LPDDR2 - tINIT0 of 20 mS (max) + tINIT1 of 100 nS (min) -
-reg_ddrc_post_cke_x1024 - -25:16 - -3ff0000 - -1 - -10000 - -Clock cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. -
-reg_ddrc_burstchop - -28:28 - -10000000 - -0 - -0 - -Feature not supported. When 1, Controller is out in burstchop mode. -
-DRAM_burst8_rdwr@0XF8006034 - -31:0 - -13ff3fff - - - -11054 - -DRAM Burst 8 read/write -
-

-

Register ( slcr )DRAM_disable_DQ

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_disable_DQ - -0XF8006038 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_force_low_pri_n - -0:0 - -1 - -0 - -0 - -Read Transaction Priority disable. 0: read transactions forced to low priority (turns off Bypass). 1: HPR reads allowed if enabled in the AXI priority read registers. -
-reg_ddrc_dis_dq - -1:1 - -2 - -0 - -0 - -When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. Dynamic Bit Field. -
-DRAM_disable_DQ@0XF8006038 - -31:0 - -3 - - - -0 - -DRAM Disable DQ -
-

-

Register ( slcr )DRAM_addr_map_bank

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_addr_map_bank - -0XF800603C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_addrmap_bank_b0 - -3:0 - -f - -7 - -7 - -Selects the address bits used as bank address bit 0. Valid Range: 0 to 14. Internal Base: 5. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_bank_b1 - -7:4 - -f0 - -7 - -70 - -Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_bank_b2 - -11:8 - -f00 - -7 - -700 - -Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. -
-reg_ddrc_addrmap_col_b5 - -15:12 - -f000 - -0 - -0 - -Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_col_b6 - -19:16 - -f0000 - -0 - -0 - -Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. -
-DRAM_addr_map_bank@0XF800603C - -31:0 - -fffff - - - -777 - -Row/Column address bits -
-

-

Register ( slcr )DRAM_addr_map_col

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_addr_map_col - -0XF8006040 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_addrmap_col_b2 - -3:0 - -f - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_col_b3 - -7:4 - -f0 - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_col_b4 - -11:8 - -f00 - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_col_b7 - -15:12 - -f000 - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-reg_ddrc_addrmap_col_b8 - -19:16 - -f0000 - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-reg_ddrc_addrmap_col_b9 - -23:20 - -f00000 - -f - -f00000 - -Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-reg_ddrc_addrmap_col_b10 - -27:24 - -f000000 - -f - -f000000 - -Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-reg_ddrc_addrmap_col_b11 - -31:28 - -f0000000 - -f - -f0000000 - -Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-DRAM_addr_map_col@0XF8006040 - -31:0 - -ffffffff - - - -fff00000 - -Column address bits -
-

-

Register ( slcr )DRAM_addr_map_row

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_addr_map_row - -0XF8006044 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_addrmap_row_b0 - -3:0 - -f - -6 - -6 - -Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field -
-reg_ddrc_addrmap_row_b1 - -7:4 - -f0 - -6 - -60 - -Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_row_b2_11 - -11:8 - -f00 - -6 - -600 - -Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_row_b12 - -15:12 - -f000 - -6 - -6000 - -Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 8, Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. -
-reg_ddrc_addrmap_row_b13 - -19:16 - -f0000 - -6 - -60000 - -Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 7, Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. -
-reg_ddrc_addrmap_row_b14 - -23:20 - -f00000 - -6 - -600000 - -Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 6, Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. -
-reg_ddrc_addrmap_row_b15 - -27:24 - -f000000 - -f - -f000000 - -Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 5, Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. -
-DRAM_addr_map_row@0XF8006044 - -31:0 - -fffffff - - - -f666666 - -Select DRAM row address bits -
-

-

Register ( slcr )DRAM_ODT_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_ODT_reg - -0XF8006048 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_local_odt - -13:12 - -3000 - -0 - -0 - -Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. -
-reg_phy_wr_local_odt - -15:14 - -c000 - -3 - -c000 - -Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. -
-reg_phy_idle_local_odt - -17:16 - -30000 - -3 - -30000 - -Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. -
-DRAM_ODT_reg@0XF8006048 - -31:0 - -3f000 - - - -3c000 - -DRAM ODT control -
-

-

Register ( slcr )phy_cmd_timeout_rddata_cpt

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_cmd_timeout_rddata_cpt - -0XF8006050 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_cmd_to_data - -3:0 - -f - -0 - -0 - -Not used in DFI PHY. -
-reg_phy_wr_cmd_to_data - -7:4 - -f0 - -0 - -0 - -Not used in DFI PHY. -
-reg_phy_rdc_we_to_re_delay - -11:8 - -f00 - -8 - -800 - -This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. -
-reg_phy_rdc_fifo_rst_disable - -15:15 - -8000 - -0 - -0 - -When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. -
-reg_phy_use_fixed_re - -16:16 - -10000 - -1 - -10000 - -When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. -
-reg_phy_rdc_fifo_rst_err_cnt_clr - -17:17 - -20000 - -0 - -0 - -Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. -
-reg_phy_dis_phy_ctrl_rstn - -18:18 - -40000 - -0 - -0 - -Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. -
-reg_phy_clk_stall_level - -19:19 - -80000 - -0 - -0 - -1: stall clock, for DLL aging control -
-reg_phy_gatelvl_num_of_dq0 - -27:24 - -f000000 - -7 - -7000000 - -This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. -
-reg_phy_wrlvl_num_of_dq0 - -31:28 - -f0000000 - -7 - -70000000 - -This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. -
-phy_cmd_timeout_rddata_cpt@0XF8006050 - -31:0 - -ff0f8fff - - - -77010800 - -PHY command time out and read data capture FIFO -
-

-

Register ( slcr )DLL_calib

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DLL_calib - -0XF8006058 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_dis_dll_calib - -16:16 - -10000 - -0 - -0 - -When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically -
-DLL_calib@0XF8006058 - -31:0 - -10000 - - - -0 - -DLL calibration -
-

-

Register ( slcr )ODT_delay_hold

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ODT_delay_hold - -0XF800605C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_rd_odt_delay - -3:0 - -f - -3 - -3 - -UNUSED -
-reg_ddrc_wr_odt_delay - -7:4 - -f0 - -0 - -0 - -The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable to LPDDR2. -
-reg_ddrc_rd_odt_hold - -11:8 - -f00 - -0 - -0 - -Unused -
-reg_ddrc_wr_odt_hold - -15:12 - -f000 - -5 - -5000 - -Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 -
-ODT_delay_hold@0XF800605C - -31:0 - -ffff - - - -5003 - -ODT delay and ODT hold -
-

-

Register ( slcr )ctrl_reg1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg1 - -0XF8006060 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_pageclose - -0:0 - -1 - -0 - -0 - -If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. -
-reg_ddrc_lpr_num_entries - -6:1 - -7e - -1f - -3e - -Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. -
-reg_ddrc_auto_pre_en - -7:7 - -80 - -0 - -0 - -When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) -
-reg_ddrc_refresh_update_level - -8:8 - -100 - -0 - -0 - -Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. Dynamic Bit Field. -
-reg_ddrc_dis_wc - -9:9 - -200 - -0 - -0 - -Disable Write Combine: 0: enable 1: disable -
-reg_ddrc_dis_collision_page_opt - -10:10 - -400 - -0 - -0 - -When this is set to 0, auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). -
-reg_ddrc_selfref_en - -12:12 - -1000 - -0 - -0 - -If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. Dynamic Bit Field. -
-ctrl_reg1@0XF8006060 - -31:0 - -17ff - - - -3e - -Controller 1 -
-

-

Register ( slcr )ctrl_reg2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg2 - -0XF8006064 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_go2critical_hysteresis - -12:5 - -1fe0 - -0 - -0 - -Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. -
-reg_arb_go2critical_en - -17:17 - -20000 - -1 - -20000 - -0: Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 0. 1: Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on Urgent input coming from AXI master. -
-ctrl_reg2@0XF8006064 - -31:0 - -21fe0 - - - -20000 - -Controller 2 -
-

-

Register ( slcr )ctrl_reg3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg3 - -0XF8006068 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_wrlvl_ww - -7:0 - -ff - -41 - -41 - -DDR2: not applicable. LPDDR2 and DDR3: Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) -
-reg_ddrc_rdlvl_rr - -15:8 - -ff00 - -41 - -4100 - -DDR2 and LPDDR2: not applicable. DDR3: Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. -
-reg_ddrc_dfi_t_wlmrd - -25:16 - -3ff0000 - -28 - -280000 - -DDR2 and LPDDR2: not applicable. DDR3: First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. -
-ctrl_reg3@0XF8006068 - -31:0 - -3ffffff - - - -284141 - -Controller 3 -
-

-

Register ( slcr )ctrl_reg4

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg4 - -0XF800606C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-dfi_t_ctrlupd_interval_min_x1024 - -7:0 - -ff - -10 - -10 - -This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks -
-dfi_t_ctrlupd_interval_max_x1024 - -15:8 - -ff00 - -16 - -1600 - -This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks -
-ctrl_reg4@0XF800606C - -31:0 - -ffff - - - -1610 - -Controller 4 -
-

-

Register ( slcr )ctrl_reg5

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg5 - -0XF8006078 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_dfi_t_ctrl_delay - -3:0 - -f - -1 - -1 - -Specifies the number of DFI clock cycles after an assertion or deassertion of the DFI control signals that the control signals at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligned, this timing parameter should be rounded up to the next integer value. -
-reg_ddrc_dfi_t_dram_clk_disable - -7:4 - -f0 - -1 - -10 - -Specifies the number of DFI clock cycles from the assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the clock to the DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. -
-reg_ddrc_dfi_t_dram_clk_enable - -11:8 - -f00 - -1 - -100 - -Specifies the number of DFI clock cycles from the de-assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the first valid rising edge of the clock to the DRAM memory devices at the PHY-DRAM boundary. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. -
-reg_ddrc_t_cksre - -15:12 - -f000 - -6 - -6000 - -This is the time after Self Refresh Entry that CK is maintained as a valid clock. Specifies the clock disable delay after SRE. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRE -
-reg_ddrc_t_cksrx - -19:16 - -f0000 - -6 - -60000 - -This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stable time before SRX. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRX -
-reg_ddrc_t_ckesr - -25:20 - -3f00000 - -4 - -400000 - -Minimum CKE low width for Self Refresh entry to exit Timing in memory clock cycles. Recommended settings: LPDDR2: tCKESR DDR2: tCKE DDR3: tCKE+1 -
-ctrl_reg5@0XF8006078 - -31:0 - -3ffffff - - - -466111 - -Controller register 5 -
-

-

Register ( slcr )ctrl_reg6

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg6 - -0XF800607C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_t_ckpde - -3:0 - -f - -2 - -2 - -This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. Recommended setting for LPDDR2: 2. -
-reg_ddrc_t_ckpdx - -7:4 - -f0 - -2 - -20 - -This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable time before PDX. Recommended setting for LPDDR2: 2. -
-reg_ddrc_t_ckdpde - -11:8 - -f00 - -2 - -200 - -This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after DPDE. Recommended setting for LPDDR2: 2. -
-reg_ddrc_t_ckdpdx - -15:12 - -f000 - -2 - -2000 - -This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before DPDX. Recommended setting for LPDDR2: 2. -
-reg_ddrc_t_ckcsx - -19:16 - -f0000 - -3 - -30000 - -This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before next command after Clock Stop Exit. Recommended setting for LPDDR2: tXP + 2. -
-ctrl_reg6@0XF800607C - -31:0 - -fffff - - - -32222 - -Controller register 6 -
-

-

Register ( slcr )CHE_T_ZQ

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_T_ZQ - -0XF80060A4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_dis_auto_zq - -0:0 - -1 - -0 - -0 - -1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. -
-reg_ddrc_ddr3 - -1:1 - -2 - -1 - -2 - -Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. -
-reg_ddrc_t_mod - -11:2 - -ffc - -200 - -800 - -Mode register set command update delay (minimum d'128) -
-reg_ddrc_t_zq_long_nop - -21:12 - -3ff000 - -200 - -200000 - -DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles. -
-reg_ddrc_t_zq_short_nop - -31:22 - -ffc00000 - -40 - -10000000 - -DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles. -
-CHE_T_ZQ@0XF80060A4 - -31:0 - -ffffffff - - - -10200802 - -ZQ parameters -
-

-

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_T_ZQ_Short_Interval_Reg - -0XF80060A8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-t_zq_short_interval_x1024 - -19:0 - -fffff - -cb73 - -cb73 - -DDR2: not used. LPDDR2 and DDR3: Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. -
-dram_rstn_x1024 - -27:20 - -ff00000 - -69 - -6900000 - -Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. -
-CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 - -31:0 - -fffffff - - - -690cb73 - -Misc parameters -
-

-

Register ( slcr )deep_pwrdwn_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-deep_pwrdwn_reg - -0XF80060AC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-deeppowerdown_en - -0:0 - -1 - -0 - -0 - -DDR2 and DDR3: not used. LPDDR2: 0: Brings Controller out of Deep Powerdown mode. 1: Puts DRAM into Deep Powerdown mode when the transaction store is empty. For performance only. Dynamic Bit Field. -
-deeppowerdown_to_x1024 - -8:1 - -1fe - -ff - -1fe - -DDR2 and DDR3: not sued. LPDDR2: Minimum deep power down time. DDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. Value from the spec is 500us. Units are in 1024 clock cycles. For performance only. -
-deep_pwrdwn_reg@0XF80060AC - -31:0 - -1ff - - - -1fe - -Deep powerdown (LPDDR2) -
-

-

Register ( slcr )reg_2c

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-reg_2c - -0XF80060B0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-dfi_wrlvl_max_x1024 - -11:0 - -fff - -fff - -fff - -Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks -
-dfi_rdlvl_max_x1024 - -23:12 - -fff000 - -fff - -fff000 - -Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks -
-ddrc_reg_twrlvl_max_error - -24:24 - -1000000 - -0 - -0 - -When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. -
-ddrc_reg_trdlvl_max_error - -25:25 - -2000000 - -0 - -0 - -DDR2: not applicable. LPDDR2 and DDR3: When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. -
-reg_ddrc_dfi_wr_level_en - -26:26 - -4000000 - -1 - -4000000 - -0: Write leveling disabled. 1: Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs -
-reg_ddrc_dfi_rd_dqs_gate_level - -27:27 - -8000000 - -1 - -8000000 - -0: Read DQS gate leveling is disabled. 1: Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs -
-reg_ddrc_dfi_rd_data_eye_train - -28:28 - -10000000 - -1 - -10000000 - -DDR2: not applicable. LPDDR2 and DDR3: 0: 1: Read Data Eye training mode has been enabled as part of init sequence. -
-reg_2c@0XF80060B0 - -31:0 - -1fffffff - - - -1cffffff - -Training control -
-

-

Register ( slcr )reg_2d

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-reg_2d - -0XF80060B4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_skip_ocd - -9:9 - -200 - -1 - -200 - -This register must be kept at 1'b1. 1'b0 is NOT supported. 1: Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0: Not supported. -
-reg_2d@0XF80060B4 - -31:0 - -200 - - - -200 - -Misc Debug -
-

-

Register ( slcr )dfi_timing

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-dfi_timing - -0XF80060B8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_dfi_t_rddata_en - -4:0 - -1f - -6 - -6 - -Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. DDR2 and DDR3: RL - 1 LPDDR: RL Where RL is read latency of DRAM. -
-reg_ddrc_dfi_t_ctrlup_min - -14:5 - -7fe0 - -3 - -60 - -Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. -
-reg_ddrc_dfi_t_ctrlup_max - -24:15 - -1ff8000 - -40 - -200000 - -Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. -
-dfi_timing@0XF80060B8 - -31:0 - -1ffffff - - - -200066 - -DFI timing -
-

-

RESET ECC ERROR

-

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_ECC_CONTROL_REG_OFFSET - -0XF80060C4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-Clear_Uncorrectable_DRAM_ECC_error - -0:0 - -1 - -1 - -1 - -Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. -
-Clear_Correctable_DRAM_ECC_error - -1:1 - -2 - -1 - -2 - -Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. -
-CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 - -31:0 - -3 - - - -3 - -ECC error clear -
-

-

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_ECC_CONTROL_REG_OFFSET - -0XF80060C4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-Clear_Uncorrectable_DRAM_ECC_error - -0:0 - -1 - -0 - -0 - -Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. -
-Clear_Correctable_DRAM_ECC_error - -1:1 - -2 - -0 - -0 - -Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. -
-CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 - -31:0 - -3 - - - -0 - -ECC error clear -
-

-

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_CORR_ECC_LOG_REG_OFFSET - -0XF80060C8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CORR_ECC_LOG_VALID - -0:0 - -1 - -0 - -0 - -Set to 1 when a correctable ECC error is captured. As long as this is 1 no further ECC errors will be captured. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x31) -
-ECC_CORRECTED_BIT_NUM - -7:1 - -fe - -0 - -0 - -Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. -
-CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 - -31:0 - -ff - - - -0 - -ECC error correction -
-

-

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_UNCORR_ECC_LOG_REG_OFFSET - -0XF80060DC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNCORR_ECC_LOG_VALID - -0:0 - -1 - -0 - -0 - -Set to 1 when an uncorrectable ECC error is captured. As long as this is a 1, no further ECC errors will be captured. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x31). -
-CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC - -31:0 - -1 - - - -0 - -ECC unrecoverable error status -
-

-

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_ECC_STATS_REG_OFFSET - -0XF80060F0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-STAT_NUM_CORR_ERR - -15:8 - -ff00 - -0 - -0 - -Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x58). -
-STAT_NUM_UNCORR_ERR - -7:0 - -ff - -0 - -0 - -Returns the number of uncorrectable errors since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x58). -
-CHE_ECC_STATS_REG_OFFSET@0XF80060F0 - -31:0 - -ffff - - - -0 - -ECC error count -
-

-

Register ( slcr )ECC_scrub

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ECC_scrub - -0XF80060F4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_ecc_mode - -2:0 - -7 - -0 - -0 - -DRAM ECC Mode. The only valid values that works for this project are 000 (No ECC) and 100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 : No ECC, 001: Reserved 010: Parity 011: Reserved 100: SEC/DED over 1-beat 101: SEC/DED over multiple beats 110: Device Correction 111: Reserved -
-reg_ddrc_dis_scrub - -3:3 - -8 - -1 - -8 - -0: Enable ECC scrubs (valid only when reg_ddrc_ecc_mode = 100). 1: Disable ECC scrubs -
-ECC_scrub@0XF80060F4 - -31:0 - -f - - - -8 - -ECC mode/scrub -
-

-

Register ( slcr )phy_rcvr_enable

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rcvr_enable - -0XF8006114 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_dif_on - -3:0 - -f - -0 - -0 - -Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. -
-reg_phy_dif_off - -7:4 - -f0 - -0 - -0 - -Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. -
-phy_rcvr_enable@0XF8006114 - -31:0 - -ff - - - -0 - -Phy receiver enable register -
-

-

Register ( slcr )PHY_Config

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PHY_Config - -0XF8006118 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_data_slice_in_use - -0:0 - -1 - -1 - -1 - -Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. -
-reg_phy_rdlvl_inc_mode - -1:1 - -2 - -0 - -0 - -reserved -
-reg_phy_gatelvl_inc_mode - -2:2 - -4 - -0 - -0 - -reserved -
-reg_phy_wrlvl_inc_mode - -3:3 - -8 - -0 - -0 - -reserved -
-reg_phy_bist_shift_dq - -14:6 - -7fc0 - -0 - -0 - -Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. -
-reg_phy_bist_err_clr - -23:15 - -ff8000 - -0 - -0 - -Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared -
-reg_phy_dq_offset - -30:24 - -7f000000 - -40 - -40000000 - -Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. -
-PHY_Config@0XF8006118 - -31:0 - -7fffffcf - - - -40000001 - -PHY configuration register for data slice 0. -
-

-

Register ( slcr )PHY_Config

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PHY_Config - -0XF800611C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_data_slice_in_use - -0:0 - -1 - -1 - -1 - -Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. -
-reg_phy_rdlvl_inc_mode - -1:1 - -2 - -0 - -0 - -reserved -
-reg_phy_gatelvl_inc_mode - -2:2 - -4 - -0 - -0 - -reserved -
-reg_phy_wrlvl_inc_mode - -3:3 - -8 - -0 - -0 - -reserved -
-reg_phy_bist_shift_dq - -14:6 - -7fc0 - -0 - -0 - -Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. -
-reg_phy_bist_err_clr - -23:15 - -ff8000 - -0 - -0 - -Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared -
-reg_phy_dq_offset - -30:24 - -7f000000 - -40 - -40000000 - -Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. -
-PHY_Config@0XF800611C - -31:0 - -7fffffcf - - - -40000001 - -PHY configuration register for data slice 0. -
-

-

Register ( slcr )PHY_Config

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PHY_Config - -0XF8006120 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_data_slice_in_use - -0:0 - -1 - -1 - -1 - -Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. -
-reg_phy_rdlvl_inc_mode - -1:1 - -2 - -0 - -0 - -reserved -
-reg_phy_gatelvl_inc_mode - -2:2 - -4 - -0 - -0 - -reserved -
-reg_phy_wrlvl_inc_mode - -3:3 - -8 - -0 - -0 - -reserved -
-reg_phy_bist_shift_dq - -14:6 - -7fc0 - -0 - -0 - -Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. -
-reg_phy_bist_err_clr - -23:15 - -ff8000 - -0 - -0 - -Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared -
-reg_phy_dq_offset - -30:24 - -7f000000 - -40 - -40000000 - -Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. -
-PHY_Config@0XF8006120 - -31:0 - -7fffffcf - - - -40000001 - -PHY configuration register for data slice 0. -
-

-

Register ( slcr )PHY_Config

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PHY_Config - -0XF8006124 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_data_slice_in_use - -0:0 - -1 - -1 - -1 - -Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. -
-reg_phy_rdlvl_inc_mode - -1:1 - -2 - -0 - -0 - -reserved -
-reg_phy_gatelvl_inc_mode - -2:2 - -4 - -0 - -0 - -reserved -
-reg_phy_wrlvl_inc_mode - -3:3 - -8 - -0 - -0 - -reserved -
-reg_phy_bist_shift_dq - -14:6 - -7fc0 - -0 - -0 - -Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. -
-reg_phy_bist_err_clr - -23:15 - -ff8000 - -0 - -0 - -Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared -
-reg_phy_dq_offset - -30:24 - -7f000000 - -40 - -40000000 - -Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. -
-PHY_Config@0XF8006124 - -31:0 - -7fffffcf - - - -40000001 - -PHY configuration register for data slice 0. -
-

-

Register ( slcr )phy_init_ratio

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_init_ratio - -0XF800612C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wrlvl_init_ratio - -9:0 - -3ff - -1d - -1d - -The user programmable init ratio used by Write Leveling FSM -
-reg_phy_gatelvl_init_ratio - -19:10 - -ffc00 - -f2 - -3c800 - -The user programmable init ratio used Gate Leveling FSM -
-phy_init_ratio@0XF800612C - -31:0 - -fffff - - - -3c81d - -PHY init ratio register for data slice 0. -
-

-

Register ( slcr )phy_init_ratio

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_init_ratio - -0XF8006130 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wrlvl_init_ratio - -9:0 - -3ff - -12 - -12 - -The user programmable init ratio used by Write Leveling FSM -
-reg_phy_gatelvl_init_ratio - -19:10 - -ffc00 - -d8 - -36000 - -The user programmable init ratio used Gate Leveling FSM -
-phy_init_ratio@0XF8006130 - -31:0 - -fffff - - - -36012 - -PHY init ratio register for data slice 0. -
-

-

Register ( slcr )phy_init_ratio

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_init_ratio - -0XF8006134 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wrlvl_init_ratio - -9:0 - -3ff - -c - -c - -The user programmable init ratio used by Write Leveling FSM -
-reg_phy_gatelvl_init_ratio - -19:10 - -ffc00 - -de - -37800 - -The user programmable init ratio used Gate Leveling FSM -
-phy_init_ratio@0XF8006134 - -31:0 - -fffff - - - -3780c - -PHY init ratio register for data slice 0. -
-

-

Register ( slcr )phy_init_ratio

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_init_ratio - -0XF8006138 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wrlvl_init_ratio - -9:0 - -3ff - -21 - -21 - -The user programmable init ratio used by Write Leveling FSM -
-reg_phy_gatelvl_init_ratio - -19:10 - -ffc00 - -ee - -3b800 - -The user programmable init ratio used Gate Leveling FSM -
-phy_init_ratio@0XF8006138 - -31:0 - -fffff - - - -3b821 - -PHY init ratio register for data slice 0. -
-

-

Register ( slcr )phy_rd_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rd_dqs_cfg - -0XF8006140 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_dqs_slave_ratio - -9:0 - -3ff - -35 - -35 - -Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications -
-reg_phy_rd_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. -
-reg_phy_rd_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. -
-phy_rd_dqs_cfg@0XF8006140 - -31:0 - -fffff - - - -35 - -PHY read DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_rd_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rd_dqs_cfg - -0XF8006144 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_dqs_slave_ratio - -9:0 - -3ff - -35 - -35 - -Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications -
-reg_phy_rd_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. -
-reg_phy_rd_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. -
-phy_rd_dqs_cfg@0XF8006144 - -31:0 - -fffff - - - -35 - -PHY read DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_rd_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rd_dqs_cfg - -0XF8006148 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_dqs_slave_ratio - -9:0 - -3ff - -35 - -35 - -Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications -
-reg_phy_rd_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. -
-reg_phy_rd_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. -
-phy_rd_dqs_cfg@0XF8006148 - -31:0 - -fffff - - - -35 - -PHY read DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_rd_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rd_dqs_cfg - -0XF800614C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_dqs_slave_ratio - -9:0 - -3ff - -35 - -35 - -Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications -
-reg_phy_rd_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. -
-reg_phy_rd_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. -
-phy_rd_dqs_cfg@0XF800614C - -31:0 - -fffff - - - -35 - -PHY read DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_wr_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_wr_dqs_cfg - -0XF8006154 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_dqs_slave_ratio - -9:0 - -3ff - -9d - -9d - -Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) -
-reg_phy_wr_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. -
-reg_phy_wr_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. -
-phy_wr_dqs_cfg@0XF8006154 - -31:0 - -fffff - - - -9d - -PHY write DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_wr_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_wr_dqs_cfg - -0XF8006158 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_dqs_slave_ratio - -9:0 - -3ff - -92 - -92 - -Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) -
-reg_phy_wr_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. -
-reg_phy_wr_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. -
-phy_wr_dqs_cfg@0XF8006158 - -31:0 - -fffff - - - -92 - -PHY write DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_wr_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_wr_dqs_cfg - -0XF800615C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_dqs_slave_ratio - -9:0 - -3ff - -8c - -8c - -Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) -
-reg_phy_wr_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. -
-reg_phy_wr_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. -
-phy_wr_dqs_cfg@0XF800615C - -31:0 - -fffff - - - -8c - -PHY write DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_wr_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_wr_dqs_cfg - -0XF8006160 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_dqs_slave_ratio - -9:0 - -3ff - -a1 - -a1 - -Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) -
-reg_phy_wr_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. -
-reg_phy_wr_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. -
-phy_wr_dqs_cfg@0XF8006160 - -31:0 - -fffff - - - -a1 - -PHY write DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_we_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_we_cfg - -0XF8006168 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_fifo_we_slave_ratio - -10:0 - -7ff - -147 - -147 - -Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. -
-reg_phy_fifo_we_in_force - -11:11 - -800 - -0 - -0 - -0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units -
-reg_phy_fifo_we_in_delay - -20:12 - -1ff000 - -0 - -0 - -Delay value to be used when reg_phy_fifo_we_in_force is set to 1. -
-phy_we_cfg@0XF8006168 - -31:0 - -1fffff - - - -147 - -PHY FIFO write enable configuration for data slice 0. -
-

-

Register ( slcr )phy_we_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_we_cfg - -0XF800616C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_fifo_we_slave_ratio - -10:0 - -7ff - -12d - -12d - -Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. -
-reg_phy_fifo_we_in_force - -11:11 - -800 - -0 - -0 - -0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units -
-reg_phy_fifo_we_in_delay - -20:12 - -1ff000 - -0 - -0 - -Delay value to be used when reg_phy_fifo_we_in_force is set to 1. -
-phy_we_cfg@0XF800616C - -31:0 - -1fffff - - - -12d - -PHY FIFO write enable configuration for data slice 0. -
-

-

Register ( slcr )phy_we_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_we_cfg - -0XF8006170 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_fifo_we_slave_ratio - -10:0 - -7ff - -133 - -133 - -Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. -
-reg_phy_fifo_we_in_force - -11:11 - -800 - -0 - -0 - -0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units -
-reg_phy_fifo_we_in_delay - -20:12 - -1ff000 - -0 - -0 - -Delay value to be used when reg_phy_fifo_we_in_force is set to 1. -
-phy_we_cfg@0XF8006170 - -31:0 - -1fffff - - - -133 - -PHY FIFO write enable configuration for data slice 0. -
-

-

Register ( slcr )phy_we_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_we_cfg - -0XF8006174 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_fifo_we_slave_ratio - -10:0 - -7ff - -143 - -143 - -Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. -
-reg_phy_fifo_we_in_force - -11:11 - -800 - -0 - -0 - -0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units -
-reg_phy_fifo_we_in_delay - -20:12 - -1ff000 - -0 - -0 - -Delay value to be used when reg_phy_fifo_we_in_force is set to 1. -
-phy_we_cfg@0XF8006174 - -31:0 - -1fffff - - - -143 - -PHY FIFO write enable configuration for data slice 0. -
-

-

Register ( slcr )wr_data_slv

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-wr_data_slv - -0XF800617C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_data_slave_ratio - -9:0 - -3ff - -dd - -dd - -Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_data_slave_force - -10:10 - -400 - -0 - -0 - -0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. -
-reg_phy_wr_data_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. -
-wr_data_slv@0XF800617C - -31:0 - -fffff - - - -dd - -PHY write data slave ratio config for data slice 0. -
-

-

Register ( slcr )wr_data_slv

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-wr_data_slv - -0XF8006180 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_data_slave_ratio - -9:0 - -3ff - -d2 - -d2 - -Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_data_slave_force - -10:10 - -400 - -0 - -0 - -0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. -
-reg_phy_wr_data_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. -
-wr_data_slv@0XF8006180 - -31:0 - -fffff - - - -d2 - -PHY write data slave ratio config for data slice 0. -
-

-

Register ( slcr )wr_data_slv

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-wr_data_slv - -0XF8006184 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_data_slave_ratio - -9:0 - -3ff - -cc - -cc - -Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_data_slave_force - -10:10 - -400 - -0 - -0 - -0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. -
-reg_phy_wr_data_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. -
-wr_data_slv@0XF8006184 - -31:0 - -fffff - - - -cc - -PHY write data slave ratio config for data slice 0. -
-

-

Register ( slcr )wr_data_slv

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-wr_data_slv - -0XF8006188 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_data_slave_ratio - -9:0 - -3ff - -e1 - -e1 - -Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_data_slave_force - -10:10 - -400 - -0 - -0 - -0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. -
-reg_phy_wr_data_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. -
-wr_data_slv@0XF8006188 - -31:0 - -fffff - - - -e1 - -PHY write data slave ratio config for data slice 0. -
-

-

Register ( slcr )reg_64

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-reg_64 - -0XF8006190 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_bl2 - -1:1 - -2 - -0 - -0 - -Reserved for future Use. -
-reg_phy_at_spd_atpg - -2:2 - -4 - -0 - -0 - -0: run scan test at slow clock speed but with high coverage 1: run scan test at full clock speed but with less coverage During normal function mode, this port must be set 0. -
-reg_phy_bist_enable - -3:3 - -8 - -0 - -0 - -Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. -
-reg_phy_bist_force_err - -4:4 - -10 - -0 - -0 - -This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. -
-reg_phy_bist_mode - -6:5 - -60 - -0 - -0 - -The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 00: constant pattern (0 repeated on each DQ bit) 01: low freq pattern (00001111 repeated on each DQ bit) 10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested 11: reserved -
-reg_phy_invert_clkout - -7:7 - -80 - -1 - -80 - -Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on board topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. -
-reg_phy_sel_logic - -9:9 - -200 - -0 - -0 - -Selects one of the two read leveling algorithms.'b0: Select algorithm # 1'b1: Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms -
-reg_phy_ctrl_slave_ratio - -19:10 - -ffc00 - -100 - -40000 - -Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_ctrl_slave_force - -20:20 - -100000 - -0 - -0 - -0: Use reg_phy_ctrl_slave_ratio for address/command timing slave DLL 1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. -
-reg_phy_ctrl_slave_delay - -27:21 - -fe00000 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. -
-reg_phy_lpddr - -29:29 - -20000000 - -0 - -0 - -0: DDR2 or DDR3. 1: LPDDR2. -
-reg_phy_cmd_latency - -30:30 - -40000000 - -0 - -0 - -If set to 1, command comes to phy_ctrl through a flop. -
-reg_64@0XF8006190 - -31:0 - -6ffffefe - - - -40080 - -Training control 2 -
-

-

Register ( slcr )reg_65

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-reg_65 - -0XF8006194 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_rl_delay - -4:0 - -1f - -2 - -2 - -This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. -
-reg_phy_rd_rl_delay - -9:5 - -3e0 - -4 - -80 - -This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. -
-reg_phy_dll_lock_diff - -13:10 - -3c00 - -f - -3c00 - -The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted -
-reg_phy_use_wr_level - -14:14 - -4000 - -1 - -4000 - -Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. -
-reg_phy_use_rd_dqs_gate_level - -15:15 - -8000 - -1 - -8000 - -Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. -
-reg_phy_use_rd_data_eye_level - -16:16 - -10000 - -1 - -10000 - -Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure -
-reg_phy_dis_calib_rst - -17:17 - -20000 - -0 - -0 - -Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs -
-reg_phy_ctrl_slave_delay - -19:18 - -c0000 - -0 - -0 - -If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value -
-reg_65@0XF8006194 - -31:0 - -fffff - - - -1fc82 - -Training control 3 -
-

-

Register ( slcr )page_mask

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-page_mask - -0XF8006204 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_page_addr_mask - -31:0 - -ffffffff - -0 - -0 - -Set this register based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. -
-page_mask@0XF8006204 - -31:0 - -ffffffff - - - -0 - -Page mask -
-

-

Register ( slcr )axi_priority_wr_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_wr_port - -0XF8006208 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_wr_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_wr_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Write Port. -
-reg_arb_disable_urgent_wr_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Write Port. -
-reg_arb_dis_page_match_wr_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-axi_priority_wr_port@0XF8006208 - -31:0 - -703ff - - - -3ff - -AXI Priority control for write port 0. -
-

-

Register ( slcr )axi_priority_wr_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_wr_port - -0XF800620C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_wr_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_wr_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Write Port. -
-reg_arb_disable_urgent_wr_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Write Port. -
-reg_arb_dis_page_match_wr_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-axi_priority_wr_port@0XF800620C - -31:0 - -703ff - - - -3ff - -AXI Priority control for write port 0. -
-

-

Register ( slcr )axi_priority_wr_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_wr_port - -0XF8006210 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_wr_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_wr_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Write Port. -
-reg_arb_disable_urgent_wr_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Write Port. -
-reg_arb_dis_page_match_wr_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-axi_priority_wr_port@0XF8006210 - -31:0 - -703ff - - - -3ff - -AXI Priority control for write port 0. -
-

-

Register ( slcr )axi_priority_wr_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_wr_port - -0XF8006214 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_wr_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_wr_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Write Port. -
-reg_arb_disable_urgent_wr_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Write Port. -
-reg_arb_dis_page_match_wr_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-axi_priority_wr_port@0XF8006214 - -31:0 - -703ff - - - -3ff - -AXI Priority control for write port 0. -
-

-

Register ( slcr )axi_priority_rd_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_rd_port - -0XF8006218 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_rd_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_rd_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Read Port. -
-reg_arb_disable_urgent_rd_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Read Port. -
-reg_arb_dis_page_match_rd_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_set_hpr_rd_portn - -19:19 - -80000 - -0 - -0 - -Enable reads to be generated as HPR for this Read Port. -
-axi_priority_rd_port@0XF8006218 - -31:0 - -f03ff - - - -3ff - -AXI Priority control for read port 0. -
-

-

Register ( slcr )axi_priority_rd_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_rd_port - -0XF800621C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_rd_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_rd_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Read Port. -
-reg_arb_disable_urgent_rd_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Read Port. -
-reg_arb_dis_page_match_rd_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_set_hpr_rd_portn - -19:19 - -80000 - -0 - -0 - -Enable reads to be generated as HPR for this Read Port. -
-axi_priority_rd_port@0XF800621C - -31:0 - -f03ff - - - -3ff - -AXI Priority control for read port 0. -
-

-

Register ( slcr )axi_priority_rd_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_rd_port - -0XF8006220 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_rd_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_rd_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Read Port. -
-reg_arb_disable_urgent_rd_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Read Port. -
-reg_arb_dis_page_match_rd_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_set_hpr_rd_portn - -19:19 - -80000 - -0 - -0 - -Enable reads to be generated as HPR for this Read Port. -
-axi_priority_rd_port@0XF8006220 - -31:0 - -f03ff - - - -3ff - -AXI Priority control for read port 0. -
-

-

Register ( slcr )axi_priority_rd_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_rd_port - -0XF8006224 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_rd_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_rd_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Read Port. -
-reg_arb_disable_urgent_rd_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Read Port. -
-reg_arb_dis_page_match_rd_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_set_hpr_rd_portn - -19:19 - -80000 - -0 - -0 - -Enable reads to be generated as HPR for this Read Port. -
-axi_priority_rd_port@0XF8006224 - -31:0 - -f03ff - - - -3ff - -AXI Priority control for read port 0. -
-

-

Register ( slcr )lpddr_ctrl0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-lpddr_ctrl0 - -0XF80062A8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_lpddr2 - -0:0 - -1 - -0 - -0 - -0: DDR2 or DDR3 in use. 1: LPDDR2 in Use. -
-reg_ddrc_derate_enable - -2:2 - -4 - -0 - -0 - -0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. This feature should only be enabled after LPDDR2 initialization is completed -
-reg_ddrc_mr4_margin - -11:4 - -ff0 - -0 - -0 - -UNUSED -
-lpddr_ctrl0@0XF80062A8 - -31:0 - -ff5 - - - -0 - -LPDDR2 Control 0 -
-

-

Register ( slcr )lpddr_ctrl1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-lpddr_ctrl1 - -0XF80062AC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_mr4_read_interval - -31:0 - -ffffffff - -0 - -0 - -Interval between two MR4 reads, USED to derate the timing parameters. -
-lpddr_ctrl1@0XF80062AC - -31:0 - -ffffffff - - - -0 - -LPDDR2 Control 1 -
-

-

Register ( slcr )lpddr_ctrl2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-lpddr_ctrl2 - -0XF80062B0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_min_stable_clock_x1 - -3:0 - -f - -5 - -5 - -Time to wait after the first CKE high, tINIT2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. -
-reg_ddrc_idle_after_reset_x32 - -11:4 - -ff0 - -12 - -120 - -Idle time after the reset command, tINIT4. Units: 32 clock cycles. -
-reg_ddrc_t_mrw - -21:12 - -3ff000 - -5 - -5000 - -Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. -
-lpddr_ctrl2@0XF80062B0 - -31:0 - -3fffff - - - -5125 - -LPDDR2 Control 2 -
-

-

Register ( slcr )lpddr_ctrl3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-lpddr_ctrl3 - -0XF80062B4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_max_auto_init_x1024 - -7:0 - -ff - -a8 - -a8 - -Maximum duration of the auto initialization, tINIT5. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. -
-reg_ddrc_dev_zqinit_x32 - -17:8 - -3ff00 - -12 - -1200 - -ZQ initial calibration, tZQINIT. Units: 32 clock cycles. LPDDR2 typically requires 1 us. -
-lpddr_ctrl3@0XF80062B4 - -31:0 - -3ffff - - - -12a8 - -LPDDR2 Control 3 -
-

-

POLL ON DCI STATUS

-

Register ( slcr )DDRIOB_DCI_STATUS

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DCI_STATUS - -0XF8000B74 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DONE - -13:13 - -2000 - -1 - -2000 - -DCI done signal -
-DDRIOB_DCI_STATUS@0XF8000B74 - -31:0 - -2000 - - - -2000 - -tobe -
-

-

UNLOCK DDR

-

Register ( slcr )ddrc_ctrl

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ddrc_ctrl - -0XF8006000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_soft_rstb - -0:0 - -1 - -1 - -1 - -Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. -
-reg_ddrc_powerdown_en - -1:1 - -2 - -0 - -0 - -Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable -
-reg_ddrc_data_bus_width - -3:2 - -c - -0 - -0 - -DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved -
-reg_ddrc_burst8_refresh - -6:4 - -70 - -0 - -0 - -Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh -
-reg_ddrc_rdwr_idle_gap - -13:7 - -3f80 - -1 - -80 - -When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. -
-reg_ddrc_dis_rd_bypass - -14:14 - -4000 - -0 - -0 - -Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. -
-reg_ddrc_dis_act_bypass - -15:15 - -8000 - -0 - -0 - -Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. -
-reg_ddrc_dis_auto_refresh - -16:16 - -10000 - -0 - -0 - -Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. -
-ddrc_ctrl@0XF8006000 - -31:0 - -1ffff - - - -81 - -DDRC Control -
-

-

CHECK DDR STATUS

-

Register ( slcr )mode_sts_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-mode_sts_reg - -0XF8006054 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-ddrc_reg_operating_mode - -2:0 - -7 - -1 - -1 - -Gives the status of the controller. 0: DDRC Init 1: Normal operation 2: Powerdown mode 3: Self-refresh mode 4 and above: deep power down mode (LPDDR2 only) -
-mode_sts_reg@0XF8006054 - -31:0 - -7 - - - -1 - -tobe -
-

- -

-

ps7_mio_init_data_3_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -GPIOB_CTRL - - -0XF8000B00 - -32 - -RW - -0x000000 - -PS IO Buffer Control -
- -DDRIOB_ADDR0 - - -0XF8000B40 - -32 - -RW - -0x000000 - -DDR IOB Config for A[14:0], CKE and DRST_B -
- -DDRIOB_ADDR1 - - -0XF8000B44 - -32 - -RW - -0x000000 - -DDR IOB Config for BA[2:0], ODT, CS_B, WE_B, RAS_B and CAS_B -
- -DDRIOB_DATA0 - - -0XF8000B48 - -32 - -RW - -0x000000 - -DDR IOB Config for Data 15:0 -
- -DDRIOB_DATA1 - - -0XF8000B4C - -32 - -RW - -0x000000 - -DDR IOB Config for Data 31:16 -
- -DDRIOB_DIFF0 - - -0XF8000B50 - -32 - -RW - -0x000000 - -DDR IOB Config for DQS 1:0 -
- -DDRIOB_DIFF1 - - -0XF8000B54 - -32 - -RW - -0x000000 - -DDR IOB Config for DQS 3:2 -
- -DDRIOB_CLOCK - - -0XF8000B58 - -32 - -RW - -0x000000 - -DDR IOB Config for Clock Output -
- -DDRIOB_DRIVE_SLEW_ADDR - - -0XF8000B5C - -32 - -RW - -0x000000 - -Drive and Slew controls for Address and Command pins of the DDR Interface -
- -DDRIOB_DRIVE_SLEW_DATA - - -0XF8000B60 - -32 - -RW - -0x000000 - -Drive and Slew controls for DQ pins of the DDR Interface -
- -DDRIOB_DRIVE_SLEW_DIFF - - -0XF8000B64 - -32 - -RW - -0x000000 - -Drive and Slew controls for DQS pins of the DDR Interface -
- -DDRIOB_DRIVE_SLEW_CLOCK - - -0XF8000B68 - -32 - -RW - -0x000000 - -Drive and Slew controls for Clock pins of the DDR Interface -
- -DDRIOB_DDR_CTRL - - -0XF8000B6C - -32 - -RW - -0x000000 - -DDR IOB Buffer Control -
- -DDRIOB_DCI_CTRL - - -0XF8000B70 - -32 - -RW - -0x000000 - -DDR IOB DCI Config -
- -DDRIOB_DCI_CTRL - - -0XF8000B70 - -32 - -RW - -0x000000 - -DDR IOB DCI Config -
- -DDRIOB_DCI_CTRL - - -0XF8000B70 - -32 - -RW - -0x000000 - -DDR IOB DCI Config -
- -MIO_PIN_00 - - -0XF8000700 - -32 - -RW - -0x000000 - -MIO Pin 0 Control -
- -MIO_PIN_01 - - -0XF8000704 - -32 - -RW - -0x000000 - -MIO Pin 1 Control -
- -MIO_PIN_02 - - -0XF8000708 - -32 - -RW - -0x000000 - -MIO Pin 2 Control -
- -MIO_PIN_03 - - -0XF800070C - -32 - -RW - -0x000000 - -MIO Pin 3 Control -
- -MIO_PIN_04 - - -0XF8000710 - -32 - -RW - -0x000000 - -MIO Pin 4 Control -
- -MIO_PIN_05 - - -0XF8000714 - -32 - -RW - -0x000000 - -MIO Pin 5 Control -
- -MIO_PIN_06 - - -0XF8000718 - -32 - -RW - -0x000000 - -MIO Pin 6 Control -
- -MIO_PIN_07 - - -0XF800071C - -32 - -RW - -0x000000 - -MIO Pin 7 Control -
- -MIO_PIN_08 - - -0XF8000720 - -32 - -RW - -0x000000 - -MIO Pin 8 Control -
- -MIO_PIN_09 - - -0XF8000724 - -32 - -RW - -0x000000 - -MIO Pin 9 Control -
- -MIO_PIN_10 - - -0XF8000728 - -32 - -RW - -0x000000 - -MIO Pin 10 Control -
- -MIO_PIN_11 - - -0XF800072C - -32 - -RW - -0x000000 - -MIO Pin 11 Control -
- -MIO_PIN_12 - - -0XF8000730 - -32 - -RW - -0x000000 - -MIO Pin 12 Control -
- -MIO_PIN_13 - - -0XF8000734 - -32 - -RW - -0x000000 - -MIO Pin 13 Control -
- -MIO_PIN_14 - - -0XF8000738 - -32 - -RW - -0x000000 - -MIO Pin 14 Control -
- -MIO_PIN_15 - - -0XF800073C - -32 - -RW - -0x000000 - -MIO Pin 15 Control -
- -MIO_PIN_16 - - -0XF8000740 - -32 - -RW - -0x000000 - -MIO Pin 16 Control -
- -MIO_PIN_17 - - -0XF8000744 - -32 - -RW - -0x000000 - -MIO Pin 17 Control -
- -MIO_PIN_18 - - -0XF8000748 - -32 - -RW - -0x000000 - -MIO Pin 18 Control -
- -MIO_PIN_19 - - -0XF800074C - -32 - -RW - -0x000000 - -MIO Pin 19 Control -
- -MIO_PIN_20 - - -0XF8000750 - -32 - -RW - -0x000000 - -MIO Pin 20 Control -
- -MIO_PIN_21 - - -0XF8000754 - -32 - -RW - -0x000000 - -MIO Pin 21 Control -
- -MIO_PIN_22 - - -0XF8000758 - -32 - -RW - -0x000000 - -MIO Pin 22 Control -
- -MIO_PIN_23 - - -0XF800075C - -32 - -RW - -0x000000 - -MIO Pin 23 Control -
- -MIO_PIN_24 - - -0XF8000760 - -32 - -RW - -0x000000 - -MIO Pin 24 Control -
- -MIO_PIN_25 - - -0XF8000764 - -32 - -RW - -0x000000 - -MIO Pin 25 Control -
- -MIO_PIN_26 - - -0XF8000768 - -32 - -RW - -0x000000 - -MIO Pin 26 Control -
- -MIO_PIN_27 - - -0XF800076C - -32 - -RW - -0x000000 - -MIO Pin 27 Control -
- -MIO_PIN_28 - - -0XF8000770 - -32 - -RW - -0x000000 - -MIO Pin 28 Control -
- -MIO_PIN_29 - - -0XF8000774 - -32 - -RW - -0x000000 - -MIO Pin 29 Control -
- -MIO_PIN_30 - - -0XF8000778 - -32 - -RW - -0x000000 - -MIO Pin 30 Control -
- -MIO_PIN_31 - - -0XF800077C - -32 - -RW - -0x000000 - -MIO Pin 31 Control -
- -MIO_PIN_32 - - -0XF8000780 - -32 - -RW - -0x000000 - -MIO Pin 32 Control -
- -MIO_PIN_33 - - -0XF8000784 - -32 - -RW - -0x000000 - -MIO Pin 33 Control -
- -MIO_PIN_34 - - -0XF8000788 - -32 - -RW - -0x000000 - -MIO Pin 34 Control -
- -MIO_PIN_35 - - -0XF800078C - -32 - -RW - -0x000000 - -MIO Pin 35 Control -
- -MIO_PIN_36 - - -0XF8000790 - -32 - -RW - -0x000000 - -MIO Pin 36 Control -
- -MIO_PIN_37 - - -0XF8000794 - -32 - -RW - -0x000000 - -MIO Pin 37 Control -
- -MIO_PIN_38 - - -0XF8000798 - -32 - -RW - -0x000000 - -MIO Pin 38 Control -
- -MIO_PIN_39 - - -0XF800079C - -32 - -RW - -0x000000 - -MIO Pin 39 Control -
- -MIO_PIN_40 - - -0XF80007A0 - -32 - -RW - -0x000000 - -MIO Pin 40 Control -
- -MIO_PIN_41 - - -0XF80007A4 - -32 - -RW - -0x000000 - -MIO Pin 41 Control -
- -MIO_PIN_42 - - -0XF80007A8 - -32 - -RW - -0x000000 - -MIO Pin 42 Control -
- -MIO_PIN_43 - - -0XF80007AC - -32 - -RW - -0x000000 - -MIO Pin 43 Control -
- -MIO_PIN_44 - - -0XF80007B0 - -32 - -RW - -0x000000 - -MIO Pin 44 Control -
- -MIO_PIN_45 - - -0XF80007B4 - -32 - -RW - -0x000000 - -MIO Pin 45 Control -
- -MIO_PIN_46 - - -0XF80007B8 - -32 - -RW - -0x000000 - -MIO Pin 46 Control -
- -MIO_PIN_47 - - -0XF80007BC - -32 - -RW - -0x000000 - -MIO Pin 47 Control -
- -MIO_PIN_48 - - -0XF80007C0 - -32 - -RW - -0x000000 - -MIO Pin 48 Control -
- -MIO_PIN_49 - - -0XF80007C4 - -32 - -RW - -0x000000 - -MIO Pin 49 Control -
- -MIO_PIN_50 - - -0XF80007C8 - -32 - -RW - -0x000000 - -MIO Pin 50 Control -
- -MIO_PIN_51 - - -0XF80007CC - -32 - -RW - -0x000000 - -MIO Pin 51 Control -
- -MIO_PIN_52 - - -0XF80007D0 - -32 - -RW - -0x000000 - -MIO Pin 52 Control -
- -MIO_PIN_53 - - -0XF80007D4 - -32 - -RW - -0x000000 - -MIO Pin 53 Control -
- -SD0_WP_CD_SEL - - -0XF8000830 - -32 - -RW - -0x000000 - -SDIO 0 WP CD select -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
-

-

ps7_mio_init_data_3_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

OCM REMAPPING

-

Register ( slcr )GPIOB_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-GPIOB_CTRL - -0XF8000B00 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-VREF_EN - -0:0 - -1 - -1 - -1 - -Enables VREF internal generator -
-VREF_SEL - -6:4 - -70 - -0 - -0 - -Specifies GPIO VREF Selection 000 - VREF = Disabled 001 - VREF = 0.9V 010 - VREF = test only - 1.8V 100 - VREF = test only - 1.25V Other values reserved -
-GPIOB_CTRL@0XF8000B00 - -31:0 - -71 - - - -1 - -PS IO Buffer Control -
-

-

DDRIOB SETTINGS

-

Register ( slcr )DDRIOB_ADDR0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_ADDR0 - -0XF8000B40 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reserved_INP_POWER - -0:0 - -1 - -0 - -0 - -Reserved. Do not modify. -
-INP_TYPE - -2:1 - -6 - -0 - -0 - -Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. -
-DCI_UPDATE_B - -3:3 - -8 - -0 - -0 - -DCI Update Enable: 0: disable 1: enable -
-TERM_EN - -4:4 - -10 - -0 - -0 - -Tri State Termination Enable: 0: disable 1: enable -
-DCI_TYPE - -6:5 - -60 - -0 - -0 - -DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0: no pullup 1: pullup enabled -
-DDRIOB_ADDR0@0XF8000B40 - -31:0 - -fff - - - -600 - -DDR IOB Config for A[14:0], CKE and DRST_B -
-

-

Register ( slcr )DDRIOB_ADDR1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_ADDR1 - -0XF8000B44 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reserved_INP_POWER - -0:0 - -1 - -0 - -0 - -Reserved. Do not modify. -
-INP_TYPE - -2:1 - -6 - -0 - -0 - -Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. -
-DCI_UPDATE_B - -3:3 - -8 - -0 - -0 - -DCI Update Enable: 0: disable 1: enable -
-TERM_EN - -4:4 - -10 - -0 - -0 - -Tri State Termination Enable: 0: disable 1: enable -
-DCI_TYPE - -6:5 - -60 - -0 - -0 - -DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0: no pullup 1: pullup enabled -
-DDRIOB_ADDR1@0XF8000B44 - -31:0 - -fff - - - -600 - -DDR IOB Config for BA[2:0], ODT, CS_B, WE_B, RAS_B and CAS_B -
-

-

Register ( slcr )DDRIOB_DATA0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DATA0 - -0XF8000B48 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reserved_INP_POWER - -0:0 - -1 - -0 - -0 - -Reserved. Do not modify. -
-INP_TYPE - -2:1 - -6 - -1 - -2 - -Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. -
-DCI_UPDATE_B - -3:3 - -8 - -0 - -0 - -DCI Update Enable: 0: disable 1: enable -
-TERM_EN - -4:4 - -10 - -1 - -10 - -Tri State Termination Enable: 0: disable 1: enable -
-DCI_TYPE - -6:5 - -60 - -3 - -60 - -DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0: no pullup 1: pullup enabled -
-DDRIOB_DATA0@0XF8000B48 - -31:0 - -fff - - - -672 - -DDR IOB Config for Data 15:0 -
-

-

Register ( slcr )DDRIOB_DATA1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DATA1 - -0XF8000B4C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reserved_INP_POWER - -0:0 - -1 - -0 - -0 - -Reserved. Do not modify. -
-INP_TYPE - -2:1 - -6 - -1 - -2 - -Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. -
-DCI_UPDATE_B - -3:3 - -8 - -0 - -0 - -DCI Update Enable: 0: disable 1: enable -
-TERM_EN - -4:4 - -10 - -1 - -10 - -Tri State Termination Enable: 0: disable 1: enable -
-DCI_TYPE - -6:5 - -60 - -3 - -60 - -DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0: no pullup 1: pullup enabled -
-DDRIOB_DATA1@0XF8000B4C - -31:0 - -fff - - - -672 - -DDR IOB Config for Data 31:16 -
-

-

Register ( slcr )DDRIOB_DIFF0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DIFF0 - -0XF8000B50 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reserved_INP_POWER - -0:0 - -1 - -0 - -0 - -Reserved. Do not modify. -
-INP_TYPE - -2:1 - -6 - -2 - -4 - -Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. -
-DCI_UPDATE_B - -3:3 - -8 - -0 - -0 - -DCI Update Enable: 0: disable 1: enable -
-TERM_EN - -4:4 - -10 - -1 - -10 - -Tri State Termination Enable: 0: disable 1: enable -
-DCI_TYPE - -6:5 - -60 - -3 - -60 - -DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0: no pullup 1: pullup enabled -
-DDRIOB_DIFF0@0XF8000B50 - -31:0 - -fff - - - -674 - -DDR IOB Config for DQS 1:0 -
-

-

Register ( slcr )DDRIOB_DIFF1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DIFF1 - -0XF8000B54 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reserved_INP_POWER - -0:0 - -1 - -0 - -0 - -Reserved. Do not modify. -
-INP_TYPE - -2:1 - -6 - -2 - -4 - -Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. -
-DCI_UPDATE_B - -3:3 - -8 - -0 - -0 - -DCI Update Enable: 0: disable 1: enable -
-TERM_EN - -4:4 - -10 - -1 - -10 - -Tri State Termination Enable: 0: disable 1: enable -
-DCI_TYPE - -6:5 - -60 - -3 - -60 - -DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0: no pullup 1: pullup enabled -
-DDRIOB_DIFF1@0XF8000B54 - -31:0 - -fff - - - -674 - -DDR IOB Config for DQS 3:2 -
-

-

Register ( slcr )DDRIOB_CLOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_CLOCK - -0XF8000B58 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reserved_INP_POWER - -0:0 - -1 - -0 - -0 - -Reserved. Do not modify. -
-INP_TYPE - -2:1 - -6 - -0 - -0 - -Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. -
-DCI_UPDATE_B - -3:3 - -8 - -0 - -0 - -DCI Update Enable: 0: disable 1: enable -
-TERM_EN - -4:4 - -10 - -0 - -0 - -Tri State Termination Enable: 0: disable 1: enable -
-DCI_TYPE - -6:5 - -60 - -0 - -0 - -DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0: no pullup 1: pullup enabled -
-DDRIOB_CLOCK@0XF8000B58 - -31:0 - -fff - - - -600 - -DDR IOB Config for Clock Output -
-

-

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DRIVE_SLEW_ADDR - -0XF8000B5C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reserved_DRIVE_P - -6:0 - -7f - -1c - -1c - -Reserved. Do not modify. -
-reserved_DRIVE_N - -13:7 - -3f80 - -c - -600 - -Reserved. Do not modify. -
-reserved_SLEW_P - -18:14 - -7c000 - -3 - -c000 - -Reserved. Do not modify. -
-reserved_SLEW_N - -23:19 - -f80000 - -3 - -180000 - -Reserved. Do not modify. -
-reserved_GTL - -26:24 - -7000000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_RTERM - -31:27 - -f8000000 - -0 - -0 - -Reserved. Do not modify. -
-DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C - -31:0 - -ffffffff - - - -18c61c - -Drive and Slew controls for Address and Command pins of the DDR Interface -
-

-

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DRIVE_SLEW_DATA - -0XF8000B60 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reserved_DRIVE_P - -6:0 - -7f - -1c - -1c - -Reserved. Do not modify. -
-reserved_DRIVE_N - -13:7 - -3f80 - -c - -600 - -Reserved. Do not modify. -
-reserved_SLEW_P - -18:14 - -7c000 - -6 - -18000 - -Reserved. Do not modify. -
-reserved_SLEW_N - -23:19 - -f80000 - -1f - -f80000 - -Reserved. Do not modify. -
-reserved_GTL - -26:24 - -7000000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_RTERM - -31:27 - -f8000000 - -0 - -0 - -Reserved. Do not modify. -
-DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 - -31:0 - -ffffffff - - - -f9861c - -Drive and Slew controls for DQ pins of the DDR Interface -
-

-

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DRIVE_SLEW_DIFF - -0XF8000B64 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reserved_DRIVE_P - -6:0 - -7f - -1c - -1c - -Reserved. Do not modify. -
-reserved_DRIVE_N - -13:7 - -3f80 - -c - -600 - -Reserved. Do not modify. -
-reserved_SLEW_P - -18:14 - -7c000 - -6 - -18000 - -Reserved. Do not modify. -
-reserved_SLEW_N - -23:19 - -f80000 - -1f - -f80000 - -Reserved. Do not modify. -
-reserved_GTL - -26:24 - -7000000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_RTERM - -31:27 - -f8000000 - -0 - -0 - -Reserved. Do not modify. -
-DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 - -31:0 - -ffffffff - - - -f9861c - -Drive and Slew controls for DQS pins of the DDR Interface -
-

-

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DRIVE_SLEW_CLOCK - -0XF8000B68 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reserved_DRIVE_P - -6:0 - -7f - -1c - -1c - -Reserved. Do not modify. -
-reserved_DRIVE_N - -13:7 - -3f80 - -c - -600 - -Reserved. Do not modify. -
-reserved_SLEW_P - -18:14 - -7c000 - -6 - -18000 - -Reserved. Do not modify. -
-reserved_SLEW_N - -23:19 - -f80000 - -1f - -f80000 - -Reserved. Do not modify. -
-reserved_GTL - -26:24 - -7000000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_RTERM - -31:27 - -f8000000 - -0 - -0 - -Reserved. Do not modify. -
-DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 - -31:0 - -ffffffff - - - -f9861c - -Drive and Slew controls for Clock pins of the DDR Interface -
-

-

Register ( slcr )DDRIOB_DDR_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DDR_CTRL - -0XF8000B6C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-VREF_INT_EN - -0:0 - -1 - -1 - -1 - -Enables VREF internal generator -
-VREF_SEL - -4:1 - -1e - -4 - -8 - -Specifies DDR IOB Vref generator output: 0001: VREF = 0.6V for LPDDR2 with 1.2V IO 0100: VREF = 0.75V for DDR3 with 1.5V IO 1000: VREF = 0.90V for DDR2 with 1.8V IO -
-VREF_EXT_EN - -6:5 - -60 - -0 - -0 - -Enables External VREF input x0: Disable External VREF for lower 16 bits x1: Enable External VREF for lower 16 bits 0x: Disable External VREF for upper 16 bits 1x: Enable External VREF for upper 16 bits -
-reserved_VREF_PULLUP_EN - -8:7 - -180 - -0 - -0 - -Reserved. Do not modify. -
-REFIO_EN - -9:9 - -200 - -1 - -200 - -Enables VRP,VRN 0: VRP/VRN not used 1: VRP/VRN used as refio -
-reserved_REFIO_TEST - -11:10 - -c00 - -3 - -c00 - -Reserved. Do not modify. -
-reserved_REFIO_PULLUP_EN - -12:12 - -1000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_DRST_B_PULLUP_EN - -13:13 - -2000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_CKE_PULLUP_EN - -14:14 - -4000 - -0 - -0 - -Reserved. Do not modify. -
-DDRIOB_DDR_CTRL@0XF8000B6C - -31:0 - -7fff - - - -e09 - -DDR IOB Buffer Control -
-

-

ASSERT RESET

-

Register ( slcr )DDRIOB_DCI_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DCI_CTRL - -0XF8000B70 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-RESET - -0:0 - -1 - -1 - -1 - -At least toggle once to initialize flops in DCI system -
-DDRIOB_DCI_CTRL@0XF8000B70 - -31:0 - -1 - - - -1 - -DDR IOB DCI Config -
-

-

DEASSERT RESET

-

Register ( slcr )DDRIOB_DCI_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DCI_CTRL - -0XF8000B70 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-RESET - -0:0 - -1 - -0 - -0 - -At least toggle once to initialize flops in DCI system -
-reserved_VRN_OUT - -5:5 - -20 - -1 - -20 - -Reserved. Do not modify. -
-DDRIOB_DCI_CTRL@0XF8000B70 - -31:0 - -21 - - - -20 - -DDR IOB DCI Config -
-

-

Register ( slcr )DDRIOB_DCI_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DCI_CTRL - -0XF8000B70 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-RESET - -0:0 - -1 - -1 - -1 - -At least toggle once to initialize flops in DCI system -
-ENABLE - -1:1 - -2 - -1 - -2 - -DCI System Enable. Set to 1 if any IOs in DDR IO Bank use DCI Termination. DDR2, DDR3 and LPDDR2 (Silicon Revision 2.0+) configurations require this bit set to 1 -
-reserved_VRP_TRI - -2:2 - -4 - -0 - -0 - -Reserved. Do not modify. -
-reserved_VRN_TRI - -3:3 - -8 - -0 - -0 - -Reserved. Do not modify. -
-reserved_VRP_OUT - -4:4 - -10 - -0 - -0 - -Reserved. Do not modify. -
-reserved_VRN_OUT - -5:5 - -20 - -1 - -20 - -Reserved. Do not modify. -
-NREF_OPT1 - -7:6 - -c0 - -0 - -0 - -DCI Calibration. Use the values in the Calibration Table. -
-NREF_OPT2 - -10:8 - -700 - -0 - -0 - -DCI Calibration. Use the values in the Calibration Table. -
-NREF_OPT4 - -13:11 - -3800 - -1 - -800 - -DCI Calibration. Use the values in the Calibration Table. -
-PREF_OPT1 - -15:14 - -c000 - -0 - -0 - -DCI Calibration. Use the values in the Calibration Table. -
-PREF_OPT2 - -19:17 - -e0000 - -0 - -0 - -DCI Calibration. Use the values in the Calibration Table. -
-UPDATE_CONTROL - -20:20 - -100000 - -0 - -0 - -DCI Update Mode. Use the values in the Calibration Table. -
-reserved_INIT_COMPLETE - -21:21 - -200000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_TST_CLK - -22:22 - -400000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_TST_HLN - -23:23 - -800000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_TST_HLP - -24:24 - -1000000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_TST_RST - -25:25 - -2000000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_INT_DCI_EN - -26:26 - -4000000 - -0 - -0 - -Reserved. Do not modify. -
-DDRIOB_DCI_CTRL@0XF8000B70 - -31:0 - -7feffff - - - -823 - -DDR IOB DCI Config -
-

-

MIO PROGRAMMING

-

Register ( slcr )MIO_PIN_00

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_00 - -0XF8000700 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. 0: disable 1: enable -
-Speed - -8:8 - -100 - -0 - -0 - -Select IO Buffer Edge Rate, applicable when IO_Type is LVCMOS18, LVCMOS25 or LVCMOS33. 0: Slow CMOS edge 1: Fast CMOS edge -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Select the IO Buffer Type. 000: Reserved 001: LVCMOS18 010: LVCMOS25 011, 101, 110, 111: LVCMOS33 100: HSTL -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Enables Pullup on IO Buffer pin 0: disable 1: enable -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Disable HSTL Input Buffer to save power when it is an output-only (IO_Type must be HSTL). 0: enable 1: disable -
-MIO_PIN_00@0XF8000700 - -31:0 - -3f01 - - - -1201 - -MIO Pin 0 Control -
-

-

Register ( slcr )MIO_PIN_01

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_01 - -0XF8000704 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Chip Select, Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: reserved -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM Address Bit 25, Output 10: SRAM/NOR Chip Select 1, Output 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 1 (bank 0), Input/Output others: reserved -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_01@0XF8000704 - -31:0 - -3fff - - - -1202 - -MIO Pin 1 Control -
-

-

Register ( slcr )MIO_PIN_02

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_02 - -0XF8000708 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 0, Input/Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 8, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash ALEn, Output 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 2 (bank 0), Input/Output others: reserved -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_02@0XF8000708 - -31:0 - -3fff - - - -202 - -MIO Pin 2 Control -
-

-

Register ( slcr )MIO_PIN_03

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_03 - -0XF800070C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 1, Input/Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 9, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data bit 0, Input/Output 10: NAND WE_B, Output 11: SDIO 1 Card Power, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 3 (bank 0), Input/Output others: reserved -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_03@0XF800070C - -31:0 - -3fff - - - -202 - -MIO Pin 3 Control -
-

-

Register ( slcr )MIO_PIN_04

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_04 - -0XF8000710 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 2, Input/Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 10, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 1, Input/Output 10: NAND Flash IO Bit 2, Input/Output 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 4 (bank 0), Input/Output others: reserved -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_04@0XF8000710 - -31:0 - -3fff - - - -202 - -MIO Pin 4 Control -
-

-

Register ( slcr )MIO_PIN_05

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_05 - -0XF8000714 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 3, Input/Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 11, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 2, Input/Output 10: NAND Flash IO Bit 0, Input/Output 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 5 (bank 0), Input/Output others: reserved -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_05@0XF8000714 - -31:0 - -3fff - - - -202 - -MIO Pin 5 Control -
-

-

Register ( slcr )MIO_PIN_06

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_06 - -0XF8000718 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Clock, Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 12, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 3, Input/Output 10: NAND Flash IO Bit 1, Input/Output 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 6 (bank 0), Input/Output others: reserved -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_06@0XF8000718 - -31:0 - -3fff - - - -202 - -MIO Pin 6 Control -
-

-

Register ( slcr )MIO_PIN_07

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_07 - -0XF800071C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 13, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR OE_B, Output 10: NAND Flash CLE_B, Output 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 7 (bank 0), Output-only others: reserved -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_07@0XF800071C - -31:0 - -3fff - - - -200 - -MIO Pin 7 Control -
-

-

Register ( slcr )MIO_PIN_08

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_08 - -0XF8000720 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI Feedback Clock, Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 14, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash RD_B, Output 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 8 (bank 0), Output-only 001: CAN 1 Tx, Output 010: SRAM/NOR BLS_B, Output 011 to 110: reserved 111: UART 1 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_08@0XF8000720 - -31:0 - -3fff - - - -202 - -MIO Pin 8 Control -
-

-

Register ( slcr )MIO_PIN_09

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_09 - -0XF8000724 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 Flash Memory Clock, Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 15, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 6, Input/Output 10: NAND Flash IO Bit 4, Input/Output 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 9 (bank 0), Input/Output 001: CAN 1 Rx, Input 010 to 110: reserved 111: UART 1 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_09@0XF8000724 - -31:0 - -3fff - - - -1200 - -MIO Pin 9 Control -
-

-

Register ( slcr )MIO_PIN_10

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_10 - -0XF8000728 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 0, Input/Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 7, Input/Output 10: NAND Flash IO Bit 5, Input/Output 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 10 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: PJTAG TDI, Input 100: SDIO 1 IO Bit 0, Input/Output 101: SPI 1 MOSI, Input/Output 110: reserved 111: UART 0 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_10@0XF8000728 - -31:0 - -3fff - - - -1200 - -MIO Pin 10 Control -
-

-

Register ( slcr )MIO_PIN_11

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_11 - -0XF800072C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 1, Input/Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 4, Input/Output 10: NAND Flash IO Bit 6, Input/Output 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 11 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: PJTAG TDO, Output 100: SDIO 1 Command, Input/Output 101: SPI 1 MISO, Input/Output 110: reserved 111: UART 0 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_11@0XF800072C - -31:0 - -3fff - - - -1200 - -MIO Pin 11 Control -
-

-

Register ( slcr )MIO_PIN_12

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_12 - -0XF8000730 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 2, Input/Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Wait, Input 10: NAND Flash IO Bit 7, Input/Output 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 12 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_12@0XF8000730 - -31:0 - -3fff - - - -1200 - -MIO Pin 12 Control -
-

-

Register ( slcr )MIO_PIN_13

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_13 - -0XF8000734 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 3, Input/Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 5, Input/Output 10: NAND Flash IO Bit 3, Input/Output 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 13 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Slave Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_13@0XF8000734 - -31:0 - -3fff - - - -1200 - -MIO Pin 13 Control -
-

-

Register ( slcr )MIO_PIN_14

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_14 - -0XF8000738 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash Busy, Input 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 14 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: SWDT Clock, Input 100: SDIO 1 IO Bit 2, Input/Output 101: SPI 1 slave select 1, Output 110: reserved 111: UART 0 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_14@0XF8000738 - -31:0 - -3fff - - - -1200 - -MIO Pin 14 Control -
-

-

Register ( slcr )MIO_PIN_15

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_15 - -0XF800073C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_15@0XF800073C - -31:0 - -3f01 - - - -1201 - -MIO Pin 15 Control -
-

-

Register ( slcr )MIO_PIN_16

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_16 - -0XF8000740 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Clock, Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 4, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 1, Output 10: NAND Flash IO Bit 8, Input/Output 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 16 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 Clock, Input/Output 101: SPI 0 Serial Clock, Input/Output 110: TTC 1 Wave, Output 111: UART 1 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_16@0XF8000740 - -31:0 - -3fff - - - -2802 - -MIO Pin 16 Control -
-

-

Register ( slcr )MIO_PIN_17

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_17 - -0XF8000744 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 0, Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 5, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 2, Output 10: NAND Flash IO Bit 9, Input/Output 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 17 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 Command, Input/Output 101: SPI 0 MISO, Input/Output 110 TTC 1 Clock, Input 111: UART 1 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_17@0XF8000744 - -31:0 - -3fff - - - -2802 - -MIO Pin 17 Control -
-

-

Register ( slcr )MIO_PIN_18

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_18 - -0XF8000748 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 1, Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 6, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 3, Output 10: NAND Flash IO Bit 10, Input/Output 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 18 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: reserved 100: SDIO 0 IO Bit 0, Input/Output 101: SPI 0 Slave Select 0, Input/Output 110: TTC 0 Wave, Output 111: UART 0 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_18@0XF8000748 - -31:0 - -3fff - - - -2802 - -MIO Pin 18 Control -
-

-

Register ( slcr )MIO_PIN_19

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_19 - -0XF800074C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 2, Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 7, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 4, Output 10: NAND Flash IO Bit 11, Input/Output 111: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 19 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 1, Input/Output 101: SPI 0 Slave Select 1, Output 110: TTC 0 Clock, Input 111: UART 0 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_19@0XF800074C - -31:0 - -3fff - - - -2802 - -MIO Pin 19 Control -
-

-

Register ( slcr )MIO_PIN_20

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_20 - -0XF8000750 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 3, Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: reserved -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 5, Output 10: NAND Flash IO Bit 12, Input/Output 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 20 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 IO Bit 2, Input/Output 101: SPI 0 Slave Select 2, Output 110: reserved 111: UART 1 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_20@0XF8000750 - -31:0 - -3fff - - - -2802 - -MIO Pin 20 Control -
-

-

Register ( slcr )MIO_PIN_21

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_21 - -0XF8000754 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Control, Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: reserved -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 6, Output 10: NAND Flash IO Bit 13, Input/Output 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 21 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 3, Input/Output 101: SPI 0 MOSI, Input/Output 110: reserved 111: UART 1 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_21@0XF8000754 - -31:0 - -3fff - - - -2802 - -MIO Pin 21 Control -
-

-

Register ( slcr )MIO_PIN_22

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_22 - -0XF8000758 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Clock, Input -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 7, Output 10: NAND Flash IO Bit 14, Input/Output 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 22 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: PJTAG TDI, Input 100: SDIO 1 IO Bit 0, Input/Output 101: SPI 1 MOSI, Input/Output 110: reserved 111: UART 0 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_22@0XF8000758 - -31:0 - -3fff - - - -803 - -MIO Pin 22 Control -
-

-

Register ( slcr )MIO_PIN_23

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_23 - -0XF800075C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD 0, Input -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 8, Output 10: NAND Flash IO Bit 15, Input/Output 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 23 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: PJTAG TDO, Output 100: SDIO 1 Command, Input/Output 101: SPI 1 MISO, Input/Output 110: reserved 111: UART 0 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_23@0XF800075C - -31:0 - -3fff - - - -803 - -MIO Pin 23 Control -
-

-

Register ( slcr )MIO_PIN_24

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_24 - -0XF8000760 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 1, Input -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 9, Output 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 24 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_24@0XF8000760 - -31:0 - -3fff - - - -803 - -MIO Pin 24 Control -
-

-

Register ( slcr )MIO_PIN_25

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_25 - -0XF8000764 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit2, Input -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 10, Output 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 25 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Slave Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_25@0XF8000764 - -31:0 - -3fff - - - -803 - -MIO Pin 25 Control -
-

-

Register ( slcr )MIO_PIN_26

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_26 - -0XF8000768 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 3, Input -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 11, Output 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 26 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: SWDT Clock, Input 100: SDIO 1 IO Bit 2, Input/Output 101: SPI 1 Slave Select 1, Output 110: reserved 111: UART 0 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_26@0XF8000768 - -31:0 - -3fff - - - -803 - -MIO Pin 26 Control -
-

-

Register ( slcr )MIO_PIN_27

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_27 - -0XF800076C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Control, Input -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 12, Output 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 27 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: SWDT Reset, Output 100: SDIO 1 IO Bit 3, Input/Output 101: SPI 1 Slave Select 2, Output 110: reserved 111: UART 0 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_27@0XF800076C - -31:0 - -3fff - - - -803 - -MIO Pin 27 Control -
-

-

Register ( slcr )MIO_PIN_28

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_28 - -0XF8000770 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII Tx Clock, Output -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 4, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 13, Output 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 28 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 Clock, Input/Output 101: SPI 0 Serial Clock, Input/Output 110: TTC 1 Wave, Output 111: UART 1 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_28@0XF8000770 - -31:0 - -3fff - - - -204 - -MIO Pin 28 Control -
-

-

Register ( slcr )MIO_PIN_29

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_29 - -0XF8000774 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII TxD Bit 0, Output -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Direction, Input -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 14, Output 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 29 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 Command, Input/Output 101: SPI 0 MISO, Input/Output 110: TTC 1 Clock, Input 111: UART 1 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_29@0XF8000774 - -31:0 - -3fff - - - -205 - -MIO Pin 29 Control -
-

-

Register ( slcr )MIO_PIN_30

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_30 - -0XF8000778 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII TxD Bit 1, Output -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Stop, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 15, Output 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 30 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: reserved 100: SDIO 0 IO Bit 0, Input/Output 101: SPI 0 Slave Select 0, Input/Output 110: TTC 0 Wave, Output 111: UART 0 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_30@0XF8000778 - -31:0 - -3fff - - - -204 - -MIO Pin 30 Control -
-

-

Register ( slcr )MIO_PIN_31

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_31 - -0XF800077C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII TxD Bit 2, Output -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Next, Input -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 16, Output 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 31 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 1, Input/Output 101: SPI 0 Slave Select 1, Output 110: TTC 0 Clock, Input 111: UART 0 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_31@0XF800077C - -31:0 - -3fff - - - -205 - -MIO Pin 31 Control -
-

-

Register ( slcr )MIO_PIN_32

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_32 - -0XF8000780 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII TxD Bit 3, Output -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 0, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 17, Output 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 32 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 IO Bit 2, Input/Output 101: SPI 0 Slave Select 2, Output 110: reserved 111: UART 1 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_32@0XF8000780 - -31:0 - -3fff - - - -204 - -MIO Pin 32 Control -
-

-

Register ( slcr )MIO_PIN_33

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_33 - -0XF8000784 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII Tx Control, Output -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 1, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 18, Output 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 33 (Bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 3, Input/Output 101: SPI 0 MOSI, Input/Output 110: reserved 111: UART 1 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_33@0XF8000784 - -31:0 - -3fff - - - -204 - -MIO Pin 33 Control -
-

-

Register ( slcr )MIO_PIN_34

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_34 - -0XF8000788 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII Rx Clock, Input -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 2, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 19, Output 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 34 (bank 1), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: PJTAG TDI, Input 100: SDIO 1 IO Bit 0, Input/Output 110: reserved 111: UART 0 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_34@0XF8000788 - -31:0 - -3fff - - - -204 - -MIO Pin 34 Control -
-

-

Register ( slcr )MIO_PIN_35

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_35 - -0XF800078C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII RxD data Bit 0, Input -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 3, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 20, Output 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 35 (bank 1), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: PJTAG TDO, Output 100: SDIO 1 Command, Input/Output 101: SPI 1 MISO, Input/Output 110: reserved 111: UART 0 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_35@0XF800078C - -31:0 - -3fff - - - -204 - -MIO Pin 35 Control -
-

-

Register ( slcr )MIO_PIN_36

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_36 - -0XF8000790 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII Data Bit 1 -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Clock, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 21, Output 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 36 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Clock, Input/Output 110: reserved 111: UART 1 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_36@0XF8000790 - -31:0 - -3fff - - - -205 - -MIO Pin 36 Control -
-

-

Register ( slcr )MIO_PIN_37

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_37 - -0XF8000794 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII RxD Data Bit 2, Input -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 5, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 22, Output 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 37 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Slave Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_37@0XF8000794 - -31:0 - -3fff - - - -204 - -MIO Pin 37 Control -
-

-

Register ( slcr )MIO_PIN_38

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_38 - -0XF8000798 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII RxD Data Bit 3, Input -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 6, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 23, Output 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 38 (bank 1), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: SWDT Clock, Input 100: SDIO 1 IO Bit 2, Input/Output 101: SPI 1 Slave Select 1, Output 110: reserved 111: UART 0 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_38@0XF8000798 - -31:0 - -3fff - - - -204 - -MIO Pin 38 Control -
-

-

Register ( slcr )MIO_PIN_39

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_39 - -0XF800079C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII Rx Control, Input -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 7, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 24, Output 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 39 (bank 1), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: SWDT Reset, Output 100: SDIO 1 IO Bit 3, Input/Output 101: SPI 1 Slave Select 2, Output 110: reserved 111: UART 0 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_39@0XF800079C - -31:0 - -3fff - - - -204 - -MIO Pin 39 Control -
-

-

Register ( slcr )MIO_PIN_40

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_40 - -0XF80007A0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 4, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 40 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 Clock, Input/Output 101: SPI 0 Serial Clock, Input/Output 110: TTC 1 Wave, Output 111: UART 1 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_40@0XF80007A0 - -31:0 - -3fff - - - -280 - -MIO Pin 40 Control -
-

-

Register ( slcr )MIO_PIN_41

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_41 - -0XF80007A4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Direction, Input -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 41 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 Command, Input/Output 101: SPI 0 MISO, Input/Output 110: TTC 1 Clock, Input 111: UART 1 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_41@0XF80007A4 - -31:0 - -3fff - - - -280 - -MIO Pin 41 Control -
-

-

Register ( slcr )MIO_PIN_42

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_42 - -0XF80007A8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Stop, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 42 (bank 1), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: reserved 100: SDIO 0 IO Bit 0, Input/Output 101: SPI 0 Slave Select 0, Input/Output 110: TTC 0 Wave, Output 111: UART 0 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_42@0XF80007A8 - -31:0 - -3fff - - - -280 - -MIO Pin 42 Control -
-

-

Register ( slcr )MIO_PIN_43

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_43 - -0XF80007AC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Next, Input -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 43 (bank 1), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 1, Input/Output 101: SPI 0 Slave Select 1, Output 110: TTC 0 Clock, Input 111: UART 0 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_43@0XF80007AC - -31:0 - -3fff - - - -280 - -MIO Pin 43 Control -
-

-

Register ( slcr )MIO_PIN_44

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_44 - -0XF80007B0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 0, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 44 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 IO Bit 2, Input/Output 101: SPI 0 Slave Select 2, Output 110: reserved 111: UART 1 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_44@0XF80007B0 - -31:0 - -3fff - - - -280 - -MIO Pin 44 Control -
-

-

Register ( slcr )MIO_PIN_45

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_45 - -0XF80007B4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 1, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 45 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 3, Input/Output 101: SPI 0 MOSI, Input/Output 110: reserved 111: UART 1 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_45@0XF80007B4 - -31:0 - -3fff - - - -280 - -MIO Pin 45 Control -
-

-

Register ( slcr )MIO_PIN_46

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_46 - -0XF80007B8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 2, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -1 - -20 - -Level 3 Mux Select 000: GPIO 46 (bank 1), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: PJTAG TDI, Input 100: SDIO 1 IO Bit 0, Input/Output 101: SPI 1 MOSI, Input/Output 110: reserved 111: UART 0 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_46@0XF80007B8 - -31:0 - -3fff - - - -1221 - -MIO Pin 46 Control -
-

-

Register ( slcr )MIO_PIN_47

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_47 - -0XF80007BC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 3, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -1 - -20 - -Level 3 Mux Select 000: GPIO 47 (bank 1), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: PJTAG TDO, Output 100: SDIO 1 Command, Input/Output 101: SPI 1 MISO, Input/Output 110: reserved 111: UART 0 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_47@0XF80007BC - -31:0 - -3fff - - - -1220 - -MIO Pin 47 Control -
-

-

Register ( slcr )MIO_PIN_48

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_48 - -0XF80007C0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Clock, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -7 - -e0 - -Level 3 Mux Select 000: GPIO 48 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_48@0XF80007C0 - -31:0 - -3fff - - - -2e0 - -MIO Pin 48 Control -
-

-

Register ( slcr )MIO_PIN_49

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_49 - -0XF80007C4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 5, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -7 - -e0 - -Level 3 Mux Select 000: GPIO 49 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_49@0XF80007C4 - -31:0 - -3fff - - - -2e1 - -MIO Pin 49 Control -
-

-

Register ( slcr )MIO_PIN_50

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_50 - -0XF80007C8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 6, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -2 - -40 - -Level 3 Mux Select 000: GPIO 50 (bank 1), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: SWDT Clock, Input 100: SDIO 1 IO Bit 2, Input/Output 101: SPI 1 Slave Select 1, Output 110: reserved 111: UART 0 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_50@0XF80007C8 - -31:0 - -3fff - - - -1240 - -MIO Pin 50 Control -
-

-

Register ( slcr )MIO_PIN_51

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_51 - -0XF80007CC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 7, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -2 - -40 - -Level 3 Mux Select 000: GPIO 51 (bank 1), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: SWDT Reset, Output 100: SDIO 1 IO Bit 3, Input/Output 101: SPI 1 Slave Select 2, Output 110: reserved 111: UART 0 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_51@0XF80007CC - -31:0 - -3fff - - - -1240 - -MIO Pin 51 Control -
-

-

Register ( slcr )MIO_PIN_52

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_52 - -0XF80007D0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: reserved -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 52 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: SWDT Clock, Input 100: MDIO 0 Clock, Output 101: MDIO 1 Clock, Output 110: reserved 111: UART 1 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_52@0XF80007D0 - -31:0 - -3fff - - - -280 - -MIO Pin 52 Control -
-

-

Register ( slcr )MIO_PIN_53

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_53 - -0XF80007D4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: reserved -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 53 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: SWDT Reset, Output 100: MDIO 0 Data, Input/Output 101: MDIO 1 Data, Input/Output 110: reserved 111: UART 1 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_53@0XF80007D4 - -31:0 - -3fff - - - -280 - -MIO Pin 53 Control -
-

-

Register ( slcr )SD0_WP_CD_SEL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SD0_WP_CD_SEL - -0XF8000830 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SDIO0_WP_SEL - -5:0 - -3f - -f - -f - -SDIO 0 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input -
-SDIO0_CD_SEL - -21:16 - -3f0000 - -0 - -0 - -SDIO 0 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input -
-SD0_WP_CD_SEL@0XF8000830 - -31:0 - -3f003f - - - -f - -SDIO 0 WP CD select -
-

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

- -

-

ps7_peripherals_init_data_3_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -DDRIOB_DATA0 - - -0XF8000B48 - -32 - -RW - -0x000000 - -DDR IOB Config for Data 15:0 -
- -DDRIOB_DATA1 - - -0XF8000B4C - -32 - -RW - -0x000000 - -DDR IOB Config for Data 31:16 -
- -DDRIOB_DIFF0 - - -0XF8000B50 - -32 - -RW - -0x000000 - -DDR IOB Config for DQS 1:0 -
- -DDRIOB_DIFF1 - - -0XF8000B54 - -32 - -RW - -0x000000 - -DDR IOB Config for DQS 3:2 -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
- -Baud_rate_divider_reg0 - - -0XE0001034 - -32 - -RW - -0x000000 - -Baud Rate Divider Register -
- -Baud_rate_gen_reg0 - - -0XE0001018 - -32 - -RW - -0x000000 - -Baud Rate Generator Register. -
- -Control_reg0 - - -0XE0001000 - -32 - -RW - -0x000000 - -UART Control Register -
- -mode_reg0 - - -0XE0001004 - -32 - -RW - -0x000000 - -UART Mode Register -
- -Config_reg - - -0XE000D000 - -32 - -RW - -0x000000 - -SPI configuration register -
- -CTRL - - -0XF8007000 - -32 - -RW - -0x000000 - -Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. -
- -DIRM_0 - - -0XE000A204 - -32 - -RW - -0x000000 - -Direction mode (GPIO Bank0, MIO) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -OEN_0 - - -0XE000A208 - -32 - -RW - -0x000000 - -Output enable (GPIO Bank0, MIO) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -DIRM_0 - - -0XE000A204 - -32 - -RW - -0x000000 - -Direction mode (GPIO Bank0, MIO) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -OEN_0 - - -0XE000A208 - -32 - -RW - -0x000000 - -Output enable (GPIO Bank0, MIO) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -DIRM_0 - - -0XE000A204 - -32 - -RW - -0x000000 - -Direction mode (GPIO Bank0, MIO) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -OEN_0 - - -0XE000A208 - -32 - -RW - -0x000000 - -Output enable (GPIO Bank0, MIO) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

ps7_peripherals_init_data_3_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

DDR TERM/IBUF_DISABLE_MODE SETTINGS

-

Register ( slcr )DDRIOB_DATA0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DATA0 - -0XF8000B48 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IBUF_DISABLE_MODE - -7:7 - -80 - -1 - -80 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. -
-TERM_DISABLE_MODE - -8:8 - -100 - -1 - -100 - -Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. -
-DDRIOB_DATA0@0XF8000B48 - -31:0 - -180 - - - -180 - -DDR IOB Config for Data 15:0 -
-

-

Register ( slcr )DDRIOB_DATA1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DATA1 - -0XF8000B4C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IBUF_DISABLE_MODE - -7:7 - -80 - -1 - -80 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. -
-TERM_DISABLE_MODE - -8:8 - -100 - -1 - -100 - -Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. -
-DDRIOB_DATA1@0XF8000B4C - -31:0 - -180 - - - -180 - -DDR IOB Config for Data 31:16 -
-

-

Register ( slcr )DDRIOB_DIFF0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DIFF0 - -0XF8000B50 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IBUF_DISABLE_MODE - -7:7 - -80 - -1 - -80 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. -
-TERM_DISABLE_MODE - -8:8 - -100 - -1 - -100 - -Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. -
-DDRIOB_DIFF0@0XF8000B50 - -31:0 - -180 - - - -180 - -DDR IOB Config for DQS 1:0 -
-

-

Register ( slcr )DDRIOB_DIFF1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DIFF1 - -0XF8000B54 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IBUF_DISABLE_MODE - -7:7 - -80 - -1 - -80 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. -
-TERM_DISABLE_MODE - -8:8 - -100 - -1 - -100 - -Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. -
-DDRIOB_DIFF1@0XF8000B54 - -31:0 - -180 - - - -180 - -DDR IOB Config for DQS 3:2 -
-

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

-

SRAM/NOR SET OPMODE

-

TRACE CURRENT PORT SIZE

-

UART REGISTERS

-

Register ( slcr )Baud_rate_divider_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Baud_rate_divider_reg0 - -0XE0001034 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-BDIV - -7:0 - -ff - -6 - -6 - -Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate -
-Baud_rate_divider_reg0@0XE0001034 - -31:0 - -ff - - - -6 - -Baud Rate Divider Register -
-

-

Register ( slcr )Baud_rate_gen_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Baud_rate_gen_reg0 - -0XE0001018 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CD - -15:0 - -ffff - -3e - -3e - -Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample -
-Baud_rate_gen_reg0@0XE0001018 - -31:0 - -ffff - - - -3e - -Baud Rate Generator Register. -
-

-

Register ( slcr )Control_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Control_reg0 - -0XE0001000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-STPBRK - -8:8 - -100 - -0 - -0 - -Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a high level during 12 bit periods. It can be set regardless of the value of STTBRK. -
-STTBRK - -7:7 - -80 - -0 - -0 - -Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high. -
-RSTTO - -6:6 - -40 - -0 - -0 - -Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has completed. -
-TXDIS - -5:5 - -20 - -0 - -0 - -Transmit disable: 0: enable transmitter 1: disable transmitter -
-TXEN - -4:4 - -10 - -1 - -10 - -Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0. -
-RXDIS - -3:3 - -8 - -0 - -0 - -Receive disable: 0: enable 1: disable, regardless of the value of RXEN -
-RXEN - -2:2 - -4 - -1 - -4 - -Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. -
-TXRES - -1:1 - -2 - -1 - -2 - -Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded This bit is self clearing once the reset has completed. -
-RXRES - -0:0 - -1 - -1 - -1 - -Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit is self clearing once the reset has completed. -
-Control_reg0@0XE0001000 - -31:0 - -1ff - - - -17 - -UART Control Register -
-

-

Register ( slcr )mode_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-mode_reg0 - -0XE0001004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CHMODE - -9:8 - -300 - -0 - -0 - -Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback -
-NBSTOP - -7:6 - -c0 - -0 - -0 - -Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 stop bits 11: reserved -
-PAR - -5:3 - -38 - -4 - -20 - -Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity 001: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity -
-CHRL - -2:1 - -6 - -0 - -0 - -Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits -
-CLKS - -0:0 - -1 - -0 - -0 - -Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock source is uart_ref_clk 1: clock source is uart_ref_clk/8 -
-mode_reg0@0XE0001004 - -31:0 - -3ff - - - -20 - -UART Mode Register -
-

-

QSPI REGISTERS

-

Register ( slcr )Config_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Config_reg - -0XE000D000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-Holdb_dr - -19:19 - -80000 - -1 - -80000 - -If set, Holdb and WPn pins are actively driven by the qspi controller in 1-bit and 2-bit modes . If not set, then external pull up is required on HOLDb and WPn pins . Note that this bit doesn't affect the quad(4-bit) mode as Controller always drives these pins in quad mode. It is highly recommended to set this bit always(irrespective of mode of operation) while using QSPI -
-Config_reg@0XE000D000 - -31:0 - -80000 - - - -80000 - -SPI configuration register -
-

-

PL POWER ON RESET REGISTERS

-

Register ( slcr )CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CTRL - -0XF8007000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PCFG_POR_CNT_4K - -29:29 - -20000000 - -0 - -0 - -This register controls which POR timer the PL will use for power-up. 0 - Use 64k timer 1 - Use 4k timer -
-CTRL@0XF8007000 - -31:0 - -20000000 - - - -0 - -Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. -
-

-

SMC TIMING CALCULATION REGISTER UPDATE

-

NAND SET CYCLE

-

OPMODE

-

DIRECT COMMAND

-

SRAM/NOR CS0 SET CYCLE

-

DIRECT COMMAND

-

NOR CS0 BASE ADDRESS

-

SRAM/NOR CS1 SET CYCLE

-

DIRECT COMMAND

-

NOR CS1 BASE ADDRESS

-

USB RESET

-

DIR MODE BANK 0

-

Register ( slcr )DIRM_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DIRM_0 - -0XE000A204 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DIRECTION_0 - -31:0 - -ffffffff - -2880 - -2880 - -Direction mode 0: input 1: output Each bit configures the corresponding pin within the 32-bit bank NOTE: bits[8:7] of bank0 cannot be used as inputs. The DIRM bits can be set to 0, but reading DATA_RO does not reflect the input value. See the GPIO chapter for more information. -
-DIRM_0@0XE000A204 - -31:0 - -ffffffff - - - -2880 - -Direction mode (GPIO Bank0, MIO) -
-

-

DIR MODE BANK 1

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -ff7f - -ff7f0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -80 - -80 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -ff7f0080 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

OUTPUT ENABLE BANK 0

-

Register ( slcr )OEN_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-OEN_0 - -0XE000A208 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-OP_ENABLE_0 - -31:0 - -ffffffff - -2880 - -2880 - -Output enables 0: disabled 1: enabled Each bit configures the corresponding pin within the 32-bit bank -
-OEN_0@0XE000A208 - -31:0 - -ffffffff - - - -2880 - -Output enable (GPIO Bank0, MIO) -
-

-

OUTPUT ENABLE BANK 1

-

MASK_DATA_0_LSW LOW BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -ff7f - -ff7f0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -0 - -0 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -ff7f0000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW LOW BANK [31:16]

-

MASK_DATA_1_LSW LOW BANK [47:32]

-

MASK_DATA_1_MSW LOW BANK [53:48]

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -ff7f - -ff7f0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -80 - -80 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -ff7f0080 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

ENET RESET

-

DIR MODE BANK 0

-

Register ( slcr )DIRM_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DIRM_0 - -0XE000A204 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DIRECTION_0 - -31:0 - -ffffffff - -2880 - -2880 - -Direction mode 0: input 1: output Each bit configures the corresponding pin within the 32-bit bank NOTE: bits[8:7] of bank0 cannot be used as inputs. The DIRM bits can be set to 0, but reading DATA_RO does not reflect the input value. See the GPIO chapter for more information. -
-DIRM_0@0XE000A204 - -31:0 - -ffffffff - - - -2880 - -Direction mode (GPIO Bank0, MIO) -
-

-

DIR MODE BANK 1

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -f7ff - -f7ff0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -800 - -800 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -f7ff0800 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

OUTPUT ENABLE BANK 0

-

Register ( slcr )OEN_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-OEN_0 - -0XE000A208 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-OP_ENABLE_0 - -31:0 - -ffffffff - -2880 - -2880 - -Output enables 0: disabled 1: enabled Each bit configures the corresponding pin within the 32-bit bank -
-OEN_0@0XE000A208 - -31:0 - -ffffffff - - - -2880 - -Output enable (GPIO Bank0, MIO) -
-

-

OUTPUT ENABLE BANK 1

-

MASK_DATA_0_LSW LOW BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -f7ff - -f7ff0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -0 - -0 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -f7ff0000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW LOW BANK [31:16]

-

MASK_DATA_1_LSW LOW BANK [47:32]

-

MASK_DATA_1_MSW LOW BANK [53:48]

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -f7ff - -f7ff0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -800 - -800 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -f7ff0800 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

I2C RESET

-

DIR MODE GPIO BANK0

-

Register ( slcr )DIRM_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DIRM_0 - -0XE000A204 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DIRECTION_0 - -31:0 - -ffffffff - -2880 - -2880 - -Direction mode 0: input 1: output Each bit configures the corresponding pin within the 32-bit bank NOTE: bits[8:7] of bank0 cannot be used as inputs. The DIRM bits can be set to 0, but reading DATA_RO does not reflect the input value. See the GPIO chapter for more information. -
-DIRM_0@0XE000A204 - -31:0 - -ffffffff - - - -2880 - -Direction mode (GPIO Bank0, MIO) -
-

-

DIR MODE GPIO BANK1

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -dfff - -dfff0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -2000 - -2000 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -dfff2000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

OUTPUT ENABLE

-

Register ( slcr )OEN_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-OEN_0 - -0XE000A208 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-OP_ENABLE_0 - -31:0 - -ffffffff - -2880 - -2880 - -Output enables 0: disabled 1: enabled Each bit configures the corresponding pin within the 32-bit bank -
-OEN_0@0XE000A208 - -31:0 - -ffffffff - - - -2880 - -Output enable (GPIO Bank0, MIO) -
-

-

OUTPUT ENABLE

-

MASK_DATA_0_LSW LOW BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -dfff - -dfff0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -0 - -0 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -dfff0000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW LOW BANK [31:16]

-

MASK_DATA_1_LSW LOW BANK [47:32]

-

MASK_DATA_1_MSW LOW BANK [53:48]

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -dfff - -dfff0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -2000 - -2000 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -dfff2000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

- -

-

ps7_post_config_3_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -LVL_SHFTR_EN - - -0XF8000900 - -32 - -RW - -0x000000 - -Level Shifters Enable -
- -FPGA_RST_CTRL - - -0XF8000240 - -32 - -RW - -0x000000 - -FPGA Software Reset Control -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
-

-

ps7_post_config_3_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

ENABLING LEVEL SHIFTER

-

Register ( slcr )LVL_SHFTR_EN

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LVL_SHFTR_EN - -0XF8000900 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-USER_LVL_INP_EN_0 - -3:3 - -8 - -1 - -8 - -Level shifter enable to drive signals from PL to PS -
-USER_LVL_OUT_EN_0 - -2:2 - -4 - -1 - -4 - -Level shifter enable to drive signals from PS to PL -
-USER_LVL_INP_EN_1 - -1:1 - -2 - -1 - -2 - -Level shifter enable to drive signals from PL to PS -
-USER_LVL_OUT_EN_1 - -0:0 - -1 - -1 - -1 - -Level shifter enable to drive signals from PS to PL -
-LVL_SHFTR_EN@0XF8000900 - -31:0 - -f - - - -f - -Level Shifters Enable -
-

-

FPGA RESETS TO 0

-

Register ( slcr )FPGA_RST_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA_RST_CTRL - -0XF8000240 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reserved_3 - -31:25 - -fe000000 - -0 - -0 - -Reserved. Writes are ignored, read data is zero. -
-reserved_FPGA_ACP_RST - -24:24 - -1000000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_FPGA_AXDS3_RST - -23:23 - -800000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_FPGA_AXDS2_RST - -22:22 - -400000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_FPGA_AXDS1_RST - -21:21 - -200000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_FPGA_AXDS0_RST - -20:20 - -100000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_2 - -19:18 - -c0000 - -0 - -0 - -Reserved. Writes are ignored, read data is zero. -
-reserved_FSSW1_FPGA_RST - -17:17 - -20000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_FSSW0_FPGA_RST - -16:16 - -10000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_1 - -15:14 - -c000 - -0 - -0 - -Reserved. Writes are ignored, read data is zero. -
-reserved_FPGA_FMSW1_RST - -13:13 - -2000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_FPGA_FMSW0_RST - -12:12 - -1000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_FPGA_DMA3_RST - -11:11 - -800 - -0 - -0 - -Reserved. Do not modify. -
-reserved_FPGA_DMA2_RST - -10:10 - -400 - -0 - -0 - -Reserved. Do not modify. -
-reserved_FPGA_DMA1_RST - -9:9 - -200 - -0 - -0 - -Reserved. Do not modify. -
-reserved_FPGA_DMA0_RST - -8:8 - -100 - -0 - -0 - -Reserved. Do not modify. -
-reserved - -7:4 - -f0 - -0 - -0 - -Reserved. Writes are ignored, read data is zero. -
-FPGA3_OUT_RST - -3:3 - -8 - -0 - -0 - -PL Reset 3 (FCLKRESETN3 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN3 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) -
-FPGA2_OUT_RST - -2:2 - -4 - -0 - -0 - -PL Reset 2 (FCLKRESETN2 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN2 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) -
-FPGA1_OUT_RST - -1:1 - -2 - -0 - -0 - -PL Reset 1 (FCLKRESETN1 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN1 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) -
-FPGA0_OUT_RST - -0:0 - -1 - -0 - -0 - -PL Reset 0 (FCLKRESETN0 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN0 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) -
-FPGA_RST_CTRL@0XF8000240 - -31:0 - -ffffffff - - - -0 - -FPGA Software Reset Control -
-

-

AFI REGISTERS

-

AFI0 REGISTERS

-

AFI1 REGISTERS

-

AFI2 REGISTERS

-

AFI3 REGISTERS

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

- -

- - - - -

ps7_pll_init_data_2_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -ARM_PLL_CFG - - -0XF8000110 - -32 - -RW - -0x000000 - -ARM PLL Configuration -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_CLK_CTRL - - -0XF8000120 - -32 - -RW - -0x000000 - -CPU Clock Control -
- -DDR_PLL_CFG - - -0XF8000114 - -32 - -RW - -0x000000 - -DDR PLL Configuration -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_CLK_CTRL - - -0XF8000124 - -32 - -RW - -0x000000 - -DDR Clock Control -
- -IO_PLL_CFG - - -0XF8000118 - -32 - -RW - -0x000000 - -IO PLL Configuration -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
-

-

ps7_pll_init_data_2_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

PLL SLCR REGISTERS

-

ARM PLL INIT

-

Register ( slcr )ARM_PLL_CFG

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CFG - -0XF8000110 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RES - -7:4 - -f0 - -2 - -20 - -Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control -
-PLL_CP - -11:8 - -f00 - -2 - -200 - -Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control -
-LOCK_CNT - -21:12 - -3ff000 - -fa - -fa000 - -Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. -
-ARM_PLL_CFG@0XF8000110 - -31:0 - -3ffff0 - - - -fa220 - -ARM PLL Configuration -
-

-

UPDATE FB_DIV

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_FDIV - -18:12 - -7f000 - -28 - -28000 - -Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -7f000 - - - -28000 - -ARM PLL Control -
-

-

BY PASS PLL

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -1 - -10 - -ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL =1: 0: 1: bypass mode regardless of the pin strapping. -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -10 - - - -10 - -ARM PLL Control -
-

-

ASSERT RESET

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -1 - -1 - -Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset. After reset, program the PLLs and ensure that the serviced bit is asserted before using. -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -1 - - - -1 - -ARM PLL Control -
-

-

DEASSERT RESET

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -0 - -0 - -Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset. After reset, program the PLLs and ensure that the serviced bit is asserted before using. -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -1 - - - -0 - -ARM PLL Control -
-

-

CHECK PLL STATUS

-

Register ( slcr )PLL_STATUS

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PLL_STATUS - -0XF800010C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-ARM_PLL_LOCK - -0:0 - -1 - -1 - -1 - -ARM PLL lock status: 0: not locked, 1: locked -
-PLL_STATUS@0XF800010C - -31:0 - -1 - - - -1 - -tobe -
-

-

REMOVE PLL BY PASS

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -0 - -0 - -ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL =1: 0: 1: bypass mode regardless of the pin strapping. -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -10 - - - -0 - -ARM PLL Control -
-

-

Register ( slcr )ARM_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_CLK_CTRL - -0XF8000120 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the CPU clock: 0x: CPU PLL 10: divided DDR PLL 11: IO PLL -
-DIVISOR - -13:8 - -3f00 - -2 - -200 - -Frequency divisor for the CPU clock source. -
-CPU_6OR4XCLKACT - -24:24 - -1000000 - -1 - -1000000 - -CPU_6x4x Clock control: 0: disable, 1: enable -
-CPU_3OR2XCLKACT - -25:25 - -2000000 - -1 - -2000000 - -CPU_3x2x Clock control: 0: disable, 1: enable -
-CPU_2XCLKACT - -26:26 - -4000000 - -1 - -4000000 - -CPU_2x Clock control: 0: disable, 1: enable -
-CPU_1XCLKACT - -27:27 - -8000000 - -1 - -8000000 - -CPU_1x Clock control: 0: disable, 1: enable -
-CPU_PERI_CLKACT - -28:28 - -10000000 - -1 - -10000000 - -Clock active: 0: Clock is disabled 1: Clock is enabled -
-ARM_CLK_CTRL@0XF8000120 - -31:0 - -1f003f30 - - - -1f000200 - -CPU Clock Control -
-

-

DDR PLL INIT

-

Register ( slcr )DDR_PLL_CFG

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CFG - -0XF8000114 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RES - -7:4 - -f0 - -2 - -20 - -Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. -
-PLL_CP - -11:8 - -f00 - -2 - -200 - -Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. -
-LOCK_CNT - -21:12 - -3ff000 - -12c - -12c000 - -Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before staying locked. -
-DDR_PLL_CFG@0XF8000114 - -31:0 - -3ffff0 - - - -12c220 - -DDR PLL Configuration -
-

-

UPDATE FB_DIV

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_FDIV - -18:12 - -7f000 - -20 - -20000 - -Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -7f000 - - - -20000 - -DDR PLL Control -
-

-

BY PASS PLL

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -1 - -10 - -Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -10 - - - -10 - -DDR PLL Control -
-

-

ASSERT RESET

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -1 - -1 - -Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset Remember that after reset, program the PLLs and ensure that the serviced bit below is asserted before using. -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -1 - - - -1 - -DDR PLL Control -
-

-

DEASSERT RESET

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -0 - -0 - -Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset Remember that after reset, program the PLLs and ensure that the serviced bit below is asserted before using. -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -1 - - - -0 - -DDR PLL Control -
-

-

CHECK PLL STATUS

-

Register ( slcr )PLL_STATUS

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PLL_STATUS - -0XF800010C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DDR_PLL_LOCK - -1:1 - -2 - -1 - -2 - -DDR PLL lock status: 0: not locked, 1: locked -
-PLL_STATUS@0XF800010C - -31:0 - -2 - - - -2 - -tobe -
-

-

REMOVE PLL BY PASS

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -0 - -0 - -Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -10 - - - -0 - -DDR PLL Control -
-

-

Register ( slcr )DDR_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_CLK_CTRL - -0XF8000124 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DDR_3XCLKACT - -0:0 - -1 - -1 - -1 - -DDR_3x Clock control: 0: disable, 1: enable -
-DDR_2XCLKACT - -1:1 - -2 - -1 - -2 - -DDR_2x Clock control: 0: disable, 1: enable -
-DDR_3XCLK_DIVISOR - -25:20 - -3f00000 - -2 - -200000 - -Frequency divisor for the ddr_3x clock -
-DDR_2XCLK_DIVISOR - -31:26 - -fc000000 - -3 - -c000000 - -Frequency divisor for the ddr_2x clock -
-DDR_CLK_CTRL@0XF8000124 - -31:0 - -fff00003 - - - -c200003 - -DDR Clock Control -
-

-

IO PLL INIT

-

Register ( slcr )IO_PLL_CFG

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CFG - -0XF8000118 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RES - -7:4 - -f0 - -c - -c0 - -Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. -
-PLL_CP - -11:8 - -f00 - -2 - -200 - -Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. -
-LOCK_CNT - -21:12 - -3ff000 - -145 - -145000 - -Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before staying locked. -
-IO_PLL_CFG@0XF8000118 - -31:0 - -3ffff0 - - - -1452c0 - -IO PLL Configuration -
-

-

UPDATE FB_DIV

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_FDIV - -18:12 - -7f000 - -1e - -1e000 - -Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -7f000 - - - -1e000 - -IO PLL Control -
-

-

BY PASS PLL

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -1 - -10 - -Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -10 - - - -10 - -IO PLL Control -
-

-

ASSERT RESET

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -1 - -1 - -Drive the RESET input of the PLL: 0: PLL out of reset. 1: PLL held in reset. Remember that after a reset, program the PLLs and ensure that the serviced bit below is asserted before using. -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -1 - - - -1 - -IO PLL Control -
-

-

DEASSERT RESET

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -0 - -0 - -Drive the RESET input of the PLL: 0: PLL out of reset. 1: PLL held in reset. Remember that after a reset, program the PLLs and ensure that the serviced bit below is asserted before using. -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -1 - - - -0 - -IO PLL Control -
-

-

CHECK PLL STATUS

-

Register ( slcr )PLL_STATUS

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PLL_STATUS - -0XF800010C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IO_PLL_LOCK - -2:2 - -4 - -1 - -4 - -IO PLL lock status: 0: not locked, 1: locked -
-PLL_STATUS@0XF800010C - -31:0 - -4 - - - -4 - -tobe -
-

-

REMOVE PLL BY PASS

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -0 - -0 - -Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -10 - - - -0 - -IO PLL Control -
-

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

- -

-

ps7_clock_init_data_2_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -DCI_CLK_CTRL - - -0XF8000128 - -32 - -RW - -0x000000 - -DCI clock control -
- -GEM0_RCLK_CTRL - - -0XF8000138 - -32 - -RW - -0x000000 - -GigE 0 Rx Clock Control -
- -GEM0_CLK_CTRL - - -0XF8000140 - -32 - -RW - -0x000000 - -GigE 0 Ref Clock Control -
- -LQSPI_CLK_CTRL - - -0XF800014C - -32 - -RW - -0x000000 - -Quad SPI Ref Clock Control -
- -SDIO_CLK_CTRL - - -0XF8000150 - -32 - -RW - -0x000000 - -SDIO Ref Clock Control -
- -UART_CLK_CTRL - - -0XF8000154 - -32 - -RW - -0x000000 - -UART Ref Clock Control -
- -CAN_CLK_CTRL - - -0XF800015C - -32 - -RW - -0x000000 - -CAN Ref Clock Control -
- -CAN_MIOCLK_CTRL - - -0XF8000160 - -32 - -RW - -0x000000 - -CAN MIO Clock Control -
- -PCAP_CLK_CTRL - - -0XF8000168 - -32 - -RW - -0x000000 - -PCAP Clock Control -
- -FPGA0_CLK_CTRL - - -0XF8000170 - -32 - -RW - -0x000000 - -PL Clock 0 Output control -
- -FPGA1_CLK_CTRL - - -0XF8000180 - -32 - -RW - -0x000000 - -PL Clock 1 Output control -
- -FPGA2_CLK_CTRL - - -0XF8000190 - -32 - -RW - -0x000000 - -PL Clock 2 output control -
- -FPGA3_CLK_CTRL - - -0XF80001A0 - -32 - -RW - -0x000000 - -PL Clock 3 output control -
- -CLK_621_TRUE - - -0XF80001C4 - -32 - -RW - -0x000000 - -CPU Clock Ratio Mode select -
- -APER_CLK_CTRL - - -0XF800012C - -32 - -RW - -0x000000 - -AMBA Peripheral Clock Control -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
-

-

ps7_clock_init_data_2_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

CLOCK CONTROL SLCR REGISTERS

-

Register ( slcr )DCI_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DCI_CLK_CTRL - -0XF8000128 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -DCI clock control - 0: disable, 1: enable -
-DIVISOR0 - -13:8 - -3f00 - -23 - -2300 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. -
-DIVISOR1 - -25:20 - -3f00000 - -3 - -300000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider -
-DCI_CLK_CTRL@0XF8000128 - -31:0 - -3f03f01 - - - -302301 - -DCI clock control -
-

-

Register ( slcr )GEM0_RCLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-GEM0_RCLK_CTRL - -0XF8000138 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -Ethernet Controler 0 Rx Clock control 0: disable, 1: enable -
-SRCSEL - -4:4 - -10 - -0 - -0 - -Select the source to generate the Rx clock: 0: MIO Rx clock, 1: EMIO Rx clock -
-GEM0_RCLK_CTRL@0XF8000138 - -31:0 - -11 - - - -1 - -GigE 0 Rx Clock Control -
-

-

Register ( slcr )GEM0_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-GEM0_CLK_CTRL - -0XF8000140 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -Ethernet Controller 0 Reference Clock control 0: disable, 1: enable -
-SRCSEL - -6:4 - -70 - -0 - -0 - -Selects the source to generate the reference clock 00x: IO PLL. 010: ARM PLL. 011: DDR PLL 1xx: Ethernet controller 0 EMIO clock -
-DIVISOR - -13:8 - -3f00 - -8 - -800 - -First divisor for Ethernet controller 0 source clock. -
-DIVISOR1 - -25:20 - -3f00000 - -5 - -500000 - -Second divisor for Ethernet controller 0 source clock. -
-GEM0_CLK_CTRL@0XF8000140 - -31:0 - -3f03f71 - - - -500801 - -GigE 0 Ref Clock Control -
-

-

Register ( slcr )LQSPI_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LQSPI_CLK_CTRL - -0XF800014C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -Quad SPI Controller Reference Clock control 0: disable, 1: enable -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select clock source generate Quad SPI clock: 0x: IO PLL, 10: ARM PLL, 11: DDR PLL -
-DIVISOR - -13:8 - -3f00 - -5 - -500 - -Divisor for Quad SPI Controller source clock. -
-LQSPI_CLK_CTRL@0XF800014C - -31:0 - -3f31 - - - -501 - -Quad SPI Ref Clock Control -
-

-

Register ( slcr )SDIO_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SDIO_CLK_CTRL - -0XF8000150 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT0 - -0:0 - -1 - -1 - -1 - -SDIO Controller 0 Clock control. 0: disable, 1: enable -
-CLKACT1 - -1:1 - -2 - -0 - -0 - -SDIO Controller 1 Clock control. 0: disable, 1: enable -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock. 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
-DIVISOR - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. -
-SDIO_CLK_CTRL@0XF8000150 - -31:0 - -3f33 - - - -1401 - -SDIO Ref Clock Control -
-

-

Register ( slcr )UART_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-UART_CLK_CTRL - -0XF8000154 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT0 - -0:0 - -1 - -0 - -0 - -UART 0 Reference clock control. 0: disable, 1: enable -
-CLKACT1 - -1:1 - -2 - -1 - -2 - -UART 1 reference clock active: 0: Clock is disabled 1: Clock is enabled -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Selects the PLL source to generate the clock. 0x: IO PLL 10: ARM PLL 11: DDR PLL -
-DIVISOR - -13:8 - -3f00 - -14 - -1400 - -Divisor for UART Controller source clock. -
-UART_CLK_CTRL@0XF8000154 - -31:0 - -3f33 - - - -1402 - -UART Ref Clock Control -
-

-

Register ( slcr )CAN_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CAN_CLK_CTRL - -0XF800015C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT0 - -0:0 - -1 - -1 - -1 - -CAN 0 Reference Clock active: 0: Clock is disabled 1: Clock is enabled -
-CLKACT1 - -1:1 - -2 - -0 - -0 - -CAN 1 Reference Clock active: 0: Clock is disabled 1: Clock is enabled -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -e - -e00 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider -
-DIVISOR1 - -25:20 - -3f00000 - -3 - -300000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider. -
-CAN_CLK_CTRL@0XF800015C - -31:0 - -3f03f33 - - - -300e01 - -CAN Ref Clock Control -
-

-

Register ( slcr )CAN_MIOCLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CAN_MIOCLK_CTRL - -0XF8000160 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CAN0_MUX - -5:0 - -3f - -0 - -0 - -CAN 0 mux selection for MIO. Setting this to zero will select MIO[0] as the clock source. Only values 0-53 are valid. -
-CAN0_REF_SEL - -6:6 - -40 - -0 - -0 - -CAN 0 Reference Clock selection: 0: From internal PLL 1: From MIO based on the next field -
-CAN1_MUX - -21:16 - -3f0000 - -0 - -0 - -CAN 1 mux selection for MIO. Setting this to zero will select MIO[0] as the clock source. Only values 0-53 are valid. -
-CAN1_REF_SEL - -22:22 - -400000 - -0 - -0 - -CAN 1 Reference Clock selection: 0: From internal PLL. 1: From MIO based on the next field -
-CAN_MIOCLK_CTRL@0XF8000160 - -31:0 - -7f007f - - - -0 - -CAN MIO Clock Control -
-

-

Register ( slcr )PCAP_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PCAP_CLK_CTRL - -0XF8000168 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -Clock active: 0: Clock is disabled 1: Clock is enabled -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
-DIVISOR - -13:8 - -3f00 - -5 - -500 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. -
-PCAP_CLK_CTRL@0XF8000168 - -31:0 - -3f31 - - - -501 - -PCAP Clock Control -
-

-

Register ( slcr )FPGA0_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA0_CLK_CTRL - -0XF8000170 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. -
-DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide -
-FPGA0_CLK_CTRL@0XF8000170 - -31:0 - -3f03f30 - - - -101400 - -PL Clock 0 Output control -
-

-

Register ( slcr )FPGA1_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA1_CLK_CTRL - -0XF8000180 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. -
-DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide -
-FPGA1_CLK_CTRL@0XF8000180 - -31:0 - -3f03f30 - - - -101400 - -PL Clock 1 Output control -
-

-

Register ( slcr )FPGA2_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA2_CLK_CTRL - -0XF8000190 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. -
-DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide -
-FPGA2_CLK_CTRL@0XF8000190 - -31:0 - -3f03f30 - - - -101400 - -PL Clock 2 output control -
-

-

Register ( slcr )FPGA3_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA3_CLK_CTRL - -0XF80001A0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. -
-DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide -
-FPGA3_CLK_CTRL@0XF80001A0 - -31:0 - -3f03f30 - - - -101400 - -PL Clock 3 output control -
-

-

Register ( slcr )CLK_621_TRUE

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CLK_621_TRUE - -0XF80001C4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLK_621_TRUE - -0:0 - -1 - -1 - -1 - -Select the CPU clock ration: 0: 4:2:1 1: 6:2:1 -
-CLK_621_TRUE@0XF80001C4 - -31:0 - -1 - - - -1 - -CPU Clock Ratio Mode select -
-

-

Register ( slcr )APER_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-APER_CLK_CTRL - -0XF800012C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DMA_CPU_2XCLKACT - -0:0 - -1 - -1 - -1 - -DMA controller AMBA Clock control 0: disable, 1: enable -
-USB0_CPU_1XCLKACT - -2:2 - -4 - -1 - -4 - -USB controller 0 AMBA Clock control 0: disable, 1: enable -
-USB1_CPU_1XCLKACT - -3:3 - -8 - -1 - -8 - -USB controller 1 AMBA Clock control 0: disable, 1: enable -
-GEM0_CPU_1XCLKACT - -6:6 - -40 - -1 - -40 - -Gigabit Ethernet 0 AMBA Clock control 0: disable, 1: enable -
-GEM1_CPU_1XCLKACT - -7:7 - -80 - -0 - -0 - -Gigabit Ethernet 1 AMBA Clock control 0: disable, 1: enable -
-SDI0_CPU_1XCLKACT - -10:10 - -400 - -1 - -400 - -SDIO controller 0 AMBA Clock 0: disable, 1: enable -
-SDI1_CPU_1XCLKACT - -11:11 - -800 - -0 - -0 - -SDIO controller 1 AMBA Clock control 0: disable, 1: enable -
-SPI0_CPU_1XCLKACT - -14:14 - -4000 - -0 - -0 - -SPI 0 AMBA Clock control 0: disable, 1: enable -
-SPI1_CPU_1XCLKACT - -15:15 - -8000 - -0 - -0 - -SPI 1 AMBA Clock control 0: disable, 1: enable -
-CAN0_CPU_1XCLKACT - -16:16 - -10000 - -1 - -10000 - -CAN 0 AMBA Clock control 0: disable, 1: enable -
-CAN1_CPU_1XCLKACT - -17:17 - -20000 - -0 - -0 - -CAN 1 AMBA Clock control 0: disable, 1: enable -
-I2C0_CPU_1XCLKACT - -18:18 - -40000 - -1 - -40000 - -I2C 0 AMBA Clock control 0: disable, 1: enable -
-I2C1_CPU_1XCLKACT - -19:19 - -80000 - -1 - -80000 - -I2C 1 AMBA Clock control 0: disable, 1: enable -
-UART0_CPU_1XCLKACT - -20:20 - -100000 - -0 - -0 - -UART 0 AMBA Clock control 0: disable, 1: enable -
-UART1_CPU_1XCLKACT - -21:21 - -200000 - -1 - -200000 - -UART 1 AMBA Clock control 0: disable, 1: enable -
-GPIO_CPU_1XCLKACT - -22:22 - -400000 - -1 - -400000 - -GPIO AMBA Clock control 0: disable, 1: enable -
-LQSPI_CPU_1XCLKACT - -23:23 - -800000 - -1 - -800000 - -Quad SPI AMBA Clock control 0: disable, 1: enable -
-SMC_CPU_1XCLKACT - -24:24 - -1000000 - -1 - -1000000 - -SMC AMBA Clock control 0: disable, 1: enable -
-APER_CLK_CTRL@0XF800012C - -31:0 - -1ffcccd - - - -1ed044d - -AMBA Peripheral Clock Control -
-

-

THIS SHOULD BE BLANK

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

- -

-

ps7_ddr_init_data_2_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -ddrc_ctrl - - -0XF8006000 - -32 - -RW - -0x000000 - -DDRC Control -
- -Two_rank_cfg - - -0XF8006004 - -32 - -RW - -0x000000 - -Two Rank Configuration -
- -HPR_reg - - -0XF8006008 - -32 - -RW - -0x000000 - -HPR Queue control -
- -LPR_reg - - -0XF800600C - -32 - -RW - -0x000000 - -LPR Queue control -
- -WR_reg - - -0XF8006010 - -32 - -RW - -0x000000 - -WR Queue control -
- -DRAM_param_reg0 - - -0XF8006014 - -32 - -RW - -0x000000 - -DRAM Parameters 0 -
- -DRAM_param_reg1 - - -0XF8006018 - -32 - -RW - -0x000000 - -DRAM Parameters 1 -
- -DRAM_param_reg2 - - -0XF800601C - -32 - -RW - -0x000000 - -DRAM Parameters 2 -
- -DRAM_param_reg3 - - -0XF8006020 - -32 - -RW - -0x000000 - -DRAM Parameters 3 -
- -DRAM_param_reg4 - - -0XF8006024 - -32 - -RW - -0x000000 - -DRAM Parameters 4 -
- -DRAM_init_param - - -0XF8006028 - -32 - -RW - -0x000000 - -DRAM Initialization Parameters -
- -DRAM_EMR_reg - - -0XF800602C - -32 - -RW - -0x000000 - -DRAM EMR2, EMR3 access -
- -DRAM_EMR_MR_reg - - -0XF8006030 - -32 - -RW - -0x000000 - -DRAM EMR, MR access -
- -DRAM_burst8_rdwr - - -0XF8006034 - -32 - -RW - -0x000000 - -DRAM Burst 8 read/write -
- -DRAM_disable_DQ - - -0XF8006038 - -32 - -RW - -0x000000 - -DRAM Disable DQ -
- -DRAM_addr_map_bank - - -0XF800603C - -32 - -RW - -0x000000 - -Row/Column address bits -
- -DRAM_addr_map_col - - -0XF8006040 - -32 - -RW - -0x000000 - -Column address bits -
- -DRAM_addr_map_row - - -0XF8006044 - -32 - -RW - -0x000000 - -Select DRAM row address bits -
- -DRAM_ODT_reg - - -0XF8006048 - -32 - -RW - -0x000000 - -DRAM ODT control -
- -phy_cmd_timeout_rddata_cpt - - -0XF8006050 - -32 - -RW - -0x000000 - -PHY command time out and read data capture FIFO -
- -DLL_calib - - -0XF8006058 - -32 - -RW - -0x000000 - -DLL calibration -
- -ODT_delay_hold - - -0XF800605C - -32 - -RW - -0x000000 - -ODT delay and ODT hold -
- -ctrl_reg1 - - -0XF8006060 - -32 - -RW - -0x000000 - -Controller 1 -
- -ctrl_reg2 - - -0XF8006064 - -32 - -RW - -0x000000 - -Controller 2 -
- -ctrl_reg3 - - -0XF8006068 - -32 - -RW - -0x000000 - -Controller 3 -
- -ctrl_reg4 - - -0XF800606C - -32 - -RW - -0x000000 - -Controller 4 -
- -ctrl_reg5 - - -0XF8006078 - -32 - -RW - -0x000000 - -Controller register 5 -
- -ctrl_reg6 - - -0XF800607C - -32 - -RW - -0x000000 - -Controller register 6 -
- -CHE_REFRESH_TIMER01 - - -0XF80060A0 - -32 - -RW - -0x000000 - -CHE_REFRESH_TIMER01 -
- -CHE_T_ZQ - - -0XF80060A4 - -32 - -RW - -0x000000 - -ZQ parameters -
- -CHE_T_ZQ_Short_Interval_Reg - - -0XF80060A8 - -32 - -RW - -0x000000 - -Misc parameters -
- -deep_pwrdwn_reg - - -0XF80060AC - -32 - -RW - -0x000000 - -Deep powerdown (LPDDR2) -
- -reg_2c - - -0XF80060B0 - -32 - -RW - -0x000000 - -Training control -
- -reg_2d - - -0XF80060B4 - -32 - -RW - -0x000000 - -Misc Debug -
- -dfi_timing - - -0XF80060B8 - -32 - -RW - -0x000000 - -DFI timing -
- -CHE_ECC_CONTROL_REG_OFFSET - - -0XF80060C4 - -32 - -RW - -0x000000 - -ECC error clear -
- -CHE_ECC_CONTROL_REG_OFFSET - - -0XF80060C4 - -32 - -RW - -0x000000 - -ECC error clear -
- -CHE_CORR_ECC_LOG_REG_OFFSET - - -0XF80060C8 - -32 - -RW - -0x000000 - -ECC error correction -
- -CHE_UNCORR_ECC_LOG_REG_OFFSET - - -0XF80060DC - -32 - -RW - -0x000000 - -ECC unrecoverable error status -
- -CHE_ECC_STATS_REG_OFFSET - - -0XF80060F0 - -32 - -RW - -0x000000 - -ECC error count -
- -ECC_scrub - - -0XF80060F4 - -32 - -RW - -0x000000 - -ECC mode/scrub -
- -phy_rcvr_enable - - -0XF8006114 - -32 - -RW - -0x000000 - -Phy receiver enable register -
- -PHY_Config0 - - -0XF8006118 - -32 - -RW - -0x000000 - -PHY configuration register for data slice 0. -
- -PHY_Config1 - - -0XF800611C - -32 - -RW - -0x000000 - -PHY configuration register for data slice 1. -
- -PHY_Config2 - - -0XF8006120 - -32 - -RW - -0x000000 - -PHY configuration register for data slice 2. -
- -PHY_Config3 - - -0XF8006124 - -32 - -RW - -0x000000 - -PHY configuration register for data slice 3. -
- -phy_init_ratio0 - - -0XF800612C - -32 - -RW - -0x000000 - -PHY init ratio register for data slice 0. -
- -phy_init_ratio1 - - -0XF8006130 - -32 - -RW - -0x000000 - -PHY init ratio register for data slice 1. -
- -phy_init_ratio2 - - -0XF8006134 - -32 - -RW - -0x000000 - -PHY init ratio register for data slice 2. -
- -phy_init_ratio3 - - -0XF8006138 - -32 - -RW - -0x000000 - -PHY init ratio register for data slice 3. -
- -phy_rd_dqs_cfg0 - - -0XF8006140 - -32 - -RW - -0x000000 - -PHY read DQS configuration register for data slice 0. -
- -phy_rd_dqs_cfg1 - - -0XF8006144 - -32 - -RW - -0x000000 - -PHY read DQS configuration register for data slice 1. -
- -phy_rd_dqs_cfg2 - - -0XF8006148 - -32 - -RW - -0x000000 - -PHY read DQS configuration register for data slice 2. -
- -phy_rd_dqs_cfg3 - - -0XF800614C - -32 - -RW - -0x000000 - -PHY read DQS configuration register for data slice 3. -
- -phy_wr_dqs_cfg0 - - -0XF8006154 - -32 - -RW - -0x000000 - -PHY write DQS configuration register for data slice 0. -
- -phy_wr_dqs_cfg1 - - -0XF8006158 - -32 - -RW - -0x000000 - -PHY write DQS configuration register for data slice 1. -
- -phy_wr_dqs_cfg2 - - -0XF800615C - -32 - -RW - -0x000000 - -PHY write DQS configuration register for data slice 2. -
- -phy_wr_dqs_cfg3 - - -0XF8006160 - -32 - -RW - -0x000000 - -PHY write DQS configuration register for data slice 3. -
- -phy_we_cfg0 - - -0XF8006168 - -32 - -RW - -0x000000 - -PHY FIFO write enable configuration for data slice 0. -
- -phy_we_cfg1 - - -0XF800616C - -32 - -RW - -0x000000 - -PHY FIFO write enable configuration for data slice 1. -
- -phy_we_cfg2 - - -0XF8006170 - -32 - -RW - -0x000000 - -PHY FIFO write enable configuration for data slice 2. -
- -phy_we_cfg3 - - -0XF8006174 - -32 - -RW - -0x000000 - -PHY FIFO write enable configuration for data slice 3. -
- -wr_data_slv0 - - -0XF800617C - -32 - -RW - -0x000000 - -PHY write data slave ratio config for data slice 0. -
- -wr_data_slv1 - - -0XF8006180 - -32 - -RW - -0x000000 - -PHY write data slave ratio config for data slice 1. -
- -wr_data_slv2 - - -0XF8006184 - -32 - -RW - -0x000000 - -PHY write data slave ratio config for data slice 2. -
- -wr_data_slv3 - - -0XF8006188 - -32 - -RW - -0x000000 - -PHY write data slave ratio config for data slice 3. -
- -reg_64 - - -0XF8006190 - -32 - -RW - -0x000000 - -Training control 2 -
- -reg_65 - - -0XF8006194 - -32 - -RW - -0x000000 - -Training control 3 -
- -page_mask - - -0XF8006204 - -32 - -RW - -0x000000 - -Page mask -
- -axi_priority_wr_port0 - - -0XF8006208 - -32 - -RW - -0x000000 - -AXI Priority control for write port 0. -
- -axi_priority_wr_port1 - - -0XF800620C - -32 - -RW - -0x000000 - -AXI Priority control for write port 1. -
- -axi_priority_wr_port2 - - -0XF8006210 - -32 - -RW - -0x000000 - -AXI Priority control for write port 2. -
- -axi_priority_wr_port3 - - -0XF8006214 - -32 - -RW - -0x000000 - -AXI Priority control for write port 3. -
- -axi_priority_rd_port0 - - -0XF8006218 - -32 - -RW - -0x000000 - -AXI Priority control for read port 0. -
- -axi_priority_rd_port1 - - -0XF800621C - -32 - -RW - -0x000000 - -AXI Priority control for read port 1. -
- -axi_priority_rd_port2 - - -0XF8006220 - -32 - -RW - -0x000000 - -AXI Priority control for read port 2. -
- -axi_priority_rd_port3 - - -0XF8006224 - -32 - -RW - -0x000000 - -AXI Priority control for read port 3. -
- -lpddr_ctrl0 - - -0XF80062A8 - -32 - -RW - -0x000000 - -LPDDR2 Control 0 -
- -lpddr_ctrl1 - - -0XF80062AC - -32 - -RW - -0x000000 - -LPDDR2 Control 1 -
- -lpddr_ctrl2 - - -0XF80062B0 - -32 - -RW - -0x000000 - -LPDDR2 Control 2 -
- -lpddr_ctrl3 - - -0XF80062B4 - -32 - -RW - -0x000000 - -LPDDR2 Control 3 -
- -ddrc_ctrl - - -0XF8006000 - -32 - -RW - -0x000000 - -DDRC Control -
-

-

ps7_ddr_init_data_2_0

- - - - - - - - - -

DDR INITIALIZATION

-

LOCK DDR

-

Register ( slcr )ddrc_ctrl

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ddrc_ctrl - -0XF8006000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_soft_rstb - -0:0 - -1 - -0 - -0 - -Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. -
-reg_ddrc_powerdown_en - -1:1 - -2 - -0 - -0 - -Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable -
-reg_ddrc_data_bus_width - -3:2 - -c - -0 - -0 - -DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved -
-reg_ddrc_burst8_refresh - -6:4 - -70 - -0 - -0 - -Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh -
-reg_ddrc_rdwr_idle_gap - -13:7 - -3f80 - -1 - -80 - -When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. -
-reg_ddrc_dis_rd_bypass - -14:14 - -4000 - -0 - -0 - -Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. -
-reg_ddrc_dis_act_bypass - -15:15 - -8000 - -0 - -0 - -Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. -
-reg_ddrc_dis_auto_refresh - -16:16 - -10000 - -0 - -0 - -Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. -
-ddrc_ctrl@0XF8006000 - -31:0 - -1ffff - - - -80 - -DDRC Control -
-

-

Register ( slcr )Two_rank_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Two_rank_cfg - -0XF8006004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_t_rfc_nom_x32 - -11:0 - -fff - -81 - -81 - -tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM related. Default value is set for DDR3. Dynamic Bit Field. -
-reg_ddrc_active_ranks - -13:12 - -3000 - -1 - -1000 - -Rank configuration: 01: One Rank of DDR 11: Two Ranks of DDR Others: reserved -
-reg_ddrc_addrmap_cs_bit0 - -18:14 - -7c000 - -0 - -0 - -Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. -
-reg_ddrc_wr_odt_block - -20:19 - -180000 - -1 - -80000 - -Block read/write scheduling cycle count when Write requires changing ODT settings 00: 1 cycle 01: 2 cycles 10: 3 cycles others: reserved -
-reg_ddrc_diff_rank_rd_2cycle_gap - -21:21 - -200000 - -0 - -0 - -Only present for multi-rank configurations. The two cycle gap is required for mDDR only, due to the large variance in tDQSCK in mDDR. 0: schedule a 1-cycle gap in data responses when performing consecutive reads to different ranks 1: schedule 2 cycle gap for the same -
-reg_ddrc_addrmap_cs_bit1 - -26:22 - -7c00000 - -0 - -0 - -Only present for multi-rank configurations. Selects the address bit used as rank address bit 1. Valid Range: 0 to 25, and 31 Internal Base: 10 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 1 is set to 0. -
-reg_ddrc_addrmap_open_bank - -27:27 - -8000000 - -0 - -0 - -Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1: Set the address map to Open Bank mode -
-reg_ddrc_addrmap_4bank_ram - -28:28 - -10000000 - -0 - -0 - -Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1: Set the address map for 4 Bank RAMs -
-Two_rank_cfg@0XF8006004 - -31:0 - -1fffffff - - - -81081 - -Two Rank Configuration -
-

-

Register ( slcr )HPR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-HPR_reg - -0XF8006008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_hpr_min_non_critical_x32 - -10:0 - -7ff - -f - -f - -Number of counts that the HPR queue is guaranteed to be non-critical (1 count = 32 DDR clocks). -
-reg_ddrc_hpr_max_starve_x32 - -21:11 - -3ff800 - -f - -7800 - -Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks -
-reg_ddrc_hpr_xact_run_length - -25:22 - -3c00000 - -f - -3c00000 - -Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. -
-HPR_reg@0XF8006008 - -31:0 - -3ffffff - - - -3c0780f - -HPR Queue control -
-

-

Register ( slcr )LPR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LPR_reg - -0XF800600C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_lpr_min_non_critical_x32 - -10:0 - -7ff - -1 - -1 - -Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks -
-reg_ddrc_lpr_max_starve_x32 - -21:11 - -3ff800 - -2 - -1000 - -Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks -
-reg_ddrc_lpr_xact_run_length - -25:22 - -3c00000 - -8 - -2000000 - -Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available -
-LPR_reg@0XF800600C - -31:0 - -3ffffff - - - -2001001 - -LPR Queue control -
-

-

Register ( slcr )WR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-WR_reg - -0XF8006010 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_w_min_non_critical_x32 - -10:0 - -7ff - -1 - -1 - -Number of clock cycles that the WR queue is guaranteed to be non-critical. -
-reg_ddrc_w_xact_run_length - -14:11 - -7800 - -8 - -4000 - -Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available -
-reg_ddrc_w_max_starve_x32 - -25:15 - -3ff8000 - -2 - -10000 - -Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. -
-WR_reg@0XF8006010 - -31:0 - -3ffffff - - - -14001 - -WR Queue control -
-

-

Register ( slcr )DRAM_param_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg0 - -0XF8006014 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_t_rc - -5:0 - -3f - -1b - -1b - -tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM Related. Default value is set for DDR3. -
-reg_ddrc_t_rfc_min - -13:6 - -3fc0 - -56 - -1580 - -tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75nS to 195nS). DRAM Related. Default value is set for DDR3. Dynamic Bit Field. -
-reg_ddrc_post_selfref_gap_x32 - -20:14 - -1fc000 - -10 - -40000 - -Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks. DRAM Related -
-DRAM_param_reg0@0XF8006014 - -31:0 - -1fffff - - - -4159b - -DRAM Parameters 0 -
-

-

Register ( slcr )DRAM_param_reg1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg1 - -0XF8006018 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_wr2pre - -4:0 - -1f - -12 - -12 - -Minimum time between write and precharge to same bank DDR and DDR3: WL + BL/2 + tWR LPDDR2: WL + BL/2 + tWR + 1 Unit: Clocks where, WL: write latency. BL: burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR: write recovery time. This comes directly from the DRAM specs. -
-reg_ddrc_powerdown_to_x32 - -9:5 - -3e0 - -6 - -c0 - -After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. -
-reg_ddrc_t_faw - -15:10 - -fc00 - -10 - -4000 - -tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks. DRAM Related. -
-reg_ddrc_t_ras_max - -21:16 - -3f0000 - -24 - -240000 - -tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec is 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM related. -
-reg_ddrc_t_ras_min - -26:22 - -7c00000 - -14 - -5000000 - -tRAS(min) - Minimum time between activate and precharge to the same bank (spec is 45 ns). Unit: clocks DRAM related. Default value is set for DDR3. -
-reg_ddrc_t_cke - -31:28 - -f0000000 - -4 - -40000000 - -Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. DDR2 and DDR3: Set this to tCKE value. LPDDR2: Set this to the larger of tCKE or tCKESR. Unit: clocks. -
-DRAM_param_reg1@0XF8006018 - -31:0 - -f7ffffff - - - -452440d2 - -DRAM Parameters 1 -
-

-

Register ( slcr )DRAM_param_reg2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg2 - -0XF800601C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_write_latency - -4:0 - -1f - -5 - -5 - -Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2 and DDR3: WL -1 LPDDR2: WL Where WL: Write Latency of DRAM DRAM related. -
-reg_ddrc_rd2wr - -9:5 - -3e0 - -7 - -e0 - -Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. DDR2 and DDR3: RL + BL/2 + 2 - WL LPDDR2: RL + BL/2 + RU (tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. -
-reg_ddrc_wr2rd - -14:10 - -7c00 - -e - -3800 - -Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. DDR2 and DDR3: WL + tWTR + BL/2 LPDDR2: WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL: Write latency, BL: burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR: internal WRITE to READ command delay. This comes directly from the DRAM specs. -
-reg_ddrc_t_xp - -19:15 - -f8000 - -4 - -20000 - -tXP: Minimum time after power down exit to any operation. DRAM related. -
-reg_ddrc_pad_pd - -22:20 - -700000 - -0 - -0 - -If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. -
-reg_ddrc_rd2pre - -27:23 - -f800000 - -4 - -2000000 - -Minimum time from read to precharge of same bank DDR2: AL + BL/2 + max(tRTP, 2) - 2 DDR3: AL + max (tRTP, 4) LPDDR2: BL/2 + tRTP - 1 AL: Additive Latency; BL: DRAM Burst Length; tRTP: value from spec. DRAM related. -
-reg_ddrc_t_rcd - -31:28 - -f0000000 - -7 - -70000000 - -tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency. DRAM Related. -
-DRAM_param_reg2@0XF800601C - -31:0 - -ffffffff - - - -720238e5 - -DRAM Parameters 2 -
-

-

Register ( slcr )DRAM_param_reg3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg3 - -0XF8006020 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_t_ccd - -4:2 - -1c - -4 - -10 - -tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1. DRAM related. -
-reg_ddrc_t_rrd - -7:5 - -e0 - -4 - -80 - -tRRD - Minimum time between activates from bank A to bank B. (spec: 10ns or less) DRAM RELATED -
-reg_ddrc_refresh_margin - -11:8 - -f00 - -2 - -200 - -Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. -
-reg_ddrc_t_rp - -15:12 - -f000 - -7 - -7000 - -tRP - Minimum time from precharge to activate of same bank. DRAM RELATED -
-reg_ddrc_refresh_to_x32 - -20:16 - -1f0000 - -8 - -80000 - -If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. Dynamic Bit Field. -
-reg_ddrc_sdram - -21:21 - -200000 - -1 - -200000 - -1: sdram device 0: non-sdram device -
-reg_ddrc_mobile - -22:22 - -400000 - -0 - -0 - -0: DDR2 or DDR3 device. 1: LPDDR2 device. -
-reg_ddrc_clock_stop_en - -23:23 - -800000 - -0 - -0 - -DDR2 and DDR3: not used. LPDDR2: 0: stop_clk will never be asserted. 1: enable the assertion of stop_clk to the PHY whenever a clock is not required -
-reg_ddrc_read_latency - -28:24 - -1f000000 - -7 - -7000000 - -Non-LPDDR2: not used. DDR2 and DDR3: Set to Read Latency, RL. Time from Read command to Read data on DRAM interface. It is used to calculate when DRAM clock may be stopped. Unit: DDR clock. -
-reg_phy_mode_ddr1_ddr2 - -29:29 - -20000000 - -1 - -20000000 - -unused -
-reg_ddrc_dis_pad_pd - -30:30 - -40000000 - -0 - -0 - -1: disable the pad power down feature 0: Enable the pad power down feature. -
-reg_ddrc_loopback - -31:31 - -80000000 - -0 - -0 - -unused -
-DRAM_param_reg3@0XF8006020 - -31:0 - -fffffffc - - - -27287290 - -DRAM Parameters 3 -
-

-

Register ( slcr )DRAM_param_reg4

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg4 - -0XF8006024 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_en_2t_timing_mode - -0:0 - -1 - -0 - -0 - -1: DDRC will use 2T timing 0: DDRC will use 1T timing -
-reg_ddrc_prefer_write - -1:1 - -2 - -0 - -0 - -1: Bank selector prefers writes over reads -
-reg_ddrc_max_rank_rd - -5:2 - -3c - -f - -3c - -Only present for multi-rank configurations Background: Reads to the same rank can be performed back-to-back. Reads from different ranks require additional 1-cycle latency in between (to avoid possible data bus contention). The controller arbitrates for bus access on a cycle-by-cycle basis; therefore after a read is scheduled, there is a clock cycle in which only reads from the same bank are eligible to be scheduled. This prevents reads from other ranks from having fair access to the data bus. This parameter represents the maximum number of 64-byte reads (or 32B reads in some short read cases) that can be scheduled consecutively to the same rank. After this number is reached, a 1-cycle delay is inserted by the scheduler to allow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fairness (and hence worst-case latency). FOR PERFORMANCE ONLY. -
-reg_ddrc_mr_wr - -6:6 - -40 - -0 - -0 - -A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and "ddrc_reg_mr_wr_busy" is detected low. -
-reg_ddrc_mr_addr - -8:7 - -180 - -0 - -0 - -DDR2 and DDR3: Mode register address. LPDDR2: not used. 00: MR0 01: MR1 10: MR2 11: MR3 -
-reg_ddrc_mr_data - -24:9 - -1fffe00 - -0 - -0 - -DDR2 and DDR3: Mode register write data. LPDDR2: The 16 bits are interpreted for reads and writes: Reads: MR Addr[7:0], Don't Care[7:0]. Writes: MR Addf[7:0], MR Data[7:0]. -
-ddrc_reg_mr_wr_busy - -25:25 - -2000000 - -0 - -0 - -Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 0: Indicates that the core can initiate a mode register write / read operation. 1: Indicates that mode register write / read operation is in progress. -
-reg_ddrc_mr_type - -26:26 - -4000000 - -0 - -0 - -Indicates whether the Mode register operation is read or write 0: write 1: read -
-reg_ddrc_mr_rdata_valid - -27:27 - -8000000 - -0 - -0 - -This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 0 by default. This bit will be cleared (0), whenever a Mode Register Read command is issued. This bit will be set to 1, when the Mode Register Read Data is written to register 0xA9. -
-DRAM_param_reg4@0XF8006024 - -31:0 - -fffffff - - - -3c - -DRAM Parameters 4 -
-

-

Register ( slcr )DRAM_init_param

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_init_param - -0XF8006028 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_final_wait_x32 - -6:0 - -7f - -7 - -7 - -Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. -
-reg_ddrc_pre_ocd_x32 - -10:7 - -780 - -0 - -0 - -Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. -
-reg_ddrc_t_mrd - -13:11 - -3800 - -4 - -2000 - -tMRD - Cycles between Load Mode commands. DRAM related. Default value is set for DDR3. -
-DRAM_init_param@0XF8006028 - -31:0 - -3fff - - - -2007 - -DRAM Initialization Parameters -
-

-

Register ( slcr )DRAM_EMR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_EMR_reg - -0XF800602C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_emr2 - -15:0 - -ffff - -8 - -8 - -DDR2 and DDR3: Value written into the DRAM EMR2 register. LPDDR2: Value written into the DRAM MR3 register. -
-reg_ddrc_emr3 - -31:16 - -ffff0000 - -0 - -0 - -DDR2 and DDR3: Value written into the DRAM EMR3 register. LPDDR2: not used. -
-DRAM_EMR_reg@0XF800602C - -31:0 - -ffffffff - - - -8 - -DRAM EMR2, EMR3 access -
-

-

Register ( slcr )DRAM_EMR_MR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_EMR_MR_reg - -0XF8006030 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_mr - -15:0 - -ffff - -930 - -930 - -DDR2 and DDR3: Value written into the DRAM Mode register. Bit 8 is for DLL and the setting here is ignored. The controller sets appropriately. LPDDR2: Value written into the DRAM MR1 register -
-reg_ddrc_emr - -31:16 - -ffff0000 - -4 - -40000 - -DDR2 and DDR3: Value written into the DRAM EMR registers. Bits [9:7] are for OCD and the setting in this register is ignored. The controller sets those bits appropriately. LPDDR2: Value written into the DRAM MR2 register. -
-DRAM_EMR_MR_reg@0XF8006030 - -31:0 - -ffffffff - - - -40930 - -DRAM EMR, MR access -
-

-

Register ( slcr )DRAM_burst8_rdwr

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_burst8_rdwr - -0XF8006034 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_burst_rdwr - -3:0 - -f - -4 - -4 - -Controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. 0010: Burst length of 4 0100: Burst length of 8 1000: Burst length of 16 (LPDDR2 with ___-bit data) All other values are reserved -
-reg_ddrc_pre_cke_x1024 - -13:4 - -3ff0 - -105 - -1050 - -Clock cycles to wait after a DDR software reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 uS. LPDDR2 - tINIT0 of 20 mS (max) + tINIT1 of 100 nS (min) -
-reg_ddrc_post_cke_x1024 - -25:16 - -3ff0000 - -1 - -10000 - -Clock cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. -
-reg_ddrc_burstchop - -28:28 - -10000000 - -0 - -0 - -Feature not supported. When 1, Controller is out in burstchop mode. -
-DRAM_burst8_rdwr@0XF8006034 - -31:0 - -13ff3fff - - - -11054 - -DRAM Burst 8 read/write -
-

-

Register ( slcr )DRAM_disable_DQ

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_disable_DQ - -0XF8006038 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_force_low_pri_n - -0:0 - -1 - -0 - -0 - -Read Transaction Priority disable. 0: read transactions forced to low priority (turns off Bypass). 1: HPR reads allowed if enabled in the AXI priority read registers. -
-reg_ddrc_dis_dq - -1:1 - -2 - -0 - -0 - -When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. Dynamic Bit Field. -
-reg_phy_debug_mode - -6:6 - -40 - -0 - -0 - -Not Applicable in this PHY. -
-reg_phy_wr_level_start - -7:7 - -80 - -0 - -0 - -Not Applicable in this PHY. -
-reg_phy_rd_level_start - -8:8 - -100 - -0 - -0 - -Not Applicable in this PHY. -
-reg_phy_dq0_wait_t - -12:9 - -1e00 - -0 - -0 - -Not Applicable in this PHY. -
-DRAM_disable_DQ@0XF8006038 - -31:0 - -1fc3 - - - -0 - -DRAM Disable DQ -
-

-

Register ( slcr )DRAM_addr_map_bank

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_addr_map_bank - -0XF800603C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_addrmap_bank_b0 - -3:0 - -f - -7 - -7 - -Selects the address bits used as bank address bit 0. Valid Range: 0 to 14. Internal Base: 5. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_bank_b1 - -7:4 - -f0 - -7 - -70 - -Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_bank_b2 - -11:8 - -f00 - -7 - -700 - -Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. -
-reg_ddrc_addrmap_col_b5 - -15:12 - -f000 - -0 - -0 - -Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 -
-reg_ddrc_addrmap_col_b6 - -19:16 - -f0000 - -0 - -0 - -Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 -
-DRAM_addr_map_bank@0XF800603C - -31:0 - -fffff - - - -777 - -Row/Column address bits -
-

-

Register ( slcr )DRAM_addr_map_col

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_addr_map_col - -0XF8006040 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_addrmap_col_b2 - -3:0 - -f - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_col_b3 - -7:4 - -f0 - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_col_b4 - -11:8 - -f00 - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_col_b7 - -15:12 - -f000 - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-reg_ddrc_addrmap_col_b8 - -19:16 - -f0000 - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-reg_ddrc_addrmap_col_b9 - -23:20 - -f00000 - -f - -f00000 - -Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-reg_ddrc_addrmap_col_b10 - -27:24 - -f000000 - -f - -f000000 - -Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-reg_ddrc_addrmap_col_b11 - -31:28 - -f0000000 - -f - -f0000000 - -Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-DRAM_addr_map_col@0XF8006040 - -31:0 - -ffffffff - - - -fff00000 - -Column address bits -
-

-

Register ( slcr )DRAM_addr_map_row

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_addr_map_row - -0XF8006044 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_addrmap_row_b0 - -3:0 - -f - -6 - -6 - -Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field -
-reg_ddrc_addrmap_row_b1 - -7:4 - -f0 - -6 - -60 - -Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_row_b2_11 - -11:8 - -f00 - -6 - -600 - -Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_row_b12 - -15:12 - -f000 - -6 - -6000 - -Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. -
-reg_ddrc_addrmap_row_b13 - -19:16 - -f0000 - -6 - -60000 - -Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. -
-reg_ddrc_addrmap_row_b14 - -23:20 - -f00000 - -6 - -600000 - -Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. -
-reg_ddrc_addrmap_row_b15 - -27:24 - -f000000 - -f - -f000000 - -Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. -
-DRAM_addr_map_row@0XF8006044 - -31:0 - -fffffff - - - -f666666 - -Select DRAM row address bits -
-

-

Register ( slcr )DRAM_ODT_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_ODT_reg - -0XF8006048 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_rank0_rd_odt - -2:0 - -7 - -0 - -0 - -Unused. [1:0] - Indicates which remote ODTs must be turned ON during a read to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2]: If 1 then local ODT is enabled during reads to rank 0. -
-reg_ddrc_rank0_wr_odt - -5:3 - -38 - -1 - -8 - -[1:0] - Indicates which remote ODT's must be turned on during a write to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2]: If 1 then local ODT is enabled during writes to rank 0. -
-reg_ddrc_rank1_rd_odt - -8:6 - -1c0 - -1 - -40 - -Unused -
-reg_ddrc_rank1_wr_odt - -11:9 - -e00 - -1 - -200 - -Unused -
-reg_phy_rd_local_odt - -13:12 - -3000 - -0 - -0 - -Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. -
-reg_phy_wr_local_odt - -15:14 - -c000 - -3 - -c000 - -Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. -
-reg_phy_idle_local_odt - -17:16 - -30000 - -3 - -30000 - -Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. -
-reg_ddrc_rank2_rd_odt - -20:18 - -1c0000 - -0 - -0 - -Unused -
-reg_ddrc_rank2_wr_odt - -23:21 - -e00000 - -0 - -0 - -Unused -
-reg_ddrc_rank3_rd_odt - -26:24 - -7000000 - -0 - -0 - -Unused -
-reg_ddrc_rank3_wr_odt - -29:27 - -38000000 - -0 - -0 - -Unused -
-DRAM_ODT_reg@0XF8006048 - -31:0 - -3fffffff - - - -3c248 - -DRAM ODT control -
-

-

Register ( slcr )phy_cmd_timeout_rddata_cpt

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_cmd_timeout_rddata_cpt - -0XF8006050 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_cmd_to_data - -3:0 - -f - -0 - -0 - -Not used in DFI PHY. -
-reg_phy_wr_cmd_to_data - -7:4 - -f0 - -0 - -0 - -Not used in DFI PHY. -
-reg_phy_rdc_we_to_re_delay - -11:8 - -f00 - -8 - -800 - -This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. -
-reg_phy_rdc_fifo_rst_disable - -15:15 - -8000 - -0 - -0 - -When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. -
-reg_phy_use_fixed_re - -16:16 - -10000 - -1 - -10000 - -When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. -
-reg_phy_rdc_fifo_rst_err_cnt_clr - -17:17 - -20000 - -0 - -0 - -Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. -
-reg_phy_dis_phy_ctrl_rstn - -18:18 - -40000 - -0 - -0 - -Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. -
-reg_phy_clk_stall_level - -19:19 - -80000 - -0 - -0 - -1: stall clock, for DLL aging control -
-reg_phy_gatelvl_num_of_dq0 - -27:24 - -f000000 - -7 - -7000000 - -This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. -
-reg_phy_wrlvl_num_of_dq0 - -31:28 - -f0000000 - -7 - -70000000 - -This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. -
-phy_cmd_timeout_rddata_cpt@0XF8006050 - -31:0 - -ff0f8fff - - - -77010800 - -PHY command time out and read data capture FIFO -
-

-

Register ( slcr )DLL_calib

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DLL_calib - -0XF8006058 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_dll_calib_to_min_x1024 - -7:0 - -ff - -1 - -1 - -Unused in DFI Controller. -
-reg_ddrc_dll_calib_to_max_x1024 - -15:8 - -ff00 - -1 - -100 - -Unused in DFI Controller. -
-reg_ddrc_dis_dll_calib - -16:16 - -10000 - -0 - -0 - -When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically -
-DLL_calib@0XF8006058 - -31:0 - -1ffff - - - -101 - -DLL calibration -
-

-

Register ( slcr )ODT_delay_hold

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ODT_delay_hold - -0XF800605C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_rd_odt_delay - -3:0 - -f - -3 - -3 - -UNUSED -
-reg_ddrc_wr_odt_delay - -7:4 - -f0 - -0 - -0 - -The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable to LPDDR2. -
-reg_ddrc_rd_odt_hold - -11:8 - -f00 - -0 - -0 - -Unused -
-reg_ddrc_wr_odt_hold - -15:12 - -f000 - -5 - -5000 - -Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 -
-ODT_delay_hold@0XF800605C - -31:0 - -ffff - - - -5003 - -ODT delay and ODT hold -
-

-

Register ( slcr )ctrl_reg1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg1 - -0XF8006060 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_pageclose - -0:0 - -1 - -0 - -0 - -If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. -
-reg_ddrc_lpr_num_entries - -6:1 - -7e - -1f - -3e - -Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. -
-reg_ddrc_auto_pre_en - -7:7 - -80 - -0 - -0 - -When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) -
-reg_ddrc_refresh_update_level - -8:8 - -100 - -0 - -0 - -Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. Dynamic Bit Field. -
-reg_ddrc_dis_wc - -9:9 - -200 - -0 - -0 - -Disable Write Combine: 0: enable 1: disable -
-reg_ddrc_dis_collision_page_opt - -10:10 - -400 - -0 - -0 - -When this is set to 0, auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). -
-reg_ddrc_selfref_en - -12:12 - -1000 - -0 - -0 - -If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. Dynamic Bit Field. -
-ctrl_reg1@0XF8006060 - -31:0 - -17ff - - - -3e - -Controller 1 -
-

-

Register ( slcr )ctrl_reg2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg2 - -0XF8006064 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_go2critical_hysteresis - -12:5 - -1fe0 - -0 - -0 - -Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. -
-reg_arb_go2critical_en - -17:17 - -20000 - -1 - -20000 - -0: Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 0. 1: Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on Urgent input coming from AXI master. -
-ctrl_reg2@0XF8006064 - -31:0 - -21fe0 - - - -20000 - -Controller 2 -
-

-

Register ( slcr )ctrl_reg3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg3 - -0XF8006068 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_wrlvl_ww - -7:0 - -ff - -41 - -41 - -DDR2: not applicable. LPDDR2 and DDR3: Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) -
-reg_ddrc_rdlvl_rr - -15:8 - -ff00 - -41 - -4100 - -DDR2 and LPDDR2: not applicable. DDR3: Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. -
-reg_ddrc_dfi_t_wlmrd - -25:16 - -3ff0000 - -28 - -280000 - -DDR2 and LPDDR2: not applicable. DDR3: First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. -
-ctrl_reg3@0XF8006068 - -31:0 - -3ffffff - - - -284141 - -Controller 3 -
-

-

Register ( slcr )ctrl_reg4

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg4 - -0XF800606C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-dfi_t_ctrlupd_interval_min_x1024 - -7:0 - -ff - -10 - -10 - -This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks -
-dfi_t_ctrlupd_interval_max_x1024 - -15:8 - -ff00 - -16 - -1600 - -This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks -
-ctrl_reg4@0XF800606C - -31:0 - -ffff - - - -1610 - -Controller 4 -
-

-

Register ( slcr )ctrl_reg5

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg5 - -0XF8006078 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_dfi_t_ctrl_delay - -3:0 - -f - -1 - -1 - -Specifies the number of DFI clock cycles after an assertion or deassertion of the DFI control signals that the control signals at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligned, this timing parameter should be rounded up to the next integer value. -
-reg_ddrc_dfi_t_dram_clk_disable - -7:4 - -f0 - -1 - -10 - -Specifies the number of DFI clock cycles from the assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the clock to the DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. -
-reg_ddrc_dfi_t_dram_clk_enable - -11:8 - -f00 - -1 - -100 - -Specifies the number of DFI clock cycles from the de-assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the first valid rising edge of the clock to the DRAM memory devices at the PHY-DRAM boundary. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. -
-reg_ddrc_t_cksre - -15:12 - -f000 - -6 - -6000 - -This is the time after Self Refresh Entry that CK is maintained as a valid clock. Specifies the clock disable delay after SRE. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRE -
-reg_ddrc_t_cksrx - -19:16 - -f0000 - -6 - -60000 - -This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stable time before SRX. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRX -
-reg_ddrc_t_ckesr - -25:20 - -3f00000 - -4 - -400000 - -Minimum CKE low width for Self Refresh entry to exit Timing in memory clock cycles. Recommended settings: LPDDR2: tCKESR DDR2: tCKE DDR3: tCKE+1 -
-ctrl_reg5@0XF8006078 - -31:0 - -3ffffff - - - -466111 - -Controller register 5 -
-

-

Register ( slcr )ctrl_reg6

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg6 - -0XF800607C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_t_ckpde - -3:0 - -f - -2 - -2 - -This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. Recommended setting for LPDDR2: 2. -
-reg_ddrc_t_ckpdx - -7:4 - -f0 - -2 - -20 - -This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable time before PDX. Recommended setting for LPDDR2: 2. -
-reg_ddrc_t_ckdpde - -11:8 - -f00 - -2 - -200 - -This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after DPDE. Recommended setting for LPDDR2: 2. -
-reg_ddrc_t_ckdpdx - -15:12 - -f000 - -2 - -2000 - -This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before DPDX. Recommended setting for LPDDR2: 2. -
-reg_ddrc_t_ckcsx - -19:16 - -f0000 - -3 - -30000 - -This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before next command after Clock Stop Exit. Recommended setting for LPDDR2: tXP + 2. -
-ctrl_reg6@0XF800607C - -31:0 - -fffff - - - -32222 - -Controller register 6 -
-

-

Register ( slcr )CHE_REFRESH_TIMER01

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_REFRESH_TIMER01 - -0XF80060A0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-refresh_timer0_start_value_x32 - -11:0 - -fff - -0 - -0 - -Refresh Timer for Rank 1. Unit: in multiples of 32 clocks. (Only present in multi-rank configurations). FOR PERFORMANCE ONLY. -
-refresh_timer1_start_value_x32 - -23:12 - -fff000 - -8 - -8000 - -Refresh Timer for Rank 0. (Only present in multi-rank configurations). Unit: in multiples of 32 clocks. FOR PERFORMANCE ONLY. -
-CHE_REFRESH_TIMER01@0XF80060A0 - -31:0 - -ffffff - - - -8000 - -CHE_REFRESH_TIMER01 -
-

-

Register ( slcr )CHE_T_ZQ

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_T_ZQ - -0XF80060A4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_dis_auto_zq - -0:0 - -1 - -0 - -0 - -1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. -
-reg_ddrc_ddr3 - -1:1 - -2 - -1 - -2 - -Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. -
-reg_ddrc_t_mod - -11:2 - -ffc - -200 - -800 - -Mode register set command update delay (minimum the larger of 12 clock cycles or 15ns) -
-reg_ddrc_t_zq_long_nop - -21:12 - -3ff000 - -200 - -200000 - -DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles. -
-reg_ddrc_t_zq_short_nop - -31:22 - -ffc00000 - -40 - -10000000 - -DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles. -
-CHE_T_ZQ@0XF80060A4 - -31:0 - -ffffffff - - - -10200802 - -ZQ parameters -
-

-

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_T_ZQ_Short_Interval_Reg - -0XF80060A8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-t_zq_short_interval_x1024 - -19:0 - -fffff - -cb73 - -cb73 - -DDR2: not used. LPDDR2 and DDR3: Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. -
-dram_rstn_x1024 - -27:20 - -ff00000 - -69 - -6900000 - -Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. -
-CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 - -31:0 - -fffffff - - - -690cb73 - -Misc parameters -
-

-

Register ( slcr )deep_pwrdwn_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-deep_pwrdwn_reg - -0XF80060AC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-deeppowerdown_en - -0:0 - -1 - -0 - -0 - -DDR2 and DDR3: not used. LPDDR2: 0: Brings Controller out of Deep Powerdown mode. 1: Puts DRAM into Deep Powerdown mode when the transaction store is empty. For performance only. Dynamic Bit Field. -
-deeppowerdown_to_x1024 - -8:1 - -1fe - -ff - -1fe - -DDR2 and DDR3: not sued. LPDDR2: Minimum deep power down time. DDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. Value from the spec is 500us. Units are in 1024 clock cycles. For performance only. -
-deep_pwrdwn_reg@0XF80060AC - -31:0 - -1ff - - - -1fe - -Deep powerdown (LPDDR2) -
-

-

Register ( slcr )reg_2c

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-reg_2c - -0XF80060B0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-dfi_wrlvl_max_x1024 - -11:0 - -fff - -fff - -fff - -Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks -
-dfi_rdlvl_max_x1024 - -23:12 - -fff000 - -fff - -fff000 - -Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks -
-ddrc_reg_twrlvl_max_error - -24:24 - -1000000 - -0 - -0 - -When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. -
-ddrc_reg_trdlvl_max_error - -25:25 - -2000000 - -0 - -0 - -DDR2: not applicable. LPDDR2 and DDR3: When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. -
-reg_ddrc_dfi_wr_level_en - -26:26 - -4000000 - -1 - -4000000 - -0: Write leveling disabled. 1: Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs -
-reg_ddrc_dfi_rd_dqs_gate_level - -27:27 - -8000000 - -1 - -8000000 - -0: Read DQS gate leveling is disabled. 1: Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs -
-reg_ddrc_dfi_rd_data_eye_train - -28:28 - -10000000 - -1 - -10000000 - -DDR2: not applicable. LPDDR2 and DDR3: 0: 1: Read Data Eye training mode has been enabled as part of init sequence. -
-reg_2c@0XF80060B0 - -31:0 - -1fffffff - - - -1cffffff - -Training control -
-

-

Register ( slcr )reg_2d

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-reg_2d - -0XF80060B4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_2t_delay - -8:0 - -1ff - -0 - -0 - -Selects the clock edge in which chip select (CSN) and CKE is asserted. Unsupported feature. -
-reg_ddrc_skip_ocd - -9:9 - -200 - -1 - -200 - -This register must be kept at 1'b1. 1'b0 is NOT supported. 1: Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0: Not supported. -
-reg_ddrc_dis_pre_bypass - -10:10 - -400 - -0 - -0 - -Only present in designs supporting precharge bypass. When 1, disable bypass path for high priority precharges FOR DEBUG ONLY. -
-reg_2d@0XF80060B4 - -31:0 - -7ff - - - -200 - -Misc Debug -
-

-

Register ( slcr )dfi_timing

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-dfi_timing - -0XF80060B8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_dfi_t_rddata_en - -4:0 - -1f - -6 - -6 - -Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. DDR2 and DDR3: RL - 1 LPDDR: RL Where RL is read latency of DRAM. -
-reg_ddrc_dfi_t_ctrlup_min - -14:5 - -7fe0 - -3 - -60 - -Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. -
-reg_ddrc_dfi_t_ctrlup_max - -24:15 - -1ff8000 - -40 - -200000 - -Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. -
-dfi_timing@0XF80060B8 - -31:0 - -1ffffff - - - -200066 - -DFI timing -
-

-

RESET ECC ERROR

-

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_ECC_CONTROL_REG_OFFSET - -0XF80060C4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-Clear_Uncorrectable_DRAM_ECC_error - -0:0 - -1 - -1 - -1 - -Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. -
-Clear_Correctable_DRAM_ECC_error - -1:1 - -2 - -1 - -2 - -Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. -
-CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 - -31:0 - -3 - - - -3 - -ECC error clear -
-

-

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_ECC_CONTROL_REG_OFFSET - -0XF80060C4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-Clear_Uncorrectable_DRAM_ECC_error - -0:0 - -1 - -0 - -0 - -Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. -
-Clear_Correctable_DRAM_ECC_error - -1:1 - -2 - -0 - -0 - -Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. -
-CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 - -31:0 - -3 - - - -0 - -ECC error clear -
-

-

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_CORR_ECC_LOG_REG_OFFSET - -0XF80060C8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CORR_ECC_LOG_VALID - -0:0 - -1 - -0 - -0 - -Set to 1 when a correctable ECC error is captured. As long as this is 1 no further ECC errors will be captured. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x31) -
-ECC_CORRECTED_BIT_NUM - -7:1 - -fe - -0 - -0 - -Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. -
-CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 - -31:0 - -ff - - - -0 - -ECC error correction -
-

-

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_UNCORR_ECC_LOG_REG_OFFSET - -0XF80060DC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNCORR_ECC_LOG_VALID - -0:0 - -1 - -0 - -0 - -Set to 1 when an uncorrectable ECC error is captured. As long as this is a 1, no further ECC errors will be captured. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x31). -
-CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC - -31:0 - -1 - - - -0 - -ECC unrecoverable error status -
-

-

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_ECC_STATS_REG_OFFSET - -0XF80060F0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-STAT_NUM_CORR_ERR - -15:8 - -ff00 - -0 - -0 - -Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x58). -
-STAT_NUM_UNCORR_ERR - -7:0 - -ff - -0 - -0 - -Returns the number of un-correctable errors since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x58). -
-CHE_ECC_STATS_REG_OFFSET@0XF80060F0 - -31:0 - -ffff - - - -0 - -ECC error count -
-

-

Register ( slcr )ECC_scrub

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ECC_scrub - -0XF80060F4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_ecc_mode - -2:0 - -7 - -0 - -0 - -DRAM ECC Mode. The only valid values that works for this project are 000 (No ECC) and 100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 : No ECC, 001: Reserved 010: Parity 011: Reserved 100: SEC/DED over 1-beat 101: SEC/DED over multiple beats 110: Device Correction 111: Reserved -
-reg_ddrc_dis_scrub - -3:3 - -8 - -1 - -8 - -0: Enable ECC scrubs (valid only when reg_ddrc_ecc_mode = 100). 1: Disable ECC scrubs -
-ECC_scrub@0XF80060F4 - -31:0 - -f - - - -8 - -ECC mode/scrub -
-

-

Register ( slcr )phy_rcvr_enable

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rcvr_enable - -0XF8006114 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_dif_on - -3:0 - -f - -0 - -0 - -Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. -
-reg_phy_dif_off - -7:4 - -f0 - -0 - -0 - -Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. -
-phy_rcvr_enable@0XF8006114 - -31:0 - -ff - - - -0 - -Phy receiver enable register -
-

-

Register ( slcr )PHY_Config0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PHY_Config0 - -0XF8006118 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_data_slice_in_use - -0:0 - -1 - -1 - -1 - -Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. -
-reg_phy_rdlvl_inc_mode - -1:1 - -2 - -0 - -0 - -reserved -
-reg_phy_gatelvl_inc_mode - -2:2 - -4 - -0 - -0 - -reserved -
-reg_phy_wrlvl_inc_mode - -3:3 - -8 - -0 - -0 - -reserved -
-reg_phy_board_lpbk_tx - -4:4 - -10 - -0 - -0 - -External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_board_lpbk_rx - -5:5 - -20 - -0 - -0 - -External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_bist_shift_dq - -14:6 - -7fc0 - -0 - -0 - -Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. -
-reg_phy_bist_err_clr - -23:15 - -ff8000 - -0 - -0 - -Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared -
-reg_phy_dq_offset - -30:24 - -7f000000 - -40 - -40000000 - -Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. -
-PHY_Config0@0XF8006118 - -31:0 - -7fffffff - - - -40000001 - -PHY configuration register for data slice 0. -
-

-

Register ( slcr )PHY_Config1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PHY_Config1 - -0XF800611C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_data_slice_in_use - -0:0 - -1 - -1 - -1 - -Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. -
-reg_phy_rdlvl_inc_mode - -1:1 - -2 - -0 - -0 - -reserved -
-reg_phy_gatelvl_inc_mode - -2:2 - -4 - -0 - -0 - -reserved -
-reg_phy_wrlvl_inc_mode - -3:3 - -8 - -0 - -0 - -reserved -
-reg_phy_board_lpbk_tx - -4:4 - -10 - -0 - -0 - -External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_board_lpbk_rx - -5:5 - -20 - -0 - -0 - -External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_bist_shift_dq - -14:6 - -7fc0 - -0 - -0 - -Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. -
-reg_phy_bist_err_clr - -23:15 - -ff8000 - -0 - -0 - -Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared -
-reg_phy_dq_offset - -30:24 - -7f000000 - -40 - -40000000 - -Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. -
-PHY_Config1@0XF800611C - -31:0 - -7fffffff - - - -40000001 - -PHY configuration register for data slice 1. -
-

-

Register ( slcr )PHY_Config2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PHY_Config2 - -0XF8006120 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_data_slice_in_use - -0:0 - -1 - -1 - -1 - -Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. -
-reg_phy_rdlvl_inc_mode - -1:1 - -2 - -0 - -0 - -reserved -
-reg_phy_gatelvl_inc_mode - -2:2 - -4 - -0 - -0 - -reserved -
-reg_phy_wrlvl_inc_mode - -3:3 - -8 - -0 - -0 - -reserved -
-reg_phy_board_lpbk_tx - -4:4 - -10 - -0 - -0 - -External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_board_lpbk_rx - -5:5 - -20 - -0 - -0 - -External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_bist_shift_dq - -14:6 - -7fc0 - -0 - -0 - -Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. -
-reg_phy_bist_err_clr - -23:15 - -ff8000 - -0 - -0 - -Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared -
-reg_phy_dq_offset - -30:24 - -7f000000 - -40 - -40000000 - -Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. -
-reg_phy_data_slice_in_use - -0:0 - -1 - -1 - -1 - -Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. -
-reg_phy_rdlvl_inc_mode - -1:1 - -2 - -0 - -0 - -reserved -
-reg_phy_gatelvl_inc_mode - -2:2 - -4 - -0 - -0 - -reserved -
-reg_phy_wrlvl_inc_mode - -3:3 - -8 - -0 - -0 - -reserved -
-reg_phy_board_lpbk_tx - -4:4 - -10 - -0 - -0 - -External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_board_lpbk_rx - -5:5 - -20 - -0 - -0 - -External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_bist_shift_dq - -14:6 - -7fc0 - -0 - -0 - -Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. -
-reg_phy_bist_err_clr - -23:15 - -ff8000 - -0 - -0 - -Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared -
-reg_phy_dq_offset - -30:24 - -7f000000 - -40 - -40000000 - -Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. -
-PHY_Config2@0XF8006120 - -31:0 - -7fffffff - - - -40000001 - -PHY configuration register for data slice 2. -
-

-

Register ( slcr )PHY_Config3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PHY_Config3 - -0XF8006124 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_data_slice_in_use - -0:0 - -1 - -1 - -1 - -Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. -
-reg_phy_rdlvl_inc_mode - -1:1 - -2 - -0 - -0 - -reserved -
-reg_phy_gatelvl_inc_mode - -2:2 - -4 - -0 - -0 - -reserved -
-reg_phy_wrlvl_inc_mode - -3:3 - -8 - -0 - -0 - -reserved -
-reg_phy_board_lpbk_tx - -4:4 - -10 - -0 - -0 - -External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_board_lpbk_rx - -5:5 - -20 - -0 - -0 - -External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_bist_shift_dq - -14:6 - -7fc0 - -0 - -0 - -Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. -
-reg_phy_bist_err_clr - -23:15 - -ff8000 - -0 - -0 - -Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared -
-reg_phy_dq_offset - -30:24 - -7f000000 - -40 - -40000000 - -Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. -
-PHY_Config3@0XF8006124 - -31:0 - -7fffffff - - - -40000001 - -PHY configuration register for data slice 3. -
-

-

Register ( slcr )phy_init_ratio0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_init_ratio0 - -0XF800612C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wrlvl_init_ratio - -9:0 - -3ff - -1d - -1d - -The user programmable init ratio used by Write Leveling FSM -
-reg_phy_gatelvl_init_ratio - -19:10 - -ffc00 - -f2 - -3c800 - -The user programmable init ratio used Gate Leveling FSM -
-phy_init_ratio0@0XF800612C - -31:0 - -fffff - - - -3c81d - -PHY init ratio register for data slice 0. -
-

-

Register ( slcr )phy_init_ratio1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_init_ratio1 - -0XF8006130 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wrlvl_init_ratio - -9:0 - -3ff - -12 - -12 - -The user programmable init ratio used by Write Leveling FSM -
-reg_phy_gatelvl_init_ratio - -19:10 - -ffc00 - -d8 - -36000 - -The user programmable init ratio used Gate Leveling FSM -
-phy_init_ratio1@0XF8006130 - -31:0 - -fffff - - - -36012 - -PHY init ratio register for data slice 1. -
-

-

Register ( slcr )phy_init_ratio2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_init_ratio2 - -0XF8006134 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wrlvl_init_ratio - -9:0 - -3ff - -c - -c - -The user programmable init ratio used by Write Leveling FSM -
-reg_phy_gatelvl_init_ratio - -19:10 - -ffc00 - -de - -37800 - -The user programmable init ratio used Gate Leveling FSM -
-phy_init_ratio2@0XF8006134 - -31:0 - -fffff - - - -3780c - -PHY init ratio register for data slice 2. -
-

-

Register ( slcr )phy_init_ratio3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_init_ratio3 - -0XF8006138 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wrlvl_init_ratio - -9:0 - -3ff - -21 - -21 - -The user programmable init ratio used by Write Leveling FSM -
-reg_phy_gatelvl_init_ratio - -19:10 - -ffc00 - -ee - -3b800 - -The user programmable init ratio used Gate Leveling FSM -
-phy_init_ratio3@0XF8006138 - -31:0 - -fffff - - - -3b821 - -PHY init ratio register for data slice 3. -
-

-

Register ( slcr )phy_rd_dqs_cfg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rd_dqs_cfg0 - -0XF8006140 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_dqs_slave_ratio - -9:0 - -3ff - -35 - -35 - -Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications -
-reg_phy_rd_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. -
-reg_phy_rd_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. -
-phy_rd_dqs_cfg0@0XF8006140 - -31:0 - -fffff - - - -35 - -PHY read DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_rd_dqs_cfg1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rd_dqs_cfg1 - -0XF8006144 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_dqs_slave_ratio - -9:0 - -3ff - -35 - -35 - -Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications -
-reg_phy_rd_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. -
-reg_phy_rd_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. -
-phy_rd_dqs_cfg1@0XF8006144 - -31:0 - -fffff - - - -35 - -PHY read DQS configuration register for data slice 1. -
-

-

Register ( slcr )phy_rd_dqs_cfg2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rd_dqs_cfg2 - -0XF8006148 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_dqs_slave_ratio - -9:0 - -3ff - -35 - -35 - -Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications -
-reg_phy_rd_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. -
-reg_phy_rd_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. -
-phy_rd_dqs_cfg2@0XF8006148 - -31:0 - -fffff - - - -35 - -PHY read DQS configuration register for data slice 2. -
-

-

Register ( slcr )phy_rd_dqs_cfg3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rd_dqs_cfg3 - -0XF800614C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_dqs_slave_ratio - -9:0 - -3ff - -35 - -35 - -Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications -
-reg_phy_rd_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. -
-reg_phy_rd_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. -
-phy_rd_dqs_cfg3@0XF800614C - -31:0 - -fffff - - - -35 - -PHY read DQS configuration register for data slice 3. -
-

-

Register ( slcr )phy_wr_dqs_cfg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_wr_dqs_cfg0 - -0XF8006154 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_dqs_slave_ratio - -9:0 - -3ff - -9d - -9d - -Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. -
-reg_phy_wr_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. -
-phy_wr_dqs_cfg0@0XF8006154 - -31:0 - -fffff - - - -9d - -PHY write DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_wr_dqs_cfg1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_wr_dqs_cfg1 - -0XF8006158 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_dqs_slave_ratio - -9:0 - -3ff - -92 - -92 - -Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. -
-reg_phy_wr_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. -
-phy_wr_dqs_cfg1@0XF8006158 - -31:0 - -fffff - - - -92 - -PHY write DQS configuration register for data slice 1. -
-

-

Register ( slcr )phy_wr_dqs_cfg2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_wr_dqs_cfg2 - -0XF800615C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_dqs_slave_ratio - -9:0 - -3ff - -8c - -8c - -Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. -
-reg_phy_wr_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. -
-phy_wr_dqs_cfg2@0XF800615C - -31:0 - -fffff - - - -8c - -PHY write DQS configuration register for data slice 2. -
-

-

Register ( slcr )phy_wr_dqs_cfg3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_wr_dqs_cfg3 - -0XF8006160 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_dqs_slave_ratio - -9:0 - -3ff - -a1 - -a1 - -Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. -
-reg_phy_wr_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. -
-phy_wr_dqs_cfg3@0XF8006160 - -31:0 - -fffff - - - -a1 - -PHY write DQS configuration register for data slice 3. -
-

-

Register ( slcr )phy_we_cfg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_we_cfg0 - -0XF8006168 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_fifo_we_slave_ratio - -10:0 - -7ff - -147 - -147 - -Ratio value to be used when fifo_we_X_force_mode is set to 0. -
-reg_phy_fifo_we_in_force - -11:11 - -800 - -0 - -0 - -1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. -
-reg_phy_fifo_we_in_delay - -20:12 - -1ff000 - -0 - -0 - -Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. -
-phy_we_cfg0@0XF8006168 - -31:0 - -1fffff - - - -147 - -PHY FIFO write enable configuration for data slice 0. -
-

-

Register ( slcr )phy_we_cfg1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_we_cfg1 - -0XF800616C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_fifo_we_slave_ratio - -10:0 - -7ff - -12d - -12d - -Ratio value to be used when fifo_we_X_force_mode is set to 0. -
-reg_phy_fifo_we_in_force - -11:11 - -800 - -0 - -0 - -1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. -
-reg_phy_fifo_we_in_delay - -20:12 - -1ff000 - -0 - -0 - -Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. -
-phy_we_cfg1@0XF800616C - -31:0 - -1fffff - - - -12d - -PHY FIFO write enable configuration for data slice 1. -
-

-

Register ( slcr )phy_we_cfg2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_we_cfg2 - -0XF8006170 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_fifo_we_slave_ratio - -10:0 - -7ff - -133 - -133 - -Ratio value to be used when fifo_we_X_force_mode is set to 0. -
-reg_phy_fifo_we_in_force - -11:11 - -800 - -0 - -0 - -1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. -
-reg_phy_fifo_we_in_delay - -20:12 - -1ff000 - -0 - -0 - -Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. -
-phy_we_cfg2@0XF8006170 - -31:0 - -1fffff - - - -133 - -PHY FIFO write enable configuration for data slice 2. -
-

-

Register ( slcr )phy_we_cfg3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_we_cfg3 - -0XF8006174 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_fifo_we_slave_ratio - -10:0 - -7ff - -143 - -143 - -Ratio value to be used when fifo_we_X_force_mode is set to 0. -
-reg_phy_fifo_we_in_force - -11:11 - -800 - -0 - -0 - -1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. -
-reg_phy_fifo_we_in_delay - -20:12 - -1ff000 - -0 - -0 - -Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. -
-phy_we_cfg3@0XF8006174 - -31:0 - -1fffff - - - -143 - -PHY FIFO write enable configuration for data slice 3. -
-

-

Register ( slcr )wr_data_slv0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-wr_data_slv0 - -0XF800617C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_data_slave_ratio - -9:0 - -3ff - -dd - -dd - -Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_data_slave_force - -10:10 - -400 - -0 - -0 - -0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. -
-reg_phy_wr_data_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. -
-wr_data_slv0@0XF800617C - -31:0 - -fffff - - - -dd - -PHY write data slave ratio config for data slice 0. -
-

-

Register ( slcr )wr_data_slv1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-wr_data_slv1 - -0XF8006180 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_data_slave_ratio - -9:0 - -3ff - -d2 - -d2 - -Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_data_slave_force - -10:10 - -400 - -0 - -0 - -0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. -
-reg_phy_wr_data_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. -
-wr_data_slv1@0XF8006180 - -31:0 - -fffff - - - -d2 - -PHY write data slave ratio config for data slice 1. -
-

-

Register ( slcr )wr_data_slv2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-wr_data_slv2 - -0XF8006184 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_data_slave_ratio - -9:0 - -3ff - -cc - -cc - -Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_data_slave_force - -10:10 - -400 - -0 - -0 - -0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. -
-reg_phy_wr_data_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. -
-wr_data_slv2@0XF8006184 - -31:0 - -fffff - - - -cc - -PHY write data slave ratio config for data slice 2. -
-

-

Register ( slcr )wr_data_slv3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-wr_data_slv3 - -0XF8006188 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_data_slave_ratio - -9:0 - -3ff - -e1 - -e1 - -Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_data_slave_force - -10:10 - -400 - -0 - -0 - -0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. -
-reg_phy_wr_data_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. -
-wr_data_slv3@0XF8006188 - -31:0 - -fffff - - - -e1 - -PHY write data slave ratio config for data slice 3. -
-

-

Register ( slcr )reg_64

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-reg_64 - -0XF8006190 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_loopback - -0:0 - -1 - -0 - -0 - -Loopback testing. 1: enable, 0: disable -
-reg_phy_bl2 - -1:1 - -2 - -0 - -0 - -Reserved for future Use. -
-reg_phy_at_spd_atpg - -2:2 - -4 - -0 - -0 - -0: run scan test at slow clock speed but with high coverage 1: run scan test at full clock speed but with less coverage During normal function mode, this port must be set 0. -
-reg_phy_bist_enable - -3:3 - -8 - -0 - -0 - -Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. -
-reg_phy_bist_force_err - -4:4 - -10 - -0 - -0 - -This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. -
-reg_phy_bist_mode - -6:5 - -60 - -0 - -0 - -The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 00: constant pattern (0 repeated on each DQ bit) 01: low freq pattern (00001111 repeated on each DQ bit) 10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested 11: reserved -
-reg_phy_invert_clkout - -7:7 - -80 - -1 - -80 - -Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on boad topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. -
-reg_phy_all_dq_mpr_rd_resp - -8:8 - -100 - -0 - -0 - -0: (default) best for DRAM read responses on only 1 DQ bit; works with reduced accuracy if DRAM provides read response on all bits. (In this mode dq_in[7:0] are OR'd together and dq_in[15:8] are OR'd together.) 1: assume DRAM provides read response on all DQ bits. (In this mode, dq_in[7:0] are OR'd together and dq_in[15:8] are AND'd together.) -
-reg_phy_sel_logic - -9:9 - -200 - -0 - -0 - -Selects one of the two read leveling algorithms.'b0: Select algorithm # 1'b1: Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms -
-reg_phy_ctrl_slave_ratio - -19:10 - -ffc00 - -100 - -40000 - -Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_ctrl_slave_force - -20:20 - -100000 - -0 - -0 - -1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. -
-reg_phy_ctrl_slave_delay - -27:21 - -fe00000 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. -
-reg_phy_use_rank0_delays - -28:28 - -10000000 - -1 - -10000000 - -Delay selection 0: Each Rank uses its own delay 1: Rank 0 delays are used for all ranks -
-reg_phy_lpddr - -29:29 - -20000000 - -0 - -0 - -0: DDR2 or DDR3. 1: LPDDR2. -
-reg_phy_cmd_latency - -30:30 - -40000000 - -0 - -0 - -If set to 1, command comes to phy_ctrl through a flop. -
-reg_phy_int_lpbk - -31:31 - -80000000 - -0 - -0 - -1: enables the PHY internal loopback for DQ,DQS,DM before Ios. By default must be 0. -
-reg_64@0XF8006190 - -31:0 - -ffffffff - - - -10040080 - -Training control 2 -
-

-

Register ( slcr )reg_65

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-reg_65 - -0XF8006194 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_rl_delay - -4:0 - -1f - -2 - -2 - -This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. -
-reg_phy_rd_rl_delay - -9:5 - -3e0 - -4 - -80 - -This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. -
-reg_phy_dll_lock_diff - -13:10 - -3c00 - -f - -3c00 - -The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted -
-reg_phy_use_wr_level - -14:14 - -4000 - -1 - -4000 - -Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. -
-reg_phy_use_rd_dqs_gate_level - -15:15 - -8000 - -1 - -8000 - -Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. -
-reg_phy_use_rd_data_eye_level - -16:16 - -10000 - -1 - -10000 - -Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure -
-reg_phy_dis_calib_rst - -17:17 - -20000 - -0 - -0 - -Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs -
-reg_phy_ctrl_slave_delay - -19:18 - -c0000 - -0 - -0 - -If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value -
-reg_65@0XF8006194 - -31:0 - -fffff - - - -1fc82 - -Training control 3 -
-

-

Register ( slcr )page_mask

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-page_mask - -0XF8006204 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_page_addr_mask - -31:0 - -ffffffff - -0 - -0 - -Set this register based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. -
-page_mask@0XF8006204 - -31:0 - -ffffffff - - - -0 - -Page mask -
-

-

Register ( slcr )axi_priority_wr_port0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_wr_port0 - -0XF8006208 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_wr_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_wr_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Write Port. -
-reg_arb_disable_urgent_wr_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Write Port. -
-reg_arb_dis_page_match_wr_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_dis_rmw_portn - -19:19 - -80000 - -1 - -80000 - -FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. -
-axi_priority_wr_port0@0XF8006208 - -31:0 - -f03ff - - - -803ff - -AXI Priority control for write port 0. -
-

-

Register ( slcr )axi_priority_wr_port1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_wr_port1 - -0XF800620C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_wr_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_wr_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Write Port. -
-reg_arb_disable_urgent_wr_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Write Port. -
-reg_arb_dis_page_match_wr_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_dis_rmw_portn - -19:19 - -80000 - -1 - -80000 - -FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. -
-axi_priority_wr_port1@0XF800620C - -31:0 - -f03ff - - - -803ff - -AXI Priority control for write port 1. -
-

-

Register ( slcr )axi_priority_wr_port2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_wr_port2 - -0XF8006210 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_wr_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_wr_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Write Port. -
-reg_arb_disable_urgent_wr_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Write Port. -
-reg_arb_dis_page_match_wr_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_dis_rmw_portn - -19:19 - -80000 - -1 - -80000 - -FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. -
-axi_priority_wr_port2@0XF8006210 - -31:0 - -f03ff - - - -803ff - -AXI Priority control for write port 2. -
-

-

Register ( slcr )axi_priority_wr_port3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_wr_port3 - -0XF8006214 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_wr_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_wr_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Write Port. -
-reg_arb_disable_urgent_wr_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Write Port. -
-reg_arb_dis_page_match_wr_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_dis_rmw_portn - -19:19 - -80000 - -1 - -80000 - -FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. -
-axi_priority_wr_port3@0XF8006214 - -31:0 - -f03ff - - - -803ff - -AXI Priority control for write port 3. -
-

-

Register ( slcr )axi_priority_rd_port0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_rd_port0 - -0XF8006218 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_rd_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_rd_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Read Port. -
-reg_arb_disable_urgent_rd_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Read Port. -
-reg_arb_dis_page_match_rd_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_set_hpr_rd_portn - -19:19 - -80000 - -0 - -0 - -Enable reads to be generated as HPR for this Read Port. -
-axi_priority_rd_port0@0XF8006218 - -31:0 - -f03ff - - - -3ff - -AXI Priority control for read port 0. -
-

-

Register ( slcr )axi_priority_rd_port1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_rd_port1 - -0XF800621C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_rd_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_rd_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Read Port. -
-reg_arb_disable_urgent_rd_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Read Port. -
-reg_arb_dis_page_match_rd_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_set_hpr_rd_portn - -19:19 - -80000 - -0 - -0 - -Enable reads to be generated as HPR for this Read Port. -
-axi_priority_rd_port1@0XF800621C - -31:0 - -f03ff - - - -3ff - -AXI Priority control for read port 1. -
-

-

Register ( slcr )axi_priority_rd_port2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_rd_port2 - -0XF8006220 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_rd_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_rd_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Read Port. -
-reg_arb_disable_urgent_rd_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Read Port. -
-reg_arb_dis_page_match_rd_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_set_hpr_rd_portn - -19:19 - -80000 - -0 - -0 - -Enable reads to be generated as HPR for this Read Port. -
-axi_priority_rd_port2@0XF8006220 - -31:0 - -f03ff - - - -3ff - -AXI Priority control for read port 2. -
-

-

Register ( slcr )axi_priority_rd_port3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_rd_port3 - -0XF8006224 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_rd_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_rd_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Read Port. -
-reg_arb_disable_urgent_rd_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Read Port. -
-reg_arb_dis_page_match_rd_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_set_hpr_rd_portn - -19:19 - -80000 - -0 - -0 - -Enable reads to be generated as HPR for this Read Port. -
-axi_priority_rd_port3@0XF8006224 - -31:0 - -f03ff - - - -3ff - -AXI Priority control for read port 3. -
-

-

Register ( slcr )lpddr_ctrl0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-lpddr_ctrl0 - -0XF80062A8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_lpddr2 - -0:0 - -1 - -0 - -0 - -0: DDR2 or DDR3 in use. 1: LPDDR2 in Use. -
-reg_ddrc_per_bank_refresh - -1:1 - -2 - -0 - -0 - -0:All bank refresh Per bank refresh allows traffic to flow to other banks. 1:Per bank refresh Per bank refresh is not supported on all LPDDR2 devices. -
-reg_ddrc_derate_enable - -2:2 - -4 - -0 - -0 - -0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. -
-reg_ddrc_mr4_margin - -11:4 - -ff0 - -0 - -0 - -UNUSED -
-lpddr_ctrl0@0XF80062A8 - -31:0 - -ff7 - - - -0 - -LPDDR2 Control 0 -
-

-

Register ( slcr )lpddr_ctrl1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-lpddr_ctrl1 - -0XF80062AC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_mr4_read_interval - -31:0 - -ffffffff - -0 - -0 - -Interval between two MR4 reads, USED to derate the timing parameters. -
-lpddr_ctrl1@0XF80062AC - -31:0 - -ffffffff - - - -0 - -LPDDR2 Control 1 -
-

-

Register ( slcr )lpddr_ctrl2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-lpddr_ctrl2 - -0XF80062B0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_min_stable_clock_x1 - -3:0 - -f - -5 - -5 - -Time to wait after the first CKE high, tINIT2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. -
-reg_ddrc_idle_after_reset_x32 - -11:4 - -ff0 - -12 - -120 - -Idle time after the reset command, tINIT4. Units: 32 clock cycles. -
-reg_ddrc_t_mrw - -21:12 - -3ff000 - -5 - -5000 - -Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. -
-lpddr_ctrl2@0XF80062B0 - -31:0 - -3fffff - - - -5125 - -LPDDR2 Control 2 -
-

-

Register ( slcr )lpddr_ctrl3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-lpddr_ctrl3 - -0XF80062B4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_max_auto_init_x1024 - -7:0 - -ff - -a8 - -a8 - -Maximum duration of the auto initialization, tINIT5. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. -
-reg_ddrc_dev_zqinit_x32 - -17:8 - -3ff00 - -12 - -1200 - -ZQ initial calibration, tZQINIT. Units: 32 clock cycles. LPDDR2 typically requires 1 us. -
-lpddr_ctrl3@0XF80062B4 - -31:0 - -3ffff - - - -12a8 - -LPDDR2 Control 3 -
-

-

POLL ON DCI STATUS

-

Register ( slcr )DDRIOB_DCI_STATUS

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DCI_STATUS - -0XF8000B74 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DONE - -13:13 - -2000 - -1 - -2000 - -DCI done signal -
-DDRIOB_DCI_STATUS@0XF8000B74 - -31:0 - -2000 - - - -2000 - -tobe -
-

-

UNLOCK DDR

-

Register ( slcr )ddrc_ctrl

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ddrc_ctrl - -0XF8006000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_soft_rstb - -0:0 - -1 - -1 - -1 - -Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. -
-reg_ddrc_powerdown_en - -1:1 - -2 - -0 - -0 - -Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable -
-reg_ddrc_data_bus_width - -3:2 - -c - -0 - -0 - -DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved -
-reg_ddrc_burst8_refresh - -6:4 - -70 - -0 - -0 - -Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh -
-reg_ddrc_rdwr_idle_gap - -13:7 - -3f80 - -1 - -80 - -When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. -
-reg_ddrc_dis_rd_bypass - -14:14 - -4000 - -0 - -0 - -Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. -
-reg_ddrc_dis_act_bypass - -15:15 - -8000 - -0 - -0 - -Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. -
-reg_ddrc_dis_auto_refresh - -16:16 - -10000 - -0 - -0 - -Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. -
-ddrc_ctrl@0XF8006000 - -31:0 - -1ffff - - - -81 - -DDRC Control -
-

-

CHECK DDR STATUS

-

Register ( slcr )mode_sts_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-mode_sts_reg - -0XF8006054 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-ddrc_reg_operating_mode - -2:0 - -7 - -1 - -1 - -Gives the status of the controller. 0: DDRC Init 1: Normal operation 2: Power-down mode 3: Self-refresh mode 4 and above: deep power down mode (LPDDR2 only) -
-mode_sts_reg@0XF8006054 - -31:0 - -7 - - - -1 - -tobe -
-

- -

-

ps7_mio_init_data_2_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -GPIOB_CTRL - - -0XF8000B00 - -32 - -RW - -0x000000 - -PS IO Buffer Control -
- -DDRIOB_ADDR0 - - -0XF8000B40 - -32 - -RW - -0x000000 - -DDR IOB Config for Address 0 -
- -DDRIOB_ADDR1 - - -0XF8000B44 - -32 - -RW - -0x000000 - -DDR IOB Config for Address 1 -
- -DDRIOB_DATA0 - - -0XF8000B48 - -32 - -RW - -0x000000 - -DDR IOB Config for Data 15:0 -
- -DDRIOB_DATA1 - - -0XF8000B4C - -32 - -RW - -0x000000 - -DDR IOB Config for Data 31:16 -
- -DDRIOB_DIFF0 - - -0XF8000B50 - -32 - -RW - -0x000000 - -DDR IOB Config for DQS 1:0 -
- -DDRIOB_DIFF1 - - -0XF8000B54 - -32 - -RW - -0x000000 - -DDR IOB Config for DQS 3:2 -
- -DDRIOB_CLOCK - - -0XF8000B58 - -32 - -RW - -0x000000 - -DDR IOB Config for Clock Output -
- -DDRIOB_DRIVE_SLEW_ADDR - - -0XF8000B5C - -32 - -RW - -0x000000 - -DDR IOB Slew for Address -
- -DDRIOB_DRIVE_SLEW_DATA - - -0XF8000B60 - -32 - -RW - -0x000000 - -DDR IOB Slew for Data -
- -DDRIOB_DRIVE_SLEW_DIFF - - -0XF8000B64 - -32 - -RW - -0x000000 - -DDR IOB Slew for Diff -
- -DDRIOB_DRIVE_SLEW_CLOCK - - -0XF8000B68 - -32 - -RW - -0x000000 - -DDR IOB Slew for Clock -
- -DDRIOB_DDR_CTRL - - -0XF8000B6C - -32 - -RW - -0x000000 - -DDR IOB Buffer Control -
- -DDRIOB_DCI_CTRL - - -0XF8000B70 - -32 - -RW - -0x000000 - -DDRIOB DCI configuration -
- -DDRIOB_DCI_CTRL - - -0XF8000B70 - -32 - -RW - -0x000000 - -DDRIOB DCI configuration -
- -DDRIOB_DCI_CTRL - - -0XF8000B70 - -32 - -RW - -0x000000 - -DDRIOB DCI configuration -
- -MIO_PIN_00 - - -0XF8000700 - -32 - -RW - -0x000000 - -MIO Pin 0 Control -
- -MIO_PIN_01 - - -0XF8000704 - -32 - -RW - -0x000000 - -MIO Pin 1 Control -
- -MIO_PIN_02 - - -0XF8000708 - -32 - -RW - -0x000000 - -MIO Pin 2 Control -
- -MIO_PIN_03 - - -0XF800070C - -32 - -RW - -0x000000 - -MIO Pin 3 Control -
- -MIO_PIN_04 - - -0XF8000710 - -32 - -RW - -0x000000 - -MIO Pin 4 Control -
- -MIO_PIN_05 - - -0XF8000714 - -32 - -RW - -0x000000 - -MIO Pin 5 Control -
- -MIO_PIN_06 - - -0XF8000718 - -32 - -RW - -0x000000 - -MIO Pin 6 Control -
- -MIO_PIN_07 - - -0XF800071C - -32 - -RW - -0x000000 - -MIO Pin 7 Control -
- -MIO_PIN_08 - - -0XF8000720 - -32 - -RW - -0x000000 - -MIO Pin 8 Control -
- -MIO_PIN_09 - - -0XF8000724 - -32 - -RW - -0x000000 - -MIO Pin 9 Control -
- -MIO_PIN_10 - - -0XF8000728 - -32 - -RW - -0x000000 - -MIO Pin 10 Control -
- -MIO_PIN_11 - - -0XF800072C - -32 - -RW - -0x000000 - -MIO Pin 11 Control -
- -MIO_PIN_12 - - -0XF8000730 - -32 - -RW - -0x000000 - -MIO Pin 12 Control -
- -MIO_PIN_13 - - -0XF8000734 - -32 - -RW - -0x000000 - -MIO Pin 13 Control -
- -MIO_PIN_14 - - -0XF8000738 - -32 - -RW - -0x000000 - -MIO Pin 14 Control -
- -MIO_PIN_15 - - -0XF800073C - -32 - -RW - -0x000000 - -MIO Pin 15 Control -
- -MIO_PIN_16 - - -0XF8000740 - -32 - -RW - -0x000000 - -MIO Pin 16 Control -
- -MIO_PIN_17 - - -0XF8000744 - -32 - -RW - -0x000000 - -MIO Pin 17 Control -
- -MIO_PIN_18 - - -0XF8000748 - -32 - -RW - -0x000000 - -MIO Pin 18 Control -
- -MIO_PIN_19 - - -0XF800074C - -32 - -RW - -0x000000 - -MIO Pin 19 Control -
- -MIO_PIN_20 - - -0XF8000750 - -32 - -RW - -0x000000 - -MIO Pin 20 Control -
- -MIO_PIN_21 - - -0XF8000754 - -32 - -RW - -0x000000 - -MIO Pin 21 Control -
- -MIO_PIN_22 - - -0XF8000758 - -32 - -RW - -0x000000 - -MIO Pin 22 Control -
- -MIO_PIN_23 - - -0XF800075C - -32 - -RW - -0x000000 - -MIO Pin 23 Control -
- -MIO_PIN_24 - - -0XF8000760 - -32 - -RW - -0x000000 - -MIO Pin 24 Control -
- -MIO_PIN_25 - - -0XF8000764 - -32 - -RW - -0x000000 - -MIO Pin 25 Control -
- -MIO_PIN_26 - - -0XF8000768 - -32 - -RW - -0x000000 - -MIO Pin 26 Control -
- -MIO_PIN_27 - - -0XF800076C - -32 - -RW - -0x000000 - -MIO Pin 27 Control -
- -MIO_PIN_28 - - -0XF8000770 - -32 - -RW - -0x000000 - -MIO Pin 28 Control -
- -MIO_PIN_29 - - -0XF8000774 - -32 - -RW - -0x000000 - -MIO Pin 29 Control -
- -MIO_PIN_30 - - -0XF8000778 - -32 - -RW - -0x000000 - -MIO Pin 30 Control -
- -MIO_PIN_31 - - -0XF800077C - -32 - -RW - -0x000000 - -MIO Pin 31 Control -
- -MIO_PIN_32 - - -0XF8000780 - -32 - -RW - -0x000000 - -MIO Pin 32 Control -
- -MIO_PIN_33 - - -0XF8000784 - -32 - -RW - -0x000000 - -MIO Pin 33 Control -
- -MIO_PIN_34 - - -0XF8000788 - -32 - -RW - -0x000000 - -MIO Pin 34 Control -
- -MIO_PIN_35 - - -0XF800078C - -32 - -RW - -0x000000 - -MIO Pin 35 Control -
- -MIO_PIN_36 - - -0XF8000790 - -32 - -RW - -0x000000 - -MIO Pin 36 Control -
- -MIO_PIN_37 - - -0XF8000794 - -32 - -RW - -0x000000 - -MIO Pin 37 Control -
- -MIO_PIN_38 - - -0XF8000798 - -32 - -RW - -0x000000 - -MIO Pin 38 Control -
- -MIO_PIN_39 - - -0XF800079C - -32 - -RW - -0x000000 - -MIO Pin 39 Control -
- -MIO_PIN_40 - - -0XF80007A0 - -32 - -RW - -0x000000 - -MIO Pin 40 Control -
- -MIO_PIN_41 - - -0XF80007A4 - -32 - -RW - -0x000000 - -MIO Pin 41 Control -
- -MIO_PIN_42 - - -0XF80007A8 - -32 - -RW - -0x000000 - -MIO Pin 42 Control -
- -MIO_PIN_43 - - -0XF80007AC - -32 - -RW - -0x000000 - -MIO Pin 43 Control -
- -MIO_PIN_44 - - -0XF80007B0 - -32 - -RW - -0x000000 - -MIO Pin 44 Control -
- -MIO_PIN_45 - - -0XF80007B4 - -32 - -RW - -0x000000 - -MIO Pin 45 Control -
- -MIO_PIN_46 - - -0XF80007B8 - -32 - -RW - -0x000000 - -MIO Pin 46 Control -
- -MIO_PIN_47 - - -0XF80007BC - -32 - -RW - -0x000000 - -MIO Pin 47 Control -
- -MIO_PIN_48 - - -0XF80007C0 - -32 - -RW - -0x000000 - -MIO Pin 48 Control -
- -MIO_PIN_49 - - -0XF80007C4 - -32 - -RW - -0x000000 - -MIO Pin 49 Control -
- -MIO_PIN_50 - - -0XF80007C8 - -32 - -RW - -0x000000 - -MIO Pin 50 Control -
- -MIO_PIN_51 - - -0XF80007CC - -32 - -RW - -0x000000 - -MIO Pin 51 Control -
- -MIO_PIN_52 - - -0XF80007D0 - -32 - -RW - -0x000000 - -MIO Pin 52 Control -
- -MIO_PIN_53 - - -0XF80007D4 - -32 - -RW - -0x000000 - -MIO Pin 53 Control -
- -SD0_WP_CD_SEL - - -0XF8000830 - -32 - -RW - -0x000000 - -SDIO 0 WP CD select -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
-

-

ps7_mio_init_data_2_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

OCM REMAPPING

-

Register ( slcr )GPIOB_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-GPIOB_CTRL - -0XF8000B00 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-VREF_EN - -0:0 - -1 - -1 - -1 - -Enables VREF internal generator -
-VREF_PULLUP_EN - -1:1 - -2 - -0 - -0 - -Enables internal pullup. 0 - no pullup. 1 - pullup. -
-CLK_PULLUP_EN - -8:8 - -100 - -0 - -0 - -Enables internal pullup. 0: no pullup. 1: pullup. -
-SRSTN_PULLUP_EN - -9:9 - -200 - -0 - -0 - -Enables internal pullup. 0: no pullup. 1: pullup. -
-GPIOB_CTRL@0XF8000B00 - -31:0 - -303 - - - -1 - -PS IO Buffer Control -
-

-

DDRIOB SETTINGS

-

Register ( slcr )DDRIOB_ADDR0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_ADDR0 - -0XF8000B40 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-INP_POWER - -0:0 - -1 - -0 - -0 - -Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. -
-INP_TYPE - -2:1 - -6 - -0 - -0 - -Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. -
-DCI_UPDATE - -3:3 - -8 - -0 - -0 - -DCI Update Enabled 0 - disabled 1 - enabled -
-TERM_EN - -4:4 - -10 - -0 - -0 - -Tri State Termination Enabled 0 - disabled 1 - enabled -
-DCR_TYPE - -6:5 - -60 - -0 - -0 - -DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0: no pullup 1: pullup enabled -
-DDRIOB_ADDR0@0XF8000B40 - -31:0 - -fff - - - -600 - -DDR IOB Config for Address 0 -
-

-

Register ( slcr )DDRIOB_ADDR1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_ADDR1 - -0XF8000B44 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-INP_POWER - -0:0 - -1 - -0 - -0 - -Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. -
-INP_TYPE - -2:1 - -6 - -0 - -0 - -Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. -
-DCI_UPDATE - -3:3 - -8 - -0 - -0 - -DCI Update Enabled 0 - disabled 1 - enabled -
-TERM_EN - -4:4 - -10 - -0 - -0 - -Tri State Termination Enabled 0 - disabled 1 - enabled -
-DCR_TYPE - -6:5 - -60 - -0 - -0 - -DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0: no pullup 1: pullup enabled -
-DDRIOB_ADDR1@0XF8000B44 - -31:0 - -fff - - - -600 - -DDR IOB Config for Address 1 -
-

-

Register ( slcr )DDRIOB_DATA0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DATA0 - -0XF8000B48 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-INP_POWER - -0:0 - -1 - -0 - -0 - -Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. -
-INP_TYPE - -2:1 - -6 - -1 - -2 - -Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. -
-DCI_UPDATE - -3:3 - -8 - -0 - -0 - -DCI Update Enabled 0 - disabled 1 - enabled -
-TERM_EN - -4:4 - -10 - -1 - -10 - -Tri State Termination Enabled 0 - disabled 1 - enabled -
-DCR_TYPE - -6:5 - -60 - -3 - -60 - -DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0: no pullup 1: pullup enabled -
-DDRIOB_DATA0@0XF8000B48 - -31:0 - -fff - - - -672 - -DDR IOB Config for Data 15:0 -
-

-

Register ( slcr )DDRIOB_DATA1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DATA1 - -0XF8000B4C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-INP_POWER - -0:0 - -1 - -0 - -0 - -Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. -
-INP_TYPE - -2:1 - -6 - -1 - -2 - -Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. -
-DCI_UPDATE - -3:3 - -8 - -0 - -0 - -DCI Update Enabled 0 - disabled 1 - enabled -
-TERM_EN - -4:4 - -10 - -1 - -10 - -Tri State Termination Enabled 0 - disabled 1 - enabled -
-DCR_TYPE - -6:5 - -60 - -3 - -60 - -DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0: no pullup 1: pullup enabled -
-DDRIOB_DATA1@0XF8000B4C - -31:0 - -fff - - - -672 - -DDR IOB Config for Data 31:16 -
-

-

Register ( slcr )DDRIOB_DIFF0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DIFF0 - -0XF8000B50 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-INP_POWER - -0:0 - -1 - -0 - -0 - -Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. -
-INP_TYPE - -2:1 - -6 - -2 - -4 - -Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. -
-DCI_UPDATE - -3:3 - -8 - -0 - -0 - -DCI Update Enabled 0 - disabled 1 - enabled -
-TERM_EN - -4:4 - -10 - -1 - -10 - -Tri State Termination Enabled 0 - disabled 1 - enabled -
-DCR_TYPE - -6:5 - -60 - -3 - -60 - -DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0: no pullup 1: pullup enabled -
-DDRIOB_DIFF0@0XF8000B50 - -31:0 - -fff - - - -674 - -DDR IOB Config for DQS 1:0 -
-

-

Register ( slcr )DDRIOB_DIFF1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DIFF1 - -0XF8000B54 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-INP_POWER - -0:0 - -1 - -0 - -0 - -Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. -
-INP_TYPE - -2:1 - -6 - -2 - -4 - -Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. -
-DCI_UPDATE - -3:3 - -8 - -0 - -0 - -DCI Update Enabled 0 - disabled 1 - enabled -
-TERM_EN - -4:4 - -10 - -1 - -10 - -Tri State Termination Enabled 0 - disabled 1 - enabled -
-DCR_TYPE - -6:5 - -60 - -3 - -60 - -DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0: no pullup 1: pullup enabled -
-DDRIOB_DIFF1@0XF8000B54 - -31:0 - -fff - - - -674 - -DDR IOB Config for DQS 3:2 -
-

-

Register ( slcr )DDRIOB_CLOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_CLOCK - -0XF8000B58 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-INP_POWER - -0:0 - -1 - -0 - -0 - -Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. -
-INP_TYPE - -2:1 - -6 - -0 - -0 - -Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. -
-DCI_UPDATE - -3:3 - -8 - -0 - -0 - -DCI Update Enabled 0 - disabled 1 - enabled -
-TERM_EN - -4:4 - -10 - -0 - -0 - -Tri State Termination Enabled 0 - disabled 1 - enabled -
-DCR_TYPE - -6:5 - -60 - -0 - -0 - -DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0: no pullup 1: pullup enabled -
-DDRIOB_CLOCK@0XF8000B58 - -31:0 - -fff - - - -600 - -DDR IOB Config for Clock Output -
-

-

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DRIVE_SLEW_ADDR - -0XF8000B5C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DRIVE_P - -6:0 - -7f - -1c - -1c - -DDRIO drive strength for the P devices -
-DRIVE_N - -13:7 - -3f80 - -c - -600 - -DDRIO drive strength for the N devices -
-SLEW_P - -18:14 - -7c000 - -3 - -c000 - -DDRIO slew rate for the P devices -
-SLEW_N - -23:19 - -f80000 - -3 - -180000 - -DDRIO slew rate for the N devices -
-GTL - -26:24 - -7000000 - -0 - -0 - -Test Control 000: Normal Operation 001 to 111: Test Mode -
-RTERM - -31:27 - -f8000000 - -0 - -0 - -Program the rterm -
-DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C - -31:0 - -ffffffff - - - -18c61c - -DDR IOB Slew for Address -
-

-

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DRIVE_SLEW_DATA - -0XF8000B60 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DRIVE_P - -6:0 - -7f - -1c - -1c - -DDRIO drive strength for the P devices -
-DRIVE_N - -13:7 - -3f80 - -c - -600 - -DDRIO drive strength for the N devices -
-SLEW_P - -18:14 - -7c000 - -6 - -18000 - -DDRIO slew rate for the P devices -
-SLEW_N - -23:19 - -f80000 - -1f - -f80000 - -DDRIO slew rate for the N devices -
-GTL - -26:24 - -7000000 - -0 - -0 - -Test Control 000: Normal Operation 001 to 111: Test Mode -
-RTERM - -31:27 - -f8000000 - -0 - -0 - -Program the rterm -
-DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 - -31:0 - -ffffffff - - - -f9861c - -DDR IOB Slew for Data -
-

-

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DRIVE_SLEW_DIFF - -0XF8000B64 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DRIVE_P - -6:0 - -7f - -1c - -1c - -DDRIO drive strength for the P devices -
-DRIVE_N - -13:7 - -3f80 - -c - -600 - -DDRIO drive strength for the N devices -
-SLEW_P - -18:14 - -7c000 - -6 - -18000 - -DDRIO slew rate for the P devices -
-SLEW_N - -23:19 - -f80000 - -1f - -f80000 - -DDRIO slew rate for the N devices -
-GTL - -26:24 - -7000000 - -0 - -0 - -Test Control 000: Normal Operation 001 to 111: Test Mode -
-RTERM - -31:27 - -f8000000 - -0 - -0 - -Program the rterm -
-DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 - -31:0 - -ffffffff - - - -f9861c - -DDR IOB Slew for Diff -
-

-

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DRIVE_SLEW_CLOCK - -0XF8000B68 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DRIVE_P - -6:0 - -7f - -1c - -1c - -DDRIO drive strength for the P devices -
-DRIVE_N - -13:7 - -3f80 - -c - -600 - -DDRIO drive strength for the N devices -
-SLEW_P - -18:14 - -7c000 - -6 - -18000 - -DDRIO slew rate for the P devices -
-SLEW_N - -23:19 - -f80000 - -1f - -f80000 - -DDRIO slew rate for the N devices -
-GTL - -26:24 - -7000000 - -0 - -0 - -Test Control 000: Normal Operation 001 to 111: Test Mode -
-RTERM - -31:27 - -f8000000 - -0 - -0 - -Program the rterm -
-DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 - -31:0 - -ffffffff - - - -f9861c - -DDR IOB Slew for Clock -
-

-

Register ( slcr )DDRIOB_DDR_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DDR_CTRL - -0XF8000B6C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-VREF_INT_EN - -0:0 - -1 - -1 - -1 - -Enables VREF internal generator -
-VREF_SEL - -4:1 - -1e - -4 - -8 - -Specifies DDR IOB Vref generator output: 0001: VREF = 0.6V for LPDDR2 with 1.2V IO 0100: VREF = 0.75V for DDR3 with 1.5V IO 1000: VREF = 0.90V for DDR2 with 1.8V IO -
-VREF_EXT_EN - -6:5 - -60 - -0 - -0 - -Enables External VREF input x0: Disable External VREF for lower 16 bits x1: Enable External VREF for lower 16 bits 0x: Disable External VREF for upper 16 bits 1X: Enable External VREF for upper 16 bits -
-VREF_PULLUP_EN - -8:7 - -180 - -0 - -0 - -Enables VREF pull-up resistors x0: Disable VREF pull-up for lower 16 bits x1: Enable VREF pull-up for lower 16 bits 0x: Disable VREF pull-up for upper 16 bits 1x: Enable VREF pull-up for upper 16 bits -
-REFIO_EN - -9:9 - -200 - -1 - -200 - -Enables VRP,VRN 0: VRP/VRN not used 1: VRP/VRN used as refio -
-REFIO_TEST - -11:10 - -c00 - -3 - -c00 - -Enable test mode for VRP and VRN: 00: VRP/VRN test mode not used 11: VRP/VRN test mode enabled using vref based receiver. VRP/VRN control is set using the VRN_OUT, VRP_OUT, VRN_TRI, VRP_TRI fields in the DDRIOB_DCI_CTRL register -
-REFIO_PULLUP_EN - -12:12 - -1000 - -0 - -0 - -Enables VRP,VRN pull-up resistors 0: no pull-up 1: enable pull-up -
-DRST_B_PULLUP_EN - -13:13 - -2000 - -0 - -0 - -Enables pull-up resistors 0: no pull-up 1: enable pull-up -
-CKE_PULLUP_EN - -14:14 - -4000 - -0 - -0 - -Enables pull-up resistors 0: no pull-up 1: enable pull-up -
-DDRIOB_DDR_CTRL@0XF8000B6C - -31:0 - -7fff - - - -e09 - -DDR IOB Buffer Control -
-

-

ASSERT RESET

-

Register ( slcr )DDRIOB_DCI_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DCI_CTRL - -0XF8000B70 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-RESET - -0:0 - -1 - -1 - -1 - -At least toggle once to initialise flops in DCI system -
-VRN_OUT - -5:5 - -20 - -1 - -20 - -VRN output value -
-DDRIOB_DCI_CTRL@0XF8000B70 - -31:0 - -21 - - - -21 - -DDRIOB DCI configuration -
-

-

DEASSERT RESET

-

Register ( slcr )DDRIOB_DCI_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DCI_CTRL - -0XF8000B70 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-RESET - -0:0 - -1 - -0 - -0 - -At least toggle once to initialise flops in DCI system -
-VRN_OUT - -5:5 - -20 - -1 - -20 - -VRN output value -
-DDRIOB_DCI_CTRL@0XF8000B70 - -31:0 - -21 - - - -20 - -DDRIOB DCI configuration -
-

-

Register ( slcr )DDRIOB_DCI_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DCI_CTRL - -0XF8000B70 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-RESET - -0:0 - -1 - -1 - -1 - -At least toggle once to initialise flops in DCI system -
-ENABLE - -1:1 - -2 - -1 - -2 - -1 if any iob's use a terminate type, or if dci test block used -
-VRP_TRI - -2:2 - -4 - -0 - -0 - -VRP tristate value -
-VRN_TRI - -3:3 - -8 - -0 - -0 - -VRN tristate value -
-VRP_OUT - -4:4 - -10 - -0 - -0 - -VRP output value -
-VRN_OUT - -5:5 - -20 - -1 - -20 - -VRN output value -
-NREF_OPT1 - -7:6 - -c0 - -0 - -0 - -Reserved -
-NREF_OPT2 - -10:8 - -700 - -0 - -0 - -Reserved -
-NREF_OPT4 - -13:11 - -3800 - -1 - -800 - -Reserved -
-PREF_OPT1 - -16:14 - -1c000 - -0 - -0 - -Reserved -
-PREF_OPT2 - -19:17 - -e0000 - -0 - -0 - -Reserved -
-UPDATE_CONTROL - -20:20 - -100000 - -0 - -0 - -DCI Update -
-INIT_COMPLETE - -21:21 - -200000 - -0 - -0 - -test Internal to IO bank -
-TST_CLK - -22:22 - -400000 - -0 - -0 - -Emulate DCI clock -
-TST_HLN - -23:23 - -800000 - -0 - -0 - -Emulate comparator output (VRN) -
-TST_HLP - -24:24 - -1000000 - -0 - -0 - -Emulate comparator output (VRP) -
-TST_RST - -25:25 - -2000000 - -0 - -0 - -Emulate Reset -
-INT_DCI_EN - -26:26 - -4000000 - -0 - -0 - -Need explanation here -
-DDRIOB_DCI_CTRL@0XF8000B70 - -31:0 - -7ffffff - - - -823 - -DDRIOB DCI configuration -
-

-

MIO PROGRAMMING

-

Register ( slcr )MIO_PIN_00

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_00 - -0XF8000700 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. 0: disable 1: enable -
-Speed - -8:8 - -100 - -0 - -0 - -Select IO Buffer Edge Rate, applicable when IO_Type= LVCMOS18, LVCMOS25 or LVCMOS33. 0: Slow CMOS edge 1: Fast CMOS edge -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Select the IO Buffer Type. 000: LVTTL 001: LVCMOS18 010: LVCMOS25 011, 101, 110, 111: LVCMOS33 100: HSTL -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Enables pull-up on IO Buffer pin 0: disable 1: enable -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Disable HSTL Input Buffer to save power when it is an output-only (IO_Type must be HSTL). 0: enable 1: disable -
-MIO_PIN_00@0XF8000700 - -31:0 - -3f01 - - - -1201 - -MIO Pin 0 Control -
-

-

Register ( slcr )MIO_PIN_01

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_01 - -0XF8000704 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Chip Select -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: reserved -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM Address Bit 25 10: SRAM/NOR Chip Select 1 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 1 (bank 0) others: reserved -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_01@0XF8000704 - -31:0 - -3fff - - - -1202 - -MIO Pin 1 Control -
-

-

Register ( slcr )MIO_PIN_02

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_02 - -0XF8000708 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 0 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 8 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash ALEn 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 2 (bank 0) others: reserved -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_02@0XF8000708 - -31:0 - -3fff - - - -202 - -MIO Pin 2 Control -
-

-

Register ( slcr )MIO_PIN_03

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_03 - -0XF800070C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 1 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 9 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data bit 0 10: NAND WE_B output 11: SDIO 1 Card Power output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 3 (bank 0) others: reserved -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_03@0XF800070C - -31:0 - -3fff - - - -202 - -MIO Pin 3 Control -
-

-

Register ( slcr )MIO_PIN_04

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_04 - -0XF8000710 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 2 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 10 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 1 10: NAND Flash IO Bit 2 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 4 (bank 0) others: reserved -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_04@0XF8000710 - -31:0 - -3fff - - - -202 - -MIO Pin 4 Control -
-

-

Register ( slcr )MIO_PIN_05

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_05 - -0XF8000714 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 3 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 11 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 2 10: NAND Flash IO Bit 0 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 5 (bank 0) others: reserved -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_05@0XF8000714 - -31:0 - -3fff - - - -202 - -MIO Pin 5 Control -
-

-

Register ( slcr )MIO_PIN_06

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_06 - -0XF8000718 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Clock Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 12 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 3 10: NAND Flash IO Bit 1 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 6 (bank 0) others: reserved -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_06@0XF8000718 - -31:0 - -3fff - - - -202 - -MIO Pin 6 Control -
-

-

Register ( slcr )MIO_PIN_07

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_07 - -0XF800071C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 13 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR OE_B 10: NAND Flash CLE_B 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 7 Output-only (bank 0) others: reserved -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_07@0XF800071C - -31:0 - -3fff - - - -200 - -MIO Pin 7 Control -
-

-

Register ( slcr )MIO_PIN_08

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_08 - -0XF8000720 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI Feedback Output Clock -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 14 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR WE_B 10: NAND Flash RD_B 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 8 Output-only (bank 0) 001: CAN 1 Tx 010: sram, Output, smc_sram_bls_b 011 to 110: reserved 111: UART 1 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_08@0XF8000720 - -31:0 - -3fff - - - -202 - -MIO Pin 8 Control -
-

-

Register ( slcr )MIO_PIN_09

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_09 - -0XF8000724 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 Flash Memory Clock Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 15 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 6 10: NAND Flash IO Bit 4 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 9 (bank 0) 001: CAN 1 Rx 010 to 110: reserved 111: UART 1 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_09@0XF8000724 - -31:0 - -3fff - - - -1200 - -MIO Pin 9 Control -
-

-

Register ( slcr )MIO_PIN_10

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_10 - -0XF8000728 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 0 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 7 10: NAND Flash IO Bit 5 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 10 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: PJTAG TDI 100: SDIO 1 IO Bit 0 101: SPI 1 MOSI 110: reserved 111: UART 0 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_10@0XF8000728 - -31:0 - -3fff - - - -1200 - -MIO Pin 10 Control -
-

-

Register ( slcr )MIO_PIN_11

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_11 - -0XF800072C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 1 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 4 10: NAND Flash IO Bit 6 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 11 (bank 0) 001: CAN 0 Tx 010: I2C Serial Data 011: PJTAG TDO 100: SDIO 1 Command 101: SPI 1 MISO 110: reserved 111: UART 0 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_11@0XF800072C - -31:0 - -3fff - - - -1200 - -MIO Pin 11 Control -
-

-

Register ( slcr )MIO_PIN_12

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_12 - -0XF8000730 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 2 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Wait 10: NAND Flash IO Bit 7 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 12 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 Serial Clock 110: reserved 111: UART 1 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_12@0XF8000730 - -31:0 - -3fff - - - -1200 - -MIO Pin 12 Control -
-

-

Register ( slcr )MIO_PIN_13

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_13 - -0XF8000734 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 3 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 5 10: NAND Flash IO Bit 3 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 13 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Slave Select 0 110: reserved 111: UART 1 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_13@0XF8000734 - -31:0 - -3fff - - - -1200 - -MIO Pin 13 Control -
-

-

Register ( slcr )MIO_PIN_14

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_14 - -0XF8000738 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash Busy 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 14 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: SWDT Clock Input 100: SDIO 1 IO Bit 2 101: SPI 1 slave select 1 110: reserved 111: UART 0 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_14@0XF8000738 - -31:0 - -3fff - - - -1200 - -MIO Pin 14 Control -
-

-

Register ( slcr )MIO_PIN_15

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_15 - -0XF800073C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_15@0XF800073C - -31:0 - -3f01 - - - -1201 - -MIO Pin 15 Control -
-

-

Register ( slcr )MIO_PIN_16

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_16 - -0XF8000740 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Clock -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 4 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 1 10: NAND Flash IO Bit 8 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 16 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 Clock 101: SPI 0 Serial Clock 110: TTC 1 Wave Output 111: UART 1 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_16@0XF8000740 - -31:0 - -3fff - - - -2802 - -MIO Pin 16 Control -
-

-

Register ( slcr )MIO_PIN_17

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_17 - -0XF8000744 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 0 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 5 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 2 10: NAND Flash IO Bit 9 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 17 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 Command 101: SPI 0 MISO 110 TTC 1 Clock Input 111: UART 1 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_17@0XF8000744 - -31:0 - -3fff - - - -2802 - -MIO Pin 17 Control -
-

-

Register ( slcr )MIO_PIN_18

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_18 - -0XF8000748 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 1 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 6 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 3 10: NAND Flash IO Bit 10 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 18 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: reserved 100: SDIO 0 IO Bit 0 101: SPI 0 Slave Select 0 110: TTC 0 Wave Out 111: UART 0 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_18@0XF8000748 - -31:0 - -3fff - - - -2802 - -MIO Pin 18 Control -
-

-

Register ( slcr )MIO_PIN_19

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_19 - -0XF800074C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 2 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 7 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 4 10: NAND Flash IO Bit 11 111: SDIO 1 Power Control Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 19 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: reserved 100: SDIO 0 IO Bit 1 101: SPI 0 Slave Select 1 Output 110: TTC 0 Clock Input 111: UART 0 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_19@0XF800074C - -31:0 - -3fff - - - -2802 - -MIO Pin 19 Control -
-

-

Register ( slcr )MIO_PIN_20

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_20 - -0XF8000750 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 3 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: reserved -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 5 10: NAND Flash IO Bit 12 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 20 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 IO Bit 2 101: SPI 0 Slave Select 2 110: reserved 111: UART 1 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_20@0XF8000750 - -31:0 - -3fff - - - -2802 - -MIO Pin 20 Control -
-

-

Register ( slcr )MIO_PIN_21

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_21 - -0XF8000754 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Control -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: reserved -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 6 10: NAND Flash IO Bit 13 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 21 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 IO Bit 3 101: SPI 0 MOSI 110: reserved 111: UART 1 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_21@0XF8000754 - -31:0 - -3fff - - - -2802 - -MIO Pin 21 Control -
-

-

Register ( slcr )MIO_PIN_22

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_22 - -0XF8000758 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Clock -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 7 10: NAND Flash IO Bit 14 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 22 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: PJTAG TDI 100: SDIO 1 IO Bit 0 101: SPI 1 MOSI 110: reserved 111: UART 0 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_22@0XF8000758 - -31:0 - -3fff - - - -803 - -MIO Pin 22 Control -
-

-

Register ( slcr )MIO_PIN_23

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_23 - -0XF800075C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD 0 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 8 10: NAND Flash IO Bit 15 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 23 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: PJTAG TDO 100: SDIO 1 Command 101: SPI 1 MISO 110: reserved 111: UART 0 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_23@0XF800075C - -31:0 - -3fff - - - -803 - -MIO Pin 23 Control -
-

-

Register ( slcr )MIO_PIN_24

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_24 - -0XF8000760 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 1 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 9 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 24 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 serial clock 110: reserved 111: UART 1 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_24@0XF8000760 - -31:0 - -3fff - - - -803 - -MIO Pin 24 Control -
-

-

Register ( slcr )MIO_PIN_25

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_25 - -0XF8000764 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit2 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 10 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 25 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Slave Select 0 110: reserved 111: UART 1 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_25@0XF8000764 - -31:0 - -3fff - - - -803 - -MIO Pin 25 Control -
-

-

Register ( slcr )MIO_PIN_26

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_26 - -0XF8000768 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 3 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 11 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 26 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: SWDT Clock Input 100: SDIO 1 IO Bit 2 101: SPI 1 Slave Select 1 110: reserved 111: UART 0 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_26@0XF8000768 - -31:0 - -3fff - - - -803 - -MIO Pin 26 Control -
-

-

Register ( slcr )MIO_PIN_27

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_27 - -0XF800076C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Control -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 12 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 27 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: SWDT Reset Out 100: SDIO 1 IO Bit 3 101: SPI 1 Slave Select 2 110: reserved 111: UART 0 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_27@0XF800076C - -31:0 - -3fff - - - -803 - -MIO Pin 27 Control -
-

-

Register ( slcr )MIO_PIN_28

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_28 - -0XF8000770 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII Tx Clock -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 4 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 13 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 28 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 Clock 101: SPI 0 Serial Clock 110: TTC 1 Wave Out 111: UART 1 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_28@0XF8000770 - -31:0 - -3fff - - - -204 - -MIO Pin 28 Control -
-

-

Register ( slcr )MIO_PIN_29

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_29 - -0XF8000774 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII TxD Bit 0 -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Direction -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 14 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 29 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 Command 101: SPI 0 MISO 110: TTC 1 Clock Input 111: UART 1 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_29@0XF8000774 - -31:0 - -3fff - - - -205 - -MIO Pin 29 Control -
-

-

Register ( slcr )MIO_PIN_30

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_30 - -0XF8000778 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII TxD Bit 1 -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Stop -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 15 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 30 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: reserved 100: SDIO 0 IO Bit 0 101: SPI 0 Slave Select 0 110: TTC 0 Wave Out 111: UART 0 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_30@0XF8000778 - -31:0 - -3fff - - - -204 - -MIO Pin 30 Control -
-

-

Register ( slcr )MIO_PIN_31

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_31 - -0XF800077C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII TxD Bit 2 -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Next -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 16 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 31 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: reserved 100: SDIO 0 IO Bit 1 101: SPI 0 Slave Select 1 110: TTC 0 Clock Intput 111: UART 0 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_31@0XF800077C - -31:0 - -3fff - - - -205 - -MIO Pin 31 Control -
-

-

Register ( slcr )MIO_PIN_32

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_32 - -0XF8000780 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII TxD Bit 3 -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 0 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 17 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 32 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 IO Bit 2 101: SPI 0 Slave Select 2 110: reserved 111: UART 1 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_32@0XF8000780 - -31:0 - -3fff - - - -204 - -MIO Pin 32 Control -
-

-

Register ( slcr )MIO_PIN_33

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_33 - -0XF8000784 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII Tx Control -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 1 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 18 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 33 (Bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 IO Bit 3 101: SPI 0 MOSI 110: reserved 111: UART 1 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_33@0XF8000784 - -31:0 - -3fff - - - -204 - -MIO Pin 33 Control -
-

-

Register ( slcr )MIO_PIN_34

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_34 - -0XF8000788 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII Rx Clock -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 2 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 19 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 34 (bank 1) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: PJTAG TDI 100: SDIO 1 IO Bit 0 110: reserved 111: UART 0 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_34@0XF8000788 - -31:0 - -3fff - - - -204 - -MIO Pin 34 Control -
-

-

Register ( slcr )MIO_PIN_35

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_35 - -0XF800078C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII RxD data Bit 0 -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 3 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 20 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 35 (bank 1) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: PJTAG TDO 100: SDIO 1 Command 101: SPI 1 Command 110: reserved 111: UART 0 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_35@0XF800078C - -31:0 - -3fff - - - -204 - -MIO Pin 35 Control -
-

-

Register ( slcr )MIO_PIN_36

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_36 - -0XF8000790 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII Data Bit 1 -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Clock -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 21 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 36 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 Clock 110: reserved 111: UART 1 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_36@0XF8000790 - -31:0 - -3fff - - - -205 - -MIO Pin 36 Control -
-

-

Register ( slcr )MIO_PIN_37

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_37 - -0XF8000794 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 5 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 22 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 37 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: PJTAG TMS+H2129 100: SDIO 1 IO Bit 1 101: SPI 1 Slave Select 0 110: reserved 111: UART 1 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_37@0XF8000794 - -31:0 - -3fff - - - -204 - -MIO Pin 37 Control -
-

-

Register ( slcr )MIO_PIN_38

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_38 - -0XF8000798 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII RxD Data Bit 3 -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 6 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 23 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 38 (bank 1) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: SWDT Clock In 100: SDIO 1 IO Bit 2 101: SPI 1 Slave Select 1 110: reserved 111: UART 0 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_38@0XF8000798 - -31:0 - -3fff - - - -204 - -MIO Pin 38 Control -
-

-

Register ( slcr )MIO_PIN_39

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_39 - -0XF800079C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII Rx Control -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 7 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 24 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 39 (bank 1) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: SWDT Reset Out 100: SDIO 1 IO Bit 3 101: SPI 1 Slave Select 2 110: reserved 111: UART 0 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_39@0XF800079C - -31:0 - -3fff - - - -204 - -MIO Pin 39 Control -
-

-

Register ( slcr )MIO_PIN_40

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_40 - -0XF80007A0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 4 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 40 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 Clock 101: SPI 0 Serial Clock 110: TTC 1 Wave Out 111: UART 1 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_40@0XF80007A0 - -31:0 - -3fff - - - -280 - -MIO Pin 40 Control -
-

-

Register ( slcr )MIO_PIN_41

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_41 - -0XF80007A4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Direction -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 41 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 Command 101: SPI 0 MISO 110: TTC 1 Clock Input 111: UART 1 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_41@0XF80007A4 - -31:0 - -3fff - - - -280 - -MIO Pin 41 Control -
-

-

Register ( slcr )MIO_PIN_42

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_42 - -0XF80007A8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Stop -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 42 (bank 1) 001: CAN 0 Rx 010: I2C0 Serial Clock 011: reserved 100: SDIO 0 IO Bit 0 101: SPI 0 Data Bit 0 110: TTC 0 Wave Out 111: UART 0 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_42@0XF80007A8 - -31:0 - -3fff - - - -280 - -MIO Pin 42 Control -
-

-

Register ( slcr )MIO_PIN_43

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_43 - -0XF80007AC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Next -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 43 (bank 1) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: reserved 100: SDIO 0 IO Bit 1 101: SPI 0 Slave Select 1 110: TTC 0 Clock Intput 111: UART 0 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_43@0XF80007AC - -31:0 - -3fff - - - -280 - -MIO Pin 43 Control -
-

-

Register ( slcr )MIO_PIN_44

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_44 - -0XF80007B0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 0 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 44 (bank 1) 001: CAN 1 Tx 010: I2C Serial Clock 011: reserved 100 SDIO 0 IO Bit 2 101: SPI 0 Slave Select 2 110: reserved 111: UART 1 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_44@0XF80007B0 - -31:0 - -3fff - - - -280 - -MIO Pin 44 Control -
-

-

Register ( slcr )MIO_PIN_45

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_45 - -0XF80007B4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 1 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 45 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 IO Bit 3 101: SPI 0 Data Bit 3 110: reserved 111: UART 1 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_45@0XF80007B4 - -31:0 - -3fff - - - -280 - -MIO Pin 45 Control -
-

-

Register ( slcr )MIO_PIN_46

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_46 - -0XF80007B8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 2 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -1 - -20 - -Level 3 Mux Select 000: GPIO 46 (bank 1) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: PJTAG TDI 100: SDIO 1 IO Bit 0 101: SPI 1 MOSI 110: reserved 111: UART 0 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_46@0XF80007B8 - -31:0 - -3fff - - - -1221 - -MIO Pin 46 Control -
-

-

Register ( slcr )MIO_PIN_47

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_47 - -0XF80007BC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 3 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -1 - -20 - -Level 3 Mux Select 000: GPIO 47 (bank 1) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: PJTAG TDO 100: SDIO 1 Command 101: SPI 1 MISO 110: reserved 111: UART 0 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_47@0XF80007BC - -31:0 - -3fff - - - -1220 - -MIO Pin 47 Control -
-

-

Register ( slcr )MIO_PIN_48

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_48 - -0XF80007C0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Clock -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -7 - -e0 - -Level 3 Mux Select 000: GPIO 48 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 Serial Clock 110: reserved 111: UART 1 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_48@0XF80007C0 - -31:0 - -3fff - - - -2e0 - -MIO Pin 48 Control -
-

-

Register ( slcr )MIO_PIN_49

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_49 - -0XF80007C4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 5 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -7 - -e0 - -Level 3 Mux Select 000: GPIO 49 (bank 1) 001: CAN 1 Rx 010: I2C Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Select 0 110: reserved 111: UART 1 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_49@0XF80007C4 - -31:0 - -3fff - - - -2e1 - -MIO Pin 49 Control -
-

-

Register ( slcr )MIO_PIN_50

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_50 - -0XF80007C8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 6 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -2 - -40 - -Level 3 Mux Select 000: GPIO 50 (bank 1) 001: Can 0 Rx 010: I2C 0 Serial Clock 011: SWDT Clock Input 100: SDIO 1 IO Bit 2 101: SPI 1 Slave Select 1 110: reserved 111: UART 0 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_50@0XF80007C8 - -31:0 - -3fff - - - -1240 - -MIO Pin 50 Control -
-

-

Register ( slcr )MIO_PIN_51

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_51 - -0XF80007CC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 7 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -2 - -40 - -Level 3 Mux Select 000: GPIO 51 (bank 1) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: SWDT Reset Output 100: SDIO 1 IO Bit 3 101: SPI 1 Slave Select 1 110: reserved 111: UART 0 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_51@0XF80007CC - -31:0 - -3fff - - - -1240 - -MIO Pin 51 Control -
-

-

Register ( slcr )MIO_PIN_52

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_52 - -0XF80007D0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: reserved -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 52 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: SWDT Clock Input 100: MDIO 0 Clock 101: MDIO 1 Clock 110: reserved 111: UART 1 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_52@0XF80007D0 - -31:0 - -3fff - - - -280 - -MIO Pin 52 Control -
-

-

Register ( slcr )MIO_PIN_53

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_53 - -0XF80007D4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: reserved -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 53 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: SWDT Reset Output 100: MDIO 0 Data 101: MDIO 1 Data 110: reserved 111: UART 1 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_53@0XF80007D4 - -31:0 - -3fff - - - -280 - -MIO Pin 53 Control -
-

-

Register ( slcr )SD0_WP_CD_SEL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SD0_WP_CD_SEL - -0XF8000830 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SDIO0_WP_SEL - -5:0 - -3f - -f - -f - -SDIO 0 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input -
-SDIO0_CD_SEL - -21:16 - -3f0000 - -0 - -0 - -SDIO 0 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input -
-SD0_WP_CD_SEL@0XF8000830 - -31:0 - -3f003f - - - -f - -SDIO 0 WP CD select -
-

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

- -

-

ps7_peripherals_init_data_2_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -DDRIOB_DATA0 - - -0XF8000B48 - -32 - -RW - -0x000000 - -DDR IOB Config for Data 15:0 -
- -DDRIOB_DATA1 - - -0XF8000B4C - -32 - -RW - -0x000000 - -DDR IOB Config for Data 31:16 -
- -DDRIOB_DIFF0 - - -0XF8000B50 - -32 - -RW - -0x000000 - -DDR IOB Config for DQS 1:0 -
- -DDRIOB_DIFF1 - - -0XF8000B54 - -32 - -RW - -0x000000 - -DDR IOB Config for DQS 3:2 -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
- -Baud_rate_divider_reg0 - - -0XE0001034 - -32 - -RW - -0x000000 - -baud rate divider register -
- -Baud_rate_gen_reg0 - - -0XE0001018 - -32 - -RW - -0x000000 - -Baud rate divider register. -
- -Control_reg0 - - -0XE0001000 - -32 - -RW - -0x000000 - -UART Control register -
- -mode_reg0 - - -0XE0001004 - -32 - -RW - -0x000000 - -UART Mode register -
- -Config_reg - - -0XE000D000 - -32 - -RW - -0x000000 - -SPI configuration register -
- -CTRL - - -0XF8007000 - -32 - -RW - -0x000000 - -Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. -
- -DIRM_0 - - -0XE000A204 - -32 - -RW - -0x000000 - -Direction mode (GPIO Bank0, MIO) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -OEN_0 - - -0XE000A208 - -32 - -RW - -0x000000 - -Output enable (GPIO Bank0, MIO) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -DIRM_0 - - -0XE000A204 - -32 - -RW - -0x000000 - -Direction mode (GPIO Bank0, MIO) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -OEN_0 - - -0XE000A208 - -32 - -RW - -0x000000 - -Output enable (GPIO Bank0, MIO) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -DIRM_0 - - -0XE000A204 - -32 - -RW - -0x000000 - -Direction mode (GPIO Bank0, MIO) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -OEN_0 - - -0XE000A208 - -32 - -RW - -0x000000 - -Output enable (GPIO Bank0, MIO) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

ps7_peripherals_init_data_2_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

DDR TERM/IBUF_DISABLE_MODE SETTINGS

-

Register ( slcr )DDRIOB_DATA0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DATA0 - -0XF8000B48 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IBUF_DISABLE_MODE - -7:7 - -80 - -1 - -80 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -1 - -100 - -Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination -
-DDRIOB_DATA0@0XF8000B48 - -31:0 - -180 - - - -180 - -DDR IOB Config for Data 15:0 -
-

-

Register ( slcr )DDRIOB_DATA1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DATA1 - -0XF8000B4C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IBUF_DISABLE_MODE - -7:7 - -80 - -1 - -80 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -1 - -100 - -Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination -
-DDRIOB_DATA1@0XF8000B4C - -31:0 - -180 - - - -180 - -DDR IOB Config for Data 31:16 -
-

-

Register ( slcr )DDRIOB_DIFF0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DIFF0 - -0XF8000B50 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IBUF_DISABLE_MODE - -7:7 - -80 - -1 - -80 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -1 - -100 - -Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination -
-DDRIOB_DIFF0@0XF8000B50 - -31:0 - -180 - - - -180 - -DDR IOB Config for DQS 1:0 -
-

-

Register ( slcr )DDRIOB_DIFF1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DIFF1 - -0XF8000B54 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IBUF_DISABLE_MODE - -7:7 - -80 - -1 - -80 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -1 - -100 - -Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination -
-DDRIOB_DIFF1@0XF8000B54 - -31:0 - -180 - - - -180 - -DDR IOB Config for DQS 3:2 -
-

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

-

SRAM/NOR SET OPMODE

-

TRACE CURRENT PORT SIZE

-

UART REGISTERS

-

Register ( slcr )Baud_rate_divider_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Baud_rate_divider_reg0 - -0XE0001034 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-BDIV - -7:0 - -ff - -6 - -6 - -Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate -
-Baud_rate_divider_reg0@0XE0001034 - -31:0 - -ff - - - -6 - -baud rate divider register -
-

-

Register ( slcr )Baud_rate_gen_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Baud_rate_gen_reg0 - -0XE0001018 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CD - -15:0 - -ffff - -3e - -3e - -Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass 2 - 65535: baud_sample value -
-Baud_rate_gen_reg0@0XE0001018 - -31:0 - -ffff - - - -3e - -Baud rate divider register. -
-

-

Register ( slcr )Control_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Control_reg0 - -0XE0001000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-STPBRK - -8:8 - -100 - -0 - -0 - -Stop transmitter break: 0: start break transmission, 1: stop break transmission. -
-STTBRK - -7:7 - -80 - -0 - -0 - -Start transmitter break: 0: 1: start to transmit a break. Can only be set if STPBRK (Stop transmitter break) is not high. -
-RSTTO - -6:6 - -40 - -0 - -0 - -Restart receiver timeout counter: 0: receiver timeout counter disabled, 1: receiver timeout counter is restarted. -
-TXDIS - -5:5 - -20 - -0 - -0 - -Transmit disable: 0: enable transmitter, 0: disable transmitter -
-TXEN - -4:4 - -10 - -1 - -10 - -Transmit enable: 0: disable transmitter, 1: enable transmitter, provided the TXDIS field is set to 0. -
-RXDIS - -3:3 - -8 - -0 - -0 - -Receive disable: 0: disable, 1: enable -
-RXEN - -2:2 - -4 - -1 - -4 - -Receive enable: 0: disable, 1: enable. When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. -
-TXRES - -1:1 - -2 - -1 - -2 - -Software reset for Tx data path: 0: 1: transmitter logic is reset and all pending transmitter data is discarded self clear -
-RXRES - -0:0 - -1 - -1 - -1 - -Software reset for Rx data path: 0: 1: receiver logic is reset and all pending receiver data is discarded self clear -
-Control_reg0@0XE0001000 - -31:0 - -1ff - - - -17 - -UART Control register -
-

-

Register ( slcr )mode_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-mode_reg0 - -0XE0001004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IRMODE - -11:11 - -800 - -0 - -0 - -Enable IrDA mode: 0: Default UART mode 1: Enable IrDA mode -
-UCLKEN - -10:10 - -400 - -0 - -0 - -External uart_clk source select: 0: APB clock, pclk 1: a user-defined clock -
-CHMODE - -9:8 - -300 - -0 - -0 - -Channel mode: 00: normal 01: automatic cho 10: local loopback 11: remote loopback -
-NBSTOP - -7:6 - -c0 - -0 - -0 - -Number of stop bits: 00: 1 stop bit 01: 1.5 stop bits 10: 2 stop bits 11: reserved -
-PAR - -5:3 - -38 - -4 - -20 - -Parity type select: 000: even parity 001: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity -
-CHRL - -2:1 - -6 - -0 - -0 - -Character length select: 11: 6 bits 10: 7 bits 0x: 8 bits -
-CLKS - -0:0 - -1 - -0 - -0 - -Clock source select: 0: clock source is uart_clk 1: clock source is uart_clk/8 -
-mode_reg0@0XE0001004 - -31:0 - -fff - - - -20 - -UART Mode register -
-

-

QSPI REGISTERS

-

Register ( slcr )Config_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Config_reg - -0XE000D000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-Holdb_dr - -19:19 - -80000 - -1 - -80000 - -Holdb and WPn pins are driven in normal/fast read or dual output/io read by the controller, if set, else external pull-high is required. Both pins are always driven by the controller in quad mode. -
-Config_reg@0XE000D000 - -31:0 - -80000 - - - -80000 - -SPI configuration register -
-

-

PL POWER ON RESET REGISTERS

-

Register ( slcr )CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CTRL - -0XF8007000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PCFG_POR_CNT_4K - -29:29 - -20000000 - -0 - -0 - -This is to indicate to the FPGA fabric what timer to use 0 - use 64K timer 1 - use 4K timer -
-CTRL@0XF8007000 - -31:0 - -20000000 - - - -0 - -Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. -
-

-

SMC TIMING CALCULATION REGISTER UPDATE

-

NAND SET CYCLE

-

OPMODE

-

DIRECT COMMAND

-

SRAM/NOR CS0 SET CYCLE

-

DIRECT COMMAND

-

NOR CS0 BASE ADDRESS

-

SRAM/NOR CS1 SET CYCLE

-

DIRECT COMMAND

-

NOR CS1 BASE ADDRESS

-

USB RESET

-

DIR MODE BANK 0

-

Register ( slcr )DIRM_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DIRM_0 - -0XE000A204 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DIRECTION_0 - -31:0 - -ffffffff - -2880 - -2880 - -Direction mode 0: input 1: output Each bit configures the corresponding pin within the 32-bit bank NOTE: bits[8:7] of bank0 cannot be used as inputs. The DIRM bits can be set to 0, but reading DATA_RO does not reflect the input value. See the GPIO chapter for more information. -
-DIRM_0@0XE000A204 - -31:0 - -ffffffff - - - -2880 - -Direction mode (GPIO Bank0, MIO) -
-

-

DIR MODE BANK 1

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -ff7f - -ff7f0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -80 - -80 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -ff7f0080 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

OUTPUT ENABLE BANK 0

-

Register ( slcr )OEN_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-OEN_0 - -0XE000A208 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-OP_ENABLE_0 - -31:0 - -ffffffff - -2880 - -2880 - -Output enables 0: disabled 1: enabled Each bit configures the corresponding pin within the 32-bit bank -
-OEN_0@0XE000A208 - -31:0 - -ffffffff - - - -2880 - -Output enable (GPIO Bank0, MIO) -
-

-

OUTPUT ENABLE BANK 1

-

MASK_DATA_0_LSW LOW BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -ff7f - -ff7f0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -0 - -0 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -ff7f0000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW LOW BANK [31:16]

-

MASK_DATA_1_LSW LOW BANK [47:32]

-

MASK_DATA_1_MSW LOW BANK [53:48]

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -ff7f - -ff7f0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -80 - -80 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -ff7f0080 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

ENET RESET

-

DIR MODE BANK 0

-

Register ( slcr )DIRM_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DIRM_0 - -0XE000A204 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DIRECTION_0 - -31:0 - -ffffffff - -2880 - -2880 - -Direction mode 0: input 1: output Each bit configures the corresponding pin within the 32-bit bank NOTE: bits[8:7] of bank0 cannot be used as inputs. The DIRM bits can be set to 0, but reading DATA_RO does not reflect the input value. See the GPIO chapter for more information. -
-DIRM_0@0XE000A204 - -31:0 - -ffffffff - - - -2880 - -Direction mode (GPIO Bank0, MIO) -
-

-

DIR MODE BANK 1

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -f7ff - -f7ff0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -800 - -800 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -f7ff0800 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

OUTPUT ENABLE BANK 0

-

Register ( slcr )OEN_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-OEN_0 - -0XE000A208 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-OP_ENABLE_0 - -31:0 - -ffffffff - -2880 - -2880 - -Output enables 0: disabled 1: enabled Each bit configures the corresponding pin within the 32-bit bank -
-OEN_0@0XE000A208 - -31:0 - -ffffffff - - - -2880 - -Output enable (GPIO Bank0, MIO) -
-

-

OUTPUT ENABLE BANK 1

-

MASK_DATA_0_LSW LOW BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -f7ff - -f7ff0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -0 - -0 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -f7ff0000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW LOW BANK [31:16]

-

MASK_DATA_1_LSW LOW BANK [47:32]

-

MASK_DATA_1_MSW LOW BANK [53:48]

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -f7ff - -f7ff0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -800 - -800 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -f7ff0800 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

I2C RESET

-

DIR MODE GPIO BANK0

-

Register ( slcr )DIRM_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DIRM_0 - -0XE000A204 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DIRECTION_0 - -31:0 - -ffffffff - -2880 - -2880 - -Direction mode 0: input 1: output Each bit configures the corresponding pin within the 32-bit bank NOTE: bits[8:7] of bank0 cannot be used as inputs. The DIRM bits can be set to 0, but reading DATA_RO does not reflect the input value. See the GPIO chapter for more information. -
-DIRM_0@0XE000A204 - -31:0 - -ffffffff - - - -2880 - -Direction mode (GPIO Bank0, MIO) -
-

-

DIR MODE GPIO BANK1

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -dfff - -dfff0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -2000 - -2000 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -dfff2000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

OUTPUT ENABLE

-

Register ( slcr )OEN_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-OEN_0 - -0XE000A208 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-OP_ENABLE_0 - -31:0 - -ffffffff - -2880 - -2880 - -Output enables 0: disabled 1: enabled Each bit configures the corresponding pin within the 32-bit bank -
-OEN_0@0XE000A208 - -31:0 - -ffffffff - - - -2880 - -Output enable (GPIO Bank0, MIO) -
-

-

OUTPUT ENABLE

-

MASK_DATA_0_LSW LOW BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -dfff - -dfff0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -0 - -0 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -dfff0000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW LOW BANK [31:16]

-

MASK_DATA_1_LSW LOW BANK [47:32]

-

MASK_DATA_1_MSW LOW BANK [53:48]

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -dfff - -dfff0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -2000 - -2000 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -dfff2000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

- -

-

ps7_post_config_2_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -LVL_SHFTR_EN - - -0XF8000900 - -32 - -RW - -0x000000 - -Level Shifters Enable -
- -FPGA_RST_CTRL - - -0XF8000240 - -32 - -RW - -0x000000 - -FPGA Software Reset Control -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
-

-

ps7_post_config_2_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

ENABLING LEVEL SHIFTER

-

Register ( slcr )LVL_SHFTR_EN

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LVL_SHFTR_EN - -0XF8000900 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-USER_INP_ICT_EN_0 - -1:0 - -3 - -3 - -3 - -Enable level shifters for PSS user inputs to FPGA in FPGA tile 0, drives slcr_fpga_if_ctrl0[1:0]. -
-USER_INP_ICT_EN_1 - -3:2 - -c - -3 - -c - -Enable level shifters for PSS user inputs to FPGA in FPGA tile 1, drives slcr_fpga_if_ctrl1[1:0]. -
-LVL_SHFTR_EN@0XF8000900 - -31:0 - -f - - - -f - -Level Shifters Enable -
-

-

FPGA RESETS TO 0

-

Register ( slcr )FPGA_RST_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA_RST_CTRL - -0XF8000240 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reserved_3 - -31:25 - -fe000000 - -0 - -0 - -Reserved. Writes are ignored, read data is zero. -
-FPGA_ACP_RST - -24:24 - -1000000 - -0 - -0 - -FPGA ACP port soft reset: 0: No reset 1: ACP AXI interface reset output asserted -
-FPGA_AXDS3_RST - -23:23 - -800000 - -0 - -0 - -AXDS3AXI interface soft reset. On assertion of this reset, the AXDS3AXI interface reset output will be asserted. 0: No reset 1: AXDS3AXI interface reset output asserted -
-FPGA_AXDS2_RST - -22:22 - -400000 - -0 - -0 - -AXDS2 AXI interface soft reset. On assertion of this reset, the AXDS2 AXI interface reset output will be asserted. 0: No reset 1: AXDS2 AXI interface reset output asserted -
-FPGA_AXDS1_RST - -21:21 - -200000 - -0 - -0 - -AXDS1 AXI interface soft reset. On assertion of this reset, the AXDS1 AXI interface reset output will be asserted. 0: No reset 1: AXDS1 AXI interface reset output asserted -
-FPGA_AXDS0_RST - -20:20 - -100000 - -0 - -0 - -AXDS0 AXI interface soft reset. On assertion of this reset, the AXDS0 AXI interface reset output will be asserted. 0: No reset 1: AXDS0 AXI interface reset output asserted -
-reserved_2 - -19:18 - -c0000 - -0 - -0 - -Reserved. Writes are ignored, read data is zero. -
-FSSW1_FPGA_RST - -17:17 - -20000 - -0 - -0 - -General purpose FPGA slave interface 1 soft reset. On assertion of this reset, the FPGA slave interface 1 reset will be asserted. 0: No reset 1: FPGA slave interface 1 reset is asserted -
-FSSW0_FPGA_RST - -16:16 - -10000 - -0 - -0 - -General purpose FPGA slave interface 0 soft reset. On assertion of this reset, the FPGA slave interface 0 reset will be asserted. 0: No reset 1: FPGA slave interface 0 reset is asserted -
-reserved_1 - -15:14 - -c000 - -0 - -0 - -Reserved. Writes are ignored, read data is zero. -
-FPGA_FMSW1_RST - -13:13 - -2000 - -0 - -0 - -General purpose FPGA master interface: 1: soft reset. On assertion of this reset, the FPGA master interface 1 reset will be asserted. 0: No reset 1: FPGA master interface 1 reset is asserted -
-FPGA_FMSW0_RST - -12:12 - -1000 - -0 - -0 - -General purpose FPGA master interface 0 soft reset. On assertion of this reset, the FPGA master interface 0 reset will be asserted. 0: No reset 1: FPGA master interface 0 reset is asserted. -
-FPGA_DMA3_RST - -11:11 - -800 - -0 - -0 - -FPGA DMA 3 peripheral request soft reset. On assertion of this reset, the FPGA DMA 3 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 3 peripheral request reset output asserted -
-FPGA_DMA2_RST - -10:10 - -400 - -0 - -0 - -FPGA DMA 2 peripheral request soft reset. On assertion of this reset, the FPGA DMA 2 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 2 peripheral request reset output asserted -
-FPGA_DMA1_RST - -9:9 - -200 - -0 - -0 - -FPGA DMA 1 peripheral request soft reset. On assertion of this reset, the FPGA DMA 1 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 1 peripheral request reset output asserted -
-FPGA_DMA0_RST - -8:8 - -100 - -0 - -0 - -FPGA DMA 0 peripheral request soft reset. On assertion of this reset, the FPGA DMA 0 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 0 peripheral request reset output asserted -
-reserved - -7:4 - -f0 - -0 - -0 - -Reserved. Writes are ignored, read data is zero. -
-FPGA3_OUT_RST - -3:3 - -8 - -0 - -0 - -FPGA3software reset. On assertion of this reset, the FPGA 3 top level reset output will be asserted. 0: No reset 1: FPGA 3 top level reset output asserted -
-FPGA2_OUT_RST - -2:2 - -4 - -0 - -0 - -FPGA2 software reset. On assertion of this reset, the FPGA 2 top level reset output will be asserted. 0: No reset 1: FPGA 2 top level reset output asserted -
-FPGA1_OUT_RST - -1:1 - -2 - -0 - -0 - -FPGA1 software reset. On assertion of this reset, the FPGA 1 top level reset output will be asserted. 0: No reset 1: FPGA 1 top level reset output asserted -
-FPGA0_OUT_RST - -0:0 - -1 - -0 - -0 - -FPGA0 software reset. On assertion of this reset, the FPGA 0 top level reset output will be asserted. 0: No reset 1: FPGA 0 top level reset output asserted -
-FPGA_RST_CTRL@0XF8000240 - -31:0 - -ffffffff - - - -0 - -FPGA Software Reset Control -
-

-

AFI REGISTERS

-

AFI0 REGISTERS

-

AFI1 REGISTERS

-

AFI2 REGISTERS

-

AFI3 REGISTERS

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

- -

- - - - -

ps7_pll_init_data_1_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -ARM_PLL_CFG - - -0XF8000110 - -32 - -RW - -0x000000 - -ARM PLL Configuration -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_CLK_CTRL - - -0XF8000120 - -32 - -RW - -0x000000 - -CORTEX A9 Clock Control -
- -DDR_PLL_CFG - - -0XF8000114 - -32 - -RW - -0x000000 - -DDR PLL Configuration -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_CLK_CTRL - - -0XF8000124 - -32 - -RW - -0x000000 - -DDR Clock Control -
- -IO_PLL_CFG - - -0XF8000118 - -32 - -RW - -0x000000 - -IO PLL Configuration -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
-

-

ps7_pll_init_data_1_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

PLL SLCR REGISTERS

-

ARM PLL INIT

-

Register ( slcr )ARM_PLL_CFG

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CFG - -0XF8000110 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RES - -7:4 - -f0 - -2 - -20 - -Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control -
-PLL_CP - -11:8 - -f00 - -2 - -200 - -Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control -
-LOCK_CNT - -21:12 - -3ff000 - -fa - -fa000 - -Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. -
-ARM_PLL_CFG@0XF8000110 - -31:0 - -3ffff0 - - - -fa220 - -ARM PLL Configuration -
-

-

UPDATE FB_DIV

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_FDIV - -18:12 - -7f000 - -28 - -28000 - -Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -7f000 - - - -28000 - -ARM PLL Control -
-

-

BY PASS PLL

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -1 - -10 - -Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed. -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -10 - - - -10 - -ARM PLL Control -
-

-

ASSERT RESET

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -1 - -1 - -Drives the RESET input of the PLL. 0 - PLL out of reset; 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -1 - - - -1 - -ARM PLL Control -
-

-

DEASSERT RESET

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -0 - -0 - -Drives the RESET input of the PLL. 0 - PLL out of reset; 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -1 - - - -0 - -ARM PLL Control -
-

-

CHECK PLL STATUS

-

Register ( slcr )PLL_STATUS

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PLL_STATUS - -0XF800010C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-ARM_PLL_LOCK - -0:0 - -1 - -1 - -1 - -ARM PLL lock status. 0 - ARM PLL out of lock. 1 - ARM PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. -
-PLL_STATUS@0XF800010C - -31:0 - -1 - - - -1 - -tobe -
-

-

REMOVE PLL BY PASS

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -0 - -0 - -Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed. -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -10 - - - -0 - -ARM PLL Control -
-

-

Register ( slcr )ARM_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_CLK_CTRL - -0XF8000120 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Selects the source used to generate the clock. 0x - Source for generated clock is CPU PLL. 10 - Source for generated clock is DDR divided clock. 11 - Source for generated clock is IO PLL -
-DIVISOR - -13:8 - -3f00 - -2 - -200 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. -
-CPU_6OR4XCLKACT - -24:24 - -1000000 - -1 - -1000000 - -Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-CPU_3OR2XCLKACT - -25:25 - -2000000 - -1 - -2000000 - -Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-CPU_2XCLKACT - -26:26 - -4000000 - -1 - -4000000 - -Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-CPU_1XCLKACT - -27:27 - -8000000 - -1 - -8000000 - -Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-CPU_PERI_CLKACT - -28:28 - -10000000 - -1 - -10000000 - -Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-ARM_CLK_CTRL@0XF8000120 - -31:0 - -1f003f30 - - - -1f000200 - -CORTEX A9 Clock Control -
-

-

DDR PLL INIT

-

Register ( slcr )DDR_PLL_CFG

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CFG - -0XF8000114 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RES - -7:4 - -f0 - -2 - -20 - -Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control -
-PLL_CP - -11:8 - -f00 - -2 - -200 - -Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control -
-LOCK_CNT - -21:12 - -3ff000 - -12c - -12c000 - -Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. -
-DDR_PLL_CFG@0XF8000114 - -31:0 - -3ffff0 - - - -12c220 - -DDR PLL Configuration -
-

-

UPDATE FB_DIV

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_FDIV - -18:12 - -7f000 - -20 - -20000 - -Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -7f000 - - - -20000 - -DDR PLL Control -
-

-

BY PASS PLL

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -1 - -10 - -Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -10 - - - -10 - -DDR PLL Control -
-

-

ASSERT RESET

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -1 - -1 - -Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -1 - - - -1 - -DDR PLL Control -
-

-

DEASSERT RESET

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -0 - -0 - -Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -1 - - - -0 - -DDR PLL Control -
-

-

CHECK PLL STATUS

-

Register ( slcr )PLL_STATUS

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PLL_STATUS - -0XF800010C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DDR_PLL_LOCK - -1:1 - -2 - -1 - -2 - -DDR PLL lock status. 0 - DDR PLL out of lock. 1 - DDR PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. -
-PLL_STATUS@0XF800010C - -31:0 - -2 - - - -2 - -tobe -
-

-

REMOVE PLL BY PASS

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -0 - -0 - -Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -10 - - - -0 - -DDR PLL Control -
-

-

Register ( slcr )DDR_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_CLK_CTRL - -0XF8000124 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DDR_3XCLKACT - -0:0 - -1 - -1 - -1 - -Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-DDR_2XCLKACT - -1:1 - -2 - -1 - -2 - -Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-DDR_3XCLK_DIVISOR - -25:20 - -3f00000 - -2 - -200000 - -Divisor value for the ddr_3xclk -
-DDR_2XCLK_DIVISOR - -31:26 - -fc000000 - -3 - -c000000 - -Divisor value for the ddr_2xclk (does not have to be 2/3 speed of ddr_3xclk) -
-DDR_CLK_CTRL@0XF8000124 - -31:0 - -fff00003 - - - -c200003 - -DDR Clock Control -
-

-

IO PLL INIT

-

Register ( slcr )IO_PLL_CFG

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CFG - -0XF8000118 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RES - -7:4 - -f0 - -c - -c0 - -Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control -
-PLL_CP - -11:8 - -f00 - -2 - -200 - -Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control -
-LOCK_CNT - -21:12 - -3ff000 - -145 - -145000 - -Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. -
-IO_PLL_CFG@0XF8000118 - -31:0 - -3ffff0 - - - -1452c0 - -IO PLL Configuration -
-

-

UPDATE FB_DIV

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_FDIV - -18:12 - -7f000 - -1e - -1e000 - -Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -7f000 - - - -1e000 - -IO PLL Control -
-

-

BY PASS PLL

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -1 - -10 - -Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -10 - - - -10 - -IO PLL Control -
-

-

ASSERT RESET

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -1 - -1 - -Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -1 - - - -1 - -IO PLL Control -
-

-

DEASSERT RESET

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -0 - -0 - -Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -1 - - - -0 - -IO PLL Control -
-

-

CHECK PLL STATUS

-

Register ( slcr )PLL_STATUS

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PLL_STATUS - -0XF800010C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IO_PLL_LOCK - -2:2 - -4 - -1 - -4 - -IO PLL lock status. 0 - IO PLL out of lock. 1 - IO PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. -
-PLL_STATUS@0XF800010C - -31:0 - -4 - - - -4 - -tobe -
-

-

REMOVE PLL BY PASS

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -0 - -0 - -Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -10 - - - -0 - -IO PLL Control -
-

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

- -

-

ps7_clock_init_data_1_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -DCI_CLK_CTRL - - -0XF8000128 - -32 - -RW - -0x000000 - -DCI clock control -
- -GEM0_RCLK_CTRL - - -0XF8000138 - -32 - -RW - -0x000000 - -Gigabit Ethernet MAC 0 RX Clock Control -
- -GEM0_CLK_CTRL - - -0XF8000140 - -32 - -RW - -0x000000 - -Gigabit Ethernet MAC 0 Ref Clock Control -
- -LQSPI_CLK_CTRL - - -0XF800014C - -32 - -RW - -0x000000 - -Linear Quad-SPI Reference Clock Control -
- -SDIO_CLK_CTRL - - -0XF8000150 - -32 - -RW - -0x000000 - -SDIO Reference Clock Control -
- -UART_CLK_CTRL - - -0XF8000154 - -32 - -RW - -0x000000 - -UART Reference Clock Control -
- -CAN_CLK_CTRL - - -0XF800015C - -32 - -RW - -0x000000 - -CAN Reference Clock Control -
- -CAN_MIOCLK_CTRL - - -0XF8000160 - -32 - -RW - -0x000000 - -CAN MIO Clock Control -
- -PCAP_CLK_CTRL - - -0XF8000168 - -32 - -RW - -0x000000 - -PCAP 2X Clock Contol -
- -FPGA0_CLK_CTRL - - -0XF8000170 - -32 - -RW - -0x000000 - -FPGA 0 Output Clock Control -
- -FPGA1_CLK_CTRL - - -0XF8000180 - -32 - -RW - -0x000000 - -FPGA 1 Output Clock Control -
- -FPGA2_CLK_CTRL - - -0XF8000190 - -32 - -RW - -0x000000 - -FPGA 2 Output Clock Control -
- -FPGA3_CLK_CTRL - - -0XF80001A0 - -32 - -RW - -0x000000 - -FPGA 3 Output Clock Control -
- -CLK_621_TRUE - - -0XF80001C4 - -32 - -RW - -0x000000 - -6:2:1 ratio clock, if set -
- -APER_CLK_CTRL - - -0XF800012C - -32 - -RW - -0x000000 - -AMBA Peripheral Clock Control -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
-

-

ps7_clock_init_data_1_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

CLOCK CONTROL SLCR REGISTERS

-

Register ( slcr )DCI_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DCI_CLK_CTRL - -0XF8000128 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-DIVISOR0 - -13:8 - -3f00 - -23 - -2300 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. -
-DIVISOR1 - -25:20 - -3f00000 - -3 - -300000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider -
-DCI_CLK_CTRL@0XF8000128 - -31:0 - -3f03f01 - - - -302301 - -DCI clock control -
-

-

Register ( slcr )GEM0_RCLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-GEM0_RCLK_CTRL - -0XF8000138 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-SRCSEL - -4:4 - -10 - -0 - -0 - -Selects the source used to generate the clock. 0 - Source for generated clock is GEM 0 MIO RX clock. 1 - Source for generated clock is GEM 0 FMIO RX clock. -
-GEM0_RCLK_CTRL@0XF8000138 - -31:0 - -11 - - - -1 - -Gigabit Ethernet MAC 0 RX Clock Control -
-

-

Register ( slcr )GEM0_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-GEM0_CLK_CTRL - -0XF8000140 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-SRCSEL - -6:4 - -70 - -0 - -0 - -Selects the source used to generate the clock. 1xx - Source for generated clock is Ethernet 0 FMIO clock. 00x - Source for generated clock is IO PLL. 010 - Source for generated clock is ARM PLL. 011 - Source for generated clock is DDR PLL -
-DIVISOR - -13:8 - -3f00 - -8 - -800 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider -
-DIVISOR1 - -25:20 - -3f00000 - -5 - -500000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider -
-GEM0_CLK_CTRL@0XF8000140 - -31:0 - -3f03f71 - - - -500801 - -Gigabit Ethernet MAC 0 Ref Clock Control -
-

-

Register ( slcr )LQSPI_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LQSPI_CLK_CTRL - -0XF800014C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. -
-DIVISOR - -13:8 - -3f00 - -5 - -500 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. -
-LQSPI_CLK_CTRL@0XF800014C - -31:0 - -3f31 - - - -501 - -Linear Quad-SPI Reference Clock Control -
-

-

Register ( slcr )SDIO_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SDIO_CLK_CTRL - -0XF8000150 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT0 - -0:0 - -1 - -1 - -1 - -SDIO 0 Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-CLKACT1 - -1:1 - -2 - -0 - -0 - -SDIO 1 Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. -
-DIVISOR - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. -
-SDIO_CLK_CTRL@0XF8000150 - -31:0 - -3f33 - - - -1401 - -SDIO Reference Clock Control -
-

-

Register ( slcr )UART_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-UART_CLK_CTRL - -0XF8000154 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT0 - -0:0 - -1 - -0 - -0 - -UART 0 reference clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-CLKACT1 - -1:1 - -2 - -1 - -2 - -UART 1 reference clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. -
-DIVISOR - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. -
-UART_CLK_CTRL@0XF8000154 - -31:0 - -3f33 - - - -1402 - -UART Reference Clock Control -
-

-

Register ( slcr )CAN_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CAN_CLK_CTRL - -0XF800015C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT0 - -0:0 - -1 - -1 - -1 - -CAN 0 Reference Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-CLKACT1 - -1:1 - -2 - -0 - -0 - -CAN 1 Reference Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -e - -e00 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider -
-DIVISOR1 - -25:20 - -3f00000 - -3 - -300000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider -
-CAN_CLK_CTRL@0XF800015C - -31:0 - -3f03f33 - - - -300e01 - -CAN Reference Clock Control -
-

-

Register ( slcr )CAN_MIOCLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CAN_MIOCLK_CTRL - -0XF8000160 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CAN0_MUX - -5:0 - -3f - -0 - -0 - -CAN0 mux selection for MIO. Setting this to zero will select MIO[0] as the clock source. Only values 0-53 are valid. -
-CAN0_REF_SEL - -6:6 - -40 - -0 - -0 - -CAN 0 Reference Clock selection. 0 - From internal PLL. 1 - From MIO based on the next field -
-CAN1_MUX - -21:16 - -3f0000 - -0 - -0 - -CAN1 mux selection for MIO. Setting this to zero will select MIO[0] as the clock source. Only values 0-53 are valid. -
-CAN1_REF_SEL - -22:22 - -400000 - -0 - -0 - -CAN1 Reference Clock selection. 0 - From internal PLL. 1 - From MIO based on the next field -
-CAN_MIOCLK_CTRL@0XF8000160 - -31:0 - -7f007f - - - -0 - -CAN MIO Clock Control -
-

-

Register ( slcr )PCAP_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PCAP_CLK_CTRL - -0XF8000168 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -Clock active 0 - Clock is disabled 1 - Clock is enabled -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL -
-DIVISOR - -13:8 - -3f00 - -5 - -500 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. -
-PCAP_CLK_CTRL@0XF8000168 - -31:0 - -3f31 - - - -501 - -PCAP 2X Clock Contol -
-

-

Register ( slcr )FPGA0_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA0_CLK_CTRL - -0XF8000170 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider -
-DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider -
-FPGA0_CLK_CTRL@0XF8000170 - -31:0 - -3f03f30 - - - -101400 - -FPGA 0 Output Clock Control -
-

-

Register ( slcr )FPGA1_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA1_CLK_CTRL - -0XF8000180 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider -
-DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider -
-FPGA1_CLK_CTRL@0XF8000180 - -31:0 - -3f03f30 - - - -101400 - -FPGA 1 Output Clock Control -
-

-

Register ( slcr )FPGA2_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA2_CLK_CTRL - -0XF8000190 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider -
-DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider -
-FPGA2_CLK_CTRL@0XF8000190 - -31:0 - -3f03f30 - - - -101400 - -FPGA 2 Output Clock Control -
-

-

Register ( slcr )FPGA3_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA3_CLK_CTRL - -0XF80001A0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider -
-DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider -
-FPGA3_CLK_CTRL@0XF80001A0 - -31:0 - -3f03f30 - - - -101400 - -FPGA 3 Output Clock Control -
-

-

Register ( slcr )CLK_621_TRUE

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CLK_621_TRUE - -0XF80001C4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLK_621_TRUE - -0:0 - -1 - -1 - -1 - -Enable the 6:2:1 mode. 1 for 6:3:2:1. 0 for 4:2:2:1. -
-CLK_621_TRUE@0XF80001C4 - -31:0 - -1 - - - -1 - -6:2:1 ratio clock, if set -
-

-

Register ( slcr )APER_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-APER_CLK_CTRL - -0XF800012C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DMA_CPU_2XCLKACT - -0:0 - -1 - -1 - -1 - -DMA 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-USB0_CPU_1XCLKACT - -2:2 - -4 - -1 - -4 - -USB 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-USB1_CPU_1XCLKACT - -3:3 - -8 - -1 - -8 - -USB 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-GEM0_CPU_1XCLKACT - -6:6 - -40 - -1 - -40 - -Gigabit Ethernet MAC 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-GEM1_CPU_1XCLKACT - -7:7 - -80 - -0 - -0 - -Gigabit Ethernet MAC 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-SDI0_CPU_1XCLKACT - -10:10 - -400 - -1 - -400 - -SDIO0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-SDI1_CPU_1XCLKACT - -11:11 - -800 - -0 - -0 - -SDIO 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-SPI0_CPU_1XCLKACT - -14:14 - -4000 - -0 - -0 - -SPI 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-SPI1_CPU_1XCLKACT - -15:15 - -8000 - -0 - -0 - -SPI 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-CAN0_CPU_1XCLKACT - -16:16 - -10000 - -1 - -10000 - -CAN 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-CAN1_CPU_1XCLKACT - -17:17 - -20000 - -0 - -0 - -CAN 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-I2C0_CPU_1XCLKACT - -18:18 - -40000 - -1 - -40000 - -I2C 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-I2C1_CPU_1XCLKACT - -19:19 - -80000 - -1 - -80000 - -I2C 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-UART0_CPU_1XCLKACT - -20:20 - -100000 - -0 - -0 - -UART 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-UART1_CPU_1XCLKACT - -21:21 - -200000 - -1 - -200000 - -UART 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-GPIO_CPU_1XCLKACT - -22:22 - -400000 - -1 - -400000 - -GPIO AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-LQSPI_CPU_1XCLKACT - -23:23 - -800000 - -1 - -800000 - -LQSPI AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-SMC_CPU_1XCLKACT - -24:24 - -1000000 - -1 - -1000000 - -SMC AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-APER_CLK_CTRL@0XF800012C - -31:0 - -1ffcccd - - - -1ed044d - -AMBA Peripheral Clock Control -
-

-

THIS SHOULD BE BLANK

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

- -

-

ps7_ddr_init_data_1_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -ddrc_ctrl - - -0XF8006000 - -32 - -RW - -0x000000 - -DDRC Control Register -
- -Two_rank_cfg - - -0XF8006004 - -32 - -RW - -0x000000 - -Two rank configuration register -
- -HPR_reg - - -0XF8006008 - -32 - -RW - -0x000000 - -HPR Queue control register -
- -LPR_reg - - -0XF800600C - -32 - -RW - -0x000000 - -LPR Queue control register -
- -WR_reg - - -0XF8006010 - -32 - -RW - -0x000000 - -WR Queue control register -
- -DRAM_param_reg0 - - -0XF8006014 - -32 - -RW - -0x000000 - -DRAM Parameters register 0 -
- -DRAM_param_reg1 - - -0XF8006018 - -32 - -RW - -0x000000 - -DRAM Parameters register 1 -
- -DRAM_param_reg2 - - -0XF800601C - -32 - -RW - -0x000000 - -DRAM Parameters register 2 -
- -DRAM_param_reg3 - - -0XF8006020 - -32 - -RW - -0x000000 - -DRAM Parameters register 3 -
- -DRAM_param_reg4 - - -0XF8006024 - -32 - -RW - -0x000000 - -DRAM Parameters register 4 -
- -DRAM_init_param - - -0XF8006028 - -32 - -RW - -0x000000 - -DRAM initialization parameters register -
- -DRAM_EMR_reg - - -0XF800602C - -32 - -RW - -0x000000 - -DRAM EMR2, EMR3 access register -
- -DRAM_EMR_MR_reg - - -0XF8006030 - -32 - -RW - -0x000000 - -DRAM EMR, MR access register -
- -DRAM_burst8_rdwr - - -0XF8006034 - -32 - -RW - -0x000000 - -DRAM burst 8 read/write register -
- -DRAM_disable_DQ - - -0XF8006038 - -32 - -RW - -0x000000 - -DRAM Disable DQ register -
- -DRAM_addr_map_bank - - -0XF800603C - -32 - -RW - -0x000000 - -Selects the address bits used as DRAM bank address bits -
- -DRAM_addr_map_col - - -0XF8006040 - -32 - -RW - -0x000000 - -Selects the address bits used as DRAM column address bits -
- -DRAM_addr_map_row - - -0XF8006044 - -32 - -RW - -0x000000 - -Selects the address bits used as DRAM row address bits -
- -DRAM_ODT_reg - - -0XF8006048 - -32 - -RW - -0x000000 - -DRAM ODT register -
- -phy_cmd_timeout_rddata_cpt - - -0XF8006050 - -32 - -RW - -0x000000 - -PHY command time out and read data capture FIFO register -
- -DLL_calib - - -0XF8006058 - -32 - -RW - -0x000000 - -DLL calibration register -
- -ODT_delay_hold - - -0XF800605C - -32 - -RW - -0x000000 - -ODT delay and ODT hold register -
- -ctrl_reg1 - - -0XF8006060 - -32 - -RW - -0x000000 - -Controller register 1 -
- -ctrl_reg2 - - -0XF8006064 - -32 - -RW - -0x000000 - -Controller register 2 -
- -ctrl_reg3 - - -0XF8006068 - -32 - -RW - -0x000000 - -Controller register 3 -
- -ctrl_reg4 - - -0XF800606C - -32 - -RW - -0x000000 - -Controller register 4 -
- -CHE_REFRESH_TIMER01 - - -0XF80060A0 - -32 - -RW - -0x000000 - -CHE_REFRESH_TIMER01 -
- -CHE_T_ZQ - - -0XF80060A4 - -32 - -RW - -0x000000 - -ZQ parameters register -
- -CHE_T_ZQ_Short_Interval_Reg - - -0XF80060A8 - -32 - -RW - -0x000000 - -Misc parameters register -
- -deep_pwrdwn_reg - - -0XF80060AC - -32 - -RW - -0x000000 - -Deep powerdown register -
- -reg_2c - - -0XF80060B0 - -32 - -RW - -0x000000 - -Training control register -
- -reg_2d - - -0XF80060B4 - -32 - -RW - -0x000000 - -Misc Debug register -
- -dfi_timing - - -0XF80060B8 - -32 - -RW - -0x000000 - -DFI timing register -
- -CHE_ECC_CONTROL_REG_OFFSET - - -0XF80060C4 - -32 - -RW - -0x000000 - -ECC error clear register -
- -CHE_ECC_CONTROL_REG_OFFSET - - -0XF80060C4 - -32 - -RW - -0x000000 - -ECC error clear register -
- -CHE_CORR_ECC_LOG_REG_OFFSET - - -0XF80060C8 - -32 - -RW - -0x000000 - -ECC error correction register -
- -CHE_UNCORR_ECC_LOG_REG_OFFSET - - -0XF80060DC - -32 - -RW - -0x000000 - -ECC unrecoverable error status register -
- -CHE_ECC_STATS_REG_OFFSET - - -0XF80060F0 - -32 - -RW - -0x000000 - -ECC error count register -
- -ECC_scrub - - -0XF80060F4 - -32 - -RW - -0x000000 - -ECC mode/scrub register -
- -phy_rcvr_enable - - -0XF8006114 - -32 - -RW - -0x000000 - -Phy receiver enable register -
- -PHY_Config - - -0XF8006118 - -32 - -RW - -0x000000 - -PHY configuration register for data slice 0. -
- -PHY_Config - - -0XF800611C - -32 - -RW - -0x000000 - -PHY configuration register for data slice 0. -
- -PHY_Config - - -0XF8006120 - -32 - -RW - -0x000000 - -PHY configuration register for data slice 0. -
- -PHY_Config - - -0XF8006124 - -32 - -RW - -0x000000 - -PHY configuration register for data slice 0. -
- -phy_init_ratio - - -0XF800612C - -32 - -RW - -0x000000 - -PHY init ratio register for data slice 0. -
- -phy_init_ratio - - -0XF8006130 - -32 - -RW - -0x000000 - -PHY init ratio register for data slice 0. -
- -phy_init_ratio - - -0XF8006134 - -32 - -RW - -0x000000 - -PHY init ratio register for data slice 0. -
- -phy_init_ratio - - -0XF8006138 - -32 - -RW - -0x000000 - -PHY init ratio register for data slice 0. -
- -phy_rd_dqs_cfg - - -0XF8006140 - -32 - -RW - -0x000000 - -PHY read DQS configuration register for data slice 0. -
- -phy_rd_dqs_cfg - - -0XF8006144 - -32 - -RW - -0x000000 - -PHY read DQS configuration register for data slice 0. -
- -phy_rd_dqs_cfg - - -0XF8006148 - -32 - -RW - -0x000000 - -PHY read DQS configuration register for data slice 0. -
- -phy_rd_dqs_cfg - - -0XF800614C - -32 - -RW - -0x000000 - -PHY read DQS configuration register for data slice 0. -
- -phy_wr_dqs_cfg - - -0XF8006154 - -32 - -RW - -0x000000 - -PHY write DQS configuration register for data slice 0. -
- -phy_wr_dqs_cfg - - -0XF8006158 - -32 - -RW - -0x000000 - -PHY write DQS configuration register for data slice 0. -
- -phy_wr_dqs_cfg - - -0XF800615C - -32 - -RW - -0x000000 - -PHY write DQS configuration register for data slice 0. -
- -phy_wr_dqs_cfg - - -0XF8006160 - -32 - -RW - -0x000000 - -PHY write DQS configuration register for data slice 0. -
- -phy_we_cfg - - -0XF8006168 - -32 - -RW - -0x000000 - -PHY fifo write enable configuration register for data slice 0. -
- -phy_we_cfg - - -0XF800616C - -32 - -RW - -0x000000 - -PHY fifo write enable configuration register for data slice 0. -
- -phy_we_cfg - - -0XF8006170 - -32 - -RW - -0x000000 - -PHY fifo write enable configuration register for data slice 0. -
- -phy_we_cfg - - -0XF8006174 - -32 - -RW - -0x000000 - -PHY fifo write enable configuration register for data slice 0. -
- -wr_data_slv - - -0XF800617C - -32 - -RW - -0x000000 - -PHY write data slave ratio configuration register for data slice 0. -
- -wr_data_slv - - -0XF8006180 - -32 - -RW - -0x000000 - -PHY write data slave ratio configuration register for data slice 0. -
- -wr_data_slv - - -0XF8006184 - -32 - -RW - -0x000000 - -PHY write data slave ratio configuration register for data slice 0. -
- -wr_data_slv - - -0XF8006188 - -32 - -RW - -0x000000 - -PHY write data slave ratio configuration register for data slice 0. -
- -reg_64 - - -0XF8006190 - -32 - -RW - -0x000000 - -Training control register (2) -
- -reg_65 - - -0XF8006194 - -32 - -RW - -0x000000 - -Training control register (3) -
- -page_mask - - -0XF8006204 - -32 - -RW - -0x000000 - -Page mask register -
- -axi_priority_wr_port - - -0XF8006208 - -32 - -RW - -0x000000 - -AXI Priority control for write port 0. -
- -axi_priority_wr_port - - -0XF800620C - -32 - -RW - -0x000000 - -AXI Priority control for write port 0. -
- -axi_priority_wr_port - - -0XF8006210 - -32 - -RW - -0x000000 - -AXI Priority control for write port 0. -
- -axi_priority_wr_port - - -0XF8006214 - -32 - -RW - -0x000000 - -AXI Priority control for write port 0. -
- -axi_priority_rd_port - - -0XF8006218 - -32 - -RW - -0x000000 - -AXI Priority control for read port 0. -
- -axi_priority_rd_port - - -0XF800621C - -32 - -RW - -0x000000 - -AXI Priority control for read port 0. -
- -axi_priority_rd_port - - -0XF8006220 - -32 - -RW - -0x000000 - -AXI Priority control for read port 0. -
- -axi_priority_rd_port - - -0XF8006224 - -32 - -RW - -0x000000 - -AXI Priority control for read port 0. -
- -lpddr_ctrl0 - - -0XF80062A8 - -32 - -RW - -0x000000 - -LPDDR2 Control 0 Register -
- -lpddr_ctrl1 - - -0XF80062AC - -32 - -RW - -0x000000 - -LPDDR2 Control 1 Register -
- -lpddr_ctrl2 - - -0XF80062B0 - -32 - -RW - -0x000000 - -LPDDR2 Control 2 Register -
- -lpddr_ctrl3 - - -0XF80062B4 - -32 - -RW - -0x000000 - -LPDDR2 Control 3 Register -
- -ddrc_ctrl - - -0XF8006000 - -32 - -RW - -0x000000 - -DDRC Control Register -
-

-

ps7_ddr_init_data_1_0

- - - - - - - - - -

DDR INITIALIZATION

-

LOCK DDR

-

Register ( slcr )ddrc_ctrl

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ddrc_ctrl - -0XF8006000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_soft_rstb - -0:0 - -1 - -0 - -0 - -Active low soft reset. 0 = Resets the controller 1 = Takes the controller out of reset Note: Controller must be taken out of reset only after all other registers have been programmed. -
-reg_ddrc_powerdown_en - -1:1 - -2 - -0 - -0 - -Controller power down control. 0 = DDRC powerdown disabled 1 = the controller goes into power down after a programmable number of cycles 'Maximum idle clocks before power down' (reg_ddrc_powerdown_to_x32). Note: This register bit may be reprogrammed during the course of normal operation. -
-reg_ddrc_data_bus_width - -3:2 - -c - -0 - -0 - -DDR bus width control 00 = 32 bit DDR bus 01 = 16 bit DDR bus 1x = reserved -
-reg_ddrc_burst8_refresh - -6:4 - -70 - -0 - -0 - -Refresh timeout register. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0 = single refresh 1 = burst-of-2 . 7 = burst-of-8 refresh -
-reg_ddrc_rdwr_idle_gap - -13:7 - -3f80 - -1 - -80 - -When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. -
-reg_ddrc_dis_rd_bypass - -14:14 - -4000 - -0 - -0 - -Only present in designs supporting read bypass. For Debug only. 0 = Do not disable bypass path for high priority read page hits. 1 = disable bypass path for high priority read page hits. -
-reg_ddrc_dis_act_bypass - -15:15 - -8000 - -0 - -0 - -Only present in designs supporting activate bypass. For Debug only. 0 = Do not disable bypass path for high priority read activates. 1 = disable bypass path for high priority read activates. -
-reg_ddrc_dis_auto_refresh - -16:16 - -10000 - -0 - -0 - -Disable auto-refresh. 0 = do not disable auto-refresh generated by the controller. This input is changeable on the fly. 1 = disable auto-refresh generated by the controller. This input is changeable on the fly. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. -
-ddrc_ctrl@0XF8006000 - -31:0 - -1ffff - - - -80 - -DDRC Control Register -
-

-

Register ( slcr )Two_rank_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Two_rank_cfg - -0XF8006004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_t_rfc_nom_x32 - -11:0 - -fff - -81 - -81 - -tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM RELATED. Default value is set for DDR3. -
-reg_ddrc_active_ranks - -13:12 - -3000 - -1 - -1000 - -Only present for multi-rank configurations. Each bit represents one rank. 1=populated; 0=unpopulated 01 = One Rank 11 = Two Ranks Others = Reserved -
-reg_ddrc_addrmap_cs_bit0 - -18:14 - -7c000 - -0 - -0 - -Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. -
-reg_ddrc_wr_odt_block - -20:19 - -180000 - -1 - -80000 - -00 = block read/write scheduling for 1-cycle when Write requires changing ODT settings 01 = block read/write scheduling for 2 cycles when Write requires changing ODT settings 10 = block read/write scheduling for 3 cycles when Write requires changing ODT settings 11 = Reserved -
-reg_ddrc_diff_rank_rd_2cycle_gap - -21:21 - -200000 - -0 - -0 - -Only present for multi-rank configurations. The two cycle gap is required for mDDR only, due to the large variance in tDQSCK in mDDR. 0 = schedule a 1-cycle gap in data responses when performing consecutive reads to different ranks 1 = schedule 2 cycle gap for the same -
-reg_ddrc_addrmap_cs_bit1 - -26:22 - -7c00000 - -0 - -0 - -Only present for multi-rank configurations. Selects the address bit used as rank address bit 1. Valid Range: 0 to 25, and 31 Internal Base: 10 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 1 is set to 0. -
-reg_ddrc_addrmap_open_bank - -27:27 - -8000000 - -0 - -0 - -Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1 = Set the address map to Open Bank mode -
-reg_ddrc_addrmap_4bank_ram - -28:28 - -10000000 - -0 - -0 - -Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1 = Set the address map for 4 Bank RAMs -
-Two_rank_cfg@0XF8006004 - -31:0 - -1fffffff - - - -81081 - -Two rank configuration register -
-

-

Register ( slcr )HPR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-HPR_reg - -0XF8006008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_hpr_min_non_critical_x32 - -10:0 - -7ff - -f - -f - -Number of clocks that the HPR queue is guaranteed to be non-critical. Unit: 32 clocks -
-reg_ddrc_hpr_max_starve_x32 - -21:11 - -3ff800 - -f - -7800 - -Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks -
-reg_ddrc_hpr_xact_run_length - -25:22 - -3c00000 - -f - -3c00000 - -Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. -
-HPR_reg@0XF8006008 - -31:0 - -3ffffff - - - -3c0780f - -HPR Queue control register -
-

-

Register ( slcr )LPR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LPR_reg - -0XF800600C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_lpr_min_non_critical_x32 - -10:0 - -7ff - -1 - -1 - -Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks -
-reg_ddrc_lpr_max_starve_x32 - -21:11 - -3ff800 - -2 - -1000 - -Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks -
-reg_ddrc_lpr_xact_run_length - -25:22 - -3c00000 - -8 - -2000000 - -Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available -
-LPR_reg@0XF800600C - -31:0 - -3ffffff - - - -2001001 - -LPR Queue control register -
-

-

Register ( slcr )WR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-WR_reg - -0XF8006010 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_w_min_non_critical_x32 - -10:0 - -7ff - -1 - -1 - -Number of clock cycles that the WR queue is guaranteed to be non-critical. -
-reg_ddrc_w_xact_run_length - -14:11 - -7800 - -8 - -4000 - -Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available -
-reg_ddrc_w_max_starve_x32 - -25:15 - -3ff8000 - -2 - -10000 - -Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. -
-WR_reg@0XF8006010 - -31:0 - -3ffffff - - - -14001 - -WR Queue control register -
-

-

Register ( slcr )DRAM_param_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg0 - -0XF8006014 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_t_rc - -5:0 - -3f - -1b - -1b - -tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM RELATED. Default value is set for DDR3. -
-reg_ddrc_t_rfc_min - -13:6 - -3fc0 - -56 - -1580 - -tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75ns to 195ns). DRAM RELATED. Default value is set for DDR3. -
-reg_ddrc_post_selfref_gap_x32 - -20:14 - -1fc000 - -10 - -40000 - -Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks DRAM RELATED -
-DRAM_param_reg0@0XF8006014 - -31:0 - -1fffff - - - -4159b - -DRAM Parameters register 0 -
-

-

Register ( slcr )DRAM_param_reg1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg1 - -0XF8006018 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_wr2pre - -4:0 - -1f - -12 - -12 - -Minimum time between write and precharge to same bank Non-LPDDR2 -> WL + BL/2 + tWR LPDDR2 -> WL + BL/2 + tWR + 1 Unit: Clocks where, WL = write latency. BL = burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR = write recovery time. This comes directly from the DRAM specs. -
-reg_ddrc_powerdown_to_x32 - -9:5 - -3e0 - -6 - -c0 - -After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. -
-reg_ddrc_t_faw - -15:10 - -fc00 - -10 - -4000 - -tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks DRAM RELATED. -
-reg_ddrc_t_ras_max - -21:16 - -3f0000 - -24 - -240000 - -tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec: 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM RELATED. -
-reg_ddrc_t_ras_min - -26:22 - -7c00000 - -14 - -5000000 - -tRAS(min) - Minimum time between activate and precharge to the same bank(spec: 45 ns). Unit: clocks DRAM RELATED. Default value is set for DDR3. -
-reg_ddrc_t_cke - -31:28 - -f0000000 - -4 - -40000000 - -Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. LPDDR2 mode: Set this to the larger of tCKE or tCKESR. Non-LPDDR2 designs: Set this to tCKE value. Unit: clocks. -
-DRAM_param_reg1@0XF8006018 - -31:0 - -f7ffffff - - - -452440d2 - -DRAM Parameters register 1 -
-

-

Register ( slcr )DRAM_param_reg2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg2 - -0XF800601C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_write_latency - -4:0 - -1f - -5 - -5 - -Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2/3 -> WL -1 LPDDR -> 1 LPDDR2 ->WL Where WL = Write Latency of DRAM DRAM RELATED. -
-reg_ddrc_rd2wr - -9:5 - -3e0 - -7 - -e0 - -Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. non-LPDDR2 -> RL + BL/2 + 2 - WL LPDDR2 -> RL + BL/2 + RU(tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. -
-reg_ddrc_wr2rd - -14:10 - -7c00 - -e - -3800 - -Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. non-LPDDR2 -> WL + tWTR + BL/2 LPDDR2 -> WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL = Write latency, BL = burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR = internal WRITE to READ command delay. This comes directly from the DRAM specs. -
-reg_ddrc_t_xp - -19:15 - -f8000 - -4 - -20000 - -tXP: Minimum time after power down exit to any operation. DRAM RELATED. -
-reg_ddrc_pad_pd - -22:20 - -700000 - -0 - -0 - -If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. -
-reg_ddrc_rd2pre - -27:23 - -f800000 - -4 - -2000000 - -Minimum time from read to precharge of same bank DDR2 -> AL + BL/2 + max(tRTP, 2) - 2 DDR3 -> AL + max (tRTP, 4) mDDR -> BL/2 LPDDR2 -> BL/2 + tRTP - 1 AL = Additive Latency BL = DRAM Burst Length tRTP = value from spec DRAM RELATED -
-reg_ddrc_t_rcd - -31:28 - -f0000000 - -7 - -70000000 - -tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency DRAM RELATED -
-DRAM_param_reg2@0XF800601C - -31:0 - -ffffffff - - - -720238e5 - -DRAM Parameters register 2 -
-

-

Register ( slcr )DRAM_param_reg3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg3 - -0XF8006020 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_t_ccd - -4:2 - -1c - -4 - -10 - -tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1 DRAM RELATED -
-reg_ddrc_t_rrd - -7:5 - -e0 - -4 - -80 - -tRRD - Minimum time between activates from bank a to bank b. (spec: 10ns or less) DRAM RELATED -
-reg_ddrc_refresh_margin - -11:8 - -f00 - -2 - -200 - -Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. -
-reg_ddrc_t_rp - -15:12 - -f000 - -7 - -7000 - -tRP - Minimum time from precharge to activate of same bank. DRAM RELATED -
-reg_ddrc_refresh_to_x32 - -20:16 - -1f0000 - -8 - -80000 - -If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. -
-reg_ddrc_sdram - -21:21 - -200000 - -1 - -200000 - -1 = sdram device 0 = non-sdram device -
-reg_ddrc_mobile - -22:22 - -400000 - -0 - -0 - -1= mobile/LPDDR DRAM device in use. 0=non-mobile DRAM device in use. -
-reg_ddrc_clock_stop_en - -23:23 - -800000 - -0 - -0 - -1=enable the assertion of stop_clk to the PHY whenever a clock is not required by LPDDR/ LPDDR2. 0=stop_clk will never be asserted. Note: This is only present for implementations supporting LPDDR/LPDDR2 devices. -
-reg_ddrc_read_latency - -28:24 - -1f000000 - -7 - -7000000 - -Set to RL. Time from Read command to Read data on DRAM interface. Unit: clocks This signal is present for designs supporting LPDDR/LPDDR2 DRAM only. It is used to calculate when DRAM clock may be stopped. RL = Read Latency of DRAM Note: This signal is present for designs supporting LPDDR/LPDDR2 DRAM only. It is used to calculate when DRAM clock may be stopped. -
-reg_phy_mode_ddr1_ddr2 - -29:29 - -20000000 - -1 - -20000000 - -unused -
-reg_ddrc_dis_pad_pd - -30:30 - -40000000 - -0 - -0 - -1 = disable the pad power down feature 0 = Enable the pad power down feature. -
-reg_ddrc_loopback - -31:31 - -80000000 - -0 - -0 - -unused -
-DRAM_param_reg3@0XF8006020 - -31:0 - -fffffffc - - - -27287290 - -DRAM Parameters register 3 -
-

-

Register ( slcr )DRAM_param_reg4

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg4 - -0XF8006024 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_en_2t_timing_mode - -0:0 - -1 - -0 - -0 - -1 = DDRC will use 2T timing 0 = DDRC will use 1T timing -
-reg_ddrc_prefer_write - -1:1 - -2 - -0 - -0 - -1 = Bank selector prefers writes over reads -
-reg_ddrc_max_rank_rd - -5:2 - -3c - -f - -3c - -Only present for multi-rank configurations Background: Reads to the same rank can be performed back-to-back. Reads from different ranks require additional 1-cycle latency in between (to avoid possible data bus contention). The controller arbitrates for bus access on a cycle-by-cycle basis; therefore after a read is scheduled, there is a clock cycle in which only reads from the same bank are eligible to be scheduled. This prevents reads from other ranks from having fair access to the data bus. This parameter represents the maximum number of 64-byte reads (or 32B reads in some short read cases) that can be scheduled consecutively to the same rank. After this number is reached, a 1-cycle delay is inserted by the scheduler to allow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fairness (and hence worst-case latency). FOR PERFORMANCE ONLY. -
-reg_ddrc_mr_wr - -6:6 - -40 - -0 - -0 - -A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and 'ddrc_reg_mr_wr_busy' is detected low. -
-reg_ddrc_mr_addr - -8:7 - -180 - -0 - -0 - -Mode register address - for non-LPDDR2 modes. This register is don't care in LPDDR2 mode 00 = MR0 01 = MR1 10 = MR2 11 = MR3 -
-reg_ddrc_mr_data - -24:9 - -1fffe00 - -0 - -0 - -Mode register write data - for non-LPDDR2 modes. For LPDDR2, these 16-bits are interpreted as Writes: \'7bMR Addr[7:0], MR Data[7:0]\'7d. Reads: \'7bMR Addr[7:0], Don't Care[7:0]\'7d -
-ddrc_reg_mr_wr_busy - -25:25 - -2000000 - -0 - -0 - -Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 1 = Indicates that mode register write / read operation is in progress. 0 = Indicates that the core can initiate a mode register write / read operation. -
-reg_ddrc_mr_type - -26:26 - -4000000 - -0 - -0 - -Indicates whether the Mode register operation is read or write 1 = read 0 = write -
-reg_ddrc_mr_rdata_valid - -27:27 - -8000000 - -0 - -0 - -This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 1'b0 by default. This bit will be cleared (1'b0), whenever a Mode Register Read command is issued. This bit will be set to 1'b1, when the Mode Register Read Data is written to register 0xA9. -
-DRAM_param_reg4@0XF8006024 - -31:0 - -fffffff - - - -3c - -DRAM Parameters register 4 -
-

-

Register ( slcr )DRAM_init_param

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_init_param - -0XF8006028 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_final_wait_x32 - -6:0 - -7f - -7 - -7 - -Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. -
-reg_ddrc_pre_ocd_x32 - -10:7 - -780 - -0 - -0 - -Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. -
-reg_ddrc_t_mrd - -13:11 - -3800 - -4 - -2000 - -tMRD - Cycles between Load Mode commands DRAM RELATED Default value is set for DDR3. -
-DRAM_init_param@0XF8006028 - -31:0 - -3fff - - - -2007 - -DRAM initialization parameters register -
-

-

Register ( slcr )DRAM_EMR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_EMR_reg - -0XF800602C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_emr2 - -15:0 - -ffff - -8 - -8 - -Non LPDDR2- Value to be loaded into DRAM EMR2 registers. For LPDDR2 - Value to Write to the MR3 register -
-reg_ddrc_emr3 - -31:16 - -ffff0000 - -0 - -0 - -Non LPDDR2- Value to be loaded into DRAM EMR3 registers. Used in non-LPDDR2 designs only. -
-DRAM_EMR_reg@0XF800602C - -31:0 - -ffffffff - - - -8 - -DRAM EMR2, EMR3 access register -
-

-

Register ( slcr )DRAM_EMR_MR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_EMR_MR_reg - -0XF8006030 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_mr - -15:0 - -ffff - -930 - -930 - -Non LPDDR2-Value to be loaded into the DRAM Mode register. Bit 8 is for DLL and the setting here is ignored. The controller sets appropriately. For LPDDR2 - Value to Write to the MR1 register -
-reg_ddrc_emr - -31:16 - -ffff0000 - -4 - -40000 - -Non LPDDR2-Value to be loaded into DRAM EMR registers. Bits [9:7] are for OCD and the setting in this register is ignored. The controller sets those bits appropriately. For LPDDR2 - Value to Write to the MR2 register -
-DRAM_EMR_MR_reg@0XF8006030 - -31:0 - -ffffffff - - - -40930 - -DRAM EMR, MR access register -
-

-

Register ( slcr )DRAM_burst8_rdwr

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_burst8_rdwr - -0XF8006034 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_burst_rdwr - -3:0 - -f - -4 - -4 - -This controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. In LPDDR and LPDDR2, Burst length of 16 is supported only in Half Bus Width mode. Every input read/write command has 4 cycles of data associated with it and that is not enough data for doing Burst Length16 in Full Bus Width mode. 0010 - Burst length of 4 0100 - Burst length of 8 1000 - Burst length of 16 (only supported for LPDDR AND LPDDR2) All other values are reserved -
-reg_ddrc_pre_cke_x1024 - -13:4 - -3ff0 - -105 - -1050 - -Cycles to wait after reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 us. LPDDR2 - tINIT0 of 20 ms (max) + tINIT1 of 100 ns (min) -
-reg_ddrc_post_cke_x1024 - -25:16 - -3ff0000 - -1 - -10000 - -Cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. -
-reg_ddrc_burstchop - -28:28 - -10000000 - -0 - -0 - -Feature not supported. When 1, Controller is out in burstchop mode. -
-DRAM_burst8_rdwr@0XF8006034 - -31:0 - -13ff3fff - - - -11054 - -DRAM burst 8 read/write register -
-

-

Register ( slcr )DRAM_disable_DQ

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_disable_DQ - -0XF8006038 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_force_low_pri_n - -0:0 - -1 - -0 - -0 - -Active Low signal. When asserted (0), all incoming transactions will be forced to low priority. Forcing the incoming transactions to low priority implicitly turns OFF Bypass. Otherwise, HPR is allowed if enabled in the AXI priority read registers. -
-reg_ddrc_dis_dq - -1:1 - -2 - -0 - -0 - -When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. This bit is intended to be switched on-the-fly -
-reg_phy_debug_mode - -6:6 - -40 - -0 - -0 - -Not Applicable in this PHY. -
-reg_phy_wr_level_start - -7:7 - -80 - -0 - -0 - -Not Applicable in this PHY. -
-reg_phy_rd_level_start - -8:8 - -100 - -0 - -0 - -Not Applicable in this PHY. -
-reg_phy_dq0_wait_t - -12:9 - -1e00 - -0 - -0 - -Not Applicable in this PHY. -
-DRAM_disable_DQ@0XF8006038 - -31:0 - -1fc3 - - - -0 - -DRAM Disable DQ register -
-

-

Register ( slcr )DRAM_addr_map_bank

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_addr_map_bank - -0XF800603C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_addrmap_bank_b0 - -3:0 - -f - -7 - -7 - -Selects the address bits used as bank address bit 0. Valid Range: 0 to 14 Internal Base: 5 The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_bank_b1 - -7:4 - -f0 - -7 - -70 - -Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_bank_b2 - -11:8 - -f00 - -7 - -700 - -Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. -
-reg_ddrc_addrmap_col_b5 - -15:12 - -f000 - -0 - -0 - -Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 -
-reg_ddrc_addrmap_col_b6 - -19:16 - -f0000 - -0 - -0 - -Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 -
-DRAM_addr_map_bank@0XF800603C - -31:0 - -fffff - - - -777 - -Selects the address bits used as DRAM bank address bits -
-

-

Register ( slcr )DRAM_addr_map_col

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_addr_map_col - -0XF8006040 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_addrmap_col_b2 - -3:0 - -f - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_col_b3 - -7:4 - -f0 - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_col_b4 - -11:8 - -f00 - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_col_b7 - -15:12 - -f000 - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-reg_ddrc_addrmap_col_b8 - -19:16 - -f0000 - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-reg_ddrc_addrmap_col_b9 - -23:20 - -f00000 - -f - -f00000 - -Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-reg_ddrc_addrmap_col_b10 - -27:24 - -f000000 - -f - -f000000 - -Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-reg_ddrc_addrmap_col_b11 - -31:28 - -f0000000 - -f - -f0000000 - -Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-DRAM_addr_map_col@0XF8006040 - -31:0 - -ffffffff - - - -fff00000 - -Selects the address bits used as DRAM column address bits -
-

-

Register ( slcr )DRAM_addr_map_row

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_addr_map_row - -0XF8006044 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_addrmap_row_b0 - -3:0 - -f - -6 - -6 - -Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field -
-reg_ddrc_addrmap_row_b1 - -7:4 - -f0 - -6 - -60 - -Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_row_b2_11 - -11:8 - -f00 - -6 - -600 - -Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_row_b12 - -15:12 - -f000 - -6 - -6000 - -Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. -
-reg_ddrc_addrmap_row_b13 - -19:16 - -f0000 - -6 - -60000 - -Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. -
-reg_ddrc_addrmap_row_b14 - -23:20 - -f00000 - -6 - -600000 - -Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. -
-reg_ddrc_addrmap_row_b15 - -27:24 - -f000000 - -f - -f000000 - -Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. -
-DRAM_addr_map_row@0XF8006044 - -31:0 - -fffffff - - - -f666666 - -Selects the address bits used as DRAM row address bits -
-

-

Register ( slcr )DRAM_ODT_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_ODT_reg - -0XF8006048 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_rank0_rd_odt - -2:0 - -7 - -0 - -0 - -Unused. [1:0] - Indicates which remote ODT's must be turned ON during a read to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2] - If 1 then local ODT is enabled during reads to rank 0. -
-reg_ddrc_rank0_wr_odt - -5:3 - -38 - -1 - -8 - -[1:0] - Indicates which remote ODT's must be turned on during a write to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2] - If 1 then local ODT is enabled during writes to rank 0. -
-reg_ddrc_rank1_rd_odt - -8:6 - -1c0 - -1 - -40 - -Unused -
-reg_ddrc_rank1_wr_odt - -11:9 - -e00 - -1 - -200 - -Unused -
-reg_phy_rd_local_odt - -13:12 - -3000 - -0 - -0 - -Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. -
-reg_phy_wr_local_odt - -15:14 - -c000 - -3 - -c000 - -Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. -
-reg_phy_idle_local_odt - -17:16 - -30000 - -3 - -30000 - -Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. -
-reg_ddrc_rank2_rd_odt - -20:18 - -1c0000 - -0 - -0 - -Unused -
-reg_ddrc_rank2_wr_odt - -23:21 - -e00000 - -0 - -0 - -Unused -
-reg_ddrc_rank3_rd_odt - -26:24 - -7000000 - -0 - -0 - -Unused -
-reg_ddrc_rank3_wr_odt - -29:27 - -38000000 - -0 - -0 - -Unused -
-DRAM_ODT_reg@0XF8006048 - -31:0 - -3fffffff - - - -3c248 - -DRAM ODT register -
-

-

Register ( slcr )phy_cmd_timeout_rddata_cpt

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_cmd_timeout_rddata_cpt - -0XF8006050 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_cmd_to_data - -3:0 - -f - -0 - -0 - -Not used in DFI PHY. -
-reg_phy_wr_cmd_to_data - -7:4 - -f0 - -0 - -0 - -Not used in DFI PHY. -
-reg_phy_rdc_we_to_re_delay - -11:8 - -f00 - -8 - -800 - -This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. -
-reg_phy_rdc_fifo_rst_disable - -15:15 - -8000 - -0 - -0 - -When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. -
-reg_phy_use_fixed_re - -16:16 - -10000 - -1 - -10000 - -When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. -
-reg_phy_rdc_fifo_rst_err_cnt_clr - -17:17 - -20000 - -0 - -0 - -Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. -
-reg_phy_dis_phy_ctrl_rstn - -18:18 - -40000 - -0 - -0 - -Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. -
-reg_phy_clk_stall_level - -19:19 - -80000 - -0 - -0 - -1 = stall clock, for DLL aging control -
-reg_phy_gatelvl_num_of_dq0 - -27:24 - -f000000 - -7 - -7000000 - -This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. -
-reg_phy_wrlvl_num_of_dq0 - -31:28 - -f0000000 - -7 - -70000000 - -This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. -
-phy_cmd_timeout_rddata_cpt@0XF8006050 - -31:0 - -ff0f8fff - - - -77010800 - -PHY command time out and read data capture FIFO register -
-

-

Register ( slcr )DLL_calib

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DLL_calib - -0XF8006058 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_dll_calib_to_min_x1024 - -7:0 - -ff - -1 - -1 - -Unused in DFI Controller. -
-reg_ddrc_dll_calib_to_max_x1024 - -15:8 - -ff00 - -1 - -100 - -Unused in DFI Controller. -
-reg_ddrc_dis_dll_calib - -16:16 - -10000 - -0 - -0 - -When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically -
-DLL_calib@0XF8006058 - -31:0 - -1ffff - - - -101 - -DLL calibration register -
-

-

Register ( slcr )ODT_delay_hold

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ODT_delay_hold - -0XF800605C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_rd_odt_delay - -3:0 - -f - -3 - -3 - -UNUSED -
-reg_ddrc_wr_odt_delay - -7:4 - -f0 - -0 - -0 - -The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable for LPDDR and LPDDR2 modes. -
-reg_ddrc_rd_odt_hold - -11:8 - -f00 - -0 - -0 - -Unused -
-reg_ddrc_wr_odt_hold - -15:12 - -f000 - -5 - -5000 - -Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 -
-ODT_delay_hold@0XF800605C - -31:0 - -ffff - - - -5003 - -ODT delay and ODT hold register -
-

-

Register ( slcr )ctrl_reg1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg1 - -0XF8006060 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_pageclose - -0:0 - -1 - -0 - -0 - -If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. -
-reg_ddrc_lpr_num_entries - -6:1 - -7e - -1f - -3e - -Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. -
-reg_ddrc_auto_pre_en - -7:7 - -80 - -0 - -0 - -When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) -
-reg_ddrc_refresh_update_level - -8:8 - -100 - -0 - -0 - -Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. -
-reg_ddrc_dis_wc - -9:9 - -200 - -0 - -0 - -When 1, disable Write Combine -
-reg_ddrc_dis_collision_page_opt - -10:10 - -400 - -0 - -0 - -When this is set to '0', auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). -
-reg_ddrc_selfref_en - -12:12 - -1000 - -0 - -0 - -If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. -
-ctrl_reg1@0XF8006060 - -31:0 - -17ff - - - -3e - -Controller register 1 -
-

-

Register ( slcr )ctrl_reg2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg2 - -0XF8006064 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_go2critical_hysteresis - -12:5 - -1fe0 - -0 - -0 - -Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. -
-reg_arb_go2critical_en - -17:17 - -20000 - -1 - -20000 - -1 - Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on 'urgent' input coming from AXI master. 0 - Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 1'b0. -
-ctrl_reg2@0XF8006064 - -31:0 - -21fe0 - - - -20000 - -Controller register 2 -
-

-

Register ( slcr )ctrl_reg3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg3 - -0XF8006068 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_wrlvl_ww - -7:0 - -ff - -41 - -41 - -Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) Only present in designs that support DDR3 and LPDDR2 devices. -
-reg_ddrc_rdlvl_rr - -15:8 - -ff00 - -41 - -4100 - -Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Only present in designs that support DDR3 devices -
-reg_ddrc_dfi_t_wlmrd - -25:16 - -3ff0000 - -28 - -280000 - -First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. Only present in designs that support DDR3 devices. -
-ctrl_reg3@0XF8006068 - -31:0 - -3ffffff - - - -284141 - -Controller register 3 -
-

-

Register ( slcr )ctrl_reg4

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg4 - -0XF800606C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-dfi_t_ctrlupd_interval_min_x1024 - -7:0 - -ff - -10 - -10 - -This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks -
-dfi_t_ctrlupd_interval_max_x1024 - -15:8 - -ff00 - -16 - -1600 - -This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks -
-ctrl_reg4@0XF800606C - -31:0 - -ffff - - - -1610 - -Controller register 4 -
-

-

Register ( slcr )CHE_REFRESH_TIMER01

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_REFRESH_TIMER01 - -0XF80060A0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-refresh_timer0_start_value_x32 - -11:0 - -fff - -0 - -0 - -Refresh Timer for Rank 1. Unit: in multiples of 32 clocks. (Only present in multi-rank configurations). FOR PERFORMANCE ONLY. -
-refresh_timer1_start_value_x32 - -23:12 - -fff000 - -8 - -8000 - -Refresh Timer for Rank 0. (Only present in multi-rank configurations). Unit: in multiples of 32 clocks. FOR PERFORMANCE ONLY. -
-CHE_REFRESH_TIMER01@0XF80060A0 - -31:0 - -ffffff - - - -8000 - -CHE_REFRESH_TIMER01 -
-

-

Register ( slcr )CHE_T_ZQ

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_T_ZQ - -0XF80060A4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_dis_auto_zq - -0:0 - -1 - -0 - -0 - -1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. -
-reg_ddrc_ddr3 - -1:1 - -2 - -1 - -2 - -Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. -
-reg_ddrc_t_mod - -11:2 - -ffc - -200 - -800 - -Mode register set command update delay (minimum the larger of 12 clock cycles or 15ns) -
-reg_ddrc_t_zq_long_nop - -21:12 - -3ff000 - -200 - -200000 - -Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles This is only present for implementations supporting DDR3 and LPDDR2 devices. -
-reg_ddrc_t_zq_short_nop - -31:22 - -ffc00000 - -40 - -10000000 - -Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles This is only present for implementations supporting DDR3 and LPDDR2 devices. -
-CHE_T_ZQ@0XF80060A4 - -31:0 - -ffffffff - - - -10200802 - -ZQ parameters register -
-

-

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_T_ZQ_Short_Interval_Reg - -0XF80060A8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-t_zq_short_interval_x1024 - -19:0 - -fffff - -cb73 - -cb73 - -Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. Applicable for DDR3 and LPDDR2 devices. -
-dram_rstn_x1024 - -27:20 - -ff00000 - -69 - -6900000 - -Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. -
-CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 - -31:0 - -fffffff - - - -690cb73 - -Misc parameters register -
-

-

Register ( slcr )deep_pwrdwn_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-deep_pwrdwn_reg - -0XF80060AC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-deeppowerdown_en - -0:0 - -1 - -0 - -0 - -1 - Controller puts the DRAM into Deep Powerdown mode when the transaction store is empty. 0 - Brings Controller out of Deep Powerdown mode Present only in designs configured to support LPDDR or LPDDR2 FOR PERFORMANCE ONLY. -
-deeppowerdown_to_x1024 - -8:1 - -1fe - -ff - -1fe - -Minimum deep power down time applicable only for LPDDR2. LPDDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. For LPDDR2, Value from the spec is 500us. Units are in 1024 clock cycles. Present only in designs configured to support LPDDR or LPDDR2. FOR PERFORMANCE ONLY. -
-deep_pwrdwn_reg@0XF80060AC - -31:0 - -1ff - - - -1fe - -Deep powerdown register -
-

-

Register ( slcr )reg_2c

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-reg_2c - -0XF80060B0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-dfi_wrlvl_max_x1024 - -11:0 - -fff - -fff - -fff - -Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks -
-dfi_rdlvl_max_x1024 - -23:12 - -fff000 - -fff - -fff000 - -Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks -
-ddrc_reg_twrlvl_max_error - -24:24 - -1000000 - -0 - -0 - -When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. -
-ddrc_reg_trdlvl_max_error - -25:25 - -2000000 - -0 - -0 - -When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3 or LPDDR2 devices. -
-reg_ddrc_dfi_wr_level_en - -26:26 - -4000000 - -1 - -4000000 - -1 = Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs 0 = Write leveling disabled. -
-reg_ddrc_dfi_rd_dqs_gate_level - -27:27 - -8000000 - -1 - -8000000 - -1 = Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs 0= Read DQS gate leveling is disabled. -
-reg_ddrc_dfi_rd_data_eye_train - -28:28 - -10000000 - -1 - -10000000 - -1 = Read Data Eye training mode has been enabled as part of init sequence. Only present in designs that support DDR3 or LPDDR2 devices. -
-reg_2c@0XF80060B0 - -31:0 - -1fffffff - - - -1cffffff - -Training control register -
-

-

Register ( slcr )reg_2d

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-reg_2d - -0XF80060B4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_2t_delay - -8:0 - -1ff - -0 - -0 - -Selects the clock edge in which chip select (CSN) and CKE is asserted. Unsupported feature. -
-reg_ddrc_skip_ocd - -9:9 - -200 - -1 - -200 - -This register must be kept at 1'b1. 1'b0 is NOT supported. 1 - Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0 - Not supported. -
-reg_ddrc_dis_pre_bypass - -10:10 - -400 - -0 - -0 - -Only present in designs supporting precharge bypass. When 1, disable bypass path for high priority precharges FOR DEBUG ONLY. -
-reg_2d@0XF80060B4 - -31:0 - -7ff - - - -200 - -Misc Debug register -
-

-

Register ( slcr )dfi_timing

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-dfi_timing - -0XF80060B8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_dfi_t_rddata_en - -4:0 - -1f - -6 - -6 - -Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. Non-LPDDR -> RL-1 LPDDR -> RL Where RL is read latency of DRAM. -
-reg_ddrc_dfi_t_ctrlup_min - -14:5 - -7fe0 - -3 - -60 - -Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. -
-reg_ddrc_dfi_t_ctrlup_max - -24:15 - -1ff8000 - -40 - -200000 - -Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. -
-dfi_timing@0XF80060B8 - -31:0 - -1ffffff - - - -200066 - -DFI timing register -
-

-

RESET ECC ERROR

-

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_ECC_CONTROL_REG_OFFSET - -0XF80060C4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-Clear_Uncorrectable_DRAM_ECC_error - -0:0 - -1 - -1 - -1 - -Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. -
-Clear_Correctable_DRAM_ECC_error - -1:1 - -2 - -1 - -2 - -Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. -
-CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 - -31:0 - -3 - - - -3 - -ECC error clear register -
-

-

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_ECC_CONTROL_REG_OFFSET - -0XF80060C4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-Clear_Uncorrectable_DRAM_ECC_error - -0:0 - -1 - -0 - -0 - -Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. -
-Clear_Correctable_DRAM_ECC_error - -1:1 - -2 - -0 - -0 - -Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. -
-CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 - -31:0 - -3 - - - -0 - -ECC error clear register -
-

-

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_CORR_ECC_LOG_REG_OFFSET - -0XF80060C8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CORR_ECC_LOG_VALID - -0:0 - -1 - -0 - -0 - -Set to '1' when a correctable ECC error is captured. As long as this is '1' no further ECC errors will be captured. This is cleared when a '1' is written to register bit[1] of ECC CONTROL REGISTER (0x31) -
-ECC_CORRECTED_BIT_NUM - -7:1 - -fe - -0 - -0 - -Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. -
-CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 - -31:0 - -ff - - - -0 - -ECC error correction register -
-

-

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_UNCORR_ECC_LOG_REG_OFFSET - -0XF80060DC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNCORR_ECC_LOG_VALID - -0:0 - -1 - -0 - -0 - -Set to '1' when an uncorrectable ECC error is captured. As long as this is '1' no further ECC errors will be captured. This is cleared when a '1' is written to register bit[0] of ECC CONTROL REGISTER (0x31). -
-CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC - -31:0 - -1 - - - -0 - -ECC unrecoverable error status register -
-

-

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_ECC_STATS_REG_OFFSET - -0XF80060F0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-STAT_NUM_CORR_ERR - -15:8 - -ff00 - -0 - -0 - -Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a '1' is written to register bit[1] of ECC CONTROL REGISTER (0x58). -
-STAT_NUM_UNCORR_ERR - -7:0 - -ff - -0 - -0 - -Returns the number of un-correctable errors since the last read. Counter saturates at max value. This is cleared when a '1' is written to register bit[0] of ECC CONTROL REGISTER (0x58). -
-CHE_ECC_STATS_REG_OFFSET@0XF80060F0 - -31:0 - -ffff - - - -0 - -ECC error count register -
-

-

Register ( slcr )ECC_scrub

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ECC_scrub - -0XF80060F4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_ecc_mode - -2:0 - -7 - -0 - -0 - -DRAM ECC Mode. The only valid values that works for this project are 3'b000 (No ECC) and 3'b100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 3'b100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 - No ECC, 001 - Reserved 010 - Parity 011 - Reserved 100 - SEC/DED over 1-beat 101 - SEC/DED over multiple beats 110 - Device Correction 111 - Reserved -
-reg_ddrc_dis_scrub - -3:3 - -8 - -1 - -8 - -This feature is NOT supported. Only default value works. 1 - Disable ECC scrubs 0 - Enable ECC scrubs Valid only when reg_ddrc_ecc_mode = 3'b100. -
-ECC_scrub@0XF80060F4 - -31:0 - -f - - - -8 - -ECC mode/scrub register -
-

-

Register ( slcr )phy_rcvr_enable

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rcvr_enable - -0XF8006114 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_dif_on - -3:0 - -f - -0 - -0 - -Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. -
-reg_phy_dif_off - -7:4 - -f0 - -0 - -0 - -Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. -
-phy_rcvr_enable@0XF8006114 - -31:0 - -ff - - - -0 - -Phy receiver enable register -
-

-

Register ( slcr )PHY_Config

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PHY_Config - -0XF8006118 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_data_slice_in_use - -0:0 - -1 - -1 - -1 - -Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. -
-reg_phy_rdlvl_inc_mode - -1:1 - -2 - -0 - -0 - -RESERVED -
-reg_phy_gatelvl_inc_mode - -2:2 - -4 - -0 - -0 - -RESERVED -
-reg_phy_wrlvl_inc_mode - -3:3 - -8 - -0 - -0 - -RESERVED -
-reg_phy_board_lpbk_tx - -4:4 - -10 - -0 - -0 - -External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_board_lpbk_rx - -5:5 - -20 - -0 - -0 - -External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_bist_shift_dq - -14:6 - -7fc0 - -0 - -0 - -Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. -
-reg_phy_bist_err_clr - -23:15 - -ff8000 - -0 - -0 - -Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect -
-reg_phy_dq_offset - -30:24 - -7f000000 - -40 - -40000000 - -Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. -
-PHY_Config@0XF8006118 - -31:0 - -7fffffff - - - -40000001 - -PHY configuration register for data slice 0. -
-

-

Register ( slcr )PHY_Config

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PHY_Config - -0XF800611C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_data_slice_in_use - -0:0 - -1 - -1 - -1 - -Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. -
-reg_phy_rdlvl_inc_mode - -1:1 - -2 - -0 - -0 - -RESERVED -
-reg_phy_gatelvl_inc_mode - -2:2 - -4 - -0 - -0 - -RESERVED -
-reg_phy_wrlvl_inc_mode - -3:3 - -8 - -0 - -0 - -RESERVED -
-reg_phy_board_lpbk_tx - -4:4 - -10 - -0 - -0 - -External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_board_lpbk_rx - -5:5 - -20 - -0 - -0 - -External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_bist_shift_dq - -14:6 - -7fc0 - -0 - -0 - -Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. -
-reg_phy_bist_err_clr - -23:15 - -ff8000 - -0 - -0 - -Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect -
-reg_phy_dq_offset - -30:24 - -7f000000 - -40 - -40000000 - -Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. -
-PHY_Config@0XF800611C - -31:0 - -7fffffff - - - -40000001 - -PHY configuration register for data slice 0. -
-

-

Register ( slcr )PHY_Config

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PHY_Config - -0XF8006120 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_data_slice_in_use - -0:0 - -1 - -1 - -1 - -Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. -
-reg_phy_rdlvl_inc_mode - -1:1 - -2 - -0 - -0 - -RESERVED -
-reg_phy_gatelvl_inc_mode - -2:2 - -4 - -0 - -0 - -RESERVED -
-reg_phy_wrlvl_inc_mode - -3:3 - -8 - -0 - -0 - -RESERVED -
-reg_phy_board_lpbk_tx - -4:4 - -10 - -0 - -0 - -External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_board_lpbk_rx - -5:5 - -20 - -0 - -0 - -External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_bist_shift_dq - -14:6 - -7fc0 - -0 - -0 - -Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. -
-reg_phy_bist_err_clr - -23:15 - -ff8000 - -0 - -0 - -Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect -
-reg_phy_dq_offset - -30:24 - -7f000000 - -40 - -40000000 - -Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. -
-PHY_Config@0XF8006120 - -31:0 - -7fffffff - - - -40000001 - -PHY configuration register for data slice 0. -
-

-

Register ( slcr )PHY_Config

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PHY_Config - -0XF8006124 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_data_slice_in_use - -0:0 - -1 - -1 - -1 - -Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. -
-reg_phy_rdlvl_inc_mode - -1:1 - -2 - -0 - -0 - -RESERVED -
-reg_phy_gatelvl_inc_mode - -2:2 - -4 - -0 - -0 - -RESERVED -
-reg_phy_wrlvl_inc_mode - -3:3 - -8 - -0 - -0 - -RESERVED -
-reg_phy_board_lpbk_tx - -4:4 - -10 - -0 - -0 - -External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_board_lpbk_rx - -5:5 - -20 - -0 - -0 - -External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_bist_shift_dq - -14:6 - -7fc0 - -0 - -0 - -Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. -
-reg_phy_bist_err_clr - -23:15 - -ff8000 - -0 - -0 - -Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect -
-reg_phy_dq_offset - -30:24 - -7f000000 - -40 - -40000000 - -Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. -
-PHY_Config@0XF8006124 - -31:0 - -7fffffff - - - -40000001 - -PHY configuration register for data slice 0. -
-

-

Register ( slcr )phy_init_ratio

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_init_ratio - -0XF800612C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wrlvl_init_ratio - -9:0 - -3ff - -1d - -1d - -The user programmable init ratio used by Write Leveling FSM -
-reg_phy_gatelvl_init_ratio - -19:10 - -ffc00 - -f2 - -3c800 - -The user programmable init ratio used Gate Leveling FSM -
-phy_init_ratio@0XF800612C - -31:0 - -fffff - - - -3c81d - -PHY init ratio register for data slice 0. -
-

-

Register ( slcr )phy_init_ratio

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_init_ratio - -0XF8006130 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wrlvl_init_ratio - -9:0 - -3ff - -12 - -12 - -The user programmable init ratio used by Write Leveling FSM -
-reg_phy_gatelvl_init_ratio - -19:10 - -ffc00 - -d8 - -36000 - -The user programmable init ratio used Gate Leveling FSM -
-phy_init_ratio@0XF8006130 - -31:0 - -fffff - - - -36012 - -PHY init ratio register for data slice 0. -
-

-

Register ( slcr )phy_init_ratio

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_init_ratio - -0XF8006134 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wrlvl_init_ratio - -9:0 - -3ff - -c - -c - -The user programmable init ratio used by Write Leveling FSM -
-reg_phy_gatelvl_init_ratio - -19:10 - -ffc00 - -de - -37800 - -The user programmable init ratio used Gate Leveling FSM -
-phy_init_ratio@0XF8006134 - -31:0 - -fffff - - - -3780c - -PHY init ratio register for data slice 0. -
-

-

Register ( slcr )phy_init_ratio

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_init_ratio - -0XF8006138 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wrlvl_init_ratio - -9:0 - -3ff - -21 - -21 - -The user programmable init ratio used by Write Leveling FSM -
-reg_phy_gatelvl_init_ratio - -19:10 - -ffc00 - -ee - -3b800 - -The user programmable init ratio used Gate Leveling FSM -
-phy_init_ratio@0XF8006138 - -31:0 - -fffff - - - -3b821 - -PHY init ratio register for data slice 0. -
-

-

Register ( slcr )phy_rd_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rd_dqs_cfg - -0XF8006140 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_dqs_slave_ratio - -9:0 - -3ff - -35 - -35 - -Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications -
-reg_phy_rd_dqs_slave_force - -10:10 - -400 - -0 - -0 - -1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. -
-reg_phy_rd_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. -
-phy_rd_dqs_cfg@0XF8006140 - -31:0 - -fffff - - - -35 - -PHY read DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_rd_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rd_dqs_cfg - -0XF8006144 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_dqs_slave_ratio - -9:0 - -3ff - -35 - -35 - -Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications -
-reg_phy_rd_dqs_slave_force - -10:10 - -400 - -0 - -0 - -1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. -
-reg_phy_rd_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. -
-phy_rd_dqs_cfg@0XF8006144 - -31:0 - -fffff - - - -35 - -PHY read DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_rd_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rd_dqs_cfg - -0XF8006148 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_dqs_slave_ratio - -9:0 - -3ff - -35 - -35 - -Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications -
-reg_phy_rd_dqs_slave_force - -10:10 - -400 - -0 - -0 - -1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. -
-reg_phy_rd_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. -
-phy_rd_dqs_cfg@0XF8006148 - -31:0 - -fffff - - - -35 - -PHY read DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_rd_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rd_dqs_cfg - -0XF800614C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_dqs_slave_ratio - -9:0 - -3ff - -35 - -35 - -Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications -
-reg_phy_rd_dqs_slave_force - -10:10 - -400 - -0 - -0 - -1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. -
-reg_phy_rd_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. -
-phy_rd_dqs_cfg@0XF800614C - -31:0 - -fffff - - - -35 - -PHY read DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_wr_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_wr_dqs_cfg - -0XF8006154 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_dqs_slave_ratio - -9:0 - -3ff - -9d - -9d - -Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_dqs_slave_force - -10:10 - -400 - -0 - -0 - -1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. -
-reg_phy_wr_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. -
-phy_wr_dqs_cfg@0XF8006154 - -31:0 - -fffff - - - -9d - -PHY write DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_wr_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_wr_dqs_cfg - -0XF8006158 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_dqs_slave_ratio - -9:0 - -3ff - -92 - -92 - -Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_dqs_slave_force - -10:10 - -400 - -0 - -0 - -1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. -
-reg_phy_wr_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. -
-phy_wr_dqs_cfg@0XF8006158 - -31:0 - -fffff - - - -92 - -PHY write DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_wr_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_wr_dqs_cfg - -0XF800615C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_dqs_slave_ratio - -9:0 - -3ff - -8c - -8c - -Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_dqs_slave_force - -10:10 - -400 - -0 - -0 - -1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. -
-reg_phy_wr_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. -
-phy_wr_dqs_cfg@0XF800615C - -31:0 - -fffff - - - -8c - -PHY write DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_wr_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_wr_dqs_cfg - -0XF8006160 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_dqs_slave_ratio - -9:0 - -3ff - -a1 - -a1 - -Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_dqs_slave_force - -10:10 - -400 - -0 - -0 - -1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. -
-reg_phy_wr_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. -
-phy_wr_dqs_cfg@0XF8006160 - -31:0 - -fffff - - - -a1 - -PHY write DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_we_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_we_cfg - -0XF8006168 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_fifo_we_slave_ratio - -10:0 - -7ff - -147 - -147 - -Ratio value to be used when fifo_we_X_force_mode is set to 0. -
-reg_phy_fifo_we_in_force - -11:11 - -800 - -0 - -0 - -1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. -
-reg_phy_fifo_we_in_delay - -20:12 - -1ff000 - -0 - -0 - -Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. -
-phy_we_cfg@0XF8006168 - -31:0 - -1fffff - - - -147 - -PHY fifo write enable configuration register for data slice 0. -
-

-

Register ( slcr )phy_we_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_we_cfg - -0XF800616C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_fifo_we_slave_ratio - -10:0 - -7ff - -12d - -12d - -Ratio value to be used when fifo_we_X_force_mode is set to 0. -
-reg_phy_fifo_we_in_force - -11:11 - -800 - -0 - -0 - -1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. -
-reg_phy_fifo_we_in_delay - -20:12 - -1ff000 - -0 - -0 - -Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. -
-phy_we_cfg@0XF800616C - -31:0 - -1fffff - - - -12d - -PHY fifo write enable configuration register for data slice 0. -
-

-

Register ( slcr )phy_we_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_we_cfg - -0XF8006170 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_fifo_we_slave_ratio - -10:0 - -7ff - -133 - -133 - -Ratio value to be used when fifo_we_X_force_mode is set to 0. -
-reg_phy_fifo_we_in_force - -11:11 - -800 - -0 - -0 - -1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. -
-reg_phy_fifo_we_in_delay - -20:12 - -1ff000 - -0 - -0 - -Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. -
-phy_we_cfg@0XF8006170 - -31:0 - -1fffff - - - -133 - -PHY fifo write enable configuration register for data slice 0. -
-

-

Register ( slcr )phy_we_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_we_cfg - -0XF8006174 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_fifo_we_slave_ratio - -10:0 - -7ff - -143 - -143 - -Ratio value to be used when fifo_we_X_force_mode is set to 0. -
-reg_phy_fifo_we_in_force - -11:11 - -800 - -0 - -0 - -1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. -
-reg_phy_fifo_we_in_delay - -20:12 - -1ff000 - -0 - -0 - -Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. -
-phy_we_cfg@0XF8006174 - -31:0 - -1fffff - - - -143 - -PHY fifo write enable configuration register for data slice 0. -
-

-

Register ( slcr )wr_data_slv

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-wr_data_slv - -0XF800617C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_data_slave_ratio - -9:0 - -3ff - -dd - -dd - -Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_data_slave_force - -10:10 - -400 - -0 - -0 - -1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. -
-reg_phy_wr_data_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. -
-wr_data_slv@0XF800617C - -31:0 - -fffff - - - -dd - -PHY write data slave ratio configuration register for data slice 0. -
-

-

Register ( slcr )wr_data_slv

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-wr_data_slv - -0XF8006180 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_data_slave_ratio - -9:0 - -3ff - -d2 - -d2 - -Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_data_slave_force - -10:10 - -400 - -0 - -0 - -1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. -
-reg_phy_wr_data_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. -
-wr_data_slv@0XF8006180 - -31:0 - -fffff - - - -d2 - -PHY write data slave ratio configuration register for data slice 0. -
-

-

Register ( slcr )wr_data_slv

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-wr_data_slv - -0XF8006184 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_data_slave_ratio - -9:0 - -3ff - -cc - -cc - -Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_data_slave_force - -10:10 - -400 - -0 - -0 - -1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. -
-reg_phy_wr_data_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. -
-wr_data_slv@0XF8006184 - -31:0 - -fffff - - - -cc - -PHY write data slave ratio configuration register for data slice 0. -
-

-

Register ( slcr )wr_data_slv

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-wr_data_slv - -0XF8006188 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_data_slave_ratio - -9:0 - -3ff - -e1 - -e1 - -Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_data_slave_force - -10:10 - -400 - -0 - -0 - -1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. -
-reg_phy_wr_data_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. -
-wr_data_slv@0XF8006188 - -31:0 - -fffff - - - -e1 - -PHY write data slave ratio configuration register for data slice 0. -
-

-

Register ( slcr )reg_64

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-reg_64 - -0XF8006190 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_loopback - -0:0 - -1 - -0 - -0 - -Loopback testing. 1: enable, 0: disable -
-reg_phy_bl2 - -1:1 - -2 - -0 - -0 - -Reserved for future Use. -
-reg_phy_at_spd_atpg - -2:2 - -4 - -0 - -0 - -1 = run scan test at full clock speed but with less coverage 0 = run scan test at slow clock speed but with high coverage During normal function mode, this port must be set 0. -
-reg_phy_bist_enable - -3:3 - -8 - -0 - -0 - -Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. -
-reg_phy_bist_force_err - -4:4 - -10 - -0 - -0 - -This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. -
-reg_phy_bist_mode - -6:5 - -60 - -0 - -0 - -The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 2'b00: constant pattern (0 repeated on each DQ bit) 2'b01: low freq pattern (00001111 repeated on each DQ bit) 2'b10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested -
-reg_phy_invert_clkout - -7:7 - -80 - -1 - -80 - -Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on boad topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. -
-reg_phy_all_dq_mpr_rd_resp - -8:8 - -100 - -0 - -0 - -1=assume DRAM provides read response on all DQ bits. (In this mode, dq_in[7:0] are OR'd together and dq_in[15:8] are AND'd together.) 0=(default) best for DRAM read responses on only 1 DQ bit; works with reduced accuracy if DRAM provides read response on all bits. (In this mode dq_in[7:0] are OR'd together and dq_in[15:8] are OR'd together.) -
-reg_phy_sel_logic - -9:9 - -200 - -0 - -0 - -Selects one of the two read leveling algorithms.'b0 = Select algorithm # 1'b1 = Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms -
-reg_phy_ctrl_slave_ratio - -19:10 - -ffc00 - -100 - -40000 - -Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_ctrl_slave_force - -20:20 - -100000 - -0 - -0 - -1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. -
-reg_phy_ctrl_slave_delay - -27:21 - -fe00000 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. -
-reg_phy_use_rank0_delays - -28:28 - -10000000 - -1 - -10000000 - -Delay selection 1- Rank 0 delays are used for all ranks 0- Each Rank uses its own delay -
-reg_phy_lpddr - -29:29 - -20000000 - -0 - -0 - -1= mobile/LPDDR DRAM device in use. 0=non-LPDDR DRAM device in use. -
-reg_phy_cmd_latency - -30:30 - -40000000 - -0 - -0 - -If set to 1, command comes to phy_ctrl through a flop. -
-reg_phy_int_lpbk - -31:31 - -80000000 - -0 - -0 - -1=enables the PHY internal loopback for DQ,DQS,DM before Ios. By default must be 0. -
-reg_64@0XF8006190 - -31:0 - -ffffffff - - - -10040080 - -Training control register (2) -
-

-

Register ( slcr )reg_65

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-reg_65 - -0XF8006194 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_rl_delay - -4:0 - -1f - -2 - -2 - -This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. -
-reg_phy_rd_rl_delay - -9:5 - -3e0 - -4 - -80 - -This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. -
-reg_phy_dll_lock_diff - -13:10 - -3c00 - -f - -3c00 - -The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted -
-reg_phy_use_wr_level - -14:14 - -4000 - -1 - -4000 - -Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. -
-reg_phy_use_rd_dqs_gate_level - -15:15 - -8000 - -1 - -8000 - -Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. -
-reg_phy_use_rd_data_eye_level - -16:16 - -10000 - -1 - -10000 - -Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure -
-reg_phy_dis_calib_rst - -17:17 - -20000 - -0 - -0 - -Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs -
-reg_phy_ctrl_slave_delay - -19:18 - -c0000 - -0 - -0 - -If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value -
-reg_65@0XF8006194 - -31:0 - -fffff - - - -1fc82 - -Training control register (3) -
-

-

Register ( slcr )page_mask

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-page_mask - -0XF8006204 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_page_addr_mask - -31:0 - -ffffffff - -0 - -0 - -This register must be set based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. -
-page_mask@0XF8006204 - -31:0 - -ffffffff - - - -0 - -Page mask register -
-

-

Register ( slcr )axi_priority_wr_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_wr_port - -0XF8006208 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_wr_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_wr_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Write Port. -
-reg_arb_disable_urgent_wr_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Write Port. -
-reg_arb_dis_page_match_wr_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_dis_rmw_portn - -19:19 - -80000 - -1 - -80000 - -FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. -
-axi_priority_wr_port@0XF8006208 - -31:0 - -f03ff - - - -803ff - -AXI Priority control for write port 0. -
-

-

Register ( slcr )axi_priority_wr_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_wr_port - -0XF800620C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_wr_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_wr_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Write Port. -
-reg_arb_disable_urgent_wr_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Write Port. -
-reg_arb_dis_page_match_wr_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_dis_rmw_portn - -19:19 - -80000 - -1 - -80000 - -FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. -
-axi_priority_wr_port@0XF800620C - -31:0 - -f03ff - - - -803ff - -AXI Priority control for write port 0. -
-

-

Register ( slcr )axi_priority_wr_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_wr_port - -0XF8006210 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_wr_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_wr_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Write Port. -
-reg_arb_disable_urgent_wr_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Write Port. -
-reg_arb_dis_page_match_wr_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_dis_rmw_portn - -19:19 - -80000 - -1 - -80000 - -FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. -
-axi_priority_wr_port@0XF8006210 - -31:0 - -f03ff - - - -803ff - -AXI Priority control for write port 0. -
-

-

Register ( slcr )axi_priority_wr_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_wr_port - -0XF8006214 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_wr_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_wr_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Write Port. -
-reg_arb_disable_urgent_wr_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Write Port. -
-reg_arb_dis_page_match_wr_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_dis_rmw_portn - -19:19 - -80000 - -1 - -80000 - -FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. -
-axi_priority_wr_port@0XF8006214 - -31:0 - -f03ff - - - -803ff - -AXI Priority control for write port 0. -
-

-

Register ( slcr )axi_priority_rd_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_rd_port - -0XF8006218 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_rd_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_rd_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Read Port. -
-reg_arb_disable_urgent_rd_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Read Port. -
-reg_arb_dis_page_match_rd_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_set_hpr_rd_portn - -19:19 - -80000 - -0 - -0 - -Enable reads to be generated as HPR for this Read Port. -
-axi_priority_rd_port@0XF8006218 - -31:0 - -f03ff - - - -3ff - -AXI Priority control for read port 0. -
-

-

Register ( slcr )axi_priority_rd_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_rd_port - -0XF800621C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_rd_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_rd_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Read Port. -
-reg_arb_disable_urgent_rd_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Read Port. -
-reg_arb_dis_page_match_rd_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_set_hpr_rd_portn - -19:19 - -80000 - -0 - -0 - -Enable reads to be generated as HPR for this Read Port. -
-axi_priority_rd_port@0XF800621C - -31:0 - -f03ff - - - -3ff - -AXI Priority control for read port 0. -
-

-

Register ( slcr )axi_priority_rd_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_rd_port - -0XF8006220 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_rd_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_rd_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Read Port. -
-reg_arb_disable_urgent_rd_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Read Port. -
-reg_arb_dis_page_match_rd_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_set_hpr_rd_portn - -19:19 - -80000 - -0 - -0 - -Enable reads to be generated as HPR for this Read Port. -
-axi_priority_rd_port@0XF8006220 - -31:0 - -f03ff - - - -3ff - -AXI Priority control for read port 0. -
-

-

Register ( slcr )axi_priority_rd_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_rd_port - -0XF8006224 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_rd_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_rd_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Read Port. -
-reg_arb_disable_urgent_rd_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Read Port. -
-reg_arb_dis_page_match_rd_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_set_hpr_rd_portn - -19:19 - -80000 - -0 - -0 - -Enable reads to be generated as HPR for this Read Port. -
-axi_priority_rd_port@0XF8006224 - -31:0 - -f03ff - - - -3ff - -AXI Priority control for read port 0. -
-

-

Register ( slcr )lpddr_ctrl0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-lpddr_ctrl0 - -0XF80062A8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_lpddr2 - -0:0 - -1 - -0 - -0 - -1=LPDDR2 DRAM device in Use. 0=non-LPDDR2 device in use Present only in designs configured to support LPDDR2. -
-reg_ddrc_per_bank_refresh - -1:1 - -2 - -0 - -0 - -1:Per bank refresh 0:All bank refresh Per bank refresh allows traffic to flow to other banks. Per bank refresh is not supported on all LPDDR2 devices. Present only in designs configured to support LPDDR2. -
-reg_ddrc_derate_enable - -2:2 - -4 - -0 - -0 - -0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. Present only in designs configured to support LPDDR2. -
-reg_ddrc_mr4_margin - -11:4 - -ff0 - -0 - -0 - -UNUSED -
-lpddr_ctrl0@0XF80062A8 - -31:0 - -ff7 - - - -0 - -LPDDR2 Control 0 Register -
-

-

Register ( slcr )lpddr_ctrl1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-lpddr_ctrl1 - -0XF80062AC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_mr4_read_interval - -31:0 - -ffffffff - -0 - -0 - -Interval between two MR4 reads, USED to derate the timing parameters. Present only in designs configured to support LPDDR2. -
-lpddr_ctrl1@0XF80062AC - -31:0 - -ffffffff - - - -0 - -LPDDR2 Control 1 Register -
-

-

Register ( slcr )lpddr_ctrl2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-lpddr_ctrl2 - -0XF80062B0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_min_stable_clock_x1 - -3:0 - -f - -5 - -5 - -Time to wait after the first CKE high, tINIT2. Present only in designs configured to support LPDDR2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. -
-reg_ddrc_idle_after_reset_x32 - -11:4 - -ff0 - -12 - -120 - -Idle time after the reset command, tINIT4. Present only in designs configured to support LPDDR2. Units: 32 clock cycles. -
-reg_ddrc_t_mrw - -21:12 - -3ff000 - -5 - -5000 - -Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. -
-lpddr_ctrl2@0XF80062B0 - -31:0 - -3fffff - - - -5125 - -LPDDR2 Control 2 Register -
-

-

Register ( slcr )lpddr_ctrl3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-lpddr_ctrl3 - -0XF80062B4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_max_auto_init_x1024 - -7:0 - -ff - -a8 - -a8 - -Maximum duration of the auto initialization, tINIT5. Present only in designs configured to support LPDDR2. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. -
-reg_ddrc_dev_zqinit_x32 - -17:8 - -3ff00 - -12 - -1200 - -ZQ initial calibration, tZQINIT. Present only in designs configured to support LPDDR2. Units: 32 clock cycles. LPDDR2 typically requires 1 us. -
-lpddr_ctrl3@0XF80062B4 - -31:0 - -3ffff - - - -12a8 - -LPDDR2 Control 3 Register -
-

-

POLL ON DCI STATUS

-

Register ( slcr )DDRIOB_DCI_STATUS

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DCI_STATUS - -0XF8000B74 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DONE - -13:13 - -2000 - -1 - -2000 - -DCI done signal -
-DDRIOB_DCI_STATUS@0XF8000B74 - -31:0 - -2000 - - - -2000 - -tobe -
-

-

UNLOCK DDR

-

Register ( slcr )ddrc_ctrl

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ddrc_ctrl - -0XF8006000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_soft_rstb - -0:0 - -1 - -1 - -1 - -Active low soft reset. 0 = Resets the controller 1 = Takes the controller out of reset Note: Controller must be taken out of reset only after all other registers have been programmed. -
-reg_ddrc_powerdown_en - -1:1 - -2 - -0 - -0 - -Controller power down control. 0 = DDRC powerdown disabled 1 = the controller goes into power down after a programmable number of cycles 'Maximum idle clocks before power down' (reg_ddrc_powerdown_to_x32). Note: This register bit may be reprogrammed during the course of normal operation. -
-reg_ddrc_data_bus_width - -3:2 - -c - -0 - -0 - -DDR bus width control 00 = 32 bit DDR bus 01 = 16 bit DDR bus 1x = reserved -
-reg_ddrc_burst8_refresh - -6:4 - -70 - -0 - -0 - -Refresh timeout register. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0 = single refresh 1 = burst-of-2 . 7 = burst-of-8 refresh -
-reg_ddrc_rdwr_idle_gap - -13:7 - -3f80 - -1 - -80 - -When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. -
-reg_ddrc_dis_rd_bypass - -14:14 - -4000 - -0 - -0 - -Only present in designs supporting read bypass. For Debug only. 0 = Do not disable bypass path for high priority read page hits. 1 = disable bypass path for high priority read page hits. -
-reg_ddrc_dis_act_bypass - -15:15 - -8000 - -0 - -0 - -Only present in designs supporting activate bypass. For Debug only. 0 = Do not disable bypass path for high priority read activates. 1 = disable bypass path for high priority read activates. -
-reg_ddrc_dis_auto_refresh - -16:16 - -10000 - -0 - -0 - -Disable auto-refresh. 0 = do not disable auto-refresh generated by the controller. This input is changeable on the fly. 1 = disable auto-refresh generated by the controller. This input is changeable on the fly. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. -
-ddrc_ctrl@0XF8006000 - -31:0 - -1ffff - - - -81 - -DDRC Control Register -
-

-

CHECK DDR STATUS

-

Register ( slcr )mode_sts_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-mode_sts_reg - -0XF8006054 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-ddrc_reg_operating_mode - -2:0 - -7 - -1 - -1 - -Gives the status of the controller. 0 = DDRC Init 1 = Normal operation 2 = Power-down mode 3 = Self-refresh mode 4 and above = deep power down mode (LPDDR2 only) -
-mode_sts_reg@0XF8006054 - -31:0 - -7 - - - -1 - -tobe -
-

- -

-

ps7_mio_init_data_1_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -GPIOB_CTRL - - -0XF8000B00 - -32 - -RW - -0x000000 - -GPIOB control -
- -DDRIOB_ADDR0 - - -0XF8000B40 - -32 - -RW - -0x000000 - -DDRIOB Address 0 Configuartion Register -
- -DDRIOB_ADDR1 - - -0XF8000B44 - -32 - -RW - -0x000000 - -DDRIOB Address 1 Configuration Register -
- -DDRIOB_DATA0 - - -0XF8000B48 - -32 - -RW - -0x000000 - -DDRIOB Data 0 Configuration Register -
- -DDRIOB_DATA1 - - -0XF8000B4C - -32 - -RW - -0x000000 - -DDRIOB Data 1 Configuration Register -
- -DDRIOB_DIFF0 - - -0XF8000B50 - -32 - -RW - -0x000000 - -DDRIOB Differential DQS 0 Configuration Register -
- -DDRIOB_DIFF1 - - -0XF8000B54 - -32 - -RW - -0x000000 - -DDRIOB Differential DQS 1 Configuration Register -
- -DDRIOB_CLOCK - - -0XF8000B58 - -32 - -RW - -0x000000 - -DDRIOB Differential Clock Configuration Register -
- -DDRIOB_DRIVE_SLEW_ADDR - - -0XF8000B5C - -32 - -RW - -0x000000 - -DDRIOB Drive Slew Address Register -
- -DDRIOB_DRIVE_SLEW_DATA - - -0XF8000B60 - -32 - -RW - -0x000000 - -DDRIOB Drive Slew Data Register -
- -DDRIOB_DRIVE_SLEW_DIFF - - -0XF8000B64 - -32 - -RW - -0x000000 - -DDRIOB Drive Slew Differential Strobe Register -
- -DDRIOB_DRIVE_SLEW_CLOCK - - -0XF8000B68 - -32 - -RW - -0x000000 - -DDRIOB Drive Slew Clcok Register -
- -DDRIOB_DDR_CTRL - - -0XF8000B6C - -32 - -RW - -0x000000 - -DDRIOB DDR Control Register -
- -DDRIOB_DCI_CTRL - - -0XF8000B70 - -32 - -RW - -0x000000 - -DDRIOB DCI configuration -
- -DDRIOB_DCI_CTRL - - -0XF8000B70 - -32 - -RW - -0x000000 - -DDRIOB DCI configuration -
- -DDRIOB_DCI_CTRL - - -0XF8000B70 - -32 - -RW - -0x000000 - -DDRIOB DCI configuration -
- -MIO_PIN_00 - - -0XF8000700 - -32 - -RW - -0x000000 - -MIO Control for Pin 0 -
- -MIO_PIN_01 - - -0XF8000704 - -32 - -RW - -0x000000 - -MIO Control for Pin 1 -
- -MIO_PIN_02 - - -0XF8000708 - -32 - -RW - -0x000000 - -MIO Control for Pin 2 -
- -MIO_PIN_03 - - -0XF800070C - -32 - -RW - -0x000000 - -MIO Control for Pin 3 -
- -MIO_PIN_04 - - -0XF8000710 - -32 - -RW - -0x000000 - -MIO Control for Pin 4 -
- -MIO_PIN_05 - - -0XF8000714 - -32 - -RW - -0x000000 - -MIO Control for Pin 5 -
- -MIO_PIN_06 - - -0XF8000718 - -32 - -RW - -0x000000 - -MIO Control for Pin 6 -
- -MIO_PIN_07 - - -0XF800071C - -32 - -RW - -0x000000 - -MIO Control for Pin 7 -
- -MIO_PIN_08 - - -0XF8000720 - -32 - -RW - -0x000000 - -MIO Control for Pin 8 -
- -MIO_PIN_09 - - -0XF8000724 - -32 - -RW - -0x000000 - -MIO Control for Pin 9 -
- -MIO_PIN_10 - - -0XF8000728 - -32 - -RW - -0x000000 - -MIO Control for Pin 10 -
- -MIO_PIN_11 - - -0XF800072C - -32 - -RW - -0x000000 - -MIO Control for Pin 11 -
- -MIO_PIN_12 - - -0XF8000730 - -32 - -RW - -0x000000 - -MIO Control for Pin 12 -
- -MIO_PIN_13 - - -0XF8000734 - -32 - -RW - -0x000000 - -MIO Control for Pin 13 -
- -MIO_PIN_14 - - -0XF8000738 - -32 - -RW - -0x000000 - -MIO Control for Pin 14 -
- -MIO_PIN_15 - - -0XF800073C - -32 - -RW - -0x000000 - -MIO Control for Pin 15 -
- -MIO_PIN_16 - - -0XF8000740 - -32 - -RW - -0x000000 - -MIO Control for Pin 16 -
- -MIO_PIN_17 - - -0XF8000744 - -32 - -RW - -0x000000 - -MIO Control for Pin 17 -
- -MIO_PIN_18 - - -0XF8000748 - -32 - -RW - -0x000000 - -MIO Control for Pin 18 -
- -MIO_PIN_19 - - -0XF800074C - -32 - -RW - -0x000000 - -MIO Control for Pin 19 -
- -MIO_PIN_20 - - -0XF8000750 - -32 - -RW - -0x000000 - -MIO Control for Pin 20 -
- -MIO_PIN_21 - - -0XF8000754 - -32 - -RW - -0x000000 - -MIO Control for Pin 21 -
- -MIO_PIN_22 - - -0XF8000758 - -32 - -RW - -0x000000 - -MIO Control for Pin 22 -
- -MIO_PIN_23 - - -0XF800075C - -32 - -RW - -0x000000 - -MIO Control for Pin 23 -
- -MIO_PIN_24 - - -0XF8000760 - -32 - -RW - -0x000000 - -MIO Control for Pin 24 -
- -MIO_PIN_25 - - -0XF8000764 - -32 - -RW - -0x000000 - -MIO Control for Pin 25 -
- -MIO_PIN_26 - - -0XF8000768 - -32 - -RW - -0x000000 - -MIO Control for Pin 26 -
- -MIO_PIN_27 - - -0XF800076C - -32 - -RW - -0x000000 - -MIO Control for Pin 27 -
- -MIO_PIN_28 - - -0XF8000770 - -32 - -RW - -0x000000 - -MIO Control for Pin 28 -
- -MIO_PIN_29 - - -0XF8000774 - -32 - -RW - -0x000000 - -MIO Control for Pin 29 -
- -MIO_PIN_30 - - -0XF8000778 - -32 - -RW - -0x000000 - -MIO Control for Pin 30 -
- -MIO_PIN_31 - - -0XF800077C - -32 - -RW - -0x000000 - -MIO Control for Pin 31 -
- -MIO_PIN_32 - - -0XF8000780 - -32 - -RW - -0x000000 - -MIO Control for Pin 32 -
- -MIO_PIN_33 - - -0XF8000784 - -32 - -RW - -0x000000 - -MIO Control for Pin 33 -
- -MIO_PIN_34 - - -0XF8000788 - -32 - -RW - -0x000000 - -MIO Control for Pin 34 -
- -MIO_PIN_35 - - -0XF800078C - -32 - -RW - -0x000000 - -MIO Control for Pin 35 -
- -MIO_PIN_36 - - -0XF8000790 - -32 - -RW - -0x000000 - -MIO Control for Pin 36 -
- -MIO_PIN_37 - - -0XF8000794 - -32 - -RW - -0x000000 - -MIO Control for Pin 37 -
- -MIO_PIN_38 - - -0XF8000798 - -32 - -RW - -0x000000 - -MIO Control for Pin 38 -
- -MIO_PIN_39 - - -0XF800079C - -32 - -RW - -0x000000 - -MIO Control for Pin 39 -
- -MIO_PIN_40 - - -0XF80007A0 - -32 - -RW - -0x000000 - -MIO Control for Pin 40 -
- -MIO_PIN_41 - - -0XF80007A4 - -32 - -RW - -0x000000 - -MIO Control for Pin 41 -
- -MIO_PIN_42 - - -0XF80007A8 - -32 - -RW - -0x000000 - -MIO Control for Pin 42 -
- -MIO_PIN_43 - - -0XF80007AC - -32 - -RW - -0x000000 - -MIO Control for Pin 43 -
- -MIO_PIN_44 - - -0XF80007B0 - -32 - -RW - -0x000000 - -MIO Control for Pin 44 -
- -MIO_PIN_45 - - -0XF80007B4 - -32 - -RW - -0x000000 - -MIO Control for Pin 45 -
- -MIO_PIN_46 - - -0XF80007B8 - -32 - -RW - -0x000000 - -MIO Control for Pin 46 -
- -MIO_PIN_47 - - -0XF80007BC - -32 - -RW - -0x000000 - -MIO Control for Pin 47 -
- -MIO_PIN_48 - - -0XF80007C0 - -32 - -RW - -0x000000 - -MIO Control for Pin 48 -
- -MIO_PIN_49 - - -0XF80007C4 - -32 - -RW - -0x000000 - -MIO Control for Pin 49 -
- -MIO_PIN_50 - - -0XF80007C8 - -32 - -RW - -0x000000 - -MIO Control for Pin 50 -
- -MIO_PIN_51 - - -0XF80007CC - -32 - -RW - -0x000000 - -MIO Control for Pin 51 -
- -MIO_PIN_52 - - -0XF80007D0 - -32 - -RW - -0x000000 - -MIO Control for Pin 52 -
- -MIO_PIN_53 - - -0XF80007D4 - -32 - -RW - -0x000000 - -MIO Control for Pin 53 -
- -SD0_WP_CD_SEL - - -0XF8000830 - -32 - -RW - -0x000000 - -SDIO 0 WP CD select register -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
-

-

ps7_mio_init_data_1_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

OCM REMAPPING

-

Register ( slcr )GPIOB_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-GPIOB_CTRL - -0XF8000B00 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-VREF_EN - -0:0 - -1 - -1 - -1 - -Enables VREF internal generator -
-VREF_PULLUP_EN - -1:1 - -2 - -0 - -0 - -Enables internal pullup. 0 - no pullup. 1 - pullup. -
-CLK_PULLUP_EN - -8:8 - -100 - -0 - -0 - -Enables internal pullup. 0 - no pullup. 1 - pullup. -
-SRSTN_PULLUP_EN - -9:9 - -200 - -0 - -0 - -Enables internal pullup. 0 - no pullup. 1 - pullup. -
-GPIOB_CTRL@0XF8000B00 - -31:0 - -303 - - - -1 - -GPIOB control -
-

-

DDRIOB SETTINGS

-

Register ( slcr )DDRIOB_ADDR0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_ADDR0 - -0XF8000B40 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-INP_POWER - -0:0 - -1 - -0 - -0 - -Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. -
-INP_TYPE - -2:1 - -6 - -0 - -0 - -Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. -
-DCI_UPDATE - -3:3 - -8 - -0 - -0 - -DCI Update Enabled 0 - disabled 1 - enabled -
-TERM_EN - -4:4 - -10 - -0 - -0 - -Tri State Termination Enabled 0 - disabled 1 - enabled -
-DCR_TYPE - -6:5 - -60 - -0 - -0 - -DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0 - no pullup 1 - pullup enabled -
-DDRIOB_ADDR0@0XF8000B40 - -31:0 - -fff - - - -600 - -DDRIOB Address 0 Configuartion Register -
-

-

Register ( slcr )DDRIOB_ADDR1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_ADDR1 - -0XF8000B44 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-INP_POWER - -0:0 - -1 - -0 - -0 - -Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. -
-INP_TYPE - -2:1 - -6 - -0 - -0 - -Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. -
-DCI_UPDATE - -3:3 - -8 - -0 - -0 - -DCI Update Enabled 0 - disabled 1 - enabled -
-TERM_EN - -4:4 - -10 - -0 - -0 - -Tri State Termination Enabled 0 - disabled 1 - enabled -
-DCR_TYPE - -6:5 - -60 - -0 - -0 - -DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0 - no pullup 1 - pullup enabled -
-DDRIOB_ADDR1@0XF8000B44 - -31:0 - -fff - - - -600 - -DDRIOB Address 1 Configuration Register -
-

-

Register ( slcr )DDRIOB_DATA0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DATA0 - -0XF8000B48 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-INP_POWER - -0:0 - -1 - -0 - -0 - -Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. -
-INP_TYPE - -2:1 - -6 - -1 - -2 - -Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. -
-DCI_UPDATE - -3:3 - -8 - -0 - -0 - -DCI Update Enabled 0 - disabled 1 - enabled -
-TERM_EN - -4:4 - -10 - -1 - -10 - -Tri State Termination Enabled 0 - disabled 1 - enabled -
-DCR_TYPE - -6:5 - -60 - -3 - -60 - -DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0 - no pullup 1 - pullup enabled -
-DDRIOB_DATA0@0XF8000B48 - -31:0 - -fff - - - -672 - -DDRIOB Data 0 Configuration Register -
-

-

Register ( slcr )DDRIOB_DATA1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DATA1 - -0XF8000B4C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-INP_POWER - -0:0 - -1 - -0 - -0 - -Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. -
-INP_TYPE - -2:1 - -6 - -1 - -2 - -Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. -
-DCI_UPDATE - -3:3 - -8 - -0 - -0 - -DCI Update Enabled 0 - disabled 1 - enabled -
-TERM_EN - -4:4 - -10 - -1 - -10 - -Tri State Termination Enabled 0 - disabled 1 - enabled -
-DCR_TYPE - -6:5 - -60 - -3 - -60 - -DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0 - no pullup 1 - pullup enabled -
-DDRIOB_DATA1@0XF8000B4C - -31:0 - -fff - - - -672 - -DDRIOB Data 1 Configuration Register -
-

-

Register ( slcr )DDRIOB_DIFF0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DIFF0 - -0XF8000B50 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-INP_POWER - -0:0 - -1 - -0 - -0 - -Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. -
-INP_TYPE - -2:1 - -6 - -2 - -4 - -Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. -
-DCI_UPDATE - -3:3 - -8 - -0 - -0 - -DCI Update Enabled 0 - disabled 1 - enabled -
-TERM_EN - -4:4 - -10 - -1 - -10 - -Tri State Termination Enabled 0 - disabled 1 - enabled -
-DCR_TYPE - -6:5 - -60 - -3 - -60 - -DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0 - no pullup 1 - pullup enabled -
-DDRIOB_DIFF0@0XF8000B50 - -31:0 - -fff - - - -674 - -DDRIOB Differential DQS 0 Configuration Register -
-

-

Register ( slcr )DDRIOB_DIFF1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DIFF1 - -0XF8000B54 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-INP_POWER - -0:0 - -1 - -0 - -0 - -Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. -
-INP_TYPE - -2:1 - -6 - -2 - -4 - -Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. -
-DCI_UPDATE - -3:3 - -8 - -0 - -0 - -DCI Update Enabled 0 - disabled 1 - enabled -
-TERM_EN - -4:4 - -10 - -1 - -10 - -Tri State Termination Enabled 0 - disabled 1 - enabled -
-DCR_TYPE - -6:5 - -60 - -3 - -60 - -DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0 - no pullup 1 - pullup enabled -
-DDRIOB_DIFF1@0XF8000B54 - -31:0 - -fff - - - -674 - -DDRIOB Differential DQS 1 Configuration Register -
-

-

Register ( slcr )DDRIOB_CLOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_CLOCK - -0XF8000B58 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-INP_POWER - -0:0 - -1 - -0 - -0 - -Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. -
-INP_TYPE - -2:1 - -6 - -0 - -0 - -Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. -
-DCI_UPDATE - -3:3 - -8 - -0 - -0 - -DCI Update Enabled 0 - disabled 1 - enabled -
-TERM_EN - -4:4 - -10 - -0 - -0 - -Tri State Termination Enabled 0 - disabled 1 - enabled -
-DCR_TYPE - -6:5 - -60 - -0 - -0 - -DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0 - no pullup 1 - pullup enabled -
-DDRIOB_CLOCK@0XF8000B58 - -31:0 - -fff - - - -600 - -DDRIOB Differential Clock Configuration Register -
-

-

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DRIVE_SLEW_ADDR - -0XF8000B5C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DRIVE_P - -6:0 - -7f - -1c - -1c - -Programs the DDRIO drive strength for the P devices -
-DRIVE_N - -13:7 - -3f80 - -c - -600 - -Programs the DDRIO drive strength for the N devices -
-SLEW_P - -18:14 - -7c000 - -3 - -c000 - -Programs the DDRIO slew rate for the P devices -
-SLEW_N - -23:19 - -f80000 - -3 - -180000 - -Programs the DDRIO slew rate for the N devices -
-GTL - -26:24 - -7000000 - -0 - -0 - -Test Control 000 - Normal Operation 001 : 111 - Test Mode -
-RTERM - -31:27 - -f8000000 - -0 - -0 - -Program the rterm -
-DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C - -31:0 - -ffffffff - - - -18c61c - -DDRIOB Drive Slew Address Register -
-

-

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DRIVE_SLEW_DATA - -0XF8000B60 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DRIVE_P - -6:0 - -7f - -1c - -1c - -Programs the DDRIO drive strength for the P devices -
-DRIVE_N - -13:7 - -3f80 - -c - -600 - -Programs the DDRIO drive strength for the N devices -
-SLEW_P - -18:14 - -7c000 - -6 - -18000 - -Programs the DDRIO slew rate for the P devices -
-SLEW_N - -23:19 - -f80000 - -1f - -f80000 - -Programs the DDRIO slew rate for the N devices -
-GTL - -26:24 - -7000000 - -0 - -0 - -Test Control 000 - Normal Operation 001 : 111 - Test Mode -
-RTERM - -31:27 - -f8000000 - -0 - -0 - -Program the rterm -
-DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 - -31:0 - -ffffffff - - - -f9861c - -DDRIOB Drive Slew Data Register -
-

-

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DRIVE_SLEW_DIFF - -0XF8000B64 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DRIVE_P - -6:0 - -7f - -1c - -1c - -Programs the DDRIO drive strength for the P devices -
-DRIVE_N - -13:7 - -3f80 - -c - -600 - -Programs the DDRIO drive strength for the N devices -
-SLEW_P - -18:14 - -7c000 - -6 - -18000 - -Programs the DDRIO slew rate for the P devices -
-SLEW_N - -23:19 - -f80000 - -1f - -f80000 - -Programs the DDRIO slew rate for the N devices -
-GTL - -26:24 - -7000000 - -0 - -0 - -Test Control 000 - Normal Operation 001 : 111 - Test Mode -
-RTERM - -31:27 - -f8000000 - -0 - -0 - -Program the rterm -
-DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 - -31:0 - -ffffffff - - - -f9861c - -DDRIOB Drive Slew Differential Strobe Register -
-

-

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DRIVE_SLEW_CLOCK - -0XF8000B68 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DRIVE_P - -6:0 - -7f - -1c - -1c - -Programs the DDRIO drive strength for the P devices -
-DRIVE_N - -13:7 - -3f80 - -c - -600 - -Programs the DDRIO drive strength for the N devices -
-SLEW_P - -18:14 - -7c000 - -6 - -18000 - -Programs the DDRIO slew rate for the P devices -
-SLEW_N - -23:19 - -f80000 - -1f - -f80000 - -Programs the DDRIO slew rate for the N devices -
-GTL - -26:24 - -7000000 - -0 - -0 - -Test Control 000 - Normal Operation 001 : 111 - Test Mode -
-RTERM - -31:27 - -f8000000 - -0 - -0 - -Program the rterm -
-DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 - -31:0 - -ffffffff - - - -f9861c - -DDRIOB Drive Slew Clcok Register -
-

-

Register ( slcr )DDRIOB_DDR_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DDR_CTRL - -0XF8000B6C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-VREF_INT_EN - -0:0 - -1 - -1 - -1 - -Enables VREF internal generator -
-VREF_SEL - -4:1 - -1e - -4 - -8 - -Specifies DDR IOB Vref generator output 0001 - VREF = 0.6V for LPDDR2 with 1.2V IO 0010 - VREF = 0.675V for LPDDR3 1.35 V IO 0100 - VREF = 0.75V for DDR3 with 1.5V IO 1000 - VREF = 0.90V for DDR2 with 1.8V IO -
-VREF_EXT_EN - -6:5 - -60 - -0 - -0 - -Enables External VREF input X0 - Disable External VREF for lower 16 bits X1 - Enable External VREF for lower 16 bits 0X - Disable External VREF for upper 16 bits 1X - Enable External VREF for upper 16 bits -
-VREF_PULLUP_EN - -8:7 - -180 - -0 - -0 - -Enables VREF pull-up resistors X0 - Disable VREF pull-up for lower 16 bits X1 - Enable VREF pull-up for lower 16 bits 0X - Disable VREF pull-up for upper 16 bits 1X - Enable VREF pull-up for upper 16 bits -
-REFIO_EN - -9:9 - -200 - -1 - -200 - -Enables VRP,VRN 0 - VRP/VRN not used 1 - VRP/VRN used as refio -
-REFIO_PULLUP_EN - -12:12 - -1000 - -0 - -0 - -Enables VRP,VRN pull-up resistors 0 -no pull-up 1 - enable pull-up resistors -
-DRST_B_PULLUP_EN - -13:13 - -2000 - -0 - -0 - -Enables pull-up resistors 0 -no pull-up 1 - enable pull-up resistors -
-CKE_PULLUP_EN - -14:14 - -4000 - -0 - -0 - -Enables pull-up resistors 0 -no pull-up 1 - enable pull-up resistors -
-DDRIOB_DDR_CTRL@0XF8000B6C - -31:0 - -73ff - - - -209 - -DDRIOB DDR Control Register -
-

-

ASSERT RESET

-

Register ( slcr )DDRIOB_DCI_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DCI_CTRL - -0XF8000B70 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-RESET - -0:0 - -1 - -1 - -1 - -At least toggle once to initialise flops in DCI system -
-VRN_OUT - -5:5 - -20 - -1 - -20 - -VRN output value -
-DDRIOB_DCI_CTRL@0XF8000B70 - -31:0 - -21 - - - -21 - -DDRIOB DCI configuration -
-

-

DEASSERT RESET

-

Register ( slcr )DDRIOB_DCI_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DCI_CTRL - -0XF8000B70 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-RESET - -0:0 - -1 - -0 - -0 - -At least toggle once to initialise flops in DCI system -
-VRN_OUT - -5:5 - -20 - -1 - -20 - -VRN output value -
-DDRIOB_DCI_CTRL@0XF8000B70 - -31:0 - -21 - - - -20 - -DDRIOB DCI configuration -
-

-

Register ( slcr )DDRIOB_DCI_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DCI_CTRL - -0XF8000B70 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-RESET - -0:0 - -1 - -1 - -1 - -At least toggle once to initialise flops in DCI system -
-ENABLE - -1:1 - -2 - -1 - -2 - -1 if any iob's use a terminate type, or if dci test block used -
-VRP_TRI - -2:2 - -4 - -0 - -0 - -VRP tristate value -
-VRN_TRI - -3:3 - -8 - -0 - -0 - -VRN tristate value -
-VRP_OUT - -4:4 - -10 - -0 - -0 - -VRP output value -
-VRN_OUT - -5:5 - -20 - -1 - -20 - -VRN output value -
-NREF_OPT1 - -7:6 - -c0 - -0 - -0 - -Reserved -
-NREF_OPT2 - -10:8 - -700 - -0 - -0 - -Reserved -
-NREF_OPT4 - -13:11 - -3800 - -1 - -800 - -Reserved -
-PREF_OPT1 - -16:14 - -1c000 - -0 - -0 - -Reserved -
-PREF_OPT2 - -19:17 - -e0000 - -0 - -0 - -Reserved -
-UPDATE_CONTROL - -20:20 - -100000 - -0 - -0 - -DCI Update -
-INIT_COMPLETE - -21:21 - -200000 - -0 - -0 - -test Internal to IO bank -
-TST_CLK - -22:22 - -400000 - -0 - -0 - -Emulate DCI clock -
-TST_HLN - -23:23 - -800000 - -0 - -0 - -Emulate comparator output (VRN) -
-TST_HLP - -24:24 - -1000000 - -0 - -0 - -Emulate comparator output (VRP) -
-TST_RST - -25:25 - -2000000 - -0 - -0 - -Emulate Reset -
-INT_DCI_EN - -26:26 - -4000000 - -0 - -0 - -Need explanation here -
-DDRIOB_DCI_CTRL@0XF8000B70 - -31:0 - -7ffffff - - - -823 - -DDRIOB DCI configuration -
-

-

MIO PROGRAMMING

-

Register ( slcr )MIO_PIN_00

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_00 - -0XF8000700 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_00@0XF8000700 - -31:0 - -3f01 - - - -1201 - -MIO Control for Pin 0 -
-

-

Register ( slcr )MIO_PIN_01

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_01 - -0XF8000704 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= qspi_sel, Output, qspi_n_ss_out- (QSPI Select) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= smc_a25, Output, smc_sram_add[25]- (SRAM Address) 2= smc_cs1, Output, smc_sram_cs_n[1]- (SRAM CS1) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_01@0XF8000704 - -31:0 - -3fff - - - -1202 - -MIO Control for Pin 1 -
-

-

Register ( slcr )MIO_PIN_02

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_02 - -0XF8000708 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- (QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Databus) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[8]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_clk- (SRAM Clock) 2= nand, Output, smc_nand_ale- (NAND Address Latch Enable) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[0] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_02@0XF8000708 - -31:0 - -3fff - - - -202 - -MIO Control for Pin 2 -
-

-

Register ( slcr )MIO_PIN_03

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_03 - -0XF800070C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (QSPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Databus) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[9]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[0]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[0]- (SRAM Data) 2= nand, Output, smc_nand_we_b- (NAND Write Enable) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[1] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_03@0XF800070C - -31:0 - -3fff - - - -202 - -MIO Control for Pin 3 -
-

-

Register ( slcr )MIO_PIN_04

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_04 - -0XF8000710 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[10]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[1]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[1]- (SRAM Data) 2= nand, Input, smc_nand_data_in[2]- (NAND Data Bus) = nand, Output, smc_nand_data_out[2]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[2] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_04@0XF8000710 - -31:0 - -3fff - - - -202 - -MIO Control for Pin 4 -
-

-

Register ( slcr )MIO_PIN_05

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_05 - -0XF8000714 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[11]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[2]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[2]- (SRAM Data) 2= nand, Input, smc_nand_data_in[0]- (NAND Data Bus) = nand, Output, smc_nand_data_out[0]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[3] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_05@0XF8000714 - -31:0 - -3fff - - - -202 - -MIO Control for Pin 5 -
-

-

Register ( slcr )MIO_PIN_06

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_06 - -0XF8000718 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- (QSPI Clock) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[12]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[3]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[3]- (SRAM Data) 2= nand, Input, smc_nand_data_in[1]- (NAND Data Bus) = nand, Output, smc_nand_data_out[1]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[4] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_06@0XF8000718 - -31:0 - -3fff - - - -202 - -MIO Control for Pin 6 -
-

-

Register ( slcr )MIO_PIN_07

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_07 - -0XF800071C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[13]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_oe_b- (SRAM Output enable) 2= nand, Output, smc_nand_cle- (NAND Command Latch Enable) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Output, gpio_0_pin_out[7]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for vcfg[0] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_07@0XF800071C - -31:0 - -3fff - - - -200 - -MIO Control for Pin 7 -
-

-

Register ( slcr )MIO_PIN_08

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_08 - -0XF8000720 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_lpbk- (QSPI Clock to be fed-back) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[14]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_we_b- (SRAM Write enable) 2= nand, Output, smc_nand_re_b- (NAND Read Enable) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for vcfg[1] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_08@0XF8000720 - -31:0 - -3fff - - - -202 - -MIO Control for Pin 8 -
-

-

Register ( slcr )MIO_PIN_09

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_09 - -0XF8000724 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out_upper- (QSPI Upper Clock) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[15]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[6]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[6]- (SRAM Data) 2= nand, Input, smc_nand_data_in[4]- (NAND Data Bus) = nand, Output, smc_nand_data_out[4]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[9]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[9]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_09@0XF8000724 - -31:0 - -3fff - - - -1200 - -MIO Control for Pin 9 -
-

-

Register ( slcr )MIO_PIN_10

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_10 - -0XF8000728 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[0]- (QSPI Upper Databus) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[2]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[7]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[7]- (SRAM Data) 2= nand, Input, smc_nand_data_in[5]- (NAND Data Bus) = nand, Output, smc_nand_data_out[5]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_data_in[0]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[0]- (4-bit Data bus) 5= spi1, Output, spi1_mo- (MOSI signal) 5= spi1, Input, spi1_si- (MOSI signal) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_10@0XF8000728 - -31:0 - -3fff - - - -1200 - -MIO Control for Pin 10 -
-

-

Register ( slcr )MIO_PIN_11

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_11 - -0XF800072C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[1]- (QSPI Upper Databus) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[3]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[4]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[4]- (SRAM Data) 2= nand, Input, smc_nand_data_in[6]- (NAND Data Bus) = nand, Output, smc_nand_data_out[6]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_cmd_in- (Command Indicator) 4= sd1, Output, sd1_cmd_out- (Command Indicator) 5= spi1, Input, spi1_mi- (MISO signal) 5= spi1, Output, spi1_so- (MISO signal) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_11@0XF800072C - -31:0 - -3fff - - - -1200 - -MIO Control for Pin 11 -
-

-

Register ( slcr )MIO_PIN_12

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_12 - -0XF8000730 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[2]- (QSPI Upper Databus) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, traceclk- (Trace Port Clock) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_wait- (SRAM Wait State indicator) 2= nand, Input, smc_nand_data_in[7]- (NAND Data Bus) = nand, Output, smc_nand_data_out[7]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_12@0XF8000730 - -31:0 - -3fff - - - -1200 - -MIO Control for Pin 12 -
-

-

Register ( slcr )MIO_PIN_13

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_13 - -0XF8000734 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[3]- (QSPI Upper Databus) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, tracectl- (Trace Port Control Signal) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[5]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[5]- (SRAM Data) 2= nand, Input, smc_nand_data_in[3]- (NAND Data Bus) = nand, Output, smc_nand_data_out[3]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_13@0XF8000734 - -31:0 - -3fff - - - -1200 - -MIO Control for Pin 13 -
-

-

Register ( slcr )MIO_PIN_14

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_14 - -0XF8000738 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[0]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_fbclk- (SRAM Feedback Clock) 2= nand, Input, smc_nand_busy- (NAND Busy) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= sd1, Input, sd1_data_in[2]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[2]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_14@0XF8000738 - -31:0 - -3fff - - - -1200 - -MIO Control for Pin 14 -
-

-

Register ( slcr )MIO_PIN_15

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_15 - -0XF800073C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_15@0XF800073C - -31:0 - -3f01 - - - -1201 - -MIO Control for Pin 15 -
-

-

Register ( slcr )MIO_PIN_16

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_16 - -0XF8000740 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_clk- (TX RGMII clock) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[4]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[1]- (SRAM Address) 2= nand, Input, smc_nand_data_in[8]- (NAND Data Bus) = nand, Output, smc_nand_data_out[8]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_clk_in- (SDSDIO clock) 4= sd0, Output, sd0_clk_out- (SDSDIO clock) 5= spi0, Input, spi0_sclk_in- (SPI Clock) 5= spi0, Output, spi0_sclk_out- (SPI Clock) 6= ttc1, Output, ttc1_wave_out- (TTC waveform clock) 7= ua1, Output, ua1_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_16@0XF8000740 - -31:0 - -3fff - - - -2802 - -MIO Control for Pin 16 -
-

-

Register ( slcr )MIO_PIN_17

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_17 - -0XF8000744 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[0]- (TX RGMII data) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[5]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[2]- (SRAM Address) 2= nand, Input, smc_nand_data_in[9]- (NAND Data Bus) = nand, Output, smc_nand_data_out[9]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_cmd_in- (Command Indicator) 4= sd0, Output, sd0_cmd_out- (Command Indicator) 5= spi0, Input, spi0_mi- (MISO signal) 5= spi0, Output, spi0_so- (MISO signal) 6= ttc1, Input, ttc1_clk_in- (TTC input clock) 7= ua1, Input, ua1_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_17@0XF8000744 - -31:0 - -3fff - - - -2802 - -MIO Control for Pin 17 -
-

-

Register ( slcr )MIO_PIN_18

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_18 - -0XF8000748 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[1]- (TX RGMII data) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[6]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[3]- (SRAM Address) 2= nand, Input, smc_nand_data_in[10]- (NAND Data Bus) = nand, Output, smc_nand_data_out[10]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[0]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[0]- (4-bit Data bus) 5= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 5= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 6= ttc0, Output, ttc0_wave_out- (TTC waveform clock) 7= ua0, Input, ua0_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_18@0XF8000748 - -31:0 - -3fff - - - -2802 - -MIO Control for Pin 18 -
-

-

Register ( slcr )MIO_PIN_19

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_19 - -0XF800074C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[2]- (TX RGMII data) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[7]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[4]- (SRAM Address) 2= nand, Input, smc_nand_data_in[11]- (NAND Data Bus) = nand, Output, smc_nand_data_out[11]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[1]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[1]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 6= ttc0, Input, ttc0_clk_in- (TTC input clock) 7= ua0, Output, ua0_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_19@0XF800074C - -31:0 - -3fff - - - -2802 - -MIO Control for Pin 19 -
-

-

Register ( slcr )MIO_PIN_20

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_20 - -0XF8000750 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[3]- (TX RGMII data) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[5]- (SRAM Address) 2= nand, Input, smc_nand_data_in[12]- (NAND Data Bus) = nand, Output, smc_nand_data_out[12]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[2]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[2]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_20@0XF8000750 - -31:0 - -3fff - - - -2802 - -MIO Control for Pin 20 -
-

-

Register ( slcr )MIO_PIN_21

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_21 - -0XF8000754 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ctl- (TX RGMII control) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[6]- (SRAM Address) 2= nand, Input, smc_nand_data_in[13]- (NAND Data Bus) = nand, Output, smc_nand_data_out[13]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[3]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[3]- (4-bit Data bus) 5= spi0, Output, spi0_mo- (MOSI signal) 5= spi0, Input, spi0_si- (MOSI signal) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_21@0XF8000754 - -31:0 - -3fff - - - -2802 - -MIO Control for Pin 21 -
-

-

Register ( slcr )MIO_PIN_22

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_22 - -0XF8000758 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_clk- (RX RGMII clock) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[2]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[7]- (SRAM Address) 2= nand, Input, smc_nand_data_in[14]- (NAND Data Bus) = nand, Output, smc_nand_data_out[14]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_data_in[0]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[0]- (4-bit Data bus) 5= spi1, Output, spi1_mo- (MOSI signal) 5= spi1, Input, spi1_si- (MOSI signal) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_22@0XF8000758 - -31:0 - -3fff - - - -803 - -MIO Control for Pin 22 -
-

-

Register ( slcr )MIO_PIN_23

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_23 - -0XF800075C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[0]- (RX RGMII data) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[3]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[8]- (SRAM Address) 2= nand, Input, smc_nand_data_in[15]- (NAND Data Bus) = nand, Output, smc_nand_data_out[15]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_cmd_in- (Command Indicator) 4= sd1, Output, sd1_cmd_out- (Command Indicator) 5= spi1, Input, spi1_mi- (MISO signal) 5= spi1, Output, spi1_so- (MISO signal) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_23@0XF800075C - -31:0 - -3fff - - - -803 - -MIO Control for Pin 23 -
-

-

Register ( slcr )MIO_PIN_24

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_24 - -0XF8000760 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[1]- (RX RGMII data) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, traceclk- (Trace Port Clock) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[9]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_24@0XF8000760 - -31:0 - -3fff - - - -803 - -MIO Control for Pin 24 -
-

-

Register ( slcr )MIO_PIN_25

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_25 - -0XF8000764 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[2]- (RX RGMII data) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, tracectl- (Trace Port Control Signal) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[10]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_25@0XF8000764 - -31:0 - -3fff - - - -803 - -MIO Control for Pin 25 -
-

-

Register ( slcr )MIO_PIN_26

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_26 - -0XF8000768 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[3]- (RX RGMII data) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[0]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[11]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[26]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[26]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= sd1, Input, sd1_data_in[2]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[2]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_26@0XF8000768 - -31:0 - -3fff - - - -803 - -MIO Control for Pin 26 -
-

-

Register ( slcr )MIO_PIN_27

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_27 - -0XF800076C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_ctl- (RX RGMII control ) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[1]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[12]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[27]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[27]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= sd1, Input, sd1_data_in[3]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[3]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_27@0XF800076C - -31:0 - -3fff - - - -803 - -MIO Control for Pin 27 -
-

-

Register ( slcr )MIO_PIN_28

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_28 - -0XF8000770 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_clk- (TX RGMII clock) -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[4]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[4]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[13]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[28]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[28]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_clk_in- (SDSDIO clock) 4= sd0, Output, sd0_clk_out- (SDSDIO clock) 5= spi0, Input, spi0_sclk_in- (SPI Clock) 5= spi0, Output, spi0_sclk_out- (SPI Clock) 6= ttc1, Output, ttc1_wave_out- (TTC waveform clock) 7= ua1, Output, ua1_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_28@0XF8000770 - -31:0 - -3fff - - - -204 - -MIO Control for Pin 28 -
-

-

Register ( slcr )MIO_PIN_29

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_29 - -0XF8000774 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[0]- (TX RGMII data) -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_dir- (Data bus direction control) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[14]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[29]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[29]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_cmd_in- (Command Indicator) 4= sd0, Output, sd0_cmd_out- (Command Indicator) 5= spi0, Input, spi0_mi- (MISO signal) 5= spi0, Output, spi0_so- (MISO signal) 6= ttc1, Input, ttc1_clk_in- (TTC input clock) 7= ua1, Input, ua1_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_29@0XF8000774 - -31:0 - -3fff - - - -205 - -MIO Control for Pin 29 -
-

-

Register ( slcr )MIO_PIN_30

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_30 - -0XF8000778 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[1]- (TX RGMII data) -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Output, usb0_ulpi_stp- (Asserted to end or interrupt transfers) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[15]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[30]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[30]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[0]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[0]- (4-bit Data bus) 5= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 5= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 6= ttc0, Output, ttc0_wave_out- (TTC waveform clock) 7= ua0, Input, ua0_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_30@0XF8000778 - -31:0 - -3fff - - - -204 - -MIO Control for Pin 30 -
-

-

Register ( slcr )MIO_PIN_31

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_31 - -0XF800077C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[2]- (TX RGMII data) -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_nxt- (Data flow control signal from the PHY) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[16]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[31]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[31]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[1]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[1]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 6= ttc0, Input, ttc0_clk_in- (TTC input clock) 7= ua0, Output, ua0_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_31@0XF800077C - -31:0 - -3fff - - - -205 - -MIO Control for Pin 31 -
-

-

Register ( slcr )MIO_PIN_32

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_32 - -0XF8000780 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[3]- (TX RGMII data) -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[0]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[0]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[17]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[0]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[0]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[2]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[2]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_32@0XF8000780 - -31:0 - -3fff - - - -204 - -MIO Control for Pin 32 -
-

-

Register ( slcr )MIO_PIN_33

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_33 - -0XF8000784 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ctl- (TX RGMII control) -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[1]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[1]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[18]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[1]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[1]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[3]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[3]- (4-bit Data bus) 5= spi0, Output, spi0_mo- (MOSI signal) 5= spi0, Input, spi0_si- (MOSI signal) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_33@0XF8000784 - -31:0 - -3fff - - - -204 - -MIO Control for Pin 33 -
-

-

Register ( slcr )MIO_PIN_34

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_34 - -0XF8000788 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_clk- (RX RGMII clock) -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[2]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[2]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[19]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[2]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[2]- (GPIO bank 1) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_data_in[0]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[0]- (4-bit Data bus) 5= spi1, Output, spi1_mo- (MOSI signal) 5= spi1, Input, spi1_si- (MOSI signal) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_34@0XF8000788 - -31:0 - -3fff - - - -204 - -MIO Control for Pin 34 -
-

-

Register ( slcr )MIO_PIN_35

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_35 - -0XF800078C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[0]- (RX RGMII data) -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[3]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[3]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[20]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[3]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[3]- (GPIO bank 1) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_cmd_in- (Command Indicator) 4= sd1, Output, sd1_cmd_out- (Command Indicator) 5= spi1, Input, spi1_mi- (MISO signal) 5= spi1, Output, spi1_so- (MISO signal) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_35@0XF800078C - -31:0 - -3fff - - - -204 - -MIO Control for Pin 35 -
-

-

Register ( slcr )MIO_PIN_36

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_36 - -0XF8000790 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[1]- (RX RGMII data) -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_xcvr_clk_in- (ULPI clock) 1= usb0, Output, usb0_xcvr_clk_out- (ULPI clock) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[21]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[4]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[4]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_36@0XF8000790 - -31:0 - -3fff - - - -205 - -MIO Control for Pin 36 -
-

-

Register ( slcr )MIO_PIN_37

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_37 - -0XF8000794 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[2]- (RX RGMII data) -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[5]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[5]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[22]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[5]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[5]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_37@0XF8000794 - -31:0 - -3fff - - - -204 - -MIO Control for Pin 37 -
-

-

Register ( slcr )MIO_PIN_38

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_38 - -0XF8000798 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[3]- (RX RGMII data) -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[6]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[6]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[23]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[6]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[6]- (GPIO bank 1) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= sd1, Input, sd1_data_in[2]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[2]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_38@0XF8000798 - -31:0 - -3fff - - - -204 - -MIO Control for Pin 38 -
-

-

Register ( slcr )MIO_PIN_39

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_39 - -0XF800079C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_ctl- (RX RGMII control ) -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[7]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[7]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[24]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[7]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[7]- (GPIO bank 1) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= sd1, Input, sd1_data_in[3]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[3]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_39@0XF800079C - -31:0 - -3fff - - - -204 - -MIO Control for Pin 39 -
-

-

Register ( slcr )MIO_PIN_40

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_40 - -0XF80007A0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[4]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_clk_in- (SDSDIO clock) 4= sd0, Output, sd0_clk_out- (SDSDIO clock) 5= spi0, Input, spi0_sclk_in- (SPI Clock) 5= spi0, Output, spi0_sclk_out- (SPI Clock) 6= ttc1, Output, ttc1_wave_out- (TTC waveform clock) 7= ua1, Output, ua1_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_40@0XF80007A0 - -31:0 - -3fff - - - -280 - -MIO Control for Pin 40 -
-

-

Register ( slcr )MIO_PIN_41

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_41 - -0XF80007A4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- (Data bus direction control) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_cmd_in- (Command Indicator) 4= sd0, Output, sd0_cmd_out- (Command Indicator) 5= spi0, Input, spi0_mi- (MISO signal) 5= spi0, Output, spi0_so- (MISO signal) 6= ttc1, Input, ttc1_clk_in- (TTC input clock) 7= ua1, Input, ua1_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_41@0XF80007A4 - -31:0 - -3fff - - - -280 - -MIO Control for Pin 41 -
-

-

Register ( slcr )MIO_PIN_42

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_42 - -0XF80007A8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- (Asserted to end or interrupt transfers) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[0]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[0]- (4-bit Data bus) 5= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 5= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 6= ttc0, Output, ttc0_wave_out- (TTC waveform clock) 7= ua0, Input, ua0_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_42@0XF80007A8 - -31:0 - -3fff - - - -280 - -MIO Control for Pin 42 -
-

-

Register ( slcr )MIO_PIN_43

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_43 - -0XF80007AC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- (Data flow control signal from the PHY) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[1]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[1]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 6= ttc0, Input, ttc0_clk_in- (TTC input clock) 7= ua0, Output, ua0_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_43@0XF80007AC - -31:0 - -3fff - - - -280 - -MIO Control for Pin 43 -
-

-

Register ( slcr )MIO_PIN_44

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_44 - -0XF80007B0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[0]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[2]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[2]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_44@0XF80007B0 - -31:0 - -3fff - - - -280 - -MIO Control for Pin 44 -
-

-

Register ( slcr )MIO_PIN_45

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_45 - -0XF80007B4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[1]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[3]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[3]- (4-bit Data bus) 5= spi0, Output, spi0_mo- (MOSI signal) 5= spi0, Input, spi0_si- (MOSI signal) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_45@0XF80007B4 - -31:0 - -3fff - - - -280 - -MIO Control for Pin 45 -
-

-

Register ( slcr )MIO_PIN_46

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_46 - -0XF80007B8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[2]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[2]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -1 - -20 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[14]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[14]- (GPIO bank 1) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_data_in[0]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[0]- (4-bit Data bus) 5= spi1, Output, spi1_mo- (MOSI signal) 5= spi1, Input, spi1_si- (MOSI signal) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_46@0XF80007B8 - -31:0 - -3fff - - - -1221 - -MIO Control for Pin 46 -
-

-

Register ( slcr )MIO_PIN_47

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_47 - -0XF80007BC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[3]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[3]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -1 - -20 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[15]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[15]- (GPIO bank 1) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_cmd_in- (Command Indicator) 4= sd1, Output, sd1_cmd_out- (Command Indicator) 5= spi1, Input, spi1_mi- (MISO signal) 5= spi1, Output, spi1_so- (MISO signal) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_47@0XF80007BC - -31:0 - -3fff - - - -1220 - -MIO Control for Pin 47 -
-

-

Register ( slcr )MIO_PIN_48

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_48 - -0XF80007C0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_xcvr_clk_in- (ULPI Clock) 1= usb1, Output, usb1_xcvr_clk_out- (ULPI Clock) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -7 - -e0 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_48@0XF80007C0 - -31:0 - -3fff - - - -2e0 - -MIO Control for Pin 48 -
-

-

Register ( slcr )MIO_PIN_49

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_49 - -0XF80007C4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[5]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -7 - -e0 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_49@0XF80007C4 - -31:0 - -3fff - - - -2e1 - -MIO Control for Pin 49 -
-

-

Register ( slcr )MIO_PIN_50

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_50 - -0XF80007C8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[6]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[6]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -2 - -40 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[18]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[18]- (GPIO bank 1) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= sd1, Input, sd1_data_in[2]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[2]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_50@0XF80007C8 - -31:0 - -3fff - - - -1240 - -MIO Control for Pin 50 -
-

-

Register ( slcr )MIO_PIN_51

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_51 - -0XF80007CC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[7]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[7]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -2 - -40 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[19]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[19]- (GPIO bank 1) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= sd1, Input, sd1_data_in[3]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[3]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_51@0XF80007CC - -31:0 - -3fff - - - -1240 - -MIO Control for Pin 51 -
-

-

Register ( slcr )MIO_PIN_52

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_52 - -0XF80007D0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= mdio0, Output, gem0_mdc- (MDIO Clock) 5= mdio1, Output, gem1_mdc- (MDIO Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_52@0XF80007D0 - -31:0 - -3fff - - - -280 - -MIO Control for Pin 52 -
-

-

Register ( slcr )MIO_PIN_53

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_53 - -0XF80007D4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= mdio0, Input, gem0_mdio_in- (MDIO Data) 4= mdio0, Output, gem0_mdio_out- (MDIO Data) 5= mdio1, Input, gem1_mdio_in- (MDIO Data) 5= mdio1, Output, gem1_mdio_out- (MDIO Data) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_53@0XF80007D4 - -31:0 - -3fff - - - -280 - -MIO Control for Pin 53 -
-

-

Register ( slcr )SD0_WP_CD_SEL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SD0_WP_CD_SEL - -0XF8000830 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SDIO0_WP_SEL - -5:0 - -3f - -f - -f - -SDIO0 WP Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source -
-SDIO0_CD_SEL - -21:16 - -3f0000 - -0 - -0 - -SDIO0 CD Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source -
-SD0_WP_CD_SEL@0XF8000830 - -31:0 - -3f003f - - - -f - -SDIO 0 WP CD select register -
-

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

- -

-

ps7_peripherals_init_data_1_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -DDRIOB_DATA0 - - -0XF8000B48 - -32 - -RW - -0x000000 - -DDRIOB Data 0 Configuration Register -
- -DDRIOB_DATA1 - - -0XF8000B4C - -32 - -RW - -0x000000 - -DDRIOB Data 1 Configuration Register -
- -DDRIOB_DIFF0 - - -0XF8000B50 - -32 - -RW - -0x000000 - -DDRIOB Differential DQS 0 Configuration Register -
- -DDRIOB_DIFF1 - - -0XF8000B54 - -32 - -RW - -0x000000 - -DDRIOB Differential DQS 1 Configuration Register -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
- -Baud_rate_divider_reg0 - - -0XE0001034 - -32 - -RW - -0x000000 - -baud rate divider register -
- -Baud_rate_gen_reg0 - - -0XE0001018 - -32 - -RW - -0x000000 - -Baud rate divider register -
- -Control_reg0 - - -0XE0001000 - -32 - -RW - -0x000000 - -UART Control register -
- -mode_reg0 - - -0XE0001004 - -32 - -RW - -0x000000 - -UART Mode register -
- -Config_reg - - -0XE000D000 - -32 - -RW - -0x000000 - -SPI configuration register -
- -CTRL - - -0XF8007000 - -32 - -RW - -0x000000 - -Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. -
- -DIRM_0 - - -0XE000A204 - -32 - -RW - -0x000000 - -Direction mode configuration register: Configures bank 0 for direction mode, either input or output -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
- -OEN_0 - - -0XE000A208 - -32 - -RW - -0x000000 - -Output enable register: Configures the output enables of bank 0 -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
- -DIRM_0 - - -0XE000A204 - -32 - -RW - -0x000000 - -Direction mode configuration register: Configures bank 0 for direction mode, either input or output -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
- -OEN_0 - - -0XE000A208 - -32 - -RW - -0x000000 - -Output enable register: Configures the output enables of bank 0 -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
- -DIRM_0 - - -0XE000A204 - -32 - -RW - -0x000000 - -Direction mode configuration register: Configures bank 0 for direction mode, either input or output -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
- -OEN_0 - - -0XE000A208 - -32 - -RW - -0x000000 - -Output enable register: Configures the output enables of bank 0 -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
-

-

ps7_peripherals_init_data_1_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

DDR TERM/IBUF_DISABLE_MODE SETTINGS

-

Register ( slcr )DDRIOB_DATA0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DATA0 - -0XF8000B48 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IBUF_DISABLE_MODE - -7:7 - -80 - -1 - -80 - -Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -1 - -100 - -Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination -
-DDRIOB_DATA0@0XF8000B48 - -31:0 - -180 - - - -180 - -DDRIOB Data 0 Configuration Register -
-

-

Register ( slcr )DDRIOB_DATA1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DATA1 - -0XF8000B4C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IBUF_DISABLE_MODE - -7:7 - -80 - -1 - -80 - -Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -1 - -100 - -Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination -
-DDRIOB_DATA1@0XF8000B4C - -31:0 - -180 - - - -180 - -DDRIOB Data 1 Configuration Register -
-

-

Register ( slcr )DDRIOB_DIFF0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DIFF0 - -0XF8000B50 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IBUF_DISABLE_MODE - -7:7 - -80 - -1 - -80 - -Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -1 - -100 - -Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination -
-DDRIOB_DIFF0@0XF8000B50 - -31:0 - -180 - - - -180 - -DDRIOB Differential DQS 0 Configuration Register -
-

-

Register ( slcr )DDRIOB_DIFF1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DIFF1 - -0XF8000B54 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IBUF_DISABLE_MODE - -7:7 - -80 - -1 - -80 - -Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -1 - -100 - -Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination -
-DDRIOB_DIFF1@0XF8000B54 - -31:0 - -180 - - - -180 - -DDRIOB Differential DQS 1 Configuration Register -
-

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

-

SRAM/NOR SET OPMODE

-

TRACE CURRENT PORT SIZE

-

UART REGISTERS

-

Register ( slcr )Baud_rate_divider_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Baud_rate_divider_reg0 - -0XE0001034 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-BDIV - -7:0 - -ff - -6 - -6 - -Baud rate divider value 0 - 3: ignored 4 - 255: Baud rate -
-Baud_rate_divider_reg0@0XE0001034 - -31:0 - -ff - - - -6 - -baud rate divider register -
-

-

Register ( slcr )Baud_rate_gen_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Baud_rate_gen_reg0 - -0XE0001018 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CD - -15:0 - -ffff - -3e - -3e - -Baud Rate Clock Divisor Value 0 = Disables baud_sample 1 = Clock divisor bypass 2 - 65535 = baud_sample value -
-Baud_rate_gen_reg0@0XE0001018 - -31:0 - -ffff - - - -3e - -Baud rate divider register -
-

-

Register ( slcr )Control_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Control_reg0 - -0XE0001000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-STPBRK - -8:8 - -100 - -0 - -0 - -Stop transmitter break. 1 = stop transmission of the break. -
-STTBRK - -7:7 - -80 - -0 - -0 - -Start transmitter break 1 = start to transmit a break. Can only be set if STPBRK (Stop transmitter break) is not high. -
-RSTTO - -6:6 - -40 - -0 - -0 - -Restart receiver timeout counter 1 = receiver timeout counter is restarted -
-TXDIS - -5:5 - -20 - -0 - -0 - -Transmit disable. 1, the transmitter is disabled -
-TXEN - -4:4 - -10 - -1 - -10 - -Transmit enable. 1, the transmitter is enabled, provided the TXDIS field is set to 0. -
-RXDIS - -3:3 - -8 - -0 - -0 - -Receive disable. 1= receiver is enabled -
-RXEN - -2:2 - -4 - -1 - -4 - -Receive enable. 1=the receiver logic is enabled, provided RXDIS field is set to 0 -
-TXRES - -1:1 - -2 - -1 - -2 - -Software reset for TX data path. 1=the transmitter logic is reset and all pending transmitter data is discarded self clear -
-RXRES - -0:0 - -1 - -1 - -1 - -Software reset for RX data path 1=receiver logic is reset and all pending receiver data is discarded self clear -
-Control_reg0@0XE0001000 - -31:0 - -1ff - - - -17 - -UART Control register -
-

-

Register ( slcr )mode_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-mode_reg0 - -0XE0001004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IRMODE - -11:11 - -800 - -0 - -0 - -Enable IrDA mode 0 : Default UART mode 1 : Enable IrDA mode -
-UCLKEN - -10:10 - -400 - -0 - -0 - -External uart_clk source select 0 : APB clock, pclk 1 : a user-defined clock -
-CHMODE - -9:8 - -300 - -0 - -0 - -Channel mode 00 = normal 01 = automatic cho 10 = local loopback 11 = remote loopback -
-NBSTOP - -7:6 - -c0 - -0 - -0 - -Number of stop bits 00 = 1 stop bit 01 = 1.5 stop bits 10 = 2 stop bits 11 = reserved -
-PAR - -5:3 - -38 - -4 - -20 - -Parity type select. 000 = even parity 001 = odd parity 010 = forced to 0 parity (space) 011 = forced to 1 parity (mark) 1xx = no parity -
-CHRL - -2:1 - -6 - -0 - -0 - -Character length select 11 = 6 bits 10 = 7 bits 01 / 00 = 8 bits -
-CLKS - -0:0 - -1 - -0 - -0 - -clock source select 1 = clock source is uart_clk/8 0 = clock source is uart_clk -
-mode_reg0@0XE0001004 - -31:0 - -fff - - - -20 - -UART Mode register -
-

-

QSPI REGISTERS

-

Register ( slcr )Config_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Config_reg - -0XE000D000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-Holdb_dr - -19:19 - -80000 - -1 - -80000 - -Holdb and WPn pins are driven in normal/fast read or dual output/io read by the controller, if set, else external pull-high is required. Both pins are always driven by the controller in quad mode. -
-Config_reg@0XE000D000 - -31:0 - -80000 - - - -80000 - -SPI configuration register -
-

-

PL POWER ON RESET REGISTERS

-

Register ( slcr )CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CTRL - -0XF8007000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PCFG_POR_CNT_4K - -29:29 - -20000000 - -0 - -0 - -This is to indicate to the FPGA fabric what timer to use 0 - use 64K timer 1 - use 4K timer -
-CTRL@0XF8007000 - -31:0 - -20000000 - - - -0 - -Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. -
-

-

SMC TIMING CALCULATION REGISTER UPDATE

-

NAND SET CYCLE

-

OPMODE

-

DIRECT COMMAND

-

SRAM/NOR CS0 SET CYCLE

-

DIRECT COMMAND

-

NOR CS0 BASE ADDRESS

-

SRAM/NOR CS1 SET CYCLE

-

DIRECT COMMAND

-

NOR CS1 BASE ADDRESS

-

USB RESET

-

DIR MODE BANK 0

-

Register ( slcr )DIRM_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DIRM_0 - -0XE000A204 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DIRECTION_0 - -31:0 - -ffffffff - -2880 - -2880 - -Direction mode for bank 0 0 = input 1 = output Each bit configures the corresponding pin within the 32-bit bank -
-DIRM_0@0XE000A204 - -31:0 - -ffffffff - - - -2880 - -Direction mode configuration register: Configures bank 0 for direction mode, either input or output -
-

-

DIR MODE BANK 1

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -ff7f - -ff7f0000 - -Mask values to be applied on writes to the corresponding GPIO pins 0 = pin value is updated 1 = pin is masked Each bit controls the corresponding pin within the 16-bit half-bank Write Only, Read back as zero -
-DATA_0_LSW - -15:0 - -ffff - -80 - -80 - -Data values read from or written to the corresponding GPIO pins Each bit controls the corresponding pin within the 16-bit half-bank Note: Bit[6], bit[7] default value = 0 -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -ff7f0080 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

OUTPUT ENABLE BANK 0

-

Register ( slcr )OEN_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-OEN_0 - -0XE000A208 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-OP_ENABLE_0 - -31:0 - -ffffffff - -2880 - -2880 - -Output enables for bank 0 0 = disabled 1 = enabled Each bit configures the corresponding pin within the 32-bit bank -
-OEN_0@0XE000A208 - -31:0 - -ffffffff - - - -2880 - -Output enable register: Configures the output enables of bank 0 -
-

-

OUTPUT ENABLE BANK 1

-

MASK_DATA_0_LSW LOW BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -ff7f - -ff7f0000 - -Mask values to be applied on writes to the corresponding GPIO pins 0 = pin value is updated 1 = pin is masked Each bit controls the corresponding pin within the 16-bit half-bank Write Only, Read back as zero -
-DATA_0_LSW - -15:0 - -ffff - -0 - -0 - -Data values read from or written to the corresponding GPIO pins Each bit controls the corresponding pin within the 16-bit half-bank Note: Bit[6], bit[7] default value = 0 -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -ff7f0000 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
-

-

MASK_DATA_0_MSW LOW BANK [31:16]

-

MASK_DATA_1_LSW LOW BANK [47:32]

-

MASK_DATA_1_MSW LOW BANK [53:48]

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -ff7f - -ff7f0000 - -Mask values to be applied on writes to the corresponding GPIO pins 0 = pin value is updated 1 = pin is masked Each bit controls the corresponding pin within the 16-bit half-bank Write Only, Read back as zero -
-DATA_0_LSW - -15:0 - -ffff - -80 - -80 - -Data values read from or written to the corresponding GPIO pins Each bit controls the corresponding pin within the 16-bit half-bank Note: Bit[6], bit[7] default value = 0 -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -ff7f0080 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

ENET RESET

-

DIR MODE BANK 0

-

Register ( slcr )DIRM_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DIRM_0 - -0XE000A204 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DIRECTION_0 - -31:0 - -ffffffff - -2880 - -2880 - -Direction mode for bank 0 0 = input 1 = output Each bit configures the corresponding pin within the 32-bit bank -
-DIRM_0@0XE000A204 - -31:0 - -ffffffff - - - -2880 - -Direction mode configuration register: Configures bank 0 for direction mode, either input or output -
-

-

DIR MODE BANK 1

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -f7ff - -f7ff0000 - -Mask values to be applied on writes to the corresponding GPIO pins 0 = pin value is updated 1 = pin is masked Each bit controls the corresponding pin within the 16-bit half-bank Write Only, Read back as zero -
-DATA_0_LSW - -15:0 - -ffff - -800 - -800 - -Data values read from or written to the corresponding GPIO pins Each bit controls the corresponding pin within the 16-bit half-bank Note: Bit[6], bit[7] default value = 0 -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -f7ff0800 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

OUTPUT ENABLE BANK 0

-

Register ( slcr )OEN_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-OEN_0 - -0XE000A208 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-OP_ENABLE_0 - -31:0 - -ffffffff - -2880 - -2880 - -Output enables for bank 0 0 = disabled 1 = enabled Each bit configures the corresponding pin within the 32-bit bank -
-OEN_0@0XE000A208 - -31:0 - -ffffffff - - - -2880 - -Output enable register: Configures the output enables of bank 0 -
-

-

OUTPUT ENABLE BANK 1

-

MASK_DATA_0_LSW LOW BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -f7ff - -f7ff0000 - -Mask values to be applied on writes to the corresponding GPIO pins 0 = pin value is updated 1 = pin is masked Each bit controls the corresponding pin within the 16-bit half-bank Write Only, Read back as zero -
-DATA_0_LSW - -15:0 - -ffff - -0 - -0 - -Data values read from or written to the corresponding GPIO pins Each bit controls the corresponding pin within the 16-bit half-bank Note: Bit[6], bit[7] default value = 0 -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -f7ff0000 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
-

-

MASK_DATA_0_MSW LOW BANK [31:16]

-

MASK_DATA_1_LSW LOW BANK [47:32]

-

MASK_DATA_1_MSW LOW BANK [53:48]

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -f7ff - -f7ff0000 - -Mask values to be applied on writes to the corresponding GPIO pins 0 = pin value is updated 1 = pin is masked Each bit controls the corresponding pin within the 16-bit half-bank Write Only, Read back as zero -
-DATA_0_LSW - -15:0 - -ffff - -800 - -800 - -Data values read from or written to the corresponding GPIO pins Each bit controls the corresponding pin within the 16-bit half-bank Note: Bit[6], bit[7] default value = 0 -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -f7ff0800 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

I2C RESET

-

DIR MODE GPIO BANK0

-

Register ( slcr )DIRM_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DIRM_0 - -0XE000A204 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DIRECTION_0 - -31:0 - -ffffffff - -2880 - -2880 - -Direction mode for bank 0 0 = input 1 = output Each bit configures the corresponding pin within the 32-bit bank -
-DIRM_0@0XE000A204 - -31:0 - -ffffffff - - - -2880 - -Direction mode configuration register: Configures bank 0 for direction mode, either input or output -
-

-

DIR MODE GPIO BANK1

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -dfff - -dfff0000 - -Mask values to be applied on writes to the corresponding GPIO pins 0 = pin value is updated 1 = pin is masked Each bit controls the corresponding pin within the 16-bit half-bank Write Only, Read back as zero -
-DATA_0_LSW - -15:0 - -ffff - -2000 - -2000 - -Data values read from or written to the corresponding GPIO pins Each bit controls the corresponding pin within the 16-bit half-bank Note: Bit[6], bit[7] default value = 0 -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -dfff2000 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

OUTPUT ENABLE

-

Register ( slcr )OEN_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-OEN_0 - -0XE000A208 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-OP_ENABLE_0 - -31:0 - -ffffffff - -2880 - -2880 - -Output enables for bank 0 0 = disabled 1 = enabled Each bit configures the corresponding pin within the 32-bit bank -
-OEN_0@0XE000A208 - -31:0 - -ffffffff - - - -2880 - -Output enable register: Configures the output enables of bank 0 -
-

-

OUTPUT ENABLE

-

MASK_DATA_0_LSW LOW BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -dfff - -dfff0000 - -Mask values to be applied on writes to the corresponding GPIO pins 0 = pin value is updated 1 = pin is masked Each bit controls the corresponding pin within the 16-bit half-bank Write Only, Read back as zero -
-DATA_0_LSW - -15:0 - -ffff - -0 - -0 - -Data values read from or written to the corresponding GPIO pins Each bit controls the corresponding pin within the 16-bit half-bank Note: Bit[6], bit[7] default value = 0 -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -dfff0000 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
-

-

MASK_DATA_0_MSW LOW BANK [31:16]

-

MASK_DATA_1_LSW LOW BANK [47:32]

-

MASK_DATA_1_MSW LOW BANK [53:48]

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -dfff - -dfff0000 - -Mask values to be applied on writes to the corresponding GPIO pins 0 = pin value is updated 1 = pin is masked Each bit controls the corresponding pin within the 16-bit half-bank Write Only, Read back as zero -
-DATA_0_LSW - -15:0 - -ffff - -2000 - -2000 - -Data values read from or written to the corresponding GPIO pins Each bit controls the corresponding pin within the 16-bit half-bank Note: Bit[6], bit[7] default value = 0 -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -dfff2000 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

- -

-

ps7_post_config_1_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -LVL_SHFTR_EN - - -0XF8000900 - -32 - -RW - -0x000000 - -Level Shifters Enable -
- -FPGA_RST_CTRL - - -0XF8000240 - -32 - -RW - -0x000000 - -FPGA Software Reset Control -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
-

-

ps7_post_config_1_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

ENABLING LEVEL SHIFTER

-

Register ( slcr )LVL_SHFTR_EN

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LVL_SHFTR_EN - -0XF8000900 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-USER_INP_ICT_EN_0 - -1:0 - -3 - -3 - -3 - -Enable level shifters for PSS user inputs to FPGA in FPGA tile 0, drives slcr_fpga_if_ctrl0[1:0]. -
-USER_INP_ICT_EN_1 - -3:2 - -c - -3 - -c - -Enable level shifters for PSS user inputs to FPGA in FPGA tile 1, drives slcr_fpga_if_ctrl1[1:0]. -
-LVL_SHFTR_EN@0XF8000900 - -31:0 - -f - - - -f - -Level Shifters Enable -
-

-

FPGA RESETS TO 0

-

Register ( slcr )FPGA_RST_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA_RST_CTRL - -0XF8000240 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reserved_3 - -31:25 - -fe000000 - -0 - -0 - -Reserved. Writes are ignored, read data is always zero. -
-FPGA_ACP_RST - -24:24 - -1000000 - -0 - -0 - -FPGA ACP port soft reset. 0 - No reset. 1 - ACP AXI interface reset output asserted. -
-FPGA_AXDS3_RST - -23:23 - -800000 - -0 - -0 - -AXDS3AXI interface soft reset. On assertion of this reset, the AXDS3AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS3AXI interface reset output asserted. -
-FPGA_AXDS2_RST - -22:22 - -400000 - -0 - -0 - -AXDS2 AXI interface soft reset. On assertion of this reset, the AXDS2 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS2 AXI interface reset output asserted. -
-FPGA_AXDS1_RST - -21:21 - -200000 - -0 - -0 - -AXDS1 AXI interface soft reset. On assertion of this reset, the AXDS1 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS1 AXI interface reset output asserted. -
-FPGA_AXDS0_RST - -20:20 - -100000 - -0 - -0 - -AXDS0 AXI interface soft reset. On assertion of this reset, the AXDS0 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS0 AXI interface reset output asserted. -
-reserved_2 - -19:18 - -c0000 - -0 - -0 - -Reserved. Writes are ignored, read data is always zero. -
-FSSW1_FPGA_RST - -17:17 - -20000 - -0 - -0 - -General purpose FPGA slave interface 1 soft reset. On assertion of this reset, the FPGA slave interface 1 reset will be asserted. 0 - No reset. 1 - FPGA slave interface 1 reset is asserted. -
-FSSW0_FPGA_RST - -16:16 - -10000 - -0 - -0 - -General purpose FPGA slave interface 0 soft reset. On assertion of this reset, the FPGA slave interface 0 reset will be asserted. 0 - No reset. 1 - FPGA slave interface 0 reset is asserted. -
-reserved_1 - -15:14 - -c000 - -0 - -0 - -Reserved. Writes are ignored, read data is always zero. -
-FPGA_FMSW1_RST - -13:13 - -2000 - -0 - -0 - -General purpose FPGA master interface 1 soft reset. On assertion of this reset, the FPGA master interface 1 reset will be asserted. 0 - No reset. 1 - FPGA master interface 1 reset is asserted. -
-FPGA_FMSW0_RST - -12:12 - -1000 - -0 - -0 - -General purpose FPGA master interface 0 soft reset. On assertion of this reset, the FPGA master interface 0 reset will be asserted. 0 - No reset. 1 - FPGA master interface 0 reset is asserted. -
-FPGA_DMA3_RST - -11:11 - -800 - -0 - -0 - -FPGA DMA 3 peripheral request soft reset. On assertion of this reset, the FPGA DMA 3 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 3 peripheral request reset output asserted. -
-FPGA_DMA2_RST - -10:10 - -400 - -0 - -0 - -FPGA DMA 2 peripheral request soft reset. On assertion of this reset, the FPGA DMA 2 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 2 peripheral request reset output asserted. -
-FPGA_DMA1_RST - -9:9 - -200 - -0 - -0 - -FPGA DMA 1 peripheral request soft reset. On assertion of this reset, the FPGA DMA 1 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 1 peripheral request reset output asserted. -
-FPGA_DMA0_RST - -8:8 - -100 - -0 - -0 - -FPGA DMA 0 peripheral request soft reset. On assertion of this reset, the FPGA DMA 0 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 0 peripheral request reset output asserted. -
-reserved - -7:4 - -f0 - -0 - -0 - -Reserved. Writes are ignored, read data is always zero. -
-FPGA3_OUT_RST - -3:3 - -8 - -0 - -0 - -FPGA3software reset. On assertion of this reset, the FPGA 3 top level reset output will be asserted. 0 - No reset. 1 - FPGA 3 top level reset output asserted. -
-FPGA2_OUT_RST - -2:2 - -4 - -0 - -0 - -FPGA2 software reset. On assertion of this reset, the FPGA 2 top level reset output will be asserted. 0 - No reset. 1 - FPGA 2 top level reset output asserted. -
-FPGA1_OUT_RST - -1:1 - -2 - -0 - -0 - -FPGA1 software reset. On assertion of this reset, the FPGA 1 top level reset output will be asserted. 0 - No reset. 1 - FPGA 1 top level reset output asserted. -
-FPGA0_OUT_RST - -0:0 - -1 - -0 - -0 - -FPGA0 software reset. On assertion of this reset, the FPGA 0 top level reset output will be asserted. 0 - No reset. 1 - FPGA 0 top level reset output asserted. -
-FPGA_RST_CTRL@0XF8000240 - -31:0 - -ffffffff - - - -0 - -FPGA Software Reset Control -
-

-

AFI REGISTERS

-

AFI0 REGISTERS

-

AFI1 REGISTERS

-

AFI2 REGISTERS

-

AFI3 REGISTERS

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

- -

- - - - diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/ps7_init.tcl b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/ps7_init.tcl deleted file mode 100644 index 0a9e67e6b..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/ps7_init.tcl +++ /dev/null @@ -1,794 +0,0 @@ -proc ps7_pll_init_data_3_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000110 0x003FFFF0 0x000FA220 - mask_write 0XF8000100 0x0007F000 0x00028000 - mask_write 0XF8000100 0x00000010 0x00000010 - mask_write 0XF8000100 0x00000001 0x00000001 - mask_write 0XF8000100 0x00000001 0x00000000 - mask_poll 0XF800010C 0x00000001 - mask_write 0XF8000100 0x00000010 0x00000000 - mask_write 0XF8000120 0x1F003F30 0x1F000200 - mask_write 0XF8000114 0x003FFFF0 0x0012C220 - mask_write 0XF8000104 0x0007F000 0x00020000 - mask_write 0XF8000104 0x00000010 0x00000010 - mask_write 0XF8000104 0x00000001 0x00000001 - mask_write 0XF8000104 0x00000001 0x00000000 - mask_poll 0XF800010C 0x00000002 - mask_write 0XF8000104 0x00000010 0x00000000 - mask_write 0XF8000124 0xFFF00003 0x0C200003 - mask_write 0XF8000118 0x003FFFF0 0x001452C0 - mask_write 0XF8000108 0x0007F000 0x0001E000 - mask_write 0XF8000108 0x00000010 0x00000010 - mask_write 0XF8000108 0x00000001 0x00000001 - mask_write 0XF8000108 0x00000001 0x00000000 - mask_poll 0XF800010C 0x00000004 - mask_write 0XF8000108 0x00000010 0x00000000 - mask_write 0XF8000004 0x0000FFFF 0x0000767B -} -proc ps7_clock_init_data_3_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000128 0x03F03F01 0x00302301 - mask_write 0XF8000138 0x00000011 0x00000001 - mask_write 0XF8000140 0x03F03F71 0x00500801 - mask_write 0XF800014C 0x00003F31 0x00000501 - mask_write 0XF8000150 0x00003F33 0x00001401 - mask_write 0XF8000154 0x00003F33 0x00001402 - mask_write 0XF800015C 0x03F03F33 0x00300E01 - mask_write 0XF8000160 0x007F007F 0x00000000 - mask_write 0XF8000168 0x00003F31 0x00000501 - mask_write 0XF8000170 0x03F03F30 0x00101400 - mask_write 0XF8000180 0x03F03F30 0x00101400 - mask_write 0XF8000190 0x03F03F30 0x00101400 - mask_write 0XF80001A0 0x03F03F30 0x00101400 - mask_write 0XF80001C4 0x00000001 0x00000001 - mask_write 0XF800012C 0x01FFCCCD 0x01ED044D - mask_write 0XF8000004 0x0000FFFF 0x0000767B -} -proc ps7_ddr_init_data_3_0 {} { - mask_write 0XF8006000 0x0001FFFF 0x00000080 - mask_write 0XF8006004 0x0007FFFF 0x00001081 - mask_write 0XF8006008 0x03FFFFFF 0x03C0780F - mask_write 0XF800600C 0x03FFFFFF 0x02001001 - mask_write 0XF8006010 0x03FFFFFF 0x00014001 - mask_write 0XF8006014 0x001FFFFF 0x0004159B - mask_write 0XF8006018 0xF7FFFFFF 0x452440D2 - mask_write 0XF800601C 0xFFFFFFFF 0x720238E5 - mask_write 0XF8006020 0x7FDFFFFC 0x27087290 - mask_write 0XF8006024 0x0FFFFFC3 0x00000000 - mask_write 0XF8006028 0x00003FFF 0x00002007 - mask_write 0XF800602C 0xFFFFFFFF 0x00000008 - mask_write 0XF8006030 0xFFFFFFFF 0x00040930 - mask_write 0XF8006034 0x13FF3FFF 0x00011054 - mask_write 0XF8006038 0x00000003 0x00000000 - mask_write 0XF800603C 0x000FFFFF 0x00000777 - mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 - mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 - mask_write 0XF8006048 0x0003F000 0x0003C000 - mask_write 0XF8006050 0xFF0F8FFF 0x77010800 - mask_write 0XF8006058 0x00010000 0x00000000 - mask_write 0XF800605C 0x0000FFFF 0x00005003 - mask_write 0XF8006060 0x000017FF 0x0000003E - mask_write 0XF8006064 0x00021FE0 0x00020000 - mask_write 0XF8006068 0x03FFFFFF 0x00284141 - mask_write 0XF800606C 0x0000FFFF 0x00001610 - mask_write 0XF8006078 0x03FFFFFF 0x00466111 - mask_write 0XF800607C 0x000FFFFF 0x00032222 - mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 - mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 - mask_write 0XF80060AC 0x000001FF 0x000001FE - mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF - mask_write 0XF80060B4 0x00000200 0x00000200 - mask_write 0XF80060B8 0x01FFFFFF 0x00200066 - mask_write 0XF80060C4 0x00000003 0x00000003 - mask_write 0XF80060C4 0x00000003 0x00000000 - mask_write 0XF80060C8 0x000000FF 0x00000000 - mask_write 0XF80060DC 0x00000001 0x00000000 - mask_write 0XF80060F0 0x0000FFFF 0x00000000 - mask_write 0XF80060F4 0x0000000F 0x00000008 - mask_write 0XF8006114 0x000000FF 0x00000000 - mask_write 0XF8006118 0x7FFFFFCF 0x40000001 - mask_write 0XF800611C 0x7FFFFFCF 0x40000001 - mask_write 0XF8006120 0x7FFFFFCF 0x40000001 - mask_write 0XF8006124 0x7FFFFFCF 0x40000001 - mask_write 0XF800612C 0x000FFFFF 0x0003C81D - mask_write 0XF8006130 0x000FFFFF 0x00036012 - mask_write 0XF8006134 0x000FFFFF 0x0003780C - mask_write 0XF8006138 0x000FFFFF 0x0003B821 - mask_write 0XF8006140 0x000FFFFF 0x00000035 - mask_write 0XF8006144 0x000FFFFF 0x00000035 - mask_write 0XF8006148 0x000FFFFF 0x00000035 - mask_write 0XF800614C 0x000FFFFF 0x00000035 - mask_write 0XF8006154 0x000FFFFF 0x0000009D - mask_write 0XF8006158 0x000FFFFF 0x00000092 - mask_write 0XF800615C 0x000FFFFF 0x0000008C - mask_write 0XF8006160 0x000FFFFF 0x000000A1 - mask_write 0XF8006168 0x001FFFFF 0x00000147 - mask_write 0XF800616C 0x001FFFFF 0x0000012D - mask_write 0XF8006170 0x001FFFFF 0x00000133 - mask_write 0XF8006174 0x001FFFFF 0x00000143 - mask_write 0XF800617C 0x000FFFFF 0x000000DD - mask_write 0XF8006180 0x000FFFFF 0x000000D2 - mask_write 0XF8006184 0x000FFFFF 0x000000CC - mask_write 0XF8006188 0x000FFFFF 0x000000E1 - mask_write 0XF8006190 0x6FFFFEFE 0x00040080 - mask_write 0XF8006194 0x000FFFFF 0x0001FC82 - mask_write 0XF8006204 0xFFFFFFFF 0x00000000 - mask_write 0XF8006208 0x000703FF 0x000003FF - mask_write 0XF800620C 0x000703FF 0x000003FF - mask_write 0XF8006210 0x000703FF 0x000003FF - mask_write 0XF8006214 0x000703FF 0x000003FF - mask_write 0XF8006218 0x000F03FF 0x000003FF - mask_write 0XF800621C 0x000F03FF 0x000003FF - mask_write 0XF8006220 0x000F03FF 0x000003FF - mask_write 0XF8006224 0x000F03FF 0x000003FF - mask_write 0XF80062A8 0x00000FF5 0x00000000 - mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 - mask_write 0XF80062B0 0x003FFFFF 0x00005125 - mask_write 0XF80062B4 0x0003FFFF 0x000012A8 - mask_poll 0XF8000B74 0x00002000 - mask_write 0XF8006000 0x0001FFFF 0x00000081 - mask_poll 0XF8006054 0x00000007 -} -proc ps7_mio_init_data_3_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000B00 0x00000071 0x00000001 - mask_write 0XF8000B40 0x00000FFF 0x00000600 - mask_write 0XF8000B44 0x00000FFF 0x00000600 - mask_write 0XF8000B48 0x00000FFF 0x00000672 - mask_write 0XF8000B4C 0x00000FFF 0x00000672 - mask_write 0XF8000B50 0x00000FFF 0x00000674 - mask_write 0XF8000B54 0x00000FFF 0x00000674 - mask_write 0XF8000B58 0x00000FFF 0x00000600 - mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C - mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C - mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C - mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C - mask_write 0XF8000B6C 0x00007FFF 0x00000E09 - mask_write 0XF8000B70 0x00000001 0x00000001 - mask_write 0XF8000B70 0x00000021 0x00000020 - mask_write 0XF8000B70 0x07FEFFFF 0x00000823 - mask_write 0XF8000700 0x00003F01 0x00001201 - mask_write 0XF8000704 0x00003FFF 0x00001202 - mask_write 0XF8000708 0x00003FFF 0x00000202 - mask_write 0XF800070C 0x00003FFF 0x00000202 - mask_write 0XF8000710 0x00003FFF 0x00000202 - mask_write 0XF8000714 0x00003FFF 0x00000202 - mask_write 0XF8000718 0x00003FFF 0x00000202 - mask_write 0XF800071C 0x00003FFF 0x00000200 - mask_write 0XF8000720 0x00003FFF 0x00000202 - mask_write 0XF8000724 0x00003FFF 0x00001200 - mask_write 0XF8000728 0x00003FFF 0x00001200 - mask_write 0XF800072C 0x00003FFF 0x00001200 - mask_write 0XF8000730 0x00003FFF 0x00001200 - mask_write 0XF8000734 0x00003FFF 0x00001200 - mask_write 0XF8000738 0x00003FFF 0x00001200 - mask_write 0XF800073C 0x00003F01 0x00001201 - mask_write 0XF8000740 0x00003FFF 0x00002802 - mask_write 0XF8000744 0x00003FFF 0x00002802 - mask_write 0XF8000748 0x00003FFF 0x00002802 - mask_write 0XF800074C 0x00003FFF 0x00002802 - mask_write 0XF8000750 0x00003FFF 0x00002802 - mask_write 0XF8000754 0x00003FFF 0x00002802 - mask_write 0XF8000758 0x00003FFF 0x00000803 - mask_write 0XF800075C 0x00003FFF 0x00000803 - mask_write 0XF8000760 0x00003FFF 0x00000803 - mask_write 0XF8000764 0x00003FFF 0x00000803 - mask_write 0XF8000768 0x00003FFF 0x00000803 - mask_write 0XF800076C 0x00003FFF 0x00000803 - mask_write 0XF8000770 0x00003FFF 0x00000204 - mask_write 0XF8000774 0x00003FFF 0x00000205 - mask_write 0XF8000778 0x00003FFF 0x00000204 - mask_write 0XF800077C 0x00003FFF 0x00000205 - mask_write 0XF8000780 0x00003FFF 0x00000204 - mask_write 0XF8000784 0x00003FFF 0x00000204 - mask_write 0XF8000788 0x00003FFF 0x00000204 - mask_write 0XF800078C 0x00003FFF 0x00000204 - mask_write 0XF8000790 0x00003FFF 0x00000205 - mask_write 0XF8000794 0x00003FFF 0x00000204 - mask_write 0XF8000798 0x00003FFF 0x00000204 - mask_write 0XF800079C 0x00003FFF 0x00000204 - mask_write 0XF80007A0 0x00003FFF 0x00000280 - mask_write 0XF80007A4 0x00003FFF 0x00000280 - mask_write 0XF80007A8 0x00003FFF 0x00000280 - mask_write 0XF80007AC 0x00003FFF 0x00000280 - mask_write 0XF80007B0 0x00003FFF 0x00000280 - mask_write 0XF80007B4 0x00003FFF 0x00000280 - mask_write 0XF80007B8 0x00003FFF 0x00001221 - mask_write 0XF80007BC 0x00003FFF 0x00001220 - mask_write 0XF80007C0 0x00003FFF 0x000002E0 - mask_write 0XF80007C4 0x00003FFF 0x000002E1 - mask_write 0XF80007C8 0x00003FFF 0x00001240 - mask_write 0XF80007CC 0x00003FFF 0x00001240 - mask_write 0XF80007D0 0x00003FFF 0x00000280 - mask_write 0XF80007D4 0x00003FFF 0x00000280 - mask_write 0XF8000830 0x003F003F 0x0000000F - mask_write 0XF8000004 0x0000FFFF 0x0000767B -} -proc ps7_peripherals_init_data_3_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000B48 0x00000180 0x00000180 - mask_write 0XF8000B4C 0x00000180 0x00000180 - mask_write 0XF8000B50 0x00000180 0x00000180 - mask_write 0XF8000B54 0x00000180 0x00000180 - mask_write 0XF8000004 0x0000FFFF 0x0000767B - mask_write 0XE0001034 0x000000FF 0x00000006 - mask_write 0XE0001018 0x0000FFFF 0x0000003E - mask_write 0XE0001000 0x000001FF 0x00000017 - mask_write 0XE0001004 0x000003FF 0x00000020 - mask_write 0XE000D000 0x00080000 0x00080000 - mask_write 0XF8007000 0x20000000 0x00000000 - mask_write 0XE000A204 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xFF7F0080 - mask_write 0XE000A208 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xFF7F0000 - mask_write 0XE000A000 0xFFFFFFFF 0xFF7F0080 - mask_write 0XE000A204 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xF7FF0800 - mask_write 0XE000A208 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xF7FF0000 - mask_write 0XE000A000 0xFFFFFFFF 0xF7FF0800 - mask_write 0XE000A204 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xDFFF2000 - mask_write 0XE000A208 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xDFFF0000 - mask_write 0XE000A000 0xFFFFFFFF 0xDFFF2000 -} -proc ps7_post_config_3_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000900 0x0000000F 0x0000000F - mask_write 0XF8000240 0xFFFFFFFF 0x00000000 - mask_write 0XF8000004 0x0000FFFF 0x0000767B -} -proc ps7_pll_init_data_2_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000110 0x003FFFF0 0x000FA220 - mask_write 0XF8000100 0x0007F000 0x00028000 - mask_write 0XF8000100 0x00000010 0x00000010 - mask_write 0XF8000100 0x00000001 0x00000001 - mask_write 0XF8000100 0x00000001 0x00000000 - mask_poll 0XF800010C 0x00000001 - mask_write 0XF8000100 0x00000010 0x00000000 - mask_write 0XF8000120 0x1F003F30 0x1F000200 - mask_write 0XF8000114 0x003FFFF0 0x0012C220 - mask_write 0XF8000104 0x0007F000 0x00020000 - mask_write 0XF8000104 0x00000010 0x00000010 - mask_write 0XF8000104 0x00000001 0x00000001 - mask_write 0XF8000104 0x00000001 0x00000000 - mask_poll 0XF800010C 0x00000002 - mask_write 0XF8000104 0x00000010 0x00000000 - mask_write 0XF8000124 0xFFF00003 0x0C200003 - mask_write 0XF8000118 0x003FFFF0 0x001452C0 - mask_write 0XF8000108 0x0007F000 0x0001E000 - mask_write 0XF8000108 0x00000010 0x00000010 - mask_write 0XF8000108 0x00000001 0x00000001 - mask_write 0XF8000108 0x00000001 0x00000000 - mask_poll 0XF800010C 0x00000004 - mask_write 0XF8000108 0x00000010 0x00000000 - mask_write 0XF8000004 0x0000FFFF 0x0000767B -} -proc ps7_clock_init_data_2_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000128 0x03F03F01 0x00302301 - mask_write 0XF8000138 0x00000011 0x00000001 - mask_write 0XF8000140 0x03F03F71 0x00500801 - mask_write 0XF800014C 0x00003F31 0x00000501 - mask_write 0XF8000150 0x00003F33 0x00001401 - mask_write 0XF8000154 0x00003F33 0x00001402 - mask_write 0XF800015C 0x03F03F33 0x00300E01 - mask_write 0XF8000160 0x007F007F 0x00000000 - mask_write 0XF8000168 0x00003F31 0x00000501 - mask_write 0XF8000170 0x03F03F30 0x00101400 - mask_write 0XF8000180 0x03F03F30 0x00101400 - mask_write 0XF8000190 0x03F03F30 0x00101400 - mask_write 0XF80001A0 0x03F03F30 0x00101400 - mask_write 0XF80001C4 0x00000001 0x00000001 - mask_write 0XF800012C 0x01FFCCCD 0x01ED044D - mask_write 0XF8000004 0x0000FFFF 0x0000767B -} -proc ps7_ddr_init_data_2_0 {} { - mask_write 0XF8006000 0x0001FFFF 0x00000080 - mask_write 0XF8006004 0x1FFFFFFF 0x00081081 - mask_write 0XF8006008 0x03FFFFFF 0x03C0780F - mask_write 0XF800600C 0x03FFFFFF 0x02001001 - mask_write 0XF8006010 0x03FFFFFF 0x00014001 - mask_write 0XF8006014 0x001FFFFF 0x0004159B - mask_write 0XF8006018 0xF7FFFFFF 0x452440D2 - mask_write 0XF800601C 0xFFFFFFFF 0x720238E5 - mask_write 0XF8006020 0xFFFFFFFC 0x27287290 - mask_write 0XF8006024 0x0FFFFFFF 0x0000003C - mask_write 0XF8006028 0x00003FFF 0x00002007 - mask_write 0XF800602C 0xFFFFFFFF 0x00000008 - mask_write 0XF8006030 0xFFFFFFFF 0x00040930 - mask_write 0XF8006034 0x13FF3FFF 0x00011054 - mask_write 0XF8006038 0x00001FC3 0x00000000 - mask_write 0XF800603C 0x000FFFFF 0x00000777 - mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 - mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 - mask_write 0XF8006048 0x3FFFFFFF 0x0003C248 - mask_write 0XF8006050 0xFF0F8FFF 0x77010800 - mask_write 0XF8006058 0x0001FFFF 0x00000101 - mask_write 0XF800605C 0x0000FFFF 0x00005003 - mask_write 0XF8006060 0x000017FF 0x0000003E - mask_write 0XF8006064 0x00021FE0 0x00020000 - mask_write 0XF8006068 0x03FFFFFF 0x00284141 - mask_write 0XF800606C 0x0000FFFF 0x00001610 - mask_write 0XF8006078 0x03FFFFFF 0x00466111 - mask_write 0XF800607C 0x000FFFFF 0x00032222 - mask_write 0XF80060A0 0x00FFFFFF 0x00008000 - mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 - mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 - mask_write 0XF80060AC 0x000001FF 0x000001FE - mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF - mask_write 0XF80060B4 0x000007FF 0x00000200 - mask_write 0XF80060B8 0x01FFFFFF 0x00200066 - mask_write 0XF80060C4 0x00000003 0x00000003 - mask_write 0XF80060C4 0x00000003 0x00000000 - mask_write 0XF80060C8 0x000000FF 0x00000000 - mask_write 0XF80060DC 0x00000001 0x00000000 - mask_write 0XF80060F0 0x0000FFFF 0x00000000 - mask_write 0XF80060F4 0x0000000F 0x00000008 - mask_write 0XF8006114 0x000000FF 0x00000000 - mask_write 0XF8006118 0x7FFFFFFF 0x40000001 - mask_write 0XF800611C 0x7FFFFFFF 0x40000001 - mask_write 0XF8006120 0x7FFFFFFF 0x40000001 - mask_write 0XF8006124 0x7FFFFFFF 0x40000001 - mask_write 0XF800612C 0x000FFFFF 0x0003C81D - mask_write 0XF8006130 0x000FFFFF 0x00036012 - mask_write 0XF8006134 0x000FFFFF 0x0003780C - mask_write 0XF8006138 0x000FFFFF 0x0003B821 - mask_write 0XF8006140 0x000FFFFF 0x00000035 - mask_write 0XF8006144 0x000FFFFF 0x00000035 - mask_write 0XF8006148 0x000FFFFF 0x00000035 - mask_write 0XF800614C 0x000FFFFF 0x00000035 - mask_write 0XF8006154 0x000FFFFF 0x0000009D - mask_write 0XF8006158 0x000FFFFF 0x00000092 - mask_write 0XF800615C 0x000FFFFF 0x0000008C - mask_write 0XF8006160 0x000FFFFF 0x000000A1 - mask_write 0XF8006168 0x001FFFFF 0x00000147 - mask_write 0XF800616C 0x001FFFFF 0x0000012D - mask_write 0XF8006170 0x001FFFFF 0x00000133 - mask_write 0XF8006174 0x001FFFFF 0x00000143 - mask_write 0XF800617C 0x000FFFFF 0x000000DD - mask_write 0XF8006180 0x000FFFFF 0x000000D2 - mask_write 0XF8006184 0x000FFFFF 0x000000CC - mask_write 0XF8006188 0x000FFFFF 0x000000E1 - mask_write 0XF8006190 0xFFFFFFFF 0x10040080 - mask_write 0XF8006194 0x000FFFFF 0x0001FC82 - mask_write 0XF8006204 0xFFFFFFFF 0x00000000 - mask_write 0XF8006208 0x000F03FF 0x000803FF - mask_write 0XF800620C 0x000F03FF 0x000803FF - mask_write 0XF8006210 0x000F03FF 0x000803FF - mask_write 0XF8006214 0x000F03FF 0x000803FF - mask_write 0XF8006218 0x000F03FF 0x000003FF - mask_write 0XF800621C 0x000F03FF 0x000003FF - mask_write 0XF8006220 0x000F03FF 0x000003FF - mask_write 0XF8006224 0x000F03FF 0x000003FF - mask_write 0XF80062A8 0x00000FF7 0x00000000 - mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 - mask_write 0XF80062B0 0x003FFFFF 0x00005125 - mask_write 0XF80062B4 0x0003FFFF 0x000012A8 - mask_poll 0XF8000B74 0x00002000 - mask_write 0XF8006000 0x0001FFFF 0x00000081 - mask_poll 0XF8006054 0x00000007 -} -proc ps7_mio_init_data_2_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000B00 0x00000303 0x00000001 - mask_write 0XF8000B40 0x00000FFF 0x00000600 - mask_write 0XF8000B44 0x00000FFF 0x00000600 - mask_write 0XF8000B48 0x00000FFF 0x00000672 - mask_write 0XF8000B4C 0x00000FFF 0x00000672 - mask_write 0XF8000B50 0x00000FFF 0x00000674 - mask_write 0XF8000B54 0x00000FFF 0x00000674 - mask_write 0XF8000B58 0x00000FFF 0x00000600 - mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C - mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C - mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C - mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C - mask_write 0XF8000B6C 0x00007FFF 0x00000E09 - mask_write 0XF8000B70 0x00000021 0x00000021 - mask_write 0XF8000B70 0x00000021 0x00000020 - mask_write 0XF8000B70 0x07FFFFFF 0x00000823 - mask_write 0XF8000700 0x00003F01 0x00001201 - mask_write 0XF8000704 0x00003FFF 0x00001202 - mask_write 0XF8000708 0x00003FFF 0x00000202 - mask_write 0XF800070C 0x00003FFF 0x00000202 - mask_write 0XF8000710 0x00003FFF 0x00000202 - mask_write 0XF8000714 0x00003FFF 0x00000202 - mask_write 0XF8000718 0x00003FFF 0x00000202 - mask_write 0XF800071C 0x00003FFF 0x00000200 - mask_write 0XF8000720 0x00003FFF 0x00000202 - mask_write 0XF8000724 0x00003FFF 0x00001200 - mask_write 0XF8000728 0x00003FFF 0x00001200 - mask_write 0XF800072C 0x00003FFF 0x00001200 - mask_write 0XF8000730 0x00003FFF 0x00001200 - mask_write 0XF8000734 0x00003FFF 0x00001200 - mask_write 0XF8000738 0x00003FFF 0x00001200 - mask_write 0XF800073C 0x00003F01 0x00001201 - mask_write 0XF8000740 0x00003FFF 0x00002802 - mask_write 0XF8000744 0x00003FFF 0x00002802 - mask_write 0XF8000748 0x00003FFF 0x00002802 - mask_write 0XF800074C 0x00003FFF 0x00002802 - mask_write 0XF8000750 0x00003FFF 0x00002802 - mask_write 0XF8000754 0x00003FFF 0x00002802 - mask_write 0XF8000758 0x00003FFF 0x00000803 - mask_write 0XF800075C 0x00003FFF 0x00000803 - mask_write 0XF8000760 0x00003FFF 0x00000803 - mask_write 0XF8000764 0x00003FFF 0x00000803 - mask_write 0XF8000768 0x00003FFF 0x00000803 - mask_write 0XF800076C 0x00003FFF 0x00000803 - mask_write 0XF8000770 0x00003FFF 0x00000204 - mask_write 0XF8000774 0x00003FFF 0x00000205 - mask_write 0XF8000778 0x00003FFF 0x00000204 - mask_write 0XF800077C 0x00003FFF 0x00000205 - mask_write 0XF8000780 0x00003FFF 0x00000204 - mask_write 0XF8000784 0x00003FFF 0x00000204 - mask_write 0XF8000788 0x00003FFF 0x00000204 - mask_write 0XF800078C 0x00003FFF 0x00000204 - mask_write 0XF8000790 0x00003FFF 0x00000205 - mask_write 0XF8000794 0x00003FFF 0x00000204 - mask_write 0XF8000798 0x00003FFF 0x00000204 - mask_write 0XF800079C 0x00003FFF 0x00000204 - mask_write 0XF80007A0 0x00003FFF 0x00000280 - mask_write 0XF80007A4 0x00003FFF 0x00000280 - mask_write 0XF80007A8 0x00003FFF 0x00000280 - mask_write 0XF80007AC 0x00003FFF 0x00000280 - mask_write 0XF80007B0 0x00003FFF 0x00000280 - mask_write 0XF80007B4 0x00003FFF 0x00000280 - mask_write 0XF80007B8 0x00003FFF 0x00001221 - mask_write 0XF80007BC 0x00003FFF 0x00001220 - mask_write 0XF80007C0 0x00003FFF 0x000002E0 - mask_write 0XF80007C4 0x00003FFF 0x000002E1 - mask_write 0XF80007C8 0x00003FFF 0x00001240 - mask_write 0XF80007CC 0x00003FFF 0x00001240 - mask_write 0XF80007D0 0x00003FFF 0x00000280 - mask_write 0XF80007D4 0x00003FFF 0x00000280 - mask_write 0XF8000830 0x003F003F 0x0000000F - mask_write 0XF8000004 0x0000FFFF 0x0000767B -} -proc ps7_peripherals_init_data_2_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000B48 0x00000180 0x00000180 - mask_write 0XF8000B4C 0x00000180 0x00000180 - mask_write 0XF8000B50 0x00000180 0x00000180 - mask_write 0XF8000B54 0x00000180 0x00000180 - mask_write 0XF8000004 0x0000FFFF 0x0000767B - mask_write 0XE0001034 0x000000FF 0x00000006 - mask_write 0XE0001018 0x0000FFFF 0x0000003E - mask_write 0XE0001000 0x000001FF 0x00000017 - mask_write 0XE0001004 0x00000FFF 0x00000020 - mask_write 0XE000D000 0x00080000 0x00080000 - mask_write 0XF8007000 0x20000000 0x00000000 - mask_write 0XE000A204 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xFF7F0080 - mask_write 0XE000A208 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xFF7F0000 - mask_write 0XE000A000 0xFFFFFFFF 0xFF7F0080 - mask_write 0XE000A204 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xF7FF0800 - mask_write 0XE000A208 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xF7FF0000 - mask_write 0XE000A000 0xFFFFFFFF 0xF7FF0800 - mask_write 0XE000A204 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xDFFF2000 - mask_write 0XE000A208 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xDFFF0000 - mask_write 0XE000A000 0xFFFFFFFF 0xDFFF2000 -} -proc ps7_post_config_2_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000900 0x0000000F 0x0000000F - mask_write 0XF8000240 0xFFFFFFFF 0x00000000 - mask_write 0XF8000004 0x0000FFFF 0x0000767B -} -proc ps7_pll_init_data_1_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000110 0x003FFFF0 0x000FA220 - mask_write 0XF8000100 0x0007F000 0x00028000 - mask_write 0XF8000100 0x00000010 0x00000010 - mask_write 0XF8000100 0x00000001 0x00000001 - mask_write 0XF8000100 0x00000001 0x00000000 - mask_poll 0XF800010C 0x00000001 - mask_write 0XF8000100 0x00000010 0x00000000 - mask_write 0XF8000120 0x1F003F30 0x1F000200 - mask_write 0XF8000114 0x003FFFF0 0x0012C220 - mask_write 0XF8000104 0x0007F000 0x00020000 - mask_write 0XF8000104 0x00000010 0x00000010 - mask_write 0XF8000104 0x00000001 0x00000001 - mask_write 0XF8000104 0x00000001 0x00000000 - mask_poll 0XF800010C 0x00000002 - mask_write 0XF8000104 0x00000010 0x00000000 - mask_write 0XF8000124 0xFFF00003 0x0C200003 - mask_write 0XF8000118 0x003FFFF0 0x001452C0 - mask_write 0XF8000108 0x0007F000 0x0001E000 - mask_write 0XF8000108 0x00000010 0x00000010 - mask_write 0XF8000108 0x00000001 0x00000001 - mask_write 0XF8000108 0x00000001 0x00000000 - mask_poll 0XF800010C 0x00000004 - mask_write 0XF8000108 0x00000010 0x00000000 - mask_write 0XF8000004 0x0000FFFF 0x0000767B -} -proc ps7_clock_init_data_1_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000128 0x03F03F01 0x00302301 - mask_write 0XF8000138 0x00000011 0x00000001 - mask_write 0XF8000140 0x03F03F71 0x00500801 - mask_write 0XF800014C 0x00003F31 0x00000501 - mask_write 0XF8000150 0x00003F33 0x00001401 - mask_write 0XF8000154 0x00003F33 0x00001402 - mask_write 0XF800015C 0x03F03F33 0x00300E01 - mask_write 0XF8000160 0x007F007F 0x00000000 - mask_write 0XF8000168 0x00003F31 0x00000501 - mask_write 0XF8000170 0x03F03F30 0x00101400 - mask_write 0XF8000180 0x03F03F30 0x00101400 - mask_write 0XF8000190 0x03F03F30 0x00101400 - mask_write 0XF80001A0 0x03F03F30 0x00101400 - mask_write 0XF80001C4 0x00000001 0x00000001 - mask_write 0XF800012C 0x01FFCCCD 0x01ED044D - mask_write 0XF8000004 0x0000FFFF 0x0000767B -} -proc ps7_ddr_init_data_1_0 {} { - mask_write 0XF8006000 0x0001FFFF 0x00000080 - mask_write 0XF8006004 0x1FFFFFFF 0x00081081 - mask_write 0XF8006008 0x03FFFFFF 0x03C0780F - mask_write 0XF800600C 0x03FFFFFF 0x02001001 - mask_write 0XF8006010 0x03FFFFFF 0x00014001 - mask_write 0XF8006014 0x001FFFFF 0x0004159B - mask_write 0XF8006018 0xF7FFFFFF 0x452440D2 - mask_write 0XF800601C 0xFFFFFFFF 0x720238E5 - mask_write 0XF8006020 0xFFFFFFFC 0x27287290 - mask_write 0XF8006024 0x0FFFFFFF 0x0000003C - mask_write 0XF8006028 0x00003FFF 0x00002007 - mask_write 0XF800602C 0xFFFFFFFF 0x00000008 - mask_write 0XF8006030 0xFFFFFFFF 0x00040930 - mask_write 0XF8006034 0x13FF3FFF 0x00011054 - mask_write 0XF8006038 0x00001FC3 0x00000000 - mask_write 0XF800603C 0x000FFFFF 0x00000777 - mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 - mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 - mask_write 0XF8006048 0x3FFFFFFF 0x0003C248 - mask_write 0XF8006050 0xFF0F8FFF 0x77010800 - mask_write 0XF8006058 0x0001FFFF 0x00000101 - mask_write 0XF800605C 0x0000FFFF 0x00005003 - mask_write 0XF8006060 0x000017FF 0x0000003E - mask_write 0XF8006064 0x00021FE0 0x00020000 - mask_write 0XF8006068 0x03FFFFFF 0x00284141 - mask_write 0XF800606C 0x0000FFFF 0x00001610 - mask_write 0XF80060A0 0x00FFFFFF 0x00008000 - mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 - mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 - mask_write 0XF80060AC 0x000001FF 0x000001FE - mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF - mask_write 0XF80060B4 0x000007FF 0x00000200 - mask_write 0XF80060B8 0x01FFFFFF 0x00200066 - mask_write 0XF80060C4 0x00000003 0x00000003 - mask_write 0XF80060C4 0x00000003 0x00000000 - mask_write 0XF80060C8 0x000000FF 0x00000000 - mask_write 0XF80060DC 0x00000001 0x00000000 - mask_write 0XF80060F0 0x0000FFFF 0x00000000 - mask_write 0XF80060F4 0x0000000F 0x00000008 - mask_write 0XF8006114 0x000000FF 0x00000000 - mask_write 0XF8006118 0x7FFFFFFF 0x40000001 - mask_write 0XF800611C 0x7FFFFFFF 0x40000001 - mask_write 0XF8006120 0x7FFFFFFF 0x40000001 - mask_write 0XF8006124 0x7FFFFFFF 0x40000001 - mask_write 0XF800612C 0x000FFFFF 0x0003C81D - mask_write 0XF8006130 0x000FFFFF 0x00036012 - mask_write 0XF8006134 0x000FFFFF 0x0003780C - mask_write 0XF8006138 0x000FFFFF 0x0003B821 - mask_write 0XF8006140 0x000FFFFF 0x00000035 - mask_write 0XF8006144 0x000FFFFF 0x00000035 - mask_write 0XF8006148 0x000FFFFF 0x00000035 - mask_write 0XF800614C 0x000FFFFF 0x00000035 - mask_write 0XF8006154 0x000FFFFF 0x0000009D - mask_write 0XF8006158 0x000FFFFF 0x00000092 - mask_write 0XF800615C 0x000FFFFF 0x0000008C - mask_write 0XF8006160 0x000FFFFF 0x000000A1 - mask_write 0XF8006168 0x001FFFFF 0x00000147 - mask_write 0XF800616C 0x001FFFFF 0x0000012D - mask_write 0XF8006170 0x001FFFFF 0x00000133 - mask_write 0XF8006174 0x001FFFFF 0x00000143 - mask_write 0XF800617C 0x000FFFFF 0x000000DD - mask_write 0XF8006180 0x000FFFFF 0x000000D2 - mask_write 0XF8006184 0x000FFFFF 0x000000CC - mask_write 0XF8006188 0x000FFFFF 0x000000E1 - mask_write 0XF8006190 0xFFFFFFFF 0x10040080 - mask_write 0XF8006194 0x000FFFFF 0x0001FC82 - mask_write 0XF8006204 0xFFFFFFFF 0x00000000 - mask_write 0XF8006208 0x000F03FF 0x000803FF - mask_write 0XF800620C 0x000F03FF 0x000803FF - mask_write 0XF8006210 0x000F03FF 0x000803FF - mask_write 0XF8006214 0x000F03FF 0x000803FF - mask_write 0XF8006218 0x000F03FF 0x000003FF - mask_write 0XF800621C 0x000F03FF 0x000003FF - mask_write 0XF8006220 0x000F03FF 0x000003FF - mask_write 0XF8006224 0x000F03FF 0x000003FF - mask_write 0XF80062A8 0x00000FF7 0x00000000 - mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 - mask_write 0XF80062B0 0x003FFFFF 0x00005125 - mask_write 0XF80062B4 0x0003FFFF 0x000012A8 - mask_poll 0XF8000B74 0x00002000 - mask_write 0XF8006000 0x0001FFFF 0x00000081 - mask_poll 0XF8006054 0x00000007 -} -proc ps7_mio_init_data_1_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000B00 0x00000303 0x00000001 - mask_write 0XF8000B40 0x00000FFF 0x00000600 - mask_write 0XF8000B44 0x00000FFF 0x00000600 - mask_write 0XF8000B48 0x00000FFF 0x00000672 - mask_write 0XF8000B4C 0x00000FFF 0x00000672 - mask_write 0XF8000B50 0x00000FFF 0x00000674 - mask_write 0XF8000B54 0x00000FFF 0x00000674 - mask_write 0XF8000B58 0x00000FFF 0x00000600 - mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C - mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C - mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C - mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C - mask_write 0XF8000B6C 0x000073FF 0x00000209 - mask_write 0XF8000B70 0x00000021 0x00000021 - mask_write 0XF8000B70 0x00000021 0x00000020 - mask_write 0XF8000B70 0x07FFFFFF 0x00000823 - mask_write 0XF8000700 0x00003F01 0x00001201 - mask_write 0XF8000704 0x00003FFF 0x00001202 - mask_write 0XF8000708 0x00003FFF 0x00000202 - mask_write 0XF800070C 0x00003FFF 0x00000202 - mask_write 0XF8000710 0x00003FFF 0x00000202 - mask_write 0XF8000714 0x00003FFF 0x00000202 - mask_write 0XF8000718 0x00003FFF 0x00000202 - mask_write 0XF800071C 0x00003FFF 0x00000200 - mask_write 0XF8000720 0x00003FFF 0x00000202 - mask_write 0XF8000724 0x00003FFF 0x00001200 - mask_write 0XF8000728 0x00003FFF 0x00001200 - mask_write 0XF800072C 0x00003FFF 0x00001200 - mask_write 0XF8000730 0x00003FFF 0x00001200 - mask_write 0XF8000734 0x00003FFF 0x00001200 - mask_write 0XF8000738 0x00003FFF 0x00001200 - mask_write 0XF800073C 0x00003F01 0x00001201 - mask_write 0XF8000740 0x00003FFF 0x00002802 - mask_write 0XF8000744 0x00003FFF 0x00002802 - mask_write 0XF8000748 0x00003FFF 0x00002802 - mask_write 0XF800074C 0x00003FFF 0x00002802 - mask_write 0XF8000750 0x00003FFF 0x00002802 - mask_write 0XF8000754 0x00003FFF 0x00002802 - mask_write 0XF8000758 0x00003FFF 0x00000803 - mask_write 0XF800075C 0x00003FFF 0x00000803 - mask_write 0XF8000760 0x00003FFF 0x00000803 - mask_write 0XF8000764 0x00003FFF 0x00000803 - mask_write 0XF8000768 0x00003FFF 0x00000803 - mask_write 0XF800076C 0x00003FFF 0x00000803 - mask_write 0XF8000770 0x00003FFF 0x00000204 - mask_write 0XF8000774 0x00003FFF 0x00000205 - mask_write 0XF8000778 0x00003FFF 0x00000204 - mask_write 0XF800077C 0x00003FFF 0x00000205 - mask_write 0XF8000780 0x00003FFF 0x00000204 - mask_write 0XF8000784 0x00003FFF 0x00000204 - mask_write 0XF8000788 0x00003FFF 0x00000204 - mask_write 0XF800078C 0x00003FFF 0x00000204 - mask_write 0XF8000790 0x00003FFF 0x00000205 - mask_write 0XF8000794 0x00003FFF 0x00000204 - mask_write 0XF8000798 0x00003FFF 0x00000204 - mask_write 0XF800079C 0x00003FFF 0x00000204 - mask_write 0XF80007A0 0x00003FFF 0x00000280 - mask_write 0XF80007A4 0x00003FFF 0x00000280 - mask_write 0XF80007A8 0x00003FFF 0x00000280 - mask_write 0XF80007AC 0x00003FFF 0x00000280 - mask_write 0XF80007B0 0x00003FFF 0x00000280 - mask_write 0XF80007B4 0x00003FFF 0x00000280 - mask_write 0XF80007B8 0x00003FFF 0x00001221 - mask_write 0XF80007BC 0x00003FFF 0x00001220 - mask_write 0XF80007C0 0x00003FFF 0x000002E0 - mask_write 0XF80007C4 0x00003FFF 0x000002E1 - mask_write 0XF80007C8 0x00003FFF 0x00001240 - mask_write 0XF80007CC 0x00003FFF 0x00001240 - mask_write 0XF80007D0 0x00003FFF 0x00000280 - mask_write 0XF80007D4 0x00003FFF 0x00000280 - mask_write 0XF8000830 0x003F003F 0x0000000F - mask_write 0XF8000004 0x0000FFFF 0x0000767B -} -proc ps7_peripherals_init_data_1_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000B48 0x00000180 0x00000180 - mask_write 0XF8000B4C 0x00000180 0x00000180 - mask_write 0XF8000B50 0x00000180 0x00000180 - mask_write 0XF8000B54 0x00000180 0x00000180 - mask_write 0XF8000004 0x0000FFFF 0x0000767B - mask_write 0XE0001034 0x000000FF 0x00000006 - mask_write 0XE0001018 0x0000FFFF 0x0000003E - mask_write 0XE0001000 0x000001FF 0x00000017 - mask_write 0XE0001004 0x00000FFF 0x00000020 - mask_write 0XE000D000 0x00080000 0x00080000 - mask_write 0XF8007000 0x20000000 0x00000000 - mask_write 0XE000A204 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xFF7F0080 - mask_write 0XE000A208 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xFF7F0000 - mask_write 0XE000A000 0xFFFFFFFF 0xFF7F0080 - mask_write 0XE000A204 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xF7FF0800 - mask_write 0XE000A208 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xF7FF0000 - mask_write 0XE000A000 0xFFFFFFFF 0xF7FF0800 - mask_write 0XE000A204 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xDFFF2000 - mask_write 0XE000A208 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xDFFF0000 - mask_write 0XE000A000 0xFFFFFFFF 0xDFFF2000 -} -proc ps7_post_config_1_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000900 0x0000000F 0x0000000F - mask_write 0XF8000240 0xFFFFFFFF 0x00000000 - mask_write 0XF8000004 0x0000FFFF 0x0000767B -} -set PCW_SILICON_VER_1_0 "0x0" -set PCW_SILICON_VER_2_0 "0x1" -set PCW_SILICON_VER_3_0 "0x2" - - - -proc mask_poll { addr mask } { - set count 1 - set curval "0x[string range [mrd $addr] end-8 end]" - set maskedval [expr {$curval & $mask}] - while { $maskedval == 0 } { - set curval "0x[string range [mrd $addr] end-8 end]" - set maskedval [expr {$curval & $mask}] - set count [ expr { $count + 1 } ] - if { $count == 100000000 } { - puts "Timeout Reached. Mask poll failed at ADDRESS: $addr MASK: $mask" - break - } - } -} - -proc ps_version { } { - set si_ver "0x[string range [mrd 0xF8007080] end-8 end]" - set mask_sil_ver "0x[expr {$si_ver >> 28}]" - return $mask_sil_ver; -} - -proc ps7_post_config {} { - variable PCW_SILICON_VER_1_0 - variable PCW_SILICON_VER_2_0 - variable PCW_SILICON_VER_3_0 - set sil_ver [ps_version] - - if { $sil_ver == $PCW_SILICON_VER_1_0} { - ps7_post_config_1_0 - } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { - ps7_post_config_2_0 - } else { - ps7_post_config_3_0 - } -} - -proc ps7_init {} { - variable PCW_SILICON_VER_1_0 - variable PCW_SILICON_VER_2_0 - variable PCW_SILICON_VER_3_0 - set sil_ver [ps_version] - - if { $sil_ver == $PCW_SILICON_VER_1_0} { - ps7_mio_init_data_1_0 - ps7_pll_init_data_1_0 - ps7_clock_init_data_1_0 - ps7_ddr_init_data_1_0 - ps7_peripherals_init_data_1_0 - #puts "PCW Silicon Version : 1.0" - } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { - ps7_mio_init_data_2_0 - ps7_pll_init_data_2_0 - ps7_clock_init_data_2_0 - ps7_ddr_init_data_2_0 - ps7_peripherals_init_data_2_0 - #puts "PCW Silicon Version : 2.0" - } else { - ps7_mio_init_data_3_0 - ps7_pll_init_data_3_0 - ps7_clock_init_data_3_0 - ps7_ddr_init_data_3_0 - ps7_peripherals_init_data_3_0 - #puts "PCW Silicon Version : 3.0" - } -} diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/system.xml b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/system.xml deleted file mode 100644 index d44b5a36f..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/system.xml +++ /dev/null @@ -1,6164 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -