]> localhost Git - SCSI2SD.git/commitdiff
Use DMA for SCSI and SD card transfers for a massive performance boost.
authorMichael McMaster <michael@codesrc.com>
Fri, 30 May 2014 01:09:55 +0000 (11:09 +1000)
committerMichael McMaster <michael@codesrc.com>
Fri, 30 May 2014 01:09:55 +0000 (11:09 +1000)
54 files changed:
CHANGELOG
readme.txt
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_COMPLETE.c [new file with mode: 0644]
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_COMPLETE.h [new file with mode: 0644]
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_dma.c [new file with mode: 0644]
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_dma.h [new file with mode: 0644]
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_TX_COMPLETE.c [new file with mode: 0644]
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_TX_COMPLETE.h [new file with mode: 0644]
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_COMPLETE.c [new file with mode: 0644]
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_COMPLETE.h [new file with mode: 0644]
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_dma.c [new file with mode: 0644]
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_dma.h [new file with mode: 0644]
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SDCard.h [changed mode: 0755->0644]
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_Clk_Ctl.c [deleted file]
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_Clk_Ctl.h [deleted file]
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_Init_Clk.c [deleted file]
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_Init_Clk.h [deleted file]
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_RX_DMA_COMPLETE.c [new file with mode: 0644]
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_RX_DMA_COMPLETE.h [new file with mode: 0644]
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_RX_DMA_dma.c [new file with mode: 0644]
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_RX_DMA_dma.h [new file with mode: 0644]
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_TX_DMA_COMPLETE.c [new file with mode: 0644]
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_TX_DMA_COMPLETE.h [new file with mode: 0644]
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_TX_DMA_dma.c [new file with mode: 0644]
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_TX_DMA_dma.h [new file with mode: 0644]
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitter.h [changed mode: 0755->0644]
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitter_cfg.c [changed mode: 0755->0644]
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfittergnu.inc [changed mode: 0755->0644]
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitteriar.inc [changed mode: 0755->0644]
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitterrv.inc [changed mode: 0755->0644]
software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/project.h [changed mode: 0755->0644]
software/SCSI2SD/SCSI2SD.cydsn/SCSI2SD.cycdx [changed mode: 0755->0644]
software/SCSI2SD/SCSI2SD.cydsn/SCSI2SD.cydwr
software/SCSI2SD/SCSI2SD.cydsn/SCSI2SD.cyfit [changed mode: 0755->0644]
software/SCSI2SD/SCSI2SD.cydsn/SCSI2SD.cyprj
software/SCSI2SD/SCSI2SD.cydsn/SCSI2SD.svd [changed mode: 0755->0644]
software/SCSI2SD/SCSI2SD.cydsn/TopDesign/TopDesign.cysch
software/SCSI2SD/SCSI2SD.cydsn/scsiTarget/scsiTarget.cysym
software/SCSI2SD/SCSI2SD.cydsn/scsiTarget/scsiTarget.v
software/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoCCreatorExportIDE.xml
software/SCSI2SD/USB_Bootloader.cydsn/USB_Bootloader.cycdx [changed mode: 0755->0644]
software/SCSI2SD/USB_Bootloader.cydsn/USB_Bootloader.cyfit [changed mode: 0755->0644]
software/SCSI2SD/USB_Bootloader.cydsn/USB_Bootloader.cyprj.Micha_000
software/SCSI2SD/USB_Bootloader.cydsn/USB_Bootloader.rpt [changed mode: 0755->0644]
software/SCSI2SD/USB_Bootloader.cydsn/USB_Bootloader.svd [changed mode: 0755->0644]
software/SCSI2SD/USB_Bootloader.cydsn/USB_Bootloader_timing.html [changed mode: 0755->0644]
software/SCSI2SD/src/diagnostic.c
software/SCSI2SD/src/diagnostic.h
software/SCSI2SD/src/disk.c
software/SCSI2SD/src/scsi.c
software/SCSI2SD/src/scsiPhy.c
software/SCSI2SD/src/scsiPhy.h
software/SCSI2SD/src/sd.c
software/SCSI2SD/src/sd.h

index 9f3b3f0377029b7aa875fd20b4bf50ce768b0c66..978feca0d52a3cf7cac42bf7cc6a79d879f1914e 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,8 @@
+201404xx               3.5
+       - Fixed several performance issues. Transfer rates up to 2.5MB/s are now
+       possible.
+       - Implemented the READ BUFFER scsi command for performance testing purposes.
+
 20140418               3.4
        - Critical fix for writes when using non-standard block sizes.
        - Fix to ensure SCSI phase bits are set atomically.
index b93b0872aa4c9ef3fb94aa938ab0c4622fd8f991..a57e45113fdee3de4d29c679d060459d777d14c6 100644 (file)
@@ -45,7 +45,7 @@ Performance
 
 As currently implemented:
 
-Sequential read: 930kb/sec Sequential write: 900kb/sec
+Sequential read: 2.5MB/s Sequential write: 900kb/sec
 
 Tested with a 16GB class 10 SD card, via the commands:
 
diff --git a/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_COMPLETE.c b/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_COMPLETE.c
new file mode 100644 (file)
index 0000000..f3a7008
--- /dev/null
@@ -0,0 +1,356 @@
+/*******************************************************************************
+* File Name: SCSI_RX_DMA_COMPLETE.c  
+* Version 1.70
+*
+*  Description:
+*   API for controlling the state of an interrupt.
+*
+*
+*  Note:
+*
+********************************************************************************
+* Copyright 2008-2012, Cypress Semiconductor Corporation.  All rights reserved.
+* You may use this file only in accordance with the license, terms, conditions, 
+* disclaimers, and limitations in the end user license agreement accompanying 
+* the software package with which this file was provided.
+*******************************************************************************/
+
+
+#include <cydevice_trm.h>
+#include <CyLib.h>
+#include <SCSI_RX_DMA_COMPLETE.h>
+
+#if !defined(SCSI_RX_DMA_COMPLETE__REMOVED) /* Check for removal by optimization */
+
+/*******************************************************************************
+*  Place your includes, defines and code here 
+********************************************************************************/
+/* `#START SCSI_RX_DMA_COMPLETE_intc` */
+
+/* `#END` */
+
+#ifndef CYINT_IRQ_BASE
+#define CYINT_IRQ_BASE      16
+#endif /* CYINT_IRQ_BASE */
+#ifndef CYINT_VECT_TABLE
+#define CYINT_VECT_TABLE    ((cyisraddress **) CYREG_NVIC_VECT_OFFSET)
+#endif /* CYINT_VECT_TABLE */
+
+/* Declared in startup, used to set unused interrupts to. */
+CY_ISR_PROTO(IntDefaultHandler);
+
+
+/*******************************************************************************
+* Function Name: SCSI_RX_DMA_COMPLETE_Start
+********************************************************************************
+*
+* Summary:
+*  Set up the interrupt and enable it.
+*
+* Parameters:  
+*   None
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SCSI_RX_DMA_COMPLETE_Start(void)
+{
+    /* For all we know the interrupt is active. */
+    SCSI_RX_DMA_COMPLETE_Disable();
+
+    /* Set the ISR to point to the SCSI_RX_DMA_COMPLETE Interrupt. */
+    SCSI_RX_DMA_COMPLETE_SetVector(&SCSI_RX_DMA_COMPLETE_Interrupt);
+
+    /* Set the priority. */
+    SCSI_RX_DMA_COMPLETE_SetPriority((uint8)SCSI_RX_DMA_COMPLETE_INTC_PRIOR_NUMBER);
+
+    /* Enable it. */
+    SCSI_RX_DMA_COMPLETE_Enable();
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_RX_DMA_COMPLETE_StartEx
+********************************************************************************
+*
+* Summary:
+*  Set up the interrupt and enable it.
+*
+* Parameters:  
+*   address: Address of the ISR to set in the interrupt vector table.
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SCSI_RX_DMA_COMPLETE_StartEx(cyisraddress address)
+{
+    /* For all we know the interrupt is active. */
+    SCSI_RX_DMA_COMPLETE_Disable();
+
+    /* Set the ISR to point to the SCSI_RX_DMA_COMPLETE Interrupt. */
+    SCSI_RX_DMA_COMPLETE_SetVector(address);
+
+    /* Set the priority. */
+    SCSI_RX_DMA_COMPLETE_SetPriority((uint8)SCSI_RX_DMA_COMPLETE_INTC_PRIOR_NUMBER);
+
+    /* Enable it. */
+    SCSI_RX_DMA_COMPLETE_Enable();
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_RX_DMA_COMPLETE_Stop
+********************************************************************************
+*
+* Summary:
+*   Disables and removes the interrupt.
+*
+* Parameters:  
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SCSI_RX_DMA_COMPLETE_Stop(void)
+{
+    /* Disable this interrupt. */
+    SCSI_RX_DMA_COMPLETE_Disable();
+
+    /* Set the ISR to point to the passive one. */
+    SCSI_RX_DMA_COMPLETE_SetVector(&IntDefaultHandler);
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_RX_DMA_COMPLETE_Interrupt
+********************************************************************************
+*
+* Summary:
+*   The default Interrupt Service Routine for SCSI_RX_DMA_COMPLETE.
+*
+*   Add custom code between the coments to keep the next version of this file
+*   from over writting your code.
+*
+* Parameters:  
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+CY_ISR(SCSI_RX_DMA_COMPLETE_Interrupt)
+{
+    /*  Place your Interrupt code here. */
+    /* `#START SCSI_RX_DMA_COMPLETE_Interrupt` */
+
+    /* `#END` */
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_RX_DMA_COMPLETE_SetVector
+********************************************************************************
+*
+* Summary:
+*   Change the ISR vector for the Interrupt. Note calling SCSI_RX_DMA_COMPLETE_Start
+*   will override any effect this method would have had. To set the vector 
+*   before the component has been started use SCSI_RX_DMA_COMPLETE_StartEx instead.
+*
+* Parameters:
+*   address: Address of the ISR to set in the interrupt vector table.
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SCSI_RX_DMA_COMPLETE_SetVector(cyisraddress address)
+{
+    cyisraddress * ramVectorTable;
+
+    ramVectorTable = (cyisraddress *) *CYINT_VECT_TABLE;
+
+    ramVectorTable[CYINT_IRQ_BASE + (uint32)SCSI_RX_DMA_COMPLETE__INTC_NUMBER] = address;
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_RX_DMA_COMPLETE_GetVector
+********************************************************************************
+*
+* Summary:
+*   Gets the "address" of the current ISR vector for the Interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   Address of the ISR in the interrupt vector table.
+*
+*******************************************************************************/
+cyisraddress SCSI_RX_DMA_COMPLETE_GetVector(void)
+{
+    cyisraddress * ramVectorTable;
+
+    ramVectorTable = (cyisraddress *) *CYINT_VECT_TABLE;
+
+    return ramVectorTable[CYINT_IRQ_BASE + (uint32)SCSI_RX_DMA_COMPLETE__INTC_NUMBER];
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_RX_DMA_COMPLETE_SetPriority
+********************************************************************************
+*
+* Summary:
+*   Sets the Priority of the Interrupt. Note calling SCSI_RX_DMA_COMPLETE_Start
+*   or SCSI_RX_DMA_COMPLETE_StartEx will override any effect this method 
+*   would have had. This method should only be called after 
+*   SCSI_RX_DMA_COMPLETE_Start or SCSI_RX_DMA_COMPLETE_StartEx has been called. To set 
+*   the initial priority for the component use the cydwr file in the tool.
+*
+* Parameters:
+*   priority: Priority of the interrupt. 0 - 7, 0 being the highest.
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SCSI_RX_DMA_COMPLETE_SetPriority(uint8 priority)
+{
+    *SCSI_RX_DMA_COMPLETE_INTC_PRIOR = priority << 5;
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_RX_DMA_COMPLETE_GetPriority
+********************************************************************************
+*
+* Summary:
+*   Gets the Priority of the Interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   Priority of the interrupt. 0 - 7, 0 being the highest.
+*
+*******************************************************************************/
+uint8 SCSI_RX_DMA_COMPLETE_GetPriority(void)
+{
+    uint8 priority;
+
+
+    priority = *SCSI_RX_DMA_COMPLETE_INTC_PRIOR >> 5;
+
+    return priority;
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_RX_DMA_COMPLETE_Enable
+********************************************************************************
+*
+* Summary:
+*   Enables the interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SCSI_RX_DMA_COMPLETE_Enable(void)
+{
+    /* Enable the general interrupt. */
+    *SCSI_RX_DMA_COMPLETE_INTC_SET_EN = SCSI_RX_DMA_COMPLETE__INTC_MASK;
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_RX_DMA_COMPLETE_GetState
+********************************************************************************
+*
+* Summary:
+*   Gets the state (enabled, disabled) of the Interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   1 if enabled, 0 if disabled.
+*
+*******************************************************************************/
+uint8 SCSI_RX_DMA_COMPLETE_GetState(void)
+{
+    /* Get the state of the general interrupt. */
+    return ((*SCSI_RX_DMA_COMPLETE_INTC_SET_EN & (uint32)SCSI_RX_DMA_COMPLETE__INTC_MASK) != 0u) ? 1u:0u;
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_RX_DMA_COMPLETE_Disable
+********************************************************************************
+*
+* Summary:
+*   Disables the Interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SCSI_RX_DMA_COMPLETE_Disable(void)
+{
+    /* Disable the general interrupt. */
+    *SCSI_RX_DMA_COMPLETE_INTC_CLR_EN = SCSI_RX_DMA_COMPLETE__INTC_MASK;
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_RX_DMA_COMPLETE_SetPending
+********************************************************************************
+*
+* Summary:
+*   Causes the Interrupt to enter the pending state, a software method of
+*   generating the interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SCSI_RX_DMA_COMPLETE_SetPending(void)
+{
+    *SCSI_RX_DMA_COMPLETE_INTC_SET_PD = SCSI_RX_DMA_COMPLETE__INTC_MASK;
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_RX_DMA_COMPLETE_ClearPending
+********************************************************************************
+*
+* Summary:
+*   Clears a pending interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SCSI_RX_DMA_COMPLETE_ClearPending(void)
+{
+    *SCSI_RX_DMA_COMPLETE_INTC_CLR_PD = SCSI_RX_DMA_COMPLETE__INTC_MASK;
+}
+
+#endif /* End check for removal by optimization */
+
+
+/* [] END OF FILE */
diff --git a/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_COMPLETE.h b/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_COMPLETE.h
new file mode 100644 (file)
index 0000000..1d9e146
--- /dev/null
@@ -0,0 +1,70 @@
+/*******************************************************************************
+* File Name: SCSI_RX_DMA_COMPLETE.h
+* Version 1.70
+*
+*  Description:
+*   Provides the function definitions for the Interrupt Controller.
+*
+*
+********************************************************************************
+* Copyright 2008-2012, Cypress Semiconductor Corporation.  All rights reserved.
+* You may use this file only in accordance with the license, terms, conditions, 
+* disclaimers, and limitations in the end user license agreement accompanying 
+* the software package with which this file was provided.
+*******************************************************************************/
+#if !defined(CY_ISR_SCSI_RX_DMA_COMPLETE_H)
+#define CY_ISR_SCSI_RX_DMA_COMPLETE_H
+
+
+#include <cytypes.h>
+#include <cyfitter.h>
+
+/* Interrupt Controller API. */
+void SCSI_RX_DMA_COMPLETE_Start(void);
+void SCSI_RX_DMA_COMPLETE_StartEx(cyisraddress address);
+void SCSI_RX_DMA_COMPLETE_Stop(void);
+
+CY_ISR_PROTO(SCSI_RX_DMA_COMPLETE_Interrupt);
+
+void SCSI_RX_DMA_COMPLETE_SetVector(cyisraddress address);
+cyisraddress SCSI_RX_DMA_COMPLETE_GetVector(void);
+
+void SCSI_RX_DMA_COMPLETE_SetPriority(uint8 priority);
+uint8 SCSI_RX_DMA_COMPLETE_GetPriority(void);
+
+void SCSI_RX_DMA_COMPLETE_Enable(void);
+uint8 SCSI_RX_DMA_COMPLETE_GetState(void);
+void SCSI_RX_DMA_COMPLETE_Disable(void);
+
+void SCSI_RX_DMA_COMPLETE_SetPending(void);
+void SCSI_RX_DMA_COMPLETE_ClearPending(void);
+
+
+/* Interrupt Controller Constants */
+
+/* Address of the INTC.VECT[x] register that contains the Address of the SCSI_RX_DMA_COMPLETE ISR. */
+#define SCSI_RX_DMA_COMPLETE_INTC_VECTOR            ((reg32 *) SCSI_RX_DMA_COMPLETE__INTC_VECT)
+
+/* Address of the SCSI_RX_DMA_COMPLETE ISR priority. */
+#define SCSI_RX_DMA_COMPLETE_INTC_PRIOR             ((reg8 *) SCSI_RX_DMA_COMPLETE__INTC_PRIOR_REG)
+
+/* Priority of the SCSI_RX_DMA_COMPLETE interrupt. */
+#define SCSI_RX_DMA_COMPLETE_INTC_PRIOR_NUMBER      SCSI_RX_DMA_COMPLETE__INTC_PRIOR_NUM
+
+/* Address of the INTC.SET_EN[x] byte to bit enable SCSI_RX_DMA_COMPLETE interrupt. */
+#define SCSI_RX_DMA_COMPLETE_INTC_SET_EN            ((reg32 *) SCSI_RX_DMA_COMPLETE__INTC_SET_EN_REG)
+
+/* Address of the INTC.CLR_EN[x] register to bit clear the SCSI_RX_DMA_COMPLETE interrupt. */
+#define SCSI_RX_DMA_COMPLETE_INTC_CLR_EN            ((reg32 *) SCSI_RX_DMA_COMPLETE__INTC_CLR_EN_REG)
+
+/* Address of the INTC.SET_PD[x] register to set the SCSI_RX_DMA_COMPLETE interrupt state to pending. */
+#define SCSI_RX_DMA_COMPLETE_INTC_SET_PD            ((reg32 *) SCSI_RX_DMA_COMPLETE__INTC_SET_PD_REG)
+
+/* Address of the INTC.CLR_PD[x] register to clear the SCSI_RX_DMA_COMPLETE interrupt. */
+#define SCSI_RX_DMA_COMPLETE_INTC_CLR_PD            ((reg32 *) SCSI_RX_DMA_COMPLETE__INTC_CLR_PD_REG)
+
+
+#endif /* CY_ISR_SCSI_RX_DMA_COMPLETE_H */
+
+
+/* [] END OF FILE */
diff --git a/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_dma.c b/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_dma.c
new file mode 100644 (file)
index 0000000..6bdb2ea
--- /dev/null
@@ -0,0 +1,141 @@
+/***************************************************************************
+* File Name: SCSI_RX_DMA_dma.c  
+* Version 1.70
+*
+*  Description:
+*   Provides an API for the DMAC component. The API includes functions
+*   for the DMA controller, DMA channels and Transfer Descriptors.
+*
+*
+*   Note:
+*     This module requires the developer to finish or fill in the auto
+*     generated funcions and setup the dma channel and TD's.
+*
+********************************************************************************
+* Copyright 2008-2010, Cypress Semiconductor Corporation.  All rights reserved.
+* You may use this file only in accordance with the license, terms, conditions, 
+* disclaimers, and limitations in the end user license agreement accompanying 
+* the software package with which this file was provided.
+********************************************************************************/
+#include <CYLIB.H>
+#include <CYDMAC.H>
+#include <SCSI_RX_DMA_dma.H>
+
+
+
+/****************************************************************************
+* 
+* The following defines are available in Cyfitter.h
+* 
+* 
+* 
+* SCSI_RX_DMA__DRQ_CTL_REG
+* 
+* 
+* SCSI_RX_DMA__DRQ_NUMBER
+* 
+* Number of TD's used by this channel.
+* SCSI_RX_DMA__NUMBEROF_TDS
+* 
+* Priority of this channel.
+* SCSI_RX_DMA__PRIORITY
+* 
+* True if SCSI_RX_DMA_TERMIN_SEL is used.
+* SCSI_RX_DMA__TERMIN_EN
+* 
+* TERMIN interrupt line to signal terminate.
+* SCSI_RX_DMA__TERMIN_SEL
+* 
+* 
+* True if SCSI_RX_DMA_TERMOUT0_SEL is used.
+* SCSI_RX_DMA__TERMOUT0_EN
+* 
+* 
+* TERMOUT0 interrupt line to signal completion.
+* SCSI_RX_DMA__TERMOUT0_SEL
+* 
+* 
+* True if SCSI_RX_DMA_TERMOUT1_SEL is used.
+* SCSI_RX_DMA__TERMOUT1_EN
+* 
+* 
+* TERMOUT1 interrupt line to signal completion.
+* SCSI_RX_DMA__TERMOUT1_SEL
+* 
+****************************************************************************/
+
+
+/* Zero based index of SCSI_RX_DMA dma channel */
+uint8 SCSI_RX_DMA_DmaHandle = DMA_INVALID_CHANNEL;
+
+/*********************************************************************
+* Function Name: uint8 SCSI_RX_DMA_DmaInitalize
+**********************************************************************
+* Summary:
+*   Allocates and initialises a channel of the DMAC to be used by the
+*   caller.
+*
+* Parameters:
+*   BurstCount.
+*       
+*       
+*   ReqestPerBurst.
+*       
+*       
+*   UpperSrcAddress.
+*       
+*       
+*   UpperDestAddress.
+*       
+*
+* Return:
+*   The channel that can be used by the caller for DMA activity.
+*   DMA_INVALID_CHANNEL (0xFF) if there are no channels left. 
+*
+*
+*******************************************************************/
+uint8 SCSI_RX_DMA_DmaInitialize(uint8 BurstCount, uint8 ReqestPerBurst, uint16 UpperSrcAddress, uint16 UpperDestAddress) 
+{
+
+    /* Allocate a DMA channel. */
+    SCSI_RX_DMA_DmaHandle = (uint8)SCSI_RX_DMA__DRQ_NUMBER;
+
+    /* Configure the channel. */
+    (void)CyDmaChSetConfiguration(SCSI_RX_DMA_DmaHandle,
+                                  BurstCount,
+                                  ReqestPerBurst,
+                                  (uint8)SCSI_RX_DMA__TERMOUT0_SEL,
+                                  (uint8)SCSI_RX_DMA__TERMOUT1_SEL,
+                                  (uint8)SCSI_RX_DMA__TERMIN_SEL);
+
+    /* Set the extended address for the transfers */
+    (void)CyDmaChSetExtendedAddress(SCSI_RX_DMA_DmaHandle, UpperSrcAddress, UpperDestAddress);
+
+    /* Set the priority for this channel */
+    (void)CyDmaChPriority(SCSI_RX_DMA_DmaHandle, (uint8)SCSI_RX_DMA__PRIORITY);
+    
+    return SCSI_RX_DMA_DmaHandle;
+}
+
+/*********************************************************************
+* Function Name: void SCSI_RX_DMA_DmaRelease
+**********************************************************************
+* Summary:
+*   Frees the channel associated with SCSI_RX_DMA.
+*
+*
+* Parameters:
+*   void.
+*
+*
+*
+* Return:
+*   void.
+*
+*******************************************************************/
+void SCSI_RX_DMA_DmaRelease(void) 
+{
+    /* Disable the channel */
+    (void)CyDmaChDisable(SCSI_RX_DMA_DmaHandle);
+}
+
diff --git a/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_dma.h b/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_dma.h
new file mode 100644 (file)
index 0000000..4030614
--- /dev/null
@@ -0,0 +1,35 @@
+/******************************************************************************
+* File Name: SCSI_RX_DMA_dma.h  
+* Version 1.70
+*
+*  Description:
+*   Provides the function definitions for the DMA Controller.
+*
+*
+********************************************************************************
+* Copyright 2008-2010, Cypress Semiconductor Corporation.  All rights reserved.
+* You may use this file only in accordance with the license, terms, conditions, 
+* disclaimers, and limitations in the end user license agreement accompanying 
+* the software package with which this file was provided.
+********************************************************************************/
+#if !defined(CY_DMA_SCSI_RX_DMA_DMA_H__)
+#define CY_DMA_SCSI_RX_DMA_DMA_H__
+
+
+
+#include <CYDMAC.H>
+#include <CYFITTER.H>
+
+#define SCSI_RX_DMA__TD_TERMOUT_EN (((0 != SCSI_RX_DMA__TERMOUT0_EN) ? TD_TERMOUT0_EN : 0) | \
+    (SCSI_RX_DMA__TERMOUT1_EN ? TD_TERMOUT1_EN : 0))
+
+/* Zero based index of SCSI_RX_DMA dma channel */
+extern uint8 SCSI_RX_DMA_DmaHandle;
+
+
+uint8 SCSI_RX_DMA_DmaInitialize(uint8 BurstCount, uint8 ReqestPerBurst, uint16 UpperSrcAddress, uint16 UpperDestAddress) ;
+void  SCSI_RX_DMA_DmaRelease(void) ;
+
+
+/* CY_DMA_SCSI_RX_DMA_DMA_H__ */
+#endif
diff --git a/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_TX_COMPLETE.c b/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_TX_COMPLETE.c
new file mode 100644 (file)
index 0000000..401086b
--- /dev/null
@@ -0,0 +1,356 @@
+/*******************************************************************************
+* File Name: SCSI_TX_COMPLETE.c  
+* Version 1.70
+*
+*  Description:
+*   API for controlling the state of an interrupt.
+*
+*
+*  Note:
+*
+********************************************************************************
+* Copyright 2008-2012, Cypress Semiconductor Corporation.  All rights reserved.
+* You may use this file only in accordance with the license, terms, conditions, 
+* disclaimers, and limitations in the end user license agreement accompanying 
+* the software package with which this file was provided.
+*******************************************************************************/
+
+
+#include <cydevice_trm.h>
+#include <CyLib.h>
+#include <SCSI_TX_COMPLETE.h>
+
+#if !defined(SCSI_TX_COMPLETE__REMOVED) /* Check for removal by optimization */
+
+/*******************************************************************************
+*  Place your includes, defines and code here 
+********************************************************************************/
+/* `#START SCSI_TX_COMPLETE_intc` */
+
+/* `#END` */
+
+#ifndef CYINT_IRQ_BASE
+#define CYINT_IRQ_BASE      16
+#endif /* CYINT_IRQ_BASE */
+#ifndef CYINT_VECT_TABLE
+#define CYINT_VECT_TABLE    ((cyisraddress **) CYREG_NVIC_VECT_OFFSET)
+#endif /* CYINT_VECT_TABLE */
+
+/* Declared in startup, used to set unused interrupts to. */
+CY_ISR_PROTO(IntDefaultHandler);
+
+
+/*******************************************************************************
+* Function Name: SCSI_TX_COMPLETE_Start
+********************************************************************************
+*
+* Summary:
+*  Set up the interrupt and enable it.
+*
+* Parameters:  
+*   None
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SCSI_TX_COMPLETE_Start(void)
+{
+    /* For all we know the interrupt is active. */
+    SCSI_TX_COMPLETE_Disable();
+
+    /* Set the ISR to point to the SCSI_TX_COMPLETE Interrupt. */
+    SCSI_TX_COMPLETE_SetVector(&SCSI_TX_COMPLETE_Interrupt);
+
+    /* Set the priority. */
+    SCSI_TX_COMPLETE_SetPriority((uint8)SCSI_TX_COMPLETE_INTC_PRIOR_NUMBER);
+
+    /* Enable it. */
+    SCSI_TX_COMPLETE_Enable();
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_TX_COMPLETE_StartEx
+********************************************************************************
+*
+* Summary:
+*  Set up the interrupt and enable it.
+*
+* Parameters:  
+*   address: Address of the ISR to set in the interrupt vector table.
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SCSI_TX_COMPLETE_StartEx(cyisraddress address)
+{
+    /* For all we know the interrupt is active. */
+    SCSI_TX_COMPLETE_Disable();
+
+    /* Set the ISR to point to the SCSI_TX_COMPLETE Interrupt. */
+    SCSI_TX_COMPLETE_SetVector(address);
+
+    /* Set the priority. */
+    SCSI_TX_COMPLETE_SetPriority((uint8)SCSI_TX_COMPLETE_INTC_PRIOR_NUMBER);
+
+    /* Enable it. */
+    SCSI_TX_COMPLETE_Enable();
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_TX_COMPLETE_Stop
+********************************************************************************
+*
+* Summary:
+*   Disables and removes the interrupt.
+*
+* Parameters:  
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SCSI_TX_COMPLETE_Stop(void)
+{
+    /* Disable this interrupt. */
+    SCSI_TX_COMPLETE_Disable();
+
+    /* Set the ISR to point to the passive one. */
+    SCSI_TX_COMPLETE_SetVector(&IntDefaultHandler);
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_TX_COMPLETE_Interrupt
+********************************************************************************
+*
+* Summary:
+*   The default Interrupt Service Routine for SCSI_TX_COMPLETE.
+*
+*   Add custom code between the coments to keep the next version of this file
+*   from over writting your code.
+*
+* Parameters:  
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+CY_ISR(SCSI_TX_COMPLETE_Interrupt)
+{
+    /*  Place your Interrupt code here. */
+    /* `#START SCSI_TX_COMPLETE_Interrupt` */
+
+    /* `#END` */
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_TX_COMPLETE_SetVector
+********************************************************************************
+*
+* Summary:
+*   Change the ISR vector for the Interrupt. Note calling SCSI_TX_COMPLETE_Start
+*   will override any effect this method would have had. To set the vector 
+*   before the component has been started use SCSI_TX_COMPLETE_StartEx instead.
+*
+* Parameters:
+*   address: Address of the ISR to set in the interrupt vector table.
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SCSI_TX_COMPLETE_SetVector(cyisraddress address)
+{
+    cyisraddress * ramVectorTable;
+
+    ramVectorTable = (cyisraddress *) *CYINT_VECT_TABLE;
+
+    ramVectorTable[CYINT_IRQ_BASE + (uint32)SCSI_TX_COMPLETE__INTC_NUMBER] = address;
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_TX_COMPLETE_GetVector
+********************************************************************************
+*
+* Summary:
+*   Gets the "address" of the current ISR vector for the Interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   Address of the ISR in the interrupt vector table.
+*
+*******************************************************************************/
+cyisraddress SCSI_TX_COMPLETE_GetVector(void)
+{
+    cyisraddress * ramVectorTable;
+
+    ramVectorTable = (cyisraddress *) *CYINT_VECT_TABLE;
+
+    return ramVectorTable[CYINT_IRQ_BASE + (uint32)SCSI_TX_COMPLETE__INTC_NUMBER];
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_TX_COMPLETE_SetPriority
+********************************************************************************
+*
+* Summary:
+*   Sets the Priority of the Interrupt. Note calling SCSI_TX_COMPLETE_Start
+*   or SCSI_TX_COMPLETE_StartEx will override any effect this method 
+*   would have had. This method should only be called after 
+*   SCSI_TX_COMPLETE_Start or SCSI_TX_COMPLETE_StartEx has been called. To set 
+*   the initial priority for the component use the cydwr file in the tool.
+*
+* Parameters:
+*   priority: Priority of the interrupt. 0 - 7, 0 being the highest.
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SCSI_TX_COMPLETE_SetPriority(uint8 priority)
+{
+    *SCSI_TX_COMPLETE_INTC_PRIOR = priority << 5;
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_TX_COMPLETE_GetPriority
+********************************************************************************
+*
+* Summary:
+*   Gets the Priority of the Interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   Priority of the interrupt. 0 - 7, 0 being the highest.
+*
+*******************************************************************************/
+uint8 SCSI_TX_COMPLETE_GetPriority(void)
+{
+    uint8 priority;
+
+
+    priority = *SCSI_TX_COMPLETE_INTC_PRIOR >> 5;
+
+    return priority;
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_TX_COMPLETE_Enable
+********************************************************************************
+*
+* Summary:
+*   Enables the interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SCSI_TX_COMPLETE_Enable(void)
+{
+    /* Enable the general interrupt. */
+    *SCSI_TX_COMPLETE_INTC_SET_EN = SCSI_TX_COMPLETE__INTC_MASK;
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_TX_COMPLETE_GetState
+********************************************************************************
+*
+* Summary:
+*   Gets the state (enabled, disabled) of the Interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   1 if enabled, 0 if disabled.
+*
+*******************************************************************************/
+uint8 SCSI_TX_COMPLETE_GetState(void)
+{
+    /* Get the state of the general interrupt. */
+    return ((*SCSI_TX_COMPLETE_INTC_SET_EN & (uint32)SCSI_TX_COMPLETE__INTC_MASK) != 0u) ? 1u:0u;
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_TX_COMPLETE_Disable
+********************************************************************************
+*
+* Summary:
+*   Disables the Interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SCSI_TX_COMPLETE_Disable(void)
+{
+    /* Disable the general interrupt. */
+    *SCSI_TX_COMPLETE_INTC_CLR_EN = SCSI_TX_COMPLETE__INTC_MASK;
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_TX_COMPLETE_SetPending
+********************************************************************************
+*
+* Summary:
+*   Causes the Interrupt to enter the pending state, a software method of
+*   generating the interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SCSI_TX_COMPLETE_SetPending(void)
+{
+    *SCSI_TX_COMPLETE_INTC_SET_PD = SCSI_TX_COMPLETE__INTC_MASK;
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_TX_COMPLETE_ClearPending
+********************************************************************************
+*
+* Summary:
+*   Clears a pending interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SCSI_TX_COMPLETE_ClearPending(void)
+{
+    *SCSI_TX_COMPLETE_INTC_CLR_PD = SCSI_TX_COMPLETE__INTC_MASK;
+}
+
+#endif /* End check for removal by optimization */
+
+
+/* [] END OF FILE */
diff --git a/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_TX_COMPLETE.h b/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_TX_COMPLETE.h
new file mode 100644 (file)
index 0000000..ea4d934
--- /dev/null
@@ -0,0 +1,70 @@
+/*******************************************************************************
+* File Name: SCSI_TX_COMPLETE.h
+* Version 1.70
+*
+*  Description:
+*   Provides the function definitions for the Interrupt Controller.
+*
+*
+********************************************************************************
+* Copyright 2008-2012, Cypress Semiconductor Corporation.  All rights reserved.
+* You may use this file only in accordance with the license, terms, conditions, 
+* disclaimers, and limitations in the end user license agreement accompanying 
+* the software package with which this file was provided.
+*******************************************************************************/
+#if !defined(CY_ISR_SCSI_TX_COMPLETE_H)
+#define CY_ISR_SCSI_TX_COMPLETE_H
+
+
+#include <cytypes.h>
+#include <cyfitter.h>
+
+/* Interrupt Controller API. */
+void SCSI_TX_COMPLETE_Start(void);
+void SCSI_TX_COMPLETE_StartEx(cyisraddress address);
+void SCSI_TX_COMPLETE_Stop(void);
+
+CY_ISR_PROTO(SCSI_TX_COMPLETE_Interrupt);
+
+void SCSI_TX_COMPLETE_SetVector(cyisraddress address);
+cyisraddress SCSI_TX_COMPLETE_GetVector(void);
+
+void SCSI_TX_COMPLETE_SetPriority(uint8 priority);
+uint8 SCSI_TX_COMPLETE_GetPriority(void);
+
+void SCSI_TX_COMPLETE_Enable(void);
+uint8 SCSI_TX_COMPLETE_GetState(void);
+void SCSI_TX_COMPLETE_Disable(void);
+
+void SCSI_TX_COMPLETE_SetPending(void);
+void SCSI_TX_COMPLETE_ClearPending(void);
+
+
+/* Interrupt Controller Constants */
+
+/* Address of the INTC.VECT[x] register that contains the Address of the SCSI_TX_COMPLETE ISR. */
+#define SCSI_TX_COMPLETE_INTC_VECTOR            ((reg32 *) SCSI_TX_COMPLETE__INTC_VECT)
+
+/* Address of the SCSI_TX_COMPLETE ISR priority. */
+#define SCSI_TX_COMPLETE_INTC_PRIOR             ((reg8 *) SCSI_TX_COMPLETE__INTC_PRIOR_REG)
+
+/* Priority of the SCSI_TX_COMPLETE interrupt. */
+#define SCSI_TX_COMPLETE_INTC_PRIOR_NUMBER      SCSI_TX_COMPLETE__INTC_PRIOR_NUM
+
+/* Address of the INTC.SET_EN[x] byte to bit enable SCSI_TX_COMPLETE interrupt. */
+#define SCSI_TX_COMPLETE_INTC_SET_EN            ((reg32 *) SCSI_TX_COMPLETE__INTC_SET_EN_REG)
+
+/* Address of the INTC.CLR_EN[x] register to bit clear the SCSI_TX_COMPLETE interrupt. */
+#define SCSI_TX_COMPLETE_INTC_CLR_EN            ((reg32 *) SCSI_TX_COMPLETE__INTC_CLR_EN_REG)
+
+/* Address of the INTC.SET_PD[x] register to set the SCSI_TX_COMPLETE interrupt state to pending. */
+#define SCSI_TX_COMPLETE_INTC_SET_PD            ((reg32 *) SCSI_TX_COMPLETE__INTC_SET_PD_REG)
+
+/* Address of the INTC.CLR_PD[x] register to clear the SCSI_TX_COMPLETE interrupt. */
+#define SCSI_TX_COMPLETE_INTC_CLR_PD            ((reg32 *) SCSI_TX_COMPLETE__INTC_CLR_PD_REG)
+
+
+#endif /* CY_ISR_SCSI_TX_COMPLETE_H */
+
+
+/* [] END OF FILE */
diff --git a/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_COMPLETE.c b/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_COMPLETE.c
new file mode 100644 (file)
index 0000000..a9c001e
--- /dev/null
@@ -0,0 +1,356 @@
+/*******************************************************************************
+* File Name: SCSI_TX_DMA_COMPLETE.c  
+* Version 1.70
+*
+*  Description:
+*   API for controlling the state of an interrupt.
+*
+*
+*  Note:
+*
+********************************************************************************
+* Copyright 2008-2012, Cypress Semiconductor Corporation.  All rights reserved.
+* You may use this file only in accordance with the license, terms, conditions, 
+* disclaimers, and limitations in the end user license agreement accompanying 
+* the software package with which this file was provided.
+*******************************************************************************/
+
+
+#include <cydevice_trm.h>
+#include <CyLib.h>
+#include <SCSI_TX_DMA_COMPLETE.h>
+
+#if !defined(SCSI_TX_DMA_COMPLETE__REMOVED) /* Check for removal by optimization */
+
+/*******************************************************************************
+*  Place your includes, defines and code here 
+********************************************************************************/
+/* `#START SCSI_TX_DMA_COMPLETE_intc` */
+
+/* `#END` */
+
+#ifndef CYINT_IRQ_BASE
+#define CYINT_IRQ_BASE      16
+#endif /* CYINT_IRQ_BASE */
+#ifndef CYINT_VECT_TABLE
+#define CYINT_VECT_TABLE    ((cyisraddress **) CYREG_NVIC_VECT_OFFSET)
+#endif /* CYINT_VECT_TABLE */
+
+/* Declared in startup, used to set unused interrupts to. */
+CY_ISR_PROTO(IntDefaultHandler);
+
+
+/*******************************************************************************
+* Function Name: SCSI_TX_DMA_COMPLETE_Start
+********************************************************************************
+*
+* Summary:
+*  Set up the interrupt and enable it.
+*
+* Parameters:  
+*   None
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SCSI_TX_DMA_COMPLETE_Start(void)
+{
+    /* For all we know the interrupt is active. */
+    SCSI_TX_DMA_COMPLETE_Disable();
+
+    /* Set the ISR to point to the SCSI_TX_DMA_COMPLETE Interrupt. */
+    SCSI_TX_DMA_COMPLETE_SetVector(&SCSI_TX_DMA_COMPLETE_Interrupt);
+
+    /* Set the priority. */
+    SCSI_TX_DMA_COMPLETE_SetPriority((uint8)SCSI_TX_DMA_COMPLETE_INTC_PRIOR_NUMBER);
+
+    /* Enable it. */
+    SCSI_TX_DMA_COMPLETE_Enable();
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_TX_DMA_COMPLETE_StartEx
+********************************************************************************
+*
+* Summary:
+*  Set up the interrupt and enable it.
+*
+* Parameters:  
+*   address: Address of the ISR to set in the interrupt vector table.
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SCSI_TX_DMA_COMPLETE_StartEx(cyisraddress address)
+{
+    /* For all we know the interrupt is active. */
+    SCSI_TX_DMA_COMPLETE_Disable();
+
+    /* Set the ISR to point to the SCSI_TX_DMA_COMPLETE Interrupt. */
+    SCSI_TX_DMA_COMPLETE_SetVector(address);
+
+    /* Set the priority. */
+    SCSI_TX_DMA_COMPLETE_SetPriority((uint8)SCSI_TX_DMA_COMPLETE_INTC_PRIOR_NUMBER);
+
+    /* Enable it. */
+    SCSI_TX_DMA_COMPLETE_Enable();
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_TX_DMA_COMPLETE_Stop
+********************************************************************************
+*
+* Summary:
+*   Disables and removes the interrupt.
+*
+* Parameters:  
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SCSI_TX_DMA_COMPLETE_Stop(void)
+{
+    /* Disable this interrupt. */
+    SCSI_TX_DMA_COMPLETE_Disable();
+
+    /* Set the ISR to point to the passive one. */
+    SCSI_TX_DMA_COMPLETE_SetVector(&IntDefaultHandler);
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_TX_DMA_COMPLETE_Interrupt
+********************************************************************************
+*
+* Summary:
+*   The default Interrupt Service Routine for SCSI_TX_DMA_COMPLETE.
+*
+*   Add custom code between the coments to keep the next version of this file
+*   from over writting your code.
+*
+* Parameters:  
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+CY_ISR(SCSI_TX_DMA_COMPLETE_Interrupt)
+{
+    /*  Place your Interrupt code here. */
+    /* `#START SCSI_TX_DMA_COMPLETE_Interrupt` */
+
+    /* `#END` */
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_TX_DMA_COMPLETE_SetVector
+********************************************************************************
+*
+* Summary:
+*   Change the ISR vector for the Interrupt. Note calling SCSI_TX_DMA_COMPLETE_Start
+*   will override any effect this method would have had. To set the vector 
+*   before the component has been started use SCSI_TX_DMA_COMPLETE_StartEx instead.
+*
+* Parameters:
+*   address: Address of the ISR to set in the interrupt vector table.
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SCSI_TX_DMA_COMPLETE_SetVector(cyisraddress address)
+{
+    cyisraddress * ramVectorTable;
+
+    ramVectorTable = (cyisraddress *) *CYINT_VECT_TABLE;
+
+    ramVectorTable[CYINT_IRQ_BASE + (uint32)SCSI_TX_DMA_COMPLETE__INTC_NUMBER] = address;
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_TX_DMA_COMPLETE_GetVector
+********************************************************************************
+*
+* Summary:
+*   Gets the "address" of the current ISR vector for the Interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   Address of the ISR in the interrupt vector table.
+*
+*******************************************************************************/
+cyisraddress SCSI_TX_DMA_COMPLETE_GetVector(void)
+{
+    cyisraddress * ramVectorTable;
+
+    ramVectorTable = (cyisraddress *) *CYINT_VECT_TABLE;
+
+    return ramVectorTable[CYINT_IRQ_BASE + (uint32)SCSI_TX_DMA_COMPLETE__INTC_NUMBER];
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_TX_DMA_COMPLETE_SetPriority
+********************************************************************************
+*
+* Summary:
+*   Sets the Priority of the Interrupt. Note calling SCSI_TX_DMA_COMPLETE_Start
+*   or SCSI_TX_DMA_COMPLETE_StartEx will override any effect this method 
+*   would have had. This method should only be called after 
+*   SCSI_TX_DMA_COMPLETE_Start or SCSI_TX_DMA_COMPLETE_StartEx has been called. To set 
+*   the initial priority for the component use the cydwr file in the tool.
+*
+* Parameters:
+*   priority: Priority of the interrupt. 0 - 7, 0 being the highest.
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SCSI_TX_DMA_COMPLETE_SetPriority(uint8 priority)
+{
+    *SCSI_TX_DMA_COMPLETE_INTC_PRIOR = priority << 5;
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_TX_DMA_COMPLETE_GetPriority
+********************************************************************************
+*
+* Summary:
+*   Gets the Priority of the Interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   Priority of the interrupt. 0 - 7, 0 being the highest.
+*
+*******************************************************************************/
+uint8 SCSI_TX_DMA_COMPLETE_GetPriority(void)
+{
+    uint8 priority;
+
+
+    priority = *SCSI_TX_DMA_COMPLETE_INTC_PRIOR >> 5;
+
+    return priority;
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_TX_DMA_COMPLETE_Enable
+********************************************************************************
+*
+* Summary:
+*   Enables the interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SCSI_TX_DMA_COMPLETE_Enable(void)
+{
+    /* Enable the general interrupt. */
+    *SCSI_TX_DMA_COMPLETE_INTC_SET_EN = SCSI_TX_DMA_COMPLETE__INTC_MASK;
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_TX_DMA_COMPLETE_GetState
+********************************************************************************
+*
+* Summary:
+*   Gets the state (enabled, disabled) of the Interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   1 if enabled, 0 if disabled.
+*
+*******************************************************************************/
+uint8 SCSI_TX_DMA_COMPLETE_GetState(void)
+{
+    /* Get the state of the general interrupt. */
+    return ((*SCSI_TX_DMA_COMPLETE_INTC_SET_EN & (uint32)SCSI_TX_DMA_COMPLETE__INTC_MASK) != 0u) ? 1u:0u;
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_TX_DMA_COMPLETE_Disable
+********************************************************************************
+*
+* Summary:
+*   Disables the Interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SCSI_TX_DMA_COMPLETE_Disable(void)
+{
+    /* Disable the general interrupt. */
+    *SCSI_TX_DMA_COMPLETE_INTC_CLR_EN = SCSI_TX_DMA_COMPLETE__INTC_MASK;
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_TX_DMA_COMPLETE_SetPending
+********************************************************************************
+*
+* Summary:
+*   Causes the Interrupt to enter the pending state, a software method of
+*   generating the interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SCSI_TX_DMA_COMPLETE_SetPending(void)
+{
+    *SCSI_TX_DMA_COMPLETE_INTC_SET_PD = SCSI_TX_DMA_COMPLETE__INTC_MASK;
+}
+
+
+/*******************************************************************************
+* Function Name: SCSI_TX_DMA_COMPLETE_ClearPending
+********************************************************************************
+*
+* Summary:
+*   Clears a pending interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SCSI_TX_DMA_COMPLETE_ClearPending(void)
+{
+    *SCSI_TX_DMA_COMPLETE_INTC_CLR_PD = SCSI_TX_DMA_COMPLETE__INTC_MASK;
+}
+
+#endif /* End check for removal by optimization */
+
+
+/* [] END OF FILE */
diff --git a/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_COMPLETE.h b/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_COMPLETE.h
new file mode 100644 (file)
index 0000000..5efbf9b
--- /dev/null
@@ -0,0 +1,70 @@
+/*******************************************************************************
+* File Name: SCSI_TX_DMA_COMPLETE.h
+* Version 1.70
+*
+*  Description:
+*   Provides the function definitions for the Interrupt Controller.
+*
+*
+********************************************************************************
+* Copyright 2008-2012, Cypress Semiconductor Corporation.  All rights reserved.
+* You may use this file only in accordance with the license, terms, conditions, 
+* disclaimers, and limitations in the end user license agreement accompanying 
+* the software package with which this file was provided.
+*******************************************************************************/
+#if !defined(CY_ISR_SCSI_TX_DMA_COMPLETE_H)
+#define CY_ISR_SCSI_TX_DMA_COMPLETE_H
+
+
+#include <cytypes.h>
+#include <cyfitter.h>
+
+/* Interrupt Controller API. */
+void SCSI_TX_DMA_COMPLETE_Start(void);
+void SCSI_TX_DMA_COMPLETE_StartEx(cyisraddress address);
+void SCSI_TX_DMA_COMPLETE_Stop(void);
+
+CY_ISR_PROTO(SCSI_TX_DMA_COMPLETE_Interrupt);
+
+void SCSI_TX_DMA_COMPLETE_SetVector(cyisraddress address);
+cyisraddress SCSI_TX_DMA_COMPLETE_GetVector(void);
+
+void SCSI_TX_DMA_COMPLETE_SetPriority(uint8 priority);
+uint8 SCSI_TX_DMA_COMPLETE_GetPriority(void);
+
+void SCSI_TX_DMA_COMPLETE_Enable(void);
+uint8 SCSI_TX_DMA_COMPLETE_GetState(void);
+void SCSI_TX_DMA_COMPLETE_Disable(void);
+
+void SCSI_TX_DMA_COMPLETE_SetPending(void);
+void SCSI_TX_DMA_COMPLETE_ClearPending(void);
+
+
+/* Interrupt Controller Constants */
+
+/* Address of the INTC.VECT[x] register that contains the Address of the SCSI_TX_DMA_COMPLETE ISR. */
+#define SCSI_TX_DMA_COMPLETE_INTC_VECTOR            ((reg32 *) SCSI_TX_DMA_COMPLETE__INTC_VECT)
+
+/* Address of the SCSI_TX_DMA_COMPLETE ISR priority. */
+#define SCSI_TX_DMA_COMPLETE_INTC_PRIOR             ((reg8 *) SCSI_TX_DMA_COMPLETE__INTC_PRIOR_REG)
+
+/* Priority of the SCSI_TX_DMA_COMPLETE interrupt. */
+#define SCSI_TX_DMA_COMPLETE_INTC_PRIOR_NUMBER      SCSI_TX_DMA_COMPLETE__INTC_PRIOR_NUM
+
+/* Address of the INTC.SET_EN[x] byte to bit enable SCSI_TX_DMA_COMPLETE interrupt. */
+#define SCSI_TX_DMA_COMPLETE_INTC_SET_EN            ((reg32 *) SCSI_TX_DMA_COMPLETE__INTC_SET_EN_REG)
+
+/* Address of the INTC.CLR_EN[x] register to bit clear the SCSI_TX_DMA_COMPLETE interrupt. */
+#define SCSI_TX_DMA_COMPLETE_INTC_CLR_EN            ((reg32 *) SCSI_TX_DMA_COMPLETE__INTC_CLR_EN_REG)
+
+/* Address of the INTC.SET_PD[x] register to set the SCSI_TX_DMA_COMPLETE interrupt state to pending. */
+#define SCSI_TX_DMA_COMPLETE_INTC_SET_PD            ((reg32 *) SCSI_TX_DMA_COMPLETE__INTC_SET_PD_REG)
+
+/* Address of the INTC.CLR_PD[x] register to clear the SCSI_TX_DMA_COMPLETE interrupt. */
+#define SCSI_TX_DMA_COMPLETE_INTC_CLR_PD            ((reg32 *) SCSI_TX_DMA_COMPLETE__INTC_CLR_PD_REG)
+
+
+#endif /* CY_ISR_SCSI_TX_DMA_COMPLETE_H */
+
+
+/* [] END OF FILE */
diff --git a/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_dma.c b/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_dma.c
new file mode 100644 (file)
index 0000000..83419f7
--- /dev/null
@@ -0,0 +1,141 @@
+/***************************************************************************
+* File Name: SCSI_TX_DMA_dma.c  
+* Version 1.70
+*
+*  Description:
+*   Provides an API for the DMAC component. The API includes functions
+*   for the DMA controller, DMA channels and Transfer Descriptors.
+*
+*
+*   Note:
+*     This module requires the developer to finish or fill in the auto
+*     generated funcions and setup the dma channel and TD's.
+*
+********************************************************************************
+* Copyright 2008-2010, Cypress Semiconductor Corporation.  All rights reserved.
+* You may use this file only in accordance with the license, terms, conditions, 
+* disclaimers, and limitations in the end user license agreement accompanying 
+* the software package with which this file was provided.
+********************************************************************************/
+#include <CYLIB.H>
+#include <CYDMAC.H>
+#include <SCSI_TX_DMA_dma.H>
+
+
+
+/****************************************************************************
+* 
+* The following defines are available in Cyfitter.h
+* 
+* 
+* 
+* SCSI_TX_DMA__DRQ_CTL_REG
+* 
+* 
+* SCSI_TX_DMA__DRQ_NUMBER
+* 
+* Number of TD's used by this channel.
+* SCSI_TX_DMA__NUMBEROF_TDS
+* 
+* Priority of this channel.
+* SCSI_TX_DMA__PRIORITY
+* 
+* True if SCSI_TX_DMA_TERMIN_SEL is used.
+* SCSI_TX_DMA__TERMIN_EN
+* 
+* TERMIN interrupt line to signal terminate.
+* SCSI_TX_DMA__TERMIN_SEL
+* 
+* 
+* True if SCSI_TX_DMA_TERMOUT0_SEL is used.
+* SCSI_TX_DMA__TERMOUT0_EN
+* 
+* 
+* TERMOUT0 interrupt line to signal completion.
+* SCSI_TX_DMA__TERMOUT0_SEL
+* 
+* 
+* True if SCSI_TX_DMA_TERMOUT1_SEL is used.
+* SCSI_TX_DMA__TERMOUT1_EN
+* 
+* 
+* TERMOUT1 interrupt line to signal completion.
+* SCSI_TX_DMA__TERMOUT1_SEL
+* 
+****************************************************************************/
+
+
+/* Zero based index of SCSI_TX_DMA dma channel */
+uint8 SCSI_TX_DMA_DmaHandle = DMA_INVALID_CHANNEL;
+
+/*********************************************************************
+* Function Name: uint8 SCSI_TX_DMA_DmaInitalize
+**********************************************************************
+* Summary:
+*   Allocates and initialises a channel of the DMAC to be used by the
+*   caller.
+*
+* Parameters:
+*   BurstCount.
+*       
+*       
+*   ReqestPerBurst.
+*       
+*       
+*   UpperSrcAddress.
+*       
+*       
+*   UpperDestAddress.
+*       
+*
+* Return:
+*   The channel that can be used by the caller for DMA activity.
+*   DMA_INVALID_CHANNEL (0xFF) if there are no channels left. 
+*
+*
+*******************************************************************/
+uint8 SCSI_TX_DMA_DmaInitialize(uint8 BurstCount, uint8 ReqestPerBurst, uint16 UpperSrcAddress, uint16 UpperDestAddress) 
+{
+
+    /* Allocate a DMA channel. */
+    SCSI_TX_DMA_DmaHandle = (uint8)SCSI_TX_DMA__DRQ_NUMBER;
+
+    /* Configure the channel. */
+    (void)CyDmaChSetConfiguration(SCSI_TX_DMA_DmaHandle,
+                                  BurstCount,
+                                  ReqestPerBurst,
+                                  (uint8)SCSI_TX_DMA__TERMOUT0_SEL,
+                                  (uint8)SCSI_TX_DMA__TERMOUT1_SEL,
+                                  (uint8)SCSI_TX_DMA__TERMIN_SEL);
+
+    /* Set the extended address for the transfers */
+    (void)CyDmaChSetExtendedAddress(SCSI_TX_DMA_DmaHandle, UpperSrcAddress, UpperDestAddress);
+
+    /* Set the priority for this channel */
+    (void)CyDmaChPriority(SCSI_TX_DMA_DmaHandle, (uint8)SCSI_TX_DMA__PRIORITY);
+    
+    return SCSI_TX_DMA_DmaHandle;
+}
+
+/*********************************************************************
+* Function Name: void SCSI_TX_DMA_DmaRelease
+**********************************************************************
+* Summary:
+*   Frees the channel associated with SCSI_TX_DMA.
+*
+*
+* Parameters:
+*   void.
+*
+*
+*
+* Return:
+*   void.
+*
+*******************************************************************/
+void SCSI_TX_DMA_DmaRelease(void) 
+{
+    /* Disable the channel */
+    (void)CyDmaChDisable(SCSI_TX_DMA_DmaHandle);
+}
+
diff --git a/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_dma.h b/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_dma.h
new file mode 100644 (file)
index 0000000..c0a1b00
--- /dev/null
@@ -0,0 +1,35 @@
+/******************************************************************************
+* File Name: SCSI_TX_DMA_dma.h  
+* Version 1.70
+*
+*  Description:
+*   Provides the function definitions for the DMA Controller.
+*
+*
+********************************************************************************
+* Copyright 2008-2010, Cypress Semiconductor Corporation.  All rights reserved.
+* You may use this file only in accordance with the license, terms, conditions, 
+* disclaimers, and limitations in the end user license agreement accompanying 
+* the software package with which this file was provided.
+********************************************************************************/
+#if !defined(CY_DMA_SCSI_TX_DMA_DMA_H__)
+#define CY_DMA_SCSI_TX_DMA_DMA_H__
+
+
+
+#include <CYDMAC.H>
+#include <CYFITTER.H>
+
+#define SCSI_TX_DMA__TD_TERMOUT_EN (((0 != SCSI_TX_DMA__TERMOUT0_EN) ? TD_TERMOUT0_EN : 0) | \
+    (SCSI_TX_DMA__TERMOUT1_EN ? TD_TERMOUT1_EN : 0))
+
+/* Zero based index of SCSI_TX_DMA dma channel */
+extern uint8 SCSI_TX_DMA_DmaHandle;
+
+
+uint8 SCSI_TX_DMA_DmaInitialize(uint8 BurstCount, uint8 ReqestPerBurst, uint16 UpperSrcAddress, uint16 UpperDestAddress) ;
+void  SCSI_TX_DMA_DmaRelease(void) ;
+
+
+/* CY_DMA_SCSI_TX_DMA_DMA_H__ */
+#endif
old mode 100755 (executable)
new mode 100644 (file)
index bb19eba..124adc7
@@ -147,7 +147,7 @@ extern uint8 SDCard_initVar;
 \r
 #define SDCard_INT_ON_SPI_DONE    ((uint8) (0u   << SDCard_STS_SPI_DONE_SHIFT))\r
 #define SDCard_INT_ON_TX_EMPTY    ((uint8) (0u   << SDCard_STS_TX_FIFO_EMPTY_SHIFT))\r
-#define SDCard_INT_ON_TX_NOT_FULL ((uint8) (0u << \\r
+#define SDCard_INT_ON_TX_NOT_FULL ((uint8) (1u << \\r
                                                                            SDCard_STS_TX_FIFO_NOT_FULL_SHIFT))\r
 #define SDCard_INT_ON_BYTE_COMP   ((uint8) (0u  << SDCard_STS_BYTE_COMPLETE_SHIFT))\r
 #define SDCard_INT_ON_SPI_IDLE    ((uint8) (0u   << SDCard_STS_SPI_IDLE_SHIFT))\r
@@ -165,7 +165,7 @@ extern uint8 SDCard_initVar;
 \r
 #define SDCard_INT_ON_RX_FULL         ((uint8) (0u << \\r
                                                                           SDCard_STS_RX_FIFO_FULL_SHIFT))\r
-#define SDCard_INT_ON_RX_NOT_EMPTY    ((uint8) (0u << \\r
+#define SDCard_INT_ON_RX_NOT_EMPTY    ((uint8) (1u << \\r
                                                                           SDCard_STS_RX_FIFO_NOT_EMPTY_SHIFT))\r
 #define SDCard_INT_ON_RX_OVER         ((uint8) (0u << \\r
                                                                           SDCard_STS_RX_FIFO_OVERRUN_SHIFT))\r
diff --git a/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_Clk_Ctl.c b/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_Clk_Ctl.c
deleted file mode 100755 (executable)
index 6553ced..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************\r
-* File Name: SD_Clk_Ctl.c  \r
-* Version 1.70\r
-*\r
-* Description:\r
-*  This file contains API to enable firmware control of a Control Register.\r
-*\r
-* Note:\r
-*\r
-********************************************************************************\r
-* Copyright 2008-2012, Cypress Semiconductor Corporation.  All rights reserved.\r
-* You may use this file only in accordance with the license, terms, conditions, \r
-* disclaimers, and limitations in the end user license agreement accompanying \r
-* the software package with which this file was provided.\r
-*******************************************************************************/\r
-\r
-#include "SD_Clk_Ctl.h"\r
-\r
-#if !defined(SD_Clk_Ctl_Sync_ctrl_reg__REMOVED) /* Check for removal by optimization */\r
-\r
-/*******************************************************************************\r
-* Function Name: SD_Clk_Ctl_Write\r
-********************************************************************************\r
-*\r
-* Summary:\r
-*  Write a byte to the Control Register.\r
-*\r
-* Parameters:\r
-*  control:  The value to be assigned to the Control Register.\r
-*\r
-* Return:\r
-*  None.\r
-*\r
-*******************************************************************************/\r
-void SD_Clk_Ctl_Write(uint8 control) \r
-{\r
-    SD_Clk_Ctl_Control = control;\r
-}\r
-\r
-\r
-/*******************************************************************************\r
-* Function Name: SD_Clk_Ctl_Read\r
-********************************************************************************\r
-*\r
-* Summary:\r
-*  Reads the current value assigned to the Control Register.\r
-*\r
-* Parameters:\r
-*  None.\r
-*\r
-* Return:\r
-*  Returns the current value in the Control Register.\r
-*\r
-*******************************************************************************/\r
-uint8 SD_Clk_Ctl_Read(void) \r
-{\r
-    return SD_Clk_Ctl_Control;\r
-}\r
-\r
-#endif /* End check for removal by optimization */\r
-\r
-\r
-/* [] END OF FILE */\r
diff --git a/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_Clk_Ctl.h b/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_Clk_Ctl.h
deleted file mode 100755 (executable)
index 7c6d263..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************\r
-* File Name: SD_Clk_Ctl.h  \r
-* Version 1.70\r
-*\r
-* Description:\r
-*  This file containts Control Register function prototypes and register defines\r
-*\r
-* Note:\r
-*\r
-********************************************************************************\r
-* Copyright 2008-2012, Cypress Semiconductor Corporation.  All rights reserved.\r
-* You may use this file only in accordance with the license, terms, conditions, \r
-* disclaimers, and limitations in the end user license agreement accompanying \r
-* the software package with which this file was provided.\r
-*******************************************************************************/\r
-\r
-#if !defined(CY_CONTROL_REG_SD_Clk_Ctl_H) /* CY_CONTROL_REG_SD_Clk_Ctl_H */\r
-#define CY_CONTROL_REG_SD_Clk_Ctl_H\r
-\r
-#include "cytypes.h"\r
-\r
-\r
-/***************************************\r
-*         Function Prototypes \r
-***************************************/\r
-\r
-void    SD_Clk_Ctl_Write(uint8 control) ;\r
-uint8   SD_Clk_Ctl_Read(void) ;\r
-\r
-\r
-/***************************************\r
-*            Registers        \r
-***************************************/\r
-\r
-/* Control Register */\r
-#define SD_Clk_Ctl_Control        (* (reg8 *) SD_Clk_Ctl_Sync_ctrl_reg__CONTROL_REG )\r
-#define SD_Clk_Ctl_Control_PTR    (  (reg8 *) SD_Clk_Ctl_Sync_ctrl_reg__CONTROL_REG )\r
-\r
-#endif /* End CY_CONTROL_REG_SD_Clk_Ctl_H */\r
-\r
-\r
-/* [] END OF FILE */\r
diff --git a/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_Init_Clk.c b/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_Init_Clk.c
deleted file mode 100755 (executable)
index c6cd4e2..0000000
+++ /dev/null
@@ -1,521 +0,0 @@
-/*******************************************************************************\r
-* File Name: SD_Init_Clk.c\r
-* Version 2.10\r
-*\r
-*  Description:\r
-*   This file provides the source code to the API for the clock component.\r
-*\r
-*  Note:\r
-*\r
-********************************************************************************\r
-* Copyright 2008-2012, Cypress Semiconductor Corporation.  All rights reserved.\r
-* You may use this file only in accordance with the license, terms, conditions, \r
-* disclaimers, and limitations in the end user license agreement accompanying \r
-* the software package with which this file was provided.\r
-*******************************************************************************/\r
-\r
-#include <cydevice_trm.h>\r
-#include "SD_Init_Clk.h"\r
-\r
-/* Clock Distribution registers. */\r
-#define CLK_DIST_LD              (* (reg8 *) CYREG_CLKDIST_LD)\r
-#define CLK_DIST_BCFG2           (* (reg8 *) CYREG_CLKDIST_BCFG2)\r
-#define BCFG2_MASK               (0x80u)\r
-#define CLK_DIST_DMASK           (* (reg8 *) CYREG_CLKDIST_DMASK)\r
-#define CLK_DIST_AMASK           (* (reg8 *) CYREG_CLKDIST_AMASK)\r
-\r
-#define HAS_CLKDIST_LD_DISABLE   (CY_PSOC3 || CY_PSOC5LP)\r
-\r
-\r
-/*******************************************************************************\r
-* Function Name: SD_Init_Clk_Start\r
-********************************************************************************\r
-*\r
-* Summary:\r
-*  Starts the clock. Note that on startup, clocks may be already running if the\r
-*  "Start on Reset" option is enabled in the DWR.\r
-*\r
-* Parameters:\r
-*  None\r
-*\r
-* Returns:\r
-*  None\r
-*\r
-*******************************************************************************/\r
-void SD_Init_Clk_Start(void) \r
-{\r
-    /* Set the bit to enable the clock. */\r
-    SD_Init_Clk_CLKEN |= SD_Init_Clk_CLKEN_MASK;\r
-       SD_Init_Clk_CLKSTBY |= SD_Init_Clk_CLKSTBY_MASK;\r
-}\r
-\r
-\r
-/*******************************************************************************\r
-* Function Name: SD_Init_Clk_Stop\r
-********************************************************************************\r
-*\r
-* Summary:\r
-*  Stops the clock and returns immediately. This API does not require the\r
-*  source clock to be running but may return before the hardware is actually\r
-*  disabled. If the settings of the clock are changed after calling this\r
-*  function, the clock may glitch when it is started. To avoid the clock\r
-*  glitch, use the StopBlock function.\r
-*\r
-* Parameters:\r
-*  None\r
-*\r
-* Returns:\r
-*  None\r
-*\r
-*******************************************************************************/\r
-void SD_Init_Clk_Stop(void) \r
-{\r
-    /* Clear the bit to disable the clock. */\r
-    SD_Init_Clk_CLKEN &= (uint8)(~SD_Init_Clk_CLKEN_MASK);\r
-       SD_Init_Clk_CLKSTBY &= (uint8)(~SD_Init_Clk_CLKSTBY_MASK);\r
-}\r
-\r
-\r
-#if(CY_PSOC3 || CY_PSOC5LP)\r
-\r
-\r
-/*******************************************************************************\r
-* Function Name: SD_Init_Clk_StopBlock\r
-********************************************************************************\r
-*\r
-* Summary:\r
-*  Stops the clock and waits for the hardware to actually be disabled before\r
-*  returning. This ensures that the clock is never truncated (high part of the\r
-*  cycle will terminate before the clock is disabled and the API returns).\r
-*  Note that the source clock must be running or this API will never return as\r
-*  a stopped clock cannot be disabled.\r
-*\r
-* Parameters:\r
-*  None\r
-*\r
-* Returns:\r
-*  None\r
-*\r
-*******************************************************************************/\r
-void SD_Init_Clk_StopBlock(void) \r
-{\r
-    if ((SD_Init_Clk_CLKEN & SD_Init_Clk_CLKEN_MASK) != 0u)\r
-    {\r
-#if HAS_CLKDIST_LD_DISABLE\r
-        uint16 oldDivider;\r
-\r
-        CLK_DIST_LD = 0u;\r
-\r
-        /* Clear all the mask bits except ours. */\r
-#if defined(SD_Init_Clk__CFG3)\r
-        CLK_DIST_AMASK = SD_Init_Clk_CLKEN_MASK;\r
-        CLK_DIST_DMASK = 0x00u;\r
-#else\r
-        CLK_DIST_DMASK = SD_Init_Clk_CLKEN_MASK;\r
-        CLK_DIST_AMASK = 0x00u;\r
-#endif /* SD_Init_Clk__CFG3 */\r
-\r
-        /* Clear mask of bus clock. */\r
-        CLK_DIST_BCFG2 &= (uint8)(~BCFG2_MASK);\r
-\r
-        oldDivider = CY_GET_REG16(SD_Init_Clk_DIV_PTR);\r
-        CY_SET_REG16(CYREG_CLKDIST_WRK0, oldDivider);\r
-        CLK_DIST_LD = CYCLK_LD_DISABLE | CYCLK_LD_SYNC_EN | CYCLK_LD_LOAD;\r
-\r
-        /* Wait for clock to be disabled */\r
-        while ((CLK_DIST_LD & CYCLK_LD_LOAD) != 0u) { }\r
-#endif /* HAS_CLKDIST_LD_DISABLE */\r
-\r
-        /* Clear the bit to disable the clock. */\r
-        SD_Init_Clk_CLKEN &= (uint8)(~SD_Init_Clk_CLKEN_MASK);\r
-        SD_Init_Clk_CLKSTBY &= (uint8)(~SD_Init_Clk_CLKSTBY_MASK);\r
-\r
-#if HAS_CLKDIST_LD_DISABLE\r
-        /* Clear the disable bit */\r
-        CLK_DIST_LD = 0x00u;\r
-        CY_SET_REG16(SD_Init_Clk_DIV_PTR, oldDivider);\r
-#endif /* HAS_CLKDIST_LD_DISABLE */\r
-    }\r
-}\r
-#endif /* (CY_PSOC3 || CY_PSOC5LP) */\r
-\r
-\r
-/*******************************************************************************\r
-* Function Name: SD_Init_Clk_StandbyPower\r
-********************************************************************************\r
-*\r
-* Summary:\r
-*  Sets whether the clock is active in standby mode.\r
-*\r
-* Parameters:\r
-*  state:  0 to disable clock during standby, nonzero to enable.\r
-*\r
-* Returns:\r
-*  None\r
-*\r
-*******************************************************************************/\r
-void SD_Init_Clk_StandbyPower(uint8 state) \r
-{\r
-    if(state == 0u)\r
-    {\r
-        SD_Init_Clk_CLKSTBY &= (uint8)(~SD_Init_Clk_CLKSTBY_MASK);\r
-    }\r
-    else\r
-    {\r
-        SD_Init_Clk_CLKSTBY |= SD_Init_Clk_CLKSTBY_MASK;\r
-    }\r
-}\r
-\r
-\r
-/*******************************************************************************\r
-* Function Name: SD_Init_Clk_SetDividerRegister\r
-********************************************************************************\r
-*\r
-* Summary:\r
-*  Modifies the clock divider and, thus, the frequency. When the clock divider\r
-*  register is set to zero or changed from zero, the clock will be temporarily\r
-*  disabled in order to change the SSS mode bit. If the clock is enabled when\r
-*  SetDividerRegister is called, then the source clock must be running.\r
-*\r
-* Parameters:\r
-*  clkDivider:  Divider register value (0-65,535). This value is NOT the\r
-*    divider; the clock hardware divides by clkDivider plus one. For example,\r
-*    to divide the clock by 2, this parameter should be set to 1.\r
-*  restart:  If nonzero, restarts the clock divider: the current clock cycle\r
-*   will be truncated and the new divide value will take effect immediately. If\r
-*   zero, the new divide value will take effect at the end of the current clock\r
-*   cycle.\r
-*\r
-* Returns:\r
-*  None\r
-*\r
-*******************************************************************************/\r
-void SD_Init_Clk_SetDividerRegister(uint16 clkDivider, uint8 restart)\r
-                                \r
-{\r
-    uint8 enabled;\r
-\r
-    uint8 currSrc = SD_Init_Clk_GetSourceRegister();\r
-    uint16 oldDivider = SD_Init_Clk_GetDividerRegister();\r
-\r
-    if (clkDivider != oldDivider)\r
-    {\r
-        enabled = SD_Init_Clk_CLKEN & SD_Init_Clk_CLKEN_MASK;\r
-\r
-        if ((currSrc == (uint8)CYCLK_SRC_SEL_CLK_SYNC_D) && ((oldDivider == 0u) || (clkDivider == 0u)))\r
-        {\r
-            /* Moving to/from SSS requires correct ordering to prevent halting the clock    */\r
-            if (oldDivider == 0u)\r
-            {\r
-                /* Moving away from SSS, set the divider first so when SSS is cleared we    */\r
-                /* don't halt the clock.  Using the shadow load isn't required as the       */\r
-                /* divider is ignored while SSS is set.                                     */\r
-                CY_SET_REG16(SD_Init_Clk_DIV_PTR, clkDivider);\r
-                SD_Init_Clk_MOD_SRC &= (uint8)(~CYCLK_SSS);\r
-            }\r
-            else\r
-            {\r
-                /* Moving to SSS, set SSS which then ignores the divider and we can set     */\r
-                /* it without bothering with the shadow load.                               */\r
-                SD_Init_Clk_MOD_SRC |= CYCLK_SSS;\r
-                CY_SET_REG16(SD_Init_Clk_DIV_PTR, clkDivider);\r
-            }\r
-        }\r
-        else\r
-        {\r
-                       \r
-            if (enabled != 0u)\r
-            {\r
-                CLK_DIST_LD = 0x00u;\r
-\r
-                /* Clear all the mask bits except ours. */\r
-#if defined(SD_Init_Clk__CFG3)\r
-                CLK_DIST_AMASK = SD_Init_Clk_CLKEN_MASK;\r
-                CLK_DIST_DMASK = 0x00u;\r
-#else\r
-                CLK_DIST_DMASK = SD_Init_Clk_CLKEN_MASK;\r
-                CLK_DIST_AMASK = 0x00u;\r
-#endif /* SD_Init_Clk__CFG3 */\r
-                /* Clear mask of bus clock. */\r
-                CLK_DIST_BCFG2 &= (uint8)(~BCFG2_MASK);\r
-\r
-                /* If clock is currently enabled, disable it if async or going from N-to-1*/\r
-                if (((SD_Init_Clk_MOD_SRC & CYCLK_SYNC) == 0u) || (clkDivider == 0u))\r
-                {\r
-#if HAS_CLKDIST_LD_DISABLE\r
-                    CY_SET_REG16(CYREG_CLKDIST_WRK0, oldDivider);\r
-                    CLK_DIST_LD = CYCLK_LD_DISABLE|CYCLK_LD_SYNC_EN|CYCLK_LD_LOAD;\r
-\r
-                    /* Wait for clock to be disabled */\r
-                    while ((CLK_DIST_LD & CYCLK_LD_LOAD) != 0u) { }\r
-#endif /* HAS_CLKDIST_LD_DISABLE */\r
-\r
-                    SD_Init_Clk_CLKEN &= (uint8)(~SD_Init_Clk_CLKEN_MASK);\r
-\r
-#if HAS_CLKDIST_LD_DISABLE\r
-                    /* Clear the disable bit */\r
-                    CLK_DIST_LD = 0x00u;\r
-#endif /* HAS_CLKDIST_LD_DISABLE */\r
-                }\r
-            }\r
-\r
-            /* Load divide value. */\r
-            if ((SD_Init_Clk_CLKEN & SD_Init_Clk_CLKEN_MASK) != 0u)\r
-            {\r
-                /* If the clock is still enabled, use the shadow registers */\r
-                CY_SET_REG16(CYREG_CLKDIST_WRK0, clkDivider);\r
-\r
-                CLK_DIST_LD = (CYCLK_LD_LOAD | ((restart != 0u) ? CYCLK_LD_SYNC_EN : 0x00u));\r
-                while ((CLK_DIST_LD & CYCLK_LD_LOAD) != 0u) { }\r
-            }\r
-            else\r
-            {\r
-                /* If the clock is disabled, set the divider directly */\r
-                CY_SET_REG16(SD_Init_Clk_DIV_PTR, clkDivider);\r
-                               SD_Init_Clk_CLKEN |= enabled;\r
-            }\r
-        }\r
-    }\r
-}\r
-\r
-\r
-/*******************************************************************************\r
-* Function Name: SD_Init_Clk_GetDividerRegister\r
-********************************************************************************\r
-*\r
-* Summary:\r
-*  Gets the clock divider register value.\r
-*\r
-* Parameters:\r
-*  None\r
-*\r
-* Returns:\r
-*  Divide value of the clock minus 1. For example, if the clock is set to\r
-*  divide by 2, the return value will be 1.\r
-*\r
-*******************************************************************************/\r
-uint16 SD_Init_Clk_GetDividerRegister(void) \r
-{\r
-    return CY_GET_REG16(SD_Init_Clk_DIV_PTR);\r
-}\r
-\r
-\r
-/*******************************************************************************\r
-* Function Name: SD_Init_Clk_SetModeRegister\r
-********************************************************************************\r
-*\r
-* Summary:\r
-*  Sets flags that control the operating mode of the clock. This function only\r
-*  changes flags from 0 to 1; flags that are already 1 will remain unchanged.\r
-*  To clear flags, use the ClearModeRegister function. The clock must be\r
-*  disabled before changing the mode.\r
-*\r
-* Parameters:\r
-*  clkMode: Bit mask containing the bits to set. For PSoC 3 and PSoC 5,\r
-*   clkMode should be a set of the following optional bits or'ed together.\r
-*   - CYCLK_EARLY Enable early phase mode. Rising edge of output clock will\r
-*                 occur when the divider count reaches half of the divide\r
-*                 value.\r
-*   - CYCLK_DUTY  Enable 50% duty cycle output. When enabled, the output clock\r
-*                 is asserted for approximately half of its period. When\r
-*                 disabled, the output clock is asserted for one period of the\r
-*                 source clock.\r
-*   - CYCLK_SYNC  Enable output synchronization to master clock. This should\r
-*                 be enabled for all synchronous clocks.\r
-*   See the Technical Reference Manual for details about setting the mode of\r
-*   the clock. Specifically, see the CLKDIST.DCFG.CFG2 register.\r
-*\r
-* Returns:\r
-*  None\r
-*\r
-*******************************************************************************/\r
-void SD_Init_Clk_SetModeRegister(uint8 modeBitMask) \r
-{\r
-    SD_Init_Clk_MOD_SRC |= modeBitMask & (uint8)SD_Init_Clk_MODE_MASK;\r
-}\r
-\r
-\r
-/*******************************************************************************\r
-* Function Name: SD_Init_Clk_ClearModeRegister\r
-********************************************************************************\r
-*\r
-* Summary:\r
-*  Clears flags that control the operating mode of the clock. This function\r
-*  only changes flags from 1 to 0; flags that are already 0 will remain\r
-*  unchanged. To set flags, use the SetModeRegister function. The clock must be\r
-*  disabled before changing the mode.\r
-*\r
-* Parameters:\r
-*  clkMode: Bit mask containing the bits to clear. For PSoC 3 and PSoC 5,\r
-*   clkMode should be a set of the following optional bits or'ed together.\r
-*   - CYCLK_EARLY Enable early phase mode. Rising edge of output clock will\r
-*                 occur when the divider count reaches half of the divide\r
-*                 value.\r
-*   - CYCLK_DUTY  Enable 50% duty cycle output. When enabled, the output clock\r
-*                 is asserted for approximately half of its period. When\r
-*                 disabled, the output clock is asserted for one period of the\r
-*                 source clock.\r
-*   - CYCLK_SYNC  Enable output synchronization to master clock. This should\r
-*                 be enabled for all synchronous clocks.\r
-*   See the Technical Reference Manual for details about setting the mode of\r
-*   the clock. Specifically, see the CLKDIST.DCFG.CFG2 register.\r
-*\r
-* Returns:\r
-*  None\r
-*\r
-*******************************************************************************/\r
-void SD_Init_Clk_ClearModeRegister(uint8 modeBitMask) \r
-{\r
-    SD_Init_Clk_MOD_SRC &= (uint8)(~modeBitMask) | (uint8)(~(uint8)(SD_Init_Clk_MODE_MASK));\r
-}\r
-\r
-\r
-/*******************************************************************************\r
-* Function Name: SD_Init_Clk_GetModeRegister\r
-********************************************************************************\r
-*\r
-* Summary:\r
-*  Gets the clock mode register value.\r
-*\r
-* Parameters:\r
-*  None\r
-*\r
-* Returns:\r
-*  Bit mask representing the enabled mode bits. See the SetModeRegister and\r
-*  ClearModeRegister descriptions for details about the mode bits.\r
-*\r
-*******************************************************************************/\r
-uint8 SD_Init_Clk_GetModeRegister(void) \r
-{\r
-    return SD_Init_Clk_MOD_SRC & (uint8)(SD_Init_Clk_MODE_MASK);\r
-}\r
-\r
-\r
-/*******************************************************************************\r
-* Function Name: SD_Init_Clk_SetSourceRegister\r
-********************************************************************************\r
-*\r
-* Summary:\r
-*  Sets the input source of the clock. The clock must be disabled before\r
-*  changing the source. The old and new clock sources must be running.\r
-*\r
-* Parameters:\r
-*  clkSource:  For PSoC 3 and PSoC 5 devices, clkSource should be one of the\r
-*   following input sources:\r
-*   - CYCLK_SRC_SEL_SYNC_DIG\r
-*   - CYCLK_SRC_SEL_IMO\r
-*   - CYCLK_SRC_SEL_XTALM\r
-*   - CYCLK_SRC_SEL_ILO\r
-*   - CYCLK_SRC_SEL_PLL\r
-*   - CYCLK_SRC_SEL_XTALK\r
-*   - CYCLK_SRC_SEL_DSI_G\r
-*   - CYCLK_SRC_SEL_DSI_D/CYCLK_SRC_SEL_DSI_A\r
-*   See the Technical Reference Manual for details on clock sources.\r
-*\r
-* Returns:\r
-*  None\r
-*\r
-*******************************************************************************/\r
-void SD_Init_Clk_SetSourceRegister(uint8 clkSource) \r
-{\r
-    uint16 currDiv = SD_Init_Clk_GetDividerRegister();\r
-    uint8 oldSrc = SD_Init_Clk_GetSourceRegister();\r
-\r
-    if (((oldSrc != ((uint8)CYCLK_SRC_SEL_CLK_SYNC_D)) && \r
-        (clkSource == ((uint8)CYCLK_SRC_SEL_CLK_SYNC_D))) && (currDiv == 0u))\r
-    {\r
-        /* Switching to Master and divider is 1, set SSS, which will output master, */\r
-        /* then set the source so we are consistent.                                */\r
-        SD_Init_Clk_MOD_SRC |= CYCLK_SSS;\r
-        SD_Init_Clk_MOD_SRC =\r
-            (SD_Init_Clk_MOD_SRC & (uint8)(~SD_Init_Clk_SRC_SEL_MSK)) | clkSource;\r
-    }\r
-    else if (((oldSrc == ((uint8)CYCLK_SRC_SEL_CLK_SYNC_D)) && \r
-            (clkSource != ((uint8)CYCLK_SRC_SEL_CLK_SYNC_D))) && (currDiv == 0u))\r
-    {\r
-        /* Switching from Master to not and divider is 1, set source, so we don't   */\r
-        /* lock when we clear SSS.                                                  */\r
-        SD_Init_Clk_MOD_SRC =\r
-            (SD_Init_Clk_MOD_SRC & (uint8)(~SD_Init_Clk_SRC_SEL_MSK)) | clkSource;\r
-        SD_Init_Clk_MOD_SRC &= (uint8)(~CYCLK_SSS);\r
-    }\r
-    else\r
-    {\r
-        SD_Init_Clk_MOD_SRC =\r
-            (SD_Init_Clk_MOD_SRC & (uint8)(~SD_Init_Clk_SRC_SEL_MSK)) | clkSource;\r
-    }\r
-}\r
-\r
-\r
-/*******************************************************************************\r
-* Function Name: SD_Init_Clk_GetSourceRegister\r
-********************************************************************************\r
-*\r
-* Summary:\r
-*  Gets the input source of the clock.\r
-*\r
-* Parameters:\r
-*  None\r
-*\r
-* Returns:\r
-*  The input source of the clock. See SetSourceRegister for details.\r
-*\r
-*******************************************************************************/\r
-uint8 SD_Init_Clk_GetSourceRegister(void) \r
-{\r
-    return SD_Init_Clk_MOD_SRC & SD_Init_Clk_SRC_SEL_MSK;\r
-}\r
-\r
-\r
-#if defined(SD_Init_Clk__CFG3)\r
-\r
-\r
-/*******************************************************************************\r
-* Function Name: SD_Init_Clk_SetPhaseRegister\r
-********************************************************************************\r
-*\r
-* Summary:\r
-*  Sets the phase delay of the analog clock. This function is only available\r
-*  for analog clocks. The clock must be disabled before changing the phase\r
-*  delay to avoid glitches.\r
-*\r
-* Parameters:\r
-*  clkPhase: Amount to delay the phase of the clock, in 1.0ns increments.\r
-*   clkPhase must be from 1 to 11 inclusive. Other values, including 0,\r
-*   disable the clock. clkPhase = 1 produces a 0ns delay and clkPhase = 11 \r
-*   produces a 10ns delay.\r
-*\r
-* Returns:\r
-*  None\r
-*\r
-*******************************************************************************/\r
-void SD_Init_Clk_SetPhaseRegister(uint8 clkPhase) \r
-{\r
-    SD_Init_Clk_PHASE = clkPhase & SD_Init_Clk_PHASE_MASK;\r
-}\r
-\r
-\r
-/*******************************************************************************\r
-* Function Name: SD_Init_Clk_GetPhase\r
-********************************************************************************\r
-*\r
-* Summary:\r
-*  Gets the phase delay of the analog clock. This function is only available\r
-*  for analog clocks.\r
-*\r
-* Parameters:\r
-*  None\r
-*\r
-* Returns:\r
-*  Phase of the analog clock. See SetPhaseRegister for details.\r
-*\r
-*******************************************************************************/\r
-uint8 SD_Init_Clk_GetPhaseRegister(void) \r
-{\r
-    return SD_Init_Clk_PHASE & SD_Init_Clk_PHASE_MASK;\r
-}\r
-\r
-#endif /* SD_Init_Clk__CFG3 */\r
-\r
-\r
-/* [] END OF FILE */\r
diff --git a/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_Init_Clk.h b/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_Init_Clk.h
deleted file mode 100755 (executable)
index df7e48b..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************\r
-* File Name: SD_Init_Clk.h\r
-* Version 2.10\r
-*\r
-*  Description:\r
-*   Provides the function and constant definitions for the clock component.\r
-*\r
-*  Note:\r
-*\r
-********************************************************************************\r
-* Copyright 2008-2012, Cypress Semiconductor Corporation.  All rights reserved.\r
-* You may use this file only in accordance with the license, terms, conditions, \r
-* disclaimers, and limitations in the end user license agreement accompanying \r
-* the software package with which this file was provided.\r
-*******************************************************************************/\r
-\r
-#if !defined(CY_CLOCK_SD_Init_Clk_H)\r
-#define CY_CLOCK_SD_Init_Clk_H\r
-\r
-#include <cytypes.h>\r
-#include <cyfitter.h>\r
-\r
-\r
-/***************************************\r
-* Conditional Compilation Parameters\r
-***************************************/\r
-\r
-/* Check to see if required defines such as CY_PSOC5LP are available */\r
-/* They are defined starting with cy_boot v3.0 */\r
-#if !defined (CY_PSOC5LP)\r
-    #error Component cy_clock_v2_10 requires cy_boot v3.0 or later\r
-#endif /* (CY_PSOC5LP) */\r
-\r
-\r
-/***************************************\r
-*        Function Prototypes\r
-***************************************/\r
-\r
-void SD_Init_Clk_Start(void) ;\r
-void SD_Init_Clk_Stop(void) ;\r
-\r
-#if(CY_PSOC3 || CY_PSOC5LP)\r
-void SD_Init_Clk_StopBlock(void) ;\r
-#endif /* (CY_PSOC3 || CY_PSOC5LP) */\r
-\r
-void SD_Init_Clk_StandbyPower(uint8 state) ;\r
-void SD_Init_Clk_SetDividerRegister(uint16 clkDivider, uint8 restart) \r
-                                ;\r
-uint16 SD_Init_Clk_GetDividerRegister(void) ;\r
-void SD_Init_Clk_SetModeRegister(uint8 modeBitMask) ;\r
-void SD_Init_Clk_ClearModeRegister(uint8 modeBitMask) ;\r
-uint8 SD_Init_Clk_GetModeRegister(void) ;\r
-void SD_Init_Clk_SetSourceRegister(uint8 clkSource) ;\r
-uint8 SD_Init_Clk_GetSourceRegister(void) ;\r
-#if defined(SD_Init_Clk__CFG3)\r
-void SD_Init_Clk_SetPhaseRegister(uint8 clkPhase) ;\r
-uint8 SD_Init_Clk_GetPhaseRegister(void) ;\r
-#endif /* defined(SD_Init_Clk__CFG3) */\r
-\r
-#define SD_Init_Clk_Enable()                       SD_Init_Clk_Start()\r
-#define SD_Init_Clk_Disable()                      SD_Init_Clk_Stop()\r
-#define SD_Init_Clk_SetDivider(clkDivider)         SD_Init_Clk_SetDividerRegister(clkDivider, 1u)\r
-#define SD_Init_Clk_SetDividerValue(clkDivider)    SD_Init_Clk_SetDividerRegister((clkDivider) - 1u, 1u)\r
-#define SD_Init_Clk_SetMode(clkMode)               SD_Init_Clk_SetModeRegister(clkMode)\r
-#define SD_Init_Clk_SetSource(clkSource)           SD_Init_Clk_SetSourceRegister(clkSource)\r
-#if defined(SD_Init_Clk__CFG3)\r
-#define SD_Init_Clk_SetPhase(clkPhase)             SD_Init_Clk_SetPhaseRegister(clkPhase)\r
-#define SD_Init_Clk_SetPhaseValue(clkPhase)        SD_Init_Clk_SetPhaseRegister((clkPhase) + 1u)\r
-#endif /* defined(SD_Init_Clk__CFG3) */\r
-\r
-\r
-/***************************************\r
-*             Registers\r
-***************************************/\r
-\r
-/* Register to enable or disable the clock */\r
-#define SD_Init_Clk_CLKEN              (* (reg8 *) SD_Init_Clk__PM_ACT_CFG)\r
-#define SD_Init_Clk_CLKEN_PTR          ((reg8 *) SD_Init_Clk__PM_ACT_CFG)\r
-\r
-/* Register to enable or disable the clock */\r
-#define SD_Init_Clk_CLKSTBY            (* (reg8 *) SD_Init_Clk__PM_STBY_CFG)\r
-#define SD_Init_Clk_CLKSTBY_PTR        ((reg8 *) SD_Init_Clk__PM_STBY_CFG)\r
-\r
-/* Clock LSB divider configuration register. */\r
-#define SD_Init_Clk_DIV_LSB            (* (reg8 *) SD_Init_Clk__CFG0)\r
-#define SD_Init_Clk_DIV_LSB_PTR        ((reg8 *) SD_Init_Clk__CFG0)\r
-#define SD_Init_Clk_DIV_PTR            ((reg16 *) SD_Init_Clk__CFG0)\r
-\r
-/* Clock MSB divider configuration register. */\r
-#define SD_Init_Clk_DIV_MSB            (* (reg8 *) SD_Init_Clk__CFG1)\r
-#define SD_Init_Clk_DIV_MSB_PTR        ((reg8 *) SD_Init_Clk__CFG1)\r
-\r
-/* Mode and source configuration register */\r
-#define SD_Init_Clk_MOD_SRC            (* (reg8 *) SD_Init_Clk__CFG2)\r
-#define SD_Init_Clk_MOD_SRC_PTR        ((reg8 *) SD_Init_Clk__CFG2)\r
-\r
-#if defined(SD_Init_Clk__CFG3)\r
-/* Analog clock phase configuration register */\r
-#define SD_Init_Clk_PHASE              (* (reg8 *) SD_Init_Clk__CFG3)\r
-#define SD_Init_Clk_PHASE_PTR          ((reg8 *) SD_Init_Clk__CFG3)\r
-#endif /* defined(SD_Init_Clk__CFG3) */\r
-\r
-\r
-/**************************************\r
-*       Register Constants\r
-**************************************/\r
-\r
-/* Power manager register masks */\r
-#define SD_Init_Clk_CLKEN_MASK         SD_Init_Clk__PM_ACT_MSK\r
-#define SD_Init_Clk_CLKSTBY_MASK       SD_Init_Clk__PM_STBY_MSK\r
-\r
-/* CFG2 field masks */\r
-#define SD_Init_Clk_SRC_SEL_MSK        SD_Init_Clk__CFG2_SRC_SEL_MASK\r
-#define SD_Init_Clk_MODE_MASK          (~(SD_Init_Clk_SRC_SEL_MSK))\r
-\r
-#if defined(SD_Init_Clk__CFG3)\r
-/* CFG3 phase mask */\r
-#define SD_Init_Clk_PHASE_MASK         SD_Init_Clk__CFG3_PHASE_DLY_MASK\r
-#endif /* defined(SD_Init_Clk__CFG3) */\r
-\r
-#endif /* CY_CLOCK_SD_Init_Clk_H */\r
-\r
-\r
-/* [] END OF FILE */\r
diff --git a/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_RX_DMA_COMPLETE.c b/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_RX_DMA_COMPLETE.c
new file mode 100644 (file)
index 0000000..2671e74
--- /dev/null
@@ -0,0 +1,356 @@
+/*******************************************************************************
+* File Name: SD_RX_DMA_COMPLETE.c  
+* Version 1.70
+*
+*  Description:
+*   API for controlling the state of an interrupt.
+*
+*
+*  Note:
+*
+********************************************************************************
+* Copyright 2008-2012, Cypress Semiconductor Corporation.  All rights reserved.
+* You may use this file only in accordance with the license, terms, conditions, 
+* disclaimers, and limitations in the end user license agreement accompanying 
+* the software package with which this file was provided.
+*******************************************************************************/
+
+
+#include <cydevice_trm.h>
+#include <CyLib.h>
+#include <SD_RX_DMA_COMPLETE.h>
+
+#if !defined(SD_RX_DMA_COMPLETE__REMOVED) /* Check for removal by optimization */
+
+/*******************************************************************************
+*  Place your includes, defines and code here 
+********************************************************************************/
+/* `#START SD_RX_DMA_COMPLETE_intc` */
+
+/* `#END` */
+
+#ifndef CYINT_IRQ_BASE
+#define CYINT_IRQ_BASE      16
+#endif /* CYINT_IRQ_BASE */
+#ifndef CYINT_VECT_TABLE
+#define CYINT_VECT_TABLE    ((cyisraddress **) CYREG_NVIC_VECT_OFFSET)
+#endif /* CYINT_VECT_TABLE */
+
+/* Declared in startup, used to set unused interrupts to. */
+CY_ISR_PROTO(IntDefaultHandler);
+
+
+/*******************************************************************************
+* Function Name: SD_RX_DMA_COMPLETE_Start
+********************************************************************************
+*
+* Summary:
+*  Set up the interrupt and enable it.
+*
+* Parameters:  
+*   None
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SD_RX_DMA_COMPLETE_Start(void)
+{
+    /* For all we know the interrupt is active. */
+    SD_RX_DMA_COMPLETE_Disable();
+
+    /* Set the ISR to point to the SD_RX_DMA_COMPLETE Interrupt. */
+    SD_RX_DMA_COMPLETE_SetVector(&SD_RX_DMA_COMPLETE_Interrupt);
+
+    /* Set the priority. */
+    SD_RX_DMA_COMPLETE_SetPriority((uint8)SD_RX_DMA_COMPLETE_INTC_PRIOR_NUMBER);
+
+    /* Enable it. */
+    SD_RX_DMA_COMPLETE_Enable();
+}
+
+
+/*******************************************************************************
+* Function Name: SD_RX_DMA_COMPLETE_StartEx
+********************************************************************************
+*
+* Summary:
+*  Set up the interrupt and enable it.
+*
+* Parameters:  
+*   address: Address of the ISR to set in the interrupt vector table.
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SD_RX_DMA_COMPLETE_StartEx(cyisraddress address)
+{
+    /* For all we know the interrupt is active. */
+    SD_RX_DMA_COMPLETE_Disable();
+
+    /* Set the ISR to point to the SD_RX_DMA_COMPLETE Interrupt. */
+    SD_RX_DMA_COMPLETE_SetVector(address);
+
+    /* Set the priority. */
+    SD_RX_DMA_COMPLETE_SetPriority((uint8)SD_RX_DMA_COMPLETE_INTC_PRIOR_NUMBER);
+
+    /* Enable it. */
+    SD_RX_DMA_COMPLETE_Enable();
+}
+
+
+/*******************************************************************************
+* Function Name: SD_RX_DMA_COMPLETE_Stop
+********************************************************************************
+*
+* Summary:
+*   Disables and removes the interrupt.
+*
+* Parameters:  
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SD_RX_DMA_COMPLETE_Stop(void)
+{
+    /* Disable this interrupt. */
+    SD_RX_DMA_COMPLETE_Disable();
+
+    /* Set the ISR to point to the passive one. */
+    SD_RX_DMA_COMPLETE_SetVector(&IntDefaultHandler);
+}
+
+
+/*******************************************************************************
+* Function Name: SD_RX_DMA_COMPLETE_Interrupt
+********************************************************************************
+*
+* Summary:
+*   The default Interrupt Service Routine for SD_RX_DMA_COMPLETE.
+*
+*   Add custom code between the coments to keep the next version of this file
+*   from over writting your code.
+*
+* Parameters:  
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+CY_ISR(SD_RX_DMA_COMPLETE_Interrupt)
+{
+    /*  Place your Interrupt code here. */
+    /* `#START SD_RX_DMA_COMPLETE_Interrupt` */
+
+    /* `#END` */
+}
+
+
+/*******************************************************************************
+* Function Name: SD_RX_DMA_COMPLETE_SetVector
+********************************************************************************
+*
+* Summary:
+*   Change the ISR vector for the Interrupt. Note calling SD_RX_DMA_COMPLETE_Start
+*   will override any effect this method would have had. To set the vector 
+*   before the component has been started use SD_RX_DMA_COMPLETE_StartEx instead.
+*
+* Parameters:
+*   address: Address of the ISR to set in the interrupt vector table.
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SD_RX_DMA_COMPLETE_SetVector(cyisraddress address)
+{
+    cyisraddress * ramVectorTable;
+
+    ramVectorTable = (cyisraddress *) *CYINT_VECT_TABLE;
+
+    ramVectorTable[CYINT_IRQ_BASE + (uint32)SD_RX_DMA_COMPLETE__INTC_NUMBER] = address;
+}
+
+
+/*******************************************************************************
+* Function Name: SD_RX_DMA_COMPLETE_GetVector
+********************************************************************************
+*
+* Summary:
+*   Gets the "address" of the current ISR vector for the Interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   Address of the ISR in the interrupt vector table.
+*
+*******************************************************************************/
+cyisraddress SD_RX_DMA_COMPLETE_GetVector(void)
+{
+    cyisraddress * ramVectorTable;
+
+    ramVectorTable = (cyisraddress *) *CYINT_VECT_TABLE;
+
+    return ramVectorTable[CYINT_IRQ_BASE + (uint32)SD_RX_DMA_COMPLETE__INTC_NUMBER];
+}
+
+
+/*******************************************************************************
+* Function Name: SD_RX_DMA_COMPLETE_SetPriority
+********************************************************************************
+*
+* Summary:
+*   Sets the Priority of the Interrupt. Note calling SD_RX_DMA_COMPLETE_Start
+*   or SD_RX_DMA_COMPLETE_StartEx will override any effect this method 
+*   would have had. This method should only be called after 
+*   SD_RX_DMA_COMPLETE_Start or SD_RX_DMA_COMPLETE_StartEx has been called. To set 
+*   the initial priority for the component use the cydwr file in the tool.
+*
+* Parameters:
+*   priority: Priority of the interrupt. 0 - 7, 0 being the highest.
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SD_RX_DMA_COMPLETE_SetPriority(uint8 priority)
+{
+    *SD_RX_DMA_COMPLETE_INTC_PRIOR = priority << 5;
+}
+
+
+/*******************************************************************************
+* Function Name: SD_RX_DMA_COMPLETE_GetPriority
+********************************************************************************
+*
+* Summary:
+*   Gets the Priority of the Interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   Priority of the interrupt. 0 - 7, 0 being the highest.
+*
+*******************************************************************************/
+uint8 SD_RX_DMA_COMPLETE_GetPriority(void)
+{
+    uint8 priority;
+
+
+    priority = *SD_RX_DMA_COMPLETE_INTC_PRIOR >> 5;
+
+    return priority;
+}
+
+
+/*******************************************************************************
+* Function Name: SD_RX_DMA_COMPLETE_Enable
+********************************************************************************
+*
+* Summary:
+*   Enables the interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SD_RX_DMA_COMPLETE_Enable(void)
+{
+    /* Enable the general interrupt. */
+    *SD_RX_DMA_COMPLETE_INTC_SET_EN = SD_RX_DMA_COMPLETE__INTC_MASK;
+}
+
+
+/*******************************************************************************
+* Function Name: SD_RX_DMA_COMPLETE_GetState
+********************************************************************************
+*
+* Summary:
+*   Gets the state (enabled, disabled) of the Interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   1 if enabled, 0 if disabled.
+*
+*******************************************************************************/
+uint8 SD_RX_DMA_COMPLETE_GetState(void)
+{
+    /* Get the state of the general interrupt. */
+    return ((*SD_RX_DMA_COMPLETE_INTC_SET_EN & (uint32)SD_RX_DMA_COMPLETE__INTC_MASK) != 0u) ? 1u:0u;
+}
+
+
+/*******************************************************************************
+* Function Name: SD_RX_DMA_COMPLETE_Disable
+********************************************************************************
+*
+* Summary:
+*   Disables the Interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SD_RX_DMA_COMPLETE_Disable(void)
+{
+    /* Disable the general interrupt. */
+    *SD_RX_DMA_COMPLETE_INTC_CLR_EN = SD_RX_DMA_COMPLETE__INTC_MASK;
+}
+
+
+/*******************************************************************************
+* Function Name: SD_RX_DMA_COMPLETE_SetPending
+********************************************************************************
+*
+* Summary:
+*   Causes the Interrupt to enter the pending state, a software method of
+*   generating the interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SD_RX_DMA_COMPLETE_SetPending(void)
+{
+    *SD_RX_DMA_COMPLETE_INTC_SET_PD = SD_RX_DMA_COMPLETE__INTC_MASK;
+}
+
+
+/*******************************************************************************
+* Function Name: SD_RX_DMA_COMPLETE_ClearPending
+********************************************************************************
+*
+* Summary:
+*   Clears a pending interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SD_RX_DMA_COMPLETE_ClearPending(void)
+{
+    *SD_RX_DMA_COMPLETE_INTC_CLR_PD = SD_RX_DMA_COMPLETE__INTC_MASK;
+}
+
+#endif /* End check for removal by optimization */
+
+
+/* [] END OF FILE */
diff --git a/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_RX_DMA_COMPLETE.h b/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_RX_DMA_COMPLETE.h
new file mode 100644 (file)
index 0000000..d1751d1
--- /dev/null
@@ -0,0 +1,70 @@
+/*******************************************************************************
+* File Name: SD_RX_DMA_COMPLETE.h
+* Version 1.70
+*
+*  Description:
+*   Provides the function definitions for the Interrupt Controller.
+*
+*
+********************************************************************************
+* Copyright 2008-2012, Cypress Semiconductor Corporation.  All rights reserved.
+* You may use this file only in accordance with the license, terms, conditions, 
+* disclaimers, and limitations in the end user license agreement accompanying 
+* the software package with which this file was provided.
+*******************************************************************************/
+#if !defined(CY_ISR_SD_RX_DMA_COMPLETE_H)
+#define CY_ISR_SD_RX_DMA_COMPLETE_H
+
+
+#include <cytypes.h>
+#include <cyfitter.h>
+
+/* Interrupt Controller API. */
+void SD_RX_DMA_COMPLETE_Start(void);
+void SD_RX_DMA_COMPLETE_StartEx(cyisraddress address);
+void SD_RX_DMA_COMPLETE_Stop(void);
+
+CY_ISR_PROTO(SD_RX_DMA_COMPLETE_Interrupt);
+
+void SD_RX_DMA_COMPLETE_SetVector(cyisraddress address);
+cyisraddress SD_RX_DMA_COMPLETE_GetVector(void);
+
+void SD_RX_DMA_COMPLETE_SetPriority(uint8 priority);
+uint8 SD_RX_DMA_COMPLETE_GetPriority(void);
+
+void SD_RX_DMA_COMPLETE_Enable(void);
+uint8 SD_RX_DMA_COMPLETE_GetState(void);
+void SD_RX_DMA_COMPLETE_Disable(void);
+
+void SD_RX_DMA_COMPLETE_SetPending(void);
+void SD_RX_DMA_COMPLETE_ClearPending(void);
+
+
+/* Interrupt Controller Constants */
+
+/* Address of the INTC.VECT[x] register that contains the Address of the SD_RX_DMA_COMPLETE ISR. */
+#define SD_RX_DMA_COMPLETE_INTC_VECTOR            ((reg32 *) SD_RX_DMA_COMPLETE__INTC_VECT)
+
+/* Address of the SD_RX_DMA_COMPLETE ISR priority. */
+#define SD_RX_DMA_COMPLETE_INTC_PRIOR             ((reg8 *) SD_RX_DMA_COMPLETE__INTC_PRIOR_REG)
+
+/* Priority of the SD_RX_DMA_COMPLETE interrupt. */
+#define SD_RX_DMA_COMPLETE_INTC_PRIOR_NUMBER      SD_RX_DMA_COMPLETE__INTC_PRIOR_NUM
+
+/* Address of the INTC.SET_EN[x] byte to bit enable SD_RX_DMA_COMPLETE interrupt. */
+#define SD_RX_DMA_COMPLETE_INTC_SET_EN            ((reg32 *) SD_RX_DMA_COMPLETE__INTC_SET_EN_REG)
+
+/* Address of the INTC.CLR_EN[x] register to bit clear the SD_RX_DMA_COMPLETE interrupt. */
+#define SD_RX_DMA_COMPLETE_INTC_CLR_EN            ((reg32 *) SD_RX_DMA_COMPLETE__INTC_CLR_EN_REG)
+
+/* Address of the INTC.SET_PD[x] register to set the SD_RX_DMA_COMPLETE interrupt state to pending. */
+#define SD_RX_DMA_COMPLETE_INTC_SET_PD            ((reg32 *) SD_RX_DMA_COMPLETE__INTC_SET_PD_REG)
+
+/* Address of the INTC.CLR_PD[x] register to clear the SD_RX_DMA_COMPLETE interrupt. */
+#define SD_RX_DMA_COMPLETE_INTC_CLR_PD            ((reg32 *) SD_RX_DMA_COMPLETE__INTC_CLR_PD_REG)
+
+
+#endif /* CY_ISR_SD_RX_DMA_COMPLETE_H */
+
+
+/* [] END OF FILE */
diff --git a/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_RX_DMA_dma.c b/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_RX_DMA_dma.c
new file mode 100644 (file)
index 0000000..b2b9bf1
--- /dev/null
@@ -0,0 +1,141 @@
+/***************************************************************************
+* File Name: SD_RX_DMA_dma.c  
+* Version 1.70
+*
+*  Description:
+*   Provides an API for the DMAC component. The API includes functions
+*   for the DMA controller, DMA channels and Transfer Descriptors.
+*
+*
+*   Note:
+*     This module requires the developer to finish or fill in the auto
+*     generated funcions and setup the dma channel and TD's.
+*
+********************************************************************************
+* Copyright 2008-2010, Cypress Semiconductor Corporation.  All rights reserved.
+* You may use this file only in accordance with the license, terms, conditions, 
+* disclaimers, and limitations in the end user license agreement accompanying 
+* the software package with which this file was provided.
+********************************************************************************/
+#include <CYLIB.H>
+#include <CYDMAC.H>
+#include <SD_RX_DMA_dma.H>
+
+
+
+/****************************************************************************
+* 
+* The following defines are available in Cyfitter.h
+* 
+* 
+* 
+* SD_RX_DMA__DRQ_CTL_REG
+* 
+* 
+* SD_RX_DMA__DRQ_NUMBER
+* 
+* Number of TD's used by this channel.
+* SD_RX_DMA__NUMBEROF_TDS
+* 
+* Priority of this channel.
+* SD_RX_DMA__PRIORITY
+* 
+* True if SD_RX_DMA_TERMIN_SEL is used.
+* SD_RX_DMA__TERMIN_EN
+* 
+* TERMIN interrupt line to signal terminate.
+* SD_RX_DMA__TERMIN_SEL
+* 
+* 
+* True if SD_RX_DMA_TERMOUT0_SEL is used.
+* SD_RX_DMA__TERMOUT0_EN
+* 
+* 
+* TERMOUT0 interrupt line to signal completion.
+* SD_RX_DMA__TERMOUT0_SEL
+* 
+* 
+* True if SD_RX_DMA_TERMOUT1_SEL is used.
+* SD_RX_DMA__TERMOUT1_EN
+* 
+* 
+* TERMOUT1 interrupt line to signal completion.
+* SD_RX_DMA__TERMOUT1_SEL
+* 
+****************************************************************************/
+
+
+/* Zero based index of SD_RX_DMA dma channel */
+uint8 SD_RX_DMA_DmaHandle = DMA_INVALID_CHANNEL;
+
+/*********************************************************************
+* Function Name: uint8 SD_RX_DMA_DmaInitalize
+**********************************************************************
+* Summary:
+*   Allocates and initialises a channel of the DMAC to be used by the
+*   caller.
+*
+* Parameters:
+*   BurstCount.
+*       
+*       
+*   ReqestPerBurst.
+*       
+*       
+*   UpperSrcAddress.
+*       
+*       
+*   UpperDestAddress.
+*       
+*
+* Return:
+*   The channel that can be used by the caller for DMA activity.
+*   DMA_INVALID_CHANNEL (0xFF) if there are no channels left. 
+*
+*
+*******************************************************************/
+uint8 SD_RX_DMA_DmaInitialize(uint8 BurstCount, uint8 ReqestPerBurst, uint16 UpperSrcAddress, uint16 UpperDestAddress) 
+{
+
+    /* Allocate a DMA channel. */
+    SD_RX_DMA_DmaHandle = (uint8)SD_RX_DMA__DRQ_NUMBER;
+
+    /* Configure the channel. */
+    (void)CyDmaChSetConfiguration(SD_RX_DMA_DmaHandle,
+                                  BurstCount,
+                                  ReqestPerBurst,
+                                  (uint8)SD_RX_DMA__TERMOUT0_SEL,
+                                  (uint8)SD_RX_DMA__TERMOUT1_SEL,
+                                  (uint8)SD_RX_DMA__TERMIN_SEL);
+
+    /* Set the extended address for the transfers */
+    (void)CyDmaChSetExtendedAddress(SD_RX_DMA_DmaHandle, UpperSrcAddress, UpperDestAddress);
+
+    /* Set the priority for this channel */
+    (void)CyDmaChPriority(SD_RX_DMA_DmaHandle, (uint8)SD_RX_DMA__PRIORITY);
+    
+    return SD_RX_DMA_DmaHandle;
+}
+
+/*********************************************************************
+* Function Name: void SD_RX_DMA_DmaRelease
+**********************************************************************
+* Summary:
+*   Frees the channel associated with SD_RX_DMA.
+*
+*
+* Parameters:
+*   void.
+*
+*
+*
+* Return:
+*   void.
+*
+*******************************************************************/
+void SD_RX_DMA_DmaRelease(void) 
+{
+    /* Disable the channel */
+    (void)CyDmaChDisable(SD_RX_DMA_DmaHandle);
+}
+
diff --git a/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_RX_DMA_dma.h b/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_RX_DMA_dma.h
new file mode 100644 (file)
index 0000000..c38d0da
--- /dev/null
@@ -0,0 +1,35 @@
+/******************************************************************************
+* File Name: SD_RX_DMA_dma.h  
+* Version 1.70
+*
+*  Description:
+*   Provides the function definitions for the DMA Controller.
+*
+*
+********************************************************************************
+* Copyright 2008-2010, Cypress Semiconductor Corporation.  All rights reserved.
+* You may use this file only in accordance with the license, terms, conditions, 
+* disclaimers, and limitations in the end user license agreement accompanying 
+* the software package with which this file was provided.
+********************************************************************************/
+#if !defined(CY_DMA_SD_RX_DMA_DMA_H__)
+#define CY_DMA_SD_RX_DMA_DMA_H__
+
+
+
+#include <CYDMAC.H>
+#include <CYFITTER.H>
+
+#define SD_RX_DMA__TD_TERMOUT_EN (((0 != SD_RX_DMA__TERMOUT0_EN) ? TD_TERMOUT0_EN : 0) | \
+    (SD_RX_DMA__TERMOUT1_EN ? TD_TERMOUT1_EN : 0))
+
+/* Zero based index of SD_RX_DMA dma channel */
+extern uint8 SD_RX_DMA_DmaHandle;
+
+
+uint8 SD_RX_DMA_DmaInitialize(uint8 BurstCount, uint8 ReqestPerBurst, uint16 UpperSrcAddress, uint16 UpperDestAddress) ;
+void  SD_RX_DMA_DmaRelease(void) ;
+
+
+/* CY_DMA_SD_RX_DMA_DMA_H__ */
+#endif
diff --git a/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_TX_DMA_COMPLETE.c b/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_TX_DMA_COMPLETE.c
new file mode 100644 (file)
index 0000000..7998256
--- /dev/null
@@ -0,0 +1,356 @@
+/*******************************************************************************
+* File Name: SD_TX_DMA_COMPLETE.c  
+* Version 1.70
+*
+*  Description:
+*   API for controlling the state of an interrupt.
+*
+*
+*  Note:
+*
+********************************************************************************
+* Copyright 2008-2012, Cypress Semiconductor Corporation.  All rights reserved.
+* You may use this file only in accordance with the license, terms, conditions, 
+* disclaimers, and limitations in the end user license agreement accompanying 
+* the software package with which this file was provided.
+*******************************************************************************/
+
+
+#include <cydevice_trm.h>
+#include <CyLib.h>
+#include <SD_TX_DMA_COMPLETE.h>
+
+#if !defined(SD_TX_DMA_COMPLETE__REMOVED) /* Check for removal by optimization */
+
+/*******************************************************************************
+*  Place your includes, defines and code here 
+********************************************************************************/
+/* `#START SD_TX_DMA_COMPLETE_intc` */
+
+/* `#END` */
+
+#ifndef CYINT_IRQ_BASE
+#define CYINT_IRQ_BASE      16
+#endif /* CYINT_IRQ_BASE */
+#ifndef CYINT_VECT_TABLE
+#define CYINT_VECT_TABLE    ((cyisraddress **) CYREG_NVIC_VECT_OFFSET)
+#endif /* CYINT_VECT_TABLE */
+
+/* Declared in startup, used to set unused interrupts to. */
+CY_ISR_PROTO(IntDefaultHandler);
+
+
+/*******************************************************************************
+* Function Name: SD_TX_DMA_COMPLETE_Start
+********************************************************************************
+*
+* Summary:
+*  Set up the interrupt and enable it.
+*
+* Parameters:  
+*   None
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SD_TX_DMA_COMPLETE_Start(void)
+{
+    /* For all we know the interrupt is active. */
+    SD_TX_DMA_COMPLETE_Disable();
+
+    /* Set the ISR to point to the SD_TX_DMA_COMPLETE Interrupt. */
+    SD_TX_DMA_COMPLETE_SetVector(&SD_TX_DMA_COMPLETE_Interrupt);
+
+    /* Set the priority. */
+    SD_TX_DMA_COMPLETE_SetPriority((uint8)SD_TX_DMA_COMPLETE_INTC_PRIOR_NUMBER);
+
+    /* Enable it. */
+    SD_TX_DMA_COMPLETE_Enable();
+}
+
+
+/*******************************************************************************
+* Function Name: SD_TX_DMA_COMPLETE_StartEx
+********************************************************************************
+*
+* Summary:
+*  Set up the interrupt and enable it.
+*
+* Parameters:  
+*   address: Address of the ISR to set in the interrupt vector table.
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SD_TX_DMA_COMPLETE_StartEx(cyisraddress address)
+{
+    /* For all we know the interrupt is active. */
+    SD_TX_DMA_COMPLETE_Disable();
+
+    /* Set the ISR to point to the SD_TX_DMA_COMPLETE Interrupt. */
+    SD_TX_DMA_COMPLETE_SetVector(address);
+
+    /* Set the priority. */
+    SD_TX_DMA_COMPLETE_SetPriority((uint8)SD_TX_DMA_COMPLETE_INTC_PRIOR_NUMBER);
+
+    /* Enable it. */
+    SD_TX_DMA_COMPLETE_Enable();
+}
+
+
+/*******************************************************************************
+* Function Name: SD_TX_DMA_COMPLETE_Stop
+********************************************************************************
+*
+* Summary:
+*   Disables and removes the interrupt.
+*
+* Parameters:  
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SD_TX_DMA_COMPLETE_Stop(void)
+{
+    /* Disable this interrupt. */
+    SD_TX_DMA_COMPLETE_Disable();
+
+    /* Set the ISR to point to the passive one. */
+    SD_TX_DMA_COMPLETE_SetVector(&IntDefaultHandler);
+}
+
+
+/*******************************************************************************
+* Function Name: SD_TX_DMA_COMPLETE_Interrupt
+********************************************************************************
+*
+* Summary:
+*   The default Interrupt Service Routine for SD_TX_DMA_COMPLETE.
+*
+*   Add custom code between the coments to keep the next version of this file
+*   from over writting your code.
+*
+* Parameters:  
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+CY_ISR(SD_TX_DMA_COMPLETE_Interrupt)
+{
+    /*  Place your Interrupt code here. */
+    /* `#START SD_TX_DMA_COMPLETE_Interrupt` */
+
+    /* `#END` */
+}
+
+
+/*******************************************************************************
+* Function Name: SD_TX_DMA_COMPLETE_SetVector
+********************************************************************************
+*
+* Summary:
+*   Change the ISR vector for the Interrupt. Note calling SD_TX_DMA_COMPLETE_Start
+*   will override any effect this method would have had. To set the vector 
+*   before the component has been started use SD_TX_DMA_COMPLETE_StartEx instead.
+*
+* Parameters:
+*   address: Address of the ISR to set in the interrupt vector table.
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SD_TX_DMA_COMPLETE_SetVector(cyisraddress address)
+{
+    cyisraddress * ramVectorTable;
+
+    ramVectorTable = (cyisraddress *) *CYINT_VECT_TABLE;
+
+    ramVectorTable[CYINT_IRQ_BASE + (uint32)SD_TX_DMA_COMPLETE__INTC_NUMBER] = address;
+}
+
+
+/*******************************************************************************
+* Function Name: SD_TX_DMA_COMPLETE_GetVector
+********************************************************************************
+*
+* Summary:
+*   Gets the "address" of the current ISR vector for the Interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   Address of the ISR in the interrupt vector table.
+*
+*******************************************************************************/
+cyisraddress SD_TX_DMA_COMPLETE_GetVector(void)
+{
+    cyisraddress * ramVectorTable;
+
+    ramVectorTable = (cyisraddress *) *CYINT_VECT_TABLE;
+
+    return ramVectorTable[CYINT_IRQ_BASE + (uint32)SD_TX_DMA_COMPLETE__INTC_NUMBER];
+}
+
+
+/*******************************************************************************
+* Function Name: SD_TX_DMA_COMPLETE_SetPriority
+********************************************************************************
+*
+* Summary:
+*   Sets the Priority of the Interrupt. Note calling SD_TX_DMA_COMPLETE_Start
+*   or SD_TX_DMA_COMPLETE_StartEx will override any effect this method 
+*   would have had. This method should only be called after 
+*   SD_TX_DMA_COMPLETE_Start or SD_TX_DMA_COMPLETE_StartEx has been called. To set 
+*   the initial priority for the component use the cydwr file in the tool.
+*
+* Parameters:
+*   priority: Priority of the interrupt. 0 - 7, 0 being the highest.
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SD_TX_DMA_COMPLETE_SetPriority(uint8 priority)
+{
+    *SD_TX_DMA_COMPLETE_INTC_PRIOR = priority << 5;
+}
+
+
+/*******************************************************************************
+* Function Name: SD_TX_DMA_COMPLETE_GetPriority
+********************************************************************************
+*
+* Summary:
+*   Gets the Priority of the Interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   Priority of the interrupt. 0 - 7, 0 being the highest.
+*
+*******************************************************************************/
+uint8 SD_TX_DMA_COMPLETE_GetPriority(void)
+{
+    uint8 priority;
+
+
+    priority = *SD_TX_DMA_COMPLETE_INTC_PRIOR >> 5;
+
+    return priority;
+}
+
+
+/*******************************************************************************
+* Function Name: SD_TX_DMA_COMPLETE_Enable
+********************************************************************************
+*
+* Summary:
+*   Enables the interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SD_TX_DMA_COMPLETE_Enable(void)
+{
+    /* Enable the general interrupt. */
+    *SD_TX_DMA_COMPLETE_INTC_SET_EN = SD_TX_DMA_COMPLETE__INTC_MASK;
+}
+
+
+/*******************************************************************************
+* Function Name: SD_TX_DMA_COMPLETE_GetState
+********************************************************************************
+*
+* Summary:
+*   Gets the state (enabled, disabled) of the Interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   1 if enabled, 0 if disabled.
+*
+*******************************************************************************/
+uint8 SD_TX_DMA_COMPLETE_GetState(void)
+{
+    /* Get the state of the general interrupt. */
+    return ((*SD_TX_DMA_COMPLETE_INTC_SET_EN & (uint32)SD_TX_DMA_COMPLETE__INTC_MASK) != 0u) ? 1u:0u;
+}
+
+
+/*******************************************************************************
+* Function Name: SD_TX_DMA_COMPLETE_Disable
+********************************************************************************
+*
+* Summary:
+*   Disables the Interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SD_TX_DMA_COMPLETE_Disable(void)
+{
+    /* Disable the general interrupt. */
+    *SD_TX_DMA_COMPLETE_INTC_CLR_EN = SD_TX_DMA_COMPLETE__INTC_MASK;
+}
+
+
+/*******************************************************************************
+* Function Name: SD_TX_DMA_COMPLETE_SetPending
+********************************************************************************
+*
+* Summary:
+*   Causes the Interrupt to enter the pending state, a software method of
+*   generating the interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SD_TX_DMA_COMPLETE_SetPending(void)
+{
+    *SD_TX_DMA_COMPLETE_INTC_SET_PD = SD_TX_DMA_COMPLETE__INTC_MASK;
+}
+
+
+/*******************************************************************************
+* Function Name: SD_TX_DMA_COMPLETE_ClearPending
+********************************************************************************
+*
+* Summary:
+*   Clears a pending interrupt.
+*
+* Parameters:
+*   None
+*
+* Return:
+*   None
+*
+*******************************************************************************/
+void SD_TX_DMA_COMPLETE_ClearPending(void)
+{
+    *SD_TX_DMA_COMPLETE_INTC_CLR_PD = SD_TX_DMA_COMPLETE__INTC_MASK;
+}
+
+#endif /* End check for removal by optimization */
+
+
+/* [] END OF FILE */
diff --git a/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_TX_DMA_COMPLETE.h b/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_TX_DMA_COMPLETE.h
new file mode 100644 (file)
index 0000000..bbacac6
--- /dev/null
@@ -0,0 +1,70 @@
+/*******************************************************************************
+* File Name: SD_TX_DMA_COMPLETE.h
+* Version 1.70
+*
+*  Description:
+*   Provides the function definitions for the Interrupt Controller.
+*
+*
+********************************************************************************
+* Copyright 2008-2012, Cypress Semiconductor Corporation.  All rights reserved.
+* You may use this file only in accordance with the license, terms, conditions, 
+* disclaimers, and limitations in the end user license agreement accompanying 
+* the software package with which this file was provided.
+*******************************************************************************/
+#if !defined(CY_ISR_SD_TX_DMA_COMPLETE_H)
+#define CY_ISR_SD_TX_DMA_COMPLETE_H
+
+
+#include <cytypes.h>
+#include <cyfitter.h>
+
+/* Interrupt Controller API. */
+void SD_TX_DMA_COMPLETE_Start(void);
+void SD_TX_DMA_COMPLETE_StartEx(cyisraddress address);
+void SD_TX_DMA_COMPLETE_Stop(void);
+
+CY_ISR_PROTO(SD_TX_DMA_COMPLETE_Interrupt);
+
+void SD_TX_DMA_COMPLETE_SetVector(cyisraddress address);
+cyisraddress SD_TX_DMA_COMPLETE_GetVector(void);
+
+void SD_TX_DMA_COMPLETE_SetPriority(uint8 priority);
+uint8 SD_TX_DMA_COMPLETE_GetPriority(void);
+
+void SD_TX_DMA_COMPLETE_Enable(void);
+uint8 SD_TX_DMA_COMPLETE_GetState(void);
+void SD_TX_DMA_COMPLETE_Disable(void);
+
+void SD_TX_DMA_COMPLETE_SetPending(void);
+void SD_TX_DMA_COMPLETE_ClearPending(void);
+
+
+/* Interrupt Controller Constants */
+
+/* Address of the INTC.VECT[x] register that contains the Address of the SD_TX_DMA_COMPLETE ISR. */
+#define SD_TX_DMA_COMPLETE_INTC_VECTOR            ((reg32 *) SD_TX_DMA_COMPLETE__INTC_VECT)
+
+/* Address of the SD_TX_DMA_COMPLETE ISR priority. */
+#define SD_TX_DMA_COMPLETE_INTC_PRIOR             ((reg8 *) SD_TX_DMA_COMPLETE__INTC_PRIOR_REG)
+
+/* Priority of the SD_TX_DMA_COMPLETE interrupt. */
+#define SD_TX_DMA_COMPLETE_INTC_PRIOR_NUMBER      SD_TX_DMA_COMPLETE__INTC_PRIOR_NUM
+
+/* Address of the INTC.SET_EN[x] byte to bit enable SD_TX_DMA_COMPLETE interrupt. */
+#define SD_TX_DMA_COMPLETE_INTC_SET_EN            ((reg32 *) SD_TX_DMA_COMPLETE__INTC_SET_EN_REG)
+
+/* Address of the INTC.CLR_EN[x] register to bit clear the SD_TX_DMA_COMPLETE interrupt. */
+#define SD_TX_DMA_COMPLETE_INTC_CLR_EN            ((reg32 *) SD_TX_DMA_COMPLETE__INTC_CLR_EN_REG)
+
+/* Address of the INTC.SET_PD[x] register to set the SD_TX_DMA_COMPLETE interrupt state to pending. */
+#define SD_TX_DMA_COMPLETE_INTC_SET_PD            ((reg32 *) SD_TX_DMA_COMPLETE__INTC_SET_PD_REG)
+
+/* Address of the INTC.CLR_PD[x] register to clear the SD_TX_DMA_COMPLETE interrupt. */
+#define SD_TX_DMA_COMPLETE_INTC_CLR_PD            ((reg32 *) SD_TX_DMA_COMPLETE__INTC_CLR_PD_REG)
+
+
+#endif /* CY_ISR_SD_TX_DMA_COMPLETE_H */
+
+
+/* [] END OF FILE */
diff --git a/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_TX_DMA_dma.c b/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_TX_DMA_dma.c
new file mode 100644 (file)
index 0000000..4f605c2
--- /dev/null
@@ -0,0 +1,141 @@
+/***************************************************************************
+* File Name: SD_TX_DMA_dma.c  
+* Version 1.70
+*
+*  Description:
+*   Provides an API for the DMAC component. The API includes functions
+*   for the DMA controller, DMA channels and Transfer Descriptors.
+*
+*
+*   Note:
+*     This module requires the developer to finish or fill in the auto
+*     generated funcions and setup the dma channel and TD's.
+*
+********************************************************************************
+* Copyright 2008-2010, Cypress Semiconductor Corporation.  All rights reserved.
+* You may use this file only in accordance with the license, terms, conditions, 
+* disclaimers, and limitations in the end user license agreement accompanying 
+* the software package with which this file was provided.
+********************************************************************************/
+#include <CYLIB.H>
+#include <CYDMAC.H>
+#include <SD_TX_DMA_dma.H>
+
+
+
+/****************************************************************************
+* 
+* The following defines are available in Cyfitter.h
+* 
+* 
+* 
+* SD_TX_DMA__DRQ_CTL_REG
+* 
+* 
+* SD_TX_DMA__DRQ_NUMBER
+* 
+* Number of TD's used by this channel.
+* SD_TX_DMA__NUMBEROF_TDS
+* 
+* Priority of this channel.
+* SD_TX_DMA__PRIORITY
+* 
+* True if SD_TX_DMA_TERMIN_SEL is used.
+* SD_TX_DMA__TERMIN_EN
+* 
+* TERMIN interrupt line to signal terminate.
+* SD_TX_DMA__TERMIN_SEL
+* 
+* 
+* True if SD_TX_DMA_TERMOUT0_SEL is used.
+* SD_TX_DMA__TERMOUT0_EN
+* 
+* 
+* TERMOUT0 interrupt line to signal completion.
+* SD_TX_DMA__TERMOUT0_SEL
+* 
+* 
+* True if SD_TX_DMA_TERMOUT1_SEL is used.
+* SD_TX_DMA__TERMOUT1_EN
+* 
+* 
+* TERMOUT1 interrupt line to signal completion.
+* SD_TX_DMA__TERMOUT1_SEL
+* 
+****************************************************************************/
+
+
+/* Zero based index of SD_TX_DMA dma channel */
+uint8 SD_TX_DMA_DmaHandle = DMA_INVALID_CHANNEL;
+
+/*********************************************************************
+* Function Name: uint8 SD_TX_DMA_DmaInitalize
+**********************************************************************
+* Summary:
+*   Allocates and initialises a channel of the DMAC to be used by the
+*   caller.
+*
+* Parameters:
+*   BurstCount.
+*       
+*       
+*   ReqestPerBurst.
+*       
+*       
+*   UpperSrcAddress.
+*       
+*       
+*   UpperDestAddress.
+*       
+*
+* Return:
+*   The channel that can be used by the caller for DMA activity.
+*   DMA_INVALID_CHANNEL (0xFF) if there are no channels left. 
+*
+*
+*******************************************************************/
+uint8 SD_TX_DMA_DmaInitialize(uint8 BurstCount, uint8 ReqestPerBurst, uint16 UpperSrcAddress, uint16 UpperDestAddress) 
+{
+
+    /* Allocate a DMA channel. */
+    SD_TX_DMA_DmaHandle = (uint8)SD_TX_DMA__DRQ_NUMBER;
+
+    /* Configure the channel. */
+    (void)CyDmaChSetConfiguration(SD_TX_DMA_DmaHandle,
+                                  BurstCount,
+                                  ReqestPerBurst,
+                                  (uint8)SD_TX_DMA__TERMOUT0_SEL,
+                                  (uint8)SD_TX_DMA__TERMOUT1_SEL,
+                                  (uint8)SD_TX_DMA__TERMIN_SEL);
+
+    /* Set the extended address for the transfers */
+    (void)CyDmaChSetExtendedAddress(SD_TX_DMA_DmaHandle, UpperSrcAddress, UpperDestAddress);
+
+    /* Set the priority for this channel */
+    (void)CyDmaChPriority(SD_TX_DMA_DmaHandle, (uint8)SD_TX_DMA__PRIORITY);
+    
+    return SD_TX_DMA_DmaHandle;
+}
+
+/*********************************************************************
+* Function Name: void SD_TX_DMA_DmaRelease
+**********************************************************************
+* Summary:
+*   Frees the channel associated with SD_TX_DMA.
+*
+*
+* Parameters:
+*   void.
+*
+*
+*
+* Return:
+*   void.
+*
+*******************************************************************/
+void SD_TX_DMA_DmaRelease(void) 
+{
+    /* Disable the channel */
+    (void)CyDmaChDisable(SD_TX_DMA_DmaHandle);
+}
+
diff --git a/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_TX_DMA_dma.h b/software/SCSI2SD/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_TX_DMA_dma.h
new file mode 100644 (file)
index 0000000..64a7645
--- /dev/null
@@ -0,0 +1,35 @@
+/******************************************************************************
+* File Name: SD_TX_DMA_dma.h  
+* Version 1.70
+*
+*  Description:
+*   Provides the function definitions for the DMA Controller.
+*
+*
+********************************************************************************
+* Copyright 2008-2010, Cypress Semiconductor Corporation.  All rights reserved.
+* You may use this file only in accordance with the license, terms, conditions, 
+* disclaimers, and limitations in the end user license agreement accompanying 
+* the software package with which this file was provided.
+********************************************************************************/
+#if !defined(CY_DMA_SD_TX_DMA_DMA_H__)
+#define CY_DMA_SD_TX_DMA_DMA_H__
+
+
+
+#include <CYDMAC.H>
+#include <CYFITTER.H>
+
+#define SD_TX_DMA__TD_TERMOUT_EN (((0 != SD_TX_DMA__TERMOUT0_EN) ? TD_TERMOUT0_EN : 0) | \
+    (SD_TX_DMA__TERMOUT1_EN ? TD_TERMOUT1_EN : 0))
+
+/* Zero based index of SD_TX_DMA dma channel */
+extern uint8 SD_TX_DMA_DmaHandle;
+
+
+uint8 SD_TX_DMA_DmaInitialize(uint8 BurstCount, uint8 ReqestPerBurst, uint16 UpperSrcAddress, uint16 UpperDestAddress) ;
+void  SD_TX_DMA_DmaRelease(void) ;
+
+
+/* CY_DMA_SD_TX_DMA_DMA_H__ */
+#endif
old mode 100755 (executable)
new mode 100644 (file)
index 8fdbe98..bd7996b
@@ -6,13 +6,33 @@
 /* Debug_Timer_Interrupt */\r
 #define Debug_Timer_Interrupt__INTC_CLR_EN_REG CYREG_NVIC_CLRENA0\r
 #define Debug_Timer_Interrupt__INTC_CLR_PD_REG CYREG_NVIC_CLRPEND0\r
-#define Debug_Timer_Interrupt__INTC_MASK 0x01u\r
-#define Debug_Timer_Interrupt__INTC_NUMBER 0u\r
+#define Debug_Timer_Interrupt__INTC_MASK 0x02u\r
+#define Debug_Timer_Interrupt__INTC_NUMBER 1u\r
 #define Debug_Timer_Interrupt__INTC_PRIOR_NUM 7u\r
-#define Debug_Timer_Interrupt__INTC_PRIOR_REG CYREG_NVIC_PRI_0\r
+#define Debug_Timer_Interrupt__INTC_PRIOR_REG CYREG_NVIC_PRI_1\r
 #define Debug_Timer_Interrupt__INTC_SET_EN_REG CYREG_NVIC_SETENA0\r
 #define Debug_Timer_Interrupt__INTC_SET_PD_REG CYREG_NVIC_SETPEND0\r
 \r
+/* SCSI_RX_DMA_COMPLETE */\r
+#define SCSI_RX_DMA_COMPLETE__INTC_CLR_EN_REG CYREG_NVIC_CLRENA0\r
+#define SCSI_RX_DMA_COMPLETE__INTC_CLR_PD_REG CYREG_NVIC_CLRPEND0\r
+#define SCSI_RX_DMA_COMPLETE__INTC_MASK 0x01u\r
+#define SCSI_RX_DMA_COMPLETE__INTC_NUMBER 0u\r
+#define SCSI_RX_DMA_COMPLETE__INTC_PRIOR_NUM 7u\r
+#define SCSI_RX_DMA_COMPLETE__INTC_PRIOR_REG CYREG_NVIC_PRI_0\r
+#define SCSI_RX_DMA_COMPLETE__INTC_SET_EN_REG CYREG_NVIC_SETENA0\r
+#define SCSI_RX_DMA_COMPLETE__INTC_SET_PD_REG CYREG_NVIC_SETPEND0\r
+\r
+/* SCSI_TX_DMA_COMPLETE */\r
+#define SCSI_TX_DMA_COMPLETE__INTC_CLR_EN_REG CYREG_NVIC_CLRENA0\r
+#define SCSI_TX_DMA_COMPLETE__INTC_CLR_PD_REG CYREG_NVIC_CLRPEND0\r
+#define SCSI_TX_DMA_COMPLETE__INTC_MASK 0x04u\r
+#define SCSI_TX_DMA_COMPLETE__INTC_NUMBER 2u\r
+#define SCSI_TX_DMA_COMPLETE__INTC_PRIOR_NUM 7u\r
+#define SCSI_TX_DMA_COMPLETE__INTC_PRIOR_REG CYREG_NVIC_PRI_2\r
+#define SCSI_TX_DMA_COMPLETE__INTC_SET_EN_REG CYREG_NVIC_SETENA0\r
+#define SCSI_TX_DMA_COMPLETE__INTC_SET_PD_REG CYREG_NVIC_SETPEND0\r
+\r
 /* Debug_Timer_TimerHW */\r
 #define Debug_Timer_TimerHW__CAP0 CYREG_TMR0_CAP0\r
 #define Debug_Timer_TimerHW__CAP1 CYREG_TMR0_CAP1\r
 #define Debug_Timer_TimerHW__RT1 CYREG_TMR0_RT1\r
 #define Debug_Timer_TimerHW__SR0 CYREG_TMR0_SR0\r
 \r
+/* SD_RX_DMA_COMPLETE */\r
+#define SD_RX_DMA_COMPLETE__INTC_CLR_EN_REG CYREG_NVIC_CLRENA0\r
+#define SD_RX_DMA_COMPLETE__INTC_CLR_PD_REG CYREG_NVIC_CLRPEND0\r
+#define SD_RX_DMA_COMPLETE__INTC_MASK 0x08u\r
+#define SD_RX_DMA_COMPLETE__INTC_NUMBER 3u\r
+#define SD_RX_DMA_COMPLETE__INTC_PRIOR_NUM 7u\r
+#define SD_RX_DMA_COMPLETE__INTC_PRIOR_REG CYREG_NVIC_PRI_3\r
+#define SD_RX_DMA_COMPLETE__INTC_SET_EN_REG CYREG_NVIC_SETENA0\r
+#define SD_RX_DMA_COMPLETE__INTC_SET_PD_REG CYREG_NVIC_SETPEND0\r
+\r
+/* SD_TX_DMA_COMPLETE */\r
+#define SD_TX_DMA_COMPLETE__INTC_CLR_EN_REG CYREG_NVIC_CLRENA0\r
+#define SD_TX_DMA_COMPLETE__INTC_CLR_PD_REG CYREG_NVIC_CLRPEND0\r
+#define SD_TX_DMA_COMPLETE__INTC_MASK 0x10u\r
+#define SD_TX_DMA_COMPLETE__INTC_NUMBER 4u\r
+#define SD_TX_DMA_COMPLETE__INTC_PRIOR_NUM 7u\r
+#define SD_TX_DMA_COMPLETE__INTC_PRIOR_REG CYREG_NVIC_PRI_4\r
+#define SD_TX_DMA_COMPLETE__INTC_SET_EN_REG CYREG_NVIC_SETENA0\r
+#define SD_TX_DMA_COMPLETE__INTC_SET_PD_REG CYREG_NVIC_SETPEND0\r
+\r
 /* USBFS_bus_reset */\r
 #define USBFS_bus_reset__INTC_CLR_EN_REG CYREG_NVIC_CLRENA0\r
 #define USBFS_bus_reset__INTC_CLR_PD_REG CYREG_NVIC_CLRPEND0\r
 /* SCSI_CTL_PHASE */\r
 #define SCSI_CTL_PHASE_Sync_ctrl_reg__0__MASK 0x01u\r
 #define SCSI_CTL_PHASE_Sync_ctrl_reg__0__POS 0\r
-#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG CYREG_B0_UDB05_06_ACTL\r
-#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG CYREG_B0_UDB05_06_CTL\r
-#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG CYREG_B0_UDB05_06_CTL\r
-#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG CYREG_B0_UDB05_06_CTL\r
-#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG CYREG_B0_UDB05_06_CTL\r
-#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_MASK_REG CYREG_B0_UDB05_06_MSK\r
-#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG CYREG_B0_UDB05_06_MSK\r
-#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG CYREG_B0_UDB05_06_MSK\r
-#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG CYREG_B0_UDB05_06_MSK\r
+#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG CYREG_B0_UDB02_03_ACTL\r
+#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG CYREG_B0_UDB02_03_CTL\r
+#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG CYREG_B0_UDB02_03_CTL\r
+#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG CYREG_B0_UDB02_03_CTL\r
+#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG CYREG_B0_UDB02_03_CTL\r
+#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_MASK_REG CYREG_B0_UDB02_03_MSK\r
+#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG CYREG_B0_UDB02_03_MSK\r
+#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG CYREG_B0_UDB02_03_MSK\r
+#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG CYREG_B0_UDB02_03_MSK\r
 #define SCSI_CTL_PHASE_Sync_ctrl_reg__1__MASK 0x02u\r
 #define SCSI_CTL_PHASE_Sync_ctrl_reg__1__POS 1\r
 #define SCSI_CTL_PHASE_Sync_ctrl_reg__2__MASK 0x04u\r
 #define SCSI_CTL_PHASE_Sync_ctrl_reg__2__POS 2\r
-#define SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_AUX_CTL_REG CYREG_B0_UDB05_ACTL\r
-#define SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_REG CYREG_B0_UDB05_CTL\r
-#define SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_ST_REG CYREG_B0_UDB05_ST_CTL\r
-#define SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_REG CYREG_B0_UDB05_CTL\r
-#define SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_ST_REG CYREG_B0_UDB05_ST_CTL\r
+#define SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_AUX_CTL_REG CYREG_B0_UDB02_ACTL\r
+#define SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_REG CYREG_B0_UDB02_CTL\r
+#define SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_ST_REG CYREG_B0_UDB02_ST_CTL\r
+#define SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_REG CYREG_B0_UDB02_CTL\r
+#define SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_ST_REG CYREG_B0_UDB02_ST_CTL\r
 #define SCSI_CTL_PHASE_Sync_ctrl_reg__MASK 0x07u\r
-#define SCSI_CTL_PHASE_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG CYREG_B0_UDB05_MSK_ACTL\r
-#define SCSI_CTL_PHASE_Sync_ctrl_reg__PERIOD_REG CYREG_B0_UDB05_MSK\r
-#define SCSI_CTL_PHASE_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG CYREG_B0_UDB05_MSK_ACTL\r
+#define SCSI_CTL_PHASE_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG CYREG_B0_UDB02_MSK_ACTL\r
+#define SCSI_CTL_PHASE_Sync_ctrl_reg__PERIOD_REG CYREG_B0_UDB02_MSK\r
+#define SCSI_CTL_PHASE_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG CYREG_B0_UDB02_MSK_ACTL\r
 \r
 /* SCSI_Out_Bits */\r
 #define SCSI_Out_Bits_Sync_ctrl_reg__0__MASK 0x01u\r
 #define SCSI_Out_Bits_Sync_ctrl_reg__0__POS 0\r
-#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG CYREG_B0_UDB00_01_ACTL\r
-#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG CYREG_B0_UDB00_01_CTL\r
-#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG CYREG_B0_UDB00_01_CTL\r
-#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG CYREG_B0_UDB00_01_CTL\r
-#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG CYREG_B0_UDB00_01_CTL\r
-#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_MASK_REG CYREG_B0_UDB00_01_MSK\r
-#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG CYREG_B0_UDB00_01_MSK\r
-#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG CYREG_B0_UDB00_01_MSK\r
-#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG CYREG_B0_UDB00_01_MSK\r
+#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG CYREG_B0_UDB12_13_ACTL\r
+#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG CYREG_B0_UDB12_13_CTL\r
+#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG CYREG_B0_UDB12_13_CTL\r
+#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG CYREG_B0_UDB12_13_CTL\r
+#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG CYREG_B0_UDB12_13_CTL\r
+#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_MASK_REG CYREG_B0_UDB12_13_MSK\r
+#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG CYREG_B0_UDB12_13_MSK\r
+#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG CYREG_B0_UDB12_13_MSK\r
+#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG CYREG_B0_UDB12_13_MSK\r
 #define SCSI_Out_Bits_Sync_ctrl_reg__1__MASK 0x02u\r
 #define SCSI_Out_Bits_Sync_ctrl_reg__1__POS 1\r
 #define SCSI_Out_Bits_Sync_ctrl_reg__2__MASK 0x04u\r
 #define SCSI_Out_Bits_Sync_ctrl_reg__6__POS 6\r
 #define SCSI_Out_Bits_Sync_ctrl_reg__7__MASK 0x80u\r
 #define SCSI_Out_Bits_Sync_ctrl_reg__7__POS 7\r
-#define SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_AUX_CTL_REG CYREG_B0_UDB00_ACTL\r
-#define SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_REG CYREG_B0_UDB00_CTL\r
-#define SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_ST_REG CYREG_B0_UDB00_ST_CTL\r
-#define SCSI_Out_Bits_Sync_ctrl_reg__COUNT_REG CYREG_B0_UDB00_CTL\r
-#define SCSI_Out_Bits_Sync_ctrl_reg__COUNT_ST_REG CYREG_B0_UDB00_ST_CTL\r
+#define SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_AUX_CTL_REG CYREG_B0_UDB12_ACTL\r
+#define SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_REG CYREG_B0_UDB12_CTL\r
+#define SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_ST_REG CYREG_B0_UDB12_ST_CTL\r
+#define SCSI_Out_Bits_Sync_ctrl_reg__COUNT_REG CYREG_B0_UDB12_CTL\r
+#define SCSI_Out_Bits_Sync_ctrl_reg__COUNT_ST_REG CYREG_B0_UDB12_ST_CTL\r
 #define SCSI_Out_Bits_Sync_ctrl_reg__MASK 0xFFu\r
-#define SCSI_Out_Bits_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG CYREG_B0_UDB00_MSK_ACTL\r
-#define SCSI_Out_Bits_Sync_ctrl_reg__PERIOD_REG CYREG_B0_UDB00_MSK\r
-#define SCSI_Out_Bits_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG CYREG_B0_UDB00_MSK_ACTL\r
+#define SCSI_Out_Bits_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG CYREG_B0_UDB12_MSK_ACTL\r
+#define SCSI_Out_Bits_Sync_ctrl_reg__PERIOD_REG CYREG_B0_UDB12_MSK\r
+#define SCSI_Out_Bits_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG CYREG_B0_UDB12_MSK_ACTL\r
 \r
 /* USBFS_arb_int */\r
 #define USBFS_arb_int__INTC_CLR_EN_REG CYREG_NVIC_CLRENA0\r
 /* SCSI_Out_Ctl */\r
 #define SCSI_Out_Ctl_Sync_ctrl_reg__0__MASK 0x01u\r
 #define SCSI_Out_Ctl_Sync_ctrl_reg__0__POS 0\r
-#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG CYREG_B0_UDB03_04_ACTL\r
-#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG CYREG_B0_UDB03_04_CTL\r
-#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG CYREG_B0_UDB03_04_CTL\r
-#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG CYREG_B0_UDB03_04_CTL\r
-#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG CYREG_B0_UDB03_04_CTL\r
-#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG CYREG_B0_UDB03_04_MSK\r
-#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG CYREG_B0_UDB03_04_MSK\r
-#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG CYREG_B0_UDB03_04_MSK\r
-#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG CYREG_B0_UDB03_04_MSK\r
-#define SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG CYREG_B0_UDB03_ACTL\r
-#define SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_REG CYREG_B0_UDB03_CTL\r
-#define SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_ST_REG CYREG_B0_UDB03_ST_CTL\r
-#define SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_REG CYREG_B0_UDB03_CTL\r
-#define SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_ST_REG CYREG_B0_UDB03_ST_CTL\r
+#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG CYREG_B1_UDB07_08_ACTL\r
+#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG CYREG_B1_UDB07_08_CTL\r
+#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG CYREG_B1_UDB07_08_CTL\r
+#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG CYREG_B1_UDB07_08_CTL\r
+#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG CYREG_B1_UDB07_08_CTL\r
+#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG CYREG_B1_UDB07_08_MSK\r
+#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG CYREG_B1_UDB07_08_MSK\r
+#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG CYREG_B1_UDB07_08_MSK\r
+#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG CYREG_B1_UDB07_08_MSK\r
+#define SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG CYREG_B1_UDB07_ACTL\r
+#define SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_REG CYREG_B1_UDB07_CTL\r
+#define SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_ST_REG CYREG_B1_UDB07_ST_CTL\r
+#define SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_REG CYREG_B1_UDB07_CTL\r
+#define SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_ST_REG CYREG_B1_UDB07_ST_CTL\r
 #define SCSI_Out_Ctl_Sync_ctrl_reg__MASK 0x01u\r
-#define SCSI_Out_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG CYREG_B0_UDB03_MSK_ACTL\r
-#define SCSI_Out_Ctl_Sync_ctrl_reg__PERIOD_REG CYREG_B0_UDB03_MSK\r
-#define SCSI_Out_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG CYREG_B0_UDB03_MSK_ACTL\r
+#define SCSI_Out_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG CYREG_B1_UDB07_MSK_ACTL\r
+#define SCSI_Out_Ctl_Sync_ctrl_reg__PERIOD_REG CYREG_B1_UDB07_MSK\r
+#define SCSI_Out_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG CYREG_B1_UDB07_MSK_ACTL\r
 \r
 /* SCSI_Out_DBx */\r
 #define SCSI_Out_DBx__0__AG CYREG_PRT6_AG\r
 #define SDCard_BSPIM_BitCounter__MASK_CTL_AUX_CTL_REG CYREG_B1_UDB06_MSK_ACTL\r
 #define SDCard_BSPIM_BitCounter__PERIOD_REG CYREG_B1_UDB06_MSK\r
 #define SDCard_BSPIM_BitCounter__PER_CTL_AUX_CTL_REG CYREG_B1_UDB06_MSK_ACTL\r
-#define SDCard_BSPIM_RxStsReg__16BIT_STATUS_AUX_CTL_REG CYREG_B0_UDB06_07_ACTL\r
-#define SDCard_BSPIM_RxStsReg__16BIT_STATUS_REG CYREG_B0_UDB06_07_ST\r
+#define SDCard_BSPIM_RxStsReg__16BIT_STATUS_AUX_CTL_REG CYREG_B0_UDB07_08_ACTL\r
+#define SDCard_BSPIM_RxStsReg__16BIT_STATUS_REG CYREG_B0_UDB07_08_ST\r
 #define SDCard_BSPIM_RxStsReg__4__MASK 0x10u\r
 #define SDCard_BSPIM_RxStsReg__4__POS 4\r
 #define SDCard_BSPIM_RxStsReg__5__MASK 0x20u\r
 #define SDCard_BSPIM_RxStsReg__6__MASK 0x40u\r
 #define SDCard_BSPIM_RxStsReg__6__POS 6\r
 #define SDCard_BSPIM_RxStsReg__MASK 0x70u\r
-#define SDCard_BSPIM_RxStsReg__MASK_REG CYREG_B0_UDB06_MSK\r
-#define SDCard_BSPIM_RxStsReg__STATUS_AUX_CTL_REG CYREG_B0_UDB06_ACTL\r
-#define SDCard_BSPIM_RxStsReg__STATUS_REG CYREG_B0_UDB06_ST\r
+#define SDCard_BSPIM_RxStsReg__MASK_REG CYREG_B0_UDB07_MSK\r
+#define SDCard_BSPIM_RxStsReg__STATUS_AUX_CTL_REG CYREG_B0_UDB07_ACTL\r
+#define SDCard_BSPIM_RxStsReg__STATUS_REG CYREG_B0_UDB07_ST\r
 #define SDCard_BSPIM_TxStsReg__0__MASK 0x01u\r
 #define SDCard_BSPIM_TxStsReg__0__POS 0\r
-#define SDCard_BSPIM_TxStsReg__16BIT_STATUS_AUX_CTL_REG CYREG_B0_UDB04_05_ACTL\r
-#define SDCard_BSPIM_TxStsReg__16BIT_STATUS_REG CYREG_B0_UDB04_05_ST\r
+#define SDCard_BSPIM_TxStsReg__16BIT_STATUS_AUX_CTL_REG CYREG_B1_UDB07_08_ACTL\r
+#define SDCard_BSPIM_TxStsReg__16BIT_STATUS_REG CYREG_B1_UDB07_08_ST\r
 #define SDCard_BSPIM_TxStsReg__1__MASK 0x02u\r
 #define SDCard_BSPIM_TxStsReg__1__POS 1\r
 #define SDCard_BSPIM_TxStsReg__2__MASK 0x04u\r
 #define SDCard_BSPIM_TxStsReg__4__MASK 0x10u\r
 #define SDCard_BSPIM_TxStsReg__4__POS 4\r
 #define SDCard_BSPIM_TxStsReg__MASK 0x1Fu\r
-#define SDCard_BSPIM_TxStsReg__MASK_REG CYREG_B0_UDB04_MSK\r
-#define SDCard_BSPIM_TxStsReg__STATUS_AUX_CTL_REG CYREG_B0_UDB04_ACTL\r
-#define SDCard_BSPIM_TxStsReg__STATUS_REG CYREG_B0_UDB04_ST\r
-#define SDCard_BSPIM_sR8_Dp_u0__16BIT_A0_REG CYREG_B0_UDB06_07_A0\r
-#define SDCard_BSPIM_sR8_Dp_u0__16BIT_A1_REG CYREG_B0_UDB06_07_A1\r
-#define SDCard_BSPIM_sR8_Dp_u0__16BIT_D0_REG CYREG_B0_UDB06_07_D0\r
-#define SDCard_BSPIM_sR8_Dp_u0__16BIT_D1_REG CYREG_B0_UDB06_07_D1\r
-#define SDCard_BSPIM_sR8_Dp_u0__16BIT_DP_AUX_CTL_REG CYREG_B0_UDB06_07_ACTL\r
-#define SDCard_BSPIM_sR8_Dp_u0__16BIT_F0_REG CYREG_B0_UDB06_07_F0\r
-#define SDCard_BSPIM_sR8_Dp_u0__16BIT_F1_REG CYREG_B0_UDB06_07_F1\r
-#define SDCard_BSPIM_sR8_Dp_u0__A0_A1_REG CYREG_B0_UDB06_A0_A1\r
-#define SDCard_BSPIM_sR8_Dp_u0__A0_REG CYREG_B0_UDB06_A0\r
-#define SDCard_BSPIM_sR8_Dp_u0__A1_REG CYREG_B0_UDB06_A1\r
-#define SDCard_BSPIM_sR8_Dp_u0__D0_D1_REG CYREG_B0_UDB06_D0_D1\r
-#define SDCard_BSPIM_sR8_Dp_u0__D0_REG CYREG_B0_UDB06_D0\r
-#define SDCard_BSPIM_sR8_Dp_u0__D1_REG CYREG_B0_UDB06_D1\r
-#define SDCard_BSPIM_sR8_Dp_u0__DP_AUX_CTL_REG CYREG_B0_UDB06_ACTL\r
-#define SDCard_BSPIM_sR8_Dp_u0__F0_F1_REG CYREG_B0_UDB06_F0_F1\r
-#define SDCard_BSPIM_sR8_Dp_u0__F0_REG CYREG_B0_UDB06_F0\r
-#define SDCard_BSPIM_sR8_Dp_u0__F1_REG CYREG_B0_UDB06_F1\r
+#define SDCard_BSPIM_TxStsReg__MASK_REG CYREG_B1_UDB07_MSK\r
+#define SDCard_BSPIM_TxStsReg__MASK_ST_AUX_CTL_REG CYREG_B1_UDB07_MSK_ACTL\r
+#define SDCard_BSPIM_TxStsReg__PER_ST_AUX_CTL_REG CYREG_B1_UDB07_MSK_ACTL\r
+#define SDCard_BSPIM_TxStsReg__STATUS_AUX_CTL_REG CYREG_B1_UDB07_ACTL\r
+#define SDCard_BSPIM_TxStsReg__STATUS_CNT_REG CYREG_B1_UDB07_ST_CTL\r
+#define SDCard_BSPIM_TxStsReg__STATUS_CONTROL_REG CYREG_B1_UDB07_ST_CTL\r
+#define SDCard_BSPIM_TxStsReg__STATUS_REG CYREG_B1_UDB07_ST\r
+#define SDCard_BSPIM_sR8_Dp_u0__16BIT_A0_REG CYREG_B0_UDB04_05_A0\r
+#define SDCard_BSPIM_sR8_Dp_u0__16BIT_A1_REG CYREG_B0_UDB04_05_A1\r
+#define SDCard_BSPIM_sR8_Dp_u0__16BIT_D0_REG CYREG_B0_UDB04_05_D0\r
+#define SDCard_BSPIM_sR8_Dp_u0__16BIT_D1_REG CYREG_B0_UDB04_05_D1\r
+#define SDCard_BSPIM_sR8_Dp_u0__16BIT_DP_AUX_CTL_REG CYREG_B0_UDB04_05_ACTL\r
+#define SDCard_BSPIM_sR8_Dp_u0__16BIT_F0_REG CYREG_B0_UDB04_05_F0\r
+#define SDCard_BSPIM_sR8_Dp_u0__16BIT_F1_REG CYREG_B0_UDB04_05_F1\r
+#define SDCard_BSPIM_sR8_Dp_u0__A0_A1_REG CYREG_B0_UDB04_A0_A1\r
+#define SDCard_BSPIM_sR8_Dp_u0__A0_REG CYREG_B0_UDB04_A0\r
+#define SDCard_BSPIM_sR8_Dp_u0__A1_REG CYREG_B0_UDB04_A1\r
+#define SDCard_BSPIM_sR8_Dp_u0__D0_D1_REG CYREG_B0_UDB04_D0_D1\r
+#define SDCard_BSPIM_sR8_Dp_u0__D0_REG CYREG_B0_UDB04_D0\r
+#define SDCard_BSPIM_sR8_Dp_u0__D1_REG CYREG_B0_UDB04_D1\r
+#define SDCard_BSPIM_sR8_Dp_u0__DP_AUX_CTL_REG CYREG_B0_UDB04_ACTL\r
+#define SDCard_BSPIM_sR8_Dp_u0__F0_F1_REG CYREG_B0_UDB04_F0_F1\r
+#define SDCard_BSPIM_sR8_Dp_u0__F0_REG CYREG_B0_UDB04_F0\r
+#define SDCard_BSPIM_sR8_Dp_u0__F1_REG CYREG_B0_UDB04_F1\r
 \r
 /* USBFS_dp_int */\r
 #define USBFS_dp_int__INTC_CLR_EN_REG CYREG_NVIC_CLRENA0\r
 #define SCSI_In_DBx__DB7__SHIFT 1\r
 #define SCSI_In_DBx__DB7__SLW CYREG_PRT2_SLW\r
 \r
+/* SCSI_RX_DMA */\r
+#define SCSI_RX_DMA__DRQ_CTL CYREG_IDMUX_DRQ_CTL0\r
+#define SCSI_RX_DMA__DRQ_NUMBER 0u\r
+#define SCSI_RX_DMA__NUMBEROF_TDS 0u\r
+#define SCSI_RX_DMA__PRIORITY 2u\r
+#define SCSI_RX_DMA__TERMIN_EN 0u\r
+#define SCSI_RX_DMA__TERMIN_SEL 0u\r
+#define SCSI_RX_DMA__TERMOUT0_EN 1u\r
+#define SCSI_RX_DMA__TERMOUT0_SEL 0u\r
+#define SCSI_RX_DMA__TERMOUT1_EN 0u\r
+#define SCSI_RX_DMA__TERMOUT1_SEL 0u\r
+\r
+/* SCSI_TX_DMA */\r
+#define SCSI_TX_DMA__DRQ_CTL CYREG_IDMUX_DRQ_CTL0\r
+#define SCSI_TX_DMA__DRQ_NUMBER 1u\r
+#define SCSI_TX_DMA__NUMBEROF_TDS 0u\r
+#define SCSI_TX_DMA__PRIORITY 2u\r
+#define SCSI_TX_DMA__TERMIN_EN 0u\r
+#define SCSI_TX_DMA__TERMIN_SEL 0u\r
+#define SCSI_TX_DMA__TERMOUT0_EN 1u\r
+#define SCSI_TX_DMA__TERMOUT0_SEL 1u\r
+#define SCSI_TX_DMA__TERMOUT1_EN 0u\r
+#define SCSI_TX_DMA__TERMOUT1_SEL 0u\r
+\r
 /* SD_Data_Clk */\r
 #define SD_Data_Clk__CFG0 CYREG_CLKDIST_DCFG0_CFG0\r
 #define SD_Data_Clk__CFG1 CYREG_CLKDIST_DCFG0_CFG1\r
 /* scsiTarget */\r
 #define scsiTarget_StatusReg__0__MASK 0x01u\r
 #define scsiTarget_StatusReg__0__POS 0\r
-#define scsiTarget_StatusReg__16BIT_STATUS_AUX_CTL_REG CYREG_B0_UDB13_14_ACTL\r
-#define scsiTarget_StatusReg__16BIT_STATUS_REG CYREG_B0_UDB13_14_ST\r
+#define scsiTarget_StatusReg__16BIT_STATUS_AUX_CTL_REG CYREG_B0_UDB04_05_ACTL\r
+#define scsiTarget_StatusReg__16BIT_STATUS_REG CYREG_B0_UDB04_05_ST\r
 #define scsiTarget_StatusReg__1__MASK 0x02u\r
 #define scsiTarget_StatusReg__1__POS 1\r
 #define scsiTarget_StatusReg__2__MASK 0x04u\r
 #define scsiTarget_StatusReg__2__POS 2\r
 #define scsiTarget_StatusReg__3__MASK 0x08u\r
 #define scsiTarget_StatusReg__3__POS 3\r
-#define scsiTarget_StatusReg__MASK 0x0Fu\r
-#define scsiTarget_StatusReg__MASK_REG CYREG_B0_UDB13_MSK\r
-#define scsiTarget_StatusReg__STATUS_AUX_CTL_REG CYREG_B0_UDB13_ACTL\r
-#define scsiTarget_StatusReg__STATUS_REG CYREG_B0_UDB13_ST\r
-#define scsiTarget_datapath_PI__16BIT_STATUS_AUX_CTL_REG CYREG_B0_UDB12_13_ACTL\r
-#define scsiTarget_datapath_PI__16BIT_STATUS_REG CYREG_B0_UDB12_13_ST\r
-#define scsiTarget_datapath_PI__MASK_REG CYREG_B0_UDB12_MSK\r
-#define scsiTarget_datapath_PI__MASK_ST_AUX_CTL_REG CYREG_B0_UDB12_MSK_ACTL\r
-#define scsiTarget_datapath_PI__PER_ST_AUX_CTL_REG CYREG_B0_UDB12_MSK_ACTL\r
-#define scsiTarget_datapath_PI__STATUS_AUX_CTL_REG CYREG_B0_UDB12_ACTL\r
-#define scsiTarget_datapath_PI__STATUS_CNT_REG CYREG_B0_UDB12_ST_CTL\r
-#define scsiTarget_datapath_PI__STATUS_CONTROL_REG CYREG_B0_UDB12_ST_CTL\r
-#define scsiTarget_datapath_PI__STATUS_REG CYREG_B0_UDB12_ST\r
-#define scsiTarget_datapath_PO__16BIT_CONTROL_AUX_CTL_REG CYREG_B0_UDB12_13_ACTL\r
-#define scsiTarget_datapath_PO__16BIT_CONTROL_CONTROL_REG CYREG_B0_UDB12_13_CTL\r
-#define scsiTarget_datapath_PO__16BIT_CONTROL_COUNT_REG CYREG_B0_UDB12_13_CTL\r
-#define scsiTarget_datapath_PO__16BIT_COUNT_CONTROL_REG CYREG_B0_UDB12_13_CTL\r
-#define scsiTarget_datapath_PO__16BIT_COUNT_COUNT_REG CYREG_B0_UDB12_13_CTL\r
-#define scsiTarget_datapath_PO__16BIT_MASK_MASK_REG CYREG_B0_UDB12_13_MSK\r
-#define scsiTarget_datapath_PO__16BIT_MASK_PERIOD_REG CYREG_B0_UDB12_13_MSK\r
-#define scsiTarget_datapath_PO__16BIT_PERIOD_MASK_REG CYREG_B0_UDB12_13_MSK\r
-#define scsiTarget_datapath_PO__16BIT_PERIOD_PERIOD_REG CYREG_B0_UDB12_13_MSK\r
-#define scsiTarget_datapath_PO__CONTROL_AUX_CTL_REG CYREG_B0_UDB12_ACTL\r
-#define scsiTarget_datapath_PO__CONTROL_REG CYREG_B0_UDB12_CTL\r
-#define scsiTarget_datapath_PO__CONTROL_ST_REG CYREG_B0_UDB12_ST_CTL\r
-#define scsiTarget_datapath_PO__COUNT_REG CYREG_B0_UDB12_CTL\r
-#define scsiTarget_datapath_PO__COUNT_ST_REG CYREG_B0_UDB12_ST_CTL\r
-#define scsiTarget_datapath_PO__MASK_CTL_AUX_CTL_REG CYREG_B0_UDB12_MSK_ACTL\r
-#define scsiTarget_datapath_PO__PERIOD_REG CYREG_B0_UDB12_MSK\r
-#define scsiTarget_datapath_PO__PER_CTL_AUX_CTL_REG CYREG_B0_UDB12_MSK_ACTL\r
-#define scsiTarget_datapath__16BIT_A0_REG CYREG_B0_UDB12_13_A0\r
-#define scsiTarget_datapath__16BIT_A1_REG CYREG_B0_UDB12_13_A1\r
-#define scsiTarget_datapath__16BIT_D0_REG CYREG_B0_UDB12_13_D0\r
-#define scsiTarget_datapath__16BIT_D1_REG CYREG_B0_UDB12_13_D1\r
-#define scsiTarget_datapath__16BIT_DP_AUX_CTL_REG CYREG_B0_UDB12_13_ACTL\r
-#define scsiTarget_datapath__16BIT_F0_REG CYREG_B0_UDB12_13_F0\r
-#define scsiTarget_datapath__16BIT_F1_REG CYREG_B0_UDB12_13_F1\r
-#define scsiTarget_datapath__A0_A1_REG CYREG_B0_UDB12_A0_A1\r
-#define scsiTarget_datapath__A0_REG CYREG_B0_UDB12_A0\r
-#define scsiTarget_datapath__A1_REG CYREG_B0_UDB12_A1\r
-#define scsiTarget_datapath__D0_D1_REG CYREG_B0_UDB12_D0_D1\r
-#define scsiTarget_datapath__D0_REG CYREG_B0_UDB12_D0\r
-#define scsiTarget_datapath__D1_REG CYREG_B0_UDB12_D1\r
-#define scsiTarget_datapath__DP_AUX_CTL_REG CYREG_B0_UDB12_ACTL\r
-#define scsiTarget_datapath__F0_F1_REG CYREG_B0_UDB12_F0_F1\r
-#define scsiTarget_datapath__F0_REG CYREG_B0_UDB12_F0\r
-#define scsiTarget_datapath__F1_REG CYREG_B0_UDB12_F1\r
-#define scsiTarget_datapath__MSK_DP_AUX_CTL_REG CYREG_B0_UDB12_MSK_ACTL\r
-#define scsiTarget_datapath__PER_DP_AUX_CTL_REG CYREG_B0_UDB12_MSK_ACTL\r
+#define scsiTarget_StatusReg__4__MASK 0x10u\r
+#define scsiTarget_StatusReg__4__POS 4\r
+#define scsiTarget_StatusReg__MASK 0x1Fu\r
+#define scsiTarget_StatusReg__MASK_REG CYREG_B0_UDB04_MSK\r
+#define scsiTarget_StatusReg__STATUS_AUX_CTL_REG CYREG_B0_UDB04_ACTL\r
+#define scsiTarget_StatusReg__STATUS_REG CYREG_B0_UDB04_ST\r
+#define scsiTarget_datapath_PI__16BIT_STATUS_AUX_CTL_REG CYREG_B0_UDB03_04_ACTL\r
+#define scsiTarget_datapath_PI__16BIT_STATUS_REG CYREG_B0_UDB03_04_ST\r
+#define scsiTarget_datapath_PI__MASK_REG CYREG_B0_UDB03_MSK\r
+#define scsiTarget_datapath_PI__MASK_ST_AUX_CTL_REG CYREG_B0_UDB03_MSK_ACTL\r
+#define scsiTarget_datapath_PI__PER_ST_AUX_CTL_REG CYREG_B0_UDB03_MSK_ACTL\r
+#define scsiTarget_datapath_PI__STATUS_AUX_CTL_REG CYREG_B0_UDB03_ACTL\r
+#define scsiTarget_datapath_PI__STATUS_CNT_REG CYREG_B0_UDB03_ST_CTL\r
+#define scsiTarget_datapath_PI__STATUS_CONTROL_REG CYREG_B0_UDB03_ST_CTL\r
+#define scsiTarget_datapath_PI__STATUS_REG CYREG_B0_UDB03_ST\r
+#define scsiTarget_datapath_PO__16BIT_CONTROL_AUX_CTL_REG CYREG_B0_UDB03_04_ACTL\r
+#define scsiTarget_datapath_PO__16BIT_CONTROL_CONTROL_REG CYREG_B0_UDB03_04_CTL\r
+#define scsiTarget_datapath_PO__16BIT_CONTROL_COUNT_REG CYREG_B0_UDB03_04_CTL\r
+#define scsiTarget_datapath_PO__16BIT_COUNT_CONTROL_REG CYREG_B0_UDB03_04_CTL\r
+#define scsiTarget_datapath_PO__16BIT_COUNT_COUNT_REG CYREG_B0_UDB03_04_CTL\r
+#define scsiTarget_datapath_PO__16BIT_MASK_MASK_REG CYREG_B0_UDB03_04_MSK\r
+#define scsiTarget_datapath_PO__16BIT_MASK_PERIOD_REG CYREG_B0_UDB03_04_MSK\r
+#define scsiTarget_datapath_PO__16BIT_PERIOD_MASK_REG CYREG_B0_UDB03_04_MSK\r
+#define scsiTarget_datapath_PO__16BIT_PERIOD_PERIOD_REG CYREG_B0_UDB03_04_MSK\r
+#define scsiTarget_datapath_PO__CONTROL_AUX_CTL_REG CYREG_B0_UDB03_ACTL\r
+#define scsiTarget_datapath_PO__CONTROL_REG CYREG_B0_UDB03_CTL\r
+#define scsiTarget_datapath_PO__CONTROL_ST_REG CYREG_B0_UDB03_ST_CTL\r
+#define scsiTarget_datapath_PO__COUNT_REG CYREG_B0_UDB03_CTL\r
+#define scsiTarget_datapath_PO__COUNT_ST_REG CYREG_B0_UDB03_ST_CTL\r
+#define scsiTarget_datapath_PO__MASK_CTL_AUX_CTL_REG CYREG_B0_UDB03_MSK_ACTL\r
+#define scsiTarget_datapath_PO__PERIOD_REG CYREG_B0_UDB03_MSK\r
+#define scsiTarget_datapath_PO__PER_CTL_AUX_CTL_REG CYREG_B0_UDB03_MSK_ACTL\r
+#define scsiTarget_datapath__16BIT_A0_REG CYREG_B0_UDB03_04_A0\r
+#define scsiTarget_datapath__16BIT_A1_REG CYREG_B0_UDB03_04_A1\r
+#define scsiTarget_datapath__16BIT_D0_REG CYREG_B0_UDB03_04_D0\r
+#define scsiTarget_datapath__16BIT_D1_REG CYREG_B0_UDB03_04_D1\r
+#define scsiTarget_datapath__16BIT_DP_AUX_CTL_REG CYREG_B0_UDB03_04_ACTL\r
+#define scsiTarget_datapath__16BIT_F0_REG CYREG_B0_UDB03_04_F0\r
+#define scsiTarget_datapath__16BIT_F1_REG CYREG_B0_UDB03_04_F1\r
+#define scsiTarget_datapath__A0_A1_REG CYREG_B0_UDB03_A0_A1\r
+#define scsiTarget_datapath__A0_REG CYREG_B0_UDB03_A0\r
+#define scsiTarget_datapath__A1_REG CYREG_B0_UDB03_A1\r
+#define scsiTarget_datapath__D0_D1_REG CYREG_B0_UDB03_D0_D1\r
+#define scsiTarget_datapath__D0_REG CYREG_B0_UDB03_D0\r
+#define scsiTarget_datapath__D1_REG CYREG_B0_UDB03_D1\r
+#define scsiTarget_datapath__DP_AUX_CTL_REG CYREG_B0_UDB03_ACTL\r
+#define scsiTarget_datapath__F0_F1_REG CYREG_B0_UDB03_F0_F1\r
+#define scsiTarget_datapath__F0_REG CYREG_B0_UDB03_F0\r
+#define scsiTarget_datapath__F1_REG CYREG_B0_UDB03_F1\r
+#define scsiTarget_datapath__MSK_DP_AUX_CTL_REG CYREG_B0_UDB03_MSK_ACTL\r
+#define scsiTarget_datapath__PER_DP_AUX_CTL_REG CYREG_B0_UDB03_MSK_ACTL\r
 \r
 /* SD_Clk_Ctl */\r
-#define SD_Clk_Ctl_Sync_ctrl_reg__0__MASK 0x01u\r
-#define SD_Clk_Ctl_Sync_ctrl_reg__0__POS 0\r
-#define SD_Clk_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG CYREG_B0_UDB02_03_ACTL\r
-#define SD_Clk_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG CYREG_B0_UDB02_03_CTL\r
-#define SD_Clk_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG CYREG_B0_UDB02_03_CTL\r
-#define SD_Clk_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG CYREG_B0_UDB02_03_CTL\r
-#define SD_Clk_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG CYREG_B0_UDB02_03_CTL\r
-#define SD_Clk_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG CYREG_B0_UDB02_03_MSK\r
-#define SD_Clk_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG CYREG_B0_UDB02_03_MSK\r
-#define SD_Clk_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG CYREG_B0_UDB02_03_MSK\r
-#define SD_Clk_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG CYREG_B0_UDB02_03_MSK\r
-#define SD_Clk_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG CYREG_B0_UDB02_ACTL\r
-#define SD_Clk_Ctl_Sync_ctrl_reg__CONTROL_REG CYREG_B0_UDB02_CTL\r
-#define SD_Clk_Ctl_Sync_ctrl_reg__CONTROL_ST_REG CYREG_B0_UDB02_ST_CTL\r
-#define SD_Clk_Ctl_Sync_ctrl_reg__COUNT_REG CYREG_B0_UDB02_CTL\r
-#define SD_Clk_Ctl_Sync_ctrl_reg__COUNT_ST_REG CYREG_B0_UDB02_ST_CTL\r
-#define SD_Clk_Ctl_Sync_ctrl_reg__MASK 0x01u\r
-#define SD_Clk_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG CYREG_B0_UDB02_MSK_ACTL\r
-#define SD_Clk_Ctl_Sync_ctrl_reg__PERIOD_REG CYREG_B0_UDB02_MSK\r
-#define SD_Clk_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG CYREG_B0_UDB02_MSK_ACTL\r
+#define SD_Clk_Ctl_Sync_ctrl_reg__REMOVED 1u\r
 \r
 /* USBFS_ep_0 */\r
 #define USBFS_ep_0__INTC_CLR_EN_REG CYREG_NVIC_CLRENA0\r
 /* USBFS_ep_1 */\r
 #define USBFS_ep_1__INTC_CLR_EN_REG CYREG_NVIC_CLRENA0\r
 #define USBFS_ep_1__INTC_CLR_PD_REG CYREG_NVIC_CLRPEND0\r
-#define USBFS_ep_1__INTC_MASK 0x02u\r
-#define USBFS_ep_1__INTC_NUMBER 1u\r
+#define USBFS_ep_1__INTC_MASK 0x20u\r
+#define USBFS_ep_1__INTC_NUMBER 5u\r
 #define USBFS_ep_1__INTC_PRIOR_NUM 7u\r
-#define USBFS_ep_1__INTC_PRIOR_REG CYREG_NVIC_PRI_1\r
+#define USBFS_ep_1__INTC_PRIOR_REG CYREG_NVIC_PRI_5\r
 #define USBFS_ep_1__INTC_SET_EN_REG CYREG_NVIC_SETENA0\r
 #define USBFS_ep_1__INTC_SET_PD_REG CYREG_NVIC_SETPEND0\r
 \r
 /* USBFS_ep_2 */\r
 #define USBFS_ep_2__INTC_CLR_EN_REG CYREG_NVIC_CLRENA0\r
 #define USBFS_ep_2__INTC_CLR_PD_REG CYREG_NVIC_CLRPEND0\r
-#define USBFS_ep_2__INTC_MASK 0x04u\r
-#define USBFS_ep_2__INTC_NUMBER 2u\r
+#define USBFS_ep_2__INTC_MASK 0x40u\r
+#define USBFS_ep_2__INTC_NUMBER 6u\r
 #define USBFS_ep_2__INTC_PRIOR_NUM 7u\r
-#define USBFS_ep_2__INTC_PRIOR_REG CYREG_NVIC_PRI_2\r
+#define USBFS_ep_2__INTC_PRIOR_REG CYREG_NVIC_PRI_6\r
 #define USBFS_ep_2__INTC_SET_EN_REG CYREG_NVIC_SETENA0\r
 #define USBFS_ep_2__INTC_SET_PD_REG CYREG_NVIC_SETPEND0\r
 \r
 /* USBFS_ep_3 */\r
 #define USBFS_ep_3__INTC_CLR_EN_REG CYREG_NVIC_CLRENA0\r
 #define USBFS_ep_3__INTC_CLR_PD_REG CYREG_NVIC_CLRPEND0\r
-#define USBFS_ep_3__INTC_MASK 0x08u\r
-#define USBFS_ep_3__INTC_NUMBER 3u\r
+#define USBFS_ep_3__INTC_MASK 0x80u\r
+#define USBFS_ep_3__INTC_NUMBER 7u\r
 #define USBFS_ep_3__INTC_PRIOR_NUM 7u\r
-#define USBFS_ep_3__INTC_PRIOR_REG CYREG_NVIC_PRI_3\r
+#define USBFS_ep_3__INTC_PRIOR_REG CYREG_NVIC_PRI_7\r
 #define USBFS_ep_3__INTC_SET_EN_REG CYREG_NVIC_SETENA0\r
 #define USBFS_ep_3__INTC_SET_PD_REG CYREG_NVIC_SETPEND0\r
 \r
 /* USBFS_ep_4 */\r
 #define USBFS_ep_4__INTC_CLR_EN_REG CYREG_NVIC_CLRENA0\r
 #define USBFS_ep_4__INTC_CLR_PD_REG CYREG_NVIC_CLRPEND0\r
-#define USBFS_ep_4__INTC_MASK 0x10u\r
-#define USBFS_ep_4__INTC_NUMBER 4u\r
+#define USBFS_ep_4__INTC_MASK 0x100u\r
+#define USBFS_ep_4__INTC_NUMBER 8u\r
 #define USBFS_ep_4__INTC_PRIOR_NUM 7u\r
-#define USBFS_ep_4__INTC_PRIOR_REG CYREG_NVIC_PRI_4\r
+#define USBFS_ep_4__INTC_PRIOR_REG CYREG_NVIC_PRI_8\r
 #define USBFS_ep_4__INTC_SET_EN_REG CYREG_NVIC_SETENA0\r
 #define USBFS_ep_4__INTC_SET_PD_REG CYREG_NVIC_SETPEND0\r
 \r
+/* SD_RX_DMA */\r
+#define SD_RX_DMA__DRQ_CTL CYREG_IDMUX_DRQ_CTL0\r
+#define SD_RX_DMA__DRQ_NUMBER 2u\r
+#define SD_RX_DMA__NUMBEROF_TDS 0u\r
+#define SD_RX_DMA__PRIORITY 1u\r
+#define SD_RX_DMA__TERMIN_EN 0u\r
+#define SD_RX_DMA__TERMIN_SEL 0u\r
+#define SD_RX_DMA__TERMOUT0_EN 1u\r
+#define SD_RX_DMA__TERMOUT0_SEL 2u\r
+#define SD_RX_DMA__TERMOUT1_EN 0u\r
+#define SD_RX_DMA__TERMOUT1_SEL 0u\r
+\r
+/* SD_TX_DMA */\r
+#define SD_TX_DMA__DRQ_CTL CYREG_IDMUX_DRQ_CTL0\r
+#define SD_TX_DMA__DRQ_NUMBER 3u\r
+#define SD_TX_DMA__NUMBEROF_TDS 0u\r
+#define SD_TX_DMA__PRIORITY 2u\r
+#define SD_TX_DMA__TERMIN_EN 0u\r
+#define SD_TX_DMA__TERMIN_SEL 0u\r
+#define SD_TX_DMA__TERMOUT0_EN 1u\r
+#define SD_TX_DMA__TERMOUT0_SEL 3u\r
+#define SD_TX_DMA__TERMOUT1_EN 0u\r
+#define SD_TX_DMA__TERMOUT1_SEL 0u\r
+\r
 /* USBFS_USB */\r
 #define USBFS_USB__ARB_CFG CYREG_USB_ARB_CFG\r
 #define USBFS_USB__ARB_EP1_CFG CYREG_USB_ARB_EP1_CFG\r
 #define CYDEV_CHIP_FAMILY_PSOC5 3u\r
 #define CYDEV_CHIP_DIE_PSOC5LP 4u\r
 #define CYDEV_CHIP_DIE_EXPECT CYDEV_CHIP_DIE_PSOC5LP\r
-#define BCLK__BUS_CLK__HZ 60000000U\r
-#define BCLK__BUS_CLK__KHZ 60000U\r
-#define BCLK__BUS_CLK__MHZ 60U\r
+#define BCLK__BUS_CLK__HZ 50000000U\r
+#define BCLK__BUS_CLK__KHZ 50000U\r
+#define BCLK__BUS_CLK__MHZ 50U\r
 #define CYDEV_CHIP_DIE_ACTUAL CYDEV_CHIP_DIE_EXPECT\r
 #define CYDEV_CHIP_DIE_LEOPARD 1u\r
 #define CYDEV_CHIP_DIE_PANTHER 3u\r
 #define CYDEV_ECC_ENABLE 0\r
 #define CYDEV_HEAP_SIZE 0x0400\r
 #define CYDEV_INSTRUCT_CACHE_ENABLED 1\r
-#define CYDEV_INTR_RISING 0x00000001u\r
+#define CYDEV_INTR_RISING 0x0000001Eu\r
 #define CYDEV_PROJ_TYPE 2\r
 #define CYDEV_PROJ_TYPE_BOOTLOADER 1\r
 #define CYDEV_PROJ_TYPE_LOADABLE 2\r
 #define CYDEV_VIO2_MV 5000\r
 #define CYDEV_VIO3 3.3\r
 #define CYDEV_VIO3_MV 3300\r
-#define DMA_CHANNELS_USED__MASK0 0x00000000u\r
+#define DMA_CHANNELS_USED__MASK0 0x0000000Fu\r
 #define CYDEV_BOOTLOADER_ENABLE 0\r
 \r
 #endif /* INCLUDED_CYFITTER_H */\r
old mode 100755 (executable)
new mode 100644 (file)
index 46963dc..f2497a0
@@ -121,7 +121,7 @@ static void CyClockStartupError(uint8 errorCode)
 }\r
 #endif\r
 \r
-#define CY_CFG_BASE_ADDR_COUNT 35u\r
+#define CY_CFG_BASE_ADDR_COUNT 37u\r
 CYPACKED typedef struct\r
 {\r
        uint8 offset;\r
@@ -187,10 +187,10 @@ static void ClockSetup(void)
 \r
 \r
        /* Configure Digital Clocks based on settings from Clock DWR */\r
-       CY_SET_XTND_REG16((void CYFAR *)(CYREG_CLKDIST_DCFG0_CFG0), 0x0001u);\r
-       CY_SET_XTND_REG8((void CYFAR *)(CYREG_CLKDIST_DCFG0_CFG0 + 0x2u), 0x10u);\r
-       CY_SET_XTND_REG16((void CYFAR *)(CYREG_CLKDIST_DCFG1_CFG0), 0x0001u);\r
-       CY_SET_XTND_REG8((void CYFAR *)(CYREG_CLKDIST_DCFG1_CFG0 + 0x2u), 0x18u);\r
+       CY_SET_XTND_REG16((void CYFAR *)(CYREG_CLKDIST_DCFG0_CFG0), 0x0000u);\r
+       CY_SET_XTND_REG8((void CYFAR *)(CYREG_CLKDIST_DCFG0_CFG0 + 0x2u), 0x58u);\r
+       CY_SET_XTND_REG16((void CYFAR *)(CYREG_CLKDIST_DCFG1_CFG0), 0x0000u);\r
+       CY_SET_XTND_REG8((void CYFAR *)(CYREG_CLKDIST_DCFG1_CFG0 + 0x2u), 0x58u);\r
        CY_SET_XTND_REG16((void CYFAR *)(CYREG_CLKDIST_DCFG2_CFG0), 0x0017u);\r
        CY_SET_XTND_REG8((void CYFAR *)(CYREG_CLKDIST_DCFG2_CFG0 + 0x2u), 0x19u);\r
        CY_SET_XTND_REG16((void CYFAR *)(CYREG_CLKDIST_DCFG3_CFG0), 0x001Du);\r
@@ -204,7 +204,7 @@ static void ClockSetup(void)
        CY_SET_XTND_REG8((void CYFAR *)(CYREG_IMO_TR1), (CY_GET_XTND_REG8((void CYFAR *)CYREG_FLSHID_CUST_TABLES_IMO_USB)));\r
 \r
        /* Configure PLL based on settings from Clock DWR */\r
-       CY_SET_XTND_REG16((void CYFAR *)(CYREG_FASTCLK_PLL_P), 0x0919u);\r
+       CY_SET_XTND_REG16((void CYFAR *)(CYREG_FASTCLK_PLL_P), 0x0B19u);\r
        CY_SET_XTND_REG16((void CYFAR *)(CYREG_FASTCLK_PLL_CFG0), 0x1251u);\r
        /* Wait up to 250us for the PLL to lock */\r
        pllLock = 0u;\r
@@ -230,7 +230,7 @@ static void ClockSetup(void)
        CY_SET_XTND_REG8((void CYFAR *)(CYREG_CLKDIST_UCFG), 0x00u);\r
        CY_SET_XTND_REG8((void CYFAR *)(CYREG_CLKDIST_LD), 0x02u);\r
 \r
-       CY_SET_XTND_REG8((void CYFAR *)(CYREG_PM_ACT_CFG2), ((CY_GET_XTND_REG8((void CYFAR *)CYREG_PM_ACT_CFG2) | 0x0Eu)));\r
+       CY_SET_XTND_REG8((void CYFAR *)(CYREG_PM_ACT_CFG2), ((CY_GET_XTND_REG8((void CYFAR *)CYREG_PM_ACT_CFG2) | 0x0Fu)));\r
 }\r
 \r
 \r
@@ -351,6 +351,18 @@ void cyfitter_cfg(void)
        static const uint8 CYCODE BS_IOPINS0_6_VAL[] = {\r
                0xF0u, 0x0Fu, 0x0Fu, 0x00u, 0x0Fu, 0x00u, 0x00u, 0x01u};\r
 \r
+       /* PHUB_CFGMEM1 Address: CYREG_PHUB_CFGMEM1_CFG0 Size (bytes): 4 */\r
+       static const uint8 CYCODE BS_PHUB_CFGMEM1_VAL[] = {\r
+               0x00u, 0x01u, 0x00u, 0x00u};\r
+\r
+       /* PHUB_CFGMEM2 Address: CYREG_PHUB_CFGMEM2_CFG0 Size (bytes): 4 */\r
+       static const uint8 CYCODE BS_PHUB_CFGMEM2_VAL[] = {\r
+               0x00u, 0x02u, 0x00u, 0x00u};\r
+\r
+       /* PHUB_CFGMEM3 Address: CYREG_PHUB_CFGMEM3_CFG0 Size (bytes): 4 */\r
+       static const uint8 CYCODE BS_PHUB_CFGMEM3_VAL[] = {\r
+               0x00u, 0x03u, 0x00u, 0x00u};\r
+\r
 #ifdef CYGlobalIntDisable\r
        /* Disable interrupts by default. Let user enable if/when they want. */\r
        CYGlobalIntDisable\r
@@ -361,6 +373,8 @@ void cyfitter_cfg(void)
        CY_SET_XTND_REG8((void CYFAR *)(CYREG_CACHE_CC_CTL), (((CYDEV_INSTRUCT_CACHE_ENABLED) != 0) ? 0x01u : 0x00u));\r
        /* Setup clocks based on selections from Clock DWR */\r
        ClockSetup();\r
+       /* Set Flash Cycles based on newly configured 50.00MHz Bus Clock. */\r
+       CY_SET_XTND_REG8((void CYFAR *)(CYREG_CACHE_CC_CTL), (((CYDEV_INSTRUCT_CACHE_ENABLED) != 0) ? 0xC1u : 0xC0u));\r
        /* Enable/Disable Debug functionality based on settings from System DWR */\r
        CY_SET_XTND_REG8((void CYFAR *)CYREG_MLOGIC_DEBUG, (CY_GET_XTND_REG8((void CYFAR *)CYREG_MLOGIC_DEBUG) | 0x04u));\r
 \r
@@ -368,1092 +382,1153 @@ void cyfitter_cfg(void)
                static const uint32 CYCODE cy_cfg_addr_table[] = {\r
                        0x40004502u, /* Base address: 0x40004500 Count: 2 */\r
                        0x40004F02u, /* Base address: 0x40004F00 Count: 2 */\r
-                       0x40005209u, /* Base address: 0x40005200 Count: 9 */\r
+                       0x4000520Au, /* Base address: 0x40005200 Count: 10 */\r
                        0x40006401u, /* Base address: 0x40006400 Count: 1 */\r
                        0x40006501u, /* Base address: 0x40006500 Count: 1 */\r
-                       0x4001004Au, /* Base address: 0x40010000 Count: 74 */\r
-                       0x40010134u, /* Base address: 0x40010100 Count: 52 */\r
-                       0x40010252u, /* Base address: 0x40010200 Count: 82 */\r
-                       0x40010355u, /* Base address: 0x40010300 Count: 85 */\r
-                       0x40010449u, /* Base address: 0x40010400 Count: 73 */\r
-                       0x40010555u, /* Base address: 0x40010500 Count: 85 */\r
-                       0x4001060Eu, /* Base address: 0x40010600 Count: 14 */\r
-                       0x40010747u, /* Base address: 0x40010700 Count: 71 */\r
-                       0x40010903u, /* Base address: 0x40010900 Count: 3 */\r
-                       0x40010B0Cu, /* Base address: 0x40010B00 Count: 12 */\r
-                       0x40010C45u, /* Base address: 0x40010C00 Count: 69 */\r
-                       0x40010D4Du, /* Base address: 0x40010D00 Count: 77 */\r
-                       0x40010F04u, /* Base address: 0x40010F00 Count: 4 */\r
-                       0x40011501u, /* Base address: 0x40011500 Count: 1 */\r
-                       0x40011657u, /* Base address: 0x40011600 Count: 87 */\r
-                       0x40011753u, /* Base address: 0x40011700 Count: 83 */\r
-                       0x40011903u, /* Base address: 0x40011900 Count: 3 */\r
-                       0x40011B02u, /* Base address: 0x40011B00 Count: 2 */\r
-                       0x40014012u, /* Base address: 0x40014000 Count: 18 */\r
-                       0x40014110u, /* Base address: 0x40014100 Count: 16 */\r
-                       0x40014215u, /* Base address: 0x40014200 Count: 21 */\r
-                       0x4001430Bu, /* Base address: 0x40014300 Count: 11 */\r
-                       0x40014410u, /* Base address: 0x40014400 Count: 16 */\r
-                       0x40014517u, /* Base address: 0x40014500 Count: 23 */\r
-                       0x40014607u, /* Base address: 0x40014600 Count: 7 */\r
-                       0x4001470Au, /* Base address: 0x40014700 Count: 10 */\r
-                       0x4001480Cu, /* Base address: 0x40014800 Count: 12 */\r
-                       0x4001490Bu, /* Base address: 0x40014900 Count: 11 */\r
-                       0x4001500Bu, /* Base address: 0x40015000 Count: 11 */\r
-                       0x40015102u, /* Base address: 0x40015100 Count: 2 */\r
+                       0x40010052u, /* Base address: 0x40010000 Count: 82 */\r
+                       0x40010139u, /* Base address: 0x40010100 Count: 57 */\r
+                       0x40010241u, /* Base address: 0x40010200 Count: 65 */\r
+                       0x4001035Cu, /* Base address: 0x40010300 Count: 92 */\r
+                       0x40010417u, /* Base address: 0x40010400 Count: 23 */\r
+                       0x40010560u, /* Base address: 0x40010500 Count: 96 */\r
+                       0x4001065Du, /* Base address: 0x40010600 Count: 93 */\r
+                       0x40010754u, /* Base address: 0x40010700 Count: 84 */\r
+                       0x40010804u, /* Base address: 0x40010800 Count: 4 */\r
+                       0x4001090Eu, /* Base address: 0x40010900 Count: 14 */\r
+                       0x40010B12u, /* Base address: 0x40010B00 Count: 18 */\r
+                       0x40010C47u, /* Base address: 0x40010C00 Count: 71 */\r
+                       0x40010D45u, /* Base address: 0x40010D00 Count: 69 */\r
+                       0x40010F05u, /* Base address: 0x40010F00 Count: 5 */\r
+                       0x40011505u, /* Base address: 0x40011500 Count: 5 */\r
+                       0x4001164Cu, /* Base address: 0x40011600 Count: 76 */\r
+                       0x4001174Bu, /* Base address: 0x40011700 Count: 75 */\r
+                       0x4001190Au, /* Base address: 0x40011900 Count: 10 */\r
+                       0x40011B03u, /* Base address: 0x40011B00 Count: 3 */\r
+                       0x40014019u, /* Base address: 0x40014000 Count: 25 */\r
+                       0x40014117u, /* Base address: 0x40014100 Count: 23 */\r
+                       0x4001420Fu, /* Base address: 0x40014200 Count: 15 */\r
+                       0x4001430Du, /* Base address: 0x40014300 Count: 13 */\r
+                       0x4001440Du, /* Base address: 0x40014400 Count: 13 */\r
+                       0x40014516u, /* Base address: 0x40014500 Count: 22 */\r
+                       0x40014608u, /* Base address: 0x40014600 Count: 8 */\r
+                       0x40014705u, /* Base address: 0x40014700 Count: 5 */\r
+                       0x40014807u, /* Base address: 0x40014800 Count: 7 */\r
+                       0x4001490Au, /* Base address: 0x40014900 Count: 10 */\r
+                       0x40014C01u, /* Base address: 0x40014C00 Count: 1 */\r
+                       0x40015005u, /* Base address: 0x40015000 Count: 5 */\r
+                       0x40015104u, /* Base address: 0x40015100 Count: 4 */\r
                };\r
 \r
                static const cy_cfg_addrvalue_t CYCODE cy_cfg_data_table[] = {\r
                        {0x36u, 0x02u},\r
                        {0x7Eu, 0x02u},\r
                        {0x01u, 0x20u},\r
-                       {0x0Au, 0x36u},\r
-                       {0x00u, 0x13u},\r
-                       {0x01u, 0x05u},\r
-                       {0x19u, 0x04u},\r
+                       {0x0Au, 0x1Bu},\r
+                       {0x00u, 0x14u},\r
+                       {0x01u, 0x01u},\r
+                       {0x18u, 0x0Cu},\r
+                       {0x19u, 0x08u},\r
                        {0x1Cu, 0x61u},\r
-                       {0x20u, 0xA8u},\r
-                       {0x21u, 0x60u},\r
-                       {0x30u, 0x09u},\r
-                       {0x31u, 0x0Au},\r
+                       {0x20u, 0x60u},\r
+                       {0x21u, 0xC0u},\r
+                       {0x30u, 0x06u},\r
+                       {0x31u, 0x0Cu},\r
                        {0x7Cu, 0x40u},\r
-                       {0x3Cu, 0x01u},\r
+                       {0x23u, 0x02u},\r
                        {0x86u, 0x0Fu},\r
-                       {0x05u, 0x08u},\r
-                       {0x06u, 0x40u},\r
-                       {0x07u, 0x44u},\r
-                       {0x0Au, 0x10u},\r
-                       {0x0Cu, 0x55u},\r
-                       {0x0Du, 0x04u},\r
-                       {0x0Eu, 0xAAu},\r
-                       {0x0Fu, 0x09u},\r
-                       {0x11u, 0x4Du},\r
-                       {0x12u, 0x04u},\r
-                       {0x13u, 0xB2u},\r
-                       {0x16u, 0x20u},\r
-                       {0x1Au, 0x02u},\r
-                       {0x1Du, 0x20u},\r
-                       {0x1Fu, 0x90u},\r
-                       {0x22u, 0x01u},\r
-                       {0x2Au, 0x80u},\r
-                       {0x2Du, 0x10u},\r
-                       {0x2Eu, 0x08u},\r
-                       {0x2Fu, 0x22u},\r
-                       {0x30u, 0xC0u},\r
-                       {0x31u, 0xC0u},\r
-                       {0x32u, 0x0Cu},\r
-                       {0x33u, 0x03u},\r
-                       {0x34u, 0x30u},\r
-                       {0x35u, 0x3Cu},\r
-                       {0x36u, 0x03u},\r
-                       {0x3Eu, 0x55u},\r
-                       {0x3Fu, 0x15u},\r
+                       {0x00u, 0x03u},\r
+                       {0x01u, 0x09u},\r
+                       {0x02u, 0x0Cu},\r
+                       {0x03u, 0x24u},\r
+                       {0x04u, 0x09u},\r
+                       {0x06u, 0x06u},\r
+                       {0x07u, 0x09u},\r
+                       {0x08u, 0xFFu},\r
+                       {0x09u, 0x40u},\r
+                       {0x0Cu, 0x90u},\r
+                       {0x0Eu, 0x60u},\r
+                       {0x0Fu, 0x30u},\r
+                       {0x10u, 0xFFu},\r
+                       {0x11u, 0x09u},\r
+                       {0x13u, 0x12u},\r
+                       {0x14u, 0x05u},\r
+                       {0x15u, 0x40u},\r
+                       {0x16u, 0x0Au},\r
+                       {0x1Bu, 0x01u},\r
+                       {0x1Cu, 0x0Fu},\r
+                       {0x1Eu, 0xF0u},\r
+                       {0x1Fu, 0x06u},\r
+                       {0x20u, 0x50u},\r
+                       {0x22u, 0xA0u},\r
+                       {0x23u, 0x08u},\r
+                       {0x25u, 0x80u},\r
+                       {0x26u, 0xFFu},\r
+                       {0x29u, 0x40u},\r
+                       {0x2Cu, 0x30u},\r
+                       {0x2Du, 0x40u},\r
+                       {0x2Eu, 0xC0u},\r
+                       {0x31u, 0x38u},\r
+                       {0x32u, 0xFFu},\r
+                       {0x33u, 0x40u},\r
+                       {0x35u, 0x80u},\r
+                       {0x37u, 0x07u},\r
+                       {0x39u, 0x08u},\r
+                       {0x3Eu, 0x04u},\r
+                       {0x3Fu, 0x14u},\r
                        {0x58u, 0x04u},\r
                        {0x59u, 0x04u},\r
-                       {0x5Bu, 0x04u},\r
+                       {0x5Cu, 0x10u},\r
                        {0x5Fu, 0x01u},\r
-                       {0x80u, 0x03u},\r
-                       {0x81u, 0x06u},\r
-                       {0x82u, 0x0Cu},\r
-                       {0x83u, 0x09u},\r
-                       {0x84u, 0x05u},\r
-                       {0x86u, 0x0Au},\r
-                       {0x87u, 0xFFu},\r
-                       {0x89u, 0x30u},\r
-                       {0x8Au, 0xFFu},\r
-                       {0x8Bu, 0xC0u},\r
-                       {0x8Cu, 0x0Fu},\r
-                       {0x8Du, 0x60u},\r
-                       {0x8Eu, 0xF0u},\r
-                       {0x8Fu, 0x90u},\r
-                       {0x90u, 0x90u},\r
-                       {0x91u, 0x0Fu},\r
-                       {0x92u, 0x60u},\r
-                       {0x93u, 0xF0u},\r
-                       {0x94u, 0xFFu},\r
-                       {0x95u, 0x50u},\r
-                       {0x97u, 0xA0u},\r
-                       {0x98u, 0xFFu},\r
-                       {0x99u, 0xFFu},\r
-                       {0xA1u, 0x03u},\r
-                       {0xA3u, 0x0Cu},\r
-                       {0xA4u, 0x50u},\r
-                       {0xA6u, 0xA0u},\r
-                       {0xA7u, 0xFFu},\r
-                       {0xA8u, 0x30u},\r
-                       {0xA9u, 0x05u},\r
-                       {0xAAu, 0xC0u},\r
-                       {0xABu, 0x0Au},\r
-                       {0xACu, 0x09u},\r
-                       {0xAEu, 0x06u},\r
-                       {0xB2u, 0xFFu},\r
-                       {0xB5u, 0xFFu},\r
-                       {0xBEu, 0x04u},\r
-                       {0xBFu, 0x10u},\r
+                       {0x81u, 0x10u},\r
+                       {0x83u, 0x20u},\r
+                       {0x85u, 0x43u},\r
+                       {0x86u, 0xC1u},\r
+                       {0x87u, 0x04u},\r
+                       {0x89u, 0x45u},\r
+                       {0x8Au, 0x04u},\r
+                       {0x8Bu, 0x02u},\r
+                       {0x8Du, 0x08u},\r
+                       {0x8Eu, 0x02u},\r
+                       {0x90u, 0x24u},\r
+                       {0x91u, 0x41u},\r
+                       {0x92u, 0x90u},\r
+                       {0x93u, 0x06u},\r
+                       {0x95u, 0x04u},\r
+                       {0x96u, 0x24u},\r
+                       {0x97u, 0x03u},\r
+                       {0x9Au, 0x18u},\r
+                       {0x9Fu, 0x10u},\r
+                       {0xA0u, 0x01u},\r
+                       {0xA2u, 0x02u},\r
+                       {0xA6u, 0x20u},\r
+                       {0xA8u, 0x24u},\r
+                       {0xAAu, 0x48u},\r
+                       {0xABu, 0x20u},\r
+                       {0xB1u, 0x08u},\r
+                       {0xB2u, 0xE0u},\r
+                       {0xB3u, 0x07u},\r
+                       {0xB4u, 0x1Cu},\r
+                       {0xB5u, 0x30u},\r
+                       {0xB6u, 0x03u},\r
+                       {0xB7u, 0x40u},\r
+                       {0xBBu, 0x08u},\r
+                       {0xBEu, 0x40u},\r
+                       {0xBFu, 0x51u},\r
                        {0xD8u, 0x04u},\r
                        {0xD9u, 0x04u},\r
+                       {0xDCu, 0x01u},\r
                        {0xDFu, 0x01u},\r
-                       {0x00u, 0x08u},\r
-                       {0x01u, 0x10u},\r
-                       {0x03u, 0x01u},\r
-                       {0x05u, 0x02u},\r
-                       {0x06u, 0x28u},\r
-                       {0x07u, 0x03u},\r
-                       {0x08u, 0x01u},\r
-                       {0x0Au, 0x14u},\r
-                       {0x0Eu, 0x60u},\r
-                       {0x0Fu, 0x04u},\r
-                       {0x10u, 0x08u},\r
-                       {0x11u, 0x41u},\r
-                       {0x14u, 0x01u},\r
-                       {0x16u, 0x02u},\r
-                       {0x17u, 0x24u},\r
-                       {0x19u, 0x18u},\r
-                       {0x1Au, 0x80u},\r
-                       {0x1Bu, 0x80u},\r
-                       {0x1Du, 0x04u},\r
-                       {0x20u, 0x80u},\r
-                       {0x23u, 0x14u},\r
-                       {0x26u, 0x20u},\r
-                       {0x29u, 0x40u},\r
-                       {0x2Cu, 0x20u},\r
-                       {0x2Du, 0x13u},\r
-                       {0x2Eu, 0x20u},\r
-                       {0x33u, 0x41u},\r
-                       {0x34u, 0x10u},\r
-                       {0x36u, 0x10u},\r
-                       {0x37u, 0x06u},\r
-                       {0x39u, 0x88u},\r
-                       {0x3Cu, 0x20u},\r
-                       {0x3Eu, 0x42u},\r
-                       {0x3Fu, 0x04u},\r
-                       {0x41u, 0xC0u},\r
-                       {0x68u, 0x10u},\r
-                       {0x69u, 0x40u},\r
-                       {0x6Au, 0x54u},\r
-                       {0x6Bu, 0x64u},\r
-                       {0x70u, 0x18u},\r
-                       {0x71u, 0x41u},\r
-                       {0x80u, 0x08u},\r
-                       {0x8Bu, 0x80u},\r
-                       {0x8Eu, 0x40u},\r
-                       {0xC0u, 0xF7u},\r
-                       {0xC2u, 0x7Eu},\r
-                       {0xC4u, 0xEBu},\r
-                       {0xCAu, 0xE8u},\r
-                       {0xCCu, 0xE9u},\r
-                       {0xCEu, 0xFAu},\r
-                       {0xE2u, 0x10u},\r
-                       {0xE6u, 0x05u},\r
-                       {0x01u, 0x03u},\r
-                       {0x03u, 0x0Cu},\r
-                       {0x04u, 0x30u},\r
-                       {0x06u, 0xC0u},\r
-                       {0x07u, 0xFFu},\r
-                       {0x0Au, 0xFFu},\r
-                       {0x0Bu, 0xFFu},\r
-                       {0x0Cu, 0x06u},\r
-                       {0x0Du, 0x90u},\r
-                       {0x0Eu, 0x09u},\r
-                       {0x0Fu, 0x60u},\r
-                       {0x10u, 0x60u},\r
-                       {0x11u, 0x0Fu},\r
-                       {0x12u, 0x90u},\r
-                       {0x13u, 0xF0u},\r
-                       {0x15u, 0x50u},\r
-                       {0x16u, 0xFFu},\r
-                       {0x17u, 0xA0u},\r
-                       {0x18u, 0xFFu},\r
-                       {0x19u, 0x30u},\r
-                       {0x1Bu, 0xC0u},\r
-                       {0x1Cu, 0x03u},\r
-                       {0x1Eu, 0x0Cu},\r
-                       {0x20u, 0x0Fu},\r
-                       {0x21u, 0x09u},\r
-                       {0x22u, 0xF0u},\r
-                       {0x23u, 0x06u},\r
-                       {0x24u, 0x50u},\r
-                       {0x26u, 0xA0u},\r
-                       {0x27u, 0xFFu},\r
-                       {0x28u, 0x05u},\r
-                       {0x29u, 0x05u},\r
-                       {0x2Au, 0x0Au},\r
-                       {0x2Bu, 0x0Au},\r
-                       {0x34u, 0xFFu},\r
-                       {0x35u, 0xFFu},\r
-                       {0x3Eu, 0x10u},\r
+                       {0x00u, 0x80u},\r
+                       {0x02u, 0xA0u},\r
+                       {0x03u, 0x08u},\r
+                       {0x05u, 0x14u},\r
+                       {0x07u, 0x01u},\r
+                       {0x08u, 0x40u},\r
+                       {0x09u, 0x05u},\r
+                       {0x0Au, 0x01u},\r
+                       {0x0Du, 0x25u},\r
+                       {0x0Fu, 0x08u},\r
+                       {0x11u, 0x84u},\r
+                       {0x12u, 0x04u},\r
+                       {0x13u, 0x22u},\r
+                       {0x14u, 0x40u},\r
+                       {0x15u, 0x20u},\r
+                       {0x16u, 0x20u},\r
+                       {0x18u, 0x10u},\r
+                       {0x1Du, 0x24u},\r
+                       {0x1Eu, 0x20u},\r
+                       {0x1Fu, 0x80u},\r
+                       {0x20u, 0x20u},\r
+                       {0x22u, 0xD0u},\r
+                       {0x23u, 0xC0u},\r
+                       {0x24u, 0x40u},\r
+                       {0x25u, 0x80u},\r
+                       {0x26u, 0x04u},\r
+                       {0x27u, 0x28u},\r
+                       {0x28u, 0x08u},\r
+                       {0x2Au, 0x02u},\r
+                       {0x2Bu, 0x22u},\r
+                       {0x2Cu, 0x04u},\r
+                       {0x31u, 0x01u},\r
+                       {0x32u, 0x44u},\r
+                       {0x33u, 0x10u},\r
+                       {0x36u, 0x06u},\r
+                       {0x37u, 0x80u},\r
+                       {0x38u, 0x10u},\r
+                       {0x39u, 0x0Au},\r
+                       {0x3Bu, 0x40u},\r
+                       {0x3Eu, 0x05u},\r
+                       {0x3Fu, 0x90u},\r
+                       {0x46u, 0x40u},\r
+                       {0x47u, 0x01u},\r
+                       {0x86u, 0x20u},\r
+                       {0x87u, 0x02u},\r
+                       {0x88u, 0x08u},\r
+                       {0x8Cu, 0x40u},\r
+                       {0x8Du, 0x01u},\r
+                       {0x8Fu, 0x08u},\r
+                       {0xC0u, 0xEFu},\r
+                       {0xC2u, 0x7Du},\r
+                       {0xC4u, 0x7Du},\r
+                       {0xCAu, 0x2Fu},\r
+                       {0xCCu, 0xDFu},\r
+                       {0xCEu, 0xFFu},\r
+                       {0xE2u, 0x08u},\r
+                       {0xE6u, 0x72u},\r
+                       {0x21u, 0x01u},\r
+                       {0x35u, 0x01u},\r
                        {0x3Fu, 0x10u},\r
-                       {0x56u, 0x08u},\r
-                       {0x58u, 0x04u},\r
                        {0x59u, 0x04u},\r
                        {0x5Bu, 0x04u},\r
-                       {0x5Du, 0x90u},\r
                        {0x5Fu, 0x01u},\r
-                       {0x84u, 0x0Du},\r
-                       {0x87u, 0x06u},\r
-                       {0x88u, 0x0Du},\r
-                       {0x8Bu, 0x08u},\r
-                       {0x8Cu, 0x0Du},\r
-                       {0x92u, 0x10u},\r
-                       {0x94u, 0x80u},\r
-                       {0x95u, 0x09u},\r
-                       {0x97u, 0x52u},\r
-                       {0x98u, 0x02u},\r
-                       {0x9Au, 0x54u},\r
-                       {0x9Cu, 0x02u},\r
-                       {0x9Eu, 0x0Du},\r
-                       {0x9Fu, 0x30u},\r
-                       {0xA0u, 0x0Du},\r
-                       {0xA1u, 0x09u},\r
-                       {0xA3u, 0x24u},\r
-                       {0xA4u, 0x01u},\r
-                       {0xA6u, 0x32u},\r
-                       {0xA7u, 0x01u},\r
-                       {0xA8u, 0x62u},\r
-                       {0xAAu, 0x08u},\r
-                       {0xABu, 0x49u},\r
-                       {0xACu, 0x0Du},\r
-                       {0xB0u, 0x70u},\r
-                       {0xB3u, 0x07u},\r
+                       {0x80u, 0x80u},\r
+                       {0x81u, 0x40u},\r
+                       {0x84u, 0x02u},\r
+                       {0x85u, 0x01u},\r
+                       {0x8Au, 0x1Fu},\r
+                       {0x8Bu, 0x20u},\r
+                       {0x8Cu, 0x5Bu},\r
+                       {0x8Du, 0x80u},\r
+                       {0x8Eu, 0x24u},\r
+                       {0x94u, 0x03u},\r
+                       {0x95u, 0x08u},\r
+                       {0x96u, 0x0Cu},\r
+                       {0x97u, 0x12u},\r
+                       {0x98u, 0x58u},\r
+                       {0x99u, 0x0Bu},\r
+                       {0x9Au, 0x24u},\r
+                       {0x9Bu, 0x24u},\r
+                       {0xA0u, 0x0Cu},\r
+                       {0xA1u, 0x34u},\r
+                       {0xA2u, 0x40u},\r
+                       {0xA3u, 0x0Bu},\r
+                       {0xA6u, 0x01u},\r
+                       {0xA8u, 0x40u},\r
+                       {0xAAu, 0x37u},\r
+                       {0xABu, 0x3Fu},\r
+                       {0xB0u, 0x1Fu},\r
+                       {0xB1u, 0x80u},\r
+                       {0xB2u, 0x20u},\r
+                       {0xB3u, 0x38u},\r
                        {0xB4u, 0x80u},\r
-                       {0xB5u, 0x40u},\r
-                       {0xB6u, 0x0Fu},\r
-                       {0xB7u, 0x38u},\r
-                       {0xBAu, 0x80u},\r
-                       {0xBEu, 0x10u},\r
-                       {0xBFu, 0x10u},\r
-                       {0xD8u, 0x0Bu},\r
+                       {0xB5u, 0x07u},\r
+                       {0xB6u, 0x40u},\r
+                       {0xB7u, 0x40u},\r
+                       {0xBEu, 0x54u},\r
+                       {0xBFu, 0x41u},\r
+                       {0xC0u, 0x64u},\r
+                       {0xC1u, 0x02u},\r
+                       {0xC2u, 0x30u},\r
+                       {0xC5u, 0xCDu},\r
+                       {0xC6u, 0x2Eu},\r
+                       {0xC7u, 0x0Fu},\r
+                       {0xC8u, 0x1Fu},\r
+                       {0xC9u, 0xFFu},\r
+                       {0xCAu, 0xFFu},\r
+                       {0xCBu, 0xFFu},\r
+                       {0xCFu, 0x2Cu},\r
+                       {0xD6u, 0x01u},\r
+                       {0xD8u, 0x04u},\r
                        {0xD9u, 0x04u},\r
+                       {0xDAu, 0x04u},\r
                        {0xDBu, 0x04u},\r
-                       {0xDCu, 0x19u},\r
+                       {0xDCu, 0x11u},\r
+                       {0xDDu, 0x01u},\r
                        {0xDFu, 0x01u},\r
-                       {0x03u, 0x19u},\r
-                       {0x06u, 0x0Au},\r
-                       {0x07u, 0x20u},\r
-                       {0x08u, 0x04u},\r
+                       {0xE2u, 0xC0u},\r
+                       {0xE6u, 0x80u},\r
+                       {0xE8u, 0x40u},\r
+                       {0xE9u, 0x40u},\r
+                       {0xEEu, 0x08u},\r
+                       {0x00u, 0x02u},\r
+                       {0x01u, 0x08u},\r
+                       {0x03u, 0x0Au},\r
                        {0x09u, 0x20u},\r
-                       {0x0Au, 0x81u},\r
-                       {0x0Eu, 0x50u},\r
-                       {0x0Fu, 0x05u},\r
+                       {0x0Bu, 0x20u},\r
                        {0x10u, 0x80u},\r
-                       {0x11u, 0x40u},\r
-                       {0x13u, 0x18u},\r
-                       {0x14u, 0x40u},\r
-                       {0x15u, 0x10u},\r
-                       {0x17u, 0x06u},\r
-                       {0x19u, 0x20u},\r
-                       {0x1Au, 0x81u},\r
-                       {0x1Eu, 0x04u},\r
-                       {0x20u, 0x04u},\r
-                       {0x21u, 0x84u},\r
-                       {0x25u, 0x10u},\r
-                       {0x28u, 0x80u},\r
-                       {0x2Au, 0x10u},\r
-                       {0x2Bu, 0x10u},\r
-                       {0x2Cu, 0x20u},\r
-                       {0x2Du, 0x10u},\r
-                       {0x2Eu, 0x0Au},\r
-                       {0x31u, 0x80u},\r
-                       {0x32u, 0x04u},\r
-                       {0x37u, 0xE6u},\r
-                       {0x39u, 0x08u},\r
-                       {0x3Au, 0x20u},\r
-                       {0x3Du, 0x03u},\r
-                       {0x3Eu, 0x50u},\r
-                       {0x3Fu, 0x05u},\r
-                       {0x58u, 0x10u},\r
-                       {0x5Au, 0x10u},\r
-                       {0x5Fu, 0x80u},\r
-                       {0x61u, 0x01u},\r
-                       {0x62u, 0x02u},\r
-                       {0x64u, 0x02u},\r
-                       {0x6Bu, 0x02u},\r
-                       {0x6Cu, 0x02u},\r
-                       {0x78u, 0x02u},\r
-                       {0x82u, 0x02u},\r
-                       {0x83u, 0x10u},\r
-                       {0x84u, 0x80u},\r
-                       {0x86u, 0xA0u},\r
-                       {0x88u, 0x04u},\r
-                       {0x89u, 0x10u},\r
-                       {0x8Bu, 0x40u},\r
-                       {0x8Cu, 0x04u},\r
+                       {0x11u, 0x04u},\r
+                       {0x12u, 0x08u},\r
+                       {0x18u, 0x04u},\r
+                       {0x19u, 0x42u},\r
+                       {0x1Au, 0x10u},\r
+                       {0x1Bu, 0x02u},\r
+                       {0x21u, 0x34u},\r
+                       {0x22u, 0x09u},\r
+                       {0x23u, 0x05u},\r
+                       {0x27u, 0x04u},\r
+                       {0x29u, 0x02u},\r
+                       {0x2Bu, 0x08u},\r
+                       {0x2Cu, 0x08u},\r
+                       {0x2Du, 0x20u},\r
+                       {0x2Fu, 0x80u},\r
+                       {0x31u, 0x20u},\r
+                       {0x32u, 0x08u},\r
+                       {0x38u, 0x20u},\r
+                       {0x39u, 0x85u},\r
+                       {0x41u, 0x11u},\r
+                       {0x42u, 0x10u},\r
+                       {0x43u, 0x02u},\r
+                       {0x48u, 0x90u},\r
+                       {0x49u, 0x08u},\r
+                       {0x4Au, 0x08u},\r
+                       {0x50u, 0x58u},\r
+                       {0x5Au, 0xA2u},\r
+                       {0x5Bu, 0x04u},\r
+                       {0x60u, 0x44u},\r
+                       {0x61u, 0x08u},\r
+                       {0x63u, 0x01u},\r
+                       {0x69u, 0x10u},\r
+                       {0x6Au, 0x40u},\r
+                       {0x6Bu, 0x50u},\r
+                       {0x6Du, 0x64u},\r
+                       {0x71u, 0x10u},\r
+                       {0x72u, 0x22u},\r
+                       {0x73u, 0x40u},\r
+                       {0x81u, 0x40u},\r
+                       {0x82u, 0x40u},\r
+                       {0x87u, 0x80u},\r
+                       {0x89u, 0x05u},\r
+                       {0x8Au, 0x80u},\r
+                       {0x8Bu, 0x80u},\r
+                       {0x8Cu, 0x08u},\r
                        {0x8Du, 0x40u},\r
-                       {0x90u, 0x20u},\r
+                       {0x8Fu, 0x08u},\r
+                       {0x90u, 0x40u},\r
+                       {0x92u, 0x20u},\r
+                       {0x93u, 0x20u},\r
+                       {0x94u, 0x80u},\r
+                       {0x95u, 0x2Eu},\r
+                       {0x96u, 0x0Du},\r
+                       {0x97u, 0x10u},\r
+                       {0x9Au, 0x44u},\r
+                       {0x9Bu, 0x80u},\r
+                       {0x9Cu, 0x08u},\r
+                       {0x9Du, 0x11u},\r
+                       {0x9Eu, 0x22u},\r
+                       {0x9Fu, 0x12u},\r
+                       {0xA1u, 0x80u},\r
+                       {0xA2u, 0x90u},\r
+                       {0xA3u, 0x04u},\r
+                       {0xA4u, 0x48u},\r
+                       {0xA5u, 0x44u},\r
+                       {0xA6u, 0x02u},\r
+                       {0xA7u, 0x20u},\r
+                       {0xABu, 0x40u},\r
+                       {0xACu, 0x10u},\r
+                       {0xAFu, 0x91u},\r
+                       {0xB0u, 0x04u},\r
+                       {0xB7u, 0x08u},\r
+                       {0xC0u, 0x0Fu},\r
+                       {0xC2u, 0x06u},\r
+                       {0xC4u, 0x0Eu},\r
+                       {0xCAu, 0x85u},\r
+                       {0xCCu, 0x06u},\r
+                       {0xCEu, 0x0Fu},\r
+                       {0xD0u, 0x07u},\r
+                       {0xD2u, 0x04u},\r
+                       {0xD6u, 0x0Fu},\r
+                       {0xD8u, 0x0Fu},\r
+                       {0xE2u, 0x20u},\r
+                       {0xE6u, 0x09u},\r
+                       {0xEAu, 0x06u},\r
+                       {0xEEu, 0x02u},\r
+                       {0x85u, 0x02u},\r
+                       {0x87u, 0x05u},\r
+                       {0x8Fu, 0x02u},\r
+                       {0x97u, 0x03u},\r
+                       {0x9Au, 0x01u},\r
+                       {0x9Fu, 0x0Cu},\r
+                       {0xA1u, 0x02u},\r
+                       {0xA2u, 0x04u},\r
+                       {0xA3u, 0x08u},\r
+                       {0xA4u, 0x05u},\r
+                       {0xA6u, 0x0Au},\r
+                       {0xAAu, 0x02u},\r
+                       {0xAEu, 0x08u},\r
+                       {0xB1u, 0x0Eu},\r
+                       {0xB4u, 0x0Cu},\r
+                       {0xB5u, 0x01u},\r
+                       {0xB6u, 0x03u},\r
+                       {0xBEu, 0x50u},\r
+                       {0xBFu, 0x10u},\r
+                       {0xD8u, 0x04u},\r
+                       {0xD9u, 0x04u},\r
+                       {0xDCu, 0x10u},\r
+                       {0xDFu, 0x01u},\r
+                       {0x01u, 0x41u},\r
+                       {0x03u, 0x18u},\r
+                       {0x04u, 0x80u},\r
+                       {0x05u, 0x80u},\r
+                       {0x08u, 0x48u},\r
+                       {0x0Au, 0x86u},\r
+                       {0x0Du, 0x80u},\r
+                       {0x0Fu, 0x0Au},\r
+                       {0x10u, 0x80u},\r
+                       {0x12u, 0x02u},\r
+                       {0x13u, 0x10u},\r
+                       {0x14u, 0x01u},\r
+                       {0x15u, 0x02u},\r
+                       {0x17u, 0x28u},\r
+                       {0x1Au, 0x82u},\r
+                       {0x1Bu, 0x10u},\r
+                       {0x1Fu, 0x90u},\r
+                       {0x20u, 0x40u},\r
+                       {0x22u, 0x10u},\r
+                       {0x27u, 0x84u},\r
+                       {0x29u, 0x02u},\r
+                       {0x2Du, 0x02u},\r
+                       {0x32u, 0x18u},\r
+                       {0x33u, 0x40u},\r
+                       {0x36u, 0x08u},\r
+                       {0x37u, 0x80u},\r
+                       {0x38u, 0x40u},\r
+                       {0x39u, 0x10u},\r
+                       {0x3Bu, 0x04u},\r
+                       {0x3Fu, 0x44u},\r
+                       {0x40u, 0x20u},\r
+                       {0x42u, 0x04u},\r
+                       {0x43u, 0x02u},\r
+                       {0x49u, 0x04u},\r
+                       {0x4Au, 0x02u},\r
+                       {0x4Bu, 0x11u},\r
+                       {0x50u, 0x08u},\r
+                       {0x51u, 0x60u},\r
+                       {0x53u, 0x01u},\r
+                       {0x58u, 0x04u},\r
+                       {0x59u, 0xA0u},\r
+                       {0x5Au, 0x01u},\r
+                       {0x61u, 0x40u},\r
+                       {0x64u, 0x02u},\r
+                       {0x67u, 0x02u},\r
+                       {0x79u, 0x02u},\r
+                       {0x7Au, 0x80u},\r
+                       {0x7Du, 0x08u},\r
+                       {0x7Eu, 0x10u},\r
+                       {0x80u, 0x08u},\r
+                       {0x83u, 0x05u},\r
+                       {0x85u, 0x40u},\r
+                       {0x88u, 0x20u},\r
+                       {0x8Bu, 0x10u},\r
+                       {0x8Fu, 0x80u},\r
+                       {0x90u, 0x80u},\r
+                       {0x91u, 0x14u},\r
                        {0x92u, 0x40u},\r
-                       {0x93u, 0x04u},\r
-                       {0x95u, 0x19u},\r
-                       {0x98u, 0x08u},\r
-                       {0x99u, 0x05u},\r
-                       {0x9Bu, 0x24u},\r
-                       {0x9Cu, 0x10u},\r
-                       {0x9Eu, 0x0Au},\r
-                       {0x9Fu, 0x02u},\r
-                       {0xA0u, 0x08u},\r
-                       {0xA2u, 0x20u},\r
-                       {0xA4u, 0x24u},\r
-                       {0xA5u, 0x80u},\r
-                       {0xACu, 0x40u},\r
-                       {0xADu, 0x08u},\r
-                       {0xB3u, 0x10u},\r
+                       {0x93u, 0x44u},\r
+                       {0x96u, 0x0Cu},\r
+                       {0x97u, 0x10u},\r
+                       {0x98u, 0x04u},\r
+                       {0x99u, 0x62u},\r
+                       {0x9Au, 0x44u},\r
+                       {0x9Bu, 0x68u},\r
+                       {0xA0u, 0x10u},\r
+                       {0xA1u, 0x80u},\r
+                       {0xA2u, 0x98u},\r
+                       {0xA3u, 0x04u},\r
+                       {0xA4u, 0x40u},\r
+                       {0xA5u, 0x04u},\r
+                       {0xA6u, 0x02u},\r
+                       {0xA7u, 0x40u},\r
+                       {0xA9u, 0x29u},\r
+                       {0xABu, 0x20u},\r
+                       {0xACu, 0x84u},\r
+                       {0xADu, 0x40u},\r
+                       {0xB0u, 0x01u},\r
+                       {0xB2u, 0x01u},\r
+                       {0xB3u, 0x28u},\r
                        {0xB5u, 0x10u},\r
-                       {0xC0u, 0xE7u},\r
-                       {0xC2u, 0xFFu},\r
-                       {0xC4u, 0x7Fu},\r
-                       {0xCAu, 0xE7u},\r
-                       {0xCCu, 0xEAu},\r
-                       {0xCEu, 0xF6u},\r
-                       {0xD6u, 0x10u},\r
-                       {0xD8u, 0x10u},\r
-                       {0xDEu, 0x01u},\r
-                       {0xE2u, 0x0Au},\r
-                       {0xE6u, 0x47u},\r
-                       {0xE8u, 0x02u},\r
-                       {0xEAu, 0x08u},\r
-                       {0xECu, 0x08u},\r
-                       {0xEEu, 0x80u},\r
-                       {0x01u, 0x44u},\r
-                       {0x05u, 0xE1u},\r
-                       {0x06u, 0x46u},\r
-                       {0x07u, 0x12u},\r
-                       {0x08u, 0x09u},\r
-                       {0x09u, 0x80u},\r
-                       {0x0Au, 0x12u},\r
-                       {0x0Bu, 0x5Fu},\r
-                       {0x0Du, 0x4Cu},\r
-                       {0x0Eu, 0x80u},\r
-                       {0x11u, 0x4Cu},\r
-                       {0x12u, 0x30u},\r
+                       {0xB7u, 0x42u},\r
+                       {0xC0u, 0x0Fu},\r
+                       {0xC2u, 0x4Fu},\r
+                       {0xC4u, 0xFBu},\r
+                       {0xCAu, 0x81u},\r
+                       {0xCCu, 0x5Eu},\r
+                       {0xCEu, 0x5Eu},\r
+                       {0xD0u, 0x07u},\r
+                       {0xD2u, 0x0Cu},\r
+                       {0xD6u, 0x0Fu},\r
+                       {0xD8u, 0x08u},\r
+                       {0xE0u, 0x80u},\r
+                       {0xE2u, 0x40u},\r
+                       {0xEAu, 0x03u},\r
+                       {0xEEu, 0x54u},\r
+                       {0x00u, 0x01u},\r
+                       {0x03u, 0x9Fu},\r
+                       {0x04u, 0x01u},\r
+                       {0x07u, 0xFFu},\r
+                       {0x08u, 0x04u},\r
+                       {0x09u, 0x7Fu},\r
+                       {0x0Bu, 0x80u},\r
+                       {0x0Cu, 0x01u},\r
+                       {0x0Du, 0x90u},\r
+                       {0x0Fu, 0x40u},\r
+                       {0x11u, 0x1Fu},\r
+                       {0x12u, 0x40u},\r
+                       {0x13u, 0x20u},\r
+                       {0x14u, 0xA2u},\r
+                       {0x15u, 0x80u},\r
                        {0x16u, 0x08u},\r
-                       {0x17u, 0x4Cu},\r
-                       {0x19u, 0xB1u},\r
-                       {0x1Au, 0x09u},\r
-                       {0x1Bu, 0x0Eu},\r
-                       {0x1Cu, 0x09u},\r
-                       {0x1Du, 0x4Cu},\r
-                       {0x1Eu, 0x24u},\r
-                       {0x20u, 0x40u},\r
-                       {0x21u, 0x08u},\r
-                       {0x22u, 0x80u},\r
-                       {0x23u, 0x20u},\r
-                       {0x25u, 0x44u},\r
-                       {0x26u, 0x01u},\r
-                       {0x27u, 0x08u},\r
-                       {0x30u, 0x38u},\r
-                       {0x31u, 0x10u},\r
-                       {0x33u, 0x61u},\r
-                       {0x34u, 0x07u},\r
-                       {0x35u, 0x0Fu},\r
-                       {0x36u, 0xC0u},\r
-                       {0x37u, 0x80u},\r
-                       {0x3Bu, 0x0Cu},\r
+                       {0x18u, 0x08u},\r
+                       {0x1Au, 0x61u},\r
+                       {0x1Bu, 0x60u},\r
+                       {0x1Cu, 0x01u},\r
+                       {0x1Du, 0xC0u},\r
+                       {0x1Fu, 0x02u},\r
+                       {0x20u, 0x07u},\r
+                       {0x21u, 0xC0u},\r
+                       {0x22u, 0xD8u},\r
+                       {0x23u, 0x01u},\r
+                       {0x25u, 0xC0u},\r
+                       {0x27u, 0x04u},\r
+                       {0x28u, 0x01u},\r
+                       {0x29u, 0xC0u},\r
+                       {0x2Bu, 0x08u},\r
+                       {0x2Cu, 0x10u},\r
+                       {0x30u, 0xE0u},\r
+                       {0x36u, 0x3Fu},\r
+                       {0x37u, 0xFFu},\r
+                       {0x38u, 0x80u},\r
                        {0x3Eu, 0x40u},\r
-                       {0x3Fu, 0x41u},\r
-                       {0x54u, 0x09u},\r
+                       {0x3Fu, 0x40u},\r
                        {0x58u, 0x04u},\r
-                       {0x59u, 0x0Bu},\r
-                       {0x5Bu, 0x0Bu},\r
-                       {0x5Cu, 0x91u},\r
-                       {0x5Du, 0x90u},\r
+                       {0x59u, 0x04u},\r
                        {0x5Fu, 0x01u},\r
-                       {0x82u, 0x38u},\r
-                       {0x85u, 0x04u},\r
-                       {0x88u, 0x01u},\r
-                       {0x89u, 0x04u},\r
-                       {0x8Au, 0x14u},\r
-                       {0x90u, 0x3Eu},\r
-                       {0x94u, 0x22u},\r
-                       {0x95u, 0x04u},\r
-                       {0x96u, 0x01u},\r
-                       {0x99u, 0x04u},\r
-                       {0x9Fu, 0x01u},\r
-                       {0xA4u, 0x09u},\r
-                       {0xA6u, 0x02u},\r
-                       {0xABu, 0x02u},\r
-                       {0xADu, 0x01u},\r
-                       {0xAFu, 0x02u},\r
-                       {0xB0u, 0x07u},\r
-                       {0xB1u, 0x03u},\r
-                       {0xB4u, 0x38u},\r
-                       {0xB7u, 0x04u},\r
-                       {0xB8u, 0x02u},\r
-                       {0xB9u, 0x80u},\r
-                       {0xBEu, 0x10u},\r
-                       {0xBFu, 0x41u},\r
-                       {0xD8u, 0x0Bu},\r
+                       {0x80u, 0x56u},\r
+                       {0x81u, 0x64u},\r
+                       {0x84u, 0x52u},\r
+                       {0x85u, 0x83u},\r
+                       {0x86u, 0x04u},\r
+                       {0x87u, 0x70u},\r
+                       {0x88u, 0x50u},\r
+                       {0x8Au, 0x06u},\r
+                       {0x8Bu, 0xF5u},\r
+                       {0x8Cu, 0x17u},\r
+                       {0x8Du, 0x64u},\r
+                       {0x8Eu, 0x28u},\r
+                       {0x91u, 0x07u},\r
+                       {0x93u, 0x90u},\r
+                       {0x94u, 0x31u},\r
+                       {0x95u, 0x40u},\r
+                       {0x96u, 0x0Eu},\r
+                       {0x97u, 0x02u},\r
+                       {0x98u, 0x29u},\r
+                       {0x99u, 0x24u},\r
+                       {0x9Au, 0x16u},\r
+                       {0x9Bu, 0x40u},\r
+                       {0x9Du, 0x08u},\r
+                       {0xA0u, 0x56u},\r
+                       {0xA1u, 0x64u},\r
+                       {0xA4u, 0x22u},\r
+                       {0xA5u, 0x24u},\r
+                       {0xA6u, 0x10u},\r
+                       {0xA8u, 0x04u},\r
+                       {0xABu, 0x64u},\r
+                       {0xACu, 0x06u},\r
+                       {0xADu, 0x08u},\r
+                       {0xAEu, 0x50u},\r
+                       {0xB0u, 0x40u},\r
+                       {0xB1u, 0x71u},\r
+                       {0xB2u, 0x30u},\r
+                       {0xB3u, 0x07u},\r
+                       {0xB4u, 0x0Fu},\r
+                       {0xB5u, 0x08u},\r
+                       {0xB7u, 0x80u},\r
+                       {0xB8u, 0x20u},\r
+                       {0xB9u, 0x20u},\r
+                       {0xBAu, 0x08u},\r
+                       {0xBBu, 0x0Cu},\r
+                       {0xBEu, 0x01u},\r
+                       {0xBFu, 0x40u},\r
+                       {0xD4u, 0x40u},\r
+                       {0xD6u, 0x04u},\r
+                       {0xD8u, 0x04u},\r
                        {0xD9u, 0x04u},\r
                        {0xDBu, 0x04u},\r
-                       {0xDCu, 0x09u},\r
                        {0xDFu, 0x01u},\r
-                       {0x00u, 0x20u},\r
+                       {0x01u, 0x01u},\r
                        {0x02u, 0x02u},\r
-                       {0x03u, 0x20u},\r
-                       {0x04u, 0x02u},\r
-                       {0x05u, 0x10u},\r
-                       {0x08u, 0x80u},\r
-                       {0x09u, 0x01u},\r
-                       {0x0Au, 0xA0u},\r
-                       {0x0Bu, 0x04u},\r
-                       {0x0Eu, 0x80u},\r
+                       {0x03u, 0x18u},\r
+                       {0x05u, 0x08u},\r
+                       {0x07u, 0x49u},\r
+                       {0x0Au, 0x04u},\r
+                       {0x0Bu, 0x10u},\r
+                       {0x0Cu, 0x80u},\r
+                       {0x0Eu, 0x84u},\r
                        {0x0Fu, 0x10u},\r
-                       {0x10u, 0x40u},\r
-                       {0x11u, 0x08u},\r
-                       {0x17u, 0x08u},\r
-                       {0x19u, 0x20u},\r
-                       {0x1Au, 0x82u},\r
-                       {0x1Bu, 0x20u},\r
+                       {0x10u, 0x98u},\r
+                       {0x11u, 0x40u},\r
+                       {0x15u, 0x82u},\r
+                       {0x17u, 0x10u},\r
+                       {0x18u, 0x08u},\r
+                       {0x19u, 0x09u},\r
+                       {0x1Au, 0x04u},\r
+                       {0x1Bu, 0x02u},\r
+                       {0x1Du, 0x40u},\r
                        {0x1Eu, 0x80u},\r
-                       {0x1Fu, 0x10u},\r
-                       {0x20u, 0x04u},\r
-                       {0x21u, 0x84u},\r
-                       {0x23u, 0x98u},\r
-                       {0x25u, 0x40u},\r
-                       {0x27u, 0x40u},\r
-                       {0x2Au, 0x0Bu},\r
-                       {0x2Cu, 0x02u},\r
-                       {0x2Fu, 0x04u},\r
-                       {0x30u, 0x80u},\r
-                       {0x31u, 0x10u},\r
-                       {0x33u, 0x09u},\r
-                       {0x35u, 0x04u},\r
-                       {0x36u, 0xA0u},\r
-                       {0x38u, 0x04u},\r
-                       {0x39u, 0x41u},\r
+                       {0x21u, 0x01u},\r
+                       {0x22u, 0x62u},\r
+                       {0x23u, 0x18u},\r
+                       {0x25u, 0x80u},\r
+                       {0x28u, 0x10u},\r
+                       {0x29u, 0x48u},\r
+                       {0x2Bu, 0x88u},\r
+                       {0x2Cu, 0xA0u},\r
+                       {0x2Fu, 0x08u},\r
+                       {0x30u, 0x28u},\r
+                       {0x31u, 0x80u},\r
+                       {0x32u, 0x02u},\r
+                       {0x35u, 0x08u},\r
+                       {0x36u, 0x22u},\r
+                       {0x37u, 0x40u},\r
+                       {0x38u, 0x08u},\r
+                       {0x39u, 0x40u},\r
+                       {0x3Au, 0x02u},\r
                        {0x3Bu, 0x10u},\r
-                       {0x3Du, 0x20u},\r
+                       {0x3Du, 0x40u},\r
                        {0x3Eu, 0x04u},\r
-                       {0x58u, 0x20u},\r
-                       {0x59u, 0x09u},\r
-                       {0x5Bu, 0x80u},\r
-                       {0x61u, 0x80u},\r
-                       {0x65u, 0x08u},\r
-                       {0x66u, 0x14u},\r
-                       {0x67u, 0x04u},\r
-                       {0x6Cu, 0x20u},\r
-                       {0x6Fu, 0x06u},\r
-                       {0x78u, 0x02u},\r
-                       {0x7Cu, 0x02u},\r
-                       {0x82u, 0x80u},\r
-                       {0x85u, 0x40u},\r
-                       {0x86u, 0x01u},\r
-                       {0x87u, 0x02u},\r
-                       {0x90u, 0x20u},\r
-                       {0x91u, 0x80u},\r
-                       {0x92u, 0x24u},\r
-                       {0x93u, 0x40u},\r
-                       {0x95u, 0x40u},\r
-                       {0x96u, 0x18u},\r
-                       {0x97u, 0x10u},\r
-                       {0x98u, 0xCAu},\r
-                       {0x99u, 0x04u},\r
-                       {0x9Au, 0x80u},\r
-                       {0x9Eu, 0x10u},\r
-                       {0x9Fu, 0x59u},\r
-                       {0xA0u, 0x0Au},\r
-                       {0xA1u, 0x14u},\r
-                       {0xA2u, 0x22u},\r
-                       {0xA4u, 0xA4u},\r
-                       {0xA5u, 0x21u},\r
-                       {0xA7u, 0x08u},\r
-                       {0xA8u, 0x20u},\r
-                       {0xB1u, 0x20u},\r
-                       {0xB5u, 0x04u},\r
-                       {0xB6u, 0x50u},\r
-                       {0xC0u, 0x57u},\r
-                       {0xC2u, 0x3Fu},\r
-                       {0xC4u, 0x2Cu},\r
-                       {0xCAu, 0x33u},\r
-                       {0xCCu, 0x7Fu},\r
-                       {0xCEu, 0x6Fu},\r
-                       {0xD6u, 0x0Fu},\r
-                       {0xD8u, 0x08u},\r
-                       {0xDEu, 0x81u},\r
-                       {0xE2u, 0x01u},\r
-                       {0xEAu, 0x10u},\r
-                       {0x87u, 0x11u},\r
-                       {0x8Bu, 0x06u},\r
-                       {0x8Fu, 0x01u},\r
-                       {0x95u, 0x19u},\r
-                       {0x97u, 0x22u},\r
-                       {0x99u, 0x08u},\r
-                       {0xA1u, 0x21u},\r
-                       {0xA3u, 0x1Cu},\r
-                       {0xABu, 0x38u},\r
-                       {0xB3u, 0x38u},\r
-                       {0xB5u, 0x07u},\r
-                       {0xD9u, 0x04u},\r
-                       {0xDCu, 0x10u},\r
-                       {0xDFu, 0x01u},\r
-                       {0x04u, 0x04u},\r
-                       {0x05u, 0x10u},\r
-                       {0x07u, 0x42u},\r
-                       {0x0Eu, 0xA2u},\r
-                       {0x0Fu, 0x08u},\r
-                       {0x15u, 0x48u},\r
-                       {0x16u, 0x08u},\r
-                       {0x17u, 0x11u},\r
-                       {0x1Eu, 0xA0u},\r
-                       {0x20u, 0x28u},\r
-                       {0x21u, 0x10u},\r
-                       {0x22u, 0x04u},\r
-                       {0x27u, 0x02u},\r
-                       {0x28u, 0x88u},\r
-                       {0x2Fu, 0x1Au},\r
-                       {0x30u, 0x20u},\r
-                       {0x32u, 0x04u},\r
-                       {0x36u, 0x10u},\r
-                       {0x37u, 0x49u},\r
-                       {0x39u, 0x20u},\r
-                       {0x3Bu, 0x44u},\r
-                       {0x3Du, 0x41u},\r
-                       {0x3Eu, 0x01u},\r
-                       {0x3Fu, 0x18u},\r
-                       {0x45u, 0x22u},\r
-                       {0x46u, 0x20u},\r
-                       {0x47u, 0x08u},\r
-                       {0x4Du, 0x80u},\r
-                       {0x4Eu, 0x20u},\r
-                       {0x4Fu, 0x18u},\r
-                       {0x56u, 0x55u},\r
-                       {0x57u, 0x40u},\r
-                       {0x65u, 0x04u},\r
-                       {0x66u, 0x50u},\r
-                       {0x7Cu, 0x02u},\r
-                       {0x87u, 0x04u},\r
-                       {0x90u, 0x24u},\r
-                       {0x91u, 0x88u},\r
-                       {0x93u, 0x50u},\r
-                       {0x94u, 0x02u},\r
+                       {0x3Fu, 0x11u},\r
+                       {0x48u, 0x08u},\r
+                       {0x49u, 0x20u},\r
+                       {0x60u, 0x02u},\r
+                       {0x61u, 0x20u},\r
+                       {0x63u, 0xA0u},\r
+                       {0x86u, 0x40u},\r
+                       {0x88u, 0x01u},\r
+                       {0x91u, 0x84u},\r
+                       {0x92u, 0x60u},\r
+                       {0x93u, 0x05u},\r
                        {0x95u, 0x41u},\r
-                       {0x96u, 0x18u},\r
-                       {0x97u, 0x0Cu},\r
-                       {0x98u, 0xCAu},\r
-                       {0x99u, 0x20u},\r
-                       {0x9Au, 0x80u},\r
-                       {0x9Bu, 0x08u},\r
-                       {0x9Du, 0x11u},\r
-                       {0x9Eu, 0x0Du},\r
-                       {0x9Fu, 0x11u},\r
-                       {0xA0u, 0x28u},\r
-                       {0xA2u, 0x02u},\r
-                       {0xA4u, 0x94u},\r
-                       {0xA5u, 0x20u},\r
-                       {0xA7u, 0x08u},\r
-                       {0xA8u, 0x20u},\r
-                       {0xAAu, 0x02u},\r
-                       {0xAFu, 0x10u},\r
-                       {0xB7u, 0x04u},\r
-                       {0xC0u, 0xF0u},\r
-                       {0xC2u, 0xF0u},\r
-                       {0xC4u, 0xF0u},\r
-                       {0xCAu, 0x75u},\r
-                       {0xCCu, 0xF6u},\r
-                       {0xCEu, 0xFEu},\r
-                       {0xD0u, 0xE0u},\r
-                       {0xD2u, 0x30u},\r
-                       {0xD8u, 0x70u},\r
-                       {0xDEu, 0x80u},\r
-                       {0xEAu, 0x08u},\r
-                       {0xEEu, 0x10u},\r
-                       {0x9Eu, 0x40u},\r
-                       {0x9Fu, 0x08u},\r
-                       {0xEAu, 0x08u},\r
-                       {0x9Eu, 0x40u},\r
-                       {0x9Fu, 0x08u},\r
-                       {0xABu, 0x01u},\r
-                       {0xAFu, 0x40u},\r
-                       {0xB0u, 0x04u},\r
-                       {0xB3u, 0x40u},\r
-                       {0xB5u, 0x01u},\r
-                       {0xB6u, 0x04u},\r
-                       {0xE2u, 0x01u},\r
-                       {0xE8u, 0x20u},\r
-                       {0xEAu, 0x49u},\r
-                       {0xEEu, 0x40u},\r
-                       {0x00u, 0x12u},\r
-                       {0x02u, 0x24u},\r
-                       {0x05u, 0x02u},\r
-                       {0x06u, 0x12u},\r
-                       {0x0Au, 0x0Cu},\r
-                       {0x0Eu, 0x02u},\r
-                       {0x11u, 0x06u},\r
-                       {0x13u, 0x08u},\r
-                       {0x16u, 0x60u},\r
-                       {0x17u, 0x0Du},\r
-                       {0x1Bu, 0x07u},\r
-                       {0x1Cu, 0x12u},\r
-                       {0x1Du, 0x07u},\r
-                       {0x1Eu, 0x48u},\r
-                       {0x1Fu, 0x08u},\r
-                       {0x20u, 0x01u},\r
-                       {0x21u, 0x02u},\r
-                       {0x25u, 0x01u},\r
-                       {0x26u, 0x10u},\r
-                       {0x27u, 0x02u},\r
-                       {0x29u, 0x10u},\r
-                       {0x30u, 0x01u},\r
-                       {0x32u, 0x70u},\r
-                       {0x33u, 0x08u},\r
-                       {0x34u, 0x0Eu},\r
-                       {0x35u, 0x10u},\r
-                       {0x37u, 0x07u},\r
-                       {0x3Eu, 0x01u},\r
-                       {0x3Fu, 0x14u},\r
-                       {0x40u, 0x31u},\r
-                       {0x41u, 0x04u},\r
-                       {0x42u, 0x60u},\r
-                       {0x45u, 0xEFu},\r
-                       {0x46u, 0x20u},\r
-                       {0x47u, 0xDCu},\r
-                       {0x48u, 0x3Bu},\r
-                       {0x49u, 0xFFu},\r
-                       {0x4Au, 0xFFu},\r
-                       {0x4Bu, 0xFFu},\r
-                       {0x4Fu, 0x2Cu},\r
-                       {0x56u, 0x01u},\r
+                       {0x96u, 0x0Cu},\r
+                       {0x97u, 0x10u},\r
+                       {0x98u, 0x42u},\r
+                       {0x99u, 0x06u},\r
+                       {0x9Au, 0xC4u},\r
+                       {0x9Bu, 0xA0u},\r
+                       {0x9Cu, 0x01u},\r
+                       {0x9Fu, 0x10u},\r
+                       {0xA0u, 0x08u},\r
+                       {0xA1u, 0x20u},\r
+                       {0xA2u, 0x98u},\r
+                       {0xA3u, 0x15u},\r
+                       {0xA4u, 0x80u},\r
+                       {0xA5u, 0x40u},\r
+                       {0xA6u, 0x02u},\r
+                       {0xA7u, 0x4Au},\r
+                       {0xAAu, 0x10u},\r
+                       {0xACu, 0x50u},\r
+                       {0xAEu, 0x81u},\r
+                       {0xB4u, 0x40u},\r
+                       {0xC0u, 0xFFu},\r
+                       {0xC2u, 0xF6u},\r
+                       {0xC4u, 0xDFu},\r
+                       {0xCAu, 0xEFu},\r
+                       {0xCCu, 0xFFu},\r
+                       {0xCEu, 0xFFu},\r
+                       {0xD8u, 0x0Fu},\r
+                       {0xE2u, 0x09u},\r
+                       {0xE6u, 0x08u},\r
+                       {0xEAu, 0x02u},\r
+                       {0xECu, 0x04u},\r
+                       {0x38u, 0x80u},\r
+                       {0x3Eu, 0x40u},\r
+                       {0x58u, 0x04u},\r
+                       {0x5Fu, 0x01u},\r
+                       {0x1Fu, 0x80u},\r
+                       {0x8Au, 0x04u},\r
+                       {0x92u, 0x0Cu},\r
+                       {0x97u, 0x01u},\r
+                       {0x9Bu, 0x80u},\r
+                       {0x9Cu, 0x02u},\r
+                       {0x9Du, 0x20u},\r
+                       {0xA3u, 0x08u},\r
+                       {0xAAu, 0x04u},\r
+                       {0xADu, 0x40u},\r
+                       {0xB5u, 0x08u},\r
+                       {0xE2u, 0x09u},\r
+                       {0xE6u, 0x28u},\r
+                       {0xE8u, 0x40u},\r
+                       {0x92u, 0x0Cu},\r
+                       {0x97u, 0x01u},\r
+                       {0x9Bu, 0x80u},\r
+                       {0x9Cu, 0x02u},\r
+                       {0x9Du, 0x28u},\r
+                       {0xA1u, 0x40u},\r
+                       {0xA3u, 0x08u},\r
+                       {0xA6u, 0x04u},\r
+                       {0xA8u, 0x40u},\r
+                       {0xA9u, 0x04u},\r
+                       {0xAEu, 0x04u},\r
+                       {0xB0u, 0x20u},\r
+                       {0xB1u, 0x01u},\r
+                       {0xB6u, 0x08u},\r
+                       {0xB7u, 0x08u},\r
+                       {0xE0u, 0x20u},\r
+                       {0xEAu, 0x94u},\r
+                       {0xEEu, 0xA4u},\r
+                       {0x01u, 0x0Fu},\r
+                       {0x03u, 0xF0u},\r
+                       {0x04u, 0x50u},\r
+                       {0x05u, 0x30u},\r
+                       {0x06u, 0xA0u},\r
+                       {0x07u, 0xC0u},\r
+                       {0x08u, 0x06u},\r
+                       {0x09u, 0x50u},\r
+                       {0x0Au, 0x09u},\r
+                       {0x0Bu, 0xA0u},\r
+                       {0x0Cu, 0x03u},\r
+                       {0x0Du, 0x60u},\r
+                       {0x0Eu, 0x0Cu},\r
+                       {0x0Fu, 0x90u},\r
+                       {0x11u, 0xFFu},\r
+                       {0x12u, 0xFFu},\r
+                       {0x14u, 0xFFu},\r
+                       {0x15u, 0x05u},\r
+                       {0x17u, 0x0Au},\r
+                       {0x18u, 0x05u},\r
+                       {0x19u, 0x06u},\r
+                       {0x1Au, 0x0Au},\r
+                       {0x1Bu, 0x09u},\r
+                       {0x1Cu, 0x0Fu},\r
+                       {0x1Eu, 0xF0u},\r
+                       {0x1Fu, 0xFFu},\r
+                       {0x21u, 0x03u},\r
+                       {0x22u, 0xFFu},\r
+                       {0x23u, 0x0Cu},\r
+                       {0x24u, 0x30u},\r
+                       {0x26u, 0xC0u},\r
+                       {0x27u, 0xFFu},\r
+                       {0x2Cu, 0x60u},\r
+                       {0x2Eu, 0x90u},\r
+                       {0x35u, 0xFFu},\r
+                       {0x36u, 0xFFu},\r
+                       {0x3Eu, 0x40u},\r
+                       {0x3Fu, 0x10u},\r
                        {0x58u, 0x04u},\r
                        {0x59u, 0x04u},\r
-                       {0x5Au, 0x04u},\r
                        {0x5Bu, 0x04u},\r
-                       {0x5Cu, 0x11u},\r
-                       {0x5Du, 0x01u},\r
                        {0x5Fu, 0x01u},\r
-                       {0x62u, 0xC0u},\r
-                       {0x66u, 0x80u},\r
-                       {0x68u, 0x40u},\r
-                       {0x69u, 0x40u},\r
-                       {0x6Eu, 0x08u},\r
-                       {0x81u, 0x02u},\r
-                       {0x84u, 0x02u},\r
-                       {0x89u, 0x01u},\r
-                       {0x8Du, 0x04u},\r
-                       {0xACu, 0x01u},\r
-                       {0xB3u, 0x01u},\r
-                       {0xB4u, 0x02u},\r
-                       {0xB5u, 0x02u},\r
-                       {0xB6u, 0x01u},\r
-                       {0xB7u, 0x04u},\r
-                       {0xBEu, 0x50u},\r
-                       {0xBFu, 0x54u},\r
+                       {0x84u, 0x10u},\r
+                       {0x86u, 0x09u},\r
+                       {0x87u, 0x10u},\r
+                       {0x8Bu, 0x08u},\r
+                       {0x8Du, 0x0Au},\r
+                       {0x8Fu, 0x14u},\r
+                       {0x90u, 0x08u},\r
+                       {0x92u, 0x10u},\r
+                       {0x93u, 0x04u},\r
+                       {0x94u, 0x04u},\r
+                       {0x95u, 0x01u},\r
+                       {0x9Cu, 0x19u},\r
+                       {0x9Eu, 0x62u},\r
+                       {0xA0u, 0x40u},\r
+                       {0xA2u, 0x22u},\r
+                       {0xABu, 0x02u},\r
+                       {0xACu, 0x20u},\r
+                       {0xAEu, 0x40u},\r
+                       {0xB0u, 0x04u},\r
+                       {0xB1u, 0x06u},\r
+                       {0xB2u, 0x03u},\r
+                       {0xB3u, 0x18u},\r
+                       {0xB4u, 0x78u},\r
+                       {0xB5u, 0x01u},\r
+                       {0xBEu, 0x15u},\r
+                       {0xBFu, 0x15u},\r
                        {0xD8u, 0x04u},\r
                        {0xD9u, 0x04u},\r
-                       {0xDBu, 0x04u},\r
                        {0xDFu, 0x01u},\r
                        {0x01u, 0x08u},\r
-                       {0x05u, 0x10u},\r
-                       {0x06u, 0x60u},\r
-                       {0x07u, 0x01u},\r
-                       {0x08u, 0x08u},\r
-                       {0x09u, 0x08u},\r
-                       {0x0Du, 0x80u},\r
-                       {0x0Eu, 0x20u},\r
-                       {0x10u, 0x10u},\r
-                       {0x12u, 0x22u},\r
+                       {0x04u, 0x08u},\r
+                       {0x05u, 0x20u},\r
+                       {0x06u, 0x02u},\r
+                       {0x09u, 0x06u},\r
+                       {0x0Bu, 0x01u},\r
+                       {0x0Cu, 0x01u},\r
+                       {0x0Du, 0x50u},\r
+                       {0x0Eu, 0x08u},\r
+                       {0x0Fu, 0x21u},\r
+                       {0x11u, 0x02u},\r
+                       {0x12u, 0x01u},\r
                        {0x14u, 0x80u},\r
-                       {0x17u, 0x04u},\r
-                       {0x19u, 0xA0u},\r
-                       {0x1Cu, 0x40u},\r
-                       {0x1Du, 0x10u},\r
-                       {0x1Eu, 0x20u},\r
-                       {0x20u, 0x01u},\r
-                       {0x21u, 0x08u},\r
-                       {0x23u, 0x04u},\r
-                       {0x25u, 0x80u},\r
-                       {0x26u, 0xA8u},\r
-                       {0x2Cu, 0x04u},\r
-                       {0x2Du, 0x02u},\r
+                       {0x15u, 0x44u},\r
+                       {0x18u, 0xA0u},\r
+                       {0x1Au, 0x08u},\r
+                       {0x1Bu, 0x30u},\r
+                       {0x1Fu, 0x80u},\r
+                       {0x22u, 0x2Au},\r
+                       {0x27u, 0x08u},\r
+                       {0x29u, 0x20u},\r
                        {0x2Eu, 0x02u},\r
-                       {0x2Fu, 0x10u},\r
-                       {0x34u, 0x20u},\r
-                       {0x36u, 0x80u},\r
-                       {0x37u, 0x0Au},\r
-                       {0x39u, 0x20u},\r
-                       {0x3Bu, 0x81u},\r
+                       {0x2Fu, 0x20u},\r
+                       {0x31u, 0x08u},\r
+                       {0x33u, 0x02u},\r
+                       {0x34u, 0x83u},\r
+                       {0x35u, 0x20u},\r
+                       {0x36u, 0x04u},\r
+                       {0x38u, 0x08u},\r
+                       {0x39u, 0xA0u},\r
+                       {0x3Du, 0x91u},\r
                        {0x3Eu, 0x04u},\r
-                       {0x3Fu, 0x08u},\r
-                       {0x45u, 0x80u},\r
-                       {0x46u, 0x60u},\r
-                       {0x47u, 0x0Au},\r
-                       {0x4Eu, 0x58u},\r
-                       {0x55u, 0x10u},\r
-                       {0x56u, 0x02u},\r
-                       {0x57u, 0x04u},\r
-                       {0x59u, 0x02u},\r
-                       {0x5Au, 0xA4u},\r
-                       {0x5Cu, 0x49u},\r
-                       {0x5Du, 0x20u},\r
-                       {0x64u, 0x10u},\r
-                       {0x65u, 0x80u},\r
-                       {0x67u, 0x44u},\r
-                       {0x6Eu, 0x08u},\r
-                       {0x6Fu, 0x45u},\r
-                       {0x74u, 0xA4u},\r
-                       {0x75u, 0x01u},\r
-                       {0x81u, 0x10u},\r
-                       {0x82u, 0x02u},\r
-                       {0x83u, 0x40u},\r
-                       {0x84u, 0xA0u},\r
-                       {0x85u, 0x80u},\r
-                       {0x88u, 0x04u},\r
-                       {0x89u, 0x10u},\r
-                       {0x8Au, 0x10u},\r
-                       {0x8Du, 0x18u},\r
-                       {0x93u, 0x20u},\r
-                       {0x98u, 0xA0u},\r
-                       {0xB0u, 0x80u},\r
-                       {0xC0u, 0xF4u},\r
-                       {0xC2u, 0xA0u},\r
-                       {0xC4u, 0x31u},\r
-                       {0xCAu, 0xE0u},\r
-                       {0xCCu, 0xF0u},\r
-                       {0xCEu, 0x4Du},\r
-                       {0xD0u, 0xD0u},\r
-                       {0xD2u, 0x20u},\r
-                       {0xD6u, 0xFFu},\r
-                       {0xD8u, 0xF0u},\r
-                       {0xE2u, 0xA1u},\r
-                       {0xE6u, 0x90u},\r
-                       {0xE8u, 0x42u},\r
-                       {0xEAu, 0x08u},\r
-                       {0xECu, 0x08u},\r
-                       {0x80u, 0x20u},\r
-                       {0x87u, 0x10u},\r
-                       {0xE0u, 0x80u},\r
-                       {0xE6u, 0x07u},\r
-                       {0xB4u, 0x04u},\r
-                       {0x00u, 0xD6u},\r
-                       {0x04u, 0xD2u},\r
-                       {0x05u, 0x40u},\r
-                       {0x06u, 0x04u},\r
-                       {0x07u, 0x30u},\r
-                       {0x08u, 0x29u},\r
-                       {0x09u, 0x58u},\r
-                       {0x0Au, 0x16u},\r
-                       {0x0Bu, 0x23u},\r
-                       {0x0Cu, 0x04u},\r
-                       {0x0Fu, 0x0Cu},\r
-                       {0x12u, 0x80u},\r
-                       {0x14u, 0x31u},\r
-                       {0x16u, 0x0Eu},\r
-                       {0x17u, 0x01u},\r
-                       {0x1Bu, 0x82u},\r
-                       {0x1Cu, 0x22u},\r
-                       {0x1Eu, 0x10u},\r
-                       {0x20u, 0xD6u},\r
-                       {0x24u, 0x17u},\r
-                       {0x25u, 0x34u},\r
-                       {0x26u, 0x28u},\r
-                       {0x27u, 0x43u},\r
-                       {0x28u, 0xD0u},\r
-                       {0x29u, 0x11u},\r
-                       {0x2Au, 0x06u},\r
-                       {0x2Bu, 0x62u},\r
-                       {0x2Cu, 0x06u},\r
-                       {0x2Eu, 0xD0u},\r
-                       {0x30u, 0x40u},\r
-                       {0x32u, 0x80u},\r
-                       {0x33u, 0x80u},\r
-                       {0x34u, 0x0Fu},\r
-                       {0x35u, 0x70u},\r
-                       {0x36u, 0x30u},\r
-                       {0x37u, 0x0Fu},\r
-                       {0x38u, 0x20u},\r
-                       {0x39u, 0x02u},\r
-                       {0x3Au, 0x80u},\r
-                       {0x3Bu, 0x20u},\r
-                       {0x3Eu, 0x05u},\r
                        {0x3Fu, 0x01u},\r
+                       {0x6Cu, 0x04u},\r
+                       {0x6Du, 0xD6u},\r
+                       {0x6Eu, 0x04u},\r
+                       {0x6Fu, 0x0Au},\r
+                       {0x74u, 0x20u},\r
+                       {0x75u, 0x80u},\r
+                       {0x76u, 0x11u},\r
+                       {0x77u, 0x80u},\r
+                       {0x82u, 0x20u},\r
+                       {0x86u, 0x02u},\r
+                       {0x88u, 0x80u},\r
+                       {0x89u, 0x02u},\r
+                       {0x8Au, 0x02u},\r
+                       {0x8Cu, 0x10u},\r
+                       {0x8Fu, 0x80u},\r
+                       {0x9Cu, 0x02u},\r
+                       {0x9Du, 0xA0u},\r
+                       {0x9Eu, 0x10u},\r
+                       {0x9Fu, 0x08u},\r
+                       {0xA1u, 0x08u},\r
+                       {0xA7u, 0x10u},\r
+                       {0xAEu, 0x10u},\r
+                       {0xB1u, 0x80u},\r
+                       {0xB7u, 0x10u},\r
+                       {0xC0u, 0xE4u},\r
+                       {0xC2u, 0xFDu},\r
+                       {0xC4u, 0xB9u},\r
+                       {0xCAu, 0xC4u},\r
+                       {0xCCu, 0xF3u},\r
+                       {0xCEu, 0xFEu},\r
+                       {0xE0u, 0xA2u},\r
+                       {0xE2u, 0x50u},\r
+                       {0xE4u, 0x20u},\r
+                       {0xE6u, 0x98u},\r
+                       {0xEAu, 0x14u},\r
+                       {0xEEu, 0x82u},\r
+                       {0x85u, 0x20u},\r
+                       {0x87u, 0x08u},\r
+                       {0x8Cu, 0x02u},\r
+                       {0x8Du, 0x08u},\r
+                       {0xE2u, 0x10u},\r
+                       {0xAFu, 0x10u},\r
+                       {0xB2u, 0x20u},\r
+                       {0xB4u, 0x40u},\r
+                       {0xEAu, 0x40u},\r
+                       {0xECu, 0x02u},\r
+                       {0x00u, 0x03u},\r
+                       {0x02u, 0x0Cu},\r
+                       {0x04u, 0x60u},\r
+                       {0x05u, 0x01u},\r
+                       {0x06u, 0x90u},\r
+                       {0x07u, 0x02u},\r
+                       {0x0Bu, 0x10u},\r
+                       {0x0Cu, 0x0Fu},\r
+                       {0x0Eu, 0xF0u},\r
+                       {0x11u, 0x08u},\r
+                       {0x13u, 0x10u},\r
+                       {0x14u, 0x05u},\r
+                       {0x16u, 0x0Au},\r
+                       {0x17u, 0x01u},\r
+                       {0x18u, 0x06u},\r
+                       {0x1Au, 0x09u},\r
+                       {0x1Bu, 0x06u},\r
+                       {0x1Fu, 0x08u},\r
+                       {0x20u, 0x50u},\r
+                       {0x21u, 0x01u},\r
+                       {0x22u, 0xA0u},\r
+                       {0x23u, 0x04u},\r
+                       {0x24u, 0x30u},\r
+                       {0x26u, 0xC0u},\r
+                       {0x2Fu, 0x01u},\r
+                       {0x34u, 0xFFu},\r
+                       {0x35u, 0x07u},\r
+                       {0x37u, 0x18u},\r
+                       {0x3Eu, 0x10u},\r
+                       {0x3Fu, 0x40u},\r
                        {0x56u, 0x02u},\r
                        {0x57u, 0x28u},\r
-                       {0x58u, 0x0Bu},\r
-                       {0x59u, 0x0Bu},\r
-                       {0x5Bu, 0x0Bu},\r
-                       {0x5Cu, 0x99u},\r
-                       {0x5Du, 0x90u},\r
+                       {0x58u, 0x04u},\r
+                       {0x59u, 0x04u},\r
+                       {0x5Bu, 0x04u},\r
+                       {0x5Cu, 0x10u},\r
                        {0x5Fu, 0x01u},\r
-                       {0x84u, 0x05u},\r
-                       {0x86u, 0x0Au},\r
-                       {0x87u, 0x70u},\r
-                       {0x88u, 0x03u},\r
-                       {0x8Au, 0x0Cu},\r
-                       {0x8Bu, 0x80u},\r
-                       {0x8Cu, 0x30u},\r
-                       {0x8Eu, 0xC0u},\r
-                       {0x8Fu, 0x04u},\r
-                       {0x95u, 0x09u},\r
-                       {0x97u, 0x14u},\r
-                       {0x98u, 0x06u},\r
-                       {0x99u, 0x01u},\r
-                       {0x9Au, 0x09u},\r
+                       {0x86u, 0xECu},\r
+                       {0x87u, 0xFFu},\r
+                       {0x8Bu, 0xFFu},\r
+                       {0x8Du, 0x0Fu},\r
+                       {0x8Eu, 0x01u},\r
+                       {0x8Fu, 0xF0u},\r
+                       {0x91u, 0x30u},\r
+                       {0x93u, 0xC0u},\r
+                       {0x98u, 0x04u},\r
+                       {0x99u, 0x05u},\r
+                       {0x9Au, 0x43u},\r
                        {0x9Bu, 0x0Au},\r
-                       {0x9Du, 0x40u},\r
-                       {0x9Fu, 0x80u},\r
-                       {0xA0u, 0x0Fu},\r
-                       {0xA1u, 0x0Eu},\r
-                       {0xA2u, 0xF0u},\r
-                       {0xA3u, 0x21u},\r
-                       {0xA4u, 0x60u},\r
-                       {0xA6u, 0x90u},\r
-                       {0xA8u, 0x50u},\r
-                       {0xAAu, 0xA0u},\r
-                       {0xABu, 0x07u},\r
-                       {0xAFu, 0x08u},\r
-                       {0xB1u, 0xC0u},\r
-                       {0xB2u, 0xFFu},\r
-                       {0xB3u, 0x38u},\r
-                       {0xB5u, 0x07u},\r
-                       {0xBEu, 0x04u},\r
-                       {0xBFu, 0x01u},\r
+                       {0x9Du, 0x03u},\r
+                       {0x9Eu, 0x12u},\r
+                       {0x9Fu, 0x0Cu},\r
+                       {0xA0u, 0xE0u},\r
+                       {0xA1u, 0x50u},\r
+                       {0xA3u, 0xA0u},\r
+                       {0xA7u, 0xFFu},\r
+                       {0xA8u, 0x88u},\r
+                       {0xA9u, 0x09u},\r
+                       {0xAAu, 0x03u},\r
+                       {0xABu, 0x06u},\r
+                       {0xACu, 0x21u},\r
+                       {0xADu, 0x90u},\r
+                       {0xAEu, 0x02u},\r
+                       {0xAFu, 0x60u},\r
+                       {0xB0u, 0xE0u},\r
+                       {0xB3u, 0xFFu},\r
+                       {0xB4u, 0x0Fu},\r
+                       {0xB6u, 0x10u},\r
+                       {0xBEu, 0x01u},\r
+                       {0xBFu, 0x04u},\r
+                       {0xD4u, 0x09u},\r
+                       {0xD6u, 0x04u},\r
                        {0xD8u, 0x04u},\r
                        {0xD9u, 0x04u},\r
-                       {0xDCu, 0x10u},\r
+                       {0xDBu, 0x04u},\r
                        {0xDFu, 0x01u},\r
-                       {0x00u, 0x08u},\r
-                       {0x01u, 0x20u},\r
-                       {0x02u, 0x02u},\r
-                       {0x05u, 0x10u},\r
-                       {0x06u, 0x01u},\r
-                       {0x07u, 0x50u},\r
-                       {0x0Bu, 0x08u},\r
-                       {0x0Eu, 0x02u},\r
-                       {0x0Fu, 0x90u},\r
-                       {0x10u, 0x48u},\r
-                       {0x12u, 0x10u},\r
-                       {0x15u, 0x50u},\r
-                       {0x17u, 0x09u},\r
-                       {0x1Au, 0x10u},\r
-                       {0x1Du, 0x37u},\r
-                       {0x1Eu, 0x03u},\r
+                       {0x00u, 0x04u},\r
+                       {0x01u, 0x80u},\r
+                       {0x07u, 0xA2u},\r
+                       {0x0Au, 0x04u},\r
+                       {0x0Bu, 0x01u},\r
+                       {0x0Eu, 0x20u},\r
+                       {0x0Fu, 0x08u},\r
+                       {0x10u, 0x40u},\r
+                       {0x12u, 0x02u},\r
+                       {0x13u, 0x10u},\r
+                       {0x16u, 0x60u},\r
+                       {0x18u, 0x44u},\r
+                       {0x19u, 0x80u},\r
                        {0x1Fu, 0x10u},\r
-                       {0x20u, 0x04u},\r
-                       {0x21u, 0x05u},\r
-                       {0x22u, 0x10u},\r
-                       {0x23u, 0x04u},\r
-                       {0x24u, 0x02u},\r
-                       {0x25u, 0x51u},\r
-                       {0x26u, 0x08u},\r
-                       {0x28u, 0x88u},\r
+                       {0x22u, 0x04u},\r
+                       {0x25u, 0x40u},\r
+                       {0x26u, 0x20u},\r
+                       {0x28u, 0xA0u},\r
+                       {0x29u, 0x10u},\r
                        {0x2Au, 0x80u},\r
-                       {0x2Eu, 0x20u},\r
-                       {0x2Fu, 0x10u},\r
-                       {0x30u, 0x40u},\r
-                       {0x32u, 0x14u},\r
+                       {0x2Du, 0x02u},\r
+                       {0x2Eu, 0x40u},\r
+                       {0x30u, 0x01u},\r
+                       {0x32u, 0x90u},\r
+                       {0x35u, 0x10u},\r
                        {0x36u, 0x28u},\r
-                       {0x38u, 0x20u},\r
-                       {0x39u, 0x88u},\r
-                       {0x3Au, 0x10u},\r
-                       {0x3Bu, 0x08u},\r
-                       {0x3Du, 0x80u},\r
-                       {0x3Eu, 0x08u},\r
-                       {0x3Fu, 0x10u},\r
-                       {0x45u, 0x10u},\r
-                       {0x46u, 0x08u},\r
-                       {0x66u, 0x08u},\r
-                       {0x6Cu, 0x80u},\r
-                       {0x6Du, 0x50u},\r
-                       {0x6Fu, 0x58u},\r
-                       {0x77u, 0x01u},\r
-                       {0x7Cu, 0x02u},\r
-                       {0x83u, 0x12u},\r
-                       {0x8Du, 0x01u},\r
-                       {0x90u, 0x20u},\r
-                       {0x91u, 0x80u},\r
-                       {0x92u, 0x08u},\r
-                       {0x93u, 0x10u},\r
-                       {0x94u, 0x02u},\r
-                       {0x95u, 0x42u},\r
-                       {0x96u, 0x11u},\r
-                       {0x97u, 0x24u},\r
-                       {0x98u, 0xCAu},\r
-                       {0x99u, 0x20u},\r
-                       {0x9Au, 0xA1u},\r
-                       {0x9Bu, 0x08u},\r
-                       {0x9Du, 0x15u},\r
+                       {0x37u, 0x82u},\r
+                       {0x39u, 0x84u},\r
+                       {0x3Bu, 0x20u},\r
+                       {0x3Du, 0x20u},\r
+                       {0x3Eu, 0x20u},\r
+                       {0x3Fu, 0x04u},\r
+                       {0x59u, 0x25u},\r
+                       {0x5Au, 0x80u},\r
+                       {0x63u, 0x82u},\r
+                       {0x66u, 0x04u},\r
+                       {0x69u, 0x80u},\r
+                       {0x6Bu, 0x02u},\r
+                       {0x6Cu, 0x20u},\r
+                       {0x6Du, 0x41u},\r
+                       {0x6Fu, 0xD9u},\r
+                       {0x74u, 0x80u},\r
+                       {0x76u, 0x02u},\r
+                       {0x81u, 0x40u},\r
+                       {0x8Fu, 0x40u},\r
+                       {0x91u, 0x04u},\r
+                       {0x92u, 0xE4u},\r
+                       {0x93u, 0x15u},\r
+                       {0x95u, 0x41u},\r
+                       {0x96u, 0x08u},\r
+                       {0x98u, 0xE1u},\r
+                       {0x99u, 0x27u},\r
+                       {0x9Au, 0xC4u},\r
+                       {0x9Bu, 0xA0u},\r
+                       {0x9Eu, 0x02u},\r
                        {0x9Fu, 0x51u},\r
-                       {0xA0u, 0x0Cu},\r
-                       {0xA2u, 0x22u},\r
-                       {0xA3u, 0x40u},\r
-                       {0xA4u, 0x80u},\r
-                       {0xA5u, 0x22u},\r
-                       {0xA6u, 0x01u},\r
-                       {0xA7u, 0x0Au},\r
-                       {0xB0u, 0x10u},\r
-                       {0xB1u, 0x01u},\r
-                       {0xB5u, 0x80u},\r
-                       {0xC0u, 0xF7u},\r
-                       {0xC2u, 0xB2u},\r
-                       {0xC4u, 0xFEu},\r
-                       {0xCAu, 0x6Du},\r
-                       {0xCCu, 0x6Eu},\r
-                       {0xCEu, 0x7Eu},\r
-                       {0xD8u, 0x40u},\r
-                       {0xDEu, 0x80u},\r
-                       {0xE2u, 0x10u},\r
-                       {0xEAu, 0x20u},\r
-                       {0xECu, 0x40u},\r
-                       {0x9Fu, 0x08u},\r
-                       {0xB2u, 0x40u},\r
-                       {0xECu, 0x80u},\r
-                       {0xB7u, 0x08u},\r
-                       {0xECu, 0x40u},\r
-                       {0x30u, 0x20u},\r
-                       {0x33u, 0x02u},\r
-                       {0x34u, 0x04u},\r
-                       {0x35u, 0x20u},\r
-                       {0x38u, 0x80u},\r
-                       {0x56u, 0x80u},\r
-                       {0x5Bu, 0x02u},\r
-                       {0x5Eu, 0x01u},\r
-                       {0x63u, 0x40u},\r
-                       {0x65u, 0x04u},\r
-                       {0x81u, 0x20u},\r
-                       {0x8Du, 0x04u},\r
-                       {0xCCu, 0xF0u},\r
-                       {0xCEu, 0x10u},\r
-                       {0xD4u, 0x40u},\r
+                       {0xA1u, 0x10u},\r
+                       {0xA2u, 0x9Au},\r
+                       {0xA3u, 0x05u},\r
+                       {0xA4u, 0xA0u},\r
+                       {0xA5u, 0x40u},\r
+                       {0xA7u, 0x88u},\r
+                       {0xB0u, 0xA0u},\r
+                       {0xB5u, 0x10u},\r
+                       {0xC0u, 0xB5u},\r
+                       {0xC2u, 0x63u},\r
+                       {0xC4u, 0x3Bu},\r
+                       {0xCAu, 0x9Fu},\r
+                       {0xCCu, 0xFDu},\r
+                       {0xCEu, 0x6Eu},\r
+                       {0xD6u, 0x0Fu},\r
+                       {0xD8u, 0x49u},\r
+                       {0xE0u, 0x01u},\r
+                       {0xE6u, 0x40u},\r
+                       {0xEEu, 0x06u},\r
+                       {0x83u, 0x01u},\r
+                       {0x97u, 0x01u},\r
+                       {0x9Cu, 0x02u},\r
+                       {0x9Du, 0x20u},\r
+                       {0xABu, 0x80u},\r
+                       {0xB2u, 0x04u},\r
+                       {0xB3u, 0x08u},\r
+                       {0xB7u, 0x80u},\r
+                       {0xEAu, 0xA0u},\r
+                       {0xEEu, 0x12u},\r
+                       {0xACu, 0x02u},\r
+                       {0xB1u, 0x20u},\r
+                       {0xE8u, 0x20u},\r
+                       {0x12u, 0x08u},\r
+                       {0x15u, 0x80u},\r
+                       {0x17u, 0x01u},\r
+                       {0x33u, 0x01u},\r
+                       {0x36u, 0x88u},\r
+                       {0x38u, 0x01u},\r
+                       {0x39u, 0x80u},\r
+                       {0x3Cu, 0x04u},\r
+                       {0x3Du, 0x80u},\r
+                       {0x43u, 0x10u},\r
+                       {0x50u, 0x80u},\r
+                       {0x5Au, 0x04u},\r
+                       {0x5Du, 0x02u},\r
+                       {0x61u, 0x20u},\r
+                       {0x64u, 0x08u},\r
+                       {0x89u, 0x40u},\r
+                       {0x8Cu, 0x01u},\r
+                       {0x8Du, 0x20u},\r
+                       {0xC4u, 0xE0u},\r
+                       {0xCCu, 0xE0u},\r
+                       {0xCEu, 0xF0u},\r
+                       {0xD0u, 0x10u},\r
+                       {0xD4u, 0x20u},\r
                        {0xD6u, 0xC0u},\r
                        {0xD8u, 0xC0u},\r
-                       {0xE6u, 0x80u},\r
-                       {0x51u, 0x02u},\r
-                       {0x56u, 0x20u},\r
-                       {0x5Eu, 0x01u},\r
-                       {0x5Fu, 0x20u},\r
-                       {0x8Eu, 0x20u},\r
-                       {0x94u, 0x80u},\r
-                       {0x97u, 0x40u},\r
-                       {0x9Cu, 0x04u},\r
-                       {0x9Eu, 0x80u},\r
-                       {0x9Fu, 0x02u},\r
-                       {0xA4u, 0x20u},\r
-                       {0xAFu, 0x02u},\r
-                       {0xB2u, 0x01u},\r
-                       {0xD4u, 0xC0u},\r
-                       {0xD6u, 0xA0u},\r
+                       {0x31u, 0x20u},\r
+                       {0x32u, 0x04u},\r
+                       {0x36u, 0x40u},\r
+                       {0x37u, 0x04u},\r
+                       {0x50u, 0x08u},\r
+                       {0x51u, 0x01u},\r
+                       {0x55u, 0x08u},\r
+                       {0x5Du, 0x02u},\r
+                       {0x81u, 0x02u},\r
+                       {0x89u, 0x01u},\r
+                       {0x94u, 0x04u},\r
+                       {0x96u, 0x04u},\r
+                       {0x9Cu, 0x08u},\r
+                       {0x9Fu, 0x10u},\r
+                       {0xA6u, 0x80u},\r
+                       {0xACu, 0x80u},\r
+                       {0xADu, 0x02u},\r
+                       {0xCCu, 0xF0u},\r
+                       {0xD4u, 0xE0u},\r
+                       {0xD6u, 0x80u},\r
+                       {0xE6u, 0x20u},\r
                        {0xEAu, 0x10u},\r
-                       {0x10u, 0x20u},\r
-                       {0x80u, 0x40u},\r
-                       {0x83u, 0x80u},\r
-                       {0x86u, 0x81u},\r
-                       {0x87u, 0x02u},\r
-                       {0x94u, 0x80u},\r
-                       {0x96u, 0x01u},\r
-                       {0x97u, 0x40u},\r
-                       {0x9Bu, 0x40u},\r
-                       {0x9Cu, 0x04u},\r
-                       {0x9Eu, 0x80u},\r
-                       {0x9Fu, 0x02u},\r
-                       {0xA4u, 0x20u},\r
-                       {0xA5u, 0x02u},\r
-                       {0xABu, 0x20u},\r
-                       {0xB7u, 0x40u},\r
+                       {0xEEu, 0x10u},\r
+                       {0x12u, 0x80u},\r
+                       {0x80u, 0x08u},\r
+                       {0x86u, 0x04u},\r
+                       {0x89u, 0x02u},\r
+                       {0x8Cu, 0x08u},\r
+                       {0x96u, 0x0Cu},\r
+                       {0x9Cu, 0x08u},\r
+                       {0x9Fu, 0x14u},\r
+                       {0xA4u, 0x08u},\r
+                       {0xA5u, 0x20u},\r
+                       {0xA6u, 0xC0u},\r
+                       {0xB4u, 0x04u},\r
+                       {0xB5u, 0x08u},\r
                        {0xC4u, 0x10u},\r
-                       {0xE2u, 0xD0u},\r
-                       {0xE4u, 0x20u},\r
-                       {0xE6u, 0x40u},\r
-                       {0xEAu, 0x80u},\r
-                       {0x86u, 0x80u},\r
-                       {0x97u, 0x40u},\r
-                       {0x9Bu, 0x40u},\r
-                       {0xA1u, 0x80u},\r
-                       {0xA7u, 0x80u},\r
-                       {0xACu, 0x04u},\r
-                       {0xADu, 0x80u},\r
-                       {0xB5u, 0x02u},\r
-                       {0xE4u, 0x10u},\r
-                       {0xEAu, 0x10u},\r
-                       {0xEEu, 0x40u},\r
-                       {0x0Bu, 0x02u},\r
-                       {0x0Fu, 0x40u},\r
-                       {0x10u, 0x10u},\r
-                       {0x52u, 0x80u},\r
-                       {0x54u, 0x40u},\r
-                       {0x58u, 0x20u},\r
-                       {0x5Eu, 0x20u},\r
-                       {0x80u, 0x02u},\r
-                       {0x83u, 0x01u},\r
-                       {0x87u, 0x40u},\r
-                       {0x88u, 0x20u},\r
+                       {0xE2u, 0xC0u},\r
+                       {0x63u, 0x08u},\r
+                       {0x83u, 0x04u},\r
+                       {0x85u, 0x20u},\r
+                       {0x86u, 0x04u},\r
+                       {0x87u, 0x08u},\r
+                       {0x96u, 0x08u},\r
+                       {0x9Du, 0x02u},\r
+                       {0x9Fu, 0x14u},\r
+                       {0xA5u, 0x20u},\r
+                       {0xA6u, 0x40u},\r
+                       {0xD8u, 0x40u},\r
+                       {0xE2u, 0x90u},\r
+                       {0xE6u, 0x50u},\r
+                       {0x09u, 0x80u},\r
+                       {0x0Eu, 0x80u},\r
+                       {0x13u, 0x01u},\r
+                       {0x50u, 0x80u},\r
+                       {0x51u, 0x02u},\r
+                       {0x54u, 0x04u},\r
+                       {0x56u, 0x01u},\r
+                       {0x8Fu, 0x01u},\r
                        {0xC2u, 0x06u},\r
                        {0xC4u, 0x08u},\r
                        {0xD4u, 0x07u},\r
                        {0xD6u, 0x04u},\r
-                       {0xE0u, 0x01u},\r
-                       {0x00u, 0x20u},\r
-                       {0x06u, 0x40u},\r
-                       {0x07u, 0x04u},\r
-                       {0x09u, 0x02u},\r
-                       {0x0Bu, 0x04u},\r
+                       {0xE6u, 0x08u},\r
+                       {0x02u, 0x08u},\r
+                       {0x05u, 0x40u},\r
+                       {0x06u, 0x20u},\r
+                       {0x08u, 0x24u},\r
+                       {0x0Du, 0x08u},\r
                        {0x0Eu, 0x08u},\r
-                       {0x0Fu, 0x10u},\r
-                       {0x81u, 0x02u},\r
-                       {0x8Au, 0x40u},\r
-                       {0x8Bu, 0x04u},\r
-                       {0x8Eu, 0x04u},\r
-                       {0x9Cu, 0x02u},\r
-                       {0xA4u, 0x02u},\r
-                       {0xACu, 0x42u},\r
-                       {0xAEu, 0x10u},\r
-                       {0xB0u, 0x10u},\r
-                       {0xB6u, 0x80u},\r
+                       {0x84u, 0x20u},\r
+                       {0x85u, 0x02u},\r
+                       {0x88u, 0x04u},\r
+                       {0x8Cu, 0x80u},\r
+                       {0x8Du, 0x88u},\r
+                       {0x9Eu, 0x21u},\r
+                       {0xA1u, 0x80u},\r
+                       {0xA4u, 0x84u},\r
+                       {0xA5u, 0x02u},\r
+                       {0xAAu, 0x20u},\r
+                       {0xAEu, 0x40u},\r
                        {0xC0u, 0x07u},\r
                        {0xC2u, 0x0Fu},\r
-                       {0xE2u, 0x02u},\r
-                       {0xE6u, 0x05u},\r
-                       {0xE8u, 0x02u},\r
-                       {0xEAu, 0x04u},\r
-                       {0x81u, 0x40u},\r
-                       {0x9Cu, 0x02u},\r
-                       {0xA4u, 0x02u},\r
-                       {0xABu, 0x04u},\r
-                       {0xAFu, 0x10u},\r
-                       {0xB0u, 0x10u},\r
-                       {0xEEu, 0x01u},\r
-                       {0x08u, 0x02u},\r
-                       {0x0Au, 0x01u},\r
-                       {0x0Cu, 0x02u},\r
-                       {0x0Du, 0x40u},\r
-                       {0x95u, 0x80u},\r
-                       {0x96u, 0x01u},\r
-                       {0x9Cu, 0x02u},\r
-                       {0xA4u, 0x02u},\r
-                       {0xAEu, 0x01u},\r
+                       {0xE2u, 0x08u},\r
+                       {0xE4u, 0x02u},\r
+                       {0xE6u, 0x09u},\r
+                       {0x88u, 0x04u},\r
+                       {0xA4u, 0x04u},\r
+                       {0xAAu, 0x0Cu},\r
+                       {0xB1u, 0x40u},\r
+                       {0xB6u, 0x01u},\r
+                       {0xE0u, 0x04u},\r
+                       {0xEAu, 0x01u},\r
+                       {0xECu, 0x02u},\r
+                       {0x0Bu, 0x88u},\r
+                       {0x0Fu, 0x41u},\r
+                       {0x83u, 0x01u},\r
+                       {0x87u, 0x44u},\r
                        {0xC2u, 0x0Fu},\r
-                       {0x26u, 0x80u},\r
-                       {0x65u, 0x04u},\r
-                       {0x8Du, 0x04u},\r
-                       {0x9Bu, 0x40u},\r
+                       {0x8Fu, 0x10u},\r
+                       {0x9Du, 0x02u},\r
                        {0x9Fu, 0x10u},\r
-                       {0xA1u, 0x80u},\r
-                       {0xA6u, 0x80u},\r
-                       {0xA7u, 0x80u},\r
-                       {0xB3u, 0x40u},\r
-                       {0xB7u, 0x10u},\r
-                       {0xC8u, 0x20u},\r
-                       {0xD8u, 0x80u},\r
-                       {0x07u, 0x10u},\r
-                       {0x1Bu, 0x80u},\r
-                       {0x51u, 0x80u},\r
-                       {0x5Bu, 0x40u},\r
-                       {0x9Bu, 0x40u},\r
-                       {0x9Fu, 0x10u},\r
-                       {0xA1u, 0x80u},\r
-                       {0xA7u, 0x80u},\r
+                       {0xA3u, 0x08u},\r
+                       {0xABu, 0x04u},\r
+                       {0xAEu, 0x40u},\r
+                       {0xEEu, 0x60u},\r
+                       {0x05u, 0x02u},\r
+                       {0x57u, 0x08u},\r
+                       {0x5Du, 0x40u},\r
+                       {0x91u, 0x40u},\r
+                       {0x9Du, 0x02u},\r
+                       {0xA3u, 0x08u},\r
+                       {0xB5u, 0x40u},\r
                        {0xC0u, 0x20u},\r
-                       {0xC6u, 0x40u},\r
-                       {0xD4u, 0xA0u},\r
-                       {0x00u, 0x02u},\r
-                       {0x01u, 0x01u},\r
-                       {0x08u, 0x02u},\r
-                       {0x09u, 0x01u},\r
-                       {0x0Au, 0x02u},\r
-                       {0x0Bu, 0x01u},\r
-                       {0x0Eu, 0x02u},\r
-                       {0x10u, 0x02u},\r
-                       {0x11u, 0x01u},\r
-                       {0x1Au, 0x02u},\r
-                       {0x1Bu, 0x01u},\r
-                       {0x00u, 0xABu},\r
-                       {0x01u, 0x02u},\r
+                       {0xD4u, 0x40u},\r
+                       {0xD6u, 0x20u},\r
+                       {0xAFu, 0x40u},\r
+                       {0x00u, 0x03u},\r
+                       {0x08u, 0x03u},\r
+                       {0x0Au, 0x03u},\r
+                       {0x10u, 0x03u},\r
+                       {0x1Au, 0x03u},\r
+                       {0x00u, 0xFDu},\r
+                       {0x01u, 0xABu},\r
+                       {0x02u, 0x02u},\r
+                       {0x10u, 0x55u},\r
                };\r
 \r
 \r
@@ -1474,28 +1549,28 @@ void cyfitter_cfg(void)
                        /* address, size */\r
                        {(void CYFAR *)(CYREG_TMR0_CFG0), 12u},\r
                        {(void CYFAR *)(CYREG_PRT1_DR), 16u},\r
-                       {(void CYFAR *)(CYDEV_UCFG_B0_P0_U0_BASE), 1536u},\r
-                       {(void CYFAR *)(CYDEV_UCFG_B0_P3_U1_BASE), 2432u},\r
+                       {(void CYFAR *)(CYDEV_UCFG_B0_P0_U0_BASE), 1024u},\r
+                       {(void CYFAR *)(CYDEV_UCFG_B0_P2_U1_BASE), 2944u},\r
                        {(void CYFAR *)(CYDEV_UCFG_B1_P2_U0_BASE), 2048u},\r
                        {(void CYFAR *)(CYDEV_UCFG_DSI0_BASE), 2560u},\r
                        {(void CYFAR *)(CYDEV_UCFG_DSI12_BASE), 512u},\r
                        {(void CYFAR *)(CYREG_BCTL0_MDCLK_EN), 32u},\r
                };\r
 \r
-               /* UDB_1_2_1_CONFIG Address: CYDEV_UCFG_B0_P3_U0_BASE Size (bytes): 128 */\r
-               static const uint8 CYCODE BS_UDB_1_2_1_CONFIG_VAL[] = {\r
-                       0x01u, 0x80u, 0x00u, 0x00u, 0x07u, 0x00u, 0x18u, 0x9Fu, 0x08u, 0x7Fu, 0x21u, 0x80u, 0x40u, 0x90u, 0x00u, 0x40u, \r
-                       0x40u, 0xC0u, 0x00u, 0x01u, 0x04u, 0x1Fu, 0x00u, 0x20u, 0x10u, 0x00u, 0x00u, 0x60u, 0x01u, 0xC0u, 0x00u, 0x02u, \r
-                       0x01u, 0x00u, 0x00u, 0x00u, 0x22u, 0x00u, 0x08u, 0xFFu, 0x01u, 0xC0u, 0x00u, 0x08u, 0x01u, 0xC0u, 0x00u, 0x04u, \r
-                       0x3Fu, 0x00u, 0x40u, 0x00u, 0x00u, 0x00u, 0x00u, 0xFFu, 0x0Au, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x01u, 0x40u, \r
-                       0x26u, 0x03u, 0x40u, 0x00u, 0x05u, 0x0Bu, 0xFDu, 0xCEu, 0x3Du, 0xFFu, 0xFFu, 0xFFu, 0x22u, 0x00u, 0xF0u, 0x08u, \r
-                       0x04u, 0x00u, 0x00u, 0x00u, 0x40u, 0x00u, 0x00u, 0x00u, 0x0Bu, 0x04u, 0x0Bu, 0x0Bu, 0x09u, 0x99u, 0x00u, 0x01u, \r
+               /* UDB_1_3_0_CONFIG Address: CYDEV_UCFG_B0_P2_U0_BASE Size (bytes): 128 */\r
+               static const uint8 CYCODE BS_UDB_1_3_0_CONFIG_VAL[] = {\r
+                       0x8Du, 0x00u, 0x00u, 0x00u, 0x8Du, 0x09u, 0x00u, 0x12u, 0x8Du, 0x00u, 0x00u, 0x01u, 0x0Du, 0x00u, 0x80u, 0x30u, \r
+                       0x02u, 0x00u, 0x0Du, 0x00u, 0x00u, 0x00u, 0x80u, 0x09u, 0x12u, 0x00u, 0x44u, 0x06u, 0x60u, 0x00u, 0x00u, 0x08u, \r
+                       0x8Du, 0x09u, 0x00u, 0x24u, 0x00u, 0x00u, 0x00u, 0x00u, 0x22u, 0x00u, 0x18u, 0x00u, 0x11u, 0x00u, 0x22u, 0x00u, \r
+                       0x0Fu, 0x38u, 0x00u, 0x00u, 0x80u, 0x07u, 0x70u, 0x00u, 0x80u, 0x00u, 0x02u, 0x00u, 0x00u, 0x00u, 0x10u, 0x00u, \r
+                       0x26u, 0x05u, 0x40u, 0x00u, 0x03u, 0xBEu, 0xFBu, 0xDCu, 0x3Fu, 0xFFu, 0xFFu, 0xFFu, 0x22u, 0x00u, 0xF0u, 0x08u, \r
+                       0x04u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x04u, 0x04u, 0x04u, 0x04u, 0x10u, 0x00u, 0x00u, 0x01u, \r
                        0x00u, 0x00u, 0xC0u, 0x00u, 0x40u, 0x01u, 0x10u, 0x11u, 0xC0u, 0x01u, 0x00u, 0x11u, 0x40u, 0x01u, 0x40u, 0x01u, \r
                        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u};\r
 \r
                static const cfg_memcpy_t CYCODE cfg_memcpy_list [] = {\r
                        /* dest, src, size */\r
-                       {(void CYFAR *)(CYDEV_UCFG_B0_P3_U0_BASE), BS_UDB_1_2_1_CONFIG_VAL, 128u},\r
+                       {(void CYFAR *)(CYDEV_UCFG_B0_P2_U0_BASE), BS_UDB_1_3_0_CONFIG_VAL, 128u},\r
                };\r
 \r
                uint8 CYDATA i;\r
@@ -1519,6 +1594,12 @@ void cyfitter_cfg(void)
 \r
                cfg_write_bytes32(cy_cfg_addr_table, cy_cfg_data_table);\r
 \r
+               /* Perform normal device configuration. Order is not critical for these items. */\r
+               CYMEMZERO((void CYFAR *)(CYREG_PHUB_CFGMEM0_CFG0), 4u);\r
+               CYCONFIGCPYCODE((void CYFAR *)(CYREG_PHUB_CFGMEM1_CFG0), (const void CYCODE *)(BS_PHUB_CFGMEM1_VAL), 4u);\r
+               CYCONFIGCPYCODE((void CYFAR *)(CYREG_PHUB_CFGMEM2_CFG0), (const void CYCODE *)(BS_PHUB_CFGMEM2_VAL), 4u);\r
+               CYCONFIGCPYCODE((void CYFAR *)(CYREG_PHUB_CFGMEM3_CFG0), (const void CYCODE *)(BS_PHUB_CFGMEM3_VAL), 4u);\r
+\r
                /* Enable digital routing */\r
                CY_SET_XTND_REG8((void CYFAR *)CYREG_BCTL0_BANK_CTL, CY_GET_XTND_REG8((void CYFAR *)CYREG_BCTL0_BANK_CTL) | 0x02u);\r
                CY_SET_XTND_REG8((void CYFAR *)CYREG_BCTL1_BANK_CTL, CY_GET_XTND_REG8((void CYFAR *)CYREG_BCTL1_BANK_CTL) | 0x02u);\r
old mode 100755 (executable)
new mode 100644 (file)
index e2cddad..b4c3cb6
@@ -6,13 +6,33 @@
 /* Debug_Timer_Interrupt */\r
 .set Debug_Timer_Interrupt__INTC_CLR_EN_REG, CYREG_NVIC_CLRENA0\r
 .set Debug_Timer_Interrupt__INTC_CLR_PD_REG, CYREG_NVIC_CLRPEND0\r
-.set Debug_Timer_Interrupt__INTC_MASK, 0x01\r
-.set Debug_Timer_Interrupt__INTC_NUMBER, 0\r
+.set Debug_Timer_Interrupt__INTC_MASK, 0x02\r
+.set Debug_Timer_Interrupt__INTC_NUMBER, 1\r
 .set Debug_Timer_Interrupt__INTC_PRIOR_NUM, 7\r
-.set Debug_Timer_Interrupt__INTC_PRIOR_REG, CYREG_NVIC_PRI_0\r
+.set Debug_Timer_Interrupt__INTC_PRIOR_REG, CYREG_NVIC_PRI_1\r
 .set Debug_Timer_Interrupt__INTC_SET_EN_REG, CYREG_NVIC_SETENA0\r
 .set Debug_Timer_Interrupt__INTC_SET_PD_REG, CYREG_NVIC_SETPEND0\r
 \r
+/* SCSI_RX_DMA_COMPLETE */\r
+.set SCSI_RX_DMA_COMPLETE__INTC_CLR_EN_REG, CYREG_NVIC_CLRENA0\r
+.set SCSI_RX_DMA_COMPLETE__INTC_CLR_PD_REG, CYREG_NVIC_CLRPEND0\r
+.set SCSI_RX_DMA_COMPLETE__INTC_MASK, 0x01\r
+.set SCSI_RX_DMA_COMPLETE__INTC_NUMBER, 0\r
+.set SCSI_RX_DMA_COMPLETE__INTC_PRIOR_NUM, 7\r
+.set SCSI_RX_DMA_COMPLETE__INTC_PRIOR_REG, CYREG_NVIC_PRI_0\r
+.set SCSI_RX_DMA_COMPLETE__INTC_SET_EN_REG, CYREG_NVIC_SETENA0\r
+.set SCSI_RX_DMA_COMPLETE__INTC_SET_PD_REG, CYREG_NVIC_SETPEND0\r
+\r
+/* SCSI_TX_DMA_COMPLETE */\r
+.set SCSI_TX_DMA_COMPLETE__INTC_CLR_EN_REG, CYREG_NVIC_CLRENA0\r
+.set SCSI_TX_DMA_COMPLETE__INTC_CLR_PD_REG, CYREG_NVIC_CLRPEND0\r
+.set SCSI_TX_DMA_COMPLETE__INTC_MASK, 0x04\r
+.set SCSI_TX_DMA_COMPLETE__INTC_NUMBER, 2\r
+.set SCSI_TX_DMA_COMPLETE__INTC_PRIOR_NUM, 7\r
+.set SCSI_TX_DMA_COMPLETE__INTC_PRIOR_REG, CYREG_NVIC_PRI_2\r
+.set SCSI_TX_DMA_COMPLETE__INTC_SET_EN_REG, CYREG_NVIC_SETENA0\r
+.set SCSI_TX_DMA_COMPLETE__INTC_SET_PD_REG, CYREG_NVIC_SETPEND0\r
+\r
 /* Debug_Timer_TimerHW */\r
 .set Debug_Timer_TimerHW__CAP0, CYREG_TMR0_CAP0\r
 .set Debug_Timer_TimerHW__CAP1, CYREG_TMR0_CAP1\r
 .set Debug_Timer_TimerHW__RT1, CYREG_TMR0_RT1\r
 .set Debug_Timer_TimerHW__SR0, CYREG_TMR0_SR0\r
 \r
+/* SD_RX_DMA_COMPLETE */\r
+.set SD_RX_DMA_COMPLETE__INTC_CLR_EN_REG, CYREG_NVIC_CLRENA0\r
+.set SD_RX_DMA_COMPLETE__INTC_CLR_PD_REG, CYREG_NVIC_CLRPEND0\r
+.set SD_RX_DMA_COMPLETE__INTC_MASK, 0x08\r
+.set SD_RX_DMA_COMPLETE__INTC_NUMBER, 3\r
+.set SD_RX_DMA_COMPLETE__INTC_PRIOR_NUM, 7\r
+.set SD_RX_DMA_COMPLETE__INTC_PRIOR_REG, CYREG_NVIC_PRI_3\r
+.set SD_RX_DMA_COMPLETE__INTC_SET_EN_REG, CYREG_NVIC_SETENA0\r
+.set SD_RX_DMA_COMPLETE__INTC_SET_PD_REG, CYREG_NVIC_SETPEND0\r
+\r
+/* SD_TX_DMA_COMPLETE */\r
+.set SD_TX_DMA_COMPLETE__INTC_CLR_EN_REG, CYREG_NVIC_CLRENA0\r
+.set SD_TX_DMA_COMPLETE__INTC_CLR_PD_REG, CYREG_NVIC_CLRPEND0\r
+.set SD_TX_DMA_COMPLETE__INTC_MASK, 0x10\r
+.set SD_TX_DMA_COMPLETE__INTC_NUMBER, 4\r
+.set SD_TX_DMA_COMPLETE__INTC_PRIOR_NUM, 7\r
+.set SD_TX_DMA_COMPLETE__INTC_PRIOR_REG, CYREG_NVIC_PRI_4\r
+.set SD_TX_DMA_COMPLETE__INTC_SET_EN_REG, CYREG_NVIC_SETENA0\r
+.set SD_TX_DMA_COMPLETE__INTC_SET_PD_REG, CYREG_NVIC_SETPEND0\r
+\r
 /* USBFS_bus_reset */\r
 .set USBFS_bus_reset__INTC_CLR_EN_REG, CYREG_NVIC_CLRENA0\r
 .set USBFS_bus_reset__INTC_CLR_PD_REG, CYREG_NVIC_CLRPEND0\r
 /* SCSI_CTL_PHASE */\r
 .set SCSI_CTL_PHASE_Sync_ctrl_reg__0__MASK, 0x01\r
 .set SCSI_CTL_PHASE_Sync_ctrl_reg__0__POS, 0\r
-.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG, CYREG_B0_UDB05_06_ACTL\r
-.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG, CYREG_B0_UDB05_06_CTL\r
-.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG, CYREG_B0_UDB05_06_CTL\r
-.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG, CYREG_B0_UDB05_06_CTL\r
-.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG, CYREG_B0_UDB05_06_CTL\r
-.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_MASK_REG, CYREG_B0_UDB05_06_MSK\r
-.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG, CYREG_B0_UDB05_06_MSK\r
-.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG, CYREG_B0_UDB05_06_MSK\r
-.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG, CYREG_B0_UDB05_06_MSK\r
+.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG, CYREG_B0_UDB02_03_ACTL\r
+.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG, CYREG_B0_UDB02_03_CTL\r
+.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG, CYREG_B0_UDB02_03_CTL\r
+.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG, CYREG_B0_UDB02_03_CTL\r
+.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG, CYREG_B0_UDB02_03_CTL\r
+.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_MASK_REG, CYREG_B0_UDB02_03_MSK\r
+.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG, CYREG_B0_UDB02_03_MSK\r
+.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG, CYREG_B0_UDB02_03_MSK\r
+.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG, CYREG_B0_UDB02_03_MSK\r
 .set SCSI_CTL_PHASE_Sync_ctrl_reg__1__MASK, 0x02\r
 .set SCSI_CTL_PHASE_Sync_ctrl_reg__1__POS, 1\r
 .set SCSI_CTL_PHASE_Sync_ctrl_reg__2__MASK, 0x04\r
 .set SCSI_CTL_PHASE_Sync_ctrl_reg__2__POS, 2\r
-.set SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_AUX_CTL_REG, CYREG_B0_UDB05_ACTL\r
-.set SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_REG, CYREG_B0_UDB05_CTL\r
-.set SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_ST_REG, CYREG_B0_UDB05_ST_CTL\r
-.set SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_REG, CYREG_B0_UDB05_CTL\r
-.set SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_ST_REG, CYREG_B0_UDB05_ST_CTL\r
+.set SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_AUX_CTL_REG, CYREG_B0_UDB02_ACTL\r
+.set SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_REG, CYREG_B0_UDB02_CTL\r
+.set SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_ST_REG, CYREG_B0_UDB02_ST_CTL\r
+.set SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_REG, CYREG_B0_UDB02_CTL\r
+.set SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_ST_REG, CYREG_B0_UDB02_ST_CTL\r
 .set SCSI_CTL_PHASE_Sync_ctrl_reg__MASK, 0x07\r
-.set SCSI_CTL_PHASE_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG, CYREG_B0_UDB05_MSK_ACTL\r
-.set SCSI_CTL_PHASE_Sync_ctrl_reg__PERIOD_REG, CYREG_B0_UDB05_MSK\r
-.set SCSI_CTL_PHASE_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG, CYREG_B0_UDB05_MSK_ACTL\r
+.set SCSI_CTL_PHASE_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG, CYREG_B0_UDB02_MSK_ACTL\r
+.set SCSI_CTL_PHASE_Sync_ctrl_reg__PERIOD_REG, CYREG_B0_UDB02_MSK\r
+.set SCSI_CTL_PHASE_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG, CYREG_B0_UDB02_MSK_ACTL\r
 \r
 /* SCSI_Out_Bits */\r
 .set SCSI_Out_Bits_Sync_ctrl_reg__0__MASK, 0x01\r
 .set SCSI_Out_Bits_Sync_ctrl_reg__0__POS, 0\r
-.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG, CYREG_B0_UDB00_01_ACTL\r
-.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG, CYREG_B0_UDB00_01_CTL\r
-.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG, CYREG_B0_UDB00_01_CTL\r
-.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG, CYREG_B0_UDB00_01_CTL\r
-.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG, CYREG_B0_UDB00_01_CTL\r
-.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_MASK_REG, CYREG_B0_UDB00_01_MSK\r
-.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG, CYREG_B0_UDB00_01_MSK\r
-.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG, CYREG_B0_UDB00_01_MSK\r
-.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG, CYREG_B0_UDB00_01_MSK\r
+.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG, CYREG_B0_UDB12_13_ACTL\r
+.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG, CYREG_B0_UDB12_13_CTL\r
+.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG, CYREG_B0_UDB12_13_CTL\r
+.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG, CYREG_B0_UDB12_13_CTL\r
+.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG, CYREG_B0_UDB12_13_CTL\r
+.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_MASK_REG, CYREG_B0_UDB12_13_MSK\r
+.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG, CYREG_B0_UDB12_13_MSK\r
+.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG, CYREG_B0_UDB12_13_MSK\r
+.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG, CYREG_B0_UDB12_13_MSK\r
 .set SCSI_Out_Bits_Sync_ctrl_reg__1__MASK, 0x02\r
 .set SCSI_Out_Bits_Sync_ctrl_reg__1__POS, 1\r
 .set SCSI_Out_Bits_Sync_ctrl_reg__2__MASK, 0x04\r
 .set SCSI_Out_Bits_Sync_ctrl_reg__6__POS, 6\r
 .set SCSI_Out_Bits_Sync_ctrl_reg__7__MASK, 0x80\r
 .set SCSI_Out_Bits_Sync_ctrl_reg__7__POS, 7\r
-.set SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_AUX_CTL_REG, CYREG_B0_UDB00_ACTL\r
-.set SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_REG, CYREG_B0_UDB00_CTL\r
-.set SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_ST_REG, CYREG_B0_UDB00_ST_CTL\r
-.set SCSI_Out_Bits_Sync_ctrl_reg__COUNT_REG, CYREG_B0_UDB00_CTL\r
-.set SCSI_Out_Bits_Sync_ctrl_reg__COUNT_ST_REG, CYREG_B0_UDB00_ST_CTL\r
+.set SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_AUX_CTL_REG, CYREG_B0_UDB12_ACTL\r
+.set SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_REG, CYREG_B0_UDB12_CTL\r
+.set SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_ST_REG, CYREG_B0_UDB12_ST_CTL\r
+.set SCSI_Out_Bits_Sync_ctrl_reg__COUNT_REG, CYREG_B0_UDB12_CTL\r
+.set SCSI_Out_Bits_Sync_ctrl_reg__COUNT_ST_REG, CYREG_B0_UDB12_ST_CTL\r
 .set SCSI_Out_Bits_Sync_ctrl_reg__MASK, 0xFF\r
-.set SCSI_Out_Bits_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG, CYREG_B0_UDB00_MSK_ACTL\r
-.set SCSI_Out_Bits_Sync_ctrl_reg__PERIOD_REG, CYREG_B0_UDB00_MSK\r
-.set SCSI_Out_Bits_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG, CYREG_B0_UDB00_MSK_ACTL\r
+.set SCSI_Out_Bits_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG, CYREG_B0_UDB12_MSK_ACTL\r
+.set SCSI_Out_Bits_Sync_ctrl_reg__PERIOD_REG, CYREG_B0_UDB12_MSK\r
+.set SCSI_Out_Bits_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG, CYREG_B0_UDB12_MSK_ACTL\r
 \r
 /* USBFS_arb_int */\r
 .set USBFS_arb_int__INTC_CLR_EN_REG, CYREG_NVIC_CLRENA0\r
 /* SCSI_Out_Ctl */\r
 .set SCSI_Out_Ctl_Sync_ctrl_reg__0__MASK, 0x01\r
 .set SCSI_Out_Ctl_Sync_ctrl_reg__0__POS, 0\r
-.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG, CYREG_B0_UDB03_04_ACTL\r
-.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG, CYREG_B0_UDB03_04_CTL\r
-.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG, CYREG_B0_UDB03_04_CTL\r
-.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG, CYREG_B0_UDB03_04_CTL\r
-.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG, CYREG_B0_UDB03_04_CTL\r
-.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG, CYREG_B0_UDB03_04_MSK\r
-.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG, CYREG_B0_UDB03_04_MSK\r
-.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG, CYREG_B0_UDB03_04_MSK\r
-.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG, CYREG_B0_UDB03_04_MSK\r
-.set SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG, CYREG_B0_UDB03_ACTL\r
-.set SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_REG, CYREG_B0_UDB03_CTL\r
-.set SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_ST_REG, CYREG_B0_UDB03_ST_CTL\r
-.set SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_REG, CYREG_B0_UDB03_CTL\r
-.set SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_ST_REG, CYREG_B0_UDB03_ST_CTL\r
+.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG, CYREG_B1_UDB07_08_ACTL\r
+.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG, CYREG_B1_UDB07_08_CTL\r
+.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG, CYREG_B1_UDB07_08_CTL\r
+.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG, CYREG_B1_UDB07_08_CTL\r
+.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG, CYREG_B1_UDB07_08_CTL\r
+.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG, CYREG_B1_UDB07_08_MSK\r
+.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG, CYREG_B1_UDB07_08_MSK\r
+.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG, CYREG_B1_UDB07_08_MSK\r
+.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG, CYREG_B1_UDB07_08_MSK\r
+.set SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG, CYREG_B1_UDB07_ACTL\r
+.set SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_REG, CYREG_B1_UDB07_CTL\r
+.set SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_ST_REG, CYREG_B1_UDB07_ST_CTL\r
+.set SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_REG, CYREG_B1_UDB07_CTL\r
+.set SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_ST_REG, CYREG_B1_UDB07_ST_CTL\r
 .set SCSI_Out_Ctl_Sync_ctrl_reg__MASK, 0x01\r
-.set SCSI_Out_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG, CYREG_B0_UDB03_MSK_ACTL\r
-.set SCSI_Out_Ctl_Sync_ctrl_reg__PERIOD_REG, CYREG_B0_UDB03_MSK\r
-.set SCSI_Out_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG, CYREG_B0_UDB03_MSK_ACTL\r
+.set SCSI_Out_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG, CYREG_B1_UDB07_MSK_ACTL\r
+.set SCSI_Out_Ctl_Sync_ctrl_reg__PERIOD_REG, CYREG_B1_UDB07_MSK\r
+.set SCSI_Out_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG, CYREG_B1_UDB07_MSK_ACTL\r
 \r
 /* SCSI_Out_DBx */\r
 .set SCSI_Out_DBx__0__AG, CYREG_PRT6_AG\r
 .set SDCard_BSPIM_BitCounter__MASK_CTL_AUX_CTL_REG, CYREG_B1_UDB06_MSK_ACTL\r
 .set SDCard_BSPIM_BitCounter__PERIOD_REG, CYREG_B1_UDB06_MSK\r
 .set SDCard_BSPIM_BitCounter__PER_CTL_AUX_CTL_REG, CYREG_B1_UDB06_MSK_ACTL\r
-.set SDCard_BSPIM_RxStsReg__16BIT_STATUS_AUX_CTL_REG, CYREG_B0_UDB06_07_ACTL\r
-.set SDCard_BSPIM_RxStsReg__16BIT_STATUS_REG, CYREG_B0_UDB06_07_ST\r
+.set SDCard_BSPIM_RxStsReg__16BIT_STATUS_AUX_CTL_REG, CYREG_B0_UDB07_08_ACTL\r
+.set SDCard_BSPIM_RxStsReg__16BIT_STATUS_REG, CYREG_B0_UDB07_08_ST\r
 .set SDCard_BSPIM_RxStsReg__4__MASK, 0x10\r
 .set SDCard_BSPIM_RxStsReg__4__POS, 4\r
 .set SDCard_BSPIM_RxStsReg__5__MASK, 0x20\r
 .set SDCard_BSPIM_RxStsReg__6__MASK, 0x40\r
 .set SDCard_BSPIM_RxStsReg__6__POS, 6\r
 .set SDCard_BSPIM_RxStsReg__MASK, 0x70\r
-.set SDCard_BSPIM_RxStsReg__MASK_REG, CYREG_B0_UDB06_MSK\r
-.set SDCard_BSPIM_RxStsReg__STATUS_AUX_CTL_REG, CYREG_B0_UDB06_ACTL\r
-.set SDCard_BSPIM_RxStsReg__STATUS_REG, CYREG_B0_UDB06_ST\r
+.set SDCard_BSPIM_RxStsReg__MASK_REG, CYREG_B0_UDB07_MSK\r
+.set SDCard_BSPIM_RxStsReg__STATUS_AUX_CTL_REG, CYREG_B0_UDB07_ACTL\r
+.set SDCard_BSPIM_RxStsReg__STATUS_REG, CYREG_B0_UDB07_ST\r
 .set SDCard_BSPIM_TxStsReg__0__MASK, 0x01\r
 .set SDCard_BSPIM_TxStsReg__0__POS, 0\r
-.set SDCard_BSPIM_TxStsReg__16BIT_STATUS_AUX_CTL_REG, CYREG_B0_UDB04_05_ACTL\r
-.set SDCard_BSPIM_TxStsReg__16BIT_STATUS_REG, CYREG_B0_UDB04_05_ST\r
+.set SDCard_BSPIM_TxStsReg__16BIT_STATUS_AUX_CTL_REG, CYREG_B1_UDB07_08_ACTL\r
+.set SDCard_BSPIM_TxStsReg__16BIT_STATUS_REG, CYREG_B1_UDB07_08_ST\r
 .set SDCard_BSPIM_TxStsReg__1__MASK, 0x02\r
 .set SDCard_BSPIM_TxStsReg__1__POS, 1\r
 .set SDCard_BSPIM_TxStsReg__2__MASK, 0x04\r
 .set SDCard_BSPIM_TxStsReg__4__MASK, 0x10\r
 .set SDCard_BSPIM_TxStsReg__4__POS, 4\r
 .set SDCard_BSPIM_TxStsReg__MASK, 0x1F\r
-.set SDCard_BSPIM_TxStsReg__MASK_REG, CYREG_B0_UDB04_MSK\r
-.set SDCard_BSPIM_TxStsReg__STATUS_AUX_CTL_REG, CYREG_B0_UDB04_ACTL\r
-.set SDCard_BSPIM_TxStsReg__STATUS_REG, CYREG_B0_UDB04_ST\r
-.set SDCard_BSPIM_sR8_Dp_u0__16BIT_A0_REG, CYREG_B0_UDB06_07_A0\r
-.set SDCard_BSPIM_sR8_Dp_u0__16BIT_A1_REG, CYREG_B0_UDB06_07_A1\r
-.set SDCard_BSPIM_sR8_Dp_u0__16BIT_D0_REG, CYREG_B0_UDB06_07_D0\r
-.set SDCard_BSPIM_sR8_Dp_u0__16BIT_D1_REG, CYREG_B0_UDB06_07_D1\r
-.set SDCard_BSPIM_sR8_Dp_u0__16BIT_DP_AUX_CTL_REG, CYREG_B0_UDB06_07_ACTL\r
-.set SDCard_BSPIM_sR8_Dp_u0__16BIT_F0_REG, CYREG_B0_UDB06_07_F0\r
-.set SDCard_BSPIM_sR8_Dp_u0__16BIT_F1_REG, CYREG_B0_UDB06_07_F1\r
-.set SDCard_BSPIM_sR8_Dp_u0__A0_A1_REG, CYREG_B0_UDB06_A0_A1\r
-.set SDCard_BSPIM_sR8_Dp_u0__A0_REG, CYREG_B0_UDB06_A0\r
-.set SDCard_BSPIM_sR8_Dp_u0__A1_REG, CYREG_B0_UDB06_A1\r
-.set SDCard_BSPIM_sR8_Dp_u0__D0_D1_REG, CYREG_B0_UDB06_D0_D1\r
-.set SDCard_BSPIM_sR8_Dp_u0__D0_REG, CYREG_B0_UDB06_D0\r
-.set SDCard_BSPIM_sR8_Dp_u0__D1_REG, CYREG_B0_UDB06_D1\r
-.set SDCard_BSPIM_sR8_Dp_u0__DP_AUX_CTL_REG, CYREG_B0_UDB06_ACTL\r
-.set SDCard_BSPIM_sR8_Dp_u0__F0_F1_REG, CYREG_B0_UDB06_F0_F1\r
-.set SDCard_BSPIM_sR8_Dp_u0__F0_REG, CYREG_B0_UDB06_F0\r
-.set SDCard_BSPIM_sR8_Dp_u0__F1_REG, CYREG_B0_UDB06_F1\r
+.set SDCard_BSPIM_TxStsReg__MASK_REG, CYREG_B1_UDB07_MSK\r
+.set SDCard_BSPIM_TxStsReg__MASK_ST_AUX_CTL_REG, CYREG_B1_UDB07_MSK_ACTL\r
+.set SDCard_BSPIM_TxStsReg__PER_ST_AUX_CTL_REG, CYREG_B1_UDB07_MSK_ACTL\r
+.set SDCard_BSPIM_TxStsReg__STATUS_AUX_CTL_REG, CYREG_B1_UDB07_ACTL\r
+.set SDCard_BSPIM_TxStsReg__STATUS_CNT_REG, CYREG_B1_UDB07_ST_CTL\r
+.set SDCard_BSPIM_TxStsReg__STATUS_CONTROL_REG, CYREG_B1_UDB07_ST_CTL\r
+.set SDCard_BSPIM_TxStsReg__STATUS_REG, CYREG_B1_UDB07_ST\r
+.set SDCard_BSPIM_sR8_Dp_u0__16BIT_A0_REG, CYREG_B0_UDB04_05_A0\r
+.set SDCard_BSPIM_sR8_Dp_u0__16BIT_A1_REG, CYREG_B0_UDB04_05_A1\r
+.set SDCard_BSPIM_sR8_Dp_u0__16BIT_D0_REG, CYREG_B0_UDB04_05_D0\r
+.set SDCard_BSPIM_sR8_Dp_u0__16BIT_D1_REG, CYREG_B0_UDB04_05_D1\r
+.set SDCard_BSPIM_sR8_Dp_u0__16BIT_DP_AUX_CTL_REG, CYREG_B0_UDB04_05_ACTL\r
+.set SDCard_BSPIM_sR8_Dp_u0__16BIT_F0_REG, CYREG_B0_UDB04_05_F0\r
+.set SDCard_BSPIM_sR8_Dp_u0__16BIT_F1_REG, CYREG_B0_UDB04_05_F1\r
+.set SDCard_BSPIM_sR8_Dp_u0__A0_A1_REG, CYREG_B0_UDB04_A0_A1\r
+.set SDCard_BSPIM_sR8_Dp_u0__A0_REG, CYREG_B0_UDB04_A0\r
+.set SDCard_BSPIM_sR8_Dp_u0__A1_REG, CYREG_B0_UDB04_A1\r
+.set SDCard_BSPIM_sR8_Dp_u0__D0_D1_REG, CYREG_B0_UDB04_D0_D1\r
+.set SDCard_BSPIM_sR8_Dp_u0__D0_REG, CYREG_B0_UDB04_D0\r
+.set SDCard_BSPIM_sR8_Dp_u0__D1_REG, CYREG_B0_UDB04_D1\r
+.set SDCard_BSPIM_sR8_Dp_u0__DP_AUX_CTL_REG, CYREG_B0_UDB04_ACTL\r
+.set SDCard_BSPIM_sR8_Dp_u0__F0_F1_REG, CYREG_B0_UDB04_F0_F1\r
+.set SDCard_BSPIM_sR8_Dp_u0__F0_REG, CYREG_B0_UDB04_F0\r
+.set SDCard_BSPIM_sR8_Dp_u0__F1_REG, CYREG_B0_UDB04_F1\r
 \r
 /* USBFS_dp_int */\r
 .set USBFS_dp_int__INTC_CLR_EN_REG, CYREG_NVIC_CLRENA0\r
 .set SCSI_In_DBx__DB7__SHIFT, 1\r
 .set SCSI_In_DBx__DB7__SLW, CYREG_PRT2_SLW\r
 \r
+/* SCSI_RX_DMA */\r
+.set SCSI_RX_DMA__DRQ_CTL, CYREG_IDMUX_DRQ_CTL0\r
+.set SCSI_RX_DMA__DRQ_NUMBER, 0\r
+.set SCSI_RX_DMA__NUMBEROF_TDS, 0\r
+.set SCSI_RX_DMA__PRIORITY, 2\r
+.set SCSI_RX_DMA__TERMIN_EN, 0\r
+.set SCSI_RX_DMA__TERMIN_SEL, 0\r
+.set SCSI_RX_DMA__TERMOUT0_EN, 1\r
+.set SCSI_RX_DMA__TERMOUT0_SEL, 0\r
+.set SCSI_RX_DMA__TERMOUT1_EN, 0\r
+.set SCSI_RX_DMA__TERMOUT1_SEL, 0\r
+\r
+/* SCSI_TX_DMA */\r
+.set SCSI_TX_DMA__DRQ_CTL, CYREG_IDMUX_DRQ_CTL0\r
+.set SCSI_TX_DMA__DRQ_NUMBER, 1\r
+.set SCSI_TX_DMA__NUMBEROF_TDS, 0\r
+.set SCSI_TX_DMA__PRIORITY, 2\r
+.set SCSI_TX_DMA__TERMIN_EN, 0\r
+.set SCSI_TX_DMA__TERMIN_SEL, 0\r
+.set SCSI_TX_DMA__TERMOUT0_EN, 1\r
+.set SCSI_TX_DMA__TERMOUT0_SEL, 1\r
+.set SCSI_TX_DMA__TERMOUT1_EN, 0\r
+.set SCSI_TX_DMA__TERMOUT1_SEL, 0\r
+\r
 /* SD_Data_Clk */\r
 .set SD_Data_Clk__CFG0, CYREG_CLKDIST_DCFG0_CFG0\r
 .set SD_Data_Clk__CFG1, CYREG_CLKDIST_DCFG0_CFG1\r
 /* scsiTarget */\r
 .set scsiTarget_StatusReg__0__MASK, 0x01\r
 .set scsiTarget_StatusReg__0__POS, 0\r
-.set scsiTarget_StatusReg__16BIT_STATUS_AUX_CTL_REG, CYREG_B0_UDB13_14_ACTL\r
-.set scsiTarget_StatusReg__16BIT_STATUS_REG, CYREG_B0_UDB13_14_ST\r
+.set scsiTarget_StatusReg__16BIT_STATUS_AUX_CTL_REG, CYREG_B0_UDB04_05_ACTL\r
+.set scsiTarget_StatusReg__16BIT_STATUS_REG, CYREG_B0_UDB04_05_ST\r
 .set scsiTarget_StatusReg__1__MASK, 0x02\r
 .set scsiTarget_StatusReg__1__POS, 1\r
 .set scsiTarget_StatusReg__2__MASK, 0x04\r
 .set scsiTarget_StatusReg__2__POS, 2\r
 .set scsiTarget_StatusReg__3__MASK, 0x08\r
 .set scsiTarget_StatusReg__3__POS, 3\r
-.set scsiTarget_StatusReg__MASK, 0x0F\r
-.set scsiTarget_StatusReg__MASK_REG, CYREG_B0_UDB13_MSK\r
-.set scsiTarget_StatusReg__STATUS_AUX_CTL_REG, CYREG_B0_UDB13_ACTL\r
-.set scsiTarget_StatusReg__STATUS_REG, CYREG_B0_UDB13_ST\r
-.set scsiTarget_datapath_PI__16BIT_STATUS_AUX_CTL_REG, CYREG_B0_UDB12_13_ACTL\r
-.set scsiTarget_datapath_PI__16BIT_STATUS_REG, CYREG_B0_UDB12_13_ST\r
-.set scsiTarget_datapath_PI__MASK_REG, CYREG_B0_UDB12_MSK\r
-.set scsiTarget_datapath_PI__MASK_ST_AUX_CTL_REG, CYREG_B0_UDB12_MSK_ACTL\r
-.set scsiTarget_datapath_PI__PER_ST_AUX_CTL_REG, CYREG_B0_UDB12_MSK_ACTL\r
-.set scsiTarget_datapath_PI__STATUS_AUX_CTL_REG, CYREG_B0_UDB12_ACTL\r
-.set scsiTarget_datapath_PI__STATUS_CNT_REG, CYREG_B0_UDB12_ST_CTL\r
-.set scsiTarget_datapath_PI__STATUS_CONTROL_REG, CYREG_B0_UDB12_ST_CTL\r
-.set scsiTarget_datapath_PI__STATUS_REG, CYREG_B0_UDB12_ST\r
-.set scsiTarget_datapath_PO__16BIT_CONTROL_AUX_CTL_REG, CYREG_B0_UDB12_13_ACTL\r
-.set scsiTarget_datapath_PO__16BIT_CONTROL_CONTROL_REG, CYREG_B0_UDB12_13_CTL\r
-.set scsiTarget_datapath_PO__16BIT_CONTROL_COUNT_REG, CYREG_B0_UDB12_13_CTL\r
-.set scsiTarget_datapath_PO__16BIT_COUNT_CONTROL_REG, CYREG_B0_UDB12_13_CTL\r
-.set scsiTarget_datapath_PO__16BIT_COUNT_COUNT_REG, CYREG_B0_UDB12_13_CTL\r
-.set scsiTarget_datapath_PO__16BIT_MASK_MASK_REG, CYREG_B0_UDB12_13_MSK\r
-.set scsiTarget_datapath_PO__16BIT_MASK_PERIOD_REG, CYREG_B0_UDB12_13_MSK\r
-.set scsiTarget_datapath_PO__16BIT_PERIOD_MASK_REG, CYREG_B0_UDB12_13_MSK\r
-.set scsiTarget_datapath_PO__16BIT_PERIOD_PERIOD_REG, CYREG_B0_UDB12_13_MSK\r
-.set scsiTarget_datapath_PO__CONTROL_AUX_CTL_REG, CYREG_B0_UDB12_ACTL\r
-.set scsiTarget_datapath_PO__CONTROL_REG, CYREG_B0_UDB12_CTL\r
-.set scsiTarget_datapath_PO__CONTROL_ST_REG, CYREG_B0_UDB12_ST_CTL\r
-.set scsiTarget_datapath_PO__COUNT_REG, CYREG_B0_UDB12_CTL\r
-.set scsiTarget_datapath_PO__COUNT_ST_REG, CYREG_B0_UDB12_ST_CTL\r
-.set scsiTarget_datapath_PO__MASK_CTL_AUX_CTL_REG, CYREG_B0_UDB12_MSK_ACTL\r
-.set scsiTarget_datapath_PO__PERIOD_REG, CYREG_B0_UDB12_MSK\r
-.set scsiTarget_datapath_PO__PER_CTL_AUX_CTL_REG, CYREG_B0_UDB12_MSK_ACTL\r
-.set scsiTarget_datapath__16BIT_A0_REG, CYREG_B0_UDB12_13_A0\r
-.set scsiTarget_datapath__16BIT_A1_REG, CYREG_B0_UDB12_13_A1\r
-.set scsiTarget_datapath__16BIT_D0_REG, CYREG_B0_UDB12_13_D0\r
-.set scsiTarget_datapath__16BIT_D1_REG, CYREG_B0_UDB12_13_D1\r
-.set scsiTarget_datapath__16BIT_DP_AUX_CTL_REG, CYREG_B0_UDB12_13_ACTL\r
-.set scsiTarget_datapath__16BIT_F0_REG, CYREG_B0_UDB12_13_F0\r
-.set scsiTarget_datapath__16BIT_F1_REG, CYREG_B0_UDB12_13_F1\r
-.set scsiTarget_datapath__A0_A1_REG, CYREG_B0_UDB12_A0_A1\r
-.set scsiTarget_datapath__A0_REG, CYREG_B0_UDB12_A0\r
-.set scsiTarget_datapath__A1_REG, CYREG_B0_UDB12_A1\r
-.set scsiTarget_datapath__D0_D1_REG, CYREG_B0_UDB12_D0_D1\r
-.set scsiTarget_datapath__D0_REG, CYREG_B0_UDB12_D0\r
-.set scsiTarget_datapath__D1_REG, CYREG_B0_UDB12_D1\r
-.set scsiTarget_datapath__DP_AUX_CTL_REG, CYREG_B0_UDB12_ACTL\r
-.set scsiTarget_datapath__F0_F1_REG, CYREG_B0_UDB12_F0_F1\r
-.set scsiTarget_datapath__F0_REG, CYREG_B0_UDB12_F0\r
-.set scsiTarget_datapath__F1_REG, CYREG_B0_UDB12_F1\r
-.set scsiTarget_datapath__MSK_DP_AUX_CTL_REG, CYREG_B0_UDB12_MSK_ACTL\r
-.set scsiTarget_datapath__PER_DP_AUX_CTL_REG, CYREG_B0_UDB12_MSK_ACTL\r
+.set scsiTarget_StatusReg__4__MASK, 0x10\r
+.set scsiTarget_StatusReg__4__POS, 4\r
+.set scsiTarget_StatusReg__MASK, 0x1F\r
+.set scsiTarget_StatusReg__MASK_REG, CYREG_B0_UDB04_MSK\r
+.set scsiTarget_StatusReg__STATUS_AUX_CTL_REG, CYREG_B0_UDB04_ACTL\r
+.set scsiTarget_StatusReg__STATUS_REG, CYREG_B0_UDB04_ST\r
+.set scsiTarget_datapath_PI__16BIT_STATUS_AUX_CTL_REG, CYREG_B0_UDB03_04_ACTL\r
+.set scsiTarget_datapath_PI__16BIT_STATUS_REG, CYREG_B0_UDB03_04_ST\r
+.set scsiTarget_datapath_PI__MASK_REG, CYREG_B0_UDB03_MSK\r
+.set scsiTarget_datapath_PI__MASK_ST_AUX_CTL_REG, CYREG_B0_UDB03_MSK_ACTL\r
+.set scsiTarget_datapath_PI__PER_ST_AUX_CTL_REG, CYREG_B0_UDB03_MSK_ACTL\r
+.set scsiTarget_datapath_PI__STATUS_AUX_CTL_REG, CYREG_B0_UDB03_ACTL\r
+.set scsiTarget_datapath_PI__STATUS_CNT_REG, CYREG_B0_UDB03_ST_CTL\r
+.set scsiTarget_datapath_PI__STATUS_CONTROL_REG, CYREG_B0_UDB03_ST_CTL\r
+.set scsiTarget_datapath_PI__STATUS_REG, CYREG_B0_UDB03_ST\r
+.set scsiTarget_datapath_PO__16BIT_CONTROL_AUX_CTL_REG, CYREG_B0_UDB03_04_ACTL\r
+.set scsiTarget_datapath_PO__16BIT_CONTROL_CONTROL_REG, CYREG_B0_UDB03_04_CTL\r
+.set scsiTarget_datapath_PO__16BIT_CONTROL_COUNT_REG, CYREG_B0_UDB03_04_CTL\r
+.set scsiTarget_datapath_PO__16BIT_COUNT_CONTROL_REG, CYREG_B0_UDB03_04_CTL\r
+.set scsiTarget_datapath_PO__16BIT_COUNT_COUNT_REG, CYREG_B0_UDB03_04_CTL\r
+.set scsiTarget_datapath_PO__16BIT_MASK_MASK_REG, CYREG_B0_UDB03_04_MSK\r
+.set scsiTarget_datapath_PO__16BIT_MASK_PERIOD_REG, CYREG_B0_UDB03_04_MSK\r
+.set scsiTarget_datapath_PO__16BIT_PERIOD_MASK_REG, CYREG_B0_UDB03_04_MSK\r
+.set scsiTarget_datapath_PO__16BIT_PERIOD_PERIOD_REG, CYREG_B0_UDB03_04_MSK\r
+.set scsiTarget_datapath_PO__CONTROL_AUX_CTL_REG, CYREG_B0_UDB03_ACTL\r
+.set scsiTarget_datapath_PO__CONTROL_REG, CYREG_B0_UDB03_CTL\r
+.set scsiTarget_datapath_PO__CONTROL_ST_REG, CYREG_B0_UDB03_ST_CTL\r
+.set scsiTarget_datapath_PO__COUNT_REG, CYREG_B0_UDB03_CTL\r
+.set scsiTarget_datapath_PO__COUNT_ST_REG, CYREG_B0_UDB03_ST_CTL\r
+.set scsiTarget_datapath_PO__MASK_CTL_AUX_CTL_REG, CYREG_B0_UDB03_MSK_ACTL\r
+.set scsiTarget_datapath_PO__PERIOD_REG, CYREG_B0_UDB03_MSK\r
+.set scsiTarget_datapath_PO__PER_CTL_AUX_CTL_REG, CYREG_B0_UDB03_MSK_ACTL\r
+.set scsiTarget_datapath__16BIT_A0_REG, CYREG_B0_UDB03_04_A0\r
+.set scsiTarget_datapath__16BIT_A1_REG, CYREG_B0_UDB03_04_A1\r
+.set scsiTarget_datapath__16BIT_D0_REG, CYREG_B0_UDB03_04_D0\r
+.set scsiTarget_datapath__16BIT_D1_REG, CYREG_B0_UDB03_04_D1\r
+.set scsiTarget_datapath__16BIT_DP_AUX_CTL_REG, CYREG_B0_UDB03_04_ACTL\r
+.set scsiTarget_datapath__16BIT_F0_REG, CYREG_B0_UDB03_04_F0\r
+.set scsiTarget_datapath__16BIT_F1_REG, CYREG_B0_UDB03_04_F1\r
+.set scsiTarget_datapath__A0_A1_REG, CYREG_B0_UDB03_A0_A1\r
+.set scsiTarget_datapath__A0_REG, CYREG_B0_UDB03_A0\r
+.set scsiTarget_datapath__A1_REG, CYREG_B0_UDB03_A1\r
+.set scsiTarget_datapath__D0_D1_REG, CYREG_B0_UDB03_D0_D1\r
+.set scsiTarget_datapath__D0_REG, CYREG_B0_UDB03_D0\r
+.set scsiTarget_datapath__D1_REG, CYREG_B0_UDB03_D1\r
+.set scsiTarget_datapath__DP_AUX_CTL_REG, CYREG_B0_UDB03_ACTL\r
+.set scsiTarget_datapath__F0_F1_REG, CYREG_B0_UDB03_F0_F1\r
+.set scsiTarget_datapath__F0_REG, CYREG_B0_UDB03_F0\r
+.set scsiTarget_datapath__F1_REG, CYREG_B0_UDB03_F1\r
+.set scsiTarget_datapath__MSK_DP_AUX_CTL_REG, CYREG_B0_UDB03_MSK_ACTL\r
+.set scsiTarget_datapath__PER_DP_AUX_CTL_REG, CYREG_B0_UDB03_MSK_ACTL\r
 \r
 /* SD_Clk_Ctl */\r
-.set SD_Clk_Ctl_Sync_ctrl_reg__0__MASK, 0x01\r
-.set SD_Clk_Ctl_Sync_ctrl_reg__0__POS, 0\r
-.set SD_Clk_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG, CYREG_B0_UDB02_03_ACTL\r
-.set SD_Clk_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG, CYREG_B0_UDB02_03_CTL\r
-.set SD_Clk_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG, CYREG_B0_UDB02_03_CTL\r
-.set SD_Clk_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG, CYREG_B0_UDB02_03_CTL\r
-.set SD_Clk_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG, CYREG_B0_UDB02_03_CTL\r
-.set SD_Clk_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG, CYREG_B0_UDB02_03_MSK\r
-.set SD_Clk_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG, CYREG_B0_UDB02_03_MSK\r
-.set SD_Clk_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG, CYREG_B0_UDB02_03_MSK\r
-.set SD_Clk_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG, CYREG_B0_UDB02_03_MSK\r
-.set SD_Clk_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG, CYREG_B0_UDB02_ACTL\r
-.set SD_Clk_Ctl_Sync_ctrl_reg__CONTROL_REG, CYREG_B0_UDB02_CTL\r
-.set SD_Clk_Ctl_Sync_ctrl_reg__CONTROL_ST_REG, CYREG_B0_UDB02_ST_CTL\r
-.set SD_Clk_Ctl_Sync_ctrl_reg__COUNT_REG, CYREG_B0_UDB02_CTL\r
-.set SD_Clk_Ctl_Sync_ctrl_reg__COUNT_ST_REG, CYREG_B0_UDB02_ST_CTL\r
-.set SD_Clk_Ctl_Sync_ctrl_reg__MASK, 0x01\r
-.set SD_Clk_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG, CYREG_B0_UDB02_MSK_ACTL\r
-.set SD_Clk_Ctl_Sync_ctrl_reg__PERIOD_REG, CYREG_B0_UDB02_MSK\r
-.set SD_Clk_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG, CYREG_B0_UDB02_MSK_ACTL\r
+.set SD_Clk_Ctl_Sync_ctrl_reg__REMOVED, 1\r
 \r
 /* USBFS_ep_0 */\r
 .set USBFS_ep_0__INTC_CLR_EN_REG, CYREG_NVIC_CLRENA0\r
 /* USBFS_ep_1 */\r
 .set USBFS_ep_1__INTC_CLR_EN_REG, CYREG_NVIC_CLRENA0\r
 .set USBFS_ep_1__INTC_CLR_PD_REG, CYREG_NVIC_CLRPEND0\r
-.set USBFS_ep_1__INTC_MASK, 0x02\r
-.set USBFS_ep_1__INTC_NUMBER, 1\r
+.set USBFS_ep_1__INTC_MASK, 0x20\r
+.set USBFS_ep_1__INTC_NUMBER, 5\r
 .set USBFS_ep_1__INTC_PRIOR_NUM, 7\r
-.set USBFS_ep_1__INTC_PRIOR_REG, CYREG_NVIC_PRI_1\r
+.set USBFS_ep_1__INTC_PRIOR_REG, CYREG_NVIC_PRI_5\r
 .set USBFS_ep_1__INTC_SET_EN_REG, CYREG_NVIC_SETENA0\r
 .set USBFS_ep_1__INTC_SET_PD_REG, CYREG_NVIC_SETPEND0\r
 \r
 /* USBFS_ep_2 */\r
 .set USBFS_ep_2__INTC_CLR_EN_REG, CYREG_NVIC_CLRENA0\r
 .set USBFS_ep_2__INTC_CLR_PD_REG, CYREG_NVIC_CLRPEND0\r
-.set USBFS_ep_2__INTC_MASK, 0x04\r
-.set USBFS_ep_2__INTC_NUMBER, 2\r
+.set USBFS_ep_2__INTC_MASK, 0x40\r
+.set USBFS_ep_2__INTC_NUMBER, 6\r
 .set USBFS_ep_2__INTC_PRIOR_NUM, 7\r
-.set USBFS_ep_2__INTC_PRIOR_REG, CYREG_NVIC_PRI_2\r
+.set USBFS_ep_2__INTC_PRIOR_REG, CYREG_NVIC_PRI_6\r
 .set USBFS_ep_2__INTC_SET_EN_REG, CYREG_NVIC_SETENA0\r
 .set USBFS_ep_2__INTC_SET_PD_REG, CYREG_NVIC_SETPEND0\r
 \r
 /* USBFS_ep_3 */\r
 .set USBFS_ep_3__INTC_CLR_EN_REG, CYREG_NVIC_CLRENA0\r
 .set USBFS_ep_3__INTC_CLR_PD_REG, CYREG_NVIC_CLRPEND0\r
-.set USBFS_ep_3__INTC_MASK, 0x08\r
-.set USBFS_ep_3__INTC_NUMBER, 3\r
+.set USBFS_ep_3__INTC_MASK, 0x80\r
+.set USBFS_ep_3__INTC_NUMBER, 7\r
 .set USBFS_ep_3__INTC_PRIOR_NUM, 7\r
-.set USBFS_ep_3__INTC_PRIOR_REG, CYREG_NVIC_PRI_3\r
+.set USBFS_ep_3__INTC_PRIOR_REG, CYREG_NVIC_PRI_7\r
 .set USBFS_ep_3__INTC_SET_EN_REG, CYREG_NVIC_SETENA0\r
 .set USBFS_ep_3__INTC_SET_PD_REG, CYREG_NVIC_SETPEND0\r
 \r
 /* USBFS_ep_4 */\r
 .set USBFS_ep_4__INTC_CLR_EN_REG, CYREG_NVIC_CLRENA0\r
 .set USBFS_ep_4__INTC_CLR_PD_REG, CYREG_NVIC_CLRPEND0\r
-.set USBFS_ep_4__INTC_MASK, 0x10\r
-.set USBFS_ep_4__INTC_NUMBER, 4\r
+.set USBFS_ep_4__INTC_MASK, 0x100\r
+.set USBFS_ep_4__INTC_NUMBER, 8\r
 .set USBFS_ep_4__INTC_PRIOR_NUM, 7\r
-.set USBFS_ep_4__INTC_PRIOR_REG, CYREG_NVIC_PRI_4\r
+.set USBFS_ep_4__INTC_PRIOR_REG, CYREG_NVIC_PRI_8\r
 .set USBFS_ep_4__INTC_SET_EN_REG, CYREG_NVIC_SETENA0\r
 .set USBFS_ep_4__INTC_SET_PD_REG, CYREG_NVIC_SETPEND0\r
 \r
+/* SD_RX_DMA */\r
+.set SD_RX_DMA__DRQ_CTL, CYREG_IDMUX_DRQ_CTL0\r
+.set SD_RX_DMA__DRQ_NUMBER, 2\r
+.set SD_RX_DMA__NUMBEROF_TDS, 0\r
+.set SD_RX_DMA__PRIORITY, 1\r
+.set SD_RX_DMA__TERMIN_EN, 0\r
+.set SD_RX_DMA__TERMIN_SEL, 0\r
+.set SD_RX_DMA__TERMOUT0_EN, 1\r
+.set SD_RX_DMA__TERMOUT0_SEL, 2\r
+.set SD_RX_DMA__TERMOUT1_EN, 0\r
+.set SD_RX_DMA__TERMOUT1_SEL, 0\r
+\r
+/* SD_TX_DMA */\r
+.set SD_TX_DMA__DRQ_CTL, CYREG_IDMUX_DRQ_CTL0\r
+.set SD_TX_DMA__DRQ_NUMBER, 3\r
+.set SD_TX_DMA__NUMBEROF_TDS, 0\r
+.set SD_TX_DMA__PRIORITY, 2\r
+.set SD_TX_DMA__TERMIN_EN, 0\r
+.set SD_TX_DMA__TERMIN_SEL, 0\r
+.set SD_TX_DMA__TERMOUT0_EN, 1\r
+.set SD_TX_DMA__TERMOUT0_SEL, 3\r
+.set SD_TX_DMA__TERMOUT1_EN, 0\r
+.set SD_TX_DMA__TERMOUT1_SEL, 0\r
+\r
 /* USBFS_USB */\r
 .set USBFS_USB__ARB_CFG, CYREG_USB_ARB_CFG\r
 .set USBFS_USB__ARB_EP1_CFG, CYREG_USB_ARB_EP1_CFG\r
 .set CYDEV_CHIP_FAMILY_PSOC5, 3\r
 .set CYDEV_CHIP_DIE_PSOC5LP, 4\r
 .set CYDEV_CHIP_DIE_EXPECT, CYDEV_CHIP_DIE_PSOC5LP\r
-.set BCLK__BUS_CLK__HZ, 60000000\r
-.set BCLK__BUS_CLK__KHZ, 60000\r
-.set BCLK__BUS_CLK__MHZ, 60\r
+.set BCLK__BUS_CLK__HZ, 50000000\r
+.set BCLK__BUS_CLK__KHZ, 50000\r
+.set BCLK__BUS_CLK__MHZ, 50\r
 .set CYDEV_CHIP_DIE_ACTUAL, CYDEV_CHIP_DIE_EXPECT\r
 .set CYDEV_CHIP_DIE_LEOPARD, 1\r
 .set CYDEV_CHIP_DIE_PANTHER, 3\r
 .set CYDEV_ECC_ENABLE, 0\r
 .set CYDEV_HEAP_SIZE, 0x0400\r
 .set CYDEV_INSTRUCT_CACHE_ENABLED, 1\r
-.set CYDEV_INTR_RISING, 0x00000001\r
+.set CYDEV_INTR_RISING, 0x0000001E\r
 .set CYDEV_PROJ_TYPE, 2\r
 .set CYDEV_PROJ_TYPE_BOOTLOADER, 1\r
 .set CYDEV_PROJ_TYPE_LOADABLE, 2\r
 .set CYDEV_VIO2, 5\r
 .set CYDEV_VIO2_MV, 5000\r
 .set CYDEV_VIO3_MV, 3300\r
-.set DMA_CHANNELS_USED__MASK0, 0x00000000\r
+.set DMA_CHANNELS_USED__MASK0, 0x0000000F\r
 .set CYDEV_BOOTLOADER_ENABLE, 0\r
 .endif\r
old mode 100755 (executable)
new mode 100644 (file)
index 93e3430..b9e9e28
@@ -6,13 +6,33 @@
 /* Debug_Timer_Interrupt */\r
 Debug_Timer_Interrupt__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0\r
 Debug_Timer_Interrupt__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0\r
-Debug_Timer_Interrupt__INTC_MASK EQU 0x01\r
-Debug_Timer_Interrupt__INTC_NUMBER EQU 0\r
+Debug_Timer_Interrupt__INTC_MASK EQU 0x02\r
+Debug_Timer_Interrupt__INTC_NUMBER EQU 1\r
 Debug_Timer_Interrupt__INTC_PRIOR_NUM EQU 7\r
-Debug_Timer_Interrupt__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_0\r
+Debug_Timer_Interrupt__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_1\r
 Debug_Timer_Interrupt__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0\r
 Debug_Timer_Interrupt__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0\r
 \r
+/* SCSI_RX_DMA_COMPLETE */\r
+SCSI_RX_DMA_COMPLETE__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0\r
+SCSI_RX_DMA_COMPLETE__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0\r
+SCSI_RX_DMA_COMPLETE__INTC_MASK EQU 0x01\r
+SCSI_RX_DMA_COMPLETE__INTC_NUMBER EQU 0\r
+SCSI_RX_DMA_COMPLETE__INTC_PRIOR_NUM EQU 7\r
+SCSI_RX_DMA_COMPLETE__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_0\r
+SCSI_RX_DMA_COMPLETE__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0\r
+SCSI_RX_DMA_COMPLETE__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0\r
+\r
+/* SCSI_TX_DMA_COMPLETE */\r
+SCSI_TX_DMA_COMPLETE__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0\r
+SCSI_TX_DMA_COMPLETE__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0\r
+SCSI_TX_DMA_COMPLETE__INTC_MASK EQU 0x04\r
+SCSI_TX_DMA_COMPLETE__INTC_NUMBER EQU 2\r
+SCSI_TX_DMA_COMPLETE__INTC_PRIOR_NUM EQU 7\r
+SCSI_TX_DMA_COMPLETE__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_2\r
+SCSI_TX_DMA_COMPLETE__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0\r
+SCSI_TX_DMA_COMPLETE__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0\r
+\r
 /* Debug_Timer_TimerHW */\r
 Debug_Timer_TimerHW__CAP0 EQU CYREG_TMR0_CAP0\r
 Debug_Timer_TimerHW__CAP1 EQU CYREG_TMR0_CAP1\r
@@ -31,6 +51,26 @@ Debug_Timer_TimerHW__RT0 EQU CYREG_TMR0_RT0
 Debug_Timer_TimerHW__RT1 EQU CYREG_TMR0_RT1\r
 Debug_Timer_TimerHW__SR0 EQU CYREG_TMR0_SR0\r
 \r
+/* SD_RX_DMA_COMPLETE */\r
+SD_RX_DMA_COMPLETE__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0\r
+SD_RX_DMA_COMPLETE__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0\r
+SD_RX_DMA_COMPLETE__INTC_MASK EQU 0x08\r
+SD_RX_DMA_COMPLETE__INTC_NUMBER EQU 3\r
+SD_RX_DMA_COMPLETE__INTC_PRIOR_NUM EQU 7\r
+SD_RX_DMA_COMPLETE__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_3\r
+SD_RX_DMA_COMPLETE__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0\r
+SD_RX_DMA_COMPLETE__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0\r
+\r
+/* SD_TX_DMA_COMPLETE */\r
+SD_TX_DMA_COMPLETE__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0\r
+SD_TX_DMA_COMPLETE__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0\r
+SD_TX_DMA_COMPLETE__INTC_MASK EQU 0x10\r
+SD_TX_DMA_COMPLETE__INTC_NUMBER EQU 4\r
+SD_TX_DMA_COMPLETE__INTC_PRIOR_NUM EQU 7\r
+SD_TX_DMA_COMPLETE__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_4\r
+SD_TX_DMA_COMPLETE__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0\r
+SD_TX_DMA_COMPLETE__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0\r
+\r
 /* USBFS_bus_reset */\r
 USBFS_bus_reset__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0\r
 USBFS_bus_reset__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0\r
@@ -44,41 +84,41 @@ USBFS_bus_reset__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0
 /* SCSI_CTL_PHASE */\r
 SCSI_CTL_PHASE_Sync_ctrl_reg__0__MASK EQU 0x01\r
 SCSI_CTL_PHASE_Sync_ctrl_reg__0__POS EQU 0\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB05_06_ACTL\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB05_06_CTL\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB05_06_CTL\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB05_06_CTL\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB05_06_CTL\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB05_06_MSK\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB05_06_MSK\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB05_06_MSK\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB05_06_MSK\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB02_03_ACTL\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB02_03_CTL\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB02_03_CTL\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB02_03_CTL\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB02_03_CTL\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB02_03_MSK\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB02_03_MSK\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB02_03_MSK\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB02_03_MSK\r
 SCSI_CTL_PHASE_Sync_ctrl_reg__1__MASK EQU 0x02\r
 SCSI_CTL_PHASE_Sync_ctrl_reg__1__POS EQU 1\r
 SCSI_CTL_PHASE_Sync_ctrl_reg__2__MASK EQU 0x04\r
 SCSI_CTL_PHASE_Sync_ctrl_reg__2__POS EQU 2\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB05_ACTL\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB05_CTL\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB05_ST_CTL\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB05_CTL\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB05_ST_CTL\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB02_ACTL\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB02_CTL\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB02_ST_CTL\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB02_CTL\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB02_ST_CTL\r
 SCSI_CTL_PHASE_Sync_ctrl_reg__MASK EQU 0x07\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB05_MSK_ACTL\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB05_MSK\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB05_MSK_ACTL\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB02_MSK_ACTL\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB02_MSK\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB02_MSK_ACTL\r
 \r
 /* SCSI_Out_Bits */\r
 SCSI_Out_Bits_Sync_ctrl_reg__0__MASK EQU 0x01\r
 SCSI_Out_Bits_Sync_ctrl_reg__0__POS EQU 0\r
-SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB00_01_ACTL\r
-SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB00_01_CTL\r
-SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB00_01_CTL\r
-SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB00_01_CTL\r
-SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB00_01_CTL\r
-SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB00_01_MSK\r
-SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB00_01_MSK\r
-SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB00_01_MSK\r
-SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB00_01_MSK\r
+SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB12_13_ACTL\r
+SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB12_13_CTL\r
+SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB12_13_CTL\r
+SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB12_13_CTL\r
+SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB12_13_CTL\r
+SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB12_13_MSK\r
+SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB12_13_MSK\r
+SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB12_13_MSK\r
+SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB12_13_MSK\r
 SCSI_Out_Bits_Sync_ctrl_reg__1__MASK EQU 0x02\r
 SCSI_Out_Bits_Sync_ctrl_reg__1__POS EQU 1\r
 SCSI_Out_Bits_Sync_ctrl_reg__2__MASK EQU 0x04\r
@@ -93,15 +133,15 @@ SCSI_Out_Bits_Sync_ctrl_reg__6__MASK EQU 0x40
 SCSI_Out_Bits_Sync_ctrl_reg__6__POS EQU 6\r
 SCSI_Out_Bits_Sync_ctrl_reg__7__MASK EQU 0x80\r
 SCSI_Out_Bits_Sync_ctrl_reg__7__POS EQU 7\r
-SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB00_ACTL\r
-SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB00_CTL\r
-SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB00_ST_CTL\r
-SCSI_Out_Bits_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB00_CTL\r
-SCSI_Out_Bits_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB00_ST_CTL\r
+SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB12_ACTL\r
+SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB12_CTL\r
+SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB12_ST_CTL\r
+SCSI_Out_Bits_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB12_CTL\r
+SCSI_Out_Bits_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB12_ST_CTL\r
 SCSI_Out_Bits_Sync_ctrl_reg__MASK EQU 0xFF\r
-SCSI_Out_Bits_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB00_MSK_ACTL\r
-SCSI_Out_Bits_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB00_MSK\r
-SCSI_Out_Bits_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB00_MSK_ACTL\r
+SCSI_Out_Bits_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB12_MSK_ACTL\r
+SCSI_Out_Bits_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB12_MSK\r
+SCSI_Out_Bits_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB12_MSK_ACTL\r
 \r
 /* USBFS_arb_int */\r
 USBFS_arb_int__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0\r
@@ -126,24 +166,24 @@ USBFS_sof_int__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0
 /* SCSI_Out_Ctl */\r
 SCSI_Out_Ctl_Sync_ctrl_reg__0__MASK EQU 0x01\r
 SCSI_Out_Ctl_Sync_ctrl_reg__0__POS EQU 0\r
-SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB03_04_ACTL\r
-SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB03_04_CTL\r
-SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB03_04_CTL\r
-SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB03_04_CTL\r
-SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB03_04_CTL\r
-SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB03_04_MSK\r
-SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB03_04_MSK\r
-SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB03_04_MSK\r
-SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB03_04_MSK\r
-SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB03_ACTL\r
-SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB03_CTL\r
-SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB03_ST_CTL\r
-SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB03_CTL\r
-SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB03_ST_CTL\r
+SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B1_UDB07_08_ACTL\r
+SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B1_UDB07_08_CTL\r
+SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B1_UDB07_08_CTL\r
+SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B1_UDB07_08_CTL\r
+SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B1_UDB07_08_CTL\r
+SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B1_UDB07_08_MSK\r
+SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B1_UDB07_08_MSK\r
+SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B1_UDB07_08_MSK\r
+SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B1_UDB07_08_MSK\r
+SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B1_UDB07_ACTL\r
+SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B1_UDB07_CTL\r
+SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B1_UDB07_ST_CTL\r
+SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_REG EQU CYREG_B1_UDB07_CTL\r
+SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B1_UDB07_ST_CTL\r
 SCSI_Out_Ctl_Sync_ctrl_reg__MASK EQU 0x01\r
-SCSI_Out_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB03_MSK_ACTL\r
-SCSI_Out_Ctl_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB03_MSK\r
-SCSI_Out_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB03_MSK_ACTL\r
+SCSI_Out_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B1_UDB07_MSK_ACTL\r
+SCSI_Out_Ctl_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B1_UDB07_MSK\r
+SCSI_Out_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B1_UDB07_MSK_ACTL\r
 \r
 /* SCSI_Out_DBx */\r
 SCSI_Out_DBx__0__AG EQU CYREG_PRT6_AG\r
@@ -616,8 +656,8 @@ SDCard_BSPIM_BitCounter__COUNT_ST_REG EQU CYREG_B1_UDB06_ST_CTL
 SDCard_BSPIM_BitCounter__MASK_CTL_AUX_CTL_REG EQU CYREG_B1_UDB06_MSK_ACTL\r
 SDCard_BSPIM_BitCounter__PERIOD_REG EQU CYREG_B1_UDB06_MSK\r
 SDCard_BSPIM_BitCounter__PER_CTL_AUX_CTL_REG EQU CYREG_B1_UDB06_MSK_ACTL\r
-SDCard_BSPIM_RxStsReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB06_07_ACTL\r
-SDCard_BSPIM_RxStsReg__16BIT_STATUS_REG EQU CYREG_B0_UDB06_07_ST\r
+SDCard_BSPIM_RxStsReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB07_08_ACTL\r
+SDCard_BSPIM_RxStsReg__16BIT_STATUS_REG EQU CYREG_B0_UDB07_08_ST\r
 SDCard_BSPIM_RxStsReg__4__MASK EQU 0x10\r
 SDCard_BSPIM_RxStsReg__4__POS EQU 4\r
 SDCard_BSPIM_RxStsReg__5__MASK EQU 0x20\r
@@ -625,13 +665,13 @@ SDCard_BSPIM_RxStsReg__5__POS EQU 5
 SDCard_BSPIM_RxStsReg__6__MASK EQU 0x40\r
 SDCard_BSPIM_RxStsReg__6__POS EQU 6\r
 SDCard_BSPIM_RxStsReg__MASK EQU 0x70\r
-SDCard_BSPIM_RxStsReg__MASK_REG EQU CYREG_B0_UDB06_MSK\r
-SDCard_BSPIM_RxStsReg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB06_ACTL\r
-SDCard_BSPIM_RxStsReg__STATUS_REG EQU CYREG_B0_UDB06_ST\r
+SDCard_BSPIM_RxStsReg__MASK_REG EQU CYREG_B0_UDB07_MSK\r
+SDCard_BSPIM_RxStsReg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB07_ACTL\r
+SDCard_BSPIM_RxStsReg__STATUS_REG EQU CYREG_B0_UDB07_ST\r
 SDCard_BSPIM_TxStsReg__0__MASK EQU 0x01\r
 SDCard_BSPIM_TxStsReg__0__POS EQU 0\r
-SDCard_BSPIM_TxStsReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB04_05_ACTL\r
-SDCard_BSPIM_TxStsReg__16BIT_STATUS_REG EQU CYREG_B0_UDB04_05_ST\r
+SDCard_BSPIM_TxStsReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B1_UDB07_08_ACTL\r
+SDCard_BSPIM_TxStsReg__16BIT_STATUS_REG EQU CYREG_B1_UDB07_08_ST\r
 SDCard_BSPIM_TxStsReg__1__MASK EQU 0x02\r
 SDCard_BSPIM_TxStsReg__1__POS EQU 1\r
 SDCard_BSPIM_TxStsReg__2__MASK EQU 0x04\r
@@ -641,26 +681,30 @@ SDCard_BSPIM_TxStsReg__3__POS EQU 3
 SDCard_BSPIM_TxStsReg__4__MASK EQU 0x10\r
 SDCard_BSPIM_TxStsReg__4__POS EQU 4\r
 SDCard_BSPIM_TxStsReg__MASK EQU 0x1F\r
-SDCard_BSPIM_TxStsReg__MASK_REG EQU CYREG_B0_UDB04_MSK\r
-SDCard_BSPIM_TxStsReg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB04_ACTL\r
-SDCard_BSPIM_TxStsReg__STATUS_REG EQU CYREG_B0_UDB04_ST\r
-SDCard_BSPIM_sR8_Dp_u0__16BIT_A0_REG EQU CYREG_B0_UDB06_07_A0\r
-SDCard_BSPIM_sR8_Dp_u0__16BIT_A1_REG EQU CYREG_B0_UDB06_07_A1\r
-SDCard_BSPIM_sR8_Dp_u0__16BIT_D0_REG EQU CYREG_B0_UDB06_07_D0\r
-SDCard_BSPIM_sR8_Dp_u0__16BIT_D1_REG EQU CYREG_B0_UDB06_07_D1\r
-SDCard_BSPIM_sR8_Dp_u0__16BIT_DP_AUX_CTL_REG EQU CYREG_B0_UDB06_07_ACTL\r
-SDCard_BSPIM_sR8_Dp_u0__16BIT_F0_REG EQU CYREG_B0_UDB06_07_F0\r
-SDCard_BSPIM_sR8_Dp_u0__16BIT_F1_REG EQU CYREG_B0_UDB06_07_F1\r
-SDCard_BSPIM_sR8_Dp_u0__A0_A1_REG EQU CYREG_B0_UDB06_A0_A1\r
-SDCard_BSPIM_sR8_Dp_u0__A0_REG EQU CYREG_B0_UDB06_A0\r
-SDCard_BSPIM_sR8_Dp_u0__A1_REG EQU CYREG_B0_UDB06_A1\r
-SDCard_BSPIM_sR8_Dp_u0__D0_D1_REG EQU CYREG_B0_UDB06_D0_D1\r
-SDCard_BSPIM_sR8_Dp_u0__D0_REG EQU CYREG_B0_UDB06_D0\r
-SDCard_BSPIM_sR8_Dp_u0__D1_REG EQU CYREG_B0_UDB06_D1\r
-SDCard_BSPIM_sR8_Dp_u0__DP_AUX_CTL_REG EQU CYREG_B0_UDB06_ACTL\r
-SDCard_BSPIM_sR8_Dp_u0__F0_F1_REG EQU CYREG_B0_UDB06_F0_F1\r
-SDCard_BSPIM_sR8_Dp_u0__F0_REG EQU CYREG_B0_UDB06_F0\r
-SDCard_BSPIM_sR8_Dp_u0__F1_REG EQU CYREG_B0_UDB06_F1\r
+SDCard_BSPIM_TxStsReg__MASK_REG EQU CYREG_B1_UDB07_MSK\r
+SDCard_BSPIM_TxStsReg__MASK_ST_AUX_CTL_REG EQU CYREG_B1_UDB07_MSK_ACTL\r
+SDCard_BSPIM_TxStsReg__PER_ST_AUX_CTL_REG EQU CYREG_B1_UDB07_MSK_ACTL\r
+SDCard_BSPIM_TxStsReg__STATUS_AUX_CTL_REG EQU CYREG_B1_UDB07_ACTL\r
+SDCard_BSPIM_TxStsReg__STATUS_CNT_REG EQU CYREG_B1_UDB07_ST_CTL\r
+SDCard_BSPIM_TxStsReg__STATUS_CONTROL_REG EQU CYREG_B1_UDB07_ST_CTL\r
+SDCard_BSPIM_TxStsReg__STATUS_REG EQU CYREG_B1_UDB07_ST\r
+SDCard_BSPIM_sR8_Dp_u0__16BIT_A0_REG EQU CYREG_B0_UDB04_05_A0\r
+SDCard_BSPIM_sR8_Dp_u0__16BIT_A1_REG EQU CYREG_B0_UDB04_05_A1\r
+SDCard_BSPIM_sR8_Dp_u0__16BIT_D0_REG EQU CYREG_B0_UDB04_05_D0\r
+SDCard_BSPIM_sR8_Dp_u0__16BIT_D1_REG EQU CYREG_B0_UDB04_05_D1\r
+SDCard_BSPIM_sR8_Dp_u0__16BIT_DP_AUX_CTL_REG EQU CYREG_B0_UDB04_05_ACTL\r
+SDCard_BSPIM_sR8_Dp_u0__16BIT_F0_REG EQU CYREG_B0_UDB04_05_F0\r
+SDCard_BSPIM_sR8_Dp_u0__16BIT_F1_REG EQU CYREG_B0_UDB04_05_F1\r
+SDCard_BSPIM_sR8_Dp_u0__A0_A1_REG EQU CYREG_B0_UDB04_A0_A1\r
+SDCard_BSPIM_sR8_Dp_u0__A0_REG EQU CYREG_B0_UDB04_A0\r
+SDCard_BSPIM_sR8_Dp_u0__A1_REG EQU CYREG_B0_UDB04_A1\r
+SDCard_BSPIM_sR8_Dp_u0__D0_D1_REG EQU CYREG_B0_UDB04_D0_D1\r
+SDCard_BSPIM_sR8_Dp_u0__D0_REG EQU CYREG_B0_UDB04_D0\r
+SDCard_BSPIM_sR8_Dp_u0__D1_REG EQU CYREG_B0_UDB04_D1\r
+SDCard_BSPIM_sR8_Dp_u0__DP_AUX_CTL_REG EQU CYREG_B0_UDB04_ACTL\r
+SDCard_BSPIM_sR8_Dp_u0__F0_F1_REG EQU CYREG_B0_UDB04_F0_F1\r
+SDCard_BSPIM_sR8_Dp_u0__F0_REG EQU CYREG_B0_UDB04_F0\r
+SDCard_BSPIM_sR8_Dp_u0__F1_REG EQU CYREG_B0_UDB04_F1\r
 \r
 /* USBFS_dp_int */\r
 USBFS_dp_int__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0\r
@@ -1104,6 +1148,30 @@ SCSI_In_DBx__DB7__PS EQU CYREG_PRT2_PS
 SCSI_In_DBx__DB7__SHIFT EQU 1\r
 SCSI_In_DBx__DB7__SLW EQU CYREG_PRT2_SLW\r
 \r
+/* SCSI_RX_DMA */\r
+SCSI_RX_DMA__DRQ_CTL EQU CYREG_IDMUX_DRQ_CTL0\r
+SCSI_RX_DMA__DRQ_NUMBER EQU 0\r
+SCSI_RX_DMA__NUMBEROF_TDS EQU 0\r
+SCSI_RX_DMA__PRIORITY EQU 2\r
+SCSI_RX_DMA__TERMIN_EN EQU 0\r
+SCSI_RX_DMA__TERMIN_SEL EQU 0\r
+SCSI_RX_DMA__TERMOUT0_EN EQU 1\r
+SCSI_RX_DMA__TERMOUT0_SEL EQU 0\r
+SCSI_RX_DMA__TERMOUT1_EN EQU 0\r
+SCSI_RX_DMA__TERMOUT1_SEL EQU 0\r
+\r
+/* SCSI_TX_DMA */\r
+SCSI_TX_DMA__DRQ_CTL EQU CYREG_IDMUX_DRQ_CTL0\r
+SCSI_TX_DMA__DRQ_NUMBER EQU 1\r
+SCSI_TX_DMA__NUMBEROF_TDS EQU 0\r
+SCSI_TX_DMA__PRIORITY EQU 2\r
+SCSI_TX_DMA__TERMIN_EN EQU 0\r
+SCSI_TX_DMA__TERMIN_SEL EQU 0\r
+SCSI_TX_DMA__TERMOUT0_EN EQU 1\r
+SCSI_TX_DMA__TERMOUT0_SEL EQU 1\r
+SCSI_TX_DMA__TERMOUT1_EN EQU 0\r
+SCSI_TX_DMA__TERMOUT1_SEL EQU 0\r
+\r
 /* SD_Data_Clk */\r
 SD_Data_Clk__CFG0 EQU CYREG_CLKDIST_DCFG0_CFG0\r
 SD_Data_Clk__CFG1 EQU CYREG_CLKDIST_DCFG0_CFG1\r
@@ -1140,85 +1208,68 @@ timer_clock__PM_STBY_MSK EQU 0x04
 /* scsiTarget */\r
 scsiTarget_StatusReg__0__MASK EQU 0x01\r
 scsiTarget_StatusReg__0__POS EQU 0\r
-scsiTarget_StatusReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB13_14_ACTL\r
-scsiTarget_StatusReg__16BIT_STATUS_REG EQU CYREG_B0_UDB13_14_ST\r
+scsiTarget_StatusReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB04_05_ACTL\r
+scsiTarget_StatusReg__16BIT_STATUS_REG EQU CYREG_B0_UDB04_05_ST\r
 scsiTarget_StatusReg__1__MASK EQU 0x02\r
 scsiTarget_StatusReg__1__POS EQU 1\r
 scsiTarget_StatusReg__2__MASK EQU 0x04\r
 scsiTarget_StatusReg__2__POS EQU 2\r
 scsiTarget_StatusReg__3__MASK EQU 0x08\r
 scsiTarget_StatusReg__3__POS EQU 3\r
-scsiTarget_StatusReg__MASK EQU 0x0F\r
-scsiTarget_StatusReg__MASK_REG EQU CYREG_B0_UDB13_MSK\r
-scsiTarget_StatusReg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB13_ACTL\r
-scsiTarget_StatusReg__STATUS_REG EQU CYREG_B0_UDB13_ST\r
-scsiTarget_datapath_PI__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB12_13_ACTL\r
-scsiTarget_datapath_PI__16BIT_STATUS_REG EQU CYREG_B0_UDB12_13_ST\r
-scsiTarget_datapath_PI__MASK_REG EQU CYREG_B0_UDB12_MSK\r
-scsiTarget_datapath_PI__MASK_ST_AUX_CTL_REG EQU CYREG_B0_UDB12_MSK_ACTL\r
-scsiTarget_datapath_PI__PER_ST_AUX_CTL_REG EQU CYREG_B0_UDB12_MSK_ACTL\r
-scsiTarget_datapath_PI__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB12_ACTL\r
-scsiTarget_datapath_PI__STATUS_CNT_REG EQU CYREG_B0_UDB12_ST_CTL\r
-scsiTarget_datapath_PI__STATUS_CONTROL_REG EQU CYREG_B0_UDB12_ST_CTL\r
-scsiTarget_datapath_PI__STATUS_REG EQU CYREG_B0_UDB12_ST\r
-scsiTarget_datapath_PO__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB12_13_ACTL\r
-scsiTarget_datapath_PO__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB12_13_CTL\r
-scsiTarget_datapath_PO__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB12_13_CTL\r
-scsiTarget_datapath_PO__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB12_13_CTL\r
-scsiTarget_datapath_PO__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB12_13_CTL\r
-scsiTarget_datapath_PO__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB12_13_MSK\r
-scsiTarget_datapath_PO__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB12_13_MSK\r
-scsiTarget_datapath_PO__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB12_13_MSK\r
-scsiTarget_datapath_PO__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB12_13_MSK\r
-scsiTarget_datapath_PO__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB12_ACTL\r
-scsiTarget_datapath_PO__CONTROL_REG EQU CYREG_B0_UDB12_CTL\r
-scsiTarget_datapath_PO__CONTROL_ST_REG EQU CYREG_B0_UDB12_ST_CTL\r
-scsiTarget_datapath_PO__COUNT_REG EQU CYREG_B0_UDB12_CTL\r
-scsiTarget_datapath_PO__COUNT_ST_REG EQU CYREG_B0_UDB12_ST_CTL\r
-scsiTarget_datapath_PO__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB12_MSK_ACTL\r
-scsiTarget_datapath_PO__PERIOD_REG EQU CYREG_B0_UDB12_MSK\r
-scsiTarget_datapath_PO__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB12_MSK_ACTL\r
-scsiTarget_datapath__16BIT_A0_REG EQU CYREG_B0_UDB12_13_A0\r
-scsiTarget_datapath__16BIT_A1_REG EQU CYREG_B0_UDB12_13_A1\r
-scsiTarget_datapath__16BIT_D0_REG EQU CYREG_B0_UDB12_13_D0\r
-scsiTarget_datapath__16BIT_D1_REG EQU CYREG_B0_UDB12_13_D1\r
-scsiTarget_datapath__16BIT_DP_AUX_CTL_REG EQU CYREG_B0_UDB12_13_ACTL\r
-scsiTarget_datapath__16BIT_F0_REG EQU CYREG_B0_UDB12_13_F0\r
-scsiTarget_datapath__16BIT_F1_REG EQU CYREG_B0_UDB12_13_F1\r
-scsiTarget_datapath__A0_A1_REG EQU CYREG_B0_UDB12_A0_A1\r
-scsiTarget_datapath__A0_REG EQU CYREG_B0_UDB12_A0\r
-scsiTarget_datapath__A1_REG EQU CYREG_B0_UDB12_A1\r
-scsiTarget_datapath__D0_D1_REG EQU CYREG_B0_UDB12_D0_D1\r
-scsiTarget_datapath__D0_REG EQU CYREG_B0_UDB12_D0\r
-scsiTarget_datapath__D1_REG EQU CYREG_B0_UDB12_D1\r
-scsiTarget_datapath__DP_AUX_CTL_REG EQU CYREG_B0_UDB12_ACTL\r
-scsiTarget_datapath__F0_F1_REG EQU CYREG_B0_UDB12_F0_F1\r
-scsiTarget_datapath__F0_REG EQU CYREG_B0_UDB12_F0\r
-scsiTarget_datapath__F1_REG EQU CYREG_B0_UDB12_F1\r
-scsiTarget_datapath__MSK_DP_AUX_CTL_REG EQU CYREG_B0_UDB12_MSK_ACTL\r
-scsiTarget_datapath__PER_DP_AUX_CTL_REG EQU CYREG_B0_UDB12_MSK_ACTL\r
+scsiTarget_StatusReg__4__MASK EQU 0x10\r
+scsiTarget_StatusReg__4__POS EQU 4\r
+scsiTarget_StatusReg__MASK EQU 0x1F\r
+scsiTarget_StatusReg__MASK_REG EQU CYREG_B0_UDB04_MSK\r
+scsiTarget_StatusReg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB04_ACTL\r
+scsiTarget_StatusReg__STATUS_REG EQU CYREG_B0_UDB04_ST\r
+scsiTarget_datapath_PI__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB03_04_ACTL\r
+scsiTarget_datapath_PI__16BIT_STATUS_REG EQU CYREG_B0_UDB03_04_ST\r
+scsiTarget_datapath_PI__MASK_REG EQU CYREG_B0_UDB03_MSK\r
+scsiTarget_datapath_PI__MASK_ST_AUX_CTL_REG EQU CYREG_B0_UDB03_MSK_ACTL\r
+scsiTarget_datapath_PI__PER_ST_AUX_CTL_REG EQU CYREG_B0_UDB03_MSK_ACTL\r
+scsiTarget_datapath_PI__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB03_ACTL\r
+scsiTarget_datapath_PI__STATUS_CNT_REG EQU CYREG_B0_UDB03_ST_CTL\r
+scsiTarget_datapath_PI__STATUS_CONTROL_REG EQU CYREG_B0_UDB03_ST_CTL\r
+scsiTarget_datapath_PI__STATUS_REG EQU CYREG_B0_UDB03_ST\r
+scsiTarget_datapath_PO__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB03_04_ACTL\r
+scsiTarget_datapath_PO__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB03_04_CTL\r
+scsiTarget_datapath_PO__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB03_04_CTL\r
+scsiTarget_datapath_PO__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB03_04_CTL\r
+scsiTarget_datapath_PO__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB03_04_CTL\r
+scsiTarget_datapath_PO__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB03_04_MSK\r
+scsiTarget_datapath_PO__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB03_04_MSK\r
+scsiTarget_datapath_PO__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB03_04_MSK\r
+scsiTarget_datapath_PO__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB03_04_MSK\r
+scsiTarget_datapath_PO__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB03_ACTL\r
+scsiTarget_datapath_PO__CONTROL_REG EQU CYREG_B0_UDB03_CTL\r
+scsiTarget_datapath_PO__CONTROL_ST_REG EQU CYREG_B0_UDB03_ST_CTL\r
+scsiTarget_datapath_PO__COUNT_REG EQU CYREG_B0_UDB03_CTL\r
+scsiTarget_datapath_PO__COUNT_ST_REG EQU CYREG_B0_UDB03_ST_CTL\r
+scsiTarget_datapath_PO__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB03_MSK_ACTL\r
+scsiTarget_datapath_PO__PERIOD_REG EQU CYREG_B0_UDB03_MSK\r
+scsiTarget_datapath_PO__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB03_MSK_ACTL\r
+scsiTarget_datapath__16BIT_A0_REG EQU CYREG_B0_UDB03_04_A0\r
+scsiTarget_datapath__16BIT_A1_REG EQU CYREG_B0_UDB03_04_A1\r
+scsiTarget_datapath__16BIT_D0_REG EQU CYREG_B0_UDB03_04_D0\r
+scsiTarget_datapath__16BIT_D1_REG EQU CYREG_B0_UDB03_04_D1\r
+scsiTarget_datapath__16BIT_DP_AUX_CTL_REG EQU CYREG_B0_UDB03_04_ACTL\r
+scsiTarget_datapath__16BIT_F0_REG EQU CYREG_B0_UDB03_04_F0\r
+scsiTarget_datapath__16BIT_F1_REG EQU CYREG_B0_UDB03_04_F1\r
+scsiTarget_datapath__A0_A1_REG EQU CYREG_B0_UDB03_A0_A1\r
+scsiTarget_datapath__A0_REG EQU CYREG_B0_UDB03_A0\r
+scsiTarget_datapath__A1_REG EQU CYREG_B0_UDB03_A1\r
+scsiTarget_datapath__D0_D1_REG EQU CYREG_B0_UDB03_D0_D1\r
+scsiTarget_datapath__D0_REG EQU CYREG_B0_UDB03_D0\r
+scsiTarget_datapath__D1_REG EQU CYREG_B0_UDB03_D1\r
+scsiTarget_datapath__DP_AUX_CTL_REG EQU CYREG_B0_UDB03_ACTL\r
+scsiTarget_datapath__F0_F1_REG EQU CYREG_B0_UDB03_F0_F1\r
+scsiTarget_datapath__F0_REG EQU CYREG_B0_UDB03_F0\r
+scsiTarget_datapath__F1_REG EQU CYREG_B0_UDB03_F1\r
+scsiTarget_datapath__MSK_DP_AUX_CTL_REG EQU CYREG_B0_UDB03_MSK_ACTL\r
+scsiTarget_datapath__PER_DP_AUX_CTL_REG EQU CYREG_B0_UDB03_MSK_ACTL\r
 \r
 /* SD_Clk_Ctl */\r
-SD_Clk_Ctl_Sync_ctrl_reg__0__MASK EQU 0x01\r
-SD_Clk_Ctl_Sync_ctrl_reg__0__POS EQU 0\r
-SD_Clk_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB02_03_ACTL\r
-SD_Clk_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB02_03_CTL\r
-SD_Clk_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB02_03_CTL\r
-SD_Clk_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB02_03_CTL\r
-SD_Clk_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB02_03_CTL\r
-SD_Clk_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB02_03_MSK\r
-SD_Clk_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB02_03_MSK\r
-SD_Clk_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB02_03_MSK\r
-SD_Clk_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB02_03_MSK\r
-SD_Clk_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB02_ACTL\r
-SD_Clk_Ctl_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB02_CTL\r
-SD_Clk_Ctl_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB02_ST_CTL\r
-SD_Clk_Ctl_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB02_CTL\r
-SD_Clk_Ctl_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB02_ST_CTL\r
-SD_Clk_Ctl_Sync_ctrl_reg__MASK EQU 0x01\r
-SD_Clk_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB02_MSK_ACTL\r
-SD_Clk_Ctl_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB02_MSK\r
-SD_Clk_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB02_MSK_ACTL\r
+SD_Clk_Ctl_Sync_ctrl_reg__REMOVED EQU 1\r
 \r
 /* USBFS_ep_0 */\r
 USBFS_ep_0__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0\r
@@ -1233,43 +1284,67 @@ USBFS_ep_0__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0
 /* USBFS_ep_1 */\r
 USBFS_ep_1__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0\r
 USBFS_ep_1__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0\r
-USBFS_ep_1__INTC_MASK EQU 0x02\r
-USBFS_ep_1__INTC_NUMBER EQU 1\r
+USBFS_ep_1__INTC_MASK EQU 0x20\r
+USBFS_ep_1__INTC_NUMBER EQU 5\r
 USBFS_ep_1__INTC_PRIOR_NUM EQU 7\r
-USBFS_ep_1__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_1\r
+USBFS_ep_1__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_5\r
 USBFS_ep_1__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0\r
 USBFS_ep_1__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0\r
 \r
 /* USBFS_ep_2 */\r
 USBFS_ep_2__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0\r
 USBFS_ep_2__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0\r
-USBFS_ep_2__INTC_MASK EQU 0x04\r
-USBFS_ep_2__INTC_NUMBER EQU 2\r
+USBFS_ep_2__INTC_MASK EQU 0x40\r
+USBFS_ep_2__INTC_NUMBER EQU 6\r
 USBFS_ep_2__INTC_PRIOR_NUM EQU 7\r
-USBFS_ep_2__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_2\r
+USBFS_ep_2__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_6\r
 USBFS_ep_2__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0\r
 USBFS_ep_2__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0\r
 \r
 /* USBFS_ep_3 */\r
 USBFS_ep_3__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0\r
 USBFS_ep_3__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0\r
-USBFS_ep_3__INTC_MASK EQU 0x08\r
-USBFS_ep_3__INTC_NUMBER EQU 3\r
+USBFS_ep_3__INTC_MASK EQU 0x80\r
+USBFS_ep_3__INTC_NUMBER EQU 7\r
 USBFS_ep_3__INTC_PRIOR_NUM EQU 7\r
-USBFS_ep_3__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_3\r
+USBFS_ep_3__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_7\r
 USBFS_ep_3__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0\r
 USBFS_ep_3__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0\r
 \r
 /* USBFS_ep_4 */\r
 USBFS_ep_4__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0\r
 USBFS_ep_4__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0\r
-USBFS_ep_4__INTC_MASK EQU 0x10\r
-USBFS_ep_4__INTC_NUMBER EQU 4\r
+USBFS_ep_4__INTC_MASK EQU 0x100\r
+USBFS_ep_4__INTC_NUMBER EQU 8\r
 USBFS_ep_4__INTC_PRIOR_NUM EQU 7\r
-USBFS_ep_4__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_4\r
+USBFS_ep_4__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_8\r
 USBFS_ep_4__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0\r
 USBFS_ep_4__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0\r
 \r
+/* SD_RX_DMA */\r
+SD_RX_DMA__DRQ_CTL EQU CYREG_IDMUX_DRQ_CTL0\r
+SD_RX_DMA__DRQ_NUMBER EQU 2\r
+SD_RX_DMA__NUMBEROF_TDS EQU 0\r
+SD_RX_DMA__PRIORITY EQU 1\r
+SD_RX_DMA__TERMIN_EN EQU 0\r
+SD_RX_DMA__TERMIN_SEL EQU 0\r
+SD_RX_DMA__TERMOUT0_EN EQU 1\r
+SD_RX_DMA__TERMOUT0_SEL EQU 2\r
+SD_RX_DMA__TERMOUT1_EN EQU 0\r
+SD_RX_DMA__TERMOUT1_SEL EQU 0\r
+\r
+/* SD_TX_DMA */\r
+SD_TX_DMA__DRQ_CTL EQU CYREG_IDMUX_DRQ_CTL0\r
+SD_TX_DMA__DRQ_NUMBER EQU 3\r
+SD_TX_DMA__NUMBEROF_TDS EQU 0\r
+SD_TX_DMA__PRIORITY EQU 2\r
+SD_TX_DMA__TERMIN_EN EQU 0\r
+SD_TX_DMA__TERMIN_SEL EQU 0\r
+SD_TX_DMA__TERMOUT0_EN EQU 1\r
+SD_TX_DMA__TERMOUT0_SEL EQU 3\r
+SD_TX_DMA__TERMOUT1_EN EQU 0\r
+SD_TX_DMA__TERMOUT1_SEL EQU 0\r
+\r
 /* USBFS_USB */\r
 USBFS_USB__ARB_CFG EQU CYREG_USB_ARB_CFG\r
 USBFS_USB__ARB_EP1_CFG EQU CYREG_USB_ARB_EP1_CFG\r
@@ -2789,9 +2864,9 @@ CYDEV_CHIP_MEMBER_5B EQU 4
 CYDEV_CHIP_FAMILY_PSOC5 EQU 3\r
 CYDEV_CHIP_DIE_PSOC5LP EQU 4\r
 CYDEV_CHIP_DIE_EXPECT EQU CYDEV_CHIP_DIE_PSOC5LP\r
-BCLK__BUS_CLK__HZ EQU 60000000\r
-BCLK__BUS_CLK__KHZ EQU 60000\r
-BCLK__BUS_CLK__MHZ EQU 60\r
+BCLK__BUS_CLK__HZ EQU 50000000\r
+BCLK__BUS_CLK__KHZ EQU 50000\r
+BCLK__BUS_CLK__MHZ EQU 50\r
 CYDEV_CHIP_DIE_ACTUAL EQU CYDEV_CHIP_DIE_EXPECT\r
 CYDEV_CHIP_DIE_LEOPARD EQU 1\r
 CYDEV_CHIP_DIE_PANTHER EQU 3\r
@@ -2852,7 +2927,7 @@ CYDEV_DMA_CHANNELS_AVAILABLE EQU 24
 CYDEV_ECC_ENABLE EQU 0\r
 CYDEV_HEAP_SIZE EQU 0x0400\r
 CYDEV_INSTRUCT_CACHE_ENABLED EQU 1\r
-CYDEV_INTR_RISING EQU 0x00000001\r
+CYDEV_INTR_RISING EQU 0x0000001E\r
 CYDEV_PROJ_TYPE EQU 2\r
 CYDEV_PROJ_TYPE_BOOTLOADER EQU 1\r
 CYDEV_PROJ_TYPE_LOADABLE EQU 2\r
@@ -2876,7 +2951,7 @@ CYDEV_VIO1_MV EQU 5000
 CYDEV_VIO2 EQU 5\r
 CYDEV_VIO2_MV EQU 5000\r
 CYDEV_VIO3_MV EQU 3300\r
-DMA_CHANNELS_USED__MASK0 EQU 0x00000000\r
+DMA_CHANNELS_USED__MASK0 EQU 0x0000000F\r
 CYDEV_BOOTLOADER_ENABLE EQU 0\r
 \r
 #endif /* INCLUDED_CYFITTERIAR_INC */\r
old mode 100755 (executable)
new mode 100644 (file)
index 3768761..79c7a64
@@ -6,13 +6,33 @@ INCLUDED_CYFITTERRV_INC EQU 1
 ; Debug_Timer_Interrupt\r
 Debug_Timer_Interrupt__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0\r
 Debug_Timer_Interrupt__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0\r
-Debug_Timer_Interrupt__INTC_MASK EQU 0x01\r
-Debug_Timer_Interrupt__INTC_NUMBER EQU 0\r
+Debug_Timer_Interrupt__INTC_MASK EQU 0x02\r
+Debug_Timer_Interrupt__INTC_NUMBER EQU 1\r
 Debug_Timer_Interrupt__INTC_PRIOR_NUM EQU 7\r
-Debug_Timer_Interrupt__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_0\r
+Debug_Timer_Interrupt__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_1\r
 Debug_Timer_Interrupt__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0\r
 Debug_Timer_Interrupt__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0\r
 \r
+; SCSI_RX_DMA_COMPLETE\r
+SCSI_RX_DMA_COMPLETE__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0\r
+SCSI_RX_DMA_COMPLETE__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0\r
+SCSI_RX_DMA_COMPLETE__INTC_MASK EQU 0x01\r
+SCSI_RX_DMA_COMPLETE__INTC_NUMBER EQU 0\r
+SCSI_RX_DMA_COMPLETE__INTC_PRIOR_NUM EQU 7\r
+SCSI_RX_DMA_COMPLETE__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_0\r
+SCSI_RX_DMA_COMPLETE__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0\r
+SCSI_RX_DMA_COMPLETE__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0\r
+\r
+; SCSI_TX_DMA_COMPLETE\r
+SCSI_TX_DMA_COMPLETE__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0\r
+SCSI_TX_DMA_COMPLETE__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0\r
+SCSI_TX_DMA_COMPLETE__INTC_MASK EQU 0x04\r
+SCSI_TX_DMA_COMPLETE__INTC_NUMBER EQU 2\r
+SCSI_TX_DMA_COMPLETE__INTC_PRIOR_NUM EQU 7\r
+SCSI_TX_DMA_COMPLETE__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_2\r
+SCSI_TX_DMA_COMPLETE__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0\r
+SCSI_TX_DMA_COMPLETE__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0\r
+\r
 ; Debug_Timer_TimerHW\r
 Debug_Timer_TimerHW__CAP0 EQU CYREG_TMR0_CAP0\r
 Debug_Timer_TimerHW__CAP1 EQU CYREG_TMR0_CAP1\r
@@ -31,6 +51,26 @@ Debug_Timer_TimerHW__RT0 EQU CYREG_TMR0_RT0
 Debug_Timer_TimerHW__RT1 EQU CYREG_TMR0_RT1\r
 Debug_Timer_TimerHW__SR0 EQU CYREG_TMR0_SR0\r
 \r
+; SD_RX_DMA_COMPLETE\r
+SD_RX_DMA_COMPLETE__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0\r
+SD_RX_DMA_COMPLETE__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0\r
+SD_RX_DMA_COMPLETE__INTC_MASK EQU 0x08\r
+SD_RX_DMA_COMPLETE__INTC_NUMBER EQU 3\r
+SD_RX_DMA_COMPLETE__INTC_PRIOR_NUM EQU 7\r
+SD_RX_DMA_COMPLETE__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_3\r
+SD_RX_DMA_COMPLETE__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0\r
+SD_RX_DMA_COMPLETE__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0\r
+\r
+; SD_TX_DMA_COMPLETE\r
+SD_TX_DMA_COMPLETE__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0\r
+SD_TX_DMA_COMPLETE__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0\r
+SD_TX_DMA_COMPLETE__INTC_MASK EQU 0x10\r
+SD_TX_DMA_COMPLETE__INTC_NUMBER EQU 4\r
+SD_TX_DMA_COMPLETE__INTC_PRIOR_NUM EQU 7\r
+SD_TX_DMA_COMPLETE__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_4\r
+SD_TX_DMA_COMPLETE__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0\r
+SD_TX_DMA_COMPLETE__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0\r
+\r
 ; USBFS_bus_reset\r
 USBFS_bus_reset__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0\r
 USBFS_bus_reset__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0\r
@@ -44,41 +84,41 @@ USBFS_bus_reset__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0
 ; SCSI_CTL_PHASE\r
 SCSI_CTL_PHASE_Sync_ctrl_reg__0__MASK EQU 0x01\r
 SCSI_CTL_PHASE_Sync_ctrl_reg__0__POS EQU 0\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB05_06_ACTL\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB05_06_CTL\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB05_06_CTL\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB05_06_CTL\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB05_06_CTL\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB05_06_MSK\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB05_06_MSK\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB05_06_MSK\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB05_06_MSK\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB02_03_ACTL\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB02_03_CTL\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB02_03_CTL\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB02_03_CTL\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB02_03_CTL\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB02_03_MSK\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB02_03_MSK\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB02_03_MSK\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB02_03_MSK\r
 SCSI_CTL_PHASE_Sync_ctrl_reg__1__MASK EQU 0x02\r
 SCSI_CTL_PHASE_Sync_ctrl_reg__1__POS EQU 1\r
 SCSI_CTL_PHASE_Sync_ctrl_reg__2__MASK EQU 0x04\r
 SCSI_CTL_PHASE_Sync_ctrl_reg__2__POS EQU 2\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB05_ACTL\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB05_CTL\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB05_ST_CTL\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB05_CTL\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB05_ST_CTL\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB02_ACTL\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB02_CTL\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB02_ST_CTL\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB02_CTL\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB02_ST_CTL\r
 SCSI_CTL_PHASE_Sync_ctrl_reg__MASK EQU 0x07\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB05_MSK_ACTL\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB05_MSK\r
-SCSI_CTL_PHASE_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB05_MSK_ACTL\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB02_MSK_ACTL\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB02_MSK\r
+SCSI_CTL_PHASE_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB02_MSK_ACTL\r
 \r
 ; SCSI_Out_Bits\r
 SCSI_Out_Bits_Sync_ctrl_reg__0__MASK EQU 0x01\r
 SCSI_Out_Bits_Sync_ctrl_reg__0__POS EQU 0\r
-SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB00_01_ACTL\r
-SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB00_01_CTL\r
-SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB00_01_CTL\r
-SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB00_01_CTL\r
-SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB00_01_CTL\r
-SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB00_01_MSK\r
-SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB00_01_MSK\r
-SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB00_01_MSK\r
-SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB00_01_MSK\r
+SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB12_13_ACTL\r
+SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB12_13_CTL\r
+SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB12_13_CTL\r
+SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB12_13_CTL\r
+SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB12_13_CTL\r
+SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB12_13_MSK\r
+SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB12_13_MSK\r
+SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB12_13_MSK\r
+SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB12_13_MSK\r
 SCSI_Out_Bits_Sync_ctrl_reg__1__MASK EQU 0x02\r
 SCSI_Out_Bits_Sync_ctrl_reg__1__POS EQU 1\r
 SCSI_Out_Bits_Sync_ctrl_reg__2__MASK EQU 0x04\r
@@ -93,15 +133,15 @@ SCSI_Out_Bits_Sync_ctrl_reg__6__MASK EQU 0x40
 SCSI_Out_Bits_Sync_ctrl_reg__6__POS EQU 6\r
 SCSI_Out_Bits_Sync_ctrl_reg__7__MASK EQU 0x80\r
 SCSI_Out_Bits_Sync_ctrl_reg__7__POS EQU 7\r
-SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB00_ACTL\r
-SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB00_CTL\r
-SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB00_ST_CTL\r
-SCSI_Out_Bits_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB00_CTL\r
-SCSI_Out_Bits_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB00_ST_CTL\r
+SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB12_ACTL\r
+SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB12_CTL\r
+SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB12_ST_CTL\r
+SCSI_Out_Bits_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB12_CTL\r
+SCSI_Out_Bits_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB12_ST_CTL\r
 SCSI_Out_Bits_Sync_ctrl_reg__MASK EQU 0xFF\r
-SCSI_Out_Bits_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB00_MSK_ACTL\r
-SCSI_Out_Bits_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB00_MSK\r
-SCSI_Out_Bits_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB00_MSK_ACTL\r
+SCSI_Out_Bits_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB12_MSK_ACTL\r
+SCSI_Out_Bits_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB12_MSK\r
+SCSI_Out_Bits_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB12_MSK_ACTL\r
 \r
 ; USBFS_arb_int\r
 USBFS_arb_int__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0\r
@@ -126,24 +166,24 @@ USBFS_sof_int__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0
 ; SCSI_Out_Ctl\r
 SCSI_Out_Ctl_Sync_ctrl_reg__0__MASK EQU 0x01\r
 SCSI_Out_Ctl_Sync_ctrl_reg__0__POS EQU 0\r
-SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB03_04_ACTL\r
-SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB03_04_CTL\r
-SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB03_04_CTL\r
-SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB03_04_CTL\r
-SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB03_04_CTL\r
-SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB03_04_MSK\r
-SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB03_04_MSK\r
-SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB03_04_MSK\r
-SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB03_04_MSK\r
-SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB03_ACTL\r
-SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB03_CTL\r
-SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB03_ST_CTL\r
-SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB03_CTL\r
-SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB03_ST_CTL\r
+SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B1_UDB07_08_ACTL\r
+SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B1_UDB07_08_CTL\r
+SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B1_UDB07_08_CTL\r
+SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B1_UDB07_08_CTL\r
+SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B1_UDB07_08_CTL\r
+SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B1_UDB07_08_MSK\r
+SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B1_UDB07_08_MSK\r
+SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B1_UDB07_08_MSK\r
+SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B1_UDB07_08_MSK\r
+SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B1_UDB07_ACTL\r
+SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B1_UDB07_CTL\r
+SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B1_UDB07_ST_CTL\r
+SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_REG EQU CYREG_B1_UDB07_CTL\r
+SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B1_UDB07_ST_CTL\r
 SCSI_Out_Ctl_Sync_ctrl_reg__MASK EQU 0x01\r
-SCSI_Out_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB03_MSK_ACTL\r
-SCSI_Out_Ctl_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB03_MSK\r
-SCSI_Out_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB03_MSK_ACTL\r
+SCSI_Out_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B1_UDB07_MSK_ACTL\r
+SCSI_Out_Ctl_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B1_UDB07_MSK\r
+SCSI_Out_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B1_UDB07_MSK_ACTL\r
 \r
 ; SCSI_Out_DBx\r
 SCSI_Out_DBx__0__AG EQU CYREG_PRT6_AG\r
@@ -616,8 +656,8 @@ SDCard_BSPIM_BitCounter__COUNT_ST_REG EQU CYREG_B1_UDB06_ST_CTL
 SDCard_BSPIM_BitCounter__MASK_CTL_AUX_CTL_REG EQU CYREG_B1_UDB06_MSK_ACTL\r
 SDCard_BSPIM_BitCounter__PERIOD_REG EQU CYREG_B1_UDB06_MSK\r
 SDCard_BSPIM_BitCounter__PER_CTL_AUX_CTL_REG EQU CYREG_B1_UDB06_MSK_ACTL\r
-SDCard_BSPIM_RxStsReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB06_07_ACTL\r
-SDCard_BSPIM_RxStsReg__16BIT_STATUS_REG EQU CYREG_B0_UDB06_07_ST\r
+SDCard_BSPIM_RxStsReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB07_08_ACTL\r
+SDCard_BSPIM_RxStsReg__16BIT_STATUS_REG EQU CYREG_B0_UDB07_08_ST\r
 SDCard_BSPIM_RxStsReg__4__MASK EQU 0x10\r
 SDCard_BSPIM_RxStsReg__4__POS EQU 4\r
 SDCard_BSPIM_RxStsReg__5__MASK EQU 0x20\r
@@ -625,13 +665,13 @@ SDCard_BSPIM_RxStsReg__5__POS EQU 5
 SDCard_BSPIM_RxStsReg__6__MASK EQU 0x40\r
 SDCard_BSPIM_RxStsReg__6__POS EQU 6\r
 SDCard_BSPIM_RxStsReg__MASK EQU 0x70\r
-SDCard_BSPIM_RxStsReg__MASK_REG EQU CYREG_B0_UDB06_MSK\r
-SDCard_BSPIM_RxStsReg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB06_ACTL\r
-SDCard_BSPIM_RxStsReg__STATUS_REG EQU CYREG_B0_UDB06_ST\r
+SDCard_BSPIM_RxStsReg__MASK_REG EQU CYREG_B0_UDB07_MSK\r
+SDCard_BSPIM_RxStsReg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB07_ACTL\r
+SDCard_BSPIM_RxStsReg__STATUS_REG EQU CYREG_B0_UDB07_ST\r
 SDCard_BSPIM_TxStsReg__0__MASK EQU 0x01\r
 SDCard_BSPIM_TxStsReg__0__POS EQU 0\r
-SDCard_BSPIM_TxStsReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB04_05_ACTL\r
-SDCard_BSPIM_TxStsReg__16BIT_STATUS_REG EQU CYREG_B0_UDB04_05_ST\r
+SDCard_BSPIM_TxStsReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B1_UDB07_08_ACTL\r
+SDCard_BSPIM_TxStsReg__16BIT_STATUS_REG EQU CYREG_B1_UDB07_08_ST\r
 SDCard_BSPIM_TxStsReg__1__MASK EQU 0x02\r
 SDCard_BSPIM_TxStsReg__1__POS EQU 1\r
 SDCard_BSPIM_TxStsReg__2__MASK EQU 0x04\r
@@ -641,26 +681,30 @@ SDCard_BSPIM_TxStsReg__3__POS EQU 3
 SDCard_BSPIM_TxStsReg__4__MASK EQU 0x10\r
 SDCard_BSPIM_TxStsReg__4__POS EQU 4\r
 SDCard_BSPIM_TxStsReg__MASK EQU 0x1F\r
-SDCard_BSPIM_TxStsReg__MASK_REG EQU CYREG_B0_UDB04_MSK\r
-SDCard_BSPIM_TxStsReg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB04_ACTL\r
-SDCard_BSPIM_TxStsReg__STATUS_REG EQU CYREG_B0_UDB04_ST\r
-SDCard_BSPIM_sR8_Dp_u0__16BIT_A0_REG EQU CYREG_B0_UDB06_07_A0\r
-SDCard_BSPIM_sR8_Dp_u0__16BIT_A1_REG EQU CYREG_B0_UDB06_07_A1\r
-SDCard_BSPIM_sR8_Dp_u0__16BIT_D0_REG EQU CYREG_B0_UDB06_07_D0\r
-SDCard_BSPIM_sR8_Dp_u0__16BIT_D1_REG EQU CYREG_B0_UDB06_07_D1\r
-SDCard_BSPIM_sR8_Dp_u0__16BIT_DP_AUX_CTL_REG EQU CYREG_B0_UDB06_07_ACTL\r
-SDCard_BSPIM_sR8_Dp_u0__16BIT_F0_REG EQU CYREG_B0_UDB06_07_F0\r
-SDCard_BSPIM_sR8_Dp_u0__16BIT_F1_REG EQU CYREG_B0_UDB06_07_F1\r
-SDCard_BSPIM_sR8_Dp_u0__A0_A1_REG EQU CYREG_B0_UDB06_A0_A1\r
-SDCard_BSPIM_sR8_Dp_u0__A0_REG EQU CYREG_B0_UDB06_A0\r
-SDCard_BSPIM_sR8_Dp_u0__A1_REG EQU CYREG_B0_UDB06_A1\r
-SDCard_BSPIM_sR8_Dp_u0__D0_D1_REG EQU CYREG_B0_UDB06_D0_D1\r
-SDCard_BSPIM_sR8_Dp_u0__D0_REG EQU CYREG_B0_UDB06_D0\r
-SDCard_BSPIM_sR8_Dp_u0__D1_REG EQU CYREG_B0_UDB06_D1\r
-SDCard_BSPIM_sR8_Dp_u0__DP_AUX_CTL_REG EQU CYREG_B0_UDB06_ACTL\r
-SDCard_BSPIM_sR8_Dp_u0__F0_F1_REG EQU CYREG_B0_UDB06_F0_F1\r
-SDCard_BSPIM_sR8_Dp_u0__F0_REG EQU CYREG_B0_UDB06_F0\r
-SDCard_BSPIM_sR8_Dp_u0__F1_REG EQU CYREG_B0_UDB06_F1\r
+SDCard_BSPIM_TxStsReg__MASK_REG EQU CYREG_B1_UDB07_MSK\r
+SDCard_BSPIM_TxStsReg__MASK_ST_AUX_CTL_REG EQU CYREG_B1_UDB07_MSK_ACTL\r
+SDCard_BSPIM_TxStsReg__PER_ST_AUX_CTL_REG EQU CYREG_B1_UDB07_MSK_ACTL\r
+SDCard_BSPIM_TxStsReg__STATUS_AUX_CTL_REG EQU CYREG_B1_UDB07_ACTL\r
+SDCard_BSPIM_TxStsReg__STATUS_CNT_REG EQU CYREG_B1_UDB07_ST_CTL\r
+SDCard_BSPIM_TxStsReg__STATUS_CONTROL_REG EQU CYREG_B1_UDB07_ST_CTL\r
+SDCard_BSPIM_TxStsReg__STATUS_REG EQU CYREG_B1_UDB07_ST\r
+SDCard_BSPIM_sR8_Dp_u0__16BIT_A0_REG EQU CYREG_B0_UDB04_05_A0\r
+SDCard_BSPIM_sR8_Dp_u0__16BIT_A1_REG EQU CYREG_B0_UDB04_05_A1\r
+SDCard_BSPIM_sR8_Dp_u0__16BIT_D0_REG EQU CYREG_B0_UDB04_05_D0\r
+SDCard_BSPIM_sR8_Dp_u0__16BIT_D1_REG EQU CYREG_B0_UDB04_05_D1\r
+SDCard_BSPIM_sR8_Dp_u0__16BIT_DP_AUX_CTL_REG EQU CYREG_B0_UDB04_05_ACTL\r
+SDCard_BSPIM_sR8_Dp_u0__16BIT_F0_REG EQU CYREG_B0_UDB04_05_F0\r
+SDCard_BSPIM_sR8_Dp_u0__16BIT_F1_REG EQU CYREG_B0_UDB04_05_F1\r
+SDCard_BSPIM_sR8_Dp_u0__A0_A1_REG EQU CYREG_B0_UDB04_A0_A1\r
+SDCard_BSPIM_sR8_Dp_u0__A0_REG EQU CYREG_B0_UDB04_A0\r
+SDCard_BSPIM_sR8_Dp_u0__A1_REG EQU CYREG_B0_UDB04_A1\r
+SDCard_BSPIM_sR8_Dp_u0__D0_D1_REG EQU CYREG_B0_UDB04_D0_D1\r
+SDCard_BSPIM_sR8_Dp_u0__D0_REG EQU CYREG_B0_UDB04_D0\r
+SDCard_BSPIM_sR8_Dp_u0__D1_REG EQU CYREG_B0_UDB04_D1\r
+SDCard_BSPIM_sR8_Dp_u0__DP_AUX_CTL_REG EQU CYREG_B0_UDB04_ACTL\r
+SDCard_BSPIM_sR8_Dp_u0__F0_F1_REG EQU CYREG_B0_UDB04_F0_F1\r
+SDCard_BSPIM_sR8_Dp_u0__F0_REG EQU CYREG_B0_UDB04_F0\r
+SDCard_BSPIM_sR8_Dp_u0__F1_REG EQU CYREG_B0_UDB04_F1\r
 \r
 ; USBFS_dp_int\r
 USBFS_dp_int__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0\r
@@ -1104,6 +1148,30 @@ SCSI_In_DBx__DB7__PS EQU CYREG_PRT2_PS
 SCSI_In_DBx__DB7__SHIFT EQU 1\r
 SCSI_In_DBx__DB7__SLW EQU CYREG_PRT2_SLW\r
 \r
+; SCSI_RX_DMA\r
+SCSI_RX_DMA__DRQ_CTL EQU CYREG_IDMUX_DRQ_CTL0\r
+SCSI_RX_DMA__DRQ_NUMBER EQU 0\r
+SCSI_RX_DMA__NUMBEROF_TDS EQU 0\r
+SCSI_RX_DMA__PRIORITY EQU 2\r
+SCSI_RX_DMA__TERMIN_EN EQU 0\r
+SCSI_RX_DMA__TERMIN_SEL EQU 0\r
+SCSI_RX_DMA__TERMOUT0_EN EQU 1\r
+SCSI_RX_DMA__TERMOUT0_SEL EQU 0\r
+SCSI_RX_DMA__TERMOUT1_EN EQU 0\r
+SCSI_RX_DMA__TERMOUT1_SEL EQU 0\r
+\r
+; SCSI_TX_DMA\r
+SCSI_TX_DMA__DRQ_CTL EQU CYREG_IDMUX_DRQ_CTL0\r
+SCSI_TX_DMA__DRQ_NUMBER EQU 1\r
+SCSI_TX_DMA__NUMBEROF_TDS EQU 0\r
+SCSI_TX_DMA__PRIORITY EQU 2\r
+SCSI_TX_DMA__TERMIN_EN EQU 0\r
+SCSI_TX_DMA__TERMIN_SEL EQU 0\r
+SCSI_TX_DMA__TERMOUT0_EN EQU 1\r
+SCSI_TX_DMA__TERMOUT0_SEL EQU 1\r
+SCSI_TX_DMA__TERMOUT1_EN EQU 0\r
+SCSI_TX_DMA__TERMOUT1_SEL EQU 0\r
+\r
 ; SD_Data_Clk\r
 SD_Data_Clk__CFG0 EQU CYREG_CLKDIST_DCFG0_CFG0\r
 SD_Data_Clk__CFG1 EQU CYREG_CLKDIST_DCFG0_CFG1\r
@@ -1140,85 +1208,68 @@ timer_clock__PM_STBY_MSK EQU 0x04
 ; scsiTarget\r
 scsiTarget_StatusReg__0__MASK EQU 0x01\r
 scsiTarget_StatusReg__0__POS EQU 0\r
-scsiTarget_StatusReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB13_14_ACTL\r
-scsiTarget_StatusReg__16BIT_STATUS_REG EQU CYREG_B0_UDB13_14_ST\r
+scsiTarget_StatusReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB04_05_ACTL\r
+scsiTarget_StatusReg__16BIT_STATUS_REG EQU CYREG_B0_UDB04_05_ST\r
 scsiTarget_StatusReg__1__MASK EQU 0x02\r
 scsiTarget_StatusReg__1__POS EQU 1\r
 scsiTarget_StatusReg__2__MASK EQU 0x04\r
 scsiTarget_StatusReg__2__POS EQU 2\r
 scsiTarget_StatusReg__3__MASK EQU 0x08\r
 scsiTarget_StatusReg__3__POS EQU 3\r
-scsiTarget_StatusReg__MASK EQU 0x0F\r
-scsiTarget_StatusReg__MASK_REG EQU CYREG_B0_UDB13_MSK\r
-scsiTarget_StatusReg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB13_ACTL\r
-scsiTarget_StatusReg__STATUS_REG EQU CYREG_B0_UDB13_ST\r
-scsiTarget_datapath_PI__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB12_13_ACTL\r
-scsiTarget_datapath_PI__16BIT_STATUS_REG EQU CYREG_B0_UDB12_13_ST\r
-scsiTarget_datapath_PI__MASK_REG EQU CYREG_B0_UDB12_MSK\r
-scsiTarget_datapath_PI__MASK_ST_AUX_CTL_REG EQU CYREG_B0_UDB12_MSK_ACTL\r
-scsiTarget_datapath_PI__PER_ST_AUX_CTL_REG EQU CYREG_B0_UDB12_MSK_ACTL\r
-scsiTarget_datapath_PI__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB12_ACTL\r
-scsiTarget_datapath_PI__STATUS_CNT_REG EQU CYREG_B0_UDB12_ST_CTL\r
-scsiTarget_datapath_PI__STATUS_CONTROL_REG EQU CYREG_B0_UDB12_ST_CTL\r
-scsiTarget_datapath_PI__STATUS_REG EQU CYREG_B0_UDB12_ST\r
-scsiTarget_datapath_PO__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB12_13_ACTL\r
-scsiTarget_datapath_PO__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB12_13_CTL\r
-scsiTarget_datapath_PO__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB12_13_CTL\r
-scsiTarget_datapath_PO__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB12_13_CTL\r
-scsiTarget_datapath_PO__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB12_13_CTL\r
-scsiTarget_datapath_PO__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB12_13_MSK\r
-scsiTarget_datapath_PO__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB12_13_MSK\r
-scsiTarget_datapath_PO__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB12_13_MSK\r
-scsiTarget_datapath_PO__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB12_13_MSK\r
-scsiTarget_datapath_PO__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB12_ACTL\r
-scsiTarget_datapath_PO__CONTROL_REG EQU CYREG_B0_UDB12_CTL\r
-scsiTarget_datapath_PO__CONTROL_ST_REG EQU CYREG_B0_UDB12_ST_CTL\r
-scsiTarget_datapath_PO__COUNT_REG EQU CYREG_B0_UDB12_CTL\r
-scsiTarget_datapath_PO__COUNT_ST_REG EQU CYREG_B0_UDB12_ST_CTL\r
-scsiTarget_datapath_PO__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB12_MSK_ACTL\r
-scsiTarget_datapath_PO__PERIOD_REG EQU CYREG_B0_UDB12_MSK\r
-scsiTarget_datapath_PO__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB12_MSK_ACTL\r
-scsiTarget_datapath__16BIT_A0_REG EQU CYREG_B0_UDB12_13_A0\r
-scsiTarget_datapath__16BIT_A1_REG EQU CYREG_B0_UDB12_13_A1\r
-scsiTarget_datapath__16BIT_D0_REG EQU CYREG_B0_UDB12_13_D0\r
-scsiTarget_datapath__16BIT_D1_REG EQU CYREG_B0_UDB12_13_D1\r
-scsiTarget_datapath__16BIT_DP_AUX_CTL_REG EQU CYREG_B0_UDB12_13_ACTL\r
-scsiTarget_datapath__16BIT_F0_REG EQU CYREG_B0_UDB12_13_F0\r
-scsiTarget_datapath__16BIT_F1_REG EQU CYREG_B0_UDB12_13_F1\r
-scsiTarget_datapath__A0_A1_REG EQU CYREG_B0_UDB12_A0_A1\r
-scsiTarget_datapath__A0_REG EQU CYREG_B0_UDB12_A0\r
-scsiTarget_datapath__A1_REG EQU CYREG_B0_UDB12_A1\r
-scsiTarget_datapath__D0_D1_REG EQU CYREG_B0_UDB12_D0_D1\r
-scsiTarget_datapath__D0_REG EQU CYREG_B0_UDB12_D0\r
-scsiTarget_datapath__D1_REG EQU CYREG_B0_UDB12_D1\r
-scsiTarget_datapath__DP_AUX_CTL_REG EQU CYREG_B0_UDB12_ACTL\r
-scsiTarget_datapath__F0_F1_REG EQU CYREG_B0_UDB12_F0_F1\r
-scsiTarget_datapath__F0_REG EQU CYREG_B0_UDB12_F0\r
-scsiTarget_datapath__F1_REG EQU CYREG_B0_UDB12_F1\r
-scsiTarget_datapath__MSK_DP_AUX_CTL_REG EQU CYREG_B0_UDB12_MSK_ACTL\r
-scsiTarget_datapath__PER_DP_AUX_CTL_REG EQU CYREG_B0_UDB12_MSK_ACTL\r
+scsiTarget_StatusReg__4__MASK EQU 0x10\r
+scsiTarget_StatusReg__4__POS EQU 4\r
+scsiTarget_StatusReg__MASK EQU 0x1F\r
+scsiTarget_StatusReg__MASK_REG EQU CYREG_B0_UDB04_MSK\r
+scsiTarget_StatusReg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB04_ACTL\r
+scsiTarget_StatusReg__STATUS_REG EQU CYREG_B0_UDB04_ST\r
+scsiTarget_datapath_PI__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB03_04_ACTL\r
+scsiTarget_datapath_PI__16BIT_STATUS_REG EQU CYREG_B0_UDB03_04_ST\r
+scsiTarget_datapath_PI__MASK_REG EQU CYREG_B0_UDB03_MSK\r
+scsiTarget_datapath_PI__MASK_ST_AUX_CTL_REG EQU CYREG_B0_UDB03_MSK_ACTL\r
+scsiTarget_datapath_PI__PER_ST_AUX_CTL_REG EQU CYREG_B0_UDB03_MSK_ACTL\r
+scsiTarget_datapath_PI__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB03_ACTL\r
+scsiTarget_datapath_PI__STATUS_CNT_REG EQU CYREG_B0_UDB03_ST_CTL\r
+scsiTarget_datapath_PI__STATUS_CONTROL_REG EQU CYREG_B0_UDB03_ST_CTL\r
+scsiTarget_datapath_PI__STATUS_REG EQU CYREG_B0_UDB03_ST\r
+scsiTarget_datapath_PO__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB03_04_ACTL\r
+scsiTarget_datapath_PO__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB03_04_CTL\r
+scsiTarget_datapath_PO__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB03_04_CTL\r
+scsiTarget_datapath_PO__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB03_04_CTL\r
+scsiTarget_datapath_PO__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB03_04_CTL\r
+scsiTarget_datapath_PO__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB03_04_MSK\r
+scsiTarget_datapath_PO__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB03_04_MSK\r
+scsiTarget_datapath_PO__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB03_04_MSK\r
+scsiTarget_datapath_PO__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB03_04_MSK\r
+scsiTarget_datapath_PO__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB03_ACTL\r
+scsiTarget_datapath_PO__CONTROL_REG EQU CYREG_B0_UDB03_CTL\r
+scsiTarget_datapath_PO__CONTROL_ST_REG EQU CYREG_B0_UDB03_ST_CTL\r
+scsiTarget_datapath_PO__COUNT_REG EQU CYREG_B0_UDB03_CTL\r
+scsiTarget_datapath_PO__COUNT_ST_REG EQU CYREG_B0_UDB03_ST_CTL\r
+scsiTarget_datapath_PO__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB03_MSK_ACTL\r
+scsiTarget_datapath_PO__PERIOD_REG EQU CYREG_B0_UDB03_MSK\r
+scsiTarget_datapath_PO__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB03_MSK_ACTL\r
+scsiTarget_datapath__16BIT_A0_REG EQU CYREG_B0_UDB03_04_A0\r
+scsiTarget_datapath__16BIT_A1_REG EQU CYREG_B0_UDB03_04_A1\r
+scsiTarget_datapath__16BIT_D0_REG EQU CYREG_B0_UDB03_04_D0\r
+scsiTarget_datapath__16BIT_D1_REG EQU CYREG_B0_UDB03_04_D1\r
+scsiTarget_datapath__16BIT_DP_AUX_CTL_REG EQU CYREG_B0_UDB03_04_ACTL\r
+scsiTarget_datapath__16BIT_F0_REG EQU CYREG_B0_UDB03_04_F0\r
+scsiTarget_datapath__16BIT_F1_REG EQU CYREG_B0_UDB03_04_F1\r
+scsiTarget_datapath__A0_A1_REG EQU CYREG_B0_UDB03_A0_A1\r
+scsiTarget_datapath__A0_REG EQU CYREG_B0_UDB03_A0\r
+scsiTarget_datapath__A1_REG EQU CYREG_B0_UDB03_A1\r
+scsiTarget_datapath__D0_D1_REG EQU CYREG_B0_UDB03_D0_D1\r
+scsiTarget_datapath__D0_REG EQU CYREG_B0_UDB03_D0\r
+scsiTarget_datapath__D1_REG EQU CYREG_B0_UDB03_D1\r
+scsiTarget_datapath__DP_AUX_CTL_REG EQU CYREG_B0_UDB03_ACTL\r
+scsiTarget_datapath__F0_F1_REG EQU CYREG_B0_UDB03_F0_F1\r
+scsiTarget_datapath__F0_REG EQU CYREG_B0_UDB03_F0\r
+scsiTarget_datapath__F1_REG EQU CYREG_B0_UDB03_F1\r
+scsiTarget_datapath__MSK_DP_AUX_CTL_REG EQU CYREG_B0_UDB03_MSK_ACTL\r
+scsiTarget_datapath__PER_DP_AUX_CTL_REG EQU CYREG_B0_UDB03_MSK_ACTL\r
 \r
 ; SD_Clk_Ctl\r
-SD_Clk_Ctl_Sync_ctrl_reg__0__MASK EQU 0x01\r
-SD_Clk_Ctl_Sync_ctrl_reg__0__POS EQU 0\r
-SD_Clk_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB02_03_ACTL\r
-SD_Clk_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB02_03_CTL\r
-SD_Clk_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB02_03_CTL\r
-SD_Clk_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB02_03_CTL\r
-SD_Clk_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB02_03_CTL\r
-SD_Clk_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB02_03_MSK\r
-SD_Clk_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB02_03_MSK\r
-SD_Clk_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB02_03_MSK\r
-SD_Clk_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB02_03_MSK\r
-SD_Clk_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB02_ACTL\r
-SD_Clk_Ctl_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB02_CTL\r
-SD_Clk_Ctl_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB02_ST_CTL\r
-SD_Clk_Ctl_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB02_CTL\r
-SD_Clk_Ctl_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB02_ST_CTL\r
-SD_Clk_Ctl_Sync_ctrl_reg__MASK EQU 0x01\r
-SD_Clk_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB02_MSK_ACTL\r
-SD_Clk_Ctl_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB02_MSK\r
-SD_Clk_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB02_MSK_ACTL\r
+SD_Clk_Ctl_Sync_ctrl_reg__REMOVED EQU 1\r
 \r
 ; USBFS_ep_0\r
 USBFS_ep_0__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0\r
@@ -1233,43 +1284,67 @@ USBFS_ep_0__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0
 ; USBFS_ep_1\r
 USBFS_ep_1__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0\r
 USBFS_ep_1__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0\r
-USBFS_ep_1__INTC_MASK EQU 0x02\r
-USBFS_ep_1__INTC_NUMBER EQU 1\r
+USBFS_ep_1__INTC_MASK EQU 0x20\r
+USBFS_ep_1__INTC_NUMBER EQU 5\r
 USBFS_ep_1__INTC_PRIOR_NUM EQU 7\r
-USBFS_ep_1__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_1\r
+USBFS_ep_1__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_5\r
 USBFS_ep_1__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0\r
 USBFS_ep_1__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0\r
 \r
 ; USBFS_ep_2\r
 USBFS_ep_2__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0\r
 USBFS_ep_2__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0\r
-USBFS_ep_2__INTC_MASK EQU 0x04\r
-USBFS_ep_2__INTC_NUMBER EQU 2\r
+USBFS_ep_2__INTC_MASK EQU 0x40\r
+USBFS_ep_2__INTC_NUMBER EQU 6\r
 USBFS_ep_2__INTC_PRIOR_NUM EQU 7\r
-USBFS_ep_2__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_2\r
+USBFS_ep_2__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_6\r
 USBFS_ep_2__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0\r
 USBFS_ep_2__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0\r
 \r
 ; USBFS_ep_3\r
 USBFS_ep_3__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0\r
 USBFS_ep_3__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0\r
-USBFS_ep_3__INTC_MASK EQU 0x08\r
-USBFS_ep_3__INTC_NUMBER EQU 3\r
+USBFS_ep_3__INTC_MASK EQU 0x80\r
+USBFS_ep_3__INTC_NUMBER EQU 7\r
 USBFS_ep_3__INTC_PRIOR_NUM EQU 7\r
-USBFS_ep_3__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_3\r
+USBFS_ep_3__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_7\r
 USBFS_ep_3__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0\r
 USBFS_ep_3__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0\r
 \r
 ; USBFS_ep_4\r
 USBFS_ep_4__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0\r
 USBFS_ep_4__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0\r
-USBFS_ep_4__INTC_MASK EQU 0x10\r
-USBFS_ep_4__INTC_NUMBER EQU 4\r
+USBFS_ep_4__INTC_MASK EQU 0x100\r
+USBFS_ep_4__INTC_NUMBER EQU 8\r
 USBFS_ep_4__INTC_PRIOR_NUM EQU 7\r
-USBFS_ep_4__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_4\r
+USBFS_ep_4__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_8\r
 USBFS_ep_4__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0\r
 USBFS_ep_4__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0\r
 \r
+; SD_RX_DMA\r
+SD_RX_DMA__DRQ_CTL EQU CYREG_IDMUX_DRQ_CTL0\r
+SD_RX_DMA__DRQ_NUMBER EQU 2\r
+SD_RX_DMA__NUMBEROF_TDS EQU 0\r
+SD_RX_DMA__PRIORITY EQU 1\r
+SD_RX_DMA__TERMIN_EN EQU 0\r
+SD_RX_DMA__TERMIN_SEL EQU 0\r
+SD_RX_DMA__TERMOUT0_EN EQU 1\r
+SD_RX_DMA__TERMOUT0_SEL EQU 2\r
+SD_RX_DMA__TERMOUT1_EN EQU 0\r
+SD_RX_DMA__TERMOUT1_SEL EQU 0\r
+\r
+; SD_TX_DMA\r
+SD_TX_DMA__DRQ_CTL EQU CYREG_IDMUX_DRQ_CTL0\r
+SD_TX_DMA__DRQ_NUMBER EQU 3\r
+SD_TX_DMA__NUMBEROF_TDS EQU 0\r
+SD_TX_DMA__PRIORITY EQU 2\r
+SD_TX_DMA__TERMIN_EN EQU 0\r
+SD_TX_DMA__TERMIN_SEL EQU 0\r
+SD_TX_DMA__TERMOUT0_EN EQU 1\r
+SD_TX_DMA__TERMOUT0_SEL EQU 3\r
+SD_TX_DMA__TERMOUT1_EN EQU 0\r
+SD_TX_DMA__TERMOUT1_SEL EQU 0\r
+\r
 ; USBFS_USB\r
 USBFS_USB__ARB_CFG EQU CYREG_USB_ARB_CFG\r
 USBFS_USB__ARB_EP1_CFG EQU CYREG_USB_ARB_EP1_CFG\r
@@ -2789,9 +2864,9 @@ CYDEV_CHIP_MEMBER_5B EQU 4
 CYDEV_CHIP_FAMILY_PSOC5 EQU 3\r
 CYDEV_CHIP_DIE_PSOC5LP EQU 4\r
 CYDEV_CHIP_DIE_EXPECT EQU CYDEV_CHIP_DIE_PSOC5LP\r
-BCLK__BUS_CLK__HZ EQU 60000000\r
-BCLK__BUS_CLK__KHZ EQU 60000\r
-BCLK__BUS_CLK__MHZ EQU 60\r
+BCLK__BUS_CLK__HZ EQU 50000000\r
+BCLK__BUS_CLK__KHZ EQU 50000\r
+BCLK__BUS_CLK__MHZ EQU 50\r
 CYDEV_CHIP_DIE_ACTUAL EQU CYDEV_CHIP_DIE_EXPECT\r
 CYDEV_CHIP_DIE_LEOPARD EQU 1\r
 CYDEV_CHIP_DIE_PANTHER EQU 3\r
@@ -2852,7 +2927,7 @@ CYDEV_DMA_CHANNELS_AVAILABLE EQU 24
 CYDEV_ECC_ENABLE EQU 0\r
 CYDEV_HEAP_SIZE EQU 0x0400\r
 CYDEV_INSTRUCT_CACHE_ENABLED EQU 1\r
-CYDEV_INTR_RISING EQU 0x00000001\r
+CYDEV_INTR_RISING EQU 0x0000001E\r
 CYDEV_PROJ_TYPE EQU 2\r
 CYDEV_PROJ_TYPE_BOOTLOADER EQU 1\r
 CYDEV_PROJ_TYPE_LOADABLE EQU 2\r
@@ -2876,7 +2951,7 @@ CYDEV_VIO1_MV EQU 5000
 CYDEV_VIO2 EQU 5\r
 CYDEV_VIO2_MV EQU 5000\r
 CYDEV_VIO3_MV EQU 3300\r
-DMA_CHANNELS_USED__MASK0 EQU 0x00000000\r
+DMA_CHANNELS_USED__MASK0 EQU 0x0000000F\r
 CYDEV_BOOTLOADER_ENABLE EQU 0\r
     ENDIF\r
     END\r
old mode 100755 (executable)
new mode 100644 (file)
index 01afa7d..b47a204
 #include <Debug_Timer.h>\r
 #include <timer_clock.h>\r
 #include <Debug_Timer_Interrupt.h>\r
+#include <SCSI_TX_DMA_dma.h>\r
+#include <SCSI_TX_DMA_COMPLETE.h>\r
+#include <SD_RX_DMA_dma.h>\r
+#include <SD_TX_DMA_dma.h>\r
+#include <SD_RX_DMA_COMPLETE.h>\r
+#include <SD_TX_DMA_COMPLETE.h>\r
+#include <SCSI_RX_DMA_dma.h>\r
+#include <SCSI_RX_DMA_COMPLETE.h>\r
 #include <USBFS_Dm_aliases.h>\r
 #include <USBFS_Dm.h>\r
 #include <USBFS_Dp_aliases.h>\r
old mode 100755 (executable)
new mode 100644 (file)
index 265ed9e..4acdeea
@@ -1,8 +1,72 @@
 <?xml version="1.0" encoding="utf-8"?>\r
 <blockRegMap version="1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://cypress.com/xsd/cyblockregmap cyblockregmap.xsd" xmlns="http://cypress.com/xsd/cyblockregmap">\r
+  <block name="SCSI_Out_Mux" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
+  <block name="Bootloadable_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
+  <block name="SCSI_Out_Bits" BASE="0x0" SIZE="0x0" desc="" visible="true">\r
+    <register name="SCSI_Out_Bits_CONTROL_REG" address="0x4000647C" bitWidth="8" desc="" />\r
+  </block>\r
+  <block name="Debug_Timer" BASE="0x0" SIZE="0x0" desc="" visible="true">\r
+    <block name="VirtualMux_2" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
+    <block name="ZeroTerminal_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
+    <block name="TimerHW" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
+    <block name="OneTerminal_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
+    <block name="VirtualMux_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
+    <block name="VirtualMux_3" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
+    <register name="Debug_Timer_GLOBAL_ENABLE" address="0x400043A3" bitWidth="8" desc="PM.ACT.CFG">\r
+      <field name="en_timer" from="3" to="0" access="RW" resetVal="" desc="Enable timer/counters." />\r
+    </register>\r
+    <register name="Debug_Timer_CONTROL" address="0x40004F00" bitWidth="8" desc="TMRx.CFG0">\r
+      <field name="EN" from="0" to="0" access="RW" resetVal="" desc="Enables timer/comparator." />\r
+      <field name="MODE" from="1" to="1" access="RW" resetVal="" desc="Mode. (0 = Timer; 1 = Comparator)">\r
+        <value name="Timer" value="0" desc="Timer mode. CNT/CMP register holds timer count value." />\r
+        <value name="Comparator" value="1" desc="Comparator mode. CNT/CMP register holds comparator threshold value." />\r
+      </field>\r
+      <field name="ONESHOT" from="2" to="2" access="RW" resetVal="" desc="Timer stops upon reaching stop condition defined by TMR_CFG bits. Can be restarted by asserting TIMER RESET or disabling and re-enabling block." />\r
+      <field name="CMP_BUFF" from="3" to="3" access="RW" resetVal="" desc="Buffer compare register. Compare register updates only on timer terminal count." />\r
+      <field name="INV" from="4" to="4" access="RW" resetVal="" desc="Invert sense of TIMEREN signal" />\r
+      <field name="DB" from="5" to="5" access="RW" resetVal="" desc="Deadband mode--Deadband phases phi1 and phi2 are outputted on CMP and TC output pins respectively.">\r
+        <value name="Timer" value="0" desc="CMP and TC are output." />\r
+        <value name="Deadband" value="1" desc="PHI1 (instead of CMP) and PHI2 (instead of TC) are output." />\r
+      </field>\r
+      <field name="DEADBAND_PERIOD" from="7" to="6" access="RW" resetVal="" desc="Deadband Period" />\r
+    </register>\r
+    <register name="Debug_Timer_CONTROL2" address="0x40004F01" bitWidth="8" desc="TMRx.CFG1">\r
+      <field name="IRQ_SEL" from="0" to="0" access="RW" resetVal="" desc="Irq selection. (0 = raw interrupts; 1 = status register interrupts)" />\r
+      <field name="FTC" from="1" to="1" access="RW" resetVal="" desc="First Terminal Count (FTC). Setting this bit forces a single pulse on the TC pin when first enabled.">\r
+        <value name="Disable FTC" value="0" desc="Disable the single cycle pulse, which signifies the timer is starting." />\r
+        <value name="Enable FTC" value="1" desc="Enable the single cycle pulse, which signifies the timer is starting." />\r
+      </field>\r
+      <field name="DCOR" from="2" to="2" access="RW" resetVal="" desc="Disable Clear on Read (DCOR) of Status Register SR0." />\r
+      <field name="DBMODE" from="3" to="3" access="RW" resetVal="" desc="Deadband mode (asynchronous/synchronous). CMP output pin is also affected when not in deadband mode (CFG0.DEADBAND)." />\r
+      <field name="CLK_BUS_EN_SEL" from="6" to="4" access="RW" resetVal="" desc="Digital Global Clock selection." />\r
+      <field name="BUS_CLK_SEL" from="7" to="7" access="RW" resetVal="" desc="Bus Clock selection." />\r
+    </register>\r
+    <register name="Debug_Timer_CONTROL3_" address="0x40004F02" bitWidth="8" desc="TMRx.CFG2">\r
+      <field name="TMR_CFG" from="1" to="0" access="RW" resetVal="" desc="Timer configuration (MODE = 0): 000 = Continuous; 001 = Pulsewidth; 010 = Period; 011 = Stop on IRQ">\r
+        <value name="Continuous" value="0" desc="Timer runs while EN bit of CFG0 register is set to '1'." />\r
+        <value name="Pulsewidth" value="1" desc="Timer runs from positive to negative edge of TIMEREN." />\r
+        <value name="Period" value="10" desc="Timer runs from positive to positive edge of TIMEREN." />\r
+        <value name="Irq" value="11" desc="Timer runs until IRQ." />\r
+      </field>\r
+      <field name="COD" from="2" to="2" access="RW" resetVal="" desc="Clear On Disable (COD). Clears or gates outputs to zero." />\r
+      <field name="ROD" from="3" to="3" access="RW" resetVal="" desc="Reset On Disable (ROD). Resets internal state of output logic" />\r
+      <field name="CMP_CFG" from="6" to="4" access="RW" resetVal="" desc="Comparator configurations">\r
+        <value name="Equal" value="0" desc="Compare Equal " />\r
+        <value name="Less than" value="1" desc="Compare Less Than " />\r
+        <value name="Less than or equal" value="10" desc="Compare Less Than or Equal ." />\r
+        <value name="Greater" value="11" desc="Compare Greater Than ." />\r
+        <value name="Greater than or equal" value="100" desc="Compare Greater Than or Equal " />\r
+      </field>\r
+      <field name="HW_EN" from="7" to="7" access="RW" resetVal="" desc="When set Timer Enable controls counting." />\r
+    </register>\r
+    <register name="Debug_Timer_PERIOD" address="0x40004F04" bitWidth="16" desc="TMRx.PER0 - Assigned Period" />\r
+    <register name="Debug_Timer_COUNTER" address="0x40004F06" bitWidth="16" desc="TMRx.CNT_CMP0 - Current Down Counter Value" />\r
+  </block>\r
+  <block name="SCSI_Out_Ctl" BASE="0x0" SIZE="0x0" desc="" visible="true">\r
+    <register name="SCSI_Out_Ctl_CONTROL_REG" address="0x40006577" bitWidth="8" desc="" />\r
+  </block>\r
   <block name="LED1" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
   <block name="scsiTarget" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
-  <block name="SD_MISO" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
   <block name="SDCard" BASE="0x0" SIZE="0x0" desc="" visible="true">\r
     <block name="VirtualMux_3" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
     <block name="ZeroTerminal_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
     <block name="VirtualMux_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
     <block name="BSPIM" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
   </block>\r
-  <block name="SCSI_RST" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
-  <block name="SCSI_CLK" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
-  <block name="SCSI_RST_ISR" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
-  <block name="SCSI_ATN" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
   <block name="USBFS" BASE="0x0" SIZE="0x0" desc="USBFS" visible="true">\r
     <block name="bus_reset" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
     <block name="ep_0" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
     <register name="USBFS_EP_TYPE" address="0x4000608F" bitWidth="8" desc="Endpoint Type (IN/OUT) Indication" />\r
     <register name="USBFS_USB_CLK_EN" address="0x4000609D" bitWidth="8" desc="USB Block Clock Enable Register" />\r
   </block>\r
+  <block name="SD_MISO" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
   <block name="timer_clock" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
-  <block name="Debug_Timer" BASE="0x0" SIZE="0x0" desc="" visible="true">\r
-    <block name="VirtualMux_2" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
-    <block name="ZeroTerminal_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
-    <block name="TimerHW" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
-    <block name="OneTerminal_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
-    <block name="VirtualMux_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
-    <block name="VirtualMux_3" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
-    <register name="Debug_Timer_GLOBAL_ENABLE" address="0x400043A3" bitWidth="8" desc="PM.ACT.CFG">\r
-      <field name="en_timer" from="3" to="0" access="RW" resetVal="" desc="Enable timer/counters." />\r
-    </register>\r
-    <register name="Debug_Timer_CONTROL" address="0x40004F00" bitWidth="8" desc="TMRx.CFG0">\r
-      <field name="EN" from="0" to="0" access="RW" resetVal="" desc="Enables timer/comparator." />\r
-      <field name="MODE" from="1" to="1" access="RW" resetVal="" desc="Mode. (0 = Timer; 1 = Comparator)">\r
-        <value name="Timer" value="0" desc="Timer mode. CNT/CMP register holds timer count value." />\r
-        <value name="Comparator" value="1" desc="Comparator mode. CNT/CMP register holds comparator threshold value." />\r
-      </field>\r
-      <field name="ONESHOT" from="2" to="2" access="RW" resetVal="" desc="Timer stops upon reaching stop condition defined by TMR_CFG bits. Can be restarted by asserting TIMER RESET or disabling and re-enabling block." />\r
-      <field name="CMP_BUFF" from="3" to="3" access="RW" resetVal="" desc="Buffer compare register. Compare register updates only on timer terminal count." />\r
-      <field name="INV" from="4" to="4" access="RW" resetVal="" desc="Invert sense of TIMEREN signal" />\r
-      <field name="DB" from="5" to="5" access="RW" resetVal="" desc="Deadband mode--Deadband phases phi1 and phi2 are outputted on CMP and TC output pins respectively.">\r
-        <value name="Timer" value="0" desc="CMP and TC are output." />\r
-        <value name="Deadband" value="1" desc="PHI1 (instead of CMP) and PHI2 (instead of TC) are output." />\r
-      </field>\r
-      <field name="DEADBAND_PERIOD" from="7" to="6" access="RW" resetVal="" desc="Deadband Period" />\r
-    </register>\r
-    <register name="Debug_Timer_CONTROL2" address="0x40004F01" bitWidth="8" desc="TMRx.CFG1">\r
-      <field name="IRQ_SEL" from="0" to="0" access="RW" resetVal="" desc="Irq selection. (0 = raw interrupts; 1 = status register interrupts)" />\r
-      <field name="FTC" from="1" to="1" access="RW" resetVal="" desc="First Terminal Count (FTC). Setting this bit forces a single pulse on the TC pin when first enabled.">\r
-        <value name="Disable FTC" value="0" desc="Disable the single cycle pulse, which signifies the timer is starting." />\r
-        <value name="Enable FTC" value="1" desc="Enable the single cycle pulse, which signifies the timer is starting." />\r
-      </field>\r
-      <field name="DCOR" from="2" to="2" access="RW" resetVal="" desc="Disable Clear on Read (DCOR) of Status Register SR0." />\r
-      <field name="DBMODE" from="3" to="3" access="RW" resetVal="" desc="Deadband mode (asynchronous/synchronous). CMP output pin is also affected when not in deadband mode (CFG0.DEADBAND)." />\r
-      <field name="CLK_BUS_EN_SEL" from="6" to="4" access="RW" resetVal="" desc="Digital Global Clock selection." />\r
-      <field name="BUS_CLK_SEL" from="7" to="7" access="RW" resetVal="" desc="Bus Clock selection." />\r
-    </register>\r
-    <register name="Debug_Timer_CONTROL3_" address="0x40004F02" bitWidth="8" desc="TMRx.CFG2">\r
-      <field name="TMR_CFG" from="1" to="0" access="RW" resetVal="" desc="Timer configuration (MODE = 0): 000 = Continuous; 001 = Pulsewidth; 010 = Period; 011 = Stop on IRQ">\r
-        <value name="Continuous" value="0" desc="Timer runs while EN bit of CFG0 register is set to '1'." />\r
-        <value name="Pulsewidth" value="1" desc="Timer runs from positive to negative edge of TIMEREN." />\r
-        <value name="Period" value="10" desc="Timer runs from positive to positive edge of TIMEREN." />\r
-        <value name="Irq" value="11" desc="Timer runs until IRQ." />\r
-      </field>\r
-      <field name="COD" from="2" to="2" access="RW" resetVal="" desc="Clear On Disable (COD). Clears or gates outputs to zero." />\r
-      <field name="ROD" from="3" to="3" access="RW" resetVal="" desc="Reset On Disable (ROD). Resets internal state of output logic" />\r
-      <field name="CMP_CFG" from="6" to="4" access="RW" resetVal="" desc="Comparator configurations">\r
-        <value name="Equal" value="0" desc="Compare Equal " />\r
-        <value name="Less than" value="1" desc="Compare Less Than " />\r
-        <value name="Less than or equal" value="10" desc="Compare Less Than or Equal ." />\r
-        <value name="Greater" value="11" desc="Compare Greater Than ." />\r
-        <value name="Greater than or equal" value="100" desc="Compare Greater Than or Equal " />\r
-      </field>\r
-      <field name="HW_EN" from="7" to="7" access="RW" resetVal="" desc="When set Timer Enable controls counting." />\r
-    </register>\r
-    <register name="Debug_Timer_PERIOD" address="0x40004F04" bitWidth="16" desc="TMRx.PER0 - Assigned Period" />\r
-    <register name="Debug_Timer_COUNTER" address="0x40004F06" bitWidth="16" desc="TMRx.CNT_CMP0 - Current Down Counter Value" />\r
-  </block>\r
+  <block name="SD_RX_DMA_COMPLETE" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
+  <block name="SD_TX_DMA" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
+  <block name="SD_TX_DMA_COMPLETE" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
+  <block name="SCSI_RX_DMA_COMPLETE" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
+  <block name="SCSI_RX_DMA" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
   <block name="Debug_Timer_Interrupt" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
   <block name="ZeroTerminal_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
-  <block name="SCSI_Out_Mux" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
-  <block name="Bootloadable_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
-  <block name="SCSI_Out_Ctl" BASE="0x0" SIZE="0x0" desc="" visible="true">\r
-    <register name="SCSI_Out_Ctl_CONTROL_REG" address="0x40006473" bitWidth="8" desc="" />\r
-  </block>\r
-  <block name="SCSI_Out_Bits" BASE="0x0" SIZE="0x0" desc="" visible="true">\r
-    <register name="SCSI_Out_Bits_CONTROL_REG" address="0x40006470" bitWidth="8" desc="" />\r
-  </block>\r
+  <block name="SCSI_TX_DMA" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
+  <block name="SD_RX_DMA" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
+  <block name="SCSI_TX_DMA_COMPLETE" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
+  <block name="SD_CD" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
   <block name="SD_Init_Clk" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
-  <block name="SD_Data_Clk" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
   <block name="SD_DAT2" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
-  <block name="SD_CD" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
+  <block name="SCSI_CTL_PHASE" BASE="0x0" SIZE="0x0" desc="" visible="true">\r
+    <register name="SCSI_CTL_PHASE_CONTROL_REG" address="0x40006472" bitWidth="8" desc="" />\r
+  </block>\r
+  <block name="SD_DAT1" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
   <block name="SCSI_Out_DBx" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
   <block name="SCSI_In_DBx" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
+  <block name="SD_Clk_Ctl" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
+  <block name="SD_Data_Clk" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
   <block name="SD_Clk_mux" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
-  <block name="SD_Clk_Ctl" BASE="0x0" SIZE="0x0" desc="" visible="true">\r
-    <register name="SD_Clk_Ctl_CONTROL_REG" address="0x40006472" bitWidth="8" desc="" />\r
-  </block>\r
-  <block name="SD_DAT1" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
-  <block name="SD_CS" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
-  <block name="CFG_EEPROM" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
-  <block name="SD_MOSI" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
-  <block name="SD_SCK" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
   <block name="OddParityGen_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
-  <block name="SCSI_CTL_PHASE" BASE="0x0" SIZE="0x0" desc="" visible="true">\r
-    <register name="SCSI_CTL_PHASE_CONTROL_REG" address="0x40006475" bitWidth="8" desc="" />\r
-  </block>\r
+  <block name="SCSI_CLK" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
+  <block name="SD_MOSI" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
+  <block name="SCSI_RST" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
+  <block name="SCSI_RST_ISR" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
+  <block name="SCSI_ATN" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
   <block name="SCSI_Out" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
   <block name="SCSI_In" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
+  <block name="CFG_EEPROM" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
+  <block name="SD_SCK" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
+  <block name="SD_CS" BASE="0x0" SIZE="0x0" desc="" visible="true" />\r
 </blockRegMap>
\ No newline at end of file
index 96ace5183d2151954943f78b692a481ac34748c6..21c2248099b8ff9fc9bae6d00e3840ac259a5a3b 100755 (executable)
Binary files a/software/SCSI2SD/SCSI2SD.cydsn/SCSI2SD.cydwr and b/software/SCSI2SD/SCSI2SD.cydsn/SCSI2SD.cydwr differ
old mode 100755 (executable)
new mode 100644 (file)
index 02f02b0..1850b93
Binary files a/software/SCSI2SD/SCSI2SD.cydsn/SCSI2SD.cyfit and b/software/SCSI2SD/SCSI2SD.cydsn/SCSI2SD.cyfit differ
index b2cb899180076b335bf3910d7c71fd7313247e3f..df390351d00f2f73b2729c78f86cfccf5c44345a 100755 (executable)
 </CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8>\r
 <filters />\r
 </CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0>\r
+<CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFolder" version="2">\r
+<CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtBaseContainer" version="1">\r
+<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SCSI_TX_DMA" persistent="">\r
+<Hidden v="False" />\r
+</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>\r
+<CyGuid_0820c2e7-528d-4137-9a08-97257b946089 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItemList" version="2">\r
+<dependencies>\r
+<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">\r
+<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">\r
+<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SCSI_TX_DMA_dma.c" persistent=".\Generated_Source\PSoC5\SCSI_TX_DMA_dma.c">\r
+<Hidden v="False" />\r
+</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>\r
+<build_action v="ARM_C_FILE" />\r
+<PropertyDeltas />\r
+</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>\r
+</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>\r
+<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">\r
+<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">\r
+<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SCSI_TX_DMA_dma.h" persistent=".\Generated_Source\PSoC5\SCSI_TX_DMA_dma.h">\r
+<Hidden v="False" />\r
+</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>\r
+<build_action v="NONE" />\r
+<PropertyDeltas />\r
+</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>\r
+</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>\r
+</dependencies>\r
+</CyGuid_0820c2e7-528d-4137-9a08-97257b946089>\r
+</CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8>\r
+<filters />\r
+</CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0>\r
+<CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFolder" version="2">\r
+<CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtBaseContainer" version="1">\r
+<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SCSI_TX_COMPLETE" persistent="">\r
+<Hidden v="True" />\r
+</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>\r
+<CyGuid_0820c2e7-528d-4137-9a08-97257b946089 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItemList" version="2">\r
+<dependencies>\r
+<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">\r
+<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">\r
+<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SCSI_TX_COMPLETE.c" persistent=".\Generated_Source\PSoC5\SCSI_TX_COMPLETE.c">\r
+<Hidden v="True" />\r
+</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>\r
+<build_action v="ARM_C_FILE" />\r
+<PropertyDeltas />\r
+</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>\r
+</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>\r
+<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">\r
+<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">\r
+<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SCSI_TX_COMPLETE.h" persistent=".\Generated_Source\PSoC5\SCSI_TX_COMPLETE.h">\r
+<Hidden v="True" />\r
+</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>\r
+<build_action v="NONE" />\r
+<PropertyDeltas />\r
+</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>\r
+</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>\r
+</dependencies>\r
+</CyGuid_0820c2e7-528d-4137-9a08-97257b946089>\r
+</CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8>\r
+<filters />\r
+</CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0>\r
+<CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFolder" version="2">\r
+<CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtBaseContainer" version="1">\r
+<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SCSI_TX_DMA_COMPLETE" persistent="">\r
+<Hidden v="False" />\r
+</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>\r
+<CyGuid_0820c2e7-528d-4137-9a08-97257b946089 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItemList" version="2">\r
+<dependencies>\r
+<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">\r
+<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">\r
+<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SCSI_TX_DMA_COMPLETE.c" persistent=".\Generated_Source\PSoC5\SCSI_TX_DMA_COMPLETE.c">\r
+<Hidden v="False" />\r
+</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>\r
+<build_action v="ARM_C_FILE" />\r
+<PropertyDeltas />\r
+</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>\r
+</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>\r
+<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">\r
+<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">\r
+<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SCSI_TX_DMA_COMPLETE.h" persistent=".\Generated_Source\PSoC5\SCSI_TX_DMA_COMPLETE.h">\r
+<Hidden v="False" />\r
+</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>\r
+<build_action v="NONE" />\r
+<PropertyDeltas />\r
+</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>\r
+</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>\r
+</dependencies>\r
+</CyGuid_0820c2e7-528d-4137-9a08-97257b946089>\r
+</CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8>\r
+<filters />\r
+</CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0>\r
+<CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFolder" version="2">\r
+<CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtBaseContainer" version="1">\r
+<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SD_RX_DMA" persistent="">\r
+<Hidden v="False" />\r
+</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>\r
+<CyGuid_0820c2e7-528d-4137-9a08-97257b946089 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItemList" version="2">\r
+<dependencies>\r
+<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">\r
+<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">\r
+<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SD_RX_DMA_dma.c" persistent=".\Generated_Source\PSoC5\SD_RX_DMA_dma.c">\r
+<Hidden v="False" />\r
+</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>\r
+<build_action v="ARM_C_FILE" />\r
+<PropertyDeltas />\r
+</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>\r
+</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>\r
+<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">\r
+<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">\r
+<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SD_RX_DMA_dma.h" persistent=".\Generated_Source\PSoC5\SD_RX_DMA_dma.h">\r
+<Hidden v="False" />\r
+</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>\r
+<build_action v="NONE" />\r
+<PropertyDeltas />\r
+</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>\r
+</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>\r
+</dependencies>\r
+</CyGuid_0820c2e7-528d-4137-9a08-97257b946089>\r
+</CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8>\r
+<filters />\r
+</CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0>\r
+<CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFolder" version="2">\r
+<CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtBaseContainer" version="1">\r
+<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SD_TX_DMA" persistent="">\r
+<Hidden v="False" />\r
+</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>\r
+<CyGuid_0820c2e7-528d-4137-9a08-97257b946089 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItemList" version="2">\r
+<dependencies>\r
+<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">\r
+<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">\r
+<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SD_TX_DMA_dma.c" persistent=".\Generated_Source\PSoC5\SD_TX_DMA_dma.c">\r
+<Hidden v="False" />\r
+</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>\r
+<build_action v="ARM_C_FILE" />\r
+<PropertyDeltas />\r
+</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>\r
+</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>\r
+<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">\r
+<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">\r
+<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SD_TX_DMA_dma.h" persistent=".\Generated_Source\PSoC5\SD_TX_DMA_dma.h">\r
+<Hidden v="False" />\r
+</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>\r
+<build_action v="NONE" />\r
+<PropertyDeltas />\r
+</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>\r
+</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>\r
+</dependencies>\r
+</CyGuid_0820c2e7-528d-4137-9a08-97257b946089>\r
+</CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8>\r
+<filters />\r
+</CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0>\r
+<CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFolder" version="2">\r
+<CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtBaseContainer" version="1">\r
+<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SD_RX_DMA_COMPLETE" persistent="">\r
+<Hidden v="False" />\r
+</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>\r
+<CyGuid_0820c2e7-528d-4137-9a08-97257b946089 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItemList" version="2">\r
+<dependencies>\r
+<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">\r
+<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">\r
+<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SD_RX_DMA_COMPLETE.c" persistent=".\Generated_Source\PSoC5\SD_RX_DMA_COMPLETE.c">\r
+<Hidden v="False" />\r
+</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>\r
+<build_action v="ARM_C_FILE" />\r
+<PropertyDeltas />\r
+</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>\r
+</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>\r
+<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">\r
+<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">\r
+<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SD_RX_DMA_COMPLETE.h" persistent=".\Generated_Source\PSoC5\SD_RX_DMA_COMPLETE.h">\r
+<Hidden v="False" />\r
+</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>\r
+<build_action v="NONE" />\r
+<PropertyDeltas />\r
+</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>\r
+</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>\r
+</dependencies>\r
+</CyGuid_0820c2e7-528d-4137-9a08-97257b946089>\r
+</CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8>\r
+<filters />\r
+</CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0>\r
+<CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFolder" version="2">\r
+<CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtBaseContainer" version="1">\r
+<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SD_TX_DMA_COMPLETE" persistent="">\r
+<Hidden v="False" />\r
+</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>\r
+<CyGuid_0820c2e7-528d-4137-9a08-97257b946089 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItemList" version="2">\r
+<dependencies>\r
+<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">\r
+<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">\r
+<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SD_TX_DMA_COMPLETE.c" persistent=".\Generated_Source\PSoC5\SD_TX_DMA_COMPLETE.c">\r
+<Hidden v="False" />\r
+</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>\r
+<build_action v="ARM_C_FILE" />\r
+<PropertyDeltas />\r
+</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>\r
+</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>\r
+<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">\r
+<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">\r
+<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SD_TX_DMA_COMPLETE.h" persistent=".\Generated_Source\PSoC5\SD_TX_DMA_COMPLETE.h">\r
+<Hidden v="False" />\r
+</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>\r
+<build_action v="NONE" />\r
+<PropertyDeltas />\r
+</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>\r
+</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>\r
+</dependencies>\r
+</CyGuid_0820c2e7-528d-4137-9a08-97257b946089>\r
+</CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8>\r
+<filters />\r
+</CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0>\r
+<CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFolder" version="2">\r
+<CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtBaseContainer" version="1">\r
+<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SCSI_RX_DMA" persistent="">\r
+<Hidden v="False" />\r
+</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>\r
+<CyGuid_0820c2e7-528d-4137-9a08-97257b946089 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItemList" version="2">\r
+<dependencies>\r
+<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">\r
+<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">\r
+<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SCSI_RX_DMA_dma.c" persistent=".\Generated_Source\PSoC5\SCSI_RX_DMA_dma.c">\r
+<Hidden v="False" />\r
+</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>\r
+<build_action v="ARM_C_FILE" />\r
+<PropertyDeltas />\r
+</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>\r
+</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>\r
+<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">\r
+<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">\r
+<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SCSI_RX_DMA_dma.h" persistent=".\Generated_Source\PSoC5\SCSI_RX_DMA_dma.h">\r
+<Hidden v="False" />\r
+</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>\r
+<build_action v="NONE" />\r
+<PropertyDeltas />\r
+</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>\r
+</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>\r
+</dependencies>\r
+</CyGuid_0820c2e7-528d-4137-9a08-97257b946089>\r
+</CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8>\r
+<filters />\r
+</CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0>\r
+<CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFolder" version="2">\r
+<CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtBaseContainer" version="1">\r
+<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SCSI_RX_DMA_COMPLETE" persistent="">\r
+<Hidden v="False" />\r
+</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>\r
+<CyGuid_0820c2e7-528d-4137-9a08-97257b946089 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItemList" version="2">\r
+<dependencies>\r
+<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">\r
+<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">\r
+<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SCSI_RX_DMA_COMPLETE.c" persistent=".\Generated_Source\PSoC5\SCSI_RX_DMA_COMPLETE.c">\r
+<Hidden v="False" />\r
+</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>\r
+<build_action v="ARM_C_FILE" />\r
+<PropertyDeltas />\r
+</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>\r
+</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>\r
+<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">\r
+<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">\r
+<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SCSI_RX_DMA_COMPLETE.h" persistent=".\Generated_Source\PSoC5\SCSI_RX_DMA_COMPLETE.h">\r
+<Hidden v="False" />\r
+</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>\r
+<build_action v="NONE" />\r
+<PropertyDeltas />\r
+</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>\r
+</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>\r
+</dependencies>\r
+</CyGuid_0820c2e7-528d-4137-9a08-97257b946089>\r
+</CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8>\r
+<filters />\r
+</CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0>\r
 </dependencies>\r
 </CyGuid_0820c2e7-528d-4137-9a08-97257b946089>\r
 </CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8>\r
old mode 100755 (executable)
new mode 100644 (file)
index 66a63b4..f326a56
@@ -7,18 +7,39 @@
   <width>32</width>\r
   <peripherals>\r
     <peripheral>\r
-      <name>USBFS</name>\r
-      <description>USBFS</description>\r
-      <baseAddress>0x40004394</baseAddress>\r
+      <name>SCSI_Out_Bits</name>\r
+      <description>No description available</description>\r
+      <baseAddress>0x4000647C</baseAddress>\r
       <addressBlock>\r
         <offset>0</offset>\r
-        <size>0x1D0A</size>\r
+        <size>0x1</size>\r
         <usage>registers</usage>\r
       </addressBlock>\r
       <registers>\r
         <register>\r
-          <name>USBFS_PM_USB_CR0</name>\r
-          <description>USB Power Mode Control Register 0</description>\r
+          <name>SCSI_Out_Bits_CONTROL_REG</name>\r
+          <description>No description available</description>\r
+          <addressOffset>0x0</addressOffset>\r
+          <size>8</size>\r
+          <access>read-write</access>\r
+          <resetValue>0</resetValue>\r
+          <resetMask>0</resetMask>\r
+        </register>\r
+      </registers>\r
+    </peripheral>\r
+    <peripheral>\r
+      <name>Debug_Timer</name>\r
+      <description>No description available</description>\r
+      <baseAddress>0x400043A3</baseAddress>\r
+      <addressBlock>\r
+        <offset>0</offset>\r
+        <size>0xB64</size>\r
+        <usage>registers</usage>\r
+      </addressBlock>\r
+      <registers>\r
+        <register>\r
+          <name>Debug_Timer_GLOBAL_ENABLE</name>\r
+          <description>PM.ACT.CFG</description>\r
           <addressOffset>0x0</addressOffset>\r
           <size>8</size>\r
           <access>read-write</access>\r
           <resetMask>0</resetMask>\r
           <fields>\r
             <field>\r
-              <name>fsusbio_ref_en</name>\r
-              <description>No description available</description>\r
+              <name>en_timer</name>\r
+              <description>Enable timer/counters.</description>\r
+              <lsb>0</lsb>\r
+              <msb>3</msb>\r
+              <access>read-write</access>\r
+            </field>\r
+          </fields>\r
+        </register>\r
+        <register>\r
+          <name>Debug_Timer_CONTROL</name>\r
+          <description>TMRx.CFG0</description>\r
+          <addressOffset>0xB5D</addressOffset>\r
+          <size>8</size>\r
+          <access>read-write</access>\r
+          <resetValue>0</resetValue>\r
+          <resetMask>0</resetMask>\r
+          <fields>\r
+            <field>\r
+              <name>EN</name>\r
+              <description>Enables timer/comparator.</description>\r
               <lsb>0</lsb>\r
               <msb>0</msb>\r
               <access>read-write</access>\r
             </field>\r
             <field>\r
-              <name>fsusbio_pd_n</name>\r
-              <description>No description available</description>\r
+              <name>MODE</name>\r
+              <description>Mode. (0 = Timer; 1 = Comparator)</description>\r
               <lsb>1</lsb>\r
               <msb>1</msb>\r
               <access>read-write</access>\r
+              <enumeratedValues>\r
+                <enumeratedValue>\r
+                  <name>Timer</name>\r
+                  <description>Timer mode. CNT/CMP register holds timer count value.</description>\r
+                  <value>0</value>\r
+                </enumeratedValue>\r
+                <enumeratedValue>\r
+                  <name>Comparator</name>\r
+                  <description>Comparator mode. CNT/CMP register holds comparator threshold value.</description>\r
+                  <value>1</value>\r
+                </enumeratedValue>\r
+              </enumeratedValues>\r
             </field>\r
             <field>\r
-              <name>fsusbio_pd_pullup_n</name>\r
-              <description>No description available</description>\r
+              <name>ONESHOT</name>\r
+              <description>Timer stops upon reaching stop condition defined by TMR_CFG bits. Can be restarted by asserting TIMER RESET or disabling and re-enabling block.</description>\r
               <lsb>2</lsb>\r
               <msb>2</msb>\r
               <access>read-write</access>\r
             </field>\r
-          </fields>\r
-        </register>\r
-        <register>\r
-          <name>USBFS_PM_ACT_CFG</name>\r
-          <description>Active Power Mode Configuration Register</description>\r
-          <addressOffset>0x11</addressOffset>\r
-          <size>8</size>\r
-          <access>read-write</access>\r
-          <resetValue>0</resetValue>\r
-          <resetMask>0</resetMask>\r
-        </register>\r
-        <register>\r
-          <name>USBFS_PM_STBY_CFG</name>\r
-          <description>Standby Power Mode Configuration Register</description>\r
-          <addressOffset>0x21</addressOffset>\r
-          <size>8</size>\r
-          <access>read-write</access>\r
-          <resetValue>0</resetValue>\r
-          <resetMask>0</resetMask>\r
-        </register>\r
-        <register>\r
-          <name>USBFS_PRT_PS</name>\r
-          <description>Port Pin State Register</description>\r
-          <addressOffset>0xE5D</addressOffset>\r
-          <size>8</size>\r
-          <access>read-write</access>\r
-          <resetValue>0</resetValue>\r
-          <resetMask>0</resetMask>\r
-          <fields>\r
             <field>\r
-              <name>PinState_DP</name>\r
-              <description>No description available</description>\r
-              <lsb>6</lsb>\r
-              <msb>6</msb>\r
-              <access>read-only</access>\r
+              <name>CMP_BUFF</name>\r
+              <description>Buffer compare register. Compare register updates only on timer terminal count.</description>\r
+              <lsb>3</lsb>\r
+              <msb>3</msb>\r
+              <access>read-write</access>\r
             </field>\r
             <field>\r
-              <name>PinState_DM</name>\r
-              <description>No description available</description>\r
-              <lsb>7</lsb>\r
-              <msb>7</msb>\r
-              <access>read-only</access>\r
+              <name>INV</name>\r
+              <description>Invert sense of TIMEREN signal</description>\r
+              <lsb>4</lsb>\r
+              <msb>4</msb>\r
+              <access>read-write</access>\r
             </field>\r
-          </fields>\r
-        </register>\r
-        <register>\r
-          <name>USBFS_PRT_DM0</name>\r
-          <description>Port Drive Mode Register</description>\r
-          <addressOffset>0xE5E</addressOffset>\r
-          <size>8</size>\r
-          <access>read-write</access>\r
-          <resetValue>0</resetValue>\r
-          <resetMask>0</resetMask>\r
-          <fields>\r
             <field>\r
-              <name>DriveMode_DP</name>\r
-              <description>No description available</description>\r
-              <lsb>6</lsb>\r
-              <msb>6</msb>\r
+              <name>DB</name>\r
+              <description>Deadband mode--Deadband phases phi1 and phi2 are outputted on CMP and TC output pins respectively.</description>\r
+              <lsb>5</lsb>\r
+              <msb>5</msb>\r
               <access>read-write</access>\r
+              <enumeratedValues>\r
+                <enumeratedValue>\r
+                  <name>Timer</name>\r
+                  <description>CMP and TC are output.</description>\r
+                  <value>0</value>\r
+                </enumeratedValue>\r
+                <enumeratedValue>\r
+                  <name>Deadband</name>\r
+                  <description>PHI1 (instead of CMP) and PHI2 (instead of TC) are output.</description>\r
+                  <value>1</value>\r
+                </enumeratedValue>\r
+              </enumeratedValues>\r
             </field>\r
             <field>\r
-              <name>DriveMode_DM</name>\r
-              <description>No description available</description>\r
-              <lsb>7</lsb>\r
+              <name>DEADBAND_PERIOD</name>\r
+              <description>Deadband Period</description>\r
+              <lsb>6</lsb>\r
               <msb>7</msb>\r
               <access>read-write</access>\r
             </field>\r
           </fields>\r
         </register>\r
         <register>\r
-          <name>USBFS_PRT_DM1</name>\r
-          <description>Port Drive Mode Register</description>\r
-          <addressOffset>0xE5F</addressOffset>\r
+          <name>Debug_Timer_CONTROL2</name>\r
+          <description>TMRx.CFG1</description>\r
+          <addressOffset>0xB5E</addressOffset>\r
           <size>8</size>\r
           <access>read-write</access>\r
           <resetValue>0</resetValue>\r
           <resetMask>0</resetMask>\r
           <fields>\r
             <field>\r
-              <name>PullUp_en_DP</name>\r
-              <description>No description available</description>\r
-              <lsb>6</lsb>\r
+              <name>IRQ_SEL</name>\r
+              <description>Irq selection. (0 = raw interrupts; 1 = status register interrupts)</description>\r
+              <lsb>0</lsb>\r
+              <msb>0</msb>\r
+              <access>read-write</access>\r
+            </field>\r
+            <field>\r
+              <name>FTC</name>\r
+              <description>First Terminal Count (FTC). Setting this bit forces a single pulse on the TC pin when first enabled.</description>\r
+              <lsb>1</lsb>\r
+              <msb>1</msb>\r
+              <access>read-write</access>\r
+              <enumeratedValues>\r
+                <enumeratedValue>\r
+                  <name>Disable_FTC</name>\r
+                  <description>Disable the single cycle pulse, which signifies the timer is starting.</description>\r
+                  <value>0</value>\r
+                </enumeratedValue>\r
+                <enumeratedValue>\r
+                  <name>Enable_FTC</name>\r
+                  <description>Enable the single cycle pulse, which signifies the timer is starting.</description>\r
+                  <value>1</value>\r
+                </enumeratedValue>\r
+              </enumeratedValues>\r
+            </field>\r
+            <field>\r
+              <name>DCOR</name>\r
+              <description>Disable Clear on Read (DCOR) of Status Register SR0.</description>\r
+              <lsb>2</lsb>\r
+              <msb>2</msb>\r
+              <access>read-write</access>\r
+            </field>\r
+            <field>\r
+              <name>DBMODE</name>\r
+              <description>Deadband mode (asynchronous/synchronous). CMP output pin is also affected when not in deadband mode (CFG0.DEADBAND).</description>\r
+              <lsb>3</lsb>\r
+              <msb>3</msb>\r
+              <access>read-write</access>\r
+            </field>\r
+            <field>\r
+              <name>CLK_BUS_EN_SEL</name>\r
+              <description>Digital Global Clock selection.</description>\r
+              <lsb>4</lsb>\r
               <msb>6</msb>\r
               <access>read-write</access>\r
             </field>\r
             <field>\r
-              <name>PullUp_en_DM</name>\r
-              <description>No description available</description>\r
+              <name>BUS_CLK_SEL</name>\r
+              <description>Bus Clock selection.</description>\r
               <lsb>7</lsb>\r
               <msb>7</msb>\r
               <access>read-write</access>\r
           </fields>\r
         </register>\r
         <register>\r
-          <name>USBFS_PRT_INP_DIS</name>\r
-          <description>Input buffer disable override</description>\r
-          <addressOffset>0xE64</addressOffset>\r
+          <name>Debug_Timer_CONTROL3_</name>\r
+          <description>TMRx.CFG2</description>\r
+          <addressOffset>0xB5F</addressOffset>\r
           <size>8</size>\r
           <access>read-write</access>\r
           <resetValue>0</resetValue>\r
           <resetMask>0</resetMask>\r
           <fields>\r
             <field>\r
-              <name>seinput_dis_dp</name>\r
-              <description>No description available</description>\r
-              <lsb>6</lsb>\r
+              <name>TMR_CFG</name>\r
+              <description>Timer configuration (MODE = 0): 000 = Continuous; 001 = Pulsewidth; 010 = Period; 011 = Stop on IRQ</description>\r
+              <lsb>0</lsb>\r
+              <msb>1</msb>\r
+              <access>read-write</access>\r
+              <enumeratedValues>\r
+                <enumeratedValue>\r
+                  <name>Continuous</name>\r
+                  <description>Timer runs while EN bit of CFG0 register is set to '1'.</description>\r
+                  <value>0</value>\r
+                </enumeratedValue>\r
+                <enumeratedValue>\r
+                  <name>Pulsewidth</name>\r
+                  <description>Timer runs from positive to negative edge of TIMEREN.</description>\r
+                  <value>1</value>\r
+                </enumeratedValue>\r
+                <enumeratedValue>\r
+                  <name>Period</name>\r
+                  <description>Timer runs from positive to positive edge of TIMEREN.</description>\r
+                  <value>2</value>\r
+                </enumeratedValue>\r
+                <enumeratedValue>\r
+                  <name>Irq</name>\r
+                  <description>Timer runs until IRQ.</description>\r
+                  <value>3</value>\r
+                </enumeratedValue>\r
+              </enumeratedValues>\r
+            </field>\r
+            <field>\r
+              <name>COD</name>\r
+              <description>Clear On Disable (COD). Clears or gates outputs to zero.</description>\r
+              <lsb>2</lsb>\r
+              <msb>2</msb>\r
+              <access>read-write</access>\r
+            </field>\r
+            <field>\r
+              <name>ROD</name>\r
+              <description>Reset On Disable (ROD). Resets internal state of output logic</description>\r
+              <lsb>3</lsb>\r
+              <msb>3</msb>\r
+              <access>read-write</access>\r
+            </field>\r
+            <field>\r
+              <name>CMP_CFG</name>\r
+              <description>Comparator configurations</description>\r
+              <lsb>4</lsb>\r
               <msb>6</msb>\r
               <access>read-write</access>\r
+              <enumeratedValues>\r
+                <enumeratedValue>\r
+                  <name>Equal</name>\r
+                  <description>Compare Equal </description>\r
+                  <value>0</value>\r
+                </enumeratedValue>\r
+                <enumeratedValue>\r
+                  <name>Less_than</name>\r
+                  <description>Compare Less Than </description>\r
+                  <value>1</value>\r
+                </enumeratedValue>\r
+                <enumeratedValue>\r
+                  <name>Less_than_or_equal</name>\r
+                  <description>Compare Less Than or Equal .</description>\r
+                  <value>2</value>\r
+                </enumeratedValue>\r
+                <enumeratedValue>\r
+                  <name>Greater</name>\r
+                  <description>Compare Greater Than .</description>\r
+                  <value>3</value>\r
+                </enumeratedValue>\r
+                <enumeratedValue>\r
+                  <name>Greater_than_or_equal</name>\r
+                  <description>Compare Greater Than or Equal </description>\r
+                  <value>4</value>\r
+                </enumeratedValue>\r
+              </enumeratedValues>\r
             </field>\r
             <field>\r
-              <name>seinput_dis_dm</name>\r
-              <description>No description available</description>\r
+              <name>HW_EN</name>\r
+              <description>When set Timer Enable controls counting.</description>\r
               <lsb>7</lsb>\r
               <msb>7</msb>\r
               <access>read-write</access>\r
           </fields>\r
         </register>\r
         <register>\r
-          <name>USBFS_EP0_DR0</name>\r
-          <description>bmRequestType</description>\r
-          <addressOffset>0x1C6C</addressOffset>\r
-          <size>8</size>\r
-          <access>read-write</access>\r
-          <resetValue>0</resetValue>\r
-          <resetMask>0</resetMask>\r
-        </register>\r
-        <register>\r
-          <name>USBFS_EP0_DR1</name>\r
-          <description>bRequest</description>\r
-          <addressOffset>0x1C6D</addressOffset>\r
-          <size>8</size>\r
-          <access>read-write</access>\r
-          <resetValue>0</resetValue>\r
-          <resetMask>0</resetMask>\r
-        </register>\r
-        <register>\r
-          <name>USBFS_EP0_DR2</name>\r
-          <description>wValueLo</description>\r
-          <addressOffset>0x1C6E</addressOffset>\r
-          <size>8</size>\r
+          <name>Debug_Timer_PERIOD</name>\r
+          <description>TMRx.PER0 - Assigned Period</description>\r
+          <addressOffset>0xB61</addressOffset>\r
+          <size>16</size>\r
           <access>read-write</access>\r
           <resetValue>0</resetValue>\r
           <resetMask>0</resetMask>\r
         </register>\r
         <register>\r
-          <name>USBFS_EP0_DR3</name>\r
-          <description>wValueHi</description>\r
-          <addressOffset>0x1C6F</addressOffset>\r
-          <size>8</size>\r
+          <name>Debug_Timer_COUNTER</name>\r
+          <description>TMRx.CNT_CMP0 - Current Down Counter Value</description>\r
+          <addressOffset>0xB63</addressOffset>\r
+          <size>16</size>\r
           <access>read-write</access>\r
           <resetValue>0</resetValue>\r
           <resetMask>0</resetMask>\r
         </register>\r
+      </registers>\r
+    </peripheral>\r
+    <peripheral>\r
+      <name>SCSI_Out_Ctl</name>\r
+      <description>No description available</description>\r
+      <baseAddress>0x40006577</baseAddress>\r
+      <addressBlock>\r
+        <offset>0</offset>\r
+        <size>0x1</size>\r
+        <usage>registers</usage>\r
+      </addressBlock>\r
+      <registers>\r
         <register>\r
-          <name>USBFS_EP0_DR4</name>\r
-          <description>wIndexLo</description>\r
-          <addressOffset>0x1C70</addressOffset>\r
+          <name>SCSI_Out_Ctl_CONTROL_REG</name>\r
+          <description>No description available</description>\r
+          <addressOffset>0x0</addressOffset>\r
           <size>8</size>\r
           <access>read-write</access>\r
           <resetValue>0</resetValue>\r
           <resetMask>0</resetMask>\r
         </register>\r
+      </registers>\r
+    </peripheral>\r
+    <peripheral>\r
+      <name>USBFS</name>\r
+      <description>USBFS</description>\r
+      <baseAddress>0x40004394</baseAddress>\r
+      <addressBlock>\r
+        <offset>0</offset>\r
+        <size>0x1D0A</size>\r
+        <usage>registers</usage>\r
+      </addressBlock>\r
+      <registers>\r
         <register>\r
-          <name>USBFS_EP0_DR5</name>\r
-          <description>wIndexHi</description>\r
-          <addressOffset>0x1C71</addressOffset>\r
+          <name>USBFS_PM_USB_CR0</name>\r
+          <description>USB Power Mode Control Register 0</description>\r
+          <addressOffset>0x0</addressOffset>\r
           <size>8</size>\r
           <access>read-write</access>\r
           <resetValue>0</resetValue>\r
           <resetMask>0</resetMask>\r
+          <fields>\r
+            <field>\r
+              <name>fsusbio_ref_en</name>\r
+              <description>No description available</description>\r
+              <lsb>0</lsb>\r
+              <msb>0</msb>\r
+              <access>read-write</access>\r
+            </field>\r
+            <field>\r
+              <name>fsusbio_pd_n</name>\r
+              <description>No description available</description>\r
+              <lsb>1</lsb>\r
+              <msb>1</msb>\r
+              <access>read-write</access>\r
+            </field>\r
+            <field>\r
+              <name>fsusbio_pd_pullup_n</name>\r
+              <description>No description available</description>\r
+              <lsb>2</lsb>\r
+              <msb>2</msb>\r
+              <access>read-write</access>\r
+            </field>\r
+          </fields>\r
         </register>\r
         <register>\r
-          <name>USBFS_EP0_DR6</name>\r
-          <description>lengthLo</description>\r
-          <addressOffset>0x1C72</addressOffset>\r
+          <name>USBFS_PM_ACT_CFG</name>\r
+          <description>Active Power Mode Configuration Register</description>\r
+          <addressOffset>0x11</addressOffset>\r
           <size>8</size>\r
           <access>read-write</access>\r
           <resetValue>0</resetValue>\r
           <resetMask>0</resetMask>\r
         </register>\r
         <register>\r
-          <name>USBFS_EP0_DR7</name>\r
-          <description>lengthHi</description>\r
-          <addressOffset>0x1C73</addressOffset>\r
+          <name>USBFS_PM_STBY_CFG</name>\r
+          <description>Standby Power Mode Configuration Register</description>\r
+          <addressOffset>0x21</addressOffset>\r
           <size>8</size>\r
           <access>read-write</access>\r
           <resetValue>0</resetValue>\r
           <resetMask>0</resetMask>\r
         </register>\r
         <register>\r
-          <name>USBFS_CR0</name>\r
-          <description>USB Control Register 0</description>\r
-          <addressOffset>0x1C74</addressOffset>\r
+          <name>USBFS_PRT_PS</name>\r
+          <description>Port Pin State Register</description>\r
+          <addressOffset>0xE5D</addressOffset>\r
           <size>8</size>\r
           <access>read-write</access>\r
           <resetValue>0</resetValue>\r
           <resetMask>0</resetMask>\r
           <fields>\r
             <field>\r
-              <name>device_address</name>\r
+              <name>PinState_DP</name>\r
               <description>No description available</description>\r
               <lsb>6</lsb>\r
-              <msb>0</msb>\r
+              <msb>6</msb>\r
               <access>read-only</access>\r
             </field>\r
             <field>\r
-              <name>usb_enable</name>\r
+              <name>PinState_DM</name>\r
               <description>No description available</description>\r
               <lsb>7</lsb>\r
               <msb>7</msb>\r
-              <access>read-write</access>\r
+              <access>read-only</access>\r
             </field>\r
           </fields>\r
         </register>\r
         <register>\r
-          <name>USBFS_CR1</name>\r
-          <description>USB Control Register 1</description>\r
-          <addressOffset>0x1C75</addressOffset>\r
+          <name>USBFS_PRT_DM0</name>\r
+          <description>Port Drive Mode Register</description>\r
+          <addressOffset>0xE5E</addressOffset>\r
           <size>8</size>\r
           <access>read-write</access>\r
           <resetValue>0</resetValue>\r
           <resetMask>0</resetMask>\r
           <fields>\r
             <field>\r
-              <name>reg_enable</name>\r
-              <description>No description available</description>\r
-              <lsb>0</lsb>\r
-              <msb>0</msb>\r
-              <access>read-write</access>\r
-            </field>\r
-            <field>\r
-              <name>enable_lock</name>\r
-              <description>No description available</description>\r
-              <lsb>1</lsb>\r
-              <msb>1</msb>\r
-              <access>read-write</access>\r
-            </field>\r
-            <field>\r
-              <name>bus_activity</name>\r
+              <name>DriveMode_DP</name>\r
               <description>No description available</description>\r
-              <lsb>2</lsb>\r
-              <msb>2</msb>\r
+              <lsb>6</lsb>\r
+              <msb>6</msb>\r
               <access>read-write</access>\r
             </field>\r
             <field>\r
-              <name>trim_offset_msb</name>\r
+              <name>DriveMode_DM</name>\r
               <description>No description available</description>\r
-              <lsb>3</lsb>\r
-              <msb>3</msb>\r
+              <lsb>7</lsb>\r
+              <msb>7</msb>\r
               <access>read-write</access>\r
             </field>\r
           </fields>\r
         </register>\r
-        <register>\r
-          <name>USBFS_SIE_EP1_CR0</name>\r
-          <description>The Endpoint1 Control Register</description>\r
-          <addressOffset>0x1C7A</addressOffset>\r
-          <size>8</size>\r
-          <access>read-write</access>\r
-          <resetValue>0</resetValue>\r
-          <resetMask>0</resetMask>\r
-        </register>\r
-        <register>\r
-          <name>USBFS_USBIO_CR0</name>\r
-          <description>USBIO Control Register 0</description>\r
-          <addressOffset>0x1C7C</addressOffset>\r
-          <size>8</size>\r
-          <access>read-write</access>\r
-          <resetValue>0</resetValue>\r
-          <resetMask>0</resetMask>\r
-          <fields>\r
-            <field>\r
-              <name>rd</name>\r
-              <description>No description available</description>\r
-              <lsb>0</lsb>\r
-              <msb>0</msb>\r
-              <access>read-only</access>\r
-            </field>\r
-            <field>\r
-              <name>td</name>\r
-              <description>No description available</description>\r
-              <lsb>5</lsb>\r
-              <msb>5</msb>\r
-              <access>read-write</access>\r
-            </field>\r
+        <register>\r
+          <name>USBFS_PRT_DM1</name>\r
+          <description>Port Drive Mode Register</description>\r
+          <addressOffset>0xE5F</addressOffset>\r
+          <size>8</size>\r
+          <access>read-write</access>\r
+          <resetValue>0</resetValue>\r
+          <resetMask>0</resetMask>\r
+          <fields>\r
             <field>\r
-              <name>tse0</name>\r
+              <name>PullUp_en_DP</name>\r
               <description>No description available</description>\r
               <lsb>6</lsb>\r
               <msb>6</msb>\r
               <access>read-write</access>\r
             </field>\r
             <field>\r
-              <name>ten</name>\r
+              <name>PullUp_en_DM</name>\r
               <description>No description available</description>\r
               <lsb>7</lsb>\r
               <msb>7</msb>\r
           </fields>\r
         </register>\r
         <register>\r
-          <name>USBFS_USBIO_CR1</name>\r
-          <description>USBIO Control Register 1</description>\r
-          <addressOffset>0x1C7E</addressOffset>\r
+          <name>USBFS_PRT_INP_DIS</name>\r
+          <description>Input buffer disable override</description>\r
+          <addressOffset>0xE64</addressOffset>\r
           <size>8</size>\r
           <access>read-write</access>\r
           <resetValue>0</resetValue>\r
           <resetMask>0</resetMask>\r
           <fields>\r
             <field>\r
-              <name>dmo</name>\r
-              <description>No description available</description>\r
-              <lsb>0</lsb>\r
-              <msb>0</msb>\r
-              <access>read-only</access>\r
-            </field>\r
-            <field>\r
-              <name>dpo</name>\r
-              <description>No description available</description>\r
-              <lsb>1</lsb>\r
-              <msb>1</msb>\r
-              <access>read-only</access>\r
-            </field>\r
-            <field>\r
-              <name>usbpuen</name>\r
+              <name>seinput_dis_dp</name>\r
               <description>No description available</description>\r
-              <lsb>2</lsb>\r
-              <msb>2</msb>\r
+              <lsb>6</lsb>\r
+              <msb>6</msb>\r
               <access>read-write</access>\r
             </field>\r
             <field>\r
-              <name>iomode</name>\r
+              <name>seinput_dis_dm</name>\r
               <description>No description available</description>\r
-              <lsb>5</lsb>\r
-              <msb>5</msb>\r
+              <lsb>7</lsb>\r
+              <msb>7</msb>\r
               <access>read-write</access>\r
             </field>\r
           </fields>\r
         </register>\r
         <register>\r
-          <name>USBFS_SIE_EP2_CR0</name>\r
-          <description>The Endpoint2 Control Register</description>\r
-          <addressOffset>0x1C8A</addressOffset>\r
-          <size>8</size>\r
-          <access>read-write</access>\r
-          <resetValue>0</resetValue>\r
-          <resetMask>0</resetMask>\r
-        </register>\r
-        <register>\r
-          <name>USBFS_SIE_EP3_CR0</name>\r
-          <description>The Endpoint3 Control Register</description>\r
-          <addressOffset>0x1C9A</addressOffset>\r
-          <size>8</size>\r
-          <access>read-write</access>\r
-          <resetValue>0</resetValue>\r
-          <resetMask>0</resetMask>\r
-        </register>\r
-        <register>\r
-          <name>USBFS_SIE_EP4_CR0</name>\r
-          <description>The Endpoint4 Control Register</description>\r
-          <addressOffset>0x1CAA</addressOffset>\r
-          <size>8</size>\r
-          <access>read-write</access>\r
-          <resetValue>0</resetValue>\r
-          <resetMask>0</resetMask>\r
-        </register>\r
-        <register>\r
-          <name>USBFS_SIE_EP5_CR0</name>\r
-          <description>The Endpoint5 Control Register</description>\r
-          <addressOffset>0x1CBA</addressOffset>\r
+          <name>USBFS_EP0_DR0</name>\r
+          <description>bmRequestType</description>\r
+          <addressOffset>0x1C6C</addressOffset>\r
           <size>8</size>\r
           <access>read-write</access>\r
           <resetValue>0</resetValue>\r
           <resetMask>0</resetMask>\r
         </register>\r
         <register>\r
-          <name>USBFS_SIE_EP6_CR0</name>\r
-          <description>The Endpoint6 Control Register</description>\r
-          <addressOffset>0x1CCA</addressOffset>\r
+          <name>USBFS_EP0_DR1</name>\r
+          <description>bRequest</description>\r
+          <addressOffset>0x1C6D</addressOffset>\r
           <size>8</size>\r
           <access>read-write</access>\r
           <resetValue>0</resetValue>\r
           <resetMask>0</resetMask>\r
         </register>\r
         <register>\r
-          <name>USBFS_SIE_EP7_CR0</name>\r
-          <description>The Endpoint7 Control Register</description>\r
-          <addressOffset>0x1CDA</addressOffset>\r
+          <name>USBFS_EP0_DR2</name>\r
+          <description>wValueLo</description>\r
+          <addressOffset>0x1C6E</addressOffset>\r
           <size>8</size>\r
           <access>read-write</access>\r
           <resetValue>0</resetValue>\r
           <resetMask>0</resetMask>\r
         </register>\r
         <register>\r
-          <name>USBFS_SIE_EP8_CR0</name>\r
-          <description>The Endpoint8 Control Register</description>\r
-          <addressOffset>0x1CEA</addressOffset>\r
+          <name>USBFS_EP0_DR3</name>\r
+          <description>wValueHi</description>\r
+          <addressOffset>0x1C6F</addressOffset>\r
           <size>8</size>\r
           <access>read-write</access>\r
           <resetValue>0</resetValue>\r
           <resetMask>0</resetMask>\r
         </register>\r
         <register>\r
-          <name>USBFS_BUF_SIZE</name>\r
-          <description>Dedicated Endpoint Buffer Size Register</description>\r
-          <addressOffset>0x1CF8</addressOffset>\r
+          <name>USBFS_EP0_DR4</name>\r
+          <description>wIndexLo</description>\r
+          <addressOffset>0x1C70</addressOffset>\r
           <size>8</size>\r
           <access>read-write</access>\r
           <resetValue>0</resetValue>\r
           <resetMask>0</resetMask>\r
         </register>\r
         <register>\r
-          <name>USBFS_EP_ACTIVE</name>\r
-          <description>Endpoint Active Indication Register</description>\r
-          <addressOffset>0x1CFA</addressOffset>\r
+          <name>USBFS_EP0_DR5</name>\r
+          <description>wIndexHi</description>\r
+          <addressOffset>0x1C71</addressOffset>\r
           <size>8</size>\r
           <access>read-write</access>\r
           <resetValue>0</resetValue>\r
           <resetMask>0</resetMask>\r
         </register>\r
         <register>\r
-          <name>USBFS_EP_TYPE</name>\r
-          <description>Endpoint Type (IN/OUT) Indication</description>\r
-          <addressOffset>0x1CFB</addressOffset>\r
+          <name>USBFS_EP0_DR6</name>\r
+          <description>lengthLo</description>\r
+          <addressOffset>0x1C72</addressOffset>\r
           <size>8</size>\r
           <access>read-write</access>\r
           <resetValue>0</resetValue>\r
           <resetMask>0</resetMask>\r
         </register>\r
         <register>\r
-          <name>USBFS_USB_CLK_EN</name>\r
-          <description>USB Block Clock Enable Register</description>\r
-          <addressOffset>0x1D09</addressOffset>\r
+          <name>USBFS_EP0_DR7</name>\r
+          <description>lengthHi</description>\r
+          <addressOffset>0x1C73</addressOffset>\r
           <size>8</size>\r
           <access>read-write</access>\r
           <resetValue>0</resetValue>\r
           <resetMask>0</resetMask>\r
         </register>\r
-      </registers>\r
-    </peripheral>\r
-    <peripheral>\r
-      <name>Debug_Timer</name>\r
-      <description>No description available</description>\r
-      <baseAddress>0x400043A3</baseAddress>\r
-      <addressBlock>\r
-        <offset>0</offset>\r
-        <size>0xB64</size>\r
-        <usage>registers</usage>\r
-      </addressBlock>\r
-      <registers>\r
         <register>\r
-          <name>Debug_Timer_GLOBAL_ENABLE</name>\r
-          <description>PM.ACT.CFG</description>\r
-          <addressOffset>0x0</addressOffset>\r
+          <name>USBFS_CR0</name>\r
+          <description>USB Control Register 0</description>\r
+          <addressOffset>0x1C74</addressOffset>\r
           <size>8</size>\r
           <access>read-write</access>\r
           <resetValue>0</resetValue>\r
           <resetMask>0</resetMask>\r
           <fields>\r
             <field>\r
-              <name>en_timer</name>\r
-              <description>Enable timer/counters.</description>\r
-              <lsb>0</lsb>\r
-              <msb>3</msb>\r
+              <name>device_address</name>\r
+              <description>No description available</description>\r
+              <lsb>6</lsb>\r
+              <msb>0</msb>\r
+              <access>read-only</access>\r
+            </field>\r
+            <field>\r
+              <name>usb_enable</name>\r
+              <description>No description available</description>\r
+              <lsb>7</lsb>\r
+              <msb>7</msb>\r
               <access>read-write</access>\r
             </field>\r
           </fields>\r
         </register>\r
         <register>\r
-          <name>Debug_Timer_CONTROL</name>\r
-          <description>TMRx.CFG0</description>\r
-          <addressOffset>0xB5D</addressOffset>\r
+          <name>USBFS_CR1</name>\r
+          <description>USB Control Register 1</description>\r
+          <addressOffset>0x1C75</addressOffset>\r
           <size>8</size>\r
           <access>read-write</access>\r
           <resetValue>0</resetValue>\r
           <resetMask>0</resetMask>\r
           <fields>\r
             <field>\r
-              <name>EN</name>\r
-              <description>Enables timer/comparator.</description>\r
+              <name>reg_enable</name>\r
+              <description>No description available</description>\r
               <lsb>0</lsb>\r
               <msb>0</msb>\r
               <access>read-write</access>\r
             </field>\r
             <field>\r
-              <name>MODE</name>\r
-              <description>Mode. (0 = Timer; 1 = Comparator)</description>\r
+              <name>enable_lock</name>\r
+              <description>No description available</description>\r
               <lsb>1</lsb>\r
               <msb>1</msb>\r
               <access>read-write</access>\r
-              <enumeratedValues>\r
-                <enumeratedValue>\r
-                  <name>Timer</name>\r
-                  <description>Timer mode. CNT/CMP register holds timer count value.</description>\r
-                  <value>0</value>\r
-                </enumeratedValue>\r
-                <enumeratedValue>\r
-                  <name>Comparator</name>\r
-                  <description>Comparator mode. CNT/CMP register holds comparator threshold value.</description>\r
-                  <value>1</value>\r
-                </enumeratedValue>\r
-              </enumeratedValues>\r
             </field>\r
             <field>\r
-              <name>ONESHOT</name>\r
-              <description>Timer stops upon reaching stop condition defined by TMR_CFG bits. Can be restarted by asserting TIMER RESET or disabling and re-enabling block.</description>\r
+              <name>bus_activity</name>\r
+              <description>No description available</description>\r
               <lsb>2</lsb>\r
               <msb>2</msb>\r
               <access>read-write</access>\r
             </field>\r
             <field>\r
-              <name>CMP_BUFF</name>\r
-              <description>Buffer compare register. Compare register updates only on timer terminal count.</description>\r
+              <name>trim_offset_msb</name>\r
+              <description>No description available</description>\r
               <lsb>3</lsb>\r
               <msb>3</msb>\r
               <access>read-write</access>\r
             </field>\r
-            <field>\r
-              <name>INV</name>\r
-              <description>Invert sense of TIMEREN signal</description>\r
-              <lsb>4</lsb>\r
-              <msb>4</msb>\r
-              <access>read-write</access>\r
-            </field>\r
-            <field>\r
-              <name>DB</name>\r
-              <description>Deadband mode--Deadband phases phi1 and phi2 are outputted on CMP and TC output pins respectively.</description>\r
-              <lsb>5</lsb>\r
-              <msb>5</msb>\r
-              <access>read-write</access>\r
-              <enumeratedValues>\r
-                <enumeratedValue>\r
-                  <name>Timer</name>\r
-                  <description>CMP and TC are output.</description>\r
-                  <value>0</value>\r
-                </enumeratedValue>\r
-                <enumeratedValue>\r
-                  <name>Deadband</name>\r
-                  <description>PHI1 (instead of CMP) and PHI2 (instead of TC) are output.</description>\r
-                  <value>1</value>\r
-                </enumeratedValue>\r
-              </enumeratedValues>\r
-            </field>\r
-            <field>\r
-              <name>DEADBAND_PERIOD</name>\r
-              <description>Deadband Period</description>\r
-              <lsb>6</lsb>\r
-              <msb>7</msb>\r
-              <access>read-write</access>\r
-            </field>\r
           </fields>\r
         </register>\r
         <register>\r
-          <name>Debug_Timer_CONTROL2</name>\r
-          <description>TMRx.CFG1</description>\r
-          <addressOffset>0xB5E</addressOffset>\r
+          <name>USBFS_SIE_EP1_CR0</name>\r
+          <description>The Endpoint1 Control Register</description>\r
+          <addressOffset>0x1C7A</addressOffset>\r
           <size>8</size>\r
-          <access>read-write</access>\r
-          <resetValue>0</resetValue>\r
-          <resetMask>0</resetMask>\r
-          <fields>\r
-            <field>\r
-              <name>IRQ_SEL</name>\r
-              <description>Irq selection. (0 = raw interrupts; 1 = status register interrupts)</description>\r
-              <lsb>0</lsb>\r
-              <msb>0</msb>\r
-              <access>read-write</access>\r
-            </field>\r
-            <field>\r
-              <name>FTC</name>\r
-              <description>First Terminal Count (FTC). Setting this bit forces a single pulse on the TC pin when first enabled.</description>\r
-              <lsb>1</lsb>\r
-              <msb>1</msb>\r
-              <access>read-write</access>\r
-              <enumeratedValues>\r
-                <enumeratedValue>\r
-                  <name>Disable_FTC</name>\r
-                  <description>Disable the single cycle pulse, which signifies the timer is starting.</description>\r
-                  <value>0</value>\r
-                </enumeratedValue>\r
-                <enumeratedValue>\r
-                  <name>Enable_FTC</name>\r
-                  <description>Enable the single cycle pulse, which signifies the timer is starting.</description>\r
-                  <value>1</value>\r
-                </enumeratedValue>\r
-              </enumeratedValues>\r
-            </field>\r
+          <access>read-write</access>\r
+          <resetValue>0</resetValue>\r
+          <resetMask>0</resetMask>\r
+        </register>\r
+        <register>\r
+          <name>USBFS_USBIO_CR0</name>\r
+          <description>USBIO Control Register 0</description>\r
+          <addressOffset>0x1C7C</addressOffset>\r
+          <size>8</size>\r
+          <access>read-write</access>\r
+          <resetValue>0</resetValue>\r
+          <resetMask>0</resetMask>\r
+          <fields>\r
             <field>\r
-              <name>DCOR</name>\r
-              <description>Disable Clear on Read (DCOR) of Status Register SR0.</description>\r
-              <lsb>2</lsb>\r
-              <msb>2</msb>\r
-              <access>read-write</access>\r
+              <name>rd</name>\r
+              <description>No description available</description>\r
+              <lsb>0</lsb>\r
+              <msb>0</msb>\r
+              <access>read-only</access>\r
             </field>\r
             <field>\r
-              <name>DBMODE</name>\r
-              <description>Deadband mode (asynchronous/synchronous). CMP output pin is also affected when not in deadband mode (CFG0.DEADBAND).</description>\r
-              <lsb>3</lsb>\r
-              <msb>3</msb>\r
+              <name>td</name>\r
+              <description>No description available</description>\r
+              <lsb>5</lsb>\r
+              <msb>5</msb>\r
               <access>read-write</access>\r
             </field>\r
             <field>\r
-              <name>CLK_BUS_EN_SEL</name>\r
-              <description>Digital Global Clock selection.</description>\r
-              <lsb>4</lsb>\r
+              <name>tse0</name>\r
+              <description>No description available</description>\r
+              <lsb>6</lsb>\r
               <msb>6</msb>\r
               <access>read-write</access>\r
             </field>\r
             <field>\r
-              <name>BUS_CLK_SEL</name>\r
-              <description>Bus Clock selection.</description>\r
+              <name>ten</name>\r
+              <description>No description available</description>\r
               <lsb>7</lsb>\r
               <msb>7</msb>\r
               <access>read-write</access>\r
           </fields>\r
         </register>\r
         <register>\r
-          <name>Debug_Timer_CONTROL3_</name>\r
-          <description>TMRx.CFG2</description>\r
-          <addressOffset>0xB5F</addressOffset>\r
+          <name>USBFS_USBIO_CR1</name>\r
+          <description>USBIO Control Register 1</description>\r
+          <addressOffset>0x1C7E</addressOffset>\r
           <size>8</size>\r
           <access>read-write</access>\r
           <resetValue>0</resetValue>\r
           <resetMask>0</resetMask>\r
           <fields>\r
             <field>\r
-              <name>TMR_CFG</name>\r
-              <description>Timer configuration (MODE = 0): 000 = Continuous; 001 = Pulsewidth; 010 = Period; 011 = Stop on IRQ</description>\r
+              <name>dmo</name>\r
+              <description>No description available</description>\r
               <lsb>0</lsb>\r
+              <msb>0</msb>\r
+              <access>read-only</access>\r
+            </field>\r
+            <field>\r
+              <name>dpo</name>\r
+              <description>No description available</description>\r
+              <lsb>1</lsb>\r
               <msb>1</msb>\r
-              <access>read-write</access>\r
-              <enumeratedValues>\r
-                <enumeratedValue>\r
-                  <name>Continuous</name>\r
-                  <description>Timer runs while EN bit of CFG0 register is set to '1'.</description>\r
-                  <value>0</value>\r
-                </enumeratedValue>\r
-                <enumeratedValue>\r
-                  <name>Pulsewidth</name>\r
-                  <description>Timer runs from positive to negative edge of TIMEREN.</description>\r
-                  <value>1</value>\r
-                </enumeratedValue>\r
-                <enumeratedValue>\r
-                  <name>Period</name>\r
-                  <description>Timer runs from positive to positive edge of TIMEREN.</description>\r
-                  <value>2</value>\r
-                </enumeratedValue>\r
-                <enumeratedValue>\r
-                  <name>Irq</name>\r
-                  <description>Timer runs until IRQ.</description>\r
-                  <value>3</value>\r
-                </enumeratedValue>\r
-              </enumeratedValues>\r
+              <access>read-only</access>\r
             </field>\r
             <field>\r
-              <name>COD</name>\r
-              <description>Clear On Disable (COD). Clears or gates outputs to zero.</description>\r
+              <name>usbpuen</name>\r
+              <description>No description available</description>\r
               <lsb>2</lsb>\r
               <msb>2</msb>\r
               <access>read-write</access>\r
             </field>\r
             <field>\r
-              <name>ROD</name>\r
-              <description>Reset On Disable (ROD). Resets internal state of output logic</description>\r
-              <lsb>3</lsb>\r
-              <msb>3</msb>\r
-              <access>read-write</access>\r
-            </field>\r
-            <field>\r
-              <name>CMP_CFG</name>\r
-              <description>Comparator configurations</description>\r
-              <lsb>4</lsb>\r
-              <msb>6</msb>\r
-              <access>read-write</access>\r
-              <enumeratedValues>\r
-                <enumeratedValue>\r
-                  <name>Equal</name>\r
-                  <description>Compare Equal </description>\r
-                  <value>0</value>\r
-                </enumeratedValue>\r
-                <enumeratedValue>\r
-                  <name>Less_than</name>\r
-                  <description>Compare Less Than </description>\r
-                  <value>1</value>\r
-                </enumeratedValue>\r
-                <enumeratedValue>\r
-                  <name>Less_than_or_equal</name>\r
-                  <description>Compare Less Than or Equal .</description>\r
-                  <value>2</value>\r
-                </enumeratedValue>\r
-                <enumeratedValue>\r
-                  <name>Greater</name>\r
-                  <description>Compare Greater Than .</description>\r
-                  <value>3</value>\r
-                </enumeratedValue>\r
-                <enumeratedValue>\r
-                  <name>Greater_than_or_equal</name>\r
-                  <description>Compare Greater Than or Equal </description>\r
-                  <value>4</value>\r
-                </enumeratedValue>\r
-              </enumeratedValues>\r
-            </field>\r
-            <field>\r
-              <name>HW_EN</name>\r
-              <description>When set Timer Enable controls counting.</description>\r
-              <lsb>7</lsb>\r
-              <msb>7</msb>\r
+              <name>iomode</name>\r
+              <description>No description available</description>\r
+              <lsb>5</lsb>\r
+              <msb>5</msb>\r
               <access>read-write</access>\r
             </field>\r
           </fields>\r
         </register>\r
         <register>\r
-          <name>Debug_Timer_PERIOD</name>\r
-          <description>TMRx.PER0 - Assigned Period</description>\r
-          <addressOffset>0xB61</addressOffset>\r
-          <size>16</size>\r
+          <name>USBFS_SIE_EP2_CR0</name>\r
+          <description>The Endpoint2 Control Register</description>\r
+          <addressOffset>0x1C8A</addressOffset>\r
+          <size>8</size>\r
           <access>read-write</access>\r
           <resetValue>0</resetValue>\r
           <resetMask>0</resetMask>\r
         </register>\r
         <register>\r
-          <name>Debug_Timer_COUNTER</name>\r
-          <description>TMRx.CNT_CMP0 - Current Down Counter Value</description>\r
-          <addressOffset>0xB63</addressOffset>\r
-          <size>16</size>\r
+          <name>USBFS_SIE_EP3_CR0</name>\r
+          <description>The Endpoint3 Control Register</description>\r
+          <addressOffset>0x1C9A</addressOffset>\r
+          <size>8</size>\r
           <access>read-write</access>\r
           <resetValue>0</resetValue>\r
           <resetMask>0</resetMask>\r
         </register>\r
-      </registers>\r
-    </peripheral>\r
-    <peripheral>\r
-      <name>SCSI_Out_Ctl</name>\r
-      <description>No description available</description>\r
-      <baseAddress>0x40006473</baseAddress>\r
-      <addressBlock>\r
-        <offset>0</offset>\r
-        <size>0x1</size>\r
-        <usage>registers</usage>\r
-      </addressBlock>\r
-      <registers>\r
         <register>\r
-          <name>SCSI_Out_Ctl_CONTROL_REG</name>\r
-          <description>No description available</description>\r
-          <addressOffset>0x0</addressOffset>\r
+          <name>USBFS_SIE_EP4_CR0</name>\r
+          <description>The Endpoint4 Control Register</description>\r
+          <addressOffset>0x1CAA</addressOffset>\r
           <size>8</size>\r
           <access>read-write</access>\r
           <resetValue>0</resetValue>\r
           <resetMask>0</resetMask>\r
         </register>\r
-      </registers>\r
-    </peripheral>\r
-    <peripheral>\r
-      <name>SCSI_Out_Bits</name>\r
-      <description>No description available</description>\r
-      <baseAddress>0x40006470</baseAddress>\r
-      <addressBlock>\r
-        <offset>0</offset>\r
-        <size>0x1</size>\r
-        <usage>registers</usage>\r
-      </addressBlock>\r
-      <registers>\r
         <register>\r
-          <name>SCSI_Out_Bits_CONTROL_REG</name>\r
-          <description>No description available</description>\r
-          <addressOffset>0x0</addressOffset>\r
+          <name>USBFS_SIE_EP5_CR0</name>\r
+          <description>The Endpoint5 Control Register</description>\r
+          <addressOffset>0x1CBA</addressOffset>\r
           <size>8</size>\r
           <access>read-write</access>\r
           <resetValue>0</resetValue>\r
           <resetMask>0</resetMask>\r
         </register>\r
-      </registers>\r
-    </peripheral>\r
-    <peripheral>\r
-      <name>SD_Clk_Ctl</name>\r
-      <description>No description available</description>\r
-      <baseAddress>0x40006472</baseAddress>\r
-      <addressBlock>\r
-        <offset>0</offset>\r
-        <size>0x1</size>\r
-        <usage>registers</usage>\r
-      </addressBlock>\r
-      <registers>\r
         <register>\r
-          <name>SD_Clk_Ctl_CONTROL_REG</name>\r
-          <description>No description available</description>\r
-          <addressOffset>0x0</addressOffset>\r
+          <name>USBFS_SIE_EP6_CR0</name>\r
+          <description>The Endpoint6 Control Register</description>\r
+          <addressOffset>0x1CCA</addressOffset>\r
+          <size>8</size>\r
+          <access>read-write</access>\r
+          <resetValue>0</resetValue>\r
+          <resetMask>0</resetMask>\r
+        </register>\r
+        <register>\r
+          <name>USBFS_SIE_EP7_CR0</name>\r
+          <description>The Endpoint7 Control Register</description>\r
+          <addressOffset>0x1CDA</addressOffset>\r
+          <size>8</size>\r
+          <access>read-write</access>\r
+          <resetValue>0</resetValue>\r
+          <resetMask>0</resetMask>\r
+        </register>\r
+        <register>\r
+          <name>USBFS_SIE_EP8_CR0</name>\r
+          <description>The Endpoint8 Control Register</description>\r
+          <addressOffset>0x1CEA</addressOffset>\r
+          <size>8</size>\r
+          <access>read-write</access>\r
+          <resetValue>0</resetValue>\r
+          <resetMask>0</resetMask>\r
+        </register>\r
+        <register>\r
+          <name>USBFS_BUF_SIZE</name>\r
+          <description>Dedicated Endpoint Buffer Size Register</description>\r
+          <addressOffset>0x1CF8</addressOffset>\r
+          <size>8</size>\r
+          <access>read-write</access>\r
+          <resetValue>0</resetValue>\r
+          <resetMask>0</resetMask>\r
+        </register>\r
+        <register>\r
+          <name>USBFS_EP_ACTIVE</name>\r
+          <description>Endpoint Active Indication Register</description>\r
+          <addressOffset>0x1CFA</addressOffset>\r
+          <size>8</size>\r
+          <access>read-write</access>\r
+          <resetValue>0</resetValue>\r
+          <resetMask>0</resetMask>\r
+        </register>\r
+        <register>\r
+          <name>USBFS_EP_TYPE</name>\r
+          <description>Endpoint Type (IN/OUT) Indication</description>\r
+          <addressOffset>0x1CFB</addressOffset>\r
+          <size>8</size>\r
+          <access>read-write</access>\r
+          <resetValue>0</resetValue>\r
+          <resetMask>0</resetMask>\r
+        </register>\r
+        <register>\r
+          <name>USBFS_USB_CLK_EN</name>\r
+          <description>USB Block Clock Enable Register</description>\r
+          <addressOffset>0x1D09</addressOffset>\r
           <size>8</size>\r
           <access>read-write</access>\r
           <resetValue>0</resetValue>\r
     <peripheral>\r
       <name>SCSI_CTL_PHASE</name>\r
       <description>No description available</description>\r
-      <baseAddress>0x40006475</baseAddress>\r
+      <baseAddress>0x40006472</baseAddress>\r
       <addressBlock>\r
         <offset>0</offset>\r
         <size>0x1</size>\r
index afb8fbddbb17670a052816846dc1abbe7b62273f..3602a0d79d14014cf3a09bae7a2db303212a9a57 100755 (executable)
Binary files a/software/SCSI2SD/SCSI2SD.cydsn/TopDesign/TopDesign.cysch and b/software/SCSI2SD/SCSI2SD.cydsn/TopDesign/TopDesign.cysch differ
index 2671f59329d771b20843194fa2dbaefb8d06de57..1eeb6a0efc1e2469eb706258ec6ed1e67399f702 100755 (executable)
Binary files a/software/SCSI2SD/SCSI2SD.cydsn/scsiTarget/scsiTarget.cysym and b/software/SCSI2SD/SCSI2SD.cydsn/scsiTarget/scsiTarget.cysym differ
index 91dbc273775f8cb22a24bbc3ab875e03b4762843..5d46c5ac691673c65aebc251d596176f3771759e 100755 (executable)
@@ -27,7 +27,9 @@ module scsiTarget (
        input  [7:0] nDBx_in, // Active LOW, connected directly to SCSI bus.\r
        input   IO, // Active High, set by CPU via status register.\r
        input   nRST, // Active LOW, connected directly to SCSI bus.\r
-       input   clk\r
+       input   clk,\r
+       output tx_intr,\r
+       output rx_intr\r
 );\r
 \r
 \r
@@ -47,28 +49,6 @@ cy_psoc3_udb_clock_enable_v1_0 #(.sync_mode(`TRUE)) ClkSync
     .clock_out(op_clk)\r
 );\r
 \r
-/////////////////////////////////////////////////////////////////////////////\r
-// FIFO Status Register\r
-/////////////////////////////////////////////////////////////////////////////\r
-// Status Register: scsiTarget_StatusReg__STATUS_REG\r
-//     Bit 0: Tx FIFO not full\r
-//     Bit 1: Rx FIFO not empty\r
-//     Bit 2: Tx FIFO empty\r
-//     Bit 3: Rx FIFO full\r
-//\r
-// TX FIFO Register: scsiTarget_scsiTarget_u0__F0_REG\r
-// RX FIFO Register: scsiTarget_scsiTarget_u0__F1_REG\r
-// Use with CY_GET_REG8 and CY_SET_REG8\r
-wire f0_bus_stat;   // Tx FIFO not full\r
-wire f0_blk_stat;      // Tx FIFO empty\r
-wire f1_bus_stat;      // Rx FIFO not empty\r
-wire f1_blk_stat;      // Rx FIFO full\r
-cy_psoc3_status #(.cy_force_order(1), .cy_md_select(8'h00)) StatusReg\r
-(\r
-    /* input          */  .clock(op_clk),\r
-    /* input  [04:00] */  .status({4'b0, f1_blk_stat, f0_blk_stat, f1_bus_stat, f0_bus_stat})\r
-);\r
-\r
 /////////////////////////////////////////////////////////////////////////////\r
 // CONSTANTS\r
 /////////////////////////////////////////////////////////////////////////////\r
@@ -80,7 +60,7 @@ localparam IO_READ = 1'b0;
 /////////////////////////////////////////////////////////////////////////////\r
 // TX States:\r
 // IDLE\r
-//     Wait for an entry in the FIFO, and for the SCSI Initiator to be ready\r
+//     Wait for the SCSI Initiator to be ready\r
 // FIFOLOAD\r
 //     Load F0 into A0. Feed (old) A0 into the ALU SRCA.\r
 // TX\r
@@ -91,11 +71,12 @@ localparam IO_READ = 1'b0;
 //     Load deskew clock count into A0 from D0\r
 // DESKEW\r
 //     DBx output signals will be output in this state\r
-//     Wait for the SCSI deskew time of 55ms. (DEC A0).\r
+//     Wait for the SCSI deskew time of 55ns. (DEC A0).\r
 //     A1 must be fed into SRCA, so PO is now useless.\r
 // READY\r
 //     REQ and DBx output signals will be output in this state\r
-//     Wait for acknowledgement from the SCSI initiator.\r
+//     Wait for acknowledgement from the SCSI initiator\r
+//     Wait for space in output fifo\r
 // RX\r
 //     Dummy state for flow control.\r
 //     REQ signal will be output in this state\r
@@ -103,8 +84,8 @@ localparam IO_READ = 1'b0;
 //\r
 // RX States:\r
 // IDLE\r
-//     Wait for a dummy "enabling" entry in the input FIFO, and wait for space\r
-//     in output the FIFO, and for the SCSI Initiator to be ready\r
+//     Wait for a dummy "enabling" entry in the input FIFO,\r
+//     and for the SCSI Initiator to be ready\r
 // FIFOLOAD\r
 //     Load F0 into A0.\r
 //     The input FIFO is used to control the number of bytes we attempt to\r
@@ -112,6 +93,7 @@ localparam IO_READ = 1'b0;
 // READY\r
 //     REQ signal will be output in this state\r
 //     Wait for the initiator to send a byte on the SCSI bus.\r
+//     Wait for space in output fifo\r
 // RX\r
 //     REQ signal will be output in this state\r
 //     PI enabled for input into ALU "PASS" operation, storing into F1.\r
@@ -152,6 +134,38 @@ assign DBx_out[7:0] = data;
 assign pi[7:0] = ~nDBx_in[7:0]; // Invert active low scsi bus\r
 assign fifoStore = (state == STATE_RX) ? 1'b1 : 1'b0;\r
 \r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// FIFO Status Register\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Status Register: scsiTarget_StatusReg__STATUS_REG\r
+//     Bit 0: Tx FIFO not full\r
+//     Bit 1: Rx FIFO not empty\r
+//     Bit 2: Tx FIFO empty\r
+//     Bit 3: Rx FIFO full\r
+//     Bit 4: TX Complete. Fifos empty and idle.\r
+//\r
+// TX FIFO Register: scsiTarget_scsiTarget_u0__F0_REG\r
+// RX FIFO Register: scsiTarget_scsiTarget_u0__F1_REG\r
+// Use with CY_GET_REG8 and CY_SET_REG8\r
+wire f0_bus_stat;   // Tx FIFO not full\r
+wire f0_blk_stat;      // Tx FIFO empty\r
+wire f1_bus_stat;      // Rx FIFO not empty\r
+wire f1_blk_stat;      // Rx FIFO full\r
+wire txComplete = f0_blk_stat && (state == STATE_IDLE);\r
+cy_psoc3_status #(.cy_force_order(1), .cy_md_select(8'h00)) StatusReg\r
+(\r
+    /* input          */  .clock(op_clk),\r
+    /* input  [04:00] */  .status({3'b0, txComplete, f1_blk_stat, f0_blk_stat, f1_bus_stat, f0_bus_stat})\r
+);\r
+\r
+// DMA outputs\r
+assign tx_intr = f0_bus_stat;\r
+assign rx_intr = f1_bus_stat;\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// State machine\r
+/////////////////////////////////////////////////////////////////////////////\r
 always @(posedge op_clk) begin\r
        case (state)\r
                STATE_IDLE:\r
@@ -160,7 +174,7 @@ always @(posedge op_clk) begin
                        // and output FIFO is not full.\r
                        // Note that output FIFO is unused in TX mode.\r
                        if (!nRST) state <= STATE_IDLE;\r
-                       else if (nACK & !f0_blk_stat && !f1_blk_stat)\r
+                       else if (nACK & !f0_blk_stat)\r
                                state <= STATE_FIFOLOAD;\r
                        else\r
                                state <= STATE_IDLE;\r
@@ -191,68 +205,74 @@ always @(posedge op_clk) begin
 \r
                STATE_READY:\r
                        if (!nRST) state <= STATE_IDLE;\r
-                       else if (~nACK) state <= STATE_RX;\r
+                       else if (~nACK && ((IO == IO_WRITE) || !f1_blk_stat)) state <= STATE_RX;\r
                        else state <= STATE_READY;\r
 \r
-               STATE_RX: state <= STATE_IDLE;\r
+               STATE_RX: // same code here as for the IDLE state, as we make\r
+                       // a quick run back to the next byte if possible.\r
+                       if (!nRST) state <= STATE_IDLE;\r
+                       else if (nACK & !f0_blk_stat)\r
+                               state <= STATE_FIFOLOAD;\r
+                       else\r
+                               state <= STATE_IDLE;\r
 \r
                default: state <= STATE_IDLE;\r
        endcase\r
 end\r
 \r
-// D1 is used for the deskew count.\r
+// D0 is used for the deskew count.\r
 // The data output is valid during the DESKEW_INIT phase as well,\r
 // so we subtract 1.\r
-// D1 = [0.000000055 / (1 / clk)] - 1\r
-cy_psoc3_dp #(.d1_init(1), \r
+// D0 = [0.000000055 / (1 / clk)] - 1\r
+cy_psoc3_dp #(.d0_init(2), \r
 .cy_dpconfig(\r
 {\r
     `CS_ALU_OP_PASS, `CS_SRCA_A0, `CS_SRCB_D0,\r
     `CS_SHFT_OP_PASS, `CS_A0_SRC_NONE, `CS_A1_SRC_NONE,\r
     `CS_FEEDBACK_DSBL, `CS_CI_SEL_CFGA, `CS_SI_SEL_CFGA,\r
-    `CS_CMP_SEL_CFGA, /*CFGRAM0:         IDLE*/\r
+    `CS_CMP_SEL_CFGA, /*CFGRAM0:          IDLE*/\r
     `CS_ALU_OP_PASS, `CS_SRCA_A0, `CS_SRCB_D0,\r
     `CS_SHFT_OP_PASS, `CS_A0_SRC___F0, `CS_A1_SRC_NONE,\r
     `CS_FEEDBACK_DSBL, `CS_CI_SEL_CFGA, `CS_SI_SEL_CFGA,\r
-    `CS_CMP_SEL_CFGA, /*CFGRAM1:         FIFO Load*/\r
+    `CS_CMP_SEL_CFGA, /*CFGRAM1:          FIFO Load*/\r
     `CS_ALU_OP_PASS, `CS_SRCA_A0, `CS_SRCB_D0,\r
     `CS_SHFT_OP_PASS, `CS_A0_SRC_NONE, `CS_A1_SRC_NONE,\r
     `CS_FEEDBACK_DSBL, `CS_CI_SEL_CFGA, `CS_SI_SEL_CFGA,\r
-    `CS_CMP_SEL_CFGA, /*CFGRAM2:         TX*/\r
+    `CS_CMP_SEL_CFGA, /*CFGRAM2:          TX*/\r
     `CS_ALU_OP_PASS, `CS_SRCA_A0, `CS_SRCB_D0,\r
     `CS_SHFT_OP_PASS, `CS_A0_SRC___D0, `CS_A1_SRC_NONE,\r
     `CS_FEEDBACK_DSBL, `CS_CI_SEL_CFGA, `CS_SI_SEL_CFGA,\r
-    `CS_CMP_SEL_CFGA, /*CFGRAM3:         DESKEW INIT*/\r
+    `CS_CMP_SEL_CFGA, /*CFGRAM3:          DESKEW INIT*/\r
     `CS_ALU_OP__DEC, `CS_SRCA_A0, `CS_SRCB_D0,\r
     `CS_SHFT_OP_PASS, `CS_A0_SRC__ALU, `CS_A1_SRC_NONE,\r
     `CS_FEEDBACK_DSBL, `CS_CI_SEL_CFGA, `CS_SI_SEL_CFGA,\r
-    `CS_CMP_SEL_CFGA, /*CFGRAM4:         DESKEW*/\r
+    `CS_CMP_SEL_CFGA, /*CFGRAM4:          DESKEW*/\r
     `CS_ALU_OP_PASS, `CS_SRCA_A0, `CS_SRCB_D0,\r
     `CS_SHFT_OP_PASS, `CS_A0_SRC_NONE, `CS_A1_SRC_NONE,\r
     `CS_FEEDBACK_DSBL, `CS_CI_SEL_CFGA, `CS_SI_SEL_CFGA,\r
-    `CS_CMP_SEL_CFGA, /*CFGRAM5:   Not used*/\r
+    `CS_CMP_SEL_CFGA, /*CFGRAM5:    Not used*/\r
     `CS_ALU_OP_PASS, `CS_SRCA_A0, `CS_SRCB_D0,\r
     `CS_SHFT_OP_PASS, `CS_A0_SRC_NONE, `CS_A1_SRC_NONE,\r
     `CS_FEEDBACK_DSBL, `CS_CI_SEL_CFGA, `CS_SI_SEL_CFGA,\r
-    `CS_CMP_SEL_CFGA, /*CFGRAM6:         READY*/\r
+    `CS_CMP_SEL_CFGA, /*CFGRAM6:          READY*/\r
     `CS_ALU_OP_PASS, `CS_SRCA_A0, `CS_SRCB_D0,\r
     `CS_SHFT_OP_PASS, `CS_A0_SRC_NONE, `CS_A1_SRC_NONE,\r
     `CS_FEEDBACK_ENBL, `CS_CI_SEL_CFGA, `CS_SI_SEL_CFGA,\r
-    `CS_CMP_SEL_CFGA, /*CFGRAM7:         RX*/\r
-    8'hFF, 8'h00,  /*CFG9:            */\r
-    8'hFF, 8'hFF,  /*CFG11-10:            */\r
+    `CS_CMP_SEL_CFGA, /*CFGRAM7:          RX*/\r
+    8'hFF, 8'h00,  /*CFG9:             */\r
+    8'hFF, 8'hFF,  /*CFG11-10:             */\r
     `SC_CMPB_A1_D1, `SC_CMPA_A1_D1, `SC_CI_B_ARITH,\r
     `SC_CI_A_ARITH, `SC_C1_MASK_DSBL, `SC_C0_MASK_DSBL,\r
     `SC_A_MASK_DSBL, `SC_DEF_SI_0, `SC_SI_B_DEFSI,\r
-    `SC_SI_A_DEFSI, /*CFG13-12:            */\r
+    `SC_SI_A_DEFSI, /*CFG13-12:             */\r
     `SC_A0_SRC_ACC, `SC_SHIFT_SL, `SC_PI_DYN_EN,\r
     1'h0, `SC_FIFO1_ALU, `SC_FIFO0_BUS,\r
     `SC_MSB_DSBL, `SC_MSB_BIT0, `SC_MSB_NOCHN,\r
     `SC_FB_NOCHN, `SC_CMP1_NOCHN,\r
-    `SC_CMP0_NOCHN, /*CFG15-14:            */\r
+    `SC_CMP0_NOCHN, /*CFG15-14:             */\r
     10'h00, `SC_FIFO_CLK__DP,`SC_FIFO_CAP_AX,\r
     `SC_FIFO_LEVEL,`SC_FIFO__SYNC,`SC_EXTCRC_DSBL,\r
-    `SC_WRK16CAT_DSBL /*CFG17-16:            */\r
+    `SC_WRK16CAT_DSBL /*CFG17-16:             */\r
 }\r
 )) datapath(\r
         /*  input                   */  .reset(1'b0),\r
@@ -308,3 +328,4 @@ cy_psoc3_dp #(.d1_init(1),
 endmodule\r
 //`#start footer` -- edit after this line, do not edit this line\r
 //`#end` -- edit above this line, do not edit this line\r
+\r
index 75099ceb4ec3d98621ba98ae054963c80ca51c0b..afcb84ff982a963c40107d2333dde90281aaad33 100755 (executable)
@@ -18,7 +18,7 @@
       <Tool Name="postbuild" Command="" Options="" />\r
     </Toolchain>\r
   </Toolchains>\r
-  <Project Name="USB_Bootloader" Path="W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn" Version="4.0" Type="Bootloader">\r
+  <Project Name="USB_Bootloader" Path="Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn" Version="4.0" Type="Bootloader">\r
     <CMSIS_SVD_File>USB_Bootloader.svd</CMSIS_SVD_File>\r
     <Datasheet />\r
     <LinkerFiles>\r
       <LinkerFile Toolchain="IAR EWARM">.\Generated_Source\PSoC5\Cm3Iar.icf</LinkerFile>\r
     </LinkerFiles>\r
     <Folders>\r
-      <Folder BuildType="BUILD" Path="W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn">\r
-        <Files Root="W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn">\r
+      <Folder BuildType="BUILD" Path="Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn">\r
+        <Files Root="Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn">\r
           <File BuildType="BUILD" Toolchain="">.\main.c</File>\r
         </Files>\r
       </Folder>\r
-      <Folder BuildType="STRICT" Path="W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\Generated_Source\PSoC5">\r
-        <Files Root="W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn">\r
+      <Folder BuildType="STRICT" Path="Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\Generated_Source\PSoC5">\r
+        <Files Root="Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn">\r
           <File BuildType="BUILD" Toolchain="">.\Generated_Source\PSoC5\cyfitter_cfg.h</File>\r
           <File BuildType="BUILD" Toolchain="">.\Generated_Source\PSoC5\cyfitter_cfg.c</File>\r
           <File BuildType="BUILD" Toolchain="">.\Generated_Source\PSoC5\cymetadata.c</File>\r
           <File BuildType="BUILD" Toolchain="">.\Generated_Source\PSoC5\libelf.dll</File>\r
         </Files>\r
       </Folder>\r
-      <Folder BuildType="STRICT" Path="W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\Generated_Source\PSoC5\ARM_GCC">\r
-        <Files Root="W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn">\r
+      <Folder BuildType="STRICT" Path="Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\Generated_Source\PSoC5\ARM_GCC">\r
+        <Files Root="Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn">\r
           <File BuildType="BUILD" Toolchain="ARM GCC">.\Generated_Source\PSoC5\ARM_GCC\CyComponentLibrary.a</File>\r
         </Files>\r
       </Folder>\r
-      <Folder BuildType="STRICT" Path="W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\Generated_Source\PSoC5\ARM_Keil_MDK">\r
-        <Files Root="W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn">\r
+      <Folder BuildType="STRICT" Path="Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\Generated_Source\PSoC5\ARM_Keil_MDK">\r
+        <Files Root="Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn">\r
           <File BuildType="BUILD" Toolchain="ARM Keil MDK">.\Generated_Source\PSoC5\ARM_Keil_MDK\CyComponentLibrary.a</File>\r
         </Files>\r
       </Folder>\r
-      <Folder BuildType="STRICT" Path="W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\Generated_Source\PSoC5\IAR">\r
-        <Files Root="W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn">\r
+      <Folder BuildType="STRICT" Path="Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\Generated_Source\PSoC5\IAR">\r
+        <Files Root="Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn">\r
           <File BuildType="BUILD" Toolchain="IAR">.\Generated_Source\PSoC5\IAR\CyComponentLibrary.a</File>\r
         </Files>\r
       </Folder>\r
       <Folder BuildType="EXCLUDE" Path=".\codegentemp">\r
-        <Files Root="W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn" />\r
+        <Files Root="Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn" />\r
       </Folder>\r
       <Folder BuildType="EXCLUDE" Path=".\ARM_GCC_441">\r
-        <Files Root="W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn" />\r
+        <Files Root="Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn" />\r
       </Folder>\r
       <Folder BuildType="EXCLUDE" Path=".\ARM_GCC_473">\r
-        <Files Root="W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn" />\r
+        <Files Root="Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn" />\r
       </Folder>\r
       <Folder BuildType="EXCLUDE" Path=".\DP8051_Keil_951">\r
-        <Files Root="W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn" />\r
+        <Files Root="Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn" />\r
       </Folder>\r
       <Folder BuildType="EXCLUDE" Path=".\DP8051">\r
-        <Files Root="W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn" />\r
+        <Files Root="Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn" />\r
       </Folder>\r
       <Folder BuildType="EXCLUDE" Path=".\CortexM0">\r
-        <Files Root="W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn" />\r
+        <Files Root="Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn" />\r
       </Folder>\r
       <Folder BuildType="EXCLUDE" Path=".\CortexM3">\r
-        <Files Root="W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn" />\r
+        <Files Root="Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn" />\r
       </Folder>\r
     </Folders>\r
   </Project>\r
old mode 100755 (executable)
new mode 100644 (file)
index 08bc6f0..e12d65d
Binary files a/software/SCSI2SD/USB_Bootloader.cydsn/USB_Bootloader.cyfit and b/software/SCSI2SD/USB_Bootloader.cydsn/USB_Bootloader.cyfit differ
index 60d50ee9cbd588aa6c572c7a96eb9292d942d287..962c2c52a40a23daf1248f4daf047ec77d9ff04f 100755 (executable)
 <name_val_pair name="W:\SCSI2SD\USB_Bootloader.cydsn\CortexM3\ARM_GCC_473\Release\USB_Bootloader.hex" v="&quot;-mthumb &quot;&quot;-march=armv7-m &quot;&quot;-mfix-cortex-m3-ldrd &quot;&quot;-T &quot;&quot;.\Generated_Source\PSoC5\cm3gcc.ld &quot;&quot;-g &quot;&quot;-Wl,-Map,${OutputDir}\${ProjectShortName}.map &quot;&quot;-specs=nano.specs &quot;&quot;-Wl,--gc-sections &quot;" />\r
 <name_val_pair name=".\Generated_Source\PSoC5\SD_PULLUP.c" v="&quot;-I. &quot;&quot;-I./Generated_Source/PSoC5 &quot;&quot;-Wno-main &quot;&quot;-mcpu=cortex-m3 &quot;&quot;-mthumb &quot;&quot;-Wall &quot;&quot;-g &quot;&quot;-D &quot;&quot;NDEBUG &quot;&quot;-Wa,-alh=${OutputDir}\${CompileFile}.lst &quot;&quot;-Os &quot;&quot;-ffunction-sections &quot;" />\r
 <name_val_pair name="W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\CortexM3\ARM_GCC_473\Release\USB_Bootloader.hex" v="&quot;-mthumb &quot;&quot;-march=armv7-m &quot;&quot;-mfix-cortex-m3-ldrd &quot;&quot;-T &quot;&quot;.\Generated_Source\PSoC5\cm3gcc.ld &quot;&quot;-g &quot;&quot;-Wl,-Map,${OutputDir}\${ProjectShortName}.map &quot;&quot;-specs=nano.specs &quot;&quot;-Wl,--gc-sections &quot;" />\r
+<name_val_pair name="Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\CortexM3\ARM_GCC_473\Release\USB_Bootloader.hex" v="&quot;-mthumb &quot;&quot;-march=armv7-m &quot;&quot;-mfix-cortex-m3-ldrd &quot;&quot;-T &quot;&quot;.\Generated_Source\PSoC5\cm3gcc.ld &quot;&quot;-g &quot;&quot;-Wl,-Map,${OutputDir}\${ProjectShortName}.map &quot;&quot;-specs=nano.specs &quot;&quot;-Wl,--gc-sections &quot;" />\r
 </name>\r
 <name v="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3">\r
 <name_val_pair name=".\main.c" v="&quot;-I. &quot;&quot;-I./Generated_Source/PSoC5 &quot;&quot;-Wno-main &quot;&quot;-mcpu=cortex-m3 &quot;&quot;-mthumb &quot;&quot;-Wall &quot;&quot;-g &quot;&quot;-D &quot;&quot;DEBUG &quot;&quot;-Wa,-alh=${OutputDir}\${CompileFile}.lst &quot;&quot;-ffunction-sections &quot;" />\r
 <name_val_pair name="W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\CortexM3\ARM_GCC_473\Debug\USB_Bootloader.hex" v="&quot;-mthumb &quot;&quot;-march=armv7-m &quot;&quot;-mfix-cortex-m3-ldrd &quot;&quot;-T &quot;&quot;.\Generated_Source\PSoC5\cm3gcc.ld &quot;&quot;-g &quot;&quot;-Wl,-Map,${OutputDir}\${ProjectShortName}.map &quot;&quot;-specs=nano.specs &quot;&quot;-Wl,--gc-sections &quot;" />\r
 </name>\r
 </genericCmdLineData>\r
-<codeGenCmdLineTag v="&quot;-.appdatapath&quot; &quot;C:\Users\Micha_000\AppData\Local\Cypress Semiconductor\PSoC Creator\3.0&quot; &quot;-.fdsnotice&quot; &quot;-.fdswarpdepfile=warp_dependencies.txt&quot; &quot;-.fdselabdepfile=elab_dependencies.txt&quot; &quot;-.fdsbldfile=generated_files.txt&quot; &quot;-p&quot; &quot;W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\USB_Bootloader.cyprj&quot; &quot;-d&quot; &quot;CY8C5267AXI-LP051&quot; &quot;-s&quot; &quot;W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\Generated_Source\PSoC5&quot; &quot;--&quot; &quot;-yv2&quot; &quot;-v3&quot; &quot;-ygs&quot; &quot;-q10&quot; &quot;-o2&quot; &quot;-.fftcfgtype=LE&quot; " />\r
+<codeGenCmdLineTag v="&quot;-.appdatapath&quot; &quot;C:\Users\Micha_000\AppData\Local\Cypress Semiconductor\PSoC Creator\3.0&quot; &quot;-.fdsnotice&quot; &quot;-.fdswarpdepfile=warp_dependencies.txt&quot; &quot;-.fdselabdepfile=elab_dependencies.txt&quot; &quot;-.fdsbldfile=generated_files.txt&quot; &quot;-p&quot; &quot;Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\USB_Bootloader.cyprj&quot; &quot;-d&quot; &quot;CY8C5267AXI-LP051&quot; &quot;-s&quot; &quot;Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\Generated_Source\PSoC5&quot; &quot;--&quot; &quot;-yv2&quot; &quot;-v3&quot; &quot;-ygs&quot; &quot;-q10&quot; &quot;-o2&quot; &quot;-.fftcfgtype=LE&quot; " />\r
 </CyGuid_b0374e30-ce3a-47f2-ad85-821643292c68>\r
 </dataGuid>\r
 <dataGuid v="597c5b74-0c46-4204-8b7f-96f3570671dc">\r
 <v>C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\stdlogic\mod_genv.vif</v>\r
 <v>C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\stdlogic\rtlpkg.vif</v>\r
 </warp_dep>\r
-<deps_time v="130421205782926169" />\r
+<deps_time v="130450587785176249" />\r
 <top_block v="TopDesign" />\r
 <last_generation v="0" />\r
 </CyGuid_925cc1e1-309e-4e08-b0a1-09a83c35b157>\r
 </dataGuid>\r
 <dataGuid v="769d31ea-68b1-4f0c-b90a-7c10a43ee563">\r
 <CyGuid_769d31ea-68b1-4f0c-b90a-7c10a43ee563 type_name="CyDesigner.Common.ProjMgmt.Model.CyLinkCustomData" version="1">\r
-<deps_time v="130421206235126109" />\r
+<deps_time v="130450588791286055" />\r
 </CyGuid_769d31ea-68b1-4f0c-b90a-7c10a43ee563>\r
 </dataGuid>\r
 <dataGuid v="bf610382-39c6-441f-80b8-b04622ea7845">\r
old mode 100755 (executable)
new mode 100644 (file)
index 3b14907..5aae516
@@ -1,13 +1,13 @@
-Loading plugins phase: Elapsed time ==> 0s.481ms\r
-Initializing data phase: Elapsed time ==> 3s.796ms\r
+Loading plugins phase: Elapsed time ==> 1s.508ms\r
+Initializing data phase: Elapsed time ==> 9s.403ms\r
 <CYPRESSTAG name="CyDsfit arguments...">\r
-cydsfit arguments: -.fdsnotice -.fdswarpdepfile=warp_dependencies.txt -.fdselabdepfile=elab_dependencies.txt -.fdsbldfile=generated_files.txt -p W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\USB_Bootloader.cyprj -d CY8C5267AXI-LP051 -s W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\Generated_Source\PSoC5 -- -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE</CYPRESSTAG>\r
+cydsfit arguments: -.fdsnotice -.fdswarpdepfile=warp_dependencies.txt -.fdselabdepfile=elab_dependencies.txt -.fdsbldfile=generated_files.txt -p Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\USB_Bootloader.cyprj -d CY8C5267AXI-LP051 -s Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\Generated_Source\PSoC5 -- -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE</CYPRESSTAG>\r
 <CYPRESSTAG name="Design elaboration results...">\r
 </CYPRESSTAG>\r
-Elaboration phase: Elapsed time ==> 7s.874ms\r
+Elaboration phase: Elapsed time ==> 9s.079ms\r
 <CYPRESSTAG name="HDL generation results...">\r
 </CYPRESSTAG>\r
-HDL generation phase: Elapsed time ==> 0s.173ms\r
+HDL generation phase: Elapsed time ==> 0s.906ms\r
 <CYPRESSTAG name="Synthesis results...">\r
 \r
      | | | | | | |\r
@@ -25,23 +25,23 @@ HDL generation phase: Elapsed time ==> 0s.173ms
 ======================================================================\r
 Compiling:  USB_Bootloader.v\r
 Program  :   C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\bin/warp.exe\r
-Options  :    -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -ya -.fftprj=W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\USB_Bootloader.cyprj -dcpsoc3 USB_Bootloader.v -verilog\r
+Options  :    -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -ya -.fftprj=Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\USB_Bootloader.cyprj -dcpsoc3 USB_Bootloader.v -verilog\r
 ======================================================================\r
 \r
 ======================================================================\r
 Compiling:  USB_Bootloader.v\r
 Program  :   C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\bin/warp.exe\r
-Options  :    -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -ya -.fftprj=W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\USB_Bootloader.cyprj -dcpsoc3 USB_Bootloader.v -verilog\r
+Options  :    -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -ya -.fftprj=Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\USB_Bootloader.cyprj -dcpsoc3 USB_Bootloader.v -verilog\r
 ======================================================================\r
 \r
 ======================================================================\r
 Compiling:  USB_Bootloader.v\r
 Program  :   vlogfe\r
-Options  :    -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -ya -.fftprj=W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\USB_Bootloader.cyprj -dcpsoc3 -verilog USB_Bootloader.v\r
+Options  :    -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -ya -.fftprj=Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\USB_Bootloader.cyprj -dcpsoc3 -verilog USB_Bootloader.v\r
 ======================================================================\r
 \r
 vlogfe V6.3 IR 41:  Verilog parser\r
-Wed Apr 16 21:15:58 2014\r
+Tue May 20 21:24:38 2014\r
 \r
 \r
 ======================================================================\r
@@ -51,7 +51,7 @@ Options  :    -yv2 -q10 USB_Bootloader.v
 ======================================================================\r
 \r
 vpp V6.3 IR 41:  Verilog Pre-Processor\r
-Wed Apr 16 21:15:59 2014\r
+Tue May 20 21:24:39 2014\r
 \r
 \r
 vpp:  No errors.\r
@@ -76,11 +76,11 @@ vlogfe:  No errors.
 ======================================================================\r
 Compiling:  USB_Bootloader.v\r
 Program  :   tovif\r
-Options  :    -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -ya -.fftprj=W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\USB_Bootloader.cyprj -dcpsoc3 -verilog USB_Bootloader.v\r
+Options  :    -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -ya -.fftprj=Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\USB_Bootloader.cyprj -dcpsoc3 -verilog USB_Bootloader.v\r
 ======================================================================\r
 \r
 tovif V6.3 IR 41:  High-level synthesis\r
-Wed Apr 16 21:15:59 2014\r
+Tue May 20 21:24:41 2014\r
 \r
 Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\std.vhd'.\r
 Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\cypress.vhd'.\r
@@ -91,8 +91,8 @@ Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\c
 Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\stdlogic\mod_cnst.vif'.\r
 Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\stdlogic\mod_mthv.vif'.\r
 Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\stdlogic\mod_genv.vif'.\r
-Linking 'W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\codegentemp\USB_Bootloader.ctl'.\r
-Linking 'W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\codegentemp\USB_Bootloader.v'.\r
+Linking 'Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\codegentemp\USB_Bootloader.ctl'.\r
+Linking 'Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\codegentemp\USB_Bootloader.v'.\r
 \r
 tovif:  No errors.\r
 \r
@@ -100,11 +100,11 @@ tovif:  No errors.
 ======================================================================\r
 Compiling:  USB_Bootloader.v\r
 Program  :   topld\r
-Options  :    -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -ya -.fftprj=W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\USB_Bootloader.cyprj -dcpsoc3 -verilog USB_Bootloader.v\r
+Options  :    -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -ya -.fftprj=Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\USB_Bootloader.cyprj -dcpsoc3 -verilog USB_Bootloader.v\r
 ======================================================================\r
 \r
 topld V6.3 IR 41:  Synthesis and optimization\r
-Wed Apr 16 21:16:00 2014\r
+Tue May 20 21:24:44 2014\r
 \r
 Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\std.vhd'.\r
 Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\cypress.vhd'.\r
@@ -115,8 +115,8 @@ Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\c
 Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\stdlogic\mod_cnst.vif'.\r
 Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\stdlogic\mod_mthv.vif'.\r
 Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\stdlogic\mod_genv.vif'.\r
-Linking 'W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\codegentemp\USB_Bootloader.ctl'.\r
-Linking 'W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\codegentemp\USB_Bootloader.v'.\r
+Linking 'Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\codegentemp\USB_Bootloader.ctl'.\r
+Linking 'Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\codegentemp\USB_Bootloader.v'.\r
 Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\lcpsoc3\stdlogic\cpsoc3.vif'.\r
 \r
 ----------------------------------------------------------\r
@@ -202,13 +202,13 @@ topld:  No errors.
 \r
 CYPRESS_DIR    : C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\r
 Warp Program   : C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\bin/warp.exe\r
-Warp Arguments : -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -ya -.fftprj=W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\USB_Bootloader.cyprj -dcpsoc3 USB_Bootloader.v -verilog\r
+Warp Arguments : -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -ya -.fftprj=Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\USB_Bootloader.cyprj -dcpsoc3 USB_Bootloader.v -verilog\r
 </CYPRESSTAG>\r
-Warp synthesis phase: Elapsed time ==> 2s.967ms\r
+Warp synthesis phase: Elapsed time ==> 9s.267ms\r
 <CYPRESSTAG name="Fitter results...">\r
 <CYPRESSTAG name="Fitter startup details...">\r
-cyp3fit: V3.0.0.1539, Family: PSoC3, Started at: Wednesday, 16 April 2014 21:16:01\r
-Options: -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -ya -.fftprj=W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\USB_Bootloader.cyprj -d CY8C5267AXI-LP051 USB_Bootloader.v -verilog\r
+cyp3fit: V3.0.0.1539, Family: PSoC3, Started at: Tuesday, 20 May 2014 21:24:47\r
+Options: -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -ya -.fftprj=Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\USB_Bootloader.cyprj -d CY8C5267AXI-LP051 USB_Bootloader.v -verilog\r
 </CYPRESSTAG>\r
 <CYPRESSTAG name="Design parsing">\r
 Design parsing phase: Elapsed time ==> 0s.046ms\r
@@ -1314,8 +1314,8 @@ EMIF Fixed Blocks             :    0 :    1 :    1 :   0.00%
 LPF Fixed Blocks              :    0 :    2 :    2 :   0.00%\r
 SAR Fixed Blocks              :    0 :    1 :    1 :   0.00%\r
 </CYPRESSTAG>\r
-Technology Mapping: Elapsed time ==> 0s.015ms\r
-Tech mapping phase: Elapsed time ==> 0s.281ms\r
+Technology Mapping: Elapsed time ==> 0s.437ms\r
+Tech mapping phase: Elapsed time ==> 0s.672ms\r
 </CYPRESSTAG>\r
 <CYPRESSTAG name="Analog Placement">\r
 Initial Analog Placement Results:\r
@@ -1345,7 +1345,7 @@ IO_5@[IOP=(3)][IoId=(5)] : SD_PULLUP(4) (fixed)
 IO_7@[IOP=(15)][IoId=(7)] : \USBFS:Dm(0)\ (fixed)\r
 IO_6@[IOP=(15)][IoId=(6)] : \USBFS:Dp(0)\ (fixed)\r
 USB[0]@[FFB(USB,0)] : \USBFS:USB\\r
-Analog Placement phase: Elapsed time ==> 0s.109ms\r
+Analog Placement phase: Elapsed time ==> 0s.078ms\r
 </CYPRESSTAG>\r
 <CYPRESSTAG name="Analog Routing">\r
 Analog Routing phase: Elapsed time ==> 0s.000ms\r
@@ -1363,12 +1363,12 @@ Dump of CyP35AnalogRoutingResultsDB
 IsVddaHalfUsedForComp = False\r
 IsVddaHalfUsedForSar0 = False\r
 IsVddaHalfUsedForSar1 = False\r
-Analog Code Generation phase: Elapsed time ==> 1s.031ms\r
+Analog Code Generation phase: Elapsed time ==> 1s.828ms\r
 </CYPRESSTAG>\r
 <CYPRESSTAG name="Digital Placement">\r
 <CYPRESSTAG name="Detailed placement messages">\r
 I2659: No Constrained paths were found. The placer will run in non-timing driven mode.\r
-I2076: Total run-time: 1.6 sec.\r
+I2076: Total run-time: 3.9 sec.\r
 \r
 </CYPRESSTAG>\r
 <CYPRESSTAG name="PLD Packing">\r
@@ -2664,32 +2664,32 @@ Port | Pin | Fixed |      Type |       Drive Mode |            Name | Connection
 </CYPRESSTAG>\r
 </CYPRESSTAG>\r
 </CYPRESSTAG>\r
-Digital component placer commit/Report: Elapsed time ==> 0s.017ms\r
-Digital Placement phase: Elapsed time ==> 2s.641ms\r
+Digital component placer commit/Report: Elapsed time ==> 0s.375ms\r
+Digital Placement phase: Elapsed time ==> 8s.689ms\r
 </CYPRESSTAG>\r
 <CYPRESSTAG name="Digital Routing">\r
 Routing successful.\r
-Digital Routing phase: Elapsed time ==> 3s.404ms\r
+Digital Routing phase: Elapsed time ==> 6s.563ms\r
 </CYPRESSTAG>\r
 <CYPRESSTAG name="Bitstream and API generation">\r
-Bitstream and API generation phase: Elapsed time ==> 0s.796ms\r
+Bitstream and API generation phase: Elapsed time ==> 26s.707ms\r
 </CYPRESSTAG>\r
 <CYPRESSTAG name="Bitstream verification">\r
-Bitstream verification phase: Elapsed time ==> 0s.171ms\r
+Bitstream verification phase: Elapsed time ==> 0s.140ms\r
 </CYPRESSTAG>\r
 <CYPRESSTAG name="Static timing analysis">\r
 Timing report is in USB_Bootloader_timing.html.\r
-Static timing analysis phase: Elapsed time ==> 0s.812ms\r
+Static timing analysis phase: Elapsed time ==> 7s.016ms\r
 </CYPRESSTAG>\r
 <CYPRESSTAG name="Data reporting">\r
 Data reporting phase: Elapsed time ==> 0s.000ms\r
 </CYPRESSTAG>\r
 <CYPRESSTAG name="Database update...">\r
-Design database save phase: Elapsed time ==> 0s.406ms\r
+Design database save phase: Elapsed time ==> 0s.577ms\r
 </CYPRESSTAG>\r
-cydsfit: Elapsed time ==> 9s.781ms\r
+cydsfit: Elapsed time ==> 52s.696ms\r
 </CYPRESSTAG>\r
-Fitter phase: Elapsed time ==> 9s.859ms\r
-API generation phase: Elapsed time ==> 4s.706ms\r
-Dependency generation phase: Elapsed time ==> 0s.028ms\r
-Cleanup phase: Elapsed time ==> 0s.063ms\r
+Fitter phase: Elapsed time ==> 52s.775ms\r
+API generation phase: Elapsed time ==> 25s.205ms\r
+Dependency generation phase: Elapsed time ==> 0s.796ms\r
+Cleanup phase: Elapsed time ==> 0s.750ms\r
old mode 100755 (executable)
new mode 100644 (file)
index 20322ae..4e0da6e
@@ -539,7 +539,7 @@ function getElementsByClass(rootNode, elemName, className)
 <tr> <td class="prop"> Project :</td>\r
 <td class="proptext"> USB_Bootloader</td></tr>\r
 <tr> <td class="prop"> Build Time :</td>\r
-<td class="proptext"> 04/16/14 21:16:10</td></tr>\r
+<td class="proptext"> 05/20/14 21:25:38</td></tr>\r
 <tr> <td class="prop"> Device :</td>\r
 <td class="proptext"> CY8C5267AXI-LP051</td></tr>\r
 <tr> <td class="prop"> Temperature :</td>\r
index f6899cd7476278fe21c3d2e170072ba59d9755cf..17721c2bac22fa1b04b229c820bcacd32fa0a64c 100755 (executable)
@@ -132,3 +132,28 @@ void scsiReceiveDiagnostic()
        }\r
 }\r
 \r
+void scsiReadBuffer()\r
+{\r
+       // READ BUFFER\r
+       // Used for testing the speed of the SCSI interface.\r
+       uint8 mode = scsiDev.data[1] & 7;\r
+       \r
+       int allocLength =\r
+               (((uint32) scsiDev.cdb[6]) << 16) +\r
+               (((uint32) scsiDev.cdb[7]) << 8) +\r
+               scsiDev.cdb[8];\r
+\r
+       if (mode == 0)\r
+       {\r
+               uint32_t maxSize = MAX_SECTOR_SIZE - 4;\r
+               // 4 byte header\r
+               scsiDev.data[0] = 0;\r
+               scsiDev.data[1] = (maxSize >> 16) & 0xff;\r
+               scsiDev.data[2] = (maxSize >> 8) & 0xff;\r
+               scsiDev.data[3] = maxSize & 0xff;\r
+               \r
+               scsiDev.dataLen =\r
+                       (allocLength > MAX_SECTOR_SIZE) ? MAX_SECTOR_SIZE : allocLength;\r
+               scsiDev.phase = DATA_IN;\r
+       }\r
+}\r
index e3f09be8cc92ef6cf8cb507f9354a30e561bfa3b..4cba50cdcd9b98ed3291b27aaa651f08aa4afab7 100755 (executable)
@@ -19,5 +19,6 @@
 
 void scsiSendDiagnostic(void);
 void scsiReceiveDiagnostic(void);
+void scsiReadBuffer(void);
 
 #endif
index 6ae4d857746ecb58415f6f727342f227775417f6..3974ccff07ef324d96ca91a436c2ec1d14e54024 100755 (executable)
@@ -66,7 +66,7 @@ static void doFormatUnitPatternHeader(void)
        int defectLength =\r
                ((((uint16_t)scsiDev.data[2])) << 8) +\r
                        scsiDev.data[3];\r
-                       \r
+\r
        int patternLength =\r
                ((((uint16_t)scsiDev.data[4 + 2])) << 8) +\r
                scsiDev.data[4 + 3];\r
@@ -181,7 +181,7 @@ static void doWrite(uint32 lba, uint32 blocks)
                transfer.multiBlock = 1;\r
                \r
                if (blocks > 1) scsiDev.needReconnect = 1;\r
-               sdPrepareWrite();\r
+               sdWriteMultiSectorPrep();\r
        }\r
 }\r
 \r
@@ -217,7 +217,7 @@ static void doRead(uint32 lba, uint32 blocks)
                {\r
                        transfer.multiBlock = 1;\r
                        scsiDev.needReconnect = 1;\r
-                       sdPrepareRead();\r
+                       sdReadMultiSectorPrep();\r
                }\r
        }\r
 }\r
@@ -463,43 +463,106 @@ void scsiDiskPoll()
        if (scsiDev.phase == DATA_IN &&\r
                transfer.currentBlock != transfer.blocks)\r
        {\r
-               if (scsiDev.dataLen == 0)\r
+               int totalSDSectors = transfer.blocks * SDSectorsPerSCSISector();\r
+               uint32_t sdLBA = SCSISector2SD(transfer.lba);\r
+               int buffers = sizeof(scsiDev.data) / SD_SECTOR_SIZE;\r
+               int prep = 0;\r
+               int i = 0;\r
+               int scsiActive = 0;\r
+               int sdActive = 0;\r
+               while ((i < totalSDSectors) &&\r
+                       (scsiDev.phase == DATA_IN) &&\r
+                       !scsiDev.resetFlag)\r
                {\r
-                       if (transfer.multiBlock)\r
+                       if ((sdActive == 1) && sdReadSectorDMAPoll())\r
                        {\r
-                               sdReadSectorMulti();\r
+                               sdActive = 0;\r
+                               prep++;\r
                        }\r
-                       else\r
+                       else if ((sdActive == 0) && (prep - i < buffers) && (prep < totalSDSectors))\r
                        {\r
-                               sdReadSectorSingle();\r
+                               // Start an SD transfer if we have space.\r
+                               if (transfer.multiBlock)\r
+                               {\r
+                                       sdReadMultiSectorDMA(&scsiDev.data[SD_SECTOR_SIZE * (prep % buffers)]);\r
+                               }\r
+                               else\r
+                               {\r
+                                       sdReadSingleSectorDMA(sdLBA + prep, &scsiDev.data[SD_SECTOR_SIZE * (prep % buffers)]);\r
+                               }\r
+                               sdActive = 1;\r
                        }\r
-               }\r
-               else if (scsiDev.dataPtr == scsiDev.dataLen)\r
-               {\r
-                       scsiDev.dataLen = 0;\r
-                       scsiDev.dataPtr = 0;\r
-                       transfer.currentBlock++;\r
-                       if (transfer.currentBlock >= transfer.blocks)\r
+\r
+                       if ((scsiActive == 1) && scsiWriteDMAPoll())\r
                        {\r
-                               scsiDev.phase = STATUS;\r
-                               scsiDiskReset();\r
+                               scsiActive = 0;\r
+                               ++i;\r
+                       }\r
+                       else if ((scsiActive == 0) && ((prep - i) > 0))\r
+                       {\r
+                               int dmaBytes = SD_SECTOR_SIZE;\r
+                               if (i % SDSectorsPerSCSISector() == SDSectorsPerSCSISector() - 1)\r
+                               {\r
+                                       dmaBytes = config->bytesPerSector % SD_SECTOR_SIZE;\r
+                                       if (dmaBytes == 0) dmaBytes = SD_SECTOR_SIZE;\r
+                               }\r
+                               scsiWriteDMA(&scsiDev.data[SD_SECTOR_SIZE * (i % buffers)], dmaBytes);\r
+                               scsiActive = 1;\r
                        }\r
                }\r
+               if (scsiDev.phase == DATA_IN)\r
+               {\r
+                       scsiDev.phase = STATUS;\r
+               }\r
+               scsiDiskReset();\r
        }\r
        else if (scsiDev.phase == DATA_OUT &&\r
                transfer.currentBlock != transfer.blocks)\r
        {\r
-               sdWriteSector();\r
-               // TODO FIX scsiDiskPoll() scsiDev.dataPtr = 0;\r
-               transfer.currentBlock++;\r
-               if (transfer.currentBlock >= transfer.blocks)\r
+               int totalSDSectors = transfer.blocks * SDSectorsPerSCSISector();\r
+               int buffers = sizeof(scsiDev.data) / SD_SECTOR_SIZE;\r
+               int prep = 0;\r
+               int i = 0;\r
+               int scsiActive = 0;\r
+               int sdActive = 0;\r
+               while ((i < totalSDSectors) &&\r
+                       (scsiDev.phase == DATA_OUT) &&\r
+                       !scsiDev.resetFlag)\r
                {\r
-                       scsiDev.dataLen = 0;\r
-                       scsiDev.dataPtr = 0;\r
-                       scsiDev.phase = STATUS;\r
+                       if ((sdActive == 1) && sdWriteSectorDMAPoll())\r
+                       {\r
+                               sdActive = 0;\r
+                               i++;\r
+                       }\r
+                       else if ((sdActive == 0) && ((prep - i) > 0))\r
+                       {\r
+                               // Start an SD transfer if we have space.\r
+                               sdWriteMultiSectorDMA(&scsiDev.data[SD_SECTOR_SIZE * (i % buffers)]);\r
+                               sdActive = 1;\r
+                       }\r
 \r
-                       scsiDiskReset();\r
+                       if ((scsiActive == 1) && scsiReadDMAPoll())\r
+                       {\r
+                               scsiActive = 0;\r
+                               ++prep;\r
+                       }\r
+                       else if ((scsiActive == 0) && ((prep - i) < buffers) && (prep < totalSDSectors))\r
+                       {\r
+                               int dmaBytes = SD_SECTOR_SIZE;\r
+                               if (prep % SDSectorsPerSCSISector() == SDSectorsPerSCSISector() - 1)\r
+                               {\r
+                                       dmaBytes = config->bytesPerSector % SD_SECTOR_SIZE;\r
+                                       if (dmaBytes == 0) dmaBytes = SD_SECTOR_SIZE;\r
+                               }\r
+                               scsiReadDMA(&scsiDev.data[SD_SECTOR_SIZE * (prep % buffers)], dmaBytes);\r
+                               scsiActive = 1;\r
+                       }\r
+               }\r
+               if (scsiDev.phase == DATA_OUT)\r
+               {\r
+                       scsiDev.phase = STATUS;\r
                }\r
+               scsiDiskReset();\r
        }\r
 }\r
 \r
index fb91c1df9e7233d4396753a966b73333b72d94b3..bbf4f675d6b90f52184435ffea0d35c4db9bbdcf 100755 (executable)
@@ -423,6 +423,10 @@ static void process_Command()
        {\r
                scsiSendDiagnostic();\r
        }\r
+       else if (command == 0x3C)\r
+       {\r
+               scsiReadBuffer();\r
+       }\r
        else if (\r
                !scsiModeCommand() &&\r
                !scsiDiskCommand())\r
index fc42b4ff21e6f94a2be9144ec970dc10f7a98717..45362a7cc35928c33356e8dba90eb68a5a05d6cc 100755 (executable)
 \r
 #define scsiTarget_AUX_CTL (* (reg8 *) scsiTarget_datapath__DP_AUX_CTL_REG)\r
 \r
+// DMA controller can't handle any more bytes.\r
+#define MAX_DMA_BYTES 4095\r
+\r
+// Private DMA variables.\r
+static int dmaInProgress = 0;\r
+// used when transferring > MAX_DMA_BYTES.\r
+static uint8_t* dmaBuffer = NULL;\r
+static uint32_t dmaSentCount = 0;\r
+static uint32_t dmaTotalCount = 0;\r
+\r
+static uint8 scsiDmaRxChan = CY_DMA_INVALID_CHANNEL;\r
+static uint8 scsiDmaTxChan = CY_DMA_INVALID_CHANNEL;\r
+\r
+// DMA descriptors\r
+static uint8 scsiDmaRxTd[1] = { CY_DMA_INVALID_TD };\r
+static uint8 scsiDmaTxTd[1] = { CY_DMA_INVALID_TD };\r
+\r
+// Source of dummy bytes for DMA reads\r
+static uint8 dummyBuffer = 0xFF;\r
+\r
+volatile static uint8 rxDMAComplete;\r
+volatile static uint8 txDMAComplete;\r
+\r
+CY_ISR_PROTO(scsiRxCompleteISR);\r
+CY_ISR(scsiRxCompleteISR)\r
+{\r
+       rxDMAComplete = 1;\r
+}\r
+\r
+CY_ISR_PROTO(scsiTxCompleteISR);\r
+CY_ISR(scsiTxCompleteISR)\r
+{\r
+       txDMAComplete = 1;\r
+}\r
+\r
 CY_ISR_PROTO(scsiResetISR);\r
 CY_ISR(scsiResetISR)\r
 {\r
@@ -29,7 +64,8 @@ CY_ISR(scsiResetISR)
        SCSI_RST_ClearInterrupt();\r
 }\r
 \r
-uint8 scsiReadDBxPins()\r
+uint8_t\r
+scsiReadDBxPins()\r
 {\r
        return\r
                (SCSI_ReadPin(SCSI_In_DBx_DB7) << 7) |\r
@@ -39,79 +75,259 @@ uint8 scsiReadDBxPins()
                (SCSI_ReadPin(SCSI_In_DBx_DB3) << 3) |\r
                (SCSI_ReadPin(SCSI_In_DBx_DB2) << 2) |\r
                (SCSI_ReadPin(SCSI_In_DBx_DB1) << 1) |\r
-               SCSI_ReadPin(SCSI_In_DBx_DB0);          \r
+               SCSI_ReadPin(SCSI_In_DBx_DB0);\r
 }\r
 \r
-uint8 scsiReadByte(void)\r
+uint8_t\r
+scsiReadByte(void)\r
 {\r
-       while (!(CY_GET_REG8(scsiTarget_StatusReg__STATUS_REG) & 1) &&\r
-               !scsiDev.resetFlag) {}\r
-       CY_SET_REG8(scsiTarget_datapath__F0_REG, 0);\r
-       while (!(CY_GET_REG8(scsiTarget_StatusReg__STATUS_REG) & 2) &&\r
-               !scsiDev.resetFlag) {}\r
-               \r
+       while (scsiPhyTxFifoFull() && !scsiDev.resetFlag) {}\r
+       scsiPhyTx(0);\r
+\r
+       while (scsiPhyRxFifoEmpty() && !scsiDev.resetFlag) {}\r
+       uint8_t val = scsiPhyRx();\r
+\r
        while (SCSI_ReadPin(SCSI_In_ACK) && !scsiDev.resetFlag) {}\r
-               \r
-       return CY_GET_REG8(scsiTarget_datapath__F1_REG);\r
+\r
+       return val;\r
 }\r
 \r
-void scsiRead(uint8* data, uint32 count)\r
+static void\r
+scsiReadPIO(uint8* data, uint32 count)\r
 {\r
        int prep = 0;\r
        int i = 0;\r
 \r
        while (i < count && !scsiDev.resetFlag)\r
        {\r
-               if (prep < count && (CY_GET_REG8(scsiTarget_StatusReg__STATUS_REG) & 1))\r
+               uint8_t status = scsiPhyStatus();\r
+\r
+               if (prep < count && (status & SCSI_PHY_TX_FIFO_NOT_FULL))\r
                {\r
-                       CY_SET_REG8(scsiTarget_datapath__F0_REG, 0);\r
+                       scsiPhyTx(0);\r
                        ++prep;\r
                }\r
-               if ((CY_GET_REG8(scsiTarget_StatusReg__STATUS_REG) & 2))\r
+               if (status & SCSI_PHY_RX_FIFO_NOT_EMPTY)\r
                {\r
-                       data[i] =  CY_GET_REG8(scsiTarget_datapath__F1_REG);\r
+                       data[i] = scsiPhyRx();\r
                        ++i;\r
                }\r
        }\r
        while (SCSI_ReadPin(SCSI_In_ACK) && !scsiDev.resetFlag) {}\r
-\r
 }\r
 \r
-void scsiWriteByte(uint8 value)\r
+static void\r
+doRxSingleDMA(uint8* data, uint32 count)\r
 {\r
-       while (!(CY_GET_REG8(scsiTarget_StatusReg__STATUS_REG) & 1) &&\r
-               !scsiDev.resetFlag) {}\r
-       CY_SET_REG8(scsiTarget_datapath__F0_REG, value);\r
+       // Prepare DMA transfer\r
+       dmaInProgress = 1;\r
 \r
-       // TODO maybe move this TX EMPTY check to scsiEnterPhase ?\r
-       //while (!(CY_GET_REG8(scsiTarget_StatusReg__STATUS_REG) & 4)) {}\r
-       while (!(CY_GET_REG8(scsiTarget_StatusReg__STATUS_REG) & 2) &&\r
-               !scsiDev.resetFlag) {}\r
-       value = CY_GET_REG8(scsiTarget_datapath__F1_REG);\r
+       CyDmaTdSetConfiguration(\r
+               scsiDmaTxTd[0],\r
+               count,\r
+               CY_DMA_DISABLE_TD, // Disable the DMA channel when TD completes count bytes\r
+               SCSI_TX_DMA__TD_TERMOUT_EN // Trigger interrupt when complete\r
+               );\r
+       CyDmaTdSetConfiguration(\r
+               scsiDmaRxTd[0],\r
+               count,\r
+               CY_DMA_DISABLE_TD, // Disable the DMA channel when TD completes count bytes\r
+               TD_INC_DST_ADR |\r
+                       SCSI_RX_DMA__TD_TERMOUT_EN // Trigger interrupt when complete\r
+               );\r
        \r
+       CyDmaTdSetAddress(\r
+               scsiDmaTxTd[0],\r
+               LO16((uint32)&dummyBuffer),\r
+               LO16((uint32)scsiTarget_datapath__F0_REG));\r
+       CyDmaTdSetAddress(\r
+               scsiDmaRxTd[0],\r
+               LO16((uint32)scsiTarget_datapath__F1_REG),\r
+               LO16((uint32)data)\r
+               );\r
+       \r
+       CyDmaChSetInitialTd(scsiDmaTxChan, scsiDmaTxTd[0]);\r
+       CyDmaChSetInitialTd(scsiDmaRxChan, scsiDmaRxTd[0]);\r
+       \r
+       // The DMA controller is a bit trigger-happy. It will retain\r
+       // a drq request that was triggered while the channel was\r
+       // disabled.\r
+       CyDmaClearPendingDrq(scsiDmaTxChan);\r
+       CyDmaClearPendingDrq(scsiDmaRxChan);\r
+\r
+       txDMAComplete = 0;\r
+       rxDMAComplete = 0;\r
+\r
+       CyDmaChEnable(scsiDmaRxChan, 1);\r
+       CyDmaChEnable(scsiDmaTxChan, 1);\r
+}\r
+\r
+void\r
+scsiReadDMA(uint8* data, uint32 count)\r
+{\r
+       dmaSentCount = 0;\r
+       dmaTotalCount = count;\r
+       dmaBuffer = data;\r
+\r
+       uint32_t singleCount = (count > MAX_DMA_BYTES) ? MAX_DMA_BYTES : count;\r
+       doRxSingleDMA(data, singleCount);\r
+       dmaSentCount += count;\r
+}\r
+\r
+int\r
+scsiReadDMAPoll()\r
+{\r
+       if (txDMAComplete && rxDMAComplete && (scsiPhyStatus() & SCSI_PHY_TX_COMPLETE))\r
+       {\r
+               if (dmaSentCount == dmaTotalCount)\r
+               {\r
+                       dmaInProgress = 0;\r
+                       while (SCSI_ReadPin(SCSI_In_ACK) && !scsiDev.resetFlag) {}\r
+                       return 1;\r
+               }\r
+               else\r
+               {\r
+                       // Transfer was too large for a single DMA transfer. Continue\r
+                       // to send remaining bytes.\r
+                       uint32_t count = dmaTotalCount - dmaSentCount;\r
+                       if (count > MAX_DMA_BYTES) count = MAX_DMA_BYTES;\r
+                       doRxSingleDMA(dmaBuffer + dmaSentCount, count);\r
+                       dmaSentCount += count;\r
+                       return 0;\r
+               }\r
+       }\r
+       else\r
+       {\r
+               return 0;\r
+       }\r
+}\r
+\r
+void\r
+scsiRead(uint8_t* data, uint32_t count)\r
+{\r
+       if (count < 8)\r
+       {\r
+               scsiReadPIO(data, count);\r
+       }\r
+       else\r
+       {\r
+               scsiReadDMA(data, count);\r
+               while (!scsiReadDMAPoll() && !scsiDev.resetFlag) {};\r
+       }\r
+}\r
+\r
+void\r
+scsiWriteByte(uint8 value)\r
+{\r
+       while (scsiPhyTxFifoFull() && !scsiDev.resetFlag) {}\r
+       scsiPhyTx(value);\r
+\r
+       while (!(scsiPhyStatus() & SCSI_PHY_TX_COMPLETE) && !scsiDev.resetFlag) {}\r
+       scsiPhyRxFifoClear();\r
+\r
        while (SCSI_ReadPin(SCSI_In_ACK) && !scsiDev.resetFlag) {}\r
 }\r
 \r
-void scsiWrite(uint8* data, uint32 count)\r
+static void\r
+scsiWritePIO(uint8_t* data, uint32_t count)\r
 {\r
-       int prep = 0;\r
        int i = 0;\r
 \r
        while (i < count && !scsiDev.resetFlag)\r
        {\r
-               if (prep < count && (CY_GET_REG8(scsiTarget_StatusReg__STATUS_REG) & 1))\r
+               if (!scsiPhyTxFifoFull())\r
                {\r
-                       CY_SET_REG8(scsiTarget_datapath__F0_REG, data[prep]);\r
-                       ++prep;\r
+                       scsiPhyTx(data[i]);\r
+                       ++i;\r
                }\r
-               if ((CY_GET_REG8(scsiTarget_StatusReg__STATUS_REG) & 2))\r
+       }\r
+\r
+       while (!(scsiPhyStatus() & SCSI_PHY_TX_COMPLETE) && !scsiDev.resetFlag) {}\r
+       scsiPhyRxFifoClear();\r
+}\r
+\r
+static void\r
+doTxSingleDMA(uint8* data, uint32 count)\r
+{\r
+       // Prepare DMA transfer\r
+       dmaInProgress = 1;\r
+\r
+       CyDmaTdSetConfiguration(\r
+               scsiDmaTxTd[0],\r
+               count,\r
+               CY_DMA_DISABLE_TD, // Disable the DMA channel when TD completes count bytes\r
+               TD_INC_SRC_ADR |\r
+                       SCSI_TX_DMA__TD_TERMOUT_EN // Trigger interrupt when complete\r
+               );\r
+       CyDmaTdSetAddress(\r
+               scsiDmaTxTd[0],\r
+               LO16((uint32)data),\r
+               LO16((uint32)scsiTarget_datapath__F0_REG));\r
+       CyDmaChSetInitialTd(scsiDmaTxChan, scsiDmaTxTd[0]);\r
+\r
+       // The DMA controller is a bit trigger-happy. It will retain\r
+       // a drq request that was triggered while the channel was\r
+       // disabled.\r
+       CyDmaClearPendingDrq(scsiDmaTxChan);\r
+\r
+       txDMAComplete = 0;\r
+\r
+       CyDmaChEnable(scsiDmaTxChan, 1);\r
+}\r
+\r
+void\r
+scsiWriteDMA(uint8* data, uint32 count)\r
+{\r
+       dmaSentCount = 0;\r
+       dmaTotalCount = count;\r
+       dmaBuffer = data;\r
+\r
+       uint32_t singleCount = (count > MAX_DMA_BYTES) ? MAX_DMA_BYTES : count;\r
+       doTxSingleDMA(data, singleCount);\r
+       dmaSentCount += count;\r
+}\r
+\r
+int\r
+scsiWriteDMAPoll()\r
+{\r
+       if (txDMAComplete && (scsiPhyStatus() & SCSI_PHY_TX_COMPLETE))\r
+       {\r
+               if (dmaSentCount == dmaTotalCount)\r
                {\r
-                       CY_GET_REG8(scsiTarget_datapath__F1_REG);\r
-                       ++i;\r
+                       scsiPhyRxFifoClear();\r
+                       dmaInProgress = 0;\r
+                       while (SCSI_ReadPin(SCSI_In_ACK) && !scsiDev.resetFlag) {}\r
+                       return 1;\r
+               }\r
+               else\r
+               {\r
+                       // Transfer was too large for a single DMA transfer. Continue\r
+                       // to send remaining bytes.\r
+                       uint32_t count = dmaTotalCount - dmaSentCount;\r
+                       if (count > MAX_DMA_BYTES) count = MAX_DMA_BYTES;\r
+                       doTxSingleDMA(dmaBuffer + dmaSentCount, count);\r
+                       dmaSentCount += count;\r
+                       return 0;\r
                }\r
        }\r
-       \r
-       while (SCSI_ReadPin(SCSI_In_ACK) && !scsiDev.resetFlag) {}\r
+       else\r
+       {\r
+               return 0;\r
+       }\r
+}\r
+\r
+void\r
+scsiWrite(uint8_t* data, uint32_t count)\r
+{\r
+       if (count < 8)\r
+       {\r
+               scsiWritePIO(data, count);\r
+       }\r
+       else\r
+       {\r
+               scsiWriteDMA(data, count);\r
+               while (!scsiWriteDMAPoll() && !scsiDev.resetFlag) {};\r
+       }\r
 }\r
 \r
 static void busSettleDelay(void)\r
@@ -133,6 +349,20 @@ void scsiEnterPhase(int phase)
 \r
 void scsiPhyReset()\r
 {\r
+       if (dmaInProgress)\r
+       {\r
+               dmaInProgress = 0;\r
+               dmaBuffer = NULL;\r
+               dmaSentCount = 0;\r
+               dmaTotalCount = 0;\r
+               CyDmaChSetRequest(scsiDmaTxChan, CY_DMA_CPU_TERM_CHAIN);\r
+               CyDmaChSetRequest(scsiDmaRxChan, CY_DMA_CPU_TERM_CHAIN);\r
+               while (!(txDMAComplete && rxDMAComplete)) {}\r
+\r
+               CyDmaChDisable(scsiDmaTxChan);\r
+               CyDmaChDisable(scsiDmaRxChan);\r
+       }\r
+\r
        // Set the Clear bits for both SCSI device FIFOs\r
        scsiTarget_AUX_CTL = scsiTarget_AUX_CTL | 0x03;\r
 \r
@@ -155,8 +385,43 @@ void scsiPhyReset()
        scsiTarget_AUX_CTL = scsiTarget_AUX_CTL & ~(0x03);\r
 }\r
 \r
+static void scsiPhyInitDMA()\r
+{\r
+       // One-time init only.\r
+       if (scsiDmaTxChan == CY_DMA_INVALID_CHANNEL)\r
+       {\r
+               scsiDmaRxChan =\r
+                       SCSI_RX_DMA_DmaInitialize(\r
+                               1, // Bytes per burst\r
+                               1, // request per burst\r
+                               HI16(CYDEV_PERIPH_BASE),\r
+                               HI16(CYDEV_SRAM_BASE)\r
+                               );\r
+                       \r
+               scsiDmaTxChan =\r
+                       SCSI_TX_DMA_DmaInitialize(\r
+                               1, // Bytes per burst\r
+                               1, // request per burst\r
+                               HI16(CYDEV_SRAM_BASE),\r
+                               HI16(CYDEV_PERIPH_BASE)\r
+                               );\r
+\r
+               CyDmaChDisable(scsiDmaRxChan);\r
+               CyDmaChDisable(scsiDmaTxChan);\r
+\r
+               scsiDmaRxTd[0] = CyDmaTdAllocate();\r
+               scsiDmaTxTd[0] = CyDmaTdAllocate();\r
+               \r
+               SCSI_RX_DMA_COMPLETE_StartEx(scsiRxCompleteISR);\r
+               SCSI_TX_DMA_COMPLETE_StartEx(scsiTxCompleteISR);\r
+       }\r
+}\r
+\r
+\r
 void scsiPhyInit()\r
 {\r
+       scsiPhyInitDMA();\r
+\r
        SCSI_RST_ISR_StartEx(scsiResetISR);\r
 \r
        // Interrupts may have already been directed to the (empty)\r
index 94c47e29606b56cc8f501ea39d4bc5b7c4b43821..b6a14268021f99ecd11c1877cda0d115090cd0fe 100755 (executable)
 #ifndef SCSIPHY_H
 #define SCSIPHY_H
 
+// Definitions to match the scsiTarget status register.
+typedef enum
+{
+       SCSI_PHY_TX_FIFO_NOT_FULL =  0x01,
+       SCSI_PHY_RX_FIFO_NOT_EMPTY = 0x02,
+
+       // The TX FIFO is empty and the state machine is in the idle state
+       SCSI_PHY_TX_COMPLETE = 0x10
+} SCSI_PHY_STATE;
+
+#define scsiPhyStatus() CY_GET_REG8(scsiTarget_StatusReg__STATUS_REG)
+#define scsiPhyTxFifoFull() ((scsiPhyStatus() & SCSI_PHY_TX_FIFO_NOT_FULL) == 0)
+#define scsiPhyRxFifoEmpty() ((scsiPhyStatus() & SCSI_PHY_RX_FIFO_NOT_EMPTY) == 0)
+
+// Clear 4 byte fifo
+#define scsiPhyRxFifoClear() scsiPhyRx(); scsiPhyRx(); scsiPhyRx(); scsiPhyRx();
+
+#define scsiPhyTx(val) CY_SET_REG8(scsiTarget_datapath__F0_REG, (val))
+#define scsiPhyRx() CY_GET_REG8(scsiTarget_datapath__F1_REG)
+
 #define SCSI_SetPin(pin) \
        CyPins_SetPin((pin));
 
        (CyPins_ReadPin((pin)) == 0)
 
 // Contains the odd-parity flag for a given 8-bit value.
-extern const uint8 Lookup_OddParity[256];
+extern const uint8_t Lookup_OddParity[256];
 
 void scsiPhyReset(void);
 void scsiPhyInit(void);
-uint8 scsiReadByte(void);
-void scsiRead(uint8* data, uint32 count);
-void scsiWriteByte(uint8 value);
-void scsiWrite(uint8* data, uint32 count);
 
-uint8 scsiReadDBxPins(void);
+uint8_t scsiReadByte(void);
+void scsiRead(uint8_t* data, uint32_t count);
+void scsiReadDMA(uint8_t* data, uint32_t count);
+int scsiReadDMAPoll();
+
+void scsiWriteByte(uint8_t value);
+void scsiWrite(uint8_t* data, uint32_t count);
+void scsiWriteDMA(uint8_t* data, uint32_t count);
+int scsiWriteDMAPoll();
+
+uint8_t scsiReadDBxPins(void);
 
 void scsiEnterPhase(int phase);
 
index f11d2e02eeb5d65d29845221a58058b53ba1d8b5..19e02fde944da55ec9e5f42e8b5c477a4d59ce6b 100755 (executable)
 // Global\r
 SdDevice sdDev;\r
 \r
+// Private DMA variables.\r
+static int dmaInProgress = 0;\r
+static uint8 sdDMARxChan = CY_DMA_INVALID_CHANNEL;\r
+static uint8 sdDMATxChan = CY_DMA_INVALID_CHANNEL;\r
+\r
+// DMA descriptors\r
+static uint8 sdDMARxTd[1] = { CY_DMA_INVALID_TD };\r
+static uint8 sdDMATxTd[1] = { CY_DMA_INVALID_TD };\r
+\r
+// Dummy location for DMA to send unchecked CRC bytes to\r
+static uint8 discardBuffer;\r
+\r
+// Source of dummy SPI bytes for DMA\r
+static uint8 dummyBuffer = 0xFF;\r
+\r
+volatile static uint8 rxDMAComplete;\r
+volatile static uint8 txDMAComplete;\r
+\r
+CY_ISR_PROTO(sdRxISR);\r
+CY_ISR(sdRxISR)\r
+{\r
+       rxDMAComplete = 1;\r
+}\r
+CY_ISR_PROTO(sdTxISR);\r
+CY_ISR(sdTxISR)\r
+{\r
+       txDMAComplete = 1;\r
+}\r
+\r
 static uint8 sdCrc7(uint8* chr, uint8 cnt, uint8 crc)\r
 {\r
        uint8 a;\r
@@ -126,12 +155,13 @@ static void sdClearStatus()
 }\r
 \r
 \r
-void sdPrepareRead()\r
+void\r
+sdReadMultiSectorPrep()\r
 {\r
        uint8 v;\r
        uint32 scsiLBA = (transfer.lba + transfer.currentBlock);\r
        uint32 sdLBA = SCSISector2SD(scsiLBA);\r
-       \r
+\r
        if (!sdDev.ccs)\r
        {\r
                sdLBA = sdLBA * SD_SECTOR_SIZE;\r
@@ -153,10 +183,9 @@ void sdPrepareRead()
        }\r
 }\r
 \r
-static void doReadSector(uint32_t numBytes)\r
+static void\r
+dmaReadSector(uint8_t* outputBuffer)\r
 {\r
-       int prep, i, guard;\r
-\r
        // Wait for a start-block token.\r
        // Don't wait more than 100ms, which is the timeout recommended\r
        // in the standard.\r
@@ -183,93 +212,60 @@ static void doReadSector(uint32_t numBytes)
                return;\r
        }\r
 \r
-       scsiEnterPhase(DATA_IN);\r
+       CyDmaTdSetConfiguration(sdDMARxTd[0], SD_SECTOR_SIZE, CY_DMA_DISABLE_TD, TD_INC_DST_ADR | SD_RX_DMA__TD_TERMOUT_EN);\r
+       CyDmaTdSetAddress(sdDMARxTd[0], LO16((uint32)SDCard_RXDATA_PTR), LO16((uint32)outputBuffer));\r
+       CyDmaTdSetConfiguration(sdDMATxTd[0], SD_SECTOR_SIZE, CY_DMA_DISABLE_TD, SD_TX_DMA__TD_TERMOUT_EN);\r
+       CyDmaTdSetAddress(sdDMATxTd[0], LO16((uint32)&dummyBuffer), LO16((uint32)SDCard_TXDATA_PTR));\r
 \r
-       // Quickly seed the FIFO\r
-       prep = 4;\r
-       CY_SET_REG8(SDCard_TXDATA_PTR, 0xFF); // Put a byte in the FIFO\r
-       CY_SET_REG8(SDCard_TXDATA_PTR, 0xFF); // Put a byte in the FIFO\r
-       CY_SET_REG8(SDCard_TXDATA_PTR, 0xFF); // Put a byte in the FIFO\r
-       CY_SET_REG8(SDCard_TXDATA_PTR, 0xFF); // Put a byte in the FIFO\r
-       \r
-       i = 0;\r
-       guard = 0;\r
-       \r
-       // This loop is critically important for performance.\r
-       // We stream data straight from the SDCard fifos into the SCSI component\r
-       // FIFO's. If the loop isn't fast enough, the transmit FIFO's will empty,\r
-       // and performance will suffer. Every clock cycle counts.\r
-       while (i < numBytes && !scsiDev.resetFlag)\r
-       {\r
-               uint8_t sdRxStatus = CY_GET_REG8(SDCard_RX_STATUS_PTR);\r
-               uint8_t scsiStatus = CY_GET_REG8(scsiTarget_StatusReg__STATUS_REG);\r
-\r
-               // Read from the SPIM fifo if there is room to stream the byte to the\r
-               // SCSI fifos\r
-               if((sdRxStatus & SDCard_STS_RX_FIFO_NOT_EMPTY) &&\r
-                       (scsiStatus & 1) // SCSI TX FIFO NOT FULL\r
-                       )\r
-               {\r
-                       uint8_t val = CY_GET_REG8(SDCard_RXDATA_PTR);\r
-                       CY_SET_REG8(scsiTarget_datapath__F0_REG, val);\r
-                       guard++;\r
+       dmaInProgress = 1;\r
+       // The DMA controller is a bit trigger-happy. It will retain\r
+       // a drq request that was triggered while the channel was\r
+       // disabled.\r
+       CyDmaClearPendingDrq(sdDMATxChan);\r
+       CyDmaClearPendingDrq(sdDMARxChan);\r
 \r
-                       // How many bytes are in a 4-byte FIFO ? 5.  4 FIFO bytes PLUS one byte\r
-                       // being processed bit-by-bit. Artifically limit the number of bytes in the \r
-                       // "combined" SPIM TX and RX FIFOS to the individual FIFO size.\r
-                       // Unlike the SCSI component, SPIM doesn't check if there's room in\r
-                       // the output FIFO before starting to transmit.\r
+       txDMAComplete = 0;\r
+       rxDMAComplete = 0;\r
 \r
-                       if (prep < numBytes)\r
-                       {\r
-                               CY_SET_REG8(SDCard_TXDATA_PTR, 0xFF); // Put a byte in the FIFO\r
-                               prep++;\r
-                       }\r
+       // Re-loading the initial TD's here is very important, or else\r
+       // we'll be re-using the last-used TD, which would be the last\r
+       // in the chain (ie. CRC TD)\r
+       CyDmaChSetInitialTd(sdDMARxChan, sdDMARxTd[0]);\r
+       CyDmaChSetInitialTd(sdDMATxChan, sdDMATxTd[0]);\r
 \r
-               }\r
-                                       \r
-               // Byte has been sent out the SCSI interface.\r
-               if (scsiStatus & 2) // SCSI RX FIFO NOT EMPTY\r
-               {\r
-                       CY_GET_REG8(scsiTarget_datapath__F1_REG);\r
-                       ++i;\r
-               }\r
-       }\r
+       // There is no flow control, so we must ensure we can read the bytes\r
+       // before we start transmitting\r
+       CyDmaChEnable(sdDMARxChan, 1);\r
+       CyDmaChEnable(sdDMATxChan, 1);\r
+}\r
 \r
-       // Read and discard remaining bytes. This applis for non-512 byte sectors,\r
-       // or if a SCSI reset was triggered.\r
-       while (guard < SD_SECTOR_SIZE)\r
+int\r
+sdReadSectorDMAPoll()\r
+{\r
+       if (rxDMAComplete && txDMAComplete)\r
        {\r
-               uint8_t sdRxStatus = CY_GET_REG8(SDCard_RX_STATUS_PTR);\r
-               if(sdRxStatus & SDCard_STS_RX_FIFO_NOT_EMPTY)\r
-               {\r
-                       CY_GET_REG8(SDCard_RXDATA_PTR);\r
-                       guard++;\r
-               }\r
+               // DMA transfer is complete\r
+               dmaInProgress = 0;\r
 \r
-               if ((prep - guard < 4) && (prep < SD_SECTOR_SIZE))\r
-               {\r
-                       CY_SET_REG8(SDCard_TXDATA_PTR, 0xFF); // Put a byte in the FIFO\r
-                       prep++;\r
-               }\r
-       }\r
+               sdSpiByte(0xFF); // CRC\r
+               sdSpiByte(0xFF); // CRC\r
 \r
-       sdSpiByte(0xFF); // CRC\r
-       sdSpiByte(0xFF); // CRC\r
-       scsiDev.dataLen = numBytes;\r
-       scsiDev.dataPtr = numBytes;\r
-       \r
-       while (SCSI_ReadPin(SCSI_In_ACK) && !scsiDev.resetFlag) {}\r
+               return 1;\r
+       }\r
+       else\r
+       {\r
+               return 0;\r
+       }\r
 }\r
 \r
-static void doReadSectorSingle(uint32 sdBlock, int sdBytes)\r
+void sdReadSingleSectorDMA(uint32_t lba, uint8_t* outputBuffer)\r
 {\r
        uint8 v;\r
        if (!sdDev.ccs)\r
        {\r
-               sdBlock = sdBlock * SD_SECTOR_SIZE;\r
-       }       \r
-       v = sdCommandAndResponse(SD_READ_SINGLE_BLOCK, sdBlock);\r
+               lba = lba * SD_SECTOR_SIZE;\r
+       }\r
+       v = sdCommandAndResponse(SD_READ_SINGLE_BLOCK, lba);\r
        if (v)\r
        {\r
                scsiDiskReset();\r
@@ -282,52 +278,28 @@ static void doReadSectorSingle(uint32 sdBlock, int sdBytes)
        }\r
        else\r
        {\r
-               doReadSector(sdBytes);\r
+               dmaReadSector(outputBuffer);\r
        }\r
 }\r
 \r
-\r
-void sdReadSectorSingle()\r
+void\r
+sdReadMultiSectorDMA(uint8_t* outputBuffer)\r
 {\r
-       uint32 scsiLBA = (transfer.lba + transfer.currentBlock);\r
-       uint32 sdLBA = SCSISector2SD(scsiLBA);\r
-       \r
-       int sdSectors = SDSectorsPerSCSISector();\r
-       int i;\r
-       for (i = 0; (i < sdSectors - 1) && (scsiDev.status != CHECK_CONDITION); ++i)\r
-       {\r
-               doReadSectorSingle(sdLBA + i, SD_SECTOR_SIZE);\r
-       }\r
-\r
-       if (scsiDev.status != CHECK_CONDITION)\r
-       {\r
-               int remaining = config->bytesPerSector % SD_SECTOR_SIZE;\r
-               if (remaining == 0) remaining = SD_SECTOR_SIZE; // Full sector needed.\r
-               doReadSectorSingle(sdLBA + i, remaining);\r
-       }\r
+       // Pre: sdReadMultiSectorPrep called.\r
+       dmaReadSector(outputBuffer);\r
 }\r
 \r
-void sdReadSectorMulti()\r
-{\r
-       // Pre: sdPrepareRead called.\r
-       int sdSectors = SDSectorsPerSCSISector();\r
-       int i;\r
-       for (i = 0; (i < sdSectors - 1) && (scsiDev.status != CHECK_CONDITION); ++i)\r
-       {\r
-               doReadSector(SD_SECTOR_SIZE);\r
-       }\r
 \r
-       if (scsiDev.status != CHECK_CONDITION)\r
+void sdCompleteRead()\r
+{\r
+       if (dmaInProgress)\r
        {\r
-               int remaining = config->bytesPerSector % SD_SECTOR_SIZE;\r
-               if (remaining == 0) remaining = SD_SECTOR_SIZE; // Full sector needed.\r
-               doReadSector(remaining);\r
+               // Not much choice but to wait until we've completed the transfer.\r
+               // Cancelling the transfer can't be done as we have no way to reset\r
+               // the SD card.\r
+               while (!sdReadSectorDMAPoll()) { /* spin */ }\r
        }\r
-}\r
 \r
-\r
-void sdCompleteRead()\r
-{\r
        transfer.inProgress = 0;\r
 \r
        // We cannot send even a single "padding" byte, as we normally would when\r
@@ -375,152 +347,110 @@ static void sdWaitWriteBusy()
        } while (val != 0xFF);\r
 }\r
 \r
-static int doWriteSector(uint32_t numBytes)\r
+void\r
+sdWriteMultiSectorDMA(uint8_t* outputBuffer)\r
 {\r
-       int prep, i, guard;\r
-       int result, maxWait;\r
-       uint8 dataToken;\r
-\r
-       scsiEnterPhase(DATA_OUT);\r
-       \r
        sdSpiByte(0xFC); // MULTIPLE byte start token\r
-       \r
-       prep = 0;\r
-       i = 0;\r
-       guard = 0;\r
-\r
-       // This loop is critically important for performance.\r
-       // We stream data straight from the SCSI fifos into the SPIM component\r
-       // FIFO's. If the loop isn't fast enough, the transmit FIFO's will empty,\r
-       // and performance will suffer. Every clock cycle counts.       \r
-       while (i < numBytes && !scsiDev.resetFlag)\r
-       {\r
-               uint8_t sdRxStatus = CY_GET_REG8(SDCard_RX_STATUS_PTR);\r
-               uint8_t scsiStatus = CY_GET_REG8(scsiTarget_StatusReg__STATUS_REG);\r
-\r
-               // Read from the SCSI fifo if there is room to stream the byte to the\r
-               // SPIM fifos\r
-               // See sdReadSector for comment on guard (FIFO size is really 5)\r
-               if((guard - i < 4) &&\r
-                       (scsiDev.resetFlag || (scsiStatus & 2))\r
-                       ) // SCSI RX FIFO NOT EMPTY\r
-               {\r
-                       uint8_t val = CY_GET_REG8(scsiTarget_datapath__F1_REG);\r
-                       CY_SET_REG8(SDCard_TXDATA_PTR, val);\r
-                       guard++;\r
-               }\r
-\r
-               // Byte has been sent out the SPIM interface.\r
-               if (sdRxStatus & SDCard_STS_RX_FIFO_NOT_EMPTY)\r
-               {\r
-                        CY_GET_REG8(SDCard_RXDATA_PTR);\r
-                       ++i;\r
-               }\r
 \r
-               if (prep < numBytes &&\r
-                       (scsiDev.resetFlag || (scsiStatus & 1)) // SCSI TX FIFO NOT FULL\r
-                       )\r
-               {\r
-                       // Trigger the SCSI component to read a byte\r
-                       CY_SET_REG8(scsiTarget_datapath__F0_REG, 0xFF);\r
-                       prep++;\r
-               }\r
-       }\r
+       CyDmaTdSetConfiguration(sdDMATxTd[0], SD_SECTOR_SIZE, CY_DMA_DISABLE_TD, TD_INC_SRC_ADR | SD_TX_DMA__TD_TERMOUT_EN);\r
+       CyDmaTdSetAddress(sdDMATxTd[0], LO16((uint32)outputBuffer), LO16((uint32)SDCard_TXDATA_PTR));\r
+       CyDmaTdSetConfiguration(sdDMARxTd[0], SD_SECTOR_SIZE, CY_DMA_DISABLE_TD, SD_RX_DMA__TD_TERMOUT_EN);\r
+       CyDmaTdSetAddress(sdDMARxTd[0], LO16((uint32)SDCard_RXDATA_PTR), LO16((uint32)&discardBuffer));\r
        \r
-       // Write remaining bytes as 0x00\r
-       while (i < SD_SECTOR_SIZE)\r
+       dmaInProgress = 1;\r
+       // The DMA controller is a bit trigger-happy. It will retain\r
+       // a drq request that was triggered while the channel was\r
+       // disabled.\r
+       CyDmaClearPendingDrq(sdDMATxChan);\r
+       CyDmaClearPendingDrq(sdDMARxChan);\r
+\r
+       txDMAComplete = 0;\r
+       rxDMAComplete = 0;\r
+\r
+       // Re-loading the initial TD's here is very important, or else\r
+       // we'll be re-using the last-used TD, which would be the last\r
+       // in the chain (ie. CRC TD)\r
+       CyDmaChSetInitialTd(sdDMARxChan, sdDMARxTd[0]);\r
+       CyDmaChSetInitialTd(sdDMATxChan, sdDMATxTd[0]);\r
+\r
+       // There is no flow control, so we must ensure we can read the bytes\r
+       // before we start transmitting\r
+       CyDmaChEnable(sdDMARxChan, 1);\r
+       CyDmaChEnable(sdDMATxChan, 1);\r
+}\r
+\r
+int\r
+sdWriteSectorDMAPoll()\r
+{\r
+       if (rxDMAComplete && txDMAComplete)\r
        {\r
-               uint8_t sdRxStatus = CY_GET_REG8(SDCard_RX_STATUS_PTR);\r
+               // DMA transfer is complete\r
+               dmaInProgress = 0;\r
 \r
-               if((guard - i < 4) && (guard < SD_SECTOR_SIZE))\r
-               {\r
-                       CY_SET_REG8(SDCard_TXDATA_PTR, 0x00);\r
-                       guard++;\r
-               }\r
+               sdSpiByte(0x00); // CRC\r
+               sdSpiByte(0x00); // CRC\r
 \r
-               // Byte has been sent out the SPIM interface.\r
-               if (sdRxStatus & SDCard_STS_RX_FIFO_NOT_EMPTY)\r
+               // Don't wait more than 1s.\r
+               // My 2g Kingston micro-sd card doesn't respond immediately.\r
+               // My 16Gb card does.\r
+               int maxWait = 1000000;\r
+               uint8_t dataToken = sdSpiByte(0xFF); // Response\r
+               while (dataToken == 0xFF && maxWait-- > 0)\r
                {\r
-                        CY_GET_REG8(SDCard_RXDATA_PTR);\r
-                       ++i;\r
+                       CyDelayUs(1);\r
+                       dataToken = sdSpiByte(0xFF);\r
                }\r
-       }\r
-       \r
-       sdSpiByte(0x00); // CRC\r
-       sdSpiByte(0x00); // CRC\r
-\r
-       // Don't wait more than 1s.\r
-       // My 2g Kingston micro-sd card doesn't respond immediately.\r
-       // My 16Gb card does.\r
-       maxWait = 1000000;\r
-       dataToken = sdSpiByte(0xFF); // Response\r
-       while (dataToken == 0xFF && maxWait-- > 0)\r
-       {\r
-               CyDelayUs(1);\r
-               dataToken = sdSpiByte(0xFF);\r
-       }\r
-       if (((dataToken & 0x1F) >> 1) != 0x2) // Accepted.\r
-       {\r
-               uint8 r1b, busy;\r
+               if (((dataToken & 0x1F) >> 1) != 0x2) // Accepted.\r
+               {\r
+                       uint8 r1b, busy;\r
                \r
-               sdWaitWriteBusy();\r
+                       sdWaitWriteBusy();\r
 \r
-               r1b = sdCommandAndResponse(SD_STOP_TRANSMISSION, 0);\r
-               (void) r1b;\r
-               sdSpiByte(0xFF);\r
+                       r1b = sdCommandAndResponse(SD_STOP_TRANSMISSION, 0);\r
+                       (void) r1b;\r
+                       sdSpiByte(0xFF);\r
 \r
-               // R1b has an optional trailing "busy" signal.\r
-               do\r
-               {\r
-                       busy = sdSpiByte(0xFF);\r
-               } while (busy == 0);\r
+                       // R1b has an optional trailing "busy" signal.\r
+                       do\r
+                       {\r
+                               busy = sdSpiByte(0xFF);\r
+                       } while (busy == 0);\r
 \r
-               // Wait for the card to come out of busy.\r
-               sdWaitWriteBusy();\r
+                       // Wait for the card to come out of busy.\r
+                       sdWaitWriteBusy();\r
 \r
-               transfer.inProgress = 0;\r
-               scsiDiskReset();\r
-               sdClearStatus();\r
+                       transfer.inProgress = 0;\r
+                       scsiDiskReset();\r
+                       sdClearStatus();\r
 \r
-               scsiDev.status = CHECK_CONDITION;\r
-               scsiDev.sense.code = HARDWARE_ERROR;\r
-               scsiDev.sense.asc = LOGICAL_UNIT_COMMUNICATION_FAILURE;\r
-               scsiDev.phase = STATUS;\r
-               result = 0;\r
+                       scsiDev.status = CHECK_CONDITION;\r
+                       scsiDev.sense.code = HARDWARE_ERROR;\r
+                       scsiDev.sense.asc = LOGICAL_UNIT_COMMUNICATION_FAILURE;\r
+                       scsiDev.phase = STATUS;\r
+               }\r
+               else\r
+               {\r
+                       sdWaitWriteBusy();\r
+               }               \r
+\r
+               return 1;\r
        }\r
        else\r
        {\r
-               sdWaitWriteBusy();\r
-               result = 1;\r
+               return 0;\r
        }\r
-\r
-       while (SCSI_ReadPin(SCSI_In_ACK) && !scsiDev.resetFlag) {}\r
-\r
-       return result;\r
 }\r
 \r
-int sdWriteSector()\r
+void sdCompleteWrite()\r
 {\r
-       int result = 1;\r
-       // Pre: sdPrepareWrite called.\r
-       int sdSectors = SDSectorsPerSCSISector();\r
-       int i;\r
-       for (i = 0; result && (i < sdSectors - 1) && (scsiDev.status != CHECK_CONDITION); ++i)\r
-       {\r
-               result = doWriteSector(SD_SECTOR_SIZE);\r
-       }\r
-\r
-       if (result && scsiDev.status != CHECK_CONDITION)\r
+       if (dmaInProgress)\r
        {\r
-               int remaining = config->bytesPerSector % SD_SECTOR_SIZE;\r
-               if (remaining == 0) remaining = SD_SECTOR_SIZE; // Full sector needed.\r
-               result = doWriteSector(remaining);\r
+               // Not much choice but to wait until we've completed the transfer.\r
+               // Cancelling the transfer can't be done as we have no way to reset\r
+               // the SD card.\r
+               while (!sdWriteSectorDMAPoll()) { /* spin */ }\r
        }\r
-       return result;\r
-}\r
-\r
-void sdCompleteWrite()\r
-{\r
+       \r
        transfer.inProgress = 0;\r
 \r
        uint8 r1, r2;\r
@@ -669,6 +599,38 @@ bad:
        return 0;\r
 }\r
 \r
+static void sdInitDMA()\r
+{\r
+       // One-time init only.\r
+       if (sdDMATxChan == CY_DMA_INVALID_CHANNEL)\r
+       {\r
+               sdDMATxChan =\r
+                       SD_TX_DMA_DmaInitialize(\r
+                               1, // Bytes per burst\r
+                               1, // request per burst\r
+                               HI16(CYDEV_SRAM_BASE),\r
+                               HI16(CYDEV_PERIPH_BASE)\r
+                               );\r
+\r
+               sdDMARxChan =\r
+                       SD_RX_DMA_DmaInitialize(\r
+                               1, // Bytes per burst\r
+                               1, // request per burst\r
+                               HI16(CYDEV_PERIPH_BASE),\r
+                               HI16(CYDEV_SRAM_BASE)\r
+                               );\r
+\r
+               CyDmaChDisable(sdDMATxChan);\r
+               CyDmaChDisable(sdDMARxChan);\r
+\r
+               sdDMARxTd[0] = CyDmaTdAllocate();\r
+               sdDMATxTd[0] = CyDmaTdAllocate();\r
+\r
+               SD_RX_DMA_COMPLETE_StartEx(sdRxISR);\r
+               SD_TX_DMA_COMPLETE_StartEx(sdTxISR);\r
+       }\r
+}\r
+\r
 int sdInit()\r
 {\r
        int result = 0;\r
@@ -679,9 +641,17 @@ int sdInit()
        sdDev.ccs = 0;\r
        sdDev.capacity = 0;\r
 \r
+       sdInitDMA();\r
+\r
        SD_CS_Write(1); // Set CS inactive (active low)\r
-       SD_Init_Clk_Start(); // Turn on the slow 400KHz clock\r
-       SD_Clk_Ctl_Write(0); // Select the 400KHz clock source.\r
+\r
+       // Set the SPI clock for 400kHz transfers\r
+       // 25MHz / 400kHz approx factor of 63.\r
+       uint16_t clkDiv25MHz =  SD_Data_Clk_GetDividerRegister();\r
+       SD_Data_Clk_SetDivider(clkDiv25MHz * 63);\r
+       // Wait for the clock to settle.\r
+       CyDelayUs(1);\r
+\r
        SDCard_Start(); // Enable SPI hardware\r
 \r
        // Power on sequence. 74 clock cycles of a "1" while CS unasserted.\r
@@ -708,24 +678,16 @@ int sdInit()
        v = sdCRCCommandAndResponse(SD_CRC_ON_OFF, 0); //crc off\r
        if(v){goto bad;}\r
 \r
-       // now set the sd card up for full speed\r
+       // now set the sd card back to full speed.\r
        // The SD Card spec says we can run SPI @ 25MHz\r
-       // But the PSoC 5LP SPIM datasheet says the most we can do is 18MHz.\r
-       // I've confirmed that no data is ever put into the RX FIFO when run at\r
-       // 20MHz or 25MHz.\r
-       // ... and then we get timing analysis failures if the BUS_CLK is over 62MHz.\r
-       // So we run the MASTER_CLK and BUS_CLK at 60MHz, and run the SPI clock at 30MHz\r
-       // (15MHz SPI transfer clock).\r
        SDCard_Stop();\r
-       \r
+\r
        // We can't run at full-speed with the pullup resistors enabled.\r
        SD_MISO_SetDriveMode(SD_MISO_DM_DIG_HIZ);\r
        SD_MOSI_SetDriveMode(SD_MOSI_DM_STRONG);\r
        SD_SCK_SetDriveMode(SD_SCK_DM_STRONG);\r
-       \r
-       SD_Data_Clk_Start(); // Turn on the fast clock\r
-       SD_Clk_Ctl_Write(1); // Select the fast clock source.\r
-       SD_Init_Clk_Stop(); // Stop the slow clock.\r
+\r
+       SD_Data_Clk_SetDivider(clkDiv25MHz);\r
        CyDelayUs(1);\r
        SDCard_Start();\r
 \r
@@ -750,7 +712,7 @@ out:
 \r
 }\r
 \r
-void sdPrepareWrite()\r
+void sdWriteMultiSectorPrep()\r
 {\r
        uint8 v;\r
        \r
index 4f1e9dbe38987ef8ae3130bbb1412ebb2c927686..ffa4dd0115dcbcd8cb47a19491f9fd602cd965dc 100755 (executable)
@@ -58,13 +58,16 @@ typedef struct
 extern SdDevice sdDev;
 
 int sdInit(void);
-void sdPrepareWrite(void);
-int sdWriteSector(void);
+
+void sdWriteMultiSectorPrep(void);
+void sdWriteMultiSectorDMA(uint8_t* outputBuffer);
+int sdWriteSectorDMAPoll();
 void sdCompleteWrite(void);
 
-void sdPrepareRead(void);
-void sdReadSectorMulti(void);
-void sdReadSectorSingle(void);
+void sdReadMultiSectorPrep(void);
+void sdReadMultiSectorDMA(uint8_t* outputBuffer);
+void sdReadSingleSectorDMA(uint32_t lba, uint8_t* outputBuffer);
+int sdReadSectorDMAPoll();
 void sdCompleteRead(void);
 
 #endif