From 5ede6f0d077e6244153078cc33b62fd445b17a1e Mon Sep 17 00:00:00 2001 From: Michael McMaster Date: Mon, 23 Jun 2014 13:52:05 +1000 Subject: [PATCH] Updating Powerbook firmware with the latest mainline changes. --- readme.txt | 3 + .../pbook/bootloader.cydsn/bootloader.cycdx | 0 .../pbook/bootloader.cydsn/bootloader.cyfit | Bin 160805 -> 160840 bytes .../pbook/bootloader.cydsn/bootloader.svd | 0 .../Generated_Source/PSoC5/Debug_Timer.c | 754 +++++++ .../Generated_Source/PSoC5/Debug_Timer.h | 439 ++++ .../PSoC5/Debug_Timer_Interrupt.c | 356 ++++ .../PSoC5/Debug_Timer_Interrupt.h | 70 + .../Generated_Source/PSoC5/Debug_Timer_PM.c | 194 ++ .../Generated_Source/PSoC5/SCSI_CTL_PHASE.c | 63 + .../Generated_Source/PSoC5/SCSI_CTL_PHASE.h | 42 + .../Generated_Source/PSoC5/SCSI_Out_Bits.c | 63 + .../Generated_Source/PSoC5/SCSI_Out_Bits.h | 42 + .../Generated_Source/PSoC5/SCSI_Out_Ctl.c | 63 + .../Generated_Source/PSoC5/SCSI_Out_Ctl.h | 42 + .../Generated_Source/PSoC5/SCSI_Out_aliases.h | 4 +- .../PSoC5/SCSI_RX_DMA_COMPLETE.c | 356 ++++ .../PSoC5/SCSI_RX_DMA_COMPLETE.h | 70 + .../Generated_Source/PSoC5/SCSI_RX_DMA_dma.c | 141 ++ .../Generated_Source/PSoC5/SCSI_RX_DMA_dma.h | 35 + .../PSoC5/SCSI_TX_DMA_COMPLETE.c | 356 ++++ .../PSoC5/SCSI_TX_DMA_COMPLETE.h | 70 + .../Generated_Source/PSoC5/SCSI_TX_DMA_dma.c | 141 ++ .../Generated_Source/PSoC5/SCSI_TX_DMA_dma.h | 35 + .../Generated_Source/PSoC5/SDCard.h | 4 +- .../PSoC5/SD_RX_DMA_COMPLETE.c | 356 ++++ .../PSoC5/SD_RX_DMA_COMPLETE.h | 70 + .../Generated_Source/PSoC5/SD_RX_DMA_dma.c | 141 ++ .../Generated_Source/PSoC5/SD_RX_DMA_dma.h | 35 + .../PSoC5/SD_TX_DMA_COMPLETE.c | 356 ++++ .../PSoC5/SD_TX_DMA_COMPLETE.h | 70 + .../Generated_Source/PSoC5/SD_TX_DMA_dma.c | 141 ++ .../Generated_Source/PSoC5/SD_TX_DMA_dma.h | 35 + .../Generated_Source/PSoC5/USBFS.h | 11 +- .../Generated_Source/PSoC5/USBFS_descr.c | 116 +- .../Generated_Source/PSoC5/USBFS_pvt.h | 18 +- .../Generated_Source/PSoC5/cyfitter.h | 598 ++++-- .../Generated_Source/PSoC5/cyfitter_cfg.c | 1869 +++++++++-------- .../Generated_Source/PSoC5/cyfittergnu.inc | 598 ++++-- .../Generated_Source/PSoC5/cyfitteriar.inc | 598 ++++-- .../Generated_Source/PSoC5/cyfitterrv.inc | 598 ++++-- .../Generated_Source/PSoC5/project.h | 17 +- .../Generated_Source/PSoC5/timer_clock.c | 521 +++++ .../Generated_Source/PSoC5/timer_clock.h | 124 ++ .../Generated_Source/PSoCCreatorExportIDE.xml | 242 +++ .../pbook.cydsn/TopDesign/TopDesign.cysch | Bin 159595 -> 191735 bytes .../SCSI2SD/pbook/pbook.cydsn/pbook.cycdx | 124 +- .../SCSI2SD/pbook/pbook.cydsn/pbook.cydwr | Bin 134863 -> 135447 bytes .../SCSI2SD/pbook/pbook.cydsn/pbook.cyfit | Bin 223978 -> 239136 bytes .../SCSI2SD/pbook/pbook.cydsn/pbook.cyprj | 449 +++- software/SCSI2SD/pbook/pbook.cydsn/pbook.svd | 325 ++- software/SCSI2SD/src/config.c | 2 +- software/SCSI2SD/src/disk.c | 1 + software/SCSI2SD/src/main.c | 6 + software/SCSI2SD/src/sd.c | 48 +- software/bootloaderhost/main.c | 4 +- software/scsi2sd-config/main.c | 5 + software/scsi2sd-debug/main.c | 10 +- 58 files changed, 9074 insertions(+), 1757 deletions(-) mode change 100755 => 100644 software/SCSI2SD/pbook/bootloader.cydsn/bootloader.cycdx mode change 100755 => 100644 software/SCSI2SD/pbook/bootloader.cydsn/bootloader.cyfit mode change 100755 => 100644 software/SCSI2SD/pbook/bootloader.cydsn/bootloader.svd create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/Debug_Timer.c create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/Debug_Timer.h create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/Debug_Timer_Interrupt.c create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/Debug_Timer_Interrupt.h create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/Debug_Timer_PM.c create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_CTL_PHASE.c create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_CTL_PHASE.h create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_Out_Bits.c create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_Out_Bits.h create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_Out_Ctl.c create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_Out_Ctl.h mode change 100755 => 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_Out_aliases.h create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_COMPLETE.c create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_COMPLETE.h create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_dma.c create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_dma.h create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_COMPLETE.c create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_COMPLETE.h create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_dma.c create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_dma.h mode change 100755 => 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SDCard.h create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_RX_DMA_COMPLETE.c create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_RX_DMA_COMPLETE.h create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_RX_DMA_dma.c create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_RX_DMA_dma.h create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_TX_DMA_COMPLETE.c create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_TX_DMA_COMPLETE.h create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_TX_DMA_dma.c create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_TX_DMA_dma.h mode change 100755 => 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/USBFS.h mode change 100755 => 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/USBFS_descr.c mode change 100755 => 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/USBFS_pvt.h mode change 100755 => 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/cyfitter.h mode change 100755 => 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/cyfitter_cfg.c mode change 100755 => 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/cyfittergnu.inc mode change 100755 => 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/cyfitteriar.inc mode change 100755 => 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/cyfitterrv.inc mode change 100755 => 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/project.h create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/timer_clock.c create mode 100644 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/timer_clock.h create mode 100755 software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoCCreatorExportIDE.xml mode change 100755 => 100644 software/SCSI2SD/pbook/pbook.cydsn/pbook.cycdx mode change 100755 => 100644 software/SCSI2SD/pbook/pbook.cydsn/pbook.cyfit mode change 100755 => 100644 software/SCSI2SD/pbook/pbook.cydsn/pbook.svd diff --git a/readme.txt b/readme.txt index b6d848d3..c727e87c 100644 --- a/readme.txt +++ b/readme.txt @@ -75,3 +75,6 @@ Users have reported success on these systems: HP 16601A logic analyzer Apple IIgs using Apple II High Speed SCSI controller card (from v3.3) Symbolics List Machine XL1200, using 1280 byte sectors (from v3.4) + Fluke 9100 series + PDP-11/73 running RSX11M+ V4.6 + Amiga 500+ with GVP A530 diff --git a/software/SCSI2SD/pbook/bootloader.cydsn/bootloader.cycdx b/software/SCSI2SD/pbook/bootloader.cydsn/bootloader.cycdx old mode 100755 new mode 100644 diff --git a/software/SCSI2SD/pbook/bootloader.cydsn/bootloader.cyfit b/software/SCSI2SD/pbook/bootloader.cydsn/bootloader.cyfit old mode 100755 new mode 100644 index 2d5a709933504b114cb5175543050fe3bf0f0492..0597497a30ebca7382ce15516fa76e2f62722aef GIT binary patch delta 34366 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%0DL3*{4Q1Dbs0d!3!N5$l)if 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.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 +#include +#include + +#if !defined(Debug_Timer_Interrupt__REMOVED) /* Check for removal by optimization */ + +/******************************************************************************* +* Place your includes, defines and code here +********************************************************************************/ +/* `#START Debug_Timer_Interrupt_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: Debug_Timer_Interrupt_Start +******************************************************************************** +* +* Summary: +* Set up the interrupt and enable it. +* +* Parameters: +* None +* +* Return: +* None +* +*******************************************************************************/ +void Debug_Timer_Interrupt_Start(void) +{ + /* For all we know the interrupt is active. */ + Debug_Timer_Interrupt_Disable(); + + /* Set the ISR to point to the Debug_Timer_Interrupt Interrupt. */ + Debug_Timer_Interrupt_SetVector(&Debug_Timer_Interrupt_Interrupt); + + /* Set the priority. */ + Debug_Timer_Interrupt_SetPriority((uint8)Debug_Timer_Interrupt_INTC_PRIOR_NUMBER); + + /* Enable it. */ + Debug_Timer_Interrupt_Enable(); +} + + +/******************************************************************************* +* Function Name: Debug_Timer_Interrupt_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 Debug_Timer_Interrupt_StartEx(cyisraddress address) +{ + /* For all we know the interrupt is active. */ + Debug_Timer_Interrupt_Disable(); + + /* Set the ISR to point to the Debug_Timer_Interrupt Interrupt. */ + Debug_Timer_Interrupt_SetVector(address); + + /* Set the priority. */ + Debug_Timer_Interrupt_SetPriority((uint8)Debug_Timer_Interrupt_INTC_PRIOR_NUMBER); + + /* Enable it. */ + Debug_Timer_Interrupt_Enable(); +} + + +/******************************************************************************* +* Function Name: Debug_Timer_Interrupt_Stop +******************************************************************************** +* +* Summary: +* Disables and removes the interrupt. +* +* Parameters: +* +* Return: +* None +* +*******************************************************************************/ +void Debug_Timer_Interrupt_Stop(void) +{ + /* Disable this interrupt. */ + Debug_Timer_Interrupt_Disable(); + + /* Set the ISR to point to the passive one. */ + Debug_Timer_Interrupt_SetVector(&IntDefaultHandler); +} + + +/******************************************************************************* +* Function Name: Debug_Timer_Interrupt_Interrupt +******************************************************************************** +* +* Summary: +* The default Interrupt Service Routine for Debug_Timer_Interrupt. +* +* Add custom code between the coments to keep the next version of this file +* from over writting your code. +* +* Parameters: +* +* Return: +* None +* +*******************************************************************************/ +CY_ISR(Debug_Timer_Interrupt_Interrupt) +{ + /* Place your Interrupt code here. */ + /* `#START Debug_Timer_Interrupt_Interrupt` */ + + /* `#END` */ +} + + +/******************************************************************************* +* Function Name: Debug_Timer_Interrupt_SetVector +******************************************************************************** +* +* Summary: +* Change the ISR vector for the Interrupt. Note calling Debug_Timer_Interrupt_Start +* will override any effect this method would have had. To set the vector +* before the component has been started use Debug_Timer_Interrupt_StartEx instead. +* +* Parameters: +* address: Address of the ISR to set in the interrupt vector table. +* +* Return: +* None +* +*******************************************************************************/ +void Debug_Timer_Interrupt_SetVector(cyisraddress address) +{ + cyisraddress * ramVectorTable; + + ramVectorTable = (cyisraddress *) *CYINT_VECT_TABLE; + + ramVectorTable[CYINT_IRQ_BASE + (uint32)Debug_Timer_Interrupt__INTC_NUMBER] = address; +} + + +/******************************************************************************* +* Function Name: Debug_Timer_Interrupt_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 Debug_Timer_Interrupt_GetVector(void) +{ + cyisraddress * ramVectorTable; + + ramVectorTable = (cyisraddress *) *CYINT_VECT_TABLE; + + return ramVectorTable[CYINT_IRQ_BASE + (uint32)Debug_Timer_Interrupt__INTC_NUMBER]; +} + + +/******************************************************************************* +* Function Name: Debug_Timer_Interrupt_SetPriority +******************************************************************************** +* +* Summary: +* Sets the Priority of the Interrupt. Note calling Debug_Timer_Interrupt_Start +* or Debug_Timer_Interrupt_StartEx will override any effect this method +* would have had. This method should only be called after +* Debug_Timer_Interrupt_Start or Debug_Timer_Interrupt_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 Debug_Timer_Interrupt_SetPriority(uint8 priority) +{ + *Debug_Timer_Interrupt_INTC_PRIOR = priority << 5; +} + + +/******************************************************************************* +* Function Name: Debug_Timer_Interrupt_GetPriority +******************************************************************************** +* +* Summary: +* Gets the Priority of the Interrupt. +* +* Parameters: +* None +* +* Return: +* Priority of the interrupt. 0 - 7, 0 being the highest. +* +*******************************************************************************/ +uint8 Debug_Timer_Interrupt_GetPriority(void) +{ + uint8 priority; + + + priority = *Debug_Timer_Interrupt_INTC_PRIOR >> 5; + + return priority; +} + + +/******************************************************************************* +* Function Name: Debug_Timer_Interrupt_Enable +******************************************************************************** +* +* Summary: +* Enables the interrupt. +* +* Parameters: +* None +* +* Return: +* None +* +*******************************************************************************/ +void Debug_Timer_Interrupt_Enable(void) +{ + /* Enable the general interrupt. */ + *Debug_Timer_Interrupt_INTC_SET_EN = Debug_Timer_Interrupt__INTC_MASK; +} + + +/******************************************************************************* +* Function Name: Debug_Timer_Interrupt_GetState +******************************************************************************** +* +* Summary: +* Gets the state (enabled, disabled) of the Interrupt. +* +* Parameters: +* None +* +* Return: +* 1 if enabled, 0 if disabled. +* +*******************************************************************************/ +uint8 Debug_Timer_Interrupt_GetState(void) +{ + /* Get the state of the general interrupt. */ + return ((*Debug_Timer_Interrupt_INTC_SET_EN & (uint32)Debug_Timer_Interrupt__INTC_MASK) != 0u) ? 1u:0u; +} + + +/******************************************************************************* +* Function Name: Debug_Timer_Interrupt_Disable +******************************************************************************** +* +* Summary: +* Disables the Interrupt. +* +* Parameters: +* None +* +* Return: +* None +* +*******************************************************************************/ +void Debug_Timer_Interrupt_Disable(void) +{ + /* Disable the general interrupt. */ + *Debug_Timer_Interrupt_INTC_CLR_EN = Debug_Timer_Interrupt__INTC_MASK; +} + + +/******************************************************************************* +* Function Name: Debug_Timer_Interrupt_SetPending +******************************************************************************** +* +* Summary: +* Causes the Interrupt to enter the pending state, a software method of +* generating the interrupt. +* +* Parameters: +* None +* +* Return: +* None +* +*******************************************************************************/ +void Debug_Timer_Interrupt_SetPending(void) +{ + *Debug_Timer_Interrupt_INTC_SET_PD = Debug_Timer_Interrupt__INTC_MASK; +} + + +/******************************************************************************* +* Function Name: Debug_Timer_Interrupt_ClearPending +******************************************************************************** +* +* Summary: +* Clears a pending interrupt. +* +* Parameters: +* None +* +* Return: +* None +* +*******************************************************************************/ +void Debug_Timer_Interrupt_ClearPending(void) +{ + *Debug_Timer_Interrupt_INTC_CLR_PD = Debug_Timer_Interrupt__INTC_MASK; +} + +#endif /* End check for removal by optimization */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/Debug_Timer_Interrupt.h b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/Debug_Timer_Interrupt.h new file mode 100644 index 00000000..df33d25c --- /dev/null +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/Debug_Timer_Interrupt.h @@ -0,0 +1,70 @@ +/******************************************************************************* +* File Name: Debug_Timer_Interrupt.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_Debug_Timer_Interrupt_H) +#define CY_ISR_Debug_Timer_Interrupt_H + + +#include +#include + +/* Interrupt Controller API. */ +void Debug_Timer_Interrupt_Start(void); +void Debug_Timer_Interrupt_StartEx(cyisraddress address); +void Debug_Timer_Interrupt_Stop(void); + +CY_ISR_PROTO(Debug_Timer_Interrupt_Interrupt); + +void Debug_Timer_Interrupt_SetVector(cyisraddress address); +cyisraddress Debug_Timer_Interrupt_GetVector(void); + +void Debug_Timer_Interrupt_SetPriority(uint8 priority); +uint8 Debug_Timer_Interrupt_GetPriority(void); + +void Debug_Timer_Interrupt_Enable(void); +uint8 Debug_Timer_Interrupt_GetState(void); +void Debug_Timer_Interrupt_Disable(void); + +void Debug_Timer_Interrupt_SetPending(void); +void Debug_Timer_Interrupt_ClearPending(void); + + +/* Interrupt Controller Constants */ + +/* Address of the INTC.VECT[x] register that contains the Address of the Debug_Timer_Interrupt ISR. */ +#define Debug_Timer_Interrupt_INTC_VECTOR ((reg32 *) Debug_Timer_Interrupt__INTC_VECT) + +/* Address of the Debug_Timer_Interrupt ISR priority. */ +#define Debug_Timer_Interrupt_INTC_PRIOR ((reg8 *) Debug_Timer_Interrupt__INTC_PRIOR_REG) + +/* Priority of the Debug_Timer_Interrupt interrupt. */ +#define Debug_Timer_Interrupt_INTC_PRIOR_NUMBER Debug_Timer_Interrupt__INTC_PRIOR_NUM + +/* Address of the INTC.SET_EN[x] byte to bit enable Debug_Timer_Interrupt interrupt. */ +#define Debug_Timer_Interrupt_INTC_SET_EN ((reg32 *) Debug_Timer_Interrupt__INTC_SET_EN_REG) + +/* Address of the INTC.CLR_EN[x] register to bit clear the Debug_Timer_Interrupt interrupt. */ +#define Debug_Timer_Interrupt_INTC_CLR_EN ((reg32 *) Debug_Timer_Interrupt__INTC_CLR_EN_REG) + +/* Address of the INTC.SET_PD[x] register to set the Debug_Timer_Interrupt interrupt state to pending. */ +#define Debug_Timer_Interrupt_INTC_SET_PD ((reg32 *) Debug_Timer_Interrupt__INTC_SET_PD_REG) + +/* Address of the INTC.CLR_PD[x] register to clear the Debug_Timer_Interrupt interrupt. */ +#define Debug_Timer_Interrupt_INTC_CLR_PD ((reg32 *) Debug_Timer_Interrupt__INTC_CLR_PD_REG) + + +#endif /* CY_ISR_Debug_Timer_Interrupt_H */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/Debug_Timer_PM.c b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/Debug_Timer_PM.c new file mode 100644 index 00000000..97f2d96d --- /dev/null +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/Debug_Timer_PM.c @@ -0,0 +1,194 @@ +/******************************************************************************* +* File Name: Debug_Timer_PM.c +* Version 2.50 +* +* Description: +* This file provides the power management source code to API for the +* Timer. +* +* Note: +* None +* +******************************************************************************* +* 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 "Debug_Timer.h" +static Debug_Timer_backupStruct Debug_Timer_backup; + + +/******************************************************************************* +* Function Name: Debug_Timer_SaveConfig +******************************************************************************** +* +* Summary: +* Save the current user configuration +* +* Parameters: +* void +* +* Return: +* void +* +* Global variables: +* Debug_Timer_backup: Variables of this global structure are modified to +* store the values of non retention configuration registers when Sleep() API is +* called. +* +*******************************************************************************/ +void Debug_Timer_SaveConfig(void) +{ + #if (!Debug_Timer_UsingFixedFunction) + /* Backup the UDB non-rentention registers for CY_UDB_V0 */ + #if (CY_UDB_V0) + Debug_Timer_backup.TimerUdb = Debug_Timer_ReadCounter(); + Debug_Timer_backup.TimerPeriod = Debug_Timer_ReadPeriod(); + Debug_Timer_backup.InterruptMaskValue = Debug_Timer_STATUS_MASK; + #if (Debug_Timer_UsingHWCaptureCounter) + Debug_Timer_backup.TimerCaptureCounter = Debug_Timer_ReadCaptureCount(); + #endif /* Backup the UDB non-rentention register capture counter for CY_UDB_V0 */ + #endif /* Backup the UDB non-rentention registers for CY_UDB_V0 */ + + #if (CY_UDB_V1) + Debug_Timer_backup.TimerUdb = Debug_Timer_ReadCounter(); + Debug_Timer_backup.InterruptMaskValue = Debug_Timer_STATUS_MASK; + #if (Debug_Timer_UsingHWCaptureCounter) + Debug_Timer_backup.TimerCaptureCounter = Debug_Timer_ReadCaptureCount(); + #endif /* Back Up capture counter register */ + #endif /* Backup non retention registers, interrupt mask and capture counter for CY_UDB_V1 */ + + #if(!Debug_Timer_ControlRegRemoved) + Debug_Timer_backup.TimerControlRegister = Debug_Timer_ReadControlRegister(); + #endif /* Backup the enable state of the Timer component */ + #endif /* Backup non retention registers in UDB implementation. All fixed function registers are retention */ +} + + +/******************************************************************************* +* Function Name: Debug_Timer_RestoreConfig +******************************************************************************** +* +* Summary: +* Restores the current user configuration. +* +* Parameters: +* void +* +* Return: +* void +* +* Global variables: +* Debug_Timer_backup: Variables of this global structure are used to +* restore the values of non retention registers on wakeup from sleep mode. +* +*******************************************************************************/ +void Debug_Timer_RestoreConfig(void) +{ + #if (!Debug_Timer_UsingFixedFunction) + /* Restore the UDB non-rentention registers for CY_UDB_V0 */ + #if (CY_UDB_V0) + /* Interrupt State Backup for Critical Region*/ + uint8 Debug_Timer_interruptState; + + Debug_Timer_WriteCounter(Debug_Timer_backup.TimerUdb); + Debug_Timer_WritePeriod(Debug_Timer_backup.TimerPeriod); + /* CyEnterCriticalRegion and CyExitCriticalRegion are used to mark following region critical*/ + /* Enter Critical Region*/ + Debug_Timer_interruptState = CyEnterCriticalSection(); + /* Use the interrupt output of the status register for IRQ output */ + Debug_Timer_STATUS_AUX_CTRL |= Debug_Timer_STATUS_ACTL_INT_EN_MASK; + /* Exit Critical Region*/ + CyExitCriticalSection(Debug_Timer_interruptState); + Debug_Timer_STATUS_MASK =Debug_Timer_backup.InterruptMaskValue; + #if (Debug_Timer_UsingHWCaptureCounter) + Debug_Timer_SetCaptureCount(Debug_Timer_backup.TimerCaptureCounter); + #endif /* Restore the UDB non-rentention register capture counter for CY_UDB_V0 */ + #endif /* Restore the UDB non-rentention registers for CY_UDB_V0 */ + + #if (CY_UDB_V1) + Debug_Timer_WriteCounter(Debug_Timer_backup.TimerUdb); + Debug_Timer_STATUS_MASK =Debug_Timer_backup.InterruptMaskValue; + #if (Debug_Timer_UsingHWCaptureCounter) + Debug_Timer_SetCaptureCount(Debug_Timer_backup.TimerCaptureCounter); + #endif /* Restore Capture counter register*/ + #endif /* Restore up non retention registers, interrupt mask and capture counter for CY_UDB_V1 */ + + #if(!Debug_Timer_ControlRegRemoved) + Debug_Timer_WriteControlRegister(Debug_Timer_backup.TimerControlRegister); + #endif /* Restore the enable state of the Timer component */ + #endif /* Restore non retention registers in the UDB implementation only */ +} + + +/******************************************************************************* +* Function Name: Debug_Timer_Sleep +******************************************************************************** +* +* Summary: +* Stop and Save the user configuration +* +* Parameters: +* void +* +* Return: +* void +* +* Global variables: +* Debug_Timer_backup.TimerEnableState: Is modified depending on the +* enable state of the block before entering sleep mode. +* +*******************************************************************************/ +void Debug_Timer_Sleep(void) +{ + #if(!Debug_Timer_ControlRegRemoved) + /* Save Counter's enable state */ + if(Debug_Timer_CTRL_ENABLE == (Debug_Timer_CONTROL & Debug_Timer_CTRL_ENABLE)) + { + /* Timer is enabled */ + Debug_Timer_backup.TimerEnableState = 1u; + } + else + { + /* Timer is disabled */ + Debug_Timer_backup.TimerEnableState = 0u; + } + #endif /* Back up enable state from the Timer control register */ + Debug_Timer_Stop(); + Debug_Timer_SaveConfig(); +} + + +/******************************************************************************* +* Function Name: Debug_Timer_Wakeup +******************************************************************************** +* +* Summary: +* Restores and enables the user configuration +* +* Parameters: +* void +* +* Return: +* void +* +* Global variables: +* Debug_Timer_backup.enableState: Is used to restore the enable state of +* block on wakeup from sleep mode. +* +*******************************************************************************/ +void Debug_Timer_Wakeup(void) +{ + Debug_Timer_RestoreConfig(); + #if(!Debug_Timer_ControlRegRemoved) + if(Debug_Timer_backup.TimerEnableState == 1u) + { /* Enable Timer's operation */ + Debug_Timer_Enable(); + } /* Do nothing if Timer was disabled before */ + #endif /* Remove this code section if Control register is removed */ +} + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_CTL_PHASE.c b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_CTL_PHASE.c new file mode 100644 index 00000000..eadf7a36 --- /dev/null +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_CTL_PHASE.c @@ -0,0 +1,63 @@ +/******************************************************************************* +* File Name: SCSI_CTL_PHASE.c +* Version 1.70 +* +* Description: +* This file contains API to enable firmware control of a Control Register. +* +* 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 "SCSI_CTL_PHASE.h" + +#if !defined(SCSI_CTL_PHASE_Sync_ctrl_reg__REMOVED) /* Check for removal by optimization */ + +/******************************************************************************* +* Function Name: SCSI_CTL_PHASE_Write +******************************************************************************** +* +* Summary: +* Write a byte to the Control Register. +* +* Parameters: +* control: The value to be assigned to the Control Register. +* +* Return: +* None. +* +*******************************************************************************/ +void SCSI_CTL_PHASE_Write(uint8 control) +{ + SCSI_CTL_PHASE_Control = control; +} + + +/******************************************************************************* +* Function Name: SCSI_CTL_PHASE_Read +******************************************************************************** +* +* Summary: +* Reads the current value assigned to the Control Register. +* +* Parameters: +* None. +* +* Return: +* Returns the current value in the Control Register. +* +*******************************************************************************/ +uint8 SCSI_CTL_PHASE_Read(void) +{ + return SCSI_CTL_PHASE_Control; +} + +#endif /* End check for removal by optimization */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_CTL_PHASE.h b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_CTL_PHASE.h new file mode 100644 index 00000000..00cbb372 --- /dev/null +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_CTL_PHASE.h @@ -0,0 +1,42 @@ +/******************************************************************************* +* File Name: SCSI_CTL_PHASE.h +* Version 1.70 +* +* Description: +* This file containts Control Register function prototypes and register defines +* +* 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. +*******************************************************************************/ + +#if !defined(CY_CONTROL_REG_SCSI_CTL_PHASE_H) /* CY_CONTROL_REG_SCSI_CTL_PHASE_H */ +#define CY_CONTROL_REG_SCSI_CTL_PHASE_H + +#include "cytypes.h" + + +/*************************************** +* Function Prototypes +***************************************/ + +void SCSI_CTL_PHASE_Write(uint8 control) ; +uint8 SCSI_CTL_PHASE_Read(void) ; + + +/*************************************** +* Registers +***************************************/ + +/* Control Register */ +#define SCSI_CTL_PHASE_Control (* (reg8 *) SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_REG ) +#define SCSI_CTL_PHASE_Control_PTR ( (reg8 *) SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_REG ) + +#endif /* End CY_CONTROL_REG_SCSI_CTL_PHASE_H */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_Out_Bits.c b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_Out_Bits.c new file mode 100644 index 00000000..2fa26a4d --- /dev/null +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_Out_Bits.c @@ -0,0 +1,63 @@ +/******************************************************************************* +* File Name: SCSI_Out_Bits.c +* Version 1.70 +* +* Description: +* This file contains API to enable firmware control of a Control Register. +* +* 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 "SCSI_Out_Bits.h" + +#if !defined(SCSI_Out_Bits_Sync_ctrl_reg__REMOVED) /* Check for removal by optimization */ + +/******************************************************************************* +* Function Name: SCSI_Out_Bits_Write +******************************************************************************** +* +* Summary: +* Write a byte to the Control Register. +* +* Parameters: +* control: The value to be assigned to the Control Register. +* +* Return: +* None. +* +*******************************************************************************/ +void SCSI_Out_Bits_Write(uint8 control) +{ + SCSI_Out_Bits_Control = control; +} + + +/******************************************************************************* +* Function Name: SCSI_Out_Bits_Read +******************************************************************************** +* +* Summary: +* Reads the current value assigned to the Control Register. +* +* Parameters: +* None. +* +* Return: +* Returns the current value in the Control Register. +* +*******************************************************************************/ +uint8 SCSI_Out_Bits_Read(void) +{ + return SCSI_Out_Bits_Control; +} + +#endif /* End check for removal by optimization */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_Out_Bits.h b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_Out_Bits.h new file mode 100644 index 00000000..13df446e --- /dev/null +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_Out_Bits.h @@ -0,0 +1,42 @@ +/******************************************************************************* +* File Name: SCSI_Out_Bits.h +* Version 1.70 +* +* Description: +* This file containts Control Register function prototypes and register defines +* +* 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. +*******************************************************************************/ + +#if !defined(CY_CONTROL_REG_SCSI_Out_Bits_H) /* CY_CONTROL_REG_SCSI_Out_Bits_H */ +#define CY_CONTROL_REG_SCSI_Out_Bits_H + +#include "cytypes.h" + + +/*************************************** +* Function Prototypes +***************************************/ + +void SCSI_Out_Bits_Write(uint8 control) ; +uint8 SCSI_Out_Bits_Read(void) ; + + +/*************************************** +* Registers +***************************************/ + +/* Control Register */ +#define SCSI_Out_Bits_Control (* (reg8 *) SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_REG ) +#define SCSI_Out_Bits_Control_PTR ( (reg8 *) SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_REG ) + +#endif /* End CY_CONTROL_REG_SCSI_Out_Bits_H */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_Out_Ctl.c b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_Out_Ctl.c new file mode 100644 index 00000000..6191598e --- /dev/null +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_Out_Ctl.c @@ -0,0 +1,63 @@ +/******************************************************************************* +* File Name: SCSI_Out_Ctl.c +* Version 1.70 +* +* Description: +* This file contains API to enable firmware control of a Control Register. +* +* 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 "SCSI_Out_Ctl.h" + +#if !defined(SCSI_Out_Ctl_Sync_ctrl_reg__REMOVED) /* Check for removal by optimization */ + +/******************************************************************************* +* Function Name: SCSI_Out_Ctl_Write +******************************************************************************** +* +* Summary: +* Write a byte to the Control Register. +* +* Parameters: +* control: The value to be assigned to the Control Register. +* +* Return: +* None. +* +*******************************************************************************/ +void SCSI_Out_Ctl_Write(uint8 control) +{ + SCSI_Out_Ctl_Control = control; +} + + +/******************************************************************************* +* Function Name: SCSI_Out_Ctl_Read +******************************************************************************** +* +* Summary: +* Reads the current value assigned to the Control Register. +* +* Parameters: +* None. +* +* Return: +* Returns the current value in the Control Register. +* +*******************************************************************************/ +uint8 SCSI_Out_Ctl_Read(void) +{ + return SCSI_Out_Ctl_Control; +} + +#endif /* End check for removal by optimization */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_Out_Ctl.h b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_Out_Ctl.h new file mode 100644 index 00000000..669ebf5f --- /dev/null +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_Out_Ctl.h @@ -0,0 +1,42 @@ +/******************************************************************************* +* File Name: SCSI_Out_Ctl.h +* Version 1.70 +* +* Description: +* This file containts Control Register function prototypes and register defines +* +* 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. +*******************************************************************************/ + +#if !defined(CY_CONTROL_REG_SCSI_Out_Ctl_H) /* CY_CONTROL_REG_SCSI_Out_Ctl_H */ +#define CY_CONTROL_REG_SCSI_Out_Ctl_H + +#include "cytypes.h" + + +/*************************************** +* Function Prototypes +***************************************/ + +void SCSI_Out_Ctl_Write(uint8 control) ; +uint8 SCSI_Out_Ctl_Read(void) ; + + +/*************************************** +* Registers +***************************************/ + +/* Control Register */ +#define SCSI_Out_Ctl_Control (* (reg8 *) SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_REG ) +#define SCSI_Out_Ctl_Control_PTR ( (reg8 *) SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_REG ) + +#endif /* End CY_CONTROL_REG_SCSI_Out_Ctl_H */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_Out_aliases.h b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_Out_aliases.h old mode 100755 new mode 100644 index cd457bc8..56439346 --- a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_Out_aliases.h +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_Out_aliases.h @@ -41,9 +41,9 @@ #define SCSI_Out_BSY SCSI_Out__BSY__PC #define SCSI_Out_ACK SCSI_Out__ACK__PC #define SCSI_Out_RST SCSI_Out__RST__PC -#define SCSI_Out_MSG SCSI_Out__MSG__PC +#define SCSI_Out_MSG_raw SCSI_Out__MSG_raw__PC #define SCSI_Out_SEL SCSI_Out__SEL__PC -#define SCSI_Out_CD SCSI_Out__CD__PC +#define SCSI_Out_CD_raw SCSI_Out__CD_raw__PC #define SCSI_Out_REQ SCSI_Out__REQ__PC #define SCSI_Out_IO_raw SCSI_Out__IO_raw__PC diff --git a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_COMPLETE.c b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_COMPLETE.c new file mode 100644 index 00000000..f3a70080 --- /dev/null +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_COMPLETE.c @@ -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 +#include +#include + +#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/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_COMPLETE.h b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_COMPLETE.h new file mode 100644 index 00000000..1d9e1462 --- /dev/null +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_COMPLETE.h @@ -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 +#include + +/* 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/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_dma.c b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_dma.c new file mode 100644 index 00000000..6bdb2ea6 --- /dev/null +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_dma.c @@ -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 +#include +#include + + + +/**************************************************************************** +* +* 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/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_dma.h b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_dma.h new file mode 100644 index 00000000..40306144 --- /dev/null +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_dma.h @@ -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 +#include + +#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/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_COMPLETE.c b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_COMPLETE.c new file mode 100644 index 00000000..a9c001ed --- /dev/null +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_COMPLETE.c @@ -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 +#include +#include + +#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/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_COMPLETE.h b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_COMPLETE.h new file mode 100644 index 00000000..5efbf9b0 --- /dev/null +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_COMPLETE.h @@ -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 +#include + +/* 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/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_dma.c b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_dma.c new file mode 100644 index 00000000..83419f7f --- /dev/null +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_dma.c @@ -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 +#include +#include + + + +/**************************************************************************** +* +* 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/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_dma.h b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_dma.h new file mode 100644 index 00000000..c0a1b000 --- /dev/null +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_dma.h @@ -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 +#include + +#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 diff --git a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SDCard.h b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SDCard.h old mode 100755 new mode 100644 index 3b99496a..3c59e78f --- a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SDCard.h +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SDCard.h @@ -147,7 +147,7 @@ extern uint8 SDCard_initVar; #define SDCard_INT_ON_SPI_DONE ((uint8) (0u << SDCard_STS_SPI_DONE_SHIFT)) #define SDCard_INT_ON_TX_EMPTY ((uint8) (0u << SDCard_STS_TX_FIFO_EMPTY_SHIFT)) -#define SDCard_INT_ON_TX_NOT_FULL ((uint8) (0u << \ +#define SDCard_INT_ON_TX_NOT_FULL ((uint8) (1u << \ SDCard_STS_TX_FIFO_NOT_FULL_SHIFT)) #define SDCard_INT_ON_BYTE_COMP ((uint8) (0u << SDCard_STS_BYTE_COMPLETE_SHIFT)) #define SDCard_INT_ON_SPI_IDLE ((uint8) (0u << SDCard_STS_SPI_IDLE_SHIFT)) @@ -165,7 +165,7 @@ extern uint8 SDCard_initVar; #define SDCard_INT_ON_RX_FULL ((uint8) (0u << \ SDCard_STS_RX_FIFO_FULL_SHIFT)) -#define SDCard_INT_ON_RX_NOT_EMPTY ((uint8) (0u << \ +#define SDCard_INT_ON_RX_NOT_EMPTY ((uint8) (1u << \ SDCard_STS_RX_FIFO_NOT_EMPTY_SHIFT)) #define SDCard_INT_ON_RX_OVER ((uint8) (0u << \ SDCard_STS_RX_FIFO_OVERRUN_SHIFT)) diff --git a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_RX_DMA_COMPLETE.c b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_RX_DMA_COMPLETE.c new file mode 100644 index 00000000..2671e744 --- /dev/null +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_RX_DMA_COMPLETE.c @@ -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 +#include +#include + +#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/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_RX_DMA_COMPLETE.h b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_RX_DMA_COMPLETE.h new file mode 100644 index 00000000..d1751d11 --- /dev/null +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_RX_DMA_COMPLETE.h @@ -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 +#include + +/* 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/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_RX_DMA_dma.c b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_RX_DMA_dma.c new file mode 100644 index 00000000..b2b9bf10 --- /dev/null +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_RX_DMA_dma.c @@ -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 +#include +#include + + + +/**************************************************************************** +* +* 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/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_RX_DMA_dma.h b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_RX_DMA_dma.h new file mode 100644 index 00000000..c38d0da1 --- /dev/null +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_RX_DMA_dma.h @@ -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 +#include + +#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/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_TX_DMA_COMPLETE.c b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_TX_DMA_COMPLETE.c new file mode 100644 index 00000000..7998256f --- /dev/null +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_TX_DMA_COMPLETE.c @@ -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 +#include +#include + +#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/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_TX_DMA_COMPLETE.h b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_TX_DMA_COMPLETE.h new file mode 100644 index 00000000..bbacac6b --- /dev/null +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_TX_DMA_COMPLETE.h @@ -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 +#include + +/* 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/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_TX_DMA_dma.c b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_TX_DMA_dma.c new file mode 100644 index 00000000..4f605c2e --- /dev/null +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_TX_DMA_dma.c @@ -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 +#include +#include + + + +/**************************************************************************** +* +* 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/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_TX_DMA_dma.h b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_TX_DMA_dma.h new file mode 100644 index 00000000..64a7645a --- /dev/null +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/SD_TX_DMA_dma.h @@ -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 +#include + +#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 diff --git a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/USBFS.h b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/USBFS.h old mode 100755 new mode 100644 index 41a8619d..911a2434 --- a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/USBFS.h +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/USBFS.h @@ -77,6 +77,11 @@ #define USBFS_DEVICE0_CONFIGURATION0_INTERFACE0_ALTERNATE0_HID_OUT_BUF_SIZE (65u) #define USBFS_DEVICE0_CONFIGURATION0_INTERFACE0_ALTERNATE0_HID_NUM_OUT_RPTS (1u) #define USBFS_DEVICE0_CONFIGURATION0_INTERFACE0_ALTERNATE0_HID_COUNT (1u) +#define USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_IN_BUF_SIZE (65u) +#define USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_NUM_IN_RPTS (1u) +#define USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_OUT_BUF_SIZE (65u) +#define USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_NUM_OUT_RPTS (1u) +#define USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_COUNT (1u) #define USBFS_ENABLE_HID_CLASS #define USBFS_HID_RPT_1_SIZE_LSB (0x24u) #define USBFS_HID_RPT_1_SIZE_MSB (0x00u) @@ -86,12 +91,12 @@ #define USBFS_EXTERN_VBUS (0u) #define USBFS_EXTERN_VND (0u) #define USBFS_EXTERN_CLS (0u) -#define USBFS_MAX_INTERFACES_NUMBER (1u) +#define USBFS_MAX_INTERFACES_NUMBER (2u) #define USBFS_EP0_ISR_REMOVE (0u) #define USBFS_EP1_ISR_REMOVE (0u) #define USBFS_EP2_ISR_REMOVE (0u) -#define USBFS_EP3_ISR_REMOVE (1u) -#define USBFS_EP4_ISR_REMOVE (1u) +#define USBFS_EP3_ISR_REMOVE (0u) +#define USBFS_EP4_ISR_REMOVE (0u) #define USBFS_EP5_ISR_REMOVE (1u) #define USBFS_EP6_ISR_REMOVE (1u) #define USBFS_EP7_ISR_REMOVE (1u) diff --git a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/USBFS_descr.c b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/USBFS_descr.c old mode 100755 new mode 100644 index 23e0b906..e2b19c40 --- a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/USBFS_descr.c +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/USBFS_descr.c @@ -55,11 +55,11 @@ const uint8 CYCODE USBFS_DEVICE0_DESCR[18u] = { /********************************************************************* * Config Descriptor *********************************************************************/ -const uint8 CYCODE USBFS_DEVICE0_CONFIGURATION0_DESCR[41u] = { +const uint8 CYCODE USBFS_DEVICE0_CONFIGURATION0_DESCR[73u] = { /* Config Descriptor Length */ 0x09u, /* DescriptorType: CONFIG */ 0x02u, -/* wTotalLength */ 0x29u, 0x00u, -/* bNumInterfaces */ 0x01u, +/* wTotalLength */ 0x49u, 0x00u, +/* bNumInterfaces */ 0x02u, /* bConfigurationValue */ 0x01u, /* iConfiguration */ 0x00u, /* bmAttributes */ 0x80u, @@ -104,6 +104,47 @@ const uint8 CYCODE USBFS_DEVICE0_CONFIGURATION0_DESCR[41u] = { /* bEndpointAddress */ 0x82u, /* bmAttributes */ 0x03u, /* wMaxPacketSize */ 0x40u, 0x00u, +/* bInterval */ 0x40u, +/********************************************************************* +* Interface Descriptor +*********************************************************************/ +/* Interface Descriptor Length */ 0x09u, +/* DescriptorType: INTERFACE */ 0x04u, +/* bInterfaceNumber */ 0x01u, +/* bAlternateSetting */ 0x00u, +/* bNumEndpoints */ 0x02u, +/* bInterfaceClass */ 0x03u, +/* bInterfaceSubClass */ 0x00u, +/* bInterfaceProtocol */ 0x00u, +/* iInterface */ 0x00u, +/********************************************************************* +* HID Class Descriptor +*********************************************************************/ +/* HID Class Descriptor Length */ 0x09u, +/* DescriptorType: HID_CLASS */ 0x21u, +/* bcdHID */ 0x11u, 0x01u, +/* bCountryCode */ 0x00u, +/* bNumDescriptors */ 0x01u, +/* bDescriptorType */ 0x22u, +/* wDescriptorLength (LSB) */ USBFS_HID_RPT_1_SIZE_LSB, +/* wDescriptorLength (MSB) */ USBFS_HID_RPT_1_SIZE_MSB, +/********************************************************************* +* Endpoint Descriptor +*********************************************************************/ +/* Endpoint Descriptor Length */ 0x07u, +/* DescriptorType: ENDPOINT */ 0x05u, +/* bEndpointAddress */ 0x03u, +/* bmAttributes */ 0x03u, +/* wMaxPacketSize */ 0x40u, 0x00u, +/* bInterval */ 0x80u, +/********************************************************************* +* Endpoint Descriptor +*********************************************************************/ +/* Endpoint Descriptor Length */ 0x07u, +/* DescriptorType: ENDPOINT */ 0x05u, +/* bEndpointAddress */ 0x84u, +/* bmAttributes */ 0x03u, +/* wMaxPacketSize */ 0x40u, 0x00u, /* bInterval */ 0x40u }; @@ -221,6 +262,53 @@ const T_USBFS_LUT CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE0_ALTERNATE0_HID_ {0x01u, (const void *)&USBFS_DEVICE0_CONFIGURATION0_DESCR[18]} }; #endif /* USER_DEFINE_USBFS_DEVICE0_CONFIGURATION0_INTERFACE0_ALTERNATE0_HID_HID_RPT_STORAGE */ +#if !defined(USER_DEFINE_USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_HID_RPT_STORAGE) +/********************************************************************* +* HID Input Report Storage +*********************************************************************/ +T_USBFS_XFER_STATUS_BLOCK USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_IN_RPT_SCB; +uint8 USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_IN_BUF[ + USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_IN_BUF_SIZE]; + +/********************************************************************* +* HID Input Report TD Table +*********************************************************************/ +const T_USBFS_TD CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_IN_RPT_TABLE[1u] = { + {USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_IN_BUF_SIZE, + &USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_IN_BUF[0u], + &USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_IN_RPT_SCB}, +}; +/********************************************************************* +* HID Output Report Storage +*********************************************************************/ +T_USBFS_XFER_STATUS_BLOCK USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_OUT_RPT_SCB; +uint8 USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_OUT_BUF[ + USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_OUT_BUF_SIZE]; + +/********************************************************************* +* HID Output Report TD Table +*********************************************************************/ +const T_USBFS_TD CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_OUT_RPT_TABLE[1u] = { + {USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_OUT_BUF_SIZE, + &USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_OUT_BUF[0u], + &USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_OUT_RPT_SCB}, +}; +/********************************************************************* +* HID Report Look Up Table This table has four entries: +* IN Report Table +* OUT Report Table +* Feature Report Table +* HID Report Descriptor +* HID Class Descriptor +*********************************************************************/ +const T_USBFS_LUT CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_TABLE[5u] = { + {0x00u, &USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_IN_RPT_TABLE}, + {0x00u, &USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_OUT_RPT_TABLE}, + {0x00u, NULL}, + {0x01u, (const void *)&USBFS_HIDREPORT_DESCRIPTOR1[0]}, + {0x01u, (const void *)&USBFS_DEVICE0_CONFIGURATION0_DESCR[50]} +}; +#endif /* USER_DEFINE_USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_HID_RPT_STORAGE */ /********************************************************************* * Interface Dispatch Table -- Points to the Class Dispatch Tables @@ -230,29 +318,39 @@ const T_USBFS_LUT CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE0_TABLE[1u] = { &USBFS_DEVICE0_CONFIGURATION0_INTERFACE0_ALTERNATE0_HID_TABLE} }; /********************************************************************* +* Interface Dispatch Table -- Points to the Class Dispatch Tables +*********************************************************************/ +const T_USBFS_LUT CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_TABLE[1u] = { + {USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_COUNT, + &USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_TABLE} +}; +/********************************************************************* * Endpoint Setting Table -- This table contain the endpoint setting * for each endpoint in the configuration. It * contains the necessary information to * configure the endpoint hardware for each * interface and alternate setting. *********************************************************************/ -const T_USBFS_EP_SETTINGS_BLOCK CYCODE USBFS_DEVICE0_CONFIGURATION0_EP_SETTINGS_TABLE[2u] = { +const T_USBFS_EP_SETTINGS_BLOCK CYCODE USBFS_DEVICE0_CONFIGURATION0_EP_SETTINGS_TABLE[4u] = { /* IFC ALT EPAddr bmAttr MaxPktSize Class ********************/ {0x00u, 0x00u, 0x01u, 0x03u, 0x0040u, 0x03u}, -{0x00u, 0x00u, 0x82u, 0x03u, 0x0040u, 0x03u} +{0x00u, 0x00u, 0x82u, 0x03u, 0x0040u, 0x03u}, +{0x01u, 0x00u, 0x03u, 0x03u, 0x0040u, 0x03u}, +{0x01u, 0x00u, 0x84u, 0x03u, 0x0040u, 0x03u} }; -const uint8 CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE_CLASS[1u] = { -0x03u +const uint8 CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE_CLASS[2u] = { +0x03u, 0x03u }; /********************************************************************* * Config Dispatch Table -- Points to the Config Descriptor and each of * and endpoint setup table and to each * interface table if it specifies a USB Class *********************************************************************/ -const T_USBFS_LUT CYCODE USBFS_DEVICE0_CONFIGURATION0_TABLE[4u] = { +const T_USBFS_LUT CYCODE USBFS_DEVICE0_CONFIGURATION0_TABLE[5u] = { {0x01u, &USBFS_DEVICE0_CONFIGURATION0_DESCR}, - {0x02u, &USBFS_DEVICE0_CONFIGURATION0_EP_SETTINGS_TABLE}, + {0x04u, &USBFS_DEVICE0_CONFIGURATION0_EP_SETTINGS_TABLE}, {0x01u, &USBFS_DEVICE0_CONFIGURATION0_INTERFACE0_TABLE}, + {0x01u, &USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_TABLE}, {0x00u, &USBFS_DEVICE0_CONFIGURATION0_INTERFACE_CLASS} }; /********************************************************************* diff --git a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/USBFS_pvt.h b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/USBFS_pvt.h old mode 100755 new mode 100644 index 7b61963c..bb5f7fba --- a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/USBFS_pvt.h +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/USBFS_pvt.h @@ -26,11 +26,12 @@ /* Generated external references for descriptors*/ extern const uint8 CYCODE USBFS_DEVICE0_DESCR[18u]; -extern const uint8 CYCODE USBFS_DEVICE0_CONFIGURATION0_DESCR[41u]; +extern const uint8 CYCODE USBFS_DEVICE0_CONFIGURATION0_DESCR[73u]; extern const T_USBFS_LUT CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE0_TABLE[1u]; -extern const T_USBFS_EP_SETTINGS_BLOCK CYCODE USBFS_DEVICE0_CONFIGURATION0_EP_SETTINGS_TABLE[2u]; -extern const uint8 CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE_CLASS[1u]; -extern const T_USBFS_LUT CYCODE USBFS_DEVICE0_CONFIGURATION0_TABLE[4u]; +extern const T_USBFS_LUT CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_TABLE[1u]; +extern const T_USBFS_EP_SETTINGS_BLOCK CYCODE USBFS_DEVICE0_CONFIGURATION0_EP_SETTINGS_TABLE[4u]; +extern const uint8 CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE_CLASS[2u]; +extern const T_USBFS_LUT CYCODE USBFS_DEVICE0_CONFIGURATION0_TABLE[5u]; extern const T_USBFS_LUT CYCODE USBFS_DEVICE0_TABLE[2u]; extern const T_USBFS_LUT CYCODE USBFS_TABLE[1u]; extern const uint8 CYCODE USBFS_SN_STRING_DESCRIPTOR[10]; @@ -41,10 +42,19 @@ extern uint8 USBFS_DEVICE0_CONFIGURATION0_INTERFACE0_ALTERNATE0_HID_IN_BUF[ extern T_USBFS_XFER_STATUS_BLOCK USBFS_DEVICE0_CONFIGURATION0_INTERFACE0_ALTERNATE0_HID_OUT_RPT_SCB; extern uint8 USBFS_DEVICE0_CONFIGURATION0_INTERFACE0_ALTERNATE0_HID_OUT_BUF[ USBFS_DEVICE0_CONFIGURATION0_INTERFACE0_ALTERNATE0_HID_OUT_BUF_SIZE]; +extern T_USBFS_XFER_STATUS_BLOCK USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_IN_RPT_SCB; +extern uint8 USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_IN_BUF[ + USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_IN_BUF_SIZE]; +extern T_USBFS_XFER_STATUS_BLOCK USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_OUT_RPT_SCB; +extern uint8 USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_OUT_BUF[ + USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_OUT_BUF_SIZE]; extern const uint8 CYCODE USBFS_HIDREPORT_DESCRIPTOR1[40u]; extern const T_USBFS_TD CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE0_ALTERNATE0_HID_IN_RPT_TABLE[1u]; extern const T_USBFS_TD CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE0_ALTERNATE0_HID_OUT_RPT_TABLE[1u]; extern const T_USBFS_LUT CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE0_ALTERNATE0_HID_TABLE[5u]; +extern const T_USBFS_TD CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_IN_RPT_TABLE[1u]; +extern const T_USBFS_TD CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_OUT_RPT_TABLE[1u]; +extern const T_USBFS_LUT CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_TABLE[5u]; extern const uint8 CYCODE USBFS_MSOS_DESCRIPTOR[USBFS_MSOS_DESCRIPTOR_LENGTH]; diff --git a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/cyfitter.h b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/cyfitter.h old mode 100755 new mode 100644 index a666b96c..f6f95874 --- a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/cyfitter.h +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/cyfitter.h @@ -3,6 +3,74 @@ #include #include +/* Debug_Timer_Interrupt */ +#define Debug_Timer_Interrupt__INTC_CLR_EN_REG CYREG_NVIC_CLRENA0 +#define Debug_Timer_Interrupt__INTC_CLR_PD_REG CYREG_NVIC_CLRPEND0 +#define Debug_Timer_Interrupt__INTC_MASK 0x02u +#define Debug_Timer_Interrupt__INTC_NUMBER 1u +#define Debug_Timer_Interrupt__INTC_PRIOR_NUM 7u +#define Debug_Timer_Interrupt__INTC_PRIOR_REG CYREG_NVIC_PRI_1 +#define Debug_Timer_Interrupt__INTC_SET_EN_REG CYREG_NVIC_SETENA0 +#define Debug_Timer_Interrupt__INTC_SET_PD_REG CYREG_NVIC_SETPEND0 + +/* SCSI_RX_DMA_COMPLETE */ +#define SCSI_RX_DMA_COMPLETE__INTC_CLR_EN_REG CYREG_NVIC_CLRENA0 +#define SCSI_RX_DMA_COMPLETE__INTC_CLR_PD_REG CYREG_NVIC_CLRPEND0 +#define SCSI_RX_DMA_COMPLETE__INTC_MASK 0x01u +#define SCSI_RX_DMA_COMPLETE__INTC_NUMBER 0u +#define SCSI_RX_DMA_COMPLETE__INTC_PRIOR_NUM 7u +#define SCSI_RX_DMA_COMPLETE__INTC_PRIOR_REG CYREG_NVIC_PRI_0 +#define SCSI_RX_DMA_COMPLETE__INTC_SET_EN_REG CYREG_NVIC_SETENA0 +#define SCSI_RX_DMA_COMPLETE__INTC_SET_PD_REG CYREG_NVIC_SETPEND0 + +/* SCSI_TX_DMA_COMPLETE */ +#define SCSI_TX_DMA_COMPLETE__INTC_CLR_EN_REG CYREG_NVIC_CLRENA0 +#define SCSI_TX_DMA_COMPLETE__INTC_CLR_PD_REG CYREG_NVIC_CLRPEND0 +#define SCSI_TX_DMA_COMPLETE__INTC_MASK 0x04u +#define SCSI_TX_DMA_COMPLETE__INTC_NUMBER 2u +#define SCSI_TX_DMA_COMPLETE__INTC_PRIOR_NUM 7u +#define SCSI_TX_DMA_COMPLETE__INTC_PRIOR_REG CYREG_NVIC_PRI_2 +#define SCSI_TX_DMA_COMPLETE__INTC_SET_EN_REG CYREG_NVIC_SETENA0 +#define SCSI_TX_DMA_COMPLETE__INTC_SET_PD_REG CYREG_NVIC_SETPEND0 + +/* Debug_Timer_TimerHW */ +#define Debug_Timer_TimerHW__CAP0 CYREG_TMR0_CAP0 +#define Debug_Timer_TimerHW__CAP1 CYREG_TMR0_CAP1 +#define Debug_Timer_TimerHW__CFG0 CYREG_TMR0_CFG0 +#define Debug_Timer_TimerHW__CFG1 CYREG_TMR0_CFG1 +#define Debug_Timer_TimerHW__CFG2 CYREG_TMR0_CFG2 +#define Debug_Timer_TimerHW__CNT_CMP0 CYREG_TMR0_CNT_CMP0 +#define Debug_Timer_TimerHW__CNT_CMP1 CYREG_TMR0_CNT_CMP1 +#define Debug_Timer_TimerHW__PER0 CYREG_TMR0_PER0 +#define Debug_Timer_TimerHW__PER1 CYREG_TMR0_PER1 +#define Debug_Timer_TimerHW__PM_ACT_CFG CYREG_PM_ACT_CFG3 +#define Debug_Timer_TimerHW__PM_ACT_MSK 0x01u +#define Debug_Timer_TimerHW__PM_STBY_CFG CYREG_PM_STBY_CFG3 +#define Debug_Timer_TimerHW__PM_STBY_MSK 0x01u +#define Debug_Timer_TimerHW__RT0 CYREG_TMR0_RT0 +#define Debug_Timer_TimerHW__RT1 CYREG_TMR0_RT1 +#define Debug_Timer_TimerHW__SR0 CYREG_TMR0_SR0 + +/* SD_RX_DMA_COMPLETE */ +#define SD_RX_DMA_COMPLETE__INTC_CLR_EN_REG CYREG_NVIC_CLRENA0 +#define SD_RX_DMA_COMPLETE__INTC_CLR_PD_REG CYREG_NVIC_CLRPEND0 +#define SD_RX_DMA_COMPLETE__INTC_MASK 0x08u +#define SD_RX_DMA_COMPLETE__INTC_NUMBER 3u +#define SD_RX_DMA_COMPLETE__INTC_PRIOR_NUM 7u +#define SD_RX_DMA_COMPLETE__INTC_PRIOR_REG CYREG_NVIC_PRI_3 +#define SD_RX_DMA_COMPLETE__INTC_SET_EN_REG CYREG_NVIC_SETENA0 +#define SD_RX_DMA_COMPLETE__INTC_SET_PD_REG CYREG_NVIC_SETPEND0 + +/* SD_TX_DMA_COMPLETE */ +#define SD_TX_DMA_COMPLETE__INTC_CLR_EN_REG CYREG_NVIC_CLRENA0 +#define SD_TX_DMA_COMPLETE__INTC_CLR_PD_REG CYREG_NVIC_CLRPEND0 +#define SD_TX_DMA_COMPLETE__INTC_MASK 0x10u +#define SD_TX_DMA_COMPLETE__INTC_NUMBER 4u +#define SD_TX_DMA_COMPLETE__INTC_PRIOR_NUM 7u +#define SD_TX_DMA_COMPLETE__INTC_PRIOR_REG CYREG_NVIC_PRI_4 +#define SD_TX_DMA_COMPLETE__INTC_SET_EN_REG CYREG_NVIC_SETENA0 +#define SD_TX_DMA_COMPLETE__INTC_SET_PD_REG CYREG_NVIC_SETPEND0 + /* USBFS_bus_reset */ #define USBFS_bus_reset__INTC_CLR_EN_REG CYREG_NVIC_CLRENA0 #define USBFS_bus_reset__INTC_CLR_PD_REG CYREG_NVIC_CLRPEND0 @@ -13,6 +81,68 @@ #define USBFS_bus_reset__INTC_SET_EN_REG CYREG_NVIC_SETENA0 #define USBFS_bus_reset__INTC_SET_PD_REG CYREG_NVIC_SETPEND0 +/* SCSI_CTL_PHASE */ +#define SCSI_CTL_PHASE_Sync_ctrl_reg__0__MASK 0x01u +#define SCSI_CTL_PHASE_Sync_ctrl_reg__0__POS 0 +#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG CYREG_B0_UDB12_13_ACTL +#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG CYREG_B0_UDB12_13_CTL +#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG CYREG_B0_UDB12_13_CTL +#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG CYREG_B0_UDB12_13_CTL +#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG CYREG_B0_UDB12_13_CTL +#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_MASK_REG CYREG_B0_UDB12_13_MSK +#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG CYREG_B0_UDB12_13_MSK +#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG CYREG_B0_UDB12_13_MSK +#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG CYREG_B0_UDB12_13_MSK +#define SCSI_CTL_PHASE_Sync_ctrl_reg__1__MASK 0x02u +#define SCSI_CTL_PHASE_Sync_ctrl_reg__1__POS 1 +#define SCSI_CTL_PHASE_Sync_ctrl_reg__2__MASK 0x04u +#define SCSI_CTL_PHASE_Sync_ctrl_reg__2__POS 2 +#define SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_AUX_CTL_REG CYREG_B0_UDB12_ACTL +#define SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_REG CYREG_B0_UDB12_CTL +#define SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_ST_REG CYREG_B0_UDB12_ST_CTL +#define SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_REG CYREG_B0_UDB12_CTL +#define SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_ST_REG CYREG_B0_UDB12_ST_CTL +#define SCSI_CTL_PHASE_Sync_ctrl_reg__MASK 0x07u +#define SCSI_CTL_PHASE_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG CYREG_B0_UDB12_MSK_ACTL +#define SCSI_CTL_PHASE_Sync_ctrl_reg__PERIOD_REG CYREG_B0_UDB12_MSK +#define SCSI_CTL_PHASE_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG CYREG_B0_UDB12_MSK_ACTL + +/* SCSI_Out_Bits */ +#define SCSI_Out_Bits_Sync_ctrl_reg__0__MASK 0x01u +#define SCSI_Out_Bits_Sync_ctrl_reg__0__POS 0 +#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG CYREG_B0_UDB10_11_ACTL +#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG CYREG_B0_UDB10_11_CTL +#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG CYREG_B0_UDB10_11_CTL +#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG CYREG_B0_UDB10_11_CTL +#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG CYREG_B0_UDB10_11_CTL +#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_MASK_REG CYREG_B0_UDB10_11_MSK +#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG CYREG_B0_UDB10_11_MSK +#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG CYREG_B0_UDB10_11_MSK +#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG CYREG_B0_UDB10_11_MSK +#define SCSI_Out_Bits_Sync_ctrl_reg__1__MASK 0x02u +#define SCSI_Out_Bits_Sync_ctrl_reg__1__POS 1 +#define SCSI_Out_Bits_Sync_ctrl_reg__2__MASK 0x04u +#define SCSI_Out_Bits_Sync_ctrl_reg__2__POS 2 +#define SCSI_Out_Bits_Sync_ctrl_reg__3__MASK 0x08u +#define SCSI_Out_Bits_Sync_ctrl_reg__3__POS 3 +#define SCSI_Out_Bits_Sync_ctrl_reg__4__MASK 0x10u +#define SCSI_Out_Bits_Sync_ctrl_reg__4__POS 4 +#define SCSI_Out_Bits_Sync_ctrl_reg__5__MASK 0x20u +#define SCSI_Out_Bits_Sync_ctrl_reg__5__POS 5 +#define SCSI_Out_Bits_Sync_ctrl_reg__6__MASK 0x40u +#define SCSI_Out_Bits_Sync_ctrl_reg__6__POS 6 +#define SCSI_Out_Bits_Sync_ctrl_reg__7__MASK 0x80u +#define SCSI_Out_Bits_Sync_ctrl_reg__7__POS 7 +#define SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_AUX_CTL_REG CYREG_B0_UDB10_ACTL +#define SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_REG CYREG_B0_UDB10_CTL +#define SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_ST_REG CYREG_B0_UDB10_ST_CTL +#define SCSI_Out_Bits_Sync_ctrl_reg__COUNT_REG CYREG_B0_UDB10_CTL +#define SCSI_Out_Bits_Sync_ctrl_reg__COUNT_ST_REG CYREG_B0_UDB10_ST_CTL +#define SCSI_Out_Bits_Sync_ctrl_reg__MASK 0xFFu +#define SCSI_Out_Bits_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG CYREG_B0_UDB10_MSK_ACTL +#define SCSI_Out_Bits_Sync_ctrl_reg__PERIOD_REG CYREG_B0_UDB10_MSK +#define SCSI_Out_Bits_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG CYREG_B0_UDB10_MSK_ACTL + /* USBFS_arb_int */ #define USBFS_arb_int__INTC_CLR_EN_REG CYREG_NVIC_CLRENA0 #define USBFS_arb_int__INTC_CLR_PD_REG CYREG_NVIC_CLRPEND0 @@ -33,6 +163,28 @@ #define USBFS_sof_int__INTC_SET_EN_REG CYREG_NVIC_SETENA0 #define USBFS_sof_int__INTC_SET_PD_REG CYREG_NVIC_SETPEND0 +/* SCSI_Out_Ctl */ +#define SCSI_Out_Ctl_Sync_ctrl_reg__0__MASK 0x01u +#define SCSI_Out_Ctl_Sync_ctrl_reg__0__POS 0 +#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG CYREG_B1_UDB08_09_ACTL +#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG CYREG_B1_UDB08_09_CTL +#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG CYREG_B1_UDB08_09_CTL +#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG CYREG_B1_UDB08_09_CTL +#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG CYREG_B1_UDB08_09_CTL +#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG CYREG_B1_UDB08_09_MSK +#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG CYREG_B1_UDB08_09_MSK +#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG CYREG_B1_UDB08_09_MSK +#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG CYREG_B1_UDB08_09_MSK +#define SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG CYREG_B1_UDB08_ACTL +#define SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_REG CYREG_B1_UDB08_CTL +#define SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_ST_REG CYREG_B1_UDB08_ST_CTL +#define SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_REG CYREG_B1_UDB08_CTL +#define SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_ST_REG CYREG_B1_UDB08_ST_CTL +#define SCSI_Out_Ctl_Sync_ctrl_reg__MASK 0x01u +#define SCSI_Out_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG CYREG_B1_UDB08_MSK_ACTL +#define SCSI_Out_Ctl_Sync_ctrl_reg__PERIOD_REG CYREG_B1_UDB08_MSK +#define SCSI_Out_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG CYREG_B1_UDB08_MSK_ACTL + /* SCSI_Out_DBx */ #define SCSI_Out_DBx__0__AG CYREG_PRT5_AG #define SCSI_Out_DBx__0__AMUX CYREG_PRT5_AMUX @@ -478,34 +630,23 @@ #define SCSI_RST_ISR__INTC_SET_PD_REG CYREG_NVIC_SETPEND0 /* SDCard_BSPIM */ -#define SDCard_BSPIM_BitCounter_ST__16BIT_STATUS_AUX_CTL_REG CYREG_B0_UDB06_07_ACTL -#define SDCard_BSPIM_BitCounter_ST__16BIT_STATUS_REG CYREG_B0_UDB06_07_ST -#define SDCard_BSPIM_BitCounter_ST__MASK_REG CYREG_B0_UDB06_MSK -#define SDCard_BSPIM_BitCounter_ST__MASK_ST_AUX_CTL_REG CYREG_B0_UDB06_MSK_ACTL -#define SDCard_BSPIM_BitCounter_ST__PER_ST_AUX_CTL_REG CYREG_B0_UDB06_MSK_ACTL -#define SDCard_BSPIM_BitCounter_ST__STATUS_AUX_CTL_REG CYREG_B0_UDB06_ACTL -#define SDCard_BSPIM_BitCounter_ST__STATUS_CNT_REG CYREG_B0_UDB06_ST_CTL -#define SDCard_BSPIM_BitCounter_ST__STATUS_CONTROL_REG CYREG_B0_UDB06_ST_CTL -#define SDCard_BSPIM_BitCounter_ST__STATUS_REG CYREG_B0_UDB06_ST -#define SDCard_BSPIM_BitCounter__16BIT_CONTROL_AUX_CTL_REG CYREG_B0_UDB06_07_ACTL -#define SDCard_BSPIM_BitCounter__16BIT_CONTROL_CONTROL_REG CYREG_B0_UDB06_07_CTL -#define SDCard_BSPIM_BitCounter__16BIT_CONTROL_COUNT_REG CYREG_B0_UDB06_07_CTL -#define SDCard_BSPIM_BitCounter__16BIT_COUNT_CONTROL_REG CYREG_B0_UDB06_07_CTL -#define SDCard_BSPIM_BitCounter__16BIT_COUNT_COUNT_REG CYREG_B0_UDB06_07_CTL -#define SDCard_BSPIM_BitCounter__16BIT_MASK_MASK_REG CYREG_B0_UDB06_07_MSK -#define SDCard_BSPIM_BitCounter__16BIT_MASK_PERIOD_REG CYREG_B0_UDB06_07_MSK -#define SDCard_BSPIM_BitCounter__16BIT_PERIOD_MASK_REG CYREG_B0_UDB06_07_MSK -#define SDCard_BSPIM_BitCounter__16BIT_PERIOD_PERIOD_REG CYREG_B0_UDB06_07_MSK -#define SDCard_BSPIM_BitCounter__CONTROL_AUX_CTL_REG CYREG_B0_UDB06_ACTL -#define SDCard_BSPIM_BitCounter__CONTROL_REG CYREG_B0_UDB06_CTL -#define SDCard_BSPIM_BitCounter__CONTROL_ST_REG CYREG_B0_UDB06_ST_CTL -#define SDCard_BSPIM_BitCounter__COUNT_REG CYREG_B0_UDB06_CTL -#define SDCard_BSPIM_BitCounter__COUNT_ST_REG CYREG_B0_UDB06_ST_CTL -#define SDCard_BSPIM_BitCounter__MASK_CTL_AUX_CTL_REG CYREG_B0_UDB06_MSK_ACTL -#define SDCard_BSPIM_BitCounter__PERIOD_REG CYREG_B0_UDB06_MSK -#define SDCard_BSPIM_BitCounter__PER_CTL_AUX_CTL_REG CYREG_B0_UDB06_MSK_ACTL -#define SDCard_BSPIM_RxStsReg__16BIT_STATUS_AUX_CTL_REG CYREG_B1_UDB06_07_ACTL -#define SDCard_BSPIM_RxStsReg__16BIT_STATUS_REG CYREG_B1_UDB06_07_ST +#define SDCard_BSPIM_BitCounter_ST__MASK_REG CYREG_B1_UDB11_MSK +#define SDCard_BSPIM_BitCounter_ST__MASK_ST_AUX_CTL_REG CYREG_B1_UDB11_MSK_ACTL +#define SDCard_BSPIM_BitCounter_ST__PER_ST_AUX_CTL_REG CYREG_B1_UDB11_MSK_ACTL +#define SDCard_BSPIM_BitCounter_ST__STATUS_AUX_CTL_REG CYREG_B1_UDB11_ACTL +#define SDCard_BSPIM_BitCounter_ST__STATUS_CNT_REG CYREG_B1_UDB11_ST_CTL +#define SDCard_BSPIM_BitCounter_ST__STATUS_CONTROL_REG CYREG_B1_UDB11_ST_CTL +#define SDCard_BSPIM_BitCounter_ST__STATUS_REG CYREG_B1_UDB11_ST +#define SDCard_BSPIM_BitCounter__CONTROL_AUX_CTL_REG CYREG_B1_UDB11_ACTL +#define SDCard_BSPIM_BitCounter__CONTROL_REG CYREG_B1_UDB11_CTL +#define SDCard_BSPIM_BitCounter__CONTROL_ST_REG CYREG_B1_UDB11_ST_CTL +#define SDCard_BSPIM_BitCounter__COUNT_REG CYREG_B1_UDB11_CTL +#define SDCard_BSPIM_BitCounter__COUNT_ST_REG CYREG_B1_UDB11_ST_CTL +#define SDCard_BSPIM_BitCounter__MASK_CTL_AUX_CTL_REG CYREG_B1_UDB11_MSK_ACTL +#define SDCard_BSPIM_BitCounter__PERIOD_REG CYREG_B1_UDB11_MSK +#define SDCard_BSPIM_BitCounter__PER_CTL_AUX_CTL_REG CYREG_B1_UDB11_MSK_ACTL +#define SDCard_BSPIM_RxStsReg__16BIT_STATUS_AUX_CTL_REG CYREG_B1_UDB10_11_ACTL +#define SDCard_BSPIM_RxStsReg__16BIT_STATUS_REG CYREG_B1_UDB10_11_ST #define SDCard_BSPIM_RxStsReg__4__MASK 0x10u #define SDCard_BSPIM_RxStsReg__4__POS 4 #define SDCard_BSPIM_RxStsReg__5__MASK 0x20u @@ -513,13 +654,13 @@ #define SDCard_BSPIM_RxStsReg__6__MASK 0x40u #define SDCard_BSPIM_RxStsReg__6__POS 6 #define SDCard_BSPIM_RxStsReg__MASK 0x70u -#define SDCard_BSPIM_RxStsReg__MASK_REG CYREG_B1_UDB06_MSK -#define SDCard_BSPIM_RxStsReg__STATUS_AUX_CTL_REG CYREG_B1_UDB06_ACTL -#define SDCard_BSPIM_RxStsReg__STATUS_REG CYREG_B1_UDB06_ST +#define SDCard_BSPIM_RxStsReg__MASK_REG CYREG_B1_UDB10_MSK +#define SDCard_BSPIM_RxStsReg__STATUS_AUX_CTL_REG CYREG_B1_UDB10_ACTL +#define SDCard_BSPIM_RxStsReg__STATUS_REG CYREG_B1_UDB10_ST #define SDCard_BSPIM_TxStsReg__0__MASK 0x01u #define SDCard_BSPIM_TxStsReg__0__POS 0 -#define SDCard_BSPIM_TxStsReg__16BIT_STATUS_AUX_CTL_REG CYREG_B0_UDB05_06_ACTL -#define SDCard_BSPIM_TxStsReg__16BIT_STATUS_REG CYREG_B0_UDB05_06_ST +#define SDCard_BSPIM_TxStsReg__16BIT_STATUS_AUX_CTL_REG CYREG_B1_UDB08_09_ACTL +#define SDCard_BSPIM_TxStsReg__16BIT_STATUS_REG CYREG_B1_UDB08_09_ST #define SDCard_BSPIM_TxStsReg__1__MASK 0x02u #define SDCard_BSPIM_TxStsReg__1__POS 1 #define SDCard_BSPIM_TxStsReg__2__MASK 0x04u @@ -529,26 +670,30 @@ #define SDCard_BSPIM_TxStsReg__4__MASK 0x10u #define SDCard_BSPIM_TxStsReg__4__POS 4 #define SDCard_BSPIM_TxStsReg__MASK 0x1Fu -#define SDCard_BSPIM_TxStsReg__MASK_REG CYREG_B0_UDB05_MSK -#define SDCard_BSPIM_TxStsReg__STATUS_AUX_CTL_REG CYREG_B0_UDB05_ACTL -#define SDCard_BSPIM_TxStsReg__STATUS_REG CYREG_B0_UDB05_ST -#define SDCard_BSPIM_sR8_Dp_u0__16BIT_A0_REG CYREG_B1_UDB06_07_A0 -#define SDCard_BSPIM_sR8_Dp_u0__16BIT_A1_REG CYREG_B1_UDB06_07_A1 -#define SDCard_BSPIM_sR8_Dp_u0__16BIT_D0_REG CYREG_B1_UDB06_07_D0 -#define SDCard_BSPIM_sR8_Dp_u0__16BIT_D1_REG CYREG_B1_UDB06_07_D1 -#define SDCard_BSPIM_sR8_Dp_u0__16BIT_DP_AUX_CTL_REG CYREG_B1_UDB06_07_ACTL -#define SDCard_BSPIM_sR8_Dp_u0__16BIT_F0_REG CYREG_B1_UDB06_07_F0 -#define SDCard_BSPIM_sR8_Dp_u0__16BIT_F1_REG CYREG_B1_UDB06_07_F1 -#define SDCard_BSPIM_sR8_Dp_u0__A0_A1_REG CYREG_B1_UDB06_A0_A1 -#define SDCard_BSPIM_sR8_Dp_u0__A0_REG CYREG_B1_UDB06_A0 -#define SDCard_BSPIM_sR8_Dp_u0__A1_REG CYREG_B1_UDB06_A1 -#define SDCard_BSPIM_sR8_Dp_u0__D0_D1_REG CYREG_B1_UDB06_D0_D1 -#define SDCard_BSPIM_sR8_Dp_u0__D0_REG CYREG_B1_UDB06_D0 -#define SDCard_BSPIM_sR8_Dp_u0__D1_REG CYREG_B1_UDB06_D1 -#define SDCard_BSPIM_sR8_Dp_u0__DP_AUX_CTL_REG CYREG_B1_UDB06_ACTL -#define SDCard_BSPIM_sR8_Dp_u0__F0_F1_REG CYREG_B1_UDB06_F0_F1 -#define SDCard_BSPIM_sR8_Dp_u0__F0_REG CYREG_B1_UDB06_F0 -#define SDCard_BSPIM_sR8_Dp_u0__F1_REG CYREG_B1_UDB06_F1 +#define SDCard_BSPIM_TxStsReg__MASK_REG CYREG_B1_UDB08_MSK +#define SDCard_BSPIM_TxStsReg__MASK_ST_AUX_CTL_REG CYREG_B1_UDB08_MSK_ACTL +#define SDCard_BSPIM_TxStsReg__PER_ST_AUX_CTL_REG CYREG_B1_UDB08_MSK_ACTL +#define SDCard_BSPIM_TxStsReg__STATUS_AUX_CTL_REG CYREG_B1_UDB08_ACTL +#define SDCard_BSPIM_TxStsReg__STATUS_CNT_REG CYREG_B1_UDB08_ST_CTL +#define SDCard_BSPIM_TxStsReg__STATUS_CONTROL_REG CYREG_B1_UDB08_ST_CTL +#define SDCard_BSPIM_TxStsReg__STATUS_REG CYREG_B1_UDB08_ST +#define SDCard_BSPIM_sR8_Dp_u0__16BIT_A0_REG CYREG_B0_UDB08_09_A0 +#define SDCard_BSPIM_sR8_Dp_u0__16BIT_A1_REG CYREG_B0_UDB08_09_A1 +#define SDCard_BSPIM_sR8_Dp_u0__16BIT_D0_REG CYREG_B0_UDB08_09_D0 +#define SDCard_BSPIM_sR8_Dp_u0__16BIT_D1_REG CYREG_B0_UDB08_09_D1 +#define SDCard_BSPIM_sR8_Dp_u0__16BIT_DP_AUX_CTL_REG CYREG_B0_UDB08_09_ACTL +#define SDCard_BSPIM_sR8_Dp_u0__16BIT_F0_REG CYREG_B0_UDB08_09_F0 +#define SDCard_BSPIM_sR8_Dp_u0__16BIT_F1_REG CYREG_B0_UDB08_09_F1 +#define SDCard_BSPIM_sR8_Dp_u0__A0_A1_REG CYREG_B0_UDB08_A0_A1 +#define SDCard_BSPIM_sR8_Dp_u0__A0_REG CYREG_B0_UDB08_A0 +#define SDCard_BSPIM_sR8_Dp_u0__A1_REG CYREG_B0_UDB08_A1 +#define SDCard_BSPIM_sR8_Dp_u0__D0_D1_REG CYREG_B0_UDB08_D0_D1 +#define SDCard_BSPIM_sR8_Dp_u0__D0_REG CYREG_B0_UDB08_D0 +#define SDCard_BSPIM_sR8_Dp_u0__D1_REG CYREG_B0_UDB08_D1 +#define SDCard_BSPIM_sR8_Dp_u0__DP_AUX_CTL_REG CYREG_B0_UDB08_ACTL +#define SDCard_BSPIM_sR8_Dp_u0__F0_F1_REG CYREG_B0_UDB08_F0_F1 +#define SDCard_BSPIM_sR8_Dp_u0__F0_REG CYREG_B0_UDB08_F0 +#define SDCard_BSPIM_sR8_Dp_u0__F1_REG CYREG_B0_UDB08_F1 /* USBFS_dp_int */ #define USBFS_dp_int__INTC_CLR_EN_REG CYREG_NVIC_CLRENA0 @@ -560,19 +705,6 @@ #define USBFS_dp_int__INTC_SET_EN_REG CYREG_NVIC_SETENA0 #define USBFS_dp_int__INTC_SET_PD_REG CYREG_NVIC_SETPEND0 -/* SCSI_CTL_IO */ -#define SCSI_CTL_IO_Sync_ctrl_reg__0__MASK 0x01u -#define SCSI_CTL_IO_Sync_ctrl_reg__0__POS 0 -#define SCSI_CTL_IO_Sync_ctrl_reg__CONTROL_AUX_CTL_REG CYREG_B0_UDB15_ACTL -#define SCSI_CTL_IO_Sync_ctrl_reg__CONTROL_REG CYREG_B0_UDB15_CTL -#define SCSI_CTL_IO_Sync_ctrl_reg__CONTROL_ST_REG CYREG_B0_UDB15_ST_CTL -#define SCSI_CTL_IO_Sync_ctrl_reg__COUNT_REG CYREG_B0_UDB15_CTL -#define SCSI_CTL_IO_Sync_ctrl_reg__COUNT_ST_REG CYREG_B0_UDB15_ST_CTL -#define SCSI_CTL_IO_Sync_ctrl_reg__MASK 0x01u -#define SCSI_CTL_IO_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG CYREG_B0_UDB15_MSK_ACTL -#define SCSI_CTL_IO_Sync_ctrl_reg__PERIOD_REG CYREG_B0_UDB15_MSK -#define SCSI_CTL_IO_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG CYREG_B0_UDB15_MSK_ACTL - /* SCSI_In_DBx */ #define SCSI_In_DBx__0__AG CYREG_PRT5_AG #define SCSI_In_DBx__0__AMUX CYREG_PRT5_AMUX @@ -1003,6 +1135,30 @@ #define SCSI_In_DBx__DB7__SHIFT 4 #define SCSI_In_DBx__DB7__SLW CYREG_PRT2_SLW +/* SCSI_RX_DMA */ +#define SCSI_RX_DMA__DRQ_CTL CYREG_IDMUX_DRQ_CTL0 +#define SCSI_RX_DMA__DRQ_NUMBER 0u +#define SCSI_RX_DMA__NUMBEROF_TDS 0u +#define SCSI_RX_DMA__PRIORITY 2u +#define SCSI_RX_DMA__TERMIN_EN 0u +#define SCSI_RX_DMA__TERMIN_SEL 0u +#define SCSI_RX_DMA__TERMOUT0_EN 1u +#define SCSI_RX_DMA__TERMOUT0_SEL 0u +#define SCSI_RX_DMA__TERMOUT1_EN 0u +#define SCSI_RX_DMA__TERMOUT1_SEL 0u + +/* SCSI_TX_DMA */ +#define SCSI_TX_DMA__DRQ_CTL CYREG_IDMUX_DRQ_CTL0 +#define SCSI_TX_DMA__DRQ_NUMBER 1u +#define SCSI_TX_DMA__NUMBEROF_TDS 0u +#define SCSI_TX_DMA__PRIORITY 2u +#define SCSI_TX_DMA__TERMIN_EN 0u +#define SCSI_TX_DMA__TERMIN_SEL 0u +#define SCSI_TX_DMA__TERMOUT0_EN 1u +#define SCSI_TX_DMA__TERMOUT0_SEL 1u +#define SCSI_TX_DMA__TERMOUT1_EN 0u +#define SCSI_TX_DMA__TERMOUT1_SEL 0u + /* SD_Data_Clk */ #define SD_Data_Clk__CFG0 CYREG_CLKDIST_DCFG0_CFG0 #define SD_Data_Clk__CFG1 CYREG_CLKDIST_DCFG0_CFG1 @@ -1014,16 +1170,16 @@ #define SD_Data_Clk__PM_STBY_CFG CYREG_PM_STBY_CFG2 #define SD_Data_Clk__PM_STBY_MSK 0x01u -/* SD_Init_Clk */ -#define SD_Init_Clk__CFG0 CYREG_CLKDIST_DCFG1_CFG0 -#define SD_Init_Clk__CFG1 CYREG_CLKDIST_DCFG1_CFG1 -#define SD_Init_Clk__CFG2 CYREG_CLKDIST_DCFG1_CFG2 -#define SD_Init_Clk__CFG2_SRC_SEL_MASK 0x07u -#define SD_Init_Clk__INDEX 0x01u -#define SD_Init_Clk__PM_ACT_CFG CYREG_PM_ACT_CFG2 -#define SD_Init_Clk__PM_ACT_MSK 0x02u -#define SD_Init_Clk__PM_STBY_CFG CYREG_PM_STBY_CFG2 -#define SD_Init_Clk__PM_STBY_MSK 0x02u +/* timer_clock */ +#define timer_clock__CFG0 CYREG_CLKDIST_DCFG1_CFG0 +#define timer_clock__CFG1 CYREG_CLKDIST_DCFG1_CFG1 +#define timer_clock__CFG2 CYREG_CLKDIST_DCFG1_CFG2 +#define timer_clock__CFG2_SRC_SEL_MASK 0x07u +#define timer_clock__INDEX 0x01u +#define timer_clock__PM_ACT_CFG CYREG_PM_ACT_CFG2 +#define timer_clock__PM_ACT_MSK 0x02u +#define timer_clock__PM_STBY_CFG CYREG_PM_STBY_CFG2 +#define timer_clock__PM_STBY_MSK 0x02u /* scsiTarget */ #define scsiTarget_StatusReg__0__MASK 0x01u @@ -1036,77 +1192,57 @@ #define scsiTarget_StatusReg__2__POS 2 #define scsiTarget_StatusReg__3__MASK 0x08u #define scsiTarget_StatusReg__3__POS 3 -#define scsiTarget_StatusReg__MASK 0x0Fu +#define scsiTarget_StatusReg__4__MASK 0x10u +#define scsiTarget_StatusReg__4__POS 4 +#define scsiTarget_StatusReg__MASK 0x1Fu #define scsiTarget_StatusReg__MASK_REG CYREG_B0_UDB13_MSK #define scsiTarget_StatusReg__STATUS_AUX_CTL_REG CYREG_B0_UDB13_ACTL #define scsiTarget_StatusReg__STATUS_REG CYREG_B0_UDB13_ST -#define scsiTarget_datapath_PI__16BIT_STATUS_AUX_CTL_REG CYREG_B0_UDB10_11_ACTL -#define scsiTarget_datapath_PI__16BIT_STATUS_REG CYREG_B0_UDB10_11_ST -#define scsiTarget_datapath_PI__MASK_REG CYREG_B0_UDB10_MSK -#define scsiTarget_datapath_PI__MASK_ST_AUX_CTL_REG CYREG_B0_UDB10_MSK_ACTL -#define scsiTarget_datapath_PI__PER_ST_AUX_CTL_REG CYREG_B0_UDB10_MSK_ACTL -#define scsiTarget_datapath_PI__STATUS_AUX_CTL_REG CYREG_B0_UDB10_ACTL -#define scsiTarget_datapath_PI__STATUS_CNT_REG CYREG_B0_UDB10_ST_CTL -#define scsiTarget_datapath_PI__STATUS_CONTROL_REG CYREG_B0_UDB10_ST_CTL -#define scsiTarget_datapath_PI__STATUS_REG CYREG_B0_UDB10_ST -#define scsiTarget_datapath_PO__16BIT_CONTROL_AUX_CTL_REG CYREG_B0_UDB10_11_ACTL -#define scsiTarget_datapath_PO__16BIT_CONTROL_CONTROL_REG CYREG_B0_UDB10_11_CTL -#define scsiTarget_datapath_PO__16BIT_CONTROL_COUNT_REG CYREG_B0_UDB10_11_CTL -#define scsiTarget_datapath_PO__16BIT_COUNT_CONTROL_REG CYREG_B0_UDB10_11_CTL -#define scsiTarget_datapath_PO__16BIT_COUNT_COUNT_REG CYREG_B0_UDB10_11_CTL -#define scsiTarget_datapath_PO__16BIT_MASK_MASK_REG CYREG_B0_UDB10_11_MSK -#define scsiTarget_datapath_PO__16BIT_MASK_PERIOD_REG CYREG_B0_UDB10_11_MSK -#define scsiTarget_datapath_PO__16BIT_PERIOD_MASK_REG CYREG_B0_UDB10_11_MSK -#define scsiTarget_datapath_PO__16BIT_PERIOD_PERIOD_REG CYREG_B0_UDB10_11_MSK -#define scsiTarget_datapath_PO__CONTROL_AUX_CTL_REG CYREG_B0_UDB10_ACTL -#define scsiTarget_datapath_PO__CONTROL_REG CYREG_B0_UDB10_CTL -#define scsiTarget_datapath_PO__CONTROL_ST_REG CYREG_B0_UDB10_ST_CTL -#define scsiTarget_datapath_PO__COUNT_REG CYREG_B0_UDB10_CTL -#define scsiTarget_datapath_PO__COUNT_ST_REG CYREG_B0_UDB10_ST_CTL -#define scsiTarget_datapath_PO__MASK_CTL_AUX_CTL_REG CYREG_B0_UDB10_MSK_ACTL -#define scsiTarget_datapath_PO__PERIOD_REG CYREG_B0_UDB10_MSK -#define scsiTarget_datapath_PO__PER_CTL_AUX_CTL_REG CYREG_B0_UDB10_MSK_ACTL -#define scsiTarget_datapath__16BIT_A0_REG CYREG_B0_UDB10_11_A0 -#define scsiTarget_datapath__16BIT_A1_REG CYREG_B0_UDB10_11_A1 -#define scsiTarget_datapath__16BIT_D0_REG CYREG_B0_UDB10_11_D0 -#define scsiTarget_datapath__16BIT_D1_REG CYREG_B0_UDB10_11_D1 -#define scsiTarget_datapath__16BIT_DP_AUX_CTL_REG CYREG_B0_UDB10_11_ACTL -#define scsiTarget_datapath__16BIT_F0_REG CYREG_B0_UDB10_11_F0 -#define scsiTarget_datapath__16BIT_F1_REG CYREG_B0_UDB10_11_F1 -#define scsiTarget_datapath__A0_A1_REG CYREG_B0_UDB10_A0_A1 -#define scsiTarget_datapath__A0_REG CYREG_B0_UDB10_A0 -#define scsiTarget_datapath__A1_REG CYREG_B0_UDB10_A1 -#define scsiTarget_datapath__D0_D1_REG CYREG_B0_UDB10_D0_D1 -#define scsiTarget_datapath__D0_REG CYREG_B0_UDB10_D0 -#define scsiTarget_datapath__D1_REG CYREG_B0_UDB10_D1 -#define scsiTarget_datapath__DP_AUX_CTL_REG CYREG_B0_UDB10_ACTL -#define scsiTarget_datapath__F0_F1_REG CYREG_B0_UDB10_F0_F1 -#define scsiTarget_datapath__F0_REG CYREG_B0_UDB10_F0 -#define scsiTarget_datapath__F1_REG CYREG_B0_UDB10_F1 -#define scsiTarget_datapath__MSK_DP_AUX_CTL_REG CYREG_B0_UDB10_MSK_ACTL -#define scsiTarget_datapath__PER_DP_AUX_CTL_REG CYREG_B0_UDB10_MSK_ACTL - -/* SD_Clk_Ctl */ -#define SD_Clk_Ctl_Sync_ctrl_reg__0__MASK 0x01u -#define SD_Clk_Ctl_Sync_ctrl_reg__0__POS 0 -#define SD_Clk_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG CYREG_B0_UDB04_05_ACTL -#define SD_Clk_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG CYREG_B0_UDB04_05_CTL -#define SD_Clk_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG CYREG_B0_UDB04_05_CTL -#define SD_Clk_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG CYREG_B0_UDB04_05_CTL -#define SD_Clk_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG CYREG_B0_UDB04_05_CTL -#define SD_Clk_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG CYREG_B0_UDB04_05_MSK -#define SD_Clk_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG CYREG_B0_UDB04_05_MSK -#define SD_Clk_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG CYREG_B0_UDB04_05_MSK -#define SD_Clk_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG CYREG_B0_UDB04_05_MSK -#define SD_Clk_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG CYREG_B0_UDB04_ACTL -#define SD_Clk_Ctl_Sync_ctrl_reg__CONTROL_REG CYREG_B0_UDB04_CTL -#define SD_Clk_Ctl_Sync_ctrl_reg__CONTROL_ST_REG CYREG_B0_UDB04_ST_CTL -#define SD_Clk_Ctl_Sync_ctrl_reg__COUNT_REG CYREG_B0_UDB04_CTL -#define SD_Clk_Ctl_Sync_ctrl_reg__COUNT_ST_REG CYREG_B0_UDB04_ST_CTL -#define SD_Clk_Ctl_Sync_ctrl_reg__MASK 0x01u -#define SD_Clk_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG CYREG_B0_UDB04_MSK_ACTL -#define SD_Clk_Ctl_Sync_ctrl_reg__PERIOD_REG CYREG_B0_UDB04_MSK -#define SD_Clk_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG CYREG_B0_UDB04_MSK_ACTL +#define scsiTarget_datapath_PI__16BIT_STATUS_AUX_CTL_REG CYREG_B0_UDB14_15_ACTL +#define scsiTarget_datapath_PI__16BIT_STATUS_REG CYREG_B0_UDB14_15_ST +#define scsiTarget_datapath_PI__MASK_REG CYREG_B0_UDB14_MSK +#define scsiTarget_datapath_PI__MASK_ST_AUX_CTL_REG CYREG_B0_UDB14_MSK_ACTL +#define scsiTarget_datapath_PI__PER_ST_AUX_CTL_REG CYREG_B0_UDB14_MSK_ACTL +#define scsiTarget_datapath_PI__STATUS_AUX_CTL_REG CYREG_B0_UDB14_ACTL +#define scsiTarget_datapath_PI__STATUS_CNT_REG CYREG_B0_UDB14_ST_CTL +#define scsiTarget_datapath_PI__STATUS_CONTROL_REG CYREG_B0_UDB14_ST_CTL +#define scsiTarget_datapath_PI__STATUS_REG CYREG_B0_UDB14_ST +#define scsiTarget_datapath_PO__16BIT_CONTROL_AUX_CTL_REG CYREG_B0_UDB14_15_ACTL +#define scsiTarget_datapath_PO__16BIT_CONTROL_CONTROL_REG CYREG_B0_UDB14_15_CTL +#define scsiTarget_datapath_PO__16BIT_CONTROL_COUNT_REG CYREG_B0_UDB14_15_CTL +#define scsiTarget_datapath_PO__16BIT_COUNT_CONTROL_REG CYREG_B0_UDB14_15_CTL +#define scsiTarget_datapath_PO__16BIT_COUNT_COUNT_REG CYREG_B0_UDB14_15_CTL +#define scsiTarget_datapath_PO__16BIT_MASK_MASK_REG CYREG_B0_UDB14_15_MSK +#define scsiTarget_datapath_PO__16BIT_MASK_PERIOD_REG CYREG_B0_UDB14_15_MSK +#define scsiTarget_datapath_PO__16BIT_PERIOD_MASK_REG CYREG_B0_UDB14_15_MSK +#define scsiTarget_datapath_PO__16BIT_PERIOD_PERIOD_REG CYREG_B0_UDB14_15_MSK +#define scsiTarget_datapath_PO__CONTROL_AUX_CTL_REG CYREG_B0_UDB14_ACTL +#define scsiTarget_datapath_PO__CONTROL_REG CYREG_B0_UDB14_CTL +#define scsiTarget_datapath_PO__CONTROL_ST_REG CYREG_B0_UDB14_ST_CTL +#define scsiTarget_datapath_PO__COUNT_REG CYREG_B0_UDB14_CTL +#define scsiTarget_datapath_PO__COUNT_ST_REG CYREG_B0_UDB14_ST_CTL +#define scsiTarget_datapath_PO__MASK_CTL_AUX_CTL_REG CYREG_B0_UDB14_MSK_ACTL +#define scsiTarget_datapath_PO__PERIOD_REG CYREG_B0_UDB14_MSK +#define scsiTarget_datapath_PO__PER_CTL_AUX_CTL_REG CYREG_B0_UDB14_MSK_ACTL +#define scsiTarget_datapath__16BIT_A0_REG CYREG_B0_UDB14_15_A0 +#define scsiTarget_datapath__16BIT_A1_REG CYREG_B0_UDB14_15_A1 +#define scsiTarget_datapath__16BIT_D0_REG CYREG_B0_UDB14_15_D0 +#define scsiTarget_datapath__16BIT_D1_REG CYREG_B0_UDB14_15_D1 +#define scsiTarget_datapath__16BIT_DP_AUX_CTL_REG CYREG_B0_UDB14_15_ACTL +#define scsiTarget_datapath__16BIT_F0_REG CYREG_B0_UDB14_15_F0 +#define scsiTarget_datapath__16BIT_F1_REG CYREG_B0_UDB14_15_F1 +#define scsiTarget_datapath__A0_A1_REG CYREG_B0_UDB14_A0_A1 +#define scsiTarget_datapath__A0_REG CYREG_B0_UDB14_A0 +#define scsiTarget_datapath__A1_REG CYREG_B0_UDB14_A1 +#define scsiTarget_datapath__D0_D1_REG CYREG_B0_UDB14_D0_D1 +#define scsiTarget_datapath__D0_REG CYREG_B0_UDB14_D0 +#define scsiTarget_datapath__D1_REG CYREG_B0_UDB14_D1 +#define scsiTarget_datapath__DP_AUX_CTL_REG CYREG_B0_UDB14_ACTL +#define scsiTarget_datapath__F0_F1_REG CYREG_B0_UDB14_F0_F1 +#define scsiTarget_datapath__F0_REG CYREG_B0_UDB14_F0 +#define scsiTarget_datapath__F1_REG CYREG_B0_UDB14_F1 +#define scsiTarget_datapath__MSK_DP_AUX_CTL_REG CYREG_B0_UDB14_MSK_ACTL +#define scsiTarget_datapath__PER_DP_AUX_CTL_REG CYREG_B0_UDB14_MSK_ACTL /* USBFS_ep_0 */ #define USBFS_ep_0__INTC_CLR_EN_REG CYREG_NVIC_CLRENA0 @@ -1121,23 +1257,67 @@ /* USBFS_ep_1 */ #define USBFS_ep_1__INTC_CLR_EN_REG CYREG_NVIC_CLRENA0 #define USBFS_ep_1__INTC_CLR_PD_REG CYREG_NVIC_CLRPEND0 -#define USBFS_ep_1__INTC_MASK 0x01u -#define USBFS_ep_1__INTC_NUMBER 0u +#define USBFS_ep_1__INTC_MASK 0x20u +#define USBFS_ep_1__INTC_NUMBER 5u #define USBFS_ep_1__INTC_PRIOR_NUM 7u -#define USBFS_ep_1__INTC_PRIOR_REG CYREG_NVIC_PRI_0 +#define USBFS_ep_1__INTC_PRIOR_REG CYREG_NVIC_PRI_5 #define USBFS_ep_1__INTC_SET_EN_REG CYREG_NVIC_SETENA0 #define USBFS_ep_1__INTC_SET_PD_REG CYREG_NVIC_SETPEND0 /* USBFS_ep_2 */ #define USBFS_ep_2__INTC_CLR_EN_REG CYREG_NVIC_CLRENA0 #define USBFS_ep_2__INTC_CLR_PD_REG CYREG_NVIC_CLRPEND0 -#define USBFS_ep_2__INTC_MASK 0x02u -#define USBFS_ep_2__INTC_NUMBER 1u +#define USBFS_ep_2__INTC_MASK 0x40u +#define USBFS_ep_2__INTC_NUMBER 6u #define USBFS_ep_2__INTC_PRIOR_NUM 7u -#define USBFS_ep_2__INTC_PRIOR_REG CYREG_NVIC_PRI_1 +#define USBFS_ep_2__INTC_PRIOR_REG CYREG_NVIC_PRI_6 #define USBFS_ep_2__INTC_SET_EN_REG CYREG_NVIC_SETENA0 #define USBFS_ep_2__INTC_SET_PD_REG CYREG_NVIC_SETPEND0 +/* USBFS_ep_3 */ +#define USBFS_ep_3__INTC_CLR_EN_REG CYREG_NVIC_CLRENA0 +#define USBFS_ep_3__INTC_CLR_PD_REG CYREG_NVIC_CLRPEND0 +#define USBFS_ep_3__INTC_MASK 0x80u +#define USBFS_ep_3__INTC_NUMBER 7u +#define USBFS_ep_3__INTC_PRIOR_NUM 7u +#define USBFS_ep_3__INTC_PRIOR_REG CYREG_NVIC_PRI_7 +#define USBFS_ep_3__INTC_SET_EN_REG CYREG_NVIC_SETENA0 +#define USBFS_ep_3__INTC_SET_PD_REG CYREG_NVIC_SETPEND0 + +/* USBFS_ep_4 */ +#define USBFS_ep_4__INTC_CLR_EN_REG CYREG_NVIC_CLRENA0 +#define USBFS_ep_4__INTC_CLR_PD_REG CYREG_NVIC_CLRPEND0 +#define USBFS_ep_4__INTC_MASK 0x200u +#define USBFS_ep_4__INTC_NUMBER 9u +#define USBFS_ep_4__INTC_PRIOR_NUM 7u +#define USBFS_ep_4__INTC_PRIOR_REG CYREG_NVIC_PRI_9 +#define USBFS_ep_4__INTC_SET_EN_REG CYREG_NVIC_SETENA0 +#define USBFS_ep_4__INTC_SET_PD_REG CYREG_NVIC_SETPEND0 + +/* SD_RX_DMA */ +#define SD_RX_DMA__DRQ_CTL CYREG_IDMUX_DRQ_CTL0 +#define SD_RX_DMA__DRQ_NUMBER 2u +#define SD_RX_DMA__NUMBEROF_TDS 0u +#define SD_RX_DMA__PRIORITY 1u +#define SD_RX_DMA__TERMIN_EN 0u +#define SD_RX_DMA__TERMIN_SEL 0u +#define SD_RX_DMA__TERMOUT0_EN 1u +#define SD_RX_DMA__TERMOUT0_SEL 2u +#define SD_RX_DMA__TERMOUT1_EN 0u +#define SD_RX_DMA__TERMOUT1_SEL 0u + +/* SD_TX_DMA */ +#define SD_TX_DMA__DRQ_CTL CYREG_IDMUX_DRQ_CTL0 +#define SD_TX_DMA__DRQ_NUMBER 3u +#define SD_TX_DMA__NUMBEROF_TDS 0u +#define SD_TX_DMA__PRIORITY 2u +#define SD_TX_DMA__TERMIN_EN 0u +#define SD_TX_DMA__TERMIN_SEL 0u +#define SD_TX_DMA__TERMOUT0_EN 1u +#define SD_TX_DMA__TERMOUT0_SEL 3u +#define SD_TX_DMA__TERMOUT1_EN 0u +#define SD_TX_DMA__TERMOUT1_SEL 0u + /* USBFS_USB */ #define USBFS_USB__ARB_CFG CYREG_USB_ARB_CFG #define USBFS_USB__ARB_EP1_CFG CYREG_USB_ARB_EP1_CFG @@ -1652,33 +1832,33 @@ #define SCSI_Out__BSY__PS CYREG_PRT6_PS #define SCSI_Out__BSY__SHIFT 1 #define SCSI_Out__BSY__SLW CYREG_PRT6_SLW -#define SCSI_Out__CD__AG CYREG_PRT0_AG -#define SCSI_Out__CD__AMUX CYREG_PRT0_AMUX -#define SCSI_Out__CD__BIE CYREG_PRT0_BIE -#define SCSI_Out__CD__BIT_MASK CYREG_PRT0_BIT_MASK -#define SCSI_Out__CD__BYP CYREG_PRT0_BYP -#define SCSI_Out__CD__CTL CYREG_PRT0_CTL -#define SCSI_Out__CD__DM0 CYREG_PRT0_DM0 -#define SCSI_Out__CD__DM1 CYREG_PRT0_DM1 -#define SCSI_Out__CD__DM2 CYREG_PRT0_DM2 -#define SCSI_Out__CD__DR CYREG_PRT0_DR -#define SCSI_Out__CD__INP_DIS CYREG_PRT0_INP_DIS -#define SCSI_Out__CD__LCD_COM_SEG CYREG_PRT0_LCD_COM_SEG -#define SCSI_Out__CD__LCD_EN CYREG_PRT0_LCD_EN -#define SCSI_Out__CD__MASK 0x40u -#define SCSI_Out__CD__PC CYREG_PRT0_PC6 -#define SCSI_Out__CD__PORT 0u -#define SCSI_Out__CD__PRT CYREG_PRT0_PRT -#define SCSI_Out__CD__PRTDSI__CAPS_SEL CYREG_PRT0_CAPS_SEL -#define SCSI_Out__CD__PRTDSI__DBL_SYNC_IN CYREG_PRT0_DBL_SYNC_IN -#define SCSI_Out__CD__PRTDSI__OE_SEL0 CYREG_PRT0_OE_SEL0 -#define SCSI_Out__CD__PRTDSI__OE_SEL1 CYREG_PRT0_OE_SEL1 -#define SCSI_Out__CD__PRTDSI__OUT_SEL0 CYREG_PRT0_OUT_SEL0 -#define SCSI_Out__CD__PRTDSI__OUT_SEL1 CYREG_PRT0_OUT_SEL1 -#define SCSI_Out__CD__PRTDSI__SYNC_OUT CYREG_PRT0_SYNC_OUT -#define SCSI_Out__CD__PS CYREG_PRT0_PS -#define SCSI_Out__CD__SHIFT 6 -#define SCSI_Out__CD__SLW CYREG_PRT0_SLW +#define SCSI_Out__CD_raw__AG CYREG_PRT0_AG +#define SCSI_Out__CD_raw__AMUX CYREG_PRT0_AMUX +#define SCSI_Out__CD_raw__BIE CYREG_PRT0_BIE +#define SCSI_Out__CD_raw__BIT_MASK CYREG_PRT0_BIT_MASK +#define SCSI_Out__CD_raw__BYP CYREG_PRT0_BYP +#define SCSI_Out__CD_raw__CTL CYREG_PRT0_CTL +#define SCSI_Out__CD_raw__DM0 CYREG_PRT0_DM0 +#define SCSI_Out__CD_raw__DM1 CYREG_PRT0_DM1 +#define SCSI_Out__CD_raw__DM2 CYREG_PRT0_DM2 +#define SCSI_Out__CD_raw__DR CYREG_PRT0_DR +#define SCSI_Out__CD_raw__INP_DIS CYREG_PRT0_INP_DIS +#define SCSI_Out__CD_raw__LCD_COM_SEG CYREG_PRT0_LCD_COM_SEG +#define SCSI_Out__CD_raw__LCD_EN CYREG_PRT0_LCD_EN +#define SCSI_Out__CD_raw__MASK 0x40u +#define SCSI_Out__CD_raw__PC CYREG_PRT0_PC6 +#define SCSI_Out__CD_raw__PORT 0u +#define SCSI_Out__CD_raw__PRT CYREG_PRT0_PRT +#define SCSI_Out__CD_raw__PRTDSI__CAPS_SEL CYREG_PRT0_CAPS_SEL +#define SCSI_Out__CD_raw__PRTDSI__DBL_SYNC_IN CYREG_PRT0_DBL_SYNC_IN +#define SCSI_Out__CD_raw__PRTDSI__OE_SEL0 CYREG_PRT0_OE_SEL0 +#define SCSI_Out__CD_raw__PRTDSI__OE_SEL1 CYREG_PRT0_OE_SEL1 +#define SCSI_Out__CD_raw__PRTDSI__OUT_SEL0 CYREG_PRT0_OUT_SEL0 +#define SCSI_Out__CD_raw__PRTDSI__OUT_SEL1 CYREG_PRT0_OUT_SEL1 +#define SCSI_Out__CD_raw__PRTDSI__SYNC_OUT CYREG_PRT0_SYNC_OUT +#define SCSI_Out__CD_raw__PS CYREG_PRT0_PS +#define SCSI_Out__CD_raw__SHIFT 6 +#define SCSI_Out__CD_raw__SLW CYREG_PRT0_SLW #define SCSI_Out__DBP_raw__AG CYREG_PRT15_AG #define SCSI_Out__DBP_raw__AMUX CYREG_PRT15_AMUX #define SCSI_Out__DBP_raw__BIE CYREG_PRT15_BIE @@ -1733,33 +1913,33 @@ #define SCSI_Out__IO_raw__PS CYREG_PRT0_PS #define SCSI_Out__IO_raw__SHIFT 2 #define SCSI_Out__IO_raw__SLW CYREG_PRT0_SLW -#define SCSI_Out__MSG__AG CYREG_PRT4_AG -#define SCSI_Out__MSG__AMUX CYREG_PRT4_AMUX -#define SCSI_Out__MSG__BIE CYREG_PRT4_BIE -#define SCSI_Out__MSG__BIT_MASK CYREG_PRT4_BIT_MASK -#define SCSI_Out__MSG__BYP CYREG_PRT4_BYP -#define SCSI_Out__MSG__CTL CYREG_PRT4_CTL -#define SCSI_Out__MSG__DM0 CYREG_PRT4_DM0 -#define SCSI_Out__MSG__DM1 CYREG_PRT4_DM1 -#define SCSI_Out__MSG__DM2 CYREG_PRT4_DM2 -#define SCSI_Out__MSG__DR CYREG_PRT4_DR -#define SCSI_Out__MSG__INP_DIS CYREG_PRT4_INP_DIS -#define SCSI_Out__MSG__LCD_COM_SEG CYREG_PRT4_LCD_COM_SEG -#define SCSI_Out__MSG__LCD_EN CYREG_PRT4_LCD_EN -#define SCSI_Out__MSG__MASK 0x10u -#define SCSI_Out__MSG__PC CYREG_PRT4_PC4 -#define SCSI_Out__MSG__PORT 4u -#define SCSI_Out__MSG__PRT CYREG_PRT4_PRT -#define SCSI_Out__MSG__PRTDSI__CAPS_SEL CYREG_PRT4_CAPS_SEL -#define SCSI_Out__MSG__PRTDSI__DBL_SYNC_IN CYREG_PRT4_DBL_SYNC_IN -#define SCSI_Out__MSG__PRTDSI__OE_SEL0 CYREG_PRT4_OE_SEL0 -#define SCSI_Out__MSG__PRTDSI__OE_SEL1 CYREG_PRT4_OE_SEL1 -#define SCSI_Out__MSG__PRTDSI__OUT_SEL0 CYREG_PRT4_OUT_SEL0 -#define SCSI_Out__MSG__PRTDSI__OUT_SEL1 CYREG_PRT4_OUT_SEL1 -#define SCSI_Out__MSG__PRTDSI__SYNC_OUT CYREG_PRT4_SYNC_OUT -#define SCSI_Out__MSG__PS CYREG_PRT4_PS -#define SCSI_Out__MSG__SHIFT 4 -#define SCSI_Out__MSG__SLW CYREG_PRT4_SLW +#define SCSI_Out__MSG_raw__AG CYREG_PRT4_AG +#define SCSI_Out__MSG_raw__AMUX CYREG_PRT4_AMUX +#define SCSI_Out__MSG_raw__BIE CYREG_PRT4_BIE +#define SCSI_Out__MSG_raw__BIT_MASK CYREG_PRT4_BIT_MASK +#define SCSI_Out__MSG_raw__BYP CYREG_PRT4_BYP +#define SCSI_Out__MSG_raw__CTL CYREG_PRT4_CTL +#define SCSI_Out__MSG_raw__DM0 CYREG_PRT4_DM0 +#define SCSI_Out__MSG_raw__DM1 CYREG_PRT4_DM1 +#define SCSI_Out__MSG_raw__DM2 CYREG_PRT4_DM2 +#define SCSI_Out__MSG_raw__DR CYREG_PRT4_DR +#define SCSI_Out__MSG_raw__INP_DIS CYREG_PRT4_INP_DIS +#define SCSI_Out__MSG_raw__LCD_COM_SEG CYREG_PRT4_LCD_COM_SEG +#define SCSI_Out__MSG_raw__LCD_EN CYREG_PRT4_LCD_EN +#define SCSI_Out__MSG_raw__MASK 0x10u +#define SCSI_Out__MSG_raw__PC CYREG_PRT4_PC4 +#define SCSI_Out__MSG_raw__PORT 4u +#define SCSI_Out__MSG_raw__PRT CYREG_PRT4_PRT +#define SCSI_Out__MSG_raw__PRTDSI__CAPS_SEL CYREG_PRT4_CAPS_SEL +#define SCSI_Out__MSG_raw__PRTDSI__DBL_SYNC_IN CYREG_PRT4_DBL_SYNC_IN +#define SCSI_Out__MSG_raw__PRTDSI__OE_SEL0 CYREG_PRT4_OE_SEL0 +#define SCSI_Out__MSG_raw__PRTDSI__OE_SEL1 CYREG_PRT4_OE_SEL1 +#define SCSI_Out__MSG_raw__PRTDSI__OUT_SEL0 CYREG_PRT4_OUT_SEL0 +#define SCSI_Out__MSG_raw__PRTDSI__OUT_SEL1 CYREG_PRT4_OUT_SEL1 +#define SCSI_Out__MSG_raw__PRTDSI__SYNC_OUT CYREG_PRT4_SYNC_OUT +#define SCSI_Out__MSG_raw__PS CYREG_PRT4_PS +#define SCSI_Out__MSG_raw__SHIFT 4 +#define SCSI_Out__MSG_raw__SLW CYREG_PRT4_SLW #define SCSI_Out__REQ__AG CYREG_PRT0_AG #define SCSI_Out__REQ__AMUX CYREG_PRT0_AMUX #define SCSI_Out__REQ__BIE CYREG_PRT0_BIE @@ -2584,9 +2764,9 @@ #define CYDEV_CHIP_FAMILY_PSOC5 3u #define CYDEV_CHIP_DIE_PSOC5LP 4u #define CYDEV_CHIP_DIE_EXPECT CYDEV_CHIP_DIE_PSOC5LP -#define BCLK__BUS_CLK__HZ 60000000U -#define BCLK__BUS_CLK__KHZ 60000U -#define BCLK__BUS_CLK__MHZ 60U +#define BCLK__BUS_CLK__HZ 50000000U +#define BCLK__BUS_CLK__KHZ 50000U +#define BCLK__BUS_CLK__MHZ 50U #define CYDEV_CHIP_DIE_ACTUAL CYDEV_CHIP_DIE_EXPECT #define CYDEV_CHIP_DIE_LEOPARD 1u #define CYDEV_CHIP_DIE_PANTHER 3u @@ -2647,7 +2827,7 @@ #define CYDEV_ECC_ENABLE 0 #define CYDEV_HEAP_SIZE 0x1000 #define CYDEV_INSTRUCT_CACHE_ENABLED 1 -#define CYDEV_INTR_RISING 0x00000000u +#define CYDEV_INTR_RISING 0x0000001Eu #define CYDEV_PROJ_TYPE 2 #define CYDEV_PROJ_TYPE_BOOTLOADER 1 #define CYDEV_PROJ_TYPE_LOADABLE 2 @@ -2678,7 +2858,7 @@ #define CYDEV_VIO2_MV 5000 #define CYDEV_VIO3 3.3 #define CYDEV_VIO3_MV 3300 -#define DMA_CHANNELS_USED__MASK0 0x00000000u +#define DMA_CHANNELS_USED__MASK0 0x0000000Fu #define CYDEV_BOOTLOADER_ENABLE 0 #endif /* INCLUDED_CYFITTER_H */ diff --git a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/cyfitter_cfg.c b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/cyfitter_cfg.c old mode 100755 new mode 100644 index 0a7fae95..411508e5 --- a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/cyfitter_cfg.c +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/cyfitter_cfg.c @@ -121,7 +121,7 @@ static void CyClockStartupError(uint8 errorCode) } #endif -#define CY_CFG_BASE_ADDR_COUNT 32u +#define CY_CFG_BASE_ADDR_COUNT 38u CYPACKED typedef struct { uint8 offset; @@ -187,9 +187,9 @@ static void ClockSetup(void) /* Configure Digital Clocks based on settings from Clock DWR */ - CY_SET_XTND_REG16((void CYFAR *)(CYREG_CLKDIST_DCFG0_CFG0), 0x0001u); - CY_SET_XTND_REG8((void CYFAR *)(CYREG_CLKDIST_DCFG0_CFG0 + 0x2u), 0x10u); - CY_SET_XTND_REG16((void CYFAR *)(CYREG_CLKDIST_DCFG1_CFG0), 0x001Du); + CY_SET_XTND_REG16((void CYFAR *)(CYREG_CLKDIST_DCFG0_CFG0), 0x0000u); + CY_SET_XTND_REG8((void CYFAR *)(CYREG_CLKDIST_DCFG0_CFG0 + 0x2u), 0x58u); + CY_SET_XTND_REG16((void CYFAR *)(CYREG_CLKDIST_DCFG1_CFG0), 0x0017u); CY_SET_XTND_REG8((void CYFAR *)(CYREG_CLKDIST_DCFG1_CFG0 + 0x2u), 0x19u); /* Configure ILO based on settings from Clock DWR */ @@ -200,7 +200,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))); /* Configure PLL based on settings from Clock DWR */ - CY_SET_XTND_REG16((void CYFAR *)(CYREG_FASTCLK_PLL_P), 0x0919u); + CY_SET_XTND_REG16((void CYFAR *)(CYREG_FASTCLK_PLL_P), 0x0B19u); CY_SET_XTND_REG16((void CYFAR *)(CYREG_FASTCLK_PLL_CFG0), 0x1251u); /* Wait up to 250us for the PLL to lock */ pllLock = 0u; @@ -226,7 +226,7 @@ static void ClockSetup(void) CY_SET_XTND_REG8((void CYFAR *)(CYREG_CLKDIST_UCFG), 0x00u); CY_SET_XTND_REG8((void CYFAR *)(CYREG_CLKDIST_LD), 0x02u); - CY_SET_XTND_REG8((void CYFAR *)(CYREG_PM_ACT_CFG2), ((CY_GET_XTND_REG8((void CYFAR *)CYREG_PM_ACT_CFG2) | 0x02u))); + CY_SET_XTND_REG8((void CYFAR *)(CYREG_PM_ACT_CFG2), ((CY_GET_XTND_REG8((void CYFAR *)CYREG_PM_ACT_CFG2) | 0x03u))); } @@ -313,7 +313,7 @@ void cyfitter_cfg(void) { /* IOPINS0_0 Address: CYREG_PRT0_DR Size (bytes): 10 */ static const uint8 CYCODE BS_IOPINS0_0_VAL[] = { - 0x02u, 0x00u, 0x30u, 0xCCu, 0xCEu, 0x00u, 0x0Cu, 0x00u, 0x00u, 0x01u}; + 0x02u, 0x00u, 0x30u, 0xCCu, 0xCEu, 0x00u, 0x4Cu, 0x00u, 0x00u, 0x01u}; /* IOPINS0_7 Address: CYREG_PRT12_DM0 Size (bytes): 8 */ static const uint8 CYCODE BS_IOPINS0_7_VAL[] = { @@ -337,7 +337,7 @@ void cyfitter_cfg(void) /* IOPINS0_4 Address: CYREG_PRT4_DM0 Size (bytes): 8 */ static const uint8 CYCODE BS_IOPINS0_4_VAL[] = { - 0xCCu, 0x30u, 0x30u, 0x00u, 0x00u, 0x00u, 0x00u, 0x01u}; + 0xCCu, 0x30u, 0x30u, 0x00u, 0x10u, 0x00u, 0x00u, 0x01u}; /* IOPINS0_5 Address: CYREG_PRT5_DM0 Size (bytes): 8 */ static const uint8 CYCODE BS_IOPINS0_5_VAL[] = { @@ -347,6 +347,18 @@ void cyfitter_cfg(void) static const uint8 CYCODE BS_IOPINS0_6_VAL[] = { 0xCCu, 0x33u, 0x33u, 0x00u, 0x30u, 0x00u, 0x00u, 0x01u}; + /* PHUB_CFGMEM1 Address: CYREG_PHUB_CFGMEM1_CFG0 Size (bytes): 4 */ + static const uint8 CYCODE BS_PHUB_CFGMEM1_VAL[] = { + 0x00u, 0x01u, 0x00u, 0x00u}; + + /* PHUB_CFGMEM2 Address: CYREG_PHUB_CFGMEM2_CFG0 Size (bytes): 4 */ + static const uint8 CYCODE BS_PHUB_CFGMEM2_VAL[] = { + 0x00u, 0x02u, 0x00u, 0x00u}; + + /* PHUB_CFGMEM3 Address: CYREG_PHUB_CFGMEM3_CFG0 Size (bytes): 4 */ + static const uint8 CYCODE BS_PHUB_CFGMEM3_VAL[] = { + 0x00u, 0x03u, 0x00u, 0x00u}; + #ifdef CYGlobalIntDisable /* Disable interrupts by default. Let user enable if/when they want. */ CYGlobalIntDisable @@ -357,348 +369,524 @@ void cyfitter_cfg(void) CY_SET_XTND_REG8((void CYFAR *)(CYREG_CACHE_CC_CTL), (((CYDEV_INSTRUCT_CACHE_ENABLED) != 0) ? 0x01u : 0x00u)); /* Setup clocks based on selections from Clock DWR */ ClockSetup(); + /* Set Flash Cycles based on newly configured 50.00MHz Bus Clock. */ + CY_SET_XTND_REG8((void CYFAR *)(CYREG_CACHE_CC_CTL), (((CYDEV_INSTRUCT_CACHE_ENABLED) != 0) ? 0xC1u : 0xC0u)); /* Enable/Disable Debug functionality based on settings from System DWR */ CY_SET_XTND_REG8((void CYFAR *)CYREG_MLOGIC_DEBUG, (CY_GET_XTND_REG8((void CYFAR *)CYREG_MLOGIC_DEBUG) | 0x04u)); { static const uint32 CYCODE cy_cfg_addr_table[] = { 0x40004502u, /* Base address: 0x40004500 Count: 2 */ - 0x4000520Au, /* Base address: 0x40005200 Count: 10 */ - 0x40006402u, /* Base address: 0x40006400 Count: 2 */ - 0x40010442u, /* Base address: 0x40010400 Count: 66 */ - 0x40010534u, /* Base address: 0x40010500 Count: 52 */ - 0x40010648u, /* Base address: 0x40010600 Count: 72 */ - 0x40010740u, /* Base address: 0x40010700 Count: 64 */ - 0x40010908u, /* Base address: 0x40010900 Count: 8 */ - 0x40010A38u, /* Base address: 0x40010A00 Count: 56 */ - 0x40010B53u, /* Base address: 0x40010B00 Count: 83 */ - 0x40010C40u, /* Base address: 0x40010C00 Count: 64 */ - 0x40010D3Eu, /* Base address: 0x40010D00 Count: 62 */ - 0x40010E47u, /* Base address: 0x40010E00 Count: 71 */ - 0x40010F29u, /* Base address: 0x40010F00 Count: 41 */ + 0x40004F02u, /* Base address: 0x40004F00 Count: 2 */ + 0x4000520Bu, /* Base address: 0x40005200 Count: 11 */ + 0x40006401u, /* Base address: 0x40006400 Count: 1 */ + 0x40006501u, /* Base address: 0x40006500 Count: 1 */ + 0x40010101u, /* Base address: 0x40010100 Count: 1 */ + 0x40010302u, /* Base address: 0x40010300 Count: 2 */ + 0x40010503u, /* Base address: 0x40010500 Count: 3 */ + 0x40010701u, /* Base address: 0x40010700 Count: 1 */ + 0x40010819u, /* Base address: 0x40010800 Count: 25 */ + 0x40010952u, /* Base address: 0x40010900 Count: 82 */ + 0x40010A49u, /* Base address: 0x40010A00 Count: 73 */ + 0x40010B4Cu, /* Base address: 0x40010B00 Count: 76 */ + 0x40010C51u, /* Base address: 0x40010C00 Count: 81 */ + 0x40010D53u, /* Base address: 0x40010D00 Count: 83 */ + 0x40010E3Au, /* Base address: 0x40010E00 Count: 58 */ + 0x40010F38u, /* Base address: 0x40010F00 Count: 56 */ 0x40011503u, /* Base address: 0x40011500 Count: 3 */ - 0x4001160Cu, /* Base address: 0x40011600 Count: 12 */ - 0x40011749u, /* Base address: 0x40011700 Count: 73 */ - 0x40011903u, /* Base address: 0x40011900 Count: 3 */ - 0x40014005u, /* Base address: 0x40014000 Count: 5 */ - 0x40014107u, /* Base address: 0x40014100 Count: 7 */ - 0x40014208u, /* Base address: 0x40014200 Count: 8 */ - 0x40014302u, /* Base address: 0x40014300 Count: 2 */ - 0x4001440Eu, /* Base address: 0x40014400 Count: 14 */ - 0x40014517u, /* Base address: 0x40014500 Count: 23 */ - 0x4001460Au, /* Base address: 0x40014600 Count: 10 */ - 0x4001470Au, /* Base address: 0x40014700 Count: 10 */ - 0x40014809u, /* Base address: 0x40014800 Count: 9 */ - 0x4001490Bu, /* Base address: 0x40014900 Count: 11 */ - 0x40014C07u, /* Base address: 0x40014C00 Count: 7 */ - 0x40014D0Au, /* Base address: 0x40014D00 Count: 10 */ - 0x40015006u, /* Base address: 0x40015000 Count: 6 */ - 0x40015101u, /* Base address: 0x40015100 Count: 1 */ + 0x40011604u, /* Base address: 0x40011600 Count: 4 */ + 0x40011705u, /* Base address: 0x40011700 Count: 5 */ + 0x40011852u, /* Base address: 0x40011800 Count: 82 */ + 0x4001194Cu, /* Base address: 0x40011900 Count: 76 */ + 0x40011A4Bu, /* Base address: 0x40011A00 Count: 75 */ + 0x40011B46u, /* Base address: 0x40011B00 Count: 70 */ + 0x40014013u, /* Base address: 0x40014000 Count: 19 */ + 0x40014114u, /* Base address: 0x40014100 Count: 20 */ + 0x4001420Cu, /* Base address: 0x40014200 Count: 12 */ + 0x40014306u, /* Base address: 0x40014300 Count: 6 */ + 0x40014410u, /* Base address: 0x40014400 Count: 16 */ + 0x40014514u, /* Base address: 0x40014500 Count: 20 */ + 0x40014610u, /* Base address: 0x40014600 Count: 16 */ + 0x4001470Du, /* Base address: 0x40014700 Count: 13 */ + 0x4001480Cu, /* Base address: 0x40014800 Count: 12 */ + 0x4001490Du, /* Base address: 0x40014900 Count: 13 */ + 0x40014C0Au, /* Base address: 0x40014C00 Count: 10 */ + 0x40014D0Fu, /* Base address: 0x40014D00 Count: 15 */ + 0x4001500Au, /* Base address: 0x40015000 Count: 10 */ + 0x40015104u, /* Base address: 0x40015100 Count: 4 */ }; static const cy_cfg_addrvalue_t CYCODE cy_cfg_data_table[] = { {0x27u, 0x02u}, {0x7Eu, 0x02u}, - {0x00u, 0x04u}, - {0x01u, 0x0Cu}, - {0x10u, 0x0Cu}, - {0x11u, 0x84u}, + {0x01u, 0x10u}, + {0x0Au, 0x36u}, + {0x01u, 0x44u}, + {0x10u, 0x48u}, + {0x11u, 0x8Cu}, {0x18u, 0x04u}, {0x1Cu, 0x20u}, - {0x29u, 0x02u}, - {0x31u, 0x10u}, - {0x78u, 0x20u}, + {0x20u, 0x10u}, + {0x28u, 0x02u}, + {0x30u, 0x20u}, + {0x31u, 0x30u}, + {0x79u, 0x20u}, {0x7Cu, 0x40u}, - {0x3Au, 0x03u}, - {0x86u, 0x0Fu}, - {0x03u, 0x04u}, - {0x04u, 0x01u}, + {0x2Eu, 0x02u}, + {0x8Bu, 0x0Fu}, + {0xE6u, 0x02u}, + {0xE6u, 0x06u}, + {0xEEu, 0x01u}, + {0xE8u, 0x40u}, + {0xEAu, 0x01u}, + {0xEEu, 0x02u}, + {0xEEu, 0x08u}, + {0x86u, 0x30u}, + {0x8Cu, 0x40u}, + {0x8Eu, 0x80u}, + {0x92u, 0x80u}, + {0x94u, 0x09u}, + {0x96u, 0x24u}, + {0x9Au, 0x09u}, + {0x9Du, 0x01u}, + {0x9Eu, 0x46u}, + {0xA0u, 0x09u}, + {0xA2u, 0x12u}, + {0xA6u, 0x08u}, + {0xADu, 0x02u}, + {0xAEu, 0x01u}, + {0xB0u, 0xC0u}, + {0xB3u, 0x02u}, + {0xB4u, 0x38u}, + {0xB5u, 0x01u}, + {0xB6u, 0x07u}, + {0xBEu, 0x01u}, + {0xBFu, 0x14u}, + {0xD8u, 0x04u}, + {0xD9u, 0x04u}, + {0xDCu, 0x09u}, + {0xDFu, 0x01u}, + {0x01u, 0x40u}, + {0x03u, 0x20u}, + {0x04u, 0x02u}, {0x05u, 0x04u}, - {0x07u, 0x02u}, - {0x09u, 0x04u}, - {0x0Bu, 0x01u}, - {0x13u, 0x03u}, - {0x17u, 0x04u}, - {0x24u, 0x01u}, - {0x31u, 0x07u}, - {0x32u, 0x01u}, + {0x06u, 0x04u}, + {0x07u, 0x05u}, + {0x08u, 0x10u}, + {0x09u, 0x02u}, + {0x0Au, 0x01u}, + {0x0Bu, 0x20u}, + {0x0Cu, 0x02u}, + {0x0Eu, 0x10u}, + {0x0Fu, 0x08u}, + {0x11u, 0x02u}, + {0x13u, 0x44u}, + {0x15u, 0x05u}, + {0x16u, 0x02u}, + {0x17u, 0x20u}, + {0x18u, 0x80u}, + {0x1Au, 0x01u}, + {0x1Bu, 0xB0u}, + {0x1Fu, 0x40u}, + {0x20u, 0x04u}, + {0x22u, 0x08u}, + {0x24u, 0x0Au}, + {0x27u, 0x40u}, + {0x28u, 0x02u}, + {0x2Cu, 0x02u}, + {0x2Eu, 0x84u}, + {0x2Fu, 0x44u}, + {0x30u, 0x80u}, + {0x34u, 0x01u}, + {0x35u, 0x14u}, + {0x37u, 0x61u}, {0x38u, 0x08u}, - {0x58u, 0x0Bu}, + {0x3Bu, 0x08u}, + {0x3Cu, 0x80u}, + {0x3Du, 0x21u}, + {0x3Fu, 0x08u}, + {0x40u, 0x08u}, + {0x42u, 0x08u}, + {0x45u, 0x18u}, + {0x46u, 0x40u}, + {0x4Du, 0x10u}, + {0x4Eu, 0x02u}, + {0x4Fu, 0x0Au}, + {0x55u, 0x20u}, + {0x56u, 0x28u}, + {0x57u, 0x02u}, + {0x79u, 0x10u}, + {0x7Au, 0x04u}, + {0x8Cu, 0x40u}, + {0x91u, 0xA0u}, + {0x92u, 0xE0u}, + {0x93u, 0x77u}, + {0x94u, 0x04u}, + {0x95u, 0x45u}, + {0x96u, 0x10u}, + {0x98u, 0x16u}, + {0x99u, 0x14u}, + {0x9Bu, 0x18u}, + {0x9Cu, 0x41u}, + {0x9Du, 0x62u}, + {0x9Eu, 0x86u}, + {0xA0u, 0x38u}, + {0xA1u, 0x0Fu}, + {0xA2u, 0x04u}, + {0xA4u, 0x03u}, + {0xA5u, 0x20u}, + {0xA6u, 0x08u}, + {0xA7u, 0x10u}, + {0xAFu, 0x01u}, + {0xB1u, 0x10u}, + {0xB3u, 0x01u}, + {0xC0u, 0xF5u}, + {0xC2u, 0x7Fu}, + {0xC4u, 0xFDu}, + {0xCAu, 0xF8u}, + {0xCCu, 0xF8u}, + {0xCEu, 0xF0u}, + {0xD0u, 0xE0u}, + {0xD2u, 0x30u}, + {0x02u, 0x30u}, + {0x06u, 0x06u}, + {0x0Du, 0x04u}, + {0x0Eu, 0x01u}, + {0x0Fu, 0x28u}, + {0x10u, 0x09u}, + {0x11u, 0x08u}, + {0x12u, 0x52u}, + {0x13u, 0x84u}, + {0x14u, 0x09u}, + {0x16u, 0x24u}, + {0x19u, 0x02u}, + {0x1Au, 0x49u}, + {0x1Bu, 0x41u}, + {0x1Eu, 0x08u}, + {0x21u, 0x01u}, + {0x23u, 0x12u}, + {0x2Du, 0x53u}, + {0x2Fu, 0xACu}, + {0x30u, 0x40u}, + {0x31u, 0x30u}, + {0x33u, 0xC0u}, + {0x34u, 0x07u}, + {0x36u, 0x38u}, + {0x37u, 0x0Fu}, + {0x3Eu, 0x01u}, + {0x3Fu, 0x45u}, + {0x58u, 0x04u}, {0x59u, 0x04u}, {0x5Bu, 0x04u}, - {0x5Cu, 0x99u}, + {0x5Cu, 0x09u}, {0x5Fu, 0x01u}, - {0x80u, 0x17u}, - {0x81u, 0x01u}, - {0x82u, 0x28u}, - {0x84u, 0x20u}, - {0x86u, 0xD0u}, - {0x88u, 0x29u}, - {0x89u, 0x01u}, - {0x8Au, 0x46u}, - {0x8Du, 0x01u}, - {0x90u, 0xD6u}, - {0x91u, 0x01u}, - {0x94u, 0x02u}, - {0x95u, 0x01u}, - {0x98u, 0xD2u}, - {0x99u, 0x22u}, - {0x9Au, 0x04u}, - {0x9Bu, 0x08u}, - {0x9Cu, 0x04u}, - {0x9Du, 0x07u}, - {0x9Fu, 0x18u}, - {0xA0u, 0xD6u}, - {0xA1u, 0x10u}, - {0xA3u, 0x40u}, - {0xA4u, 0xD0u}, - {0xA5u, 0x08u}, - {0xA6u, 0x06u}, - {0xA7u, 0x21u}, - {0xA8u, 0x21u}, - {0xA9u, 0x04u}, - {0xAAu, 0x8Eu}, - {0xACu, 0xD6u}, - {0xB0u, 0x01u}, - {0xB2u, 0xF0u}, - {0xB4u, 0x0Fu}, - {0xB5u, 0x3Fu}, - {0xB6u, 0x08u}, - {0xB7u, 0x40u}, - {0xB8u, 0x20u}, - {0xB9u, 0x20u}, - {0xBAu, 0x08u}, - {0xBEu, 0x41u}, + {0x80u, 0x34u}, + {0x81u, 0x09u}, + {0x83u, 0x12u}, + {0x84u, 0x07u}, + {0x86u, 0x48u}, + {0x87u, 0x01u}, + {0x88u, 0x40u}, + {0x8Au, 0x3Du}, + {0x8Bu, 0x80u}, + {0x8Fu, 0x70u}, + {0x90u, 0x14u}, + {0x96u, 0x34u}, + {0x97u, 0x08u}, + {0x98u, 0x20u}, + {0x9Au, 0x02u}, + {0x9Bu, 0x06u}, + {0x9Cu, 0xC0u}, + {0xA0u, 0x34u}, + {0xA4u, 0x14u}, + {0xA6u, 0x20u}, + {0xA7u, 0x09u}, + {0xA8u, 0x03u}, + {0xA9u, 0x09u}, + {0xAAu, 0xB8u}, + {0xABu, 0x24u}, + {0xACu, 0x34u}, + {0xADu, 0x40u}, + {0xAFu, 0x80u}, + {0xB2u, 0x39u}, + {0xB3u, 0x07u}, + {0xB4u, 0x07u}, + {0xB5u, 0xC0u}, + {0xB6u, 0xC1u}, + {0xB7u, 0x38u}, + {0xB8u, 0x80u}, + {0xBAu, 0x30u}, {0xBFu, 0x10u}, - {0xD4u, 0x09u}, - {0xD8u, 0x0Bu}, - {0xD9u, 0x0Bu}, - {0xDBu, 0x0Bu}, - {0xDCu, 0x99u}, - {0xDDu, 0x90u}, + {0xD8u, 0x04u}, + {0xD9u, 0x04u}, + {0xDCu, 0x90u}, {0xDFu, 0x01u}, - {0x00u, 0x04u}, + {0x00u, 0x80u}, + {0x03u, 0xA0u}, {0x05u, 0x14u}, - {0x07u, 0x40u}, + {0x06u, 0x80u}, + {0x08u, 0x10u}, + {0x09u, 0x01u}, + {0x0Au, 0x01u}, + {0x0Bu, 0x20u}, {0x0Cu, 0x01u}, - {0x0Eu, 0x28u}, - {0x0Fu, 0x02u}, - {0x12u, 0x20u}, - {0x16u, 0x02u}, - {0x17u, 0x25u}, - {0x19u, 0x08u}, - {0x1Bu, 0x08u}, - {0x1Du, 0x14u}, - {0x1Fu, 0x61u}, - {0x21u, 0x02u}, - {0x25u, 0x80u}, - {0x26u, 0x20u}, - {0x2Fu, 0xA8u}, - {0x31u, 0x0Au}, - {0x34u, 0x01u}, - {0x36u, 0x05u}, - {0x37u, 0x60u}, - {0x38u, 0x20u}, - {0x39u, 0x04u}, - {0x3Au, 0x01u}, - {0x3Du, 0xA0u}, - {0x3Eu, 0x02u}, - {0x4Bu, 0xC0u}, - {0x5Cu, 0x01u}, - {0x5Du, 0x10u}, - {0x5Fu, 0x44u}, - {0x67u, 0x02u}, - {0x69u, 0x40u}, - {0x7Au, 0x80u}, - {0x7Eu, 0x80u}, - {0x80u, 0x40u}, - {0x85u, 0x0Cu}, - {0x8Cu, 0x10u}, - {0x8Du, 0x02u}, - {0x8Fu, 0x04u}, - {0xC0u, 0x74u}, - {0xC2u, 0xF0u}, - {0xC4u, 0xF4u}, - {0xCAu, 0xE0u}, - {0xCCu, 0xF3u}, - {0xCEu, 0xB7u}, - {0xD6u, 0xF0u}, - {0xD8u, 0x10u}, - {0xDEu, 0x81u}, - {0xE0u, 0x20u}, - {0xE2u, 0x42u}, - {0xE6u, 0x06u}, - {0xEEu, 0x02u}, - {0x01u, 0x08u}, - {0x02u, 0x9Fu}, - {0x03u, 0x20u}, - {0x05u, 0xD4u}, - {0x06u, 0x60u}, - {0x07u, 0x08u}, - {0x09u, 0x90u}, - {0x0Au, 0xFFu}, - {0x0Bu, 0x4Cu}, - {0x0Cu, 0xC0u}, - {0x0Du, 0xDCu}, - {0x0Eu, 0x01u}, - {0x10u, 0x1Fu}, - {0x11u, 0xDCu}, - {0x12u, 0x20u}, - {0x14u, 0x80u}, - {0x15u, 0x44u}, - {0x18u, 0xC0u}, - {0x1Au, 0x04u}, - {0x1Bu, 0x4Fu}, - {0x1Cu, 0xC0u}, - {0x1Du, 0x61u}, - {0x1Eu, 0x02u}, - {0x1Fu, 0x02u}, - {0x20u, 0x90u}, - {0x22u, 0x40u}, - {0x24u, 0xC0u}, - {0x25u, 0x21u}, - {0x26u, 0x08u}, - {0x27u, 0x0Eu}, - {0x28u, 0x7Fu}, - {0x2Au, 0x80u}, - {0x2Bu, 0x10u}, - {0x2Du, 0x4Cu}, - {0x2Fu, 0x90u}, - {0x31u, 0x0Fu}, - {0x33u, 0x61u}, - {0x34u, 0xFFu}, - {0x35u, 0x10u}, - {0x37u, 0x80u}, - {0x3Bu, 0x0Cu}, - {0x3Eu, 0x10u}, - {0x3Fu, 0x50u}, - {0x56u, 0x02u}, - {0x57u, 0x28u}, + {0x0Du, 0x20u}, + {0x0Eu, 0x12u}, + {0x0Fu, 0x01u}, + {0x15u, 0x05u}, + {0x16u, 0x06u}, + {0x1Bu, 0xA1u}, + {0x1Du, 0x1Cu}, + {0x1Eu, 0x0Au}, + {0x21u, 0x41u}, + {0x22u, 0x84u}, + {0x24u, 0x08u}, + {0x25u, 0x40u}, + {0x27u, 0x30u}, + {0x2Bu, 0x82u}, + {0x2Cu, 0x10u}, + {0x2Du, 0x40u}, + {0x2Fu, 0x06u}, + {0x32u, 0x01u}, + {0x33u, 0x20u}, + {0x37u, 0x24u}, + {0x38u, 0x80u}, + {0x3Du, 0x92u}, + {0x3Eu, 0x44u}, + {0x68u, 0x10u}, + {0x69u, 0x10u}, + {0x6Au, 0x02u}, + {0x6Bu, 0x09u}, + {0x70u, 0x68u}, + {0x71u, 0x02u}, + {0x72u, 0x28u}, + {0x80u, 0x04u}, + {0x85u, 0x01u}, + {0x8Cu, 0x02u}, + {0x92u, 0xA5u}, + {0x93u, 0x7Eu}, + {0x94u, 0x04u}, + {0x95u, 0x55u}, + {0x96u, 0x18u}, + {0x98u, 0x14u}, + {0x9Bu, 0x04u}, + {0x9Cu, 0x40u}, + {0x9Du, 0x76u}, + {0x9Eu, 0x2Eu}, + {0x9Fu, 0x29u}, + {0xA0u, 0x40u}, + {0xA1u, 0x05u}, + {0xA4u, 0x13u}, + {0xA5u, 0x40u}, + {0xA6u, 0x88u}, + {0xA7u, 0x10u}, + {0xA9u, 0x08u}, + {0xABu, 0x80u}, + {0xAEu, 0x40u}, + {0xB0u, 0x01u}, + {0xB2u, 0x10u}, + {0xB4u, 0x02u}, + {0xB5u, 0x01u}, + {0xB7u, 0x20u}, + {0xC0u, 0x7Du}, + {0xC2u, 0xFFu}, + {0xC4u, 0xF0u}, + {0xCAu, 0x79u}, + {0xCCu, 0x65u}, + {0xCEu, 0xF8u}, + {0xE4u, 0x03u}, + {0xE8u, 0x40u}, + {0xEAu, 0x01u}, + {0x03u, 0xFFu}, + {0x04u, 0x11u}, + {0x06u, 0x02u}, + {0x08u, 0x12u}, + {0x09u, 0x30u}, + {0x0Au, 0x08u}, + {0x0Bu, 0xC0u}, + {0x0Du, 0x05u}, + {0x0Fu, 0x0Au}, + {0x10u, 0x0Du}, + {0x11u, 0x90u}, + {0x13u, 0x60u}, + {0x14u, 0x0Du}, + {0x17u, 0xFFu}, + {0x18u, 0x02u}, + {0x19u, 0x03u}, + {0x1Au, 0x0Du}, + {0x1Bu, 0x0Cu}, + {0x1Fu, 0xFFu}, + {0x20u, 0x0Du}, + {0x21u, 0x09u}, + {0x23u, 0x06u}, + {0x24u, 0x0Du}, + {0x28u, 0x12u}, + {0x29u, 0x50u}, + {0x2Au, 0x04u}, + {0x2Bu, 0xA0u}, + {0x2Cu, 0x0Du}, + {0x2Du, 0x0Fu}, + {0x2Fu, 0xF0u}, + {0x30u, 0x10u}, + {0x33u, 0xFFu}, + {0x34u, 0x0Fu}, + {0x3Au, 0x20u}, + {0x3Eu, 0x01u}, + {0x3Fu, 0x04u}, {0x58u, 0x04u}, - {0x59u, 0x0Bu}, - {0x5Bu, 0x0Bu}, - {0x5Cu, 0x90u}, - {0x5Du, 0x90u}, + {0x59u, 0x04u}, + {0x5Bu, 0x04u}, {0x5Fu, 0x01u}, - {0x85u, 0x04u}, - {0x87u, 0x02u}, - {0x89u, 0x04u}, + {0x80u, 0xFFu}, + {0x84u, 0x03u}, + {0x85u, 0x5Bu}, + {0x86u, 0x0Cu}, + {0x87u, 0x24u}, + {0x88u, 0x30u}, + {0x8Au, 0xC0u}, {0x8Bu, 0x01u}, - {0x8Eu, 0x02u}, - {0x8Fu, 0x04u}, - {0x92u, 0x01u}, - {0x97u, 0x03u}, - {0xA3u, 0x04u}, - {0xACu, 0x01u}, - {0xAEu, 0x02u}, - {0xB3u, 0x07u}, - {0xB6u, 0x03u}, - {0xBEu, 0x40u}, - {0xD6u, 0x08u}, + {0x8Cu, 0x90u}, + {0x8Eu, 0x60u}, + {0x90u, 0x05u}, + {0x91u, 0x58u}, + {0x92u, 0x0Au}, + {0x93u, 0x24u}, + {0x99u, 0x40u}, + {0x9Bu, 0x37u}, + {0x9Cu, 0x09u}, + {0x9Du, 0x0Cu}, + {0x9Eu, 0x06u}, + {0x9Fu, 0x40u}, + {0xA0u, 0xFFu}, + {0xA1u, 0x03u}, + {0xA3u, 0x0Cu}, + {0xA4u, 0x50u}, + {0xA6u, 0xA0u}, + {0xA7u, 0x1Fu}, + {0xA9u, 0x02u}, + {0xAAu, 0xFFu}, + {0xACu, 0x0Fu}, + {0xAEu, 0xF0u}, + {0xB2u, 0xFFu}, + {0xB3u, 0x1Fu}, + {0xB5u, 0x20u}, + {0xB7u, 0x40u}, + {0xBEu, 0x04u}, + {0xBFu, 0x50u}, {0xD8u, 0x04u}, {0xD9u, 0x04u}, {0xDBu, 0x04u}, {0xDCu, 0x90u}, - {0xDDu, 0x90u}, {0xDFu, 0x01u}, - {0x01u, 0x80u}, - {0x05u, 0x38u}, - {0x06u, 0x82u}, - {0x08u, 0x21u}, - {0x09u, 0x20u}, - {0x0Cu, 0x04u}, - {0x0Du, 0x02u}, - {0x0Eu, 0x2Au}, - {0x11u, 0x40u}, - {0x17u, 0x25u}, - {0x19u, 0x40u}, - {0x1Cu, 0x04u}, - {0x21u, 0x08u}, - {0x24u, 0x03u}, - {0x25u, 0x22u}, - {0x27u, 0x60u}, - {0x2Au, 0x01u}, - {0x2Fu, 0x2Au}, - {0x31u, 0x08u}, - {0x34u, 0x04u}, - {0x36u, 0x01u}, - {0x37u, 0x60u}, - {0x38u, 0x60u}, - {0x39u, 0x04u}, - {0x3Au, 0x10u}, - {0x3Cu, 0x80u}, - {0x3Eu, 0x14u}, - {0x3Fu, 0x02u}, - {0x59u, 0x40u}, - {0x62u, 0x80u}, - {0x67u, 0x20u}, - {0x6Cu, 0x80u}, - {0x6Du, 0x80u}, - {0x6Eu, 0x1Eu}, - {0x6Fu, 0x07u}, - {0x74u, 0x40u}, - {0x76u, 0x02u}, - {0x7Eu, 0x80u}, - {0x90u, 0x60u}, - {0x91u, 0x44u}, - {0x94u, 0x05u}, - {0x97u, 0x04u}, - {0x99u, 0x18u}, - {0x9Au, 0x01u}, - {0x9Eu, 0x02u}, - {0x9Fu, 0x65u}, - {0xA1u, 0x80u}, - {0xA3u, 0x20u}, - {0xA5u, 0x50u}, - {0xA6u, 0x95u}, - {0xA7u, 0x85u}, - {0xAAu, 0x01u}, - {0xB1u, 0x10u}, - {0xB3u, 0x01u}, - {0xC0u, 0xF1u}, - {0xC2u, 0xF8u}, - {0xC4u, 0x71u}, - {0xCAu, 0x71u}, - {0xCCu, 0xF2u}, - {0xCEu, 0xFEu}, - {0xD6u, 0x08u}, - {0xD8u, 0x48u}, - {0xDEu, 0x80u}, - {0xEAu, 0x04u}, - {0x9Eu, 0x80u}, - {0xAAu, 0x40u}, - {0xAEu, 0xC0u}, - {0xB2u, 0x20u}, - {0xB6u, 0x10u}, - {0xB7u, 0x80u}, - {0xEAu, 0x08u}, - {0xEEu, 0x08u}, - {0x00u, 0x01u}, - {0x04u, 0xC4u}, - {0x06u, 0x12u}, - {0x08u, 0xF8u}, - {0x09u, 0x01u}, - {0x0Au, 0x06u}, - {0x0Cu, 0x40u}, + {0x00u, 0x22u}, + {0x02u, 0x20u}, + {0x03u, 0x01u}, + {0x05u, 0x14u}, + {0x08u, 0x40u}, + {0x09u, 0x08u}, + {0x0Au, 0x40u}, + {0x0Bu, 0x20u}, + {0x0Cu, 0x02u}, + {0x0Du, 0x20u}, + {0x0Eu, 0x10u}, {0x10u, 0x04u}, - {0x12u, 0xAAu}, - {0x1Au, 0xFCu}, - {0x1Cu, 0x40u}, - {0x20u, 0x20u}, - {0x22u, 0x40u}, - {0x26u, 0x10u}, - {0x30u, 0x1Cu}, - {0x31u, 0x01u}, + {0x11u, 0x40u}, + {0x12u, 0x80u}, + {0x13u, 0x08u}, + {0x15u, 0x05u}, + {0x16u, 0x06u}, + {0x1Au, 0x20u}, + {0x1Du, 0x20u}, + {0x1Fu, 0x01u}, + {0x20u, 0x18u}, + {0x21u, 0x0Cu}, + {0x23u, 0x01u}, + {0x25u, 0x04u}, + {0x29u, 0x01u}, + {0x2Au, 0x10u}, + {0x2Bu, 0x20u}, + {0x2Cu, 0x40u}, + {0x2Du, 0x50u}, + {0x30u, 0x10u}, + {0x31u, 0x80u}, {0x32u, 0x02u}, - {0x34u, 0xE0u}, - {0x36u, 0x01u}, - {0x3Eu, 0x44u}, - {0x3Fu, 0x01u}, - {0x40u, 0x46u}, - {0x41u, 0x02u}, - {0x42u, 0x30u}, - {0x45u, 0xD2u}, - {0x46u, 0xECu}, + {0x33u, 0x90u}, + {0x34u, 0x04u}, + {0x36u, 0xA4u}, + {0x37u, 0x21u}, + {0x38u, 0x20u}, + {0x39u, 0x08u}, + {0x3Bu, 0x08u}, + {0x3Cu, 0x22u}, + {0x3Du, 0x80u}, + {0x3Eu, 0x40u}, + {0x58u, 0xA1u}, + {0x59u, 0x08u}, + {0x63u, 0x01u}, + {0x6Cu, 0x10u}, + {0x6Eu, 0x88u}, + {0x6Fu, 0x08u}, + {0x82u, 0x04u}, + {0x87u, 0x08u}, + {0x92u, 0x85u}, + {0x93u, 0x54u}, + {0x94u, 0x14u}, + {0x95u, 0x48u}, + {0x96u, 0x08u}, + {0x98u, 0xA0u}, + {0x9Au, 0x10u}, + {0x9Bu, 0x14u}, + {0x9Cu, 0x42u}, + {0x9Du, 0x62u}, + {0x9Eu, 0x28u}, + {0x9Fu, 0x01u}, + {0xA0u, 0x40u}, + {0xA1u, 0x81u}, + {0xA2u, 0x02u}, + {0xA4u, 0x04u}, + {0xA6u, 0x0Cu}, + {0xA7u, 0x30u}, + {0xA9u, 0x08u}, + {0xABu, 0x08u}, + {0xAEu, 0x04u}, + {0xB3u, 0x08u}, + {0xB6u, 0x01u}, + {0xC0u, 0x6Fu}, + {0xC2u, 0x79u}, + {0xC4u, 0xFFu}, + {0xCAu, 0xB7u}, + {0xCCu, 0xFDu}, + {0xCEu, 0xB6u}, + {0xD6u, 0x0Fu}, + {0xD8u, 0x08u}, + {0xEAu, 0x01u}, + {0xECu, 0x08u}, + {0x07u, 0x10u}, + {0x0Bu, 0x02u}, + {0x0Du, 0x29u}, + {0x0Fu, 0x52u}, + {0x13u, 0x40u}, + {0x14u, 0x02u}, + {0x18u, 0x04u}, + {0x1Fu, 0x20u}, + {0x23u, 0x01u}, + {0x27u, 0x08u}, + {0x2Cu, 0x01u}, + {0x2Du, 0x04u}, + {0x30u, 0x04u}, + {0x31u, 0x04u}, + {0x32u, 0x01u}, + {0x33u, 0x18u}, + {0x35u, 0x60u}, + {0x36u, 0x02u}, + {0x37u, 0x03u}, + {0x3Eu, 0x45u}, + {0x3Fu, 0x55u}, + {0x40u, 0x23u}, + {0x41u, 0x05u}, + {0x42u, 0x60u}, + {0x45u, 0xE2u}, + {0x46u, 0xDCu}, {0x47u, 0x0Fu}, {0x48u, 0x1Fu}, {0x49u, 0xFFu}, @@ -710,7 +898,6 @@ void cyfitter_cfg(void) {0x59u, 0x04u}, {0x5Au, 0x04u}, {0x5Bu, 0x04u}, - {0x5Cu, 0x09u}, {0x5Du, 0x09u}, {0x5Fu, 0x01u}, {0x62u, 0xC0u}, @@ -718,552 +905,577 @@ void cyfitter_cfg(void) {0x68u, 0x40u}, {0x69u, 0x40u}, {0x6Eu, 0x08u}, - {0x8Fu, 0x02u}, - {0x99u, 0x03u}, - {0x9Bu, 0x04u}, - {0x9Du, 0x01u}, - {0xA7u, 0x07u}, - {0xA9u, 0x04u}, - {0xABu, 0x03u}, + {0x89u, 0x26u}, + {0x8Bu, 0x19u}, + {0x91u, 0x19u}, + {0x93u, 0x24u}, + {0x95u, 0x08u}, + {0x99u, 0x01u}, + {0x9Bu, 0x12u}, + {0xA7u, 0x3Fu}, + {0xABu, 0x04u}, + {0xB1u, 0x38u}, {0xB3u, 0x07u}, {0xD9u, 0x04u}, {0xDCu, 0x90u}, {0xDFu, 0x01u}, - {0x00u, 0x80u}, - {0x01u, 0x20u}, - {0x02u, 0x80u}, - {0x03u, 0x10u}, - {0x08u, 0x50u}, - {0x09u, 0x80u}, - {0x0Au, 0x40u}, - {0x12u, 0x20u}, - {0x13u, 0x02u}, - {0x19u, 0xA0u}, - {0x1Au, 0x54u}, - {0x1Bu, 0x11u}, - {0x22u, 0x02u}, + {0x08u, 0x10u}, + {0x09u, 0x08u}, + {0x12u, 0x01u}, + {0x18u, 0x01u}, + {0x19u, 0x05u}, + {0x20u, 0x20u}, + {0x21u, 0x02u}, + {0x22u, 0x80u}, + {0x23u, 0x08u}, + {0x25u, 0x01u}, + {0x26u, 0x03u}, {0x27u, 0x10u}, - {0x2Cu, 0x10u}, - {0x2Du, 0x20u}, - {0x36u, 0x40u}, + {0x28u, 0x02u}, + {0x29u, 0x02u}, + {0x2Bu, 0x10u}, + {0x2Fu, 0x24u}, + {0x30u, 0x40u}, + {0x33u, 0x01u}, + {0x36u, 0x06u}, {0x37u, 0x10u}, - {0x3Au, 0x20u}, - {0x3Eu, 0x40u}, - {0x42u, 0x50u}, + {0x39u, 0x40u}, + {0x3Au, 0x28u}, + {0x3Cu, 0x10u}, + {0x41u, 0x04u}, {0x43u, 0x10u}, - {0x48u, 0x40u}, - {0x49u, 0x21u}, - {0x4Au, 0x20u}, - {0x50u, 0x10u}, + {0x48u, 0x04u}, + {0x4Au, 0x41u}, + {0x4Bu, 0x08u}, {0x51u, 0x80u}, + {0x52u, 0x10u}, {0x53u, 0x08u}, - {0x59u, 0x90u}, - {0x5Au, 0x0Au}, - {0x61u, 0x04u}, - {0x62u, 0x02u}, - {0x63u, 0x05u}, - {0x68u, 0x80u}, - {0x69u, 0x40u}, - {0x6Au, 0x20u}, - {0x6Bu, 0x20u}, - {0x70u, 0x48u}, - {0x72u, 0x08u}, - {0x73u, 0x80u}, + {0x59u, 0x65u}, + {0x60u, 0x05u}, + {0x61u, 0x02u}, + {0x62u, 0x08u}, + {0x68u, 0x40u}, + {0x6Au, 0x84u}, + {0x6Bu, 0x04u}, + {0x72u, 0x01u}, + {0x73u, 0x54u}, {0x78u, 0x20u}, {0x7Bu, 0x08u}, - {0x81u, 0x40u}, - {0x83u, 0x02u}, - {0x85u, 0x20u}, - {0x87u, 0x20u}, + {0x84u, 0x90u}, + {0x86u, 0x40u}, {0x88u, 0x10u}, - {0x8Du, 0x40u}, - {0x8Fu, 0x10u}, - {0x92u, 0x0Au}, - {0x93u, 0x05u}, - {0x94u, 0xA0u}, - {0x95u, 0x80u}, - {0x96u, 0x44u}, - {0x99u, 0x14u}, - {0x9Cu, 0x60u}, - {0x9Du, 0x01u}, - {0x9Eu, 0xC8u}, - {0x9Fu, 0x90u}, - {0xA2u, 0x40u}, - {0xA4u, 0x88u}, - {0xA7u, 0x91u}, - {0xA8u, 0x10u}, - {0xA9u, 0x80u}, - {0xAEu, 0x41u}, - {0xB0u, 0x48u}, - {0xB1u, 0x01u}, - {0xB2u, 0x02u}, - {0xB3u, 0x02u}, - {0xC0u, 0x0Fu}, - {0xC2u, 0x0Bu}, - {0xC4u, 0x0Cu}, - {0xCAu, 0x60u}, - {0xCCu, 0x30u}, - {0xCEu, 0x14u}, - {0xD0u, 0x07u}, - {0xD2u, 0x04u}, + {0x8Au, 0x80u}, + {0xC2u, 0x06u}, + {0xC4u, 0x01u}, + {0xCAu, 0x6Bu}, + {0xCCu, 0xE9u}, + {0xCEu, 0x2Eu}, + {0xD0u, 0x06u}, + {0xD2u, 0x0Cu}, {0xD6u, 0x0Fu}, {0xD8u, 0x0Fu}, - {0xE0u, 0x20u}, - {0xE4u, 0x10u}, - {0xE6u, 0x41u}, - {0xE8u, 0x08u}, - {0x00u, 0x69u}, - {0x02u, 0x96u}, - {0x08u, 0x33u}, - {0x0Au, 0xCCu}, - {0x11u, 0x96u}, - {0x12u, 0xFFu}, - {0x13u, 0x69u}, - {0x17u, 0xFFu}, - {0x19u, 0xFFu}, - {0x1Au, 0xFFu}, - {0x1Fu, 0xFFu}, - {0x20u, 0x55u}, - {0x21u, 0x0Fu}, - {0x22u, 0xAAu}, - {0x23u, 0xF0u}, - {0x29u, 0x33u}, - {0x2Au, 0xFFu}, - {0x2Bu, 0xCCu}, - {0x2Cu, 0x0Fu}, - {0x2Du, 0x55u}, - {0x2Eu, 0xF0u}, - {0x2Fu, 0xAAu}, - {0x32u, 0xFFu}, - {0x35u, 0xFFu}, - {0x3Eu, 0x04u}, - {0x3Fu, 0x10u}, - {0x58u, 0x04u}, - {0x59u, 0x04u}, - {0x5Fu, 0x01u}, - {0x84u, 0x24u}, - {0x86u, 0x09u}, - {0x87u, 0x40u}, - {0x8Bu, 0x03u}, - {0x8Eu, 0x03u}, - {0x92u, 0x24u}, - {0x93u, 0x30u}, - {0x94u, 0x40u}, - {0x95u, 0x08u}, - {0x98u, 0x24u}, - {0x99u, 0x44u}, - {0x9Au, 0x12u}, - {0x9Bu, 0x11u}, - {0x9Eu, 0x18u}, - {0x9Fu, 0x04u}, - {0xA0u, 0x80u}, - {0xA5u, 0x44u}, - {0xA7u, 0x22u}, - {0xAAu, 0x04u}, - {0xAEu, 0x20u}, - {0xAFu, 0x44u}, - {0xB0u, 0x07u}, - {0xB1u, 0x70u}, - {0xB2u, 0x40u}, - {0xB3u, 0x08u}, - {0xB4u, 0x80u}, - {0xB5u, 0x07u}, - {0xB6u, 0x38u}, - {0xBEu, 0x14u}, - {0xBFu, 0x04u}, + {0xE0u, 0x08u}, + {0xE2u, 0x20u}, + {0xE6u, 0x14u}, + {0xEEu, 0x02u}, + {0xB8u, 0x80u}, + {0xBEu, 0x40u}, {0xD8u, 0x04u}, - {0xD9u, 0x04u}, - {0xDBu, 0x04u}, - {0xDCu, 0x99u}, {0xDFu, 0x01u}, - {0x03u, 0x12u}, - {0x05u, 0x22u}, - {0x08u, 0x04u}, - {0x0Au, 0x45u}, - {0x0Du, 0x10u}, - {0x0Eu, 0x80u}, - {0x10u, 0x08u}, - {0x12u, 0x40u}, - {0x13u, 0x80u}, - {0x15u, 0x80u}, - {0x16u, 0x82u}, - {0x17u, 0x20u}, - {0x19u, 0x14u}, - {0x1Au, 0x01u}, - {0x1Bu, 0x02u}, - {0x1Eu, 0x10u}, - {0x21u, 0x10u}, - {0x22u, 0x06u}, - {0x23u, 0x08u}, - {0x26u, 0x20u}, - {0x2Bu, 0x11u}, - {0x2Du, 0x20u}, - {0x2Eu, 0x82u}, - {0x30u, 0x80u}, - {0x31u, 0x08u}, - {0x32u, 0x02u}, - {0x33u, 0x10u}, - {0x35u, 0x02u}, - {0x36u, 0x40u}, - {0x37u, 0x28u}, + {0x1Au, 0x02u}, + {0x86u, 0x01u}, + {0xEAu, 0x03u}, + {0xECu, 0x80u}, + {0xEEu, 0x08u}, + {0x03u, 0x80u}, + {0x04u, 0x01u}, + {0x05u, 0xD2u}, + {0x06u, 0x5Eu}, + {0x07u, 0x04u}, + {0x08u, 0x35u}, + {0x09u, 0xD0u}, + {0x0Au, 0x42u}, + {0x0Bu, 0x06u}, + {0x0Du, 0xD6u}, + {0x11u, 0x22u}, + {0x13u, 0x10u}, + {0x14u, 0x04u}, + {0x15u, 0x17u}, + {0x16u, 0x03u}, + {0x17u, 0x28u}, + {0x19u, 0x31u}, + {0x1Au, 0x08u}, + {0x1Bu, 0x0Eu}, + {0x21u, 0xD6u}, + {0x24u, 0x43u}, + {0x25u, 0x29u}, + {0x26u, 0x2Cu}, + {0x27u, 0x16u}, + {0x29u, 0x04u}, + {0x2Du, 0x06u}, + {0x2Fu, 0xD0u}, + {0x30u, 0x40u}, + {0x31u, 0x40u}, + {0x32u, 0x07u}, + {0x33u, 0x80u}, + {0x34u, 0x38u}, + {0x35u, 0x0Fu}, + {0x37u, 0x30u}, {0x39u, 0x20u}, {0x3Au, 0x08u}, - {0x58u, 0x28u}, - {0x59u, 0x81u}, - {0x81u, 0x08u}, - {0x84u, 0x04u}, - {0x89u, 0x20u}, - {0x8Bu, 0x20u}, - {0x92u, 0x02u}, - {0x93u, 0x05u}, - {0x94u, 0x80u}, - {0x95u, 0x01u}, - {0x96u, 0x51u}, - {0x99u, 0x22u}, - {0x9Bu, 0x20u}, - {0x9Eu, 0x82u}, - {0x9Fu, 0x18u}, - {0xA2u, 0x40u}, - {0xA6u, 0x22u}, - {0xA7u, 0x91u}, - {0xB2u, 0x20u}, - {0xB3u, 0x01u}, - {0xB6u, 0x04u}, - {0xB7u, 0x40u}, - {0xC0u, 0x55u}, - {0xC2u, 0x5Fu}, - {0xC4u, 0xDBu}, - {0xCAu, 0xBAu}, - {0xCCu, 0xFFu}, - {0xCEu, 0x06u}, - {0xD6u, 0x0Fu}, - {0xE2u, 0x09u}, - {0x02u, 0x04u}, - {0x04u, 0x04u}, - {0x05u, 0x10u}, - {0x06u, 0x01u}, - {0x09u, 0x20u}, - {0x0Au, 0x03u}, - {0x0Cu, 0x80u}, - {0x0Fu, 0x08u}, - {0x11u, 0x01u}, - {0x12u, 0x04u}, - {0x14u, 0x80u}, - {0x17u, 0x06u}, - {0x18u, 0x04u}, - {0x19u, 0x08u}, - {0x1Au, 0x02u}, - {0x1Bu, 0x02u}, - {0x1Cu, 0x18u}, - {0x1Eu, 0x60u}, - {0x20u, 0x28u}, - {0x22u, 0x50u}, - {0x24u, 0x80u}, - {0x25u, 0x08u}, - {0x27u, 0x04u}, - {0x28u, 0x80u}, - {0x2Cu, 0x30u}, - {0x2Eu, 0x48u}, - {0x2Fu, 0x08u}, - {0x30u, 0x78u}, - {0x31u, 0x01u}, - {0x33u, 0x0Eu}, - {0x34u, 0x07u}, - {0x35u, 0x20u}, - {0x36u, 0x80u}, - {0x37u, 0x10u}, - {0x38u, 0x80u}, - {0x3Eu, 0x41u}, - {0x3Fu, 0x51u}, + {0x3Bu, 0x80u}, + {0x3Eu, 0x01u}, + {0x3Fu, 0x05u}, + {0x54u, 0x09u}, + {0x56u, 0x04u}, {0x58u, 0x04u}, {0x59u, 0x04u}, - {0x5Cu, 0x99u}, + {0x5Bu, 0x04u}, {0x5Fu, 0x01u}, - {0x80u, 0x69u}, - {0x81u, 0x0Fu}, - {0x82u, 0x96u}, - {0x83u, 0xF0u}, - {0x88u, 0x33u}, - {0x8Au, 0xCCu}, - {0x8Cu, 0x0Fu}, - {0x8Du, 0x55u}, - {0x8Eu, 0xF0u}, - {0x8Fu, 0xAAu}, - {0x91u, 0x96u}, - {0x93u, 0x69u}, - {0x95u, 0xFFu}, - {0x9Bu, 0xFFu}, - {0x9Fu, 0xFFu}, - {0xA0u, 0x55u}, - {0xA2u, 0xAAu}, - {0xA4u, 0xFFu}, - {0xA8u, 0xFFu}, - {0xA9u, 0x33u}, - {0xABu, 0xCCu}, - {0xAEu, 0xFFu}, - {0xB0u, 0xFFu}, - {0xB5u, 0xFFu}, - {0xBEu, 0x01u}, - {0xBFu, 0x10u}, + {0x82u, 0x30u}, + {0x86u, 0x40u}, + {0x8Au, 0x80u}, + {0x8Cu, 0x40u}, + {0x8Du, 0x0Fu}, + {0x8Eu, 0x80u}, + {0x8Fu, 0xF0u}, + {0x91u, 0x30u}, + {0x92u, 0x01u}, + {0x93u, 0xC0u}, + {0x94u, 0x09u}, + {0x95u, 0x50u}, + {0x96u, 0x24u}, + {0x97u, 0xA0u}, + {0x99u, 0x60u}, + {0x9Au, 0x09u}, + {0x9Bu, 0x90u}, + {0x9Du, 0x03u}, + {0x9Eu, 0x06u}, + {0x9Fu, 0x0Cu}, + {0xA0u, 0x09u}, + {0xA1u, 0x05u}, + {0xA2u, 0x12u}, + {0xA3u, 0x0Au}, + {0xA5u, 0x06u}, + {0xA7u, 0x09u}, + {0xAAu, 0x08u}, + {0xB0u, 0x38u}, + {0xB4u, 0xC0u}, + {0xB6u, 0x07u}, + {0xB7u, 0xFFu}, + {0xBEu, 0x10u}, + {0xBFu, 0x40u}, {0xD8u, 0x04u}, {0xD9u, 0x04u}, - {0xDBu, 0x04u}, + {0xDCu, 0x09u}, {0xDFu, 0x01u}, - {0x01u, 0x20u}, - {0x03u, 0x92u}, - {0x05u, 0x22u}, - {0x06u, 0x02u}, - {0x08u, 0x10u}, - {0x0Au, 0x51u}, - {0x11u, 0x21u}, - {0x12u, 0x22u}, - {0x15u, 0x40u}, - {0x16u, 0x80u}, - {0x17u, 0x28u}, - {0x19u, 0x22u}, - {0x1Bu, 0x40u}, - {0x1Fu, 0x02u}, - {0x21u, 0x08u}, - {0x22u, 0x01u}, - {0x23u, 0x25u}, + {0x00u, 0x20u}, + {0x01u, 0x42u}, + {0x03u, 0x10u}, + {0x05u, 0x14u}, + {0x08u, 0x50u}, + {0x0Au, 0x82u}, + {0x0Bu, 0x20u}, + {0x0Eu, 0x28u}, + {0x11u, 0x02u}, + {0x13u, 0x10u}, + {0x17u, 0x04u}, + {0x19u, 0x02u}, + {0x1Au, 0x0Au}, + {0x1Cu, 0x40u}, + {0x1Eu, 0x28u}, + {0x1Fu, 0x04u}, + {0x20u, 0x02u}, + {0x23u, 0x02u}, {0x25u, 0x10u}, - {0x28u, 0x10u}, - {0x2Bu, 0x11u}, - {0x2Du, 0x20u}, - {0x31u, 0x08u}, - {0x33u, 0x11u}, - {0x35u, 0x02u}, - {0x36u, 0x40u}, - {0x37u, 0x28u}, - {0x38u, 0x80u}, - {0x3Au, 0x24u}, - {0x3Eu, 0x82u}, + {0x26u, 0x0Bu}, + {0x27u, 0x05u}, + {0x29u, 0x02u}, + {0x2Bu, 0x10u}, + {0x2Cu, 0x02u}, + {0x2Du, 0x11u}, + {0x2Eu, 0x28u}, + {0x30u, 0x28u}, + {0x31u, 0x02u}, + {0x33u, 0x80u}, + {0x35u, 0x14u}, + {0x37u, 0x01u}, + {0x39u, 0x40u}, + {0x3Cu, 0x80u}, + {0x3Eu, 0x14u}, + {0x3Fu, 0x02u}, + {0x43u, 0x0Cu}, + {0x45u, 0x10u}, + {0x46u, 0x08u}, + {0x5Cu, 0x48u}, + {0x5Du, 0x10u}, + {0x5Eu, 0x02u}, + {0x67u, 0x42u}, + {0x6Cu, 0x01u}, {0x6Du, 0x40u}, - {0x6Eu, 0x80u}, - {0x83u, 0x08u}, - {0x86u, 0x02u}, - {0xC0u, 0xDFu}, - {0xC2u, 0x0Fu}, - {0xC4u, 0xFFu}, - {0xCAu, 0x2Au}, - {0xCCu, 0xF7u}, - {0xCEu, 0x9Eu}, - {0xE0u, 0x04u}, - {0xE4u, 0x08u}, - {0xA8u, 0x10u}, - {0xB0u, 0x01u}, - {0xECu, 0x20u}, - {0x82u, 0x06u}, - {0x86u, 0x01u}, - {0x8Au, 0x0Au}, + {0x91u, 0xA0u}, + {0x92u, 0xE0u}, + {0x93u, 0x33u}, + {0x95u, 0x45u}, + {0x96u, 0x14u}, + {0x98u, 0x1Cu}, + {0x99u, 0x14u}, + {0x9Au, 0x20u}, + {0x9Bu, 0x18u}, + {0x9Cu, 0x40u}, + {0x9Du, 0x62u}, {0x9Eu, 0x02u}, - {0xA8u, 0x0Cu}, - {0xAEu, 0x01u}, - {0xB2u, 0x01u}, - {0xB6u, 0x0Eu}, - {0xBEu, 0x04u}, - {0xD8u, 0x0Bu}, - {0xDCu, 0x09u}, - {0xDFu, 0x01u}, - {0x01u, 0x20u}, - {0x02u, 0x10u}, - {0x03u, 0x40u}, + {0x9Fu, 0x05u}, + {0xA0u, 0x38u}, + {0xA1u, 0x07u}, + {0xA3u, 0x97u}, + {0xA4u, 0x43u}, + {0xA5u, 0x10u}, + {0xA6u, 0x02u}, + {0xB2u, 0x40u}, + {0xB4u, 0x80u}, + {0xC0u, 0x6Fu}, + {0xC2u, 0x6Fu}, + {0xC4u, 0x2Au}, + {0xCAu, 0xF3u}, + {0xCCu, 0xEFu}, + {0xCEu, 0xF8u}, + {0xD6u, 0xF0u}, + {0xD8u, 0x90u}, + {0xEAu, 0x03u}, + {0xECu, 0x80u}, + {0xEEu, 0x08u}, + {0x00u, 0x01u}, {0x04u, 0x04u}, - {0x05u, 0x20u}, - {0x06u, 0x80u}, - {0x0Au, 0x01u}, - {0x0Du, 0x88u}, - {0x12u, 0x01u}, - {0x13u, 0x20u}, - {0x17u, 0x60u}, - {0x1Au, 0x01u}, - {0x1Bu, 0x04u}, - {0x1Cu, 0x04u}, - {0x1Du, 0x08u}, - {0x1Fu, 0x14u}, - {0x24u, 0x20u}, + {0x05u, 0x30u}, + {0x07u, 0xC0u}, + {0x09u, 0x60u}, + {0x0Bu, 0x90u}, + {0x0Du, 0xFFu}, + {0x11u, 0x05u}, + {0x13u, 0x0Au}, + {0x14u, 0x02u}, + {0x18u, 0x02u}, + {0x19u, 0x03u}, + {0x1Bu, 0x0Cu}, + {0x1Cu, 0x02u}, + {0x1Du, 0x0Fu}, + {0x1Fu, 0xF0u}, + {0x21u, 0x06u}, + {0x23u, 0x09u}, + {0x24u, 0x02u}, {0x25u, 0x50u}, - {0x26u, 0x10u}, - {0x27u, 0x04u}, - {0x2Cu, 0x80u}, - {0x2Fu, 0x26u}, - {0x37u, 0x64u}, - {0x3Du, 0x80u}, - {0x3Eu, 0x16u}, - {0x44u, 0x80u}, - {0x47u, 0x60u}, - {0x4Cu, 0x01u}, - {0x4Du, 0x20u}, - {0x4Fu, 0x05u}, - {0x56u, 0xA0u}, - {0x57u, 0x89u}, - {0x64u, 0x20u}, - {0x66u, 0x20u}, - {0x67u, 0x01u}, - {0x7Au, 0x80u}, - {0x7Eu, 0x80u}, - {0x8Au, 0x01u}, - {0x8Cu, 0x80u}, - {0x8Du, 0x80u}, + {0x27u, 0xA0u}, + {0x2Bu, 0xFFu}, + {0x2Fu, 0xFFu}, + {0x32u, 0x02u}, + {0x34u, 0x01u}, + {0x35u, 0xFFu}, + {0x36u, 0x04u}, + {0x38u, 0x08u}, + {0x3Eu, 0x54u}, + {0x3Fu, 0x10u}, + {0x54u, 0x40u}, + {0x56u, 0x04u}, + {0x58u, 0x04u}, + {0x59u, 0x04u}, + {0x5Bu, 0x04u}, + {0x5Fu, 0x01u}, + {0x80u, 0x0Fu}, + {0x81u, 0xE0u}, + {0x82u, 0xF0u}, + {0x84u, 0x03u}, + {0x86u, 0x0Cu}, + {0x87u, 0x12u}, + {0x8Bu, 0x01u}, + {0x8Cu, 0xFFu}, + {0x8Fu, 0xECu}, + {0x90u, 0x05u}, + {0x92u, 0x0Au}, + {0x94u, 0x30u}, + {0x95u, 0x21u}, + {0x96u, 0xC0u}, + {0x97u, 0x02u}, + {0x98u, 0x60u}, + {0x99u, 0x88u}, + {0x9Au, 0x90u}, + {0x9Bu, 0x03u}, + {0x9Eu, 0xFFu}, + {0xA0u, 0x06u}, + {0xA2u, 0x09u}, + {0xA4u, 0x50u}, + {0xA6u, 0xA0u}, + {0xA9u, 0x04u}, + {0xAAu, 0xFFu}, + {0xABu, 0x43u}, + {0xB3u, 0xE0u}, + {0xB5u, 0x10u}, + {0xB6u, 0xFFu}, + {0xB7u, 0x0Fu}, + {0xBEu, 0x40u}, + {0xBFu, 0x04u}, + {0xD6u, 0x02u}, + {0xD7u, 0x24u}, + {0xD8u, 0x04u}, + {0xD9u, 0x04u}, + {0xDBu, 0x04u}, + {0xDFu, 0x01u}, + {0x03u, 0xA0u}, + {0x04u, 0x02u}, + {0x05u, 0x80u}, + {0x07u, 0x52u}, + {0x09u, 0xA0u}, + {0x0Au, 0x20u}, + {0x0Cu, 0x01u}, + {0x0Du, 0x54u}, + {0x0Eu, 0x40u}, + {0x11u, 0x08u}, + {0x14u, 0x54u}, + {0x17u, 0x08u}, + {0x19u, 0x68u}, + {0x1Du, 0x80u}, + {0x21u, 0x20u}, + {0x25u, 0x50u}, + {0x27u, 0x20u}, + {0x28u, 0x54u}, + {0x29u, 0x80u}, + {0x2Fu, 0x08u}, + {0x30u, 0x01u}, + {0x33u, 0x50u}, + {0x35u, 0x14u}, + {0x39u, 0xA8u}, + {0x3Du, 0xA0u}, + {0x3Fu, 0x09u}, + {0x60u, 0x84u}, + {0x62u, 0x08u}, + {0x63u, 0x02u}, + {0x67u, 0x08u}, + {0x6Cu, 0x02u}, + {0x6Du, 0x05u}, + {0x6Eu, 0x14u}, + {0x74u, 0x40u}, + {0x76u, 0x02u}, + {0x80u, 0x04u}, + {0x82u, 0x04u}, + {0x83u, 0x02u}, + {0x87u, 0x20u}, + {0x88u, 0x90u}, + {0x89u, 0x0Cu}, + {0x8Fu, 0xA0u}, {0x90u, 0x02u}, - {0x92u, 0x14u}, - {0x97u, 0x24u}, - {0x98u, 0x20u}, - {0x99u, 0x20u}, - {0x9Au, 0x13u}, - {0x9Bu, 0x60u}, - {0x9Cu, 0x01u}, - {0x9Du, 0x80u}, - {0x9Eu, 0x80u}, - {0xA0u, 0x80u}, - {0xA1u, 0x80u}, - {0xA2u, 0x80u}, - {0xA3u, 0x22u}, - {0xA5u, 0x10u}, - {0xA6u, 0x10u}, - {0xA7u, 0x8Du}, - {0xA9u, 0x08u}, - {0xC0u, 0x7Eu}, - {0xC2u, 0xA1u}, - {0xC4u, 0xC3u}, - {0xCAu, 0xF0u}, - {0xCCu, 0x70u}, + {0x91u, 0xA0u}, + {0x92u, 0x60u}, + {0x93u, 0x09u}, + {0x95u, 0x05u}, + {0x96u, 0x14u}, + {0x98u, 0x44u}, + {0x99u, 0x14u}, + {0x9Bu, 0x1Au}, + {0x9Du, 0x60u}, + {0x9Eu, 0x02u}, + {0xA0u, 0x10u}, + {0xA1u, 0x04u}, + {0xA2u, 0x0Cu}, + {0xA3u, 0x0Fu}, + {0xA4u, 0x42u}, + {0xAEu, 0x04u}, + {0xAFu, 0x40u}, + {0xC0u, 0xBCu}, + {0xC2u, 0xF7u}, + {0xC4u, 0x74u}, + {0xCAu, 0x2Fu}, + {0xCCu, 0x6Du}, + {0xCEu, 0xFEu}, + {0xD8u, 0x2Fu}, + {0xE2u, 0x20u}, + {0xE6u, 0x18u}, + {0xECu, 0x08u}, + {0x0Eu, 0x08u}, + {0x12u, 0x08u}, + {0x15u, 0x80u}, + {0x17u, 0x04u}, + {0x33u, 0x04u}, + {0x36u, 0x88u}, + {0x39u, 0x80u}, + {0x3Au, 0x08u}, + {0x3Cu, 0x18u}, + {0x40u, 0x02u}, + {0x5Fu, 0x02u}, + {0x86u, 0x08u}, + {0xC2u, 0x80u}, + {0xC4u, 0xE0u}, + {0xCCu, 0xE0u}, {0xCEu, 0xF0u}, - {0xD0u, 0xB0u}, - {0xD2u, 0x30u}, - {0xD8u, 0x70u}, - {0xDEu, 0x81u}, - {0xE0u, 0x10u}, - {0xE4u, 0x40u}, - {0xE6u, 0x80u}, - {0xE8u, 0x01u}, - {0xEEu, 0x0Au}, + {0xD0u, 0x10u}, + {0xD6u, 0x80u}, + {0xE6u, 0x40u}, + {0x33u, 0x81u}, + {0x37u, 0x20u}, + {0x3Au, 0x80u}, + {0x53u, 0x20u}, + {0x59u, 0x10u}, + {0x63u, 0x40u}, + {0x81u, 0x10u}, + {0x87u, 0x40u}, + {0x9Cu, 0x02u}, + {0x9Fu, 0x02u}, + {0xA2u, 0x04u}, + {0xA4u, 0x04u}, + {0xA6u, 0x80u}, + {0xA8u, 0x10u}, + {0xCCu, 0x70u}, + {0xCEu, 0x10u}, + {0xD4u, 0xA0u}, + {0xD8u, 0x40u}, + {0xE6u, 0x60u}, + {0xEEu, 0x80u}, + {0x12u, 0x80u}, + {0x9Cu, 0x02u}, + {0x9Fu, 0x21u}, + {0xA4u, 0x04u}, + {0xA6u, 0x80u}, + {0xA7u, 0xA0u}, {0xAAu, 0x80u}, - {0xE8u, 0x01u}, - {0xEEu, 0x0Au}, - {0x0Du, 0x80u}, - {0x33u, 0x80u}, - {0x36u, 0x40u}, - {0xC2u, 0x80u}, - {0xCCu, 0x30u}, - {0x53u, 0x01u}, - {0x5Du, 0x20u}, - {0xA1u, 0x80u}, - {0xA6u, 0x40u}, - {0xA7u, 0x80u}, - {0xD4u, 0x80u}, - {0xD6u, 0x20u}, - {0x89u, 0x80u}, - {0x8Fu, 0x01u}, - {0x97u, 0x02u}, - {0xA1u, 0x80u}, - {0xA6u, 0x40u}, - {0xA7u, 0x80u}, - {0xADu, 0x20u}, + {0xAFu, 0x02u}, + {0xB6u, 0x04u}, + {0xC4u, 0x10u}, + {0xEAu, 0x80u}, {0xEEu, 0x40u}, - {0xA6u, 0x40u}, + {0x9Cu, 0x02u}, + {0x9Fu, 0x21u}, + {0xA4u, 0x04u}, {0xA7u, 0x80u}, - {0x00u, 0x10u}, - {0x09u, 0x40u}, - {0x0Fu, 0x01u}, - {0x11u, 0x01u}, - {0x17u, 0x04u}, - {0x61u, 0x20u}, - {0x63u, 0x02u}, - {0x81u, 0x20u}, - {0x87u, 0x01u}, + {0xAFu, 0x20u}, + {0xEEu, 0x10u}, + {0x02u, 0x01u}, + {0x08u, 0x80u}, + {0x0Cu, 0x80u}, + {0x11u, 0x08u}, + {0x16u, 0x80u}, + {0x60u, 0x20u}, + {0x65u, 0x08u}, + {0x85u, 0x01u}, + {0x88u, 0x80u}, + {0x8Au, 0x02u}, {0xC0u, 0x02u}, {0xC2u, 0x03u}, {0xC4u, 0x0Cu}, - {0xD6u, 0x02u}, - {0xD8u, 0x02u}, - {0x08u, 0x04u}, - {0x0Cu, 0x02u}, - {0x56u, 0x20u}, - {0x5Au, 0x04u}, - {0x5Fu, 0x10u}, - {0x62u, 0x02u}, - {0x83u, 0x01u}, - {0x84u, 0x02u}, - {0x8Au, 0x22u}, - {0x90u, 0x10u}, - {0x93u, 0x01u}, - {0xA0u, 0x80u}, - {0xB1u, 0x41u}, + {0xD8u, 0x03u}, + {0xE0u, 0x01u}, + {0xE2u, 0x04u}, + {0x09u, 0x01u}, + {0x0Fu, 0x20u}, + {0x56u, 0x02u}, + {0x5Au, 0x10u}, + {0x5Du, 0x01u}, + {0x63u, 0x40u}, + {0x91u, 0x01u}, + {0x9Au, 0x43u}, + {0x9Du, 0x08u}, + {0xA1u, 0x04u}, + {0xAAu, 0x80u}, + {0xACu, 0x20u}, + {0xB2u, 0x40u}, {0xB4u, 0x80u}, - {0xB7u, 0x04u}, {0xC2u, 0x0Cu}, - {0xD4u, 0x02u}, - {0xD6u, 0x06u}, + {0xD4u, 0x01u}, + {0xD6u, 0x05u}, {0xD8u, 0x02u}, - {0xE0u, 0x04u}, - {0xE4u, 0x04u}, - {0xECu, 0x02u}, - {0xEEu, 0x0Du}, - {0x54u, 0x80u}, - {0x80u, 0x10u}, - {0x90u, 0x10u}, - {0x98u, 0x04u}, - {0xA0u, 0x80u}, - {0xA2u, 0x20u}, - {0xAFu, 0x10u}, - {0xB2u, 0x24u}, - {0xD4u, 0x02u}, - {0xECu, 0x05u}, + {0xECu, 0x01u}, + {0xEEu, 0x02u}, + {0x83u, 0x08u}, + {0x87u, 0x40u}, + {0x8Fu, 0x10u}, + {0x96u, 0x10u}, + {0x97u, 0x40u}, + {0x9Au, 0x40u}, + {0x9Du, 0x08u}, + {0xA1u, 0x04u}, + {0xA3u, 0x10u}, + {0xA4u, 0x20u}, + {0xA8u, 0x20u}, + {0xB5u, 0x01u}, + {0xB6u, 0x01u}, + {0xE2u, 0x08u}, + {0xEAu, 0x08u}, + {0xEEu, 0x02u}, {0x08u, 0x08u}, - {0x0Fu, 0x40u}, - {0x9Eu, 0x02u}, - {0xA2u, 0x20u}, - {0xA4u, 0x10u}, - {0xACu, 0x10u}, - {0xAEu, 0x02u}, - {0xB0u, 0x04u}, - {0xC2u, 0x0Cu}, - {0xEEu, 0x01u}, - {0x23u, 0x20u}, - {0x24u, 0x04u}, - {0x8Au, 0x40u}, - {0x8Cu, 0x04u}, - {0x8Du, 0x04u}, - {0xAEu, 0x40u}, - {0xAFu, 0x80u}, - {0xC8u, 0x60u}, - {0xEEu, 0x50u}, - {0x05u, 0x04u}, - {0x51u, 0x20u}, - {0x56u, 0x40u}, + {0x0Bu, 0x04u}, + {0x0Cu, 0x20u}, + {0x0Du, 0x08u}, + {0x8Eu, 0x10u}, + {0x96u, 0x10u}, {0x9Au, 0x40u}, - {0x9Du, 0x04u}, - {0xA1u, 0x20u}, - {0xA9u, 0x20u}, - {0xB3u, 0x20u}, + {0x9Du, 0x08u}, + {0xA1u, 0x04u}, + {0xA3u, 0x08u}, + {0xA4u, 0x20u}, + {0xC2u, 0x0Fu}, + {0xE4u, 0x08u}, + {0x67u, 0x20u}, + {0x87u, 0x10u}, + {0x9Cu, 0x02u}, + {0x9Eu, 0x40u}, + {0xA4u, 0x04u}, + {0xABu, 0x20u}, + {0xAFu, 0x81u}, + {0xB2u, 0x40u}, + {0xD8u, 0x80u}, + {0xE6u, 0x40u}, + {0xEAu, 0xC0u}, + {0xEEu, 0x10u}, + {0x06u, 0x40u}, + {0x50u, 0x40u}, + {0x57u, 0x20u}, + {0x83u, 0x20u}, + {0x88u, 0x04u}, + {0x8Cu, 0x40u}, + {0x9Eu, 0x40u}, + {0xA4u, 0x04u}, + {0xACu, 0x02u}, {0xC0u, 0x20u}, {0xD4u, 0x60u}, - {0xEAu, 0x20u}, - {0x9Bu, 0x80u}, - {0x9Eu, 0x02u}, - {0xA2u, 0x20u}, - {0xA4u, 0x10u}, - {0xABu, 0x80u}, + {0xE6u, 0x20u}, + {0xEEu, 0x40u}, + {0x7Bu, 0x01u}, + {0x9Au, 0x40u}, + {0x9Du, 0x08u}, + {0xA3u, 0x08u}, + {0xA9u, 0x08u}, {0xACu, 0x08u}, - {0xAFu, 0x40u}, - {0x00u, 0x20u}, - {0x06u, 0x02u}, - {0x52u, 0x20u}, - {0x5Bu, 0x80u}, - {0x9Bu, 0x80u}, - {0x9Eu, 0x02u}, - {0xA2u, 0x20u}, - {0xA4u, 0x10u}, + {0xAFu, 0x04u}, + {0xB5u, 0x04u}, + {0xDCu, 0x01u}, + {0xEEu, 0x02u}, + {0x00u, 0x40u}, + {0x05u, 0x40u}, + {0x53u, 0x08u}, + {0x56u, 0x40u}, + {0x85u, 0x40u}, + {0x8Bu, 0x01u}, + {0x8Cu, 0x40u}, + {0x9Au, 0x40u}, + {0xA3u, 0x08u}, + {0xA7u, 0x01u}, + {0xADu, 0x08u}, {0xC0u, 0x03u}, - {0xD4u, 0x05u}, + {0xD4u, 0x06u}, + {0xE0u, 0x01u}, + {0xE2u, 0x02u}, + {0x00u, 0x01u}, {0x01u, 0x01u}, - {0x0Bu, 0x01u}, + {0x0Cu, 0x01u}, {0x0Du, 0x01u}, + {0x0Eu, 0x01u}, {0x0Fu, 0x01u}, + {0x10u, 0x01u}, {0x11u, 0x01u}, - {0x1Bu, 0x01u}, - {0x00u, 0x0Au}, + {0x1Cu, 0x01u}, + {0x1Du, 0x01u}, + {0x00u, 0xFDu}, + {0x01u, 0xABu}, + {0x02u, 0x08u}, + {0x10u, 0x55u}, }; @@ -1282,29 +1494,30 @@ void cyfitter_cfg(void) static const cfg_memset_t CYCODE cfg_memset_list [] = { /* address, size */ + {(void CYFAR *)(CYREG_TMR0_CFG0), 12u}, {(void CYFAR *)(CYREG_PRT1_DR), 16u}, - {(void CYFAR *)(CYDEV_UCFG_B0_P0_U0_BASE), 4096u}, - {(void CYFAR *)(CYDEV_UCFG_B1_P2_U0_BASE), 512u}, - {(void CYFAR *)(CYDEV_UCFG_B1_P3_U1_BASE), 1408u}, + {(void CYFAR *)(CYDEV_UCFG_B0_P0_U0_BASE), 2048u}, + {(void CYFAR *)(CYDEV_UCFG_B0_P4_U1_BASE), 1920u}, + {(void CYFAR *)(CYDEV_UCFG_B1_P2_U0_BASE), 2048u}, {(void CYFAR *)(CYDEV_UCFG_DSI0_BASE), 2560u}, {(void CYFAR *)(CYDEV_UCFG_DSI12_BASE), 512u}, {(void CYFAR *)(CYREG_BCTL0_MDCLK_EN), 32u}, }; - /* UDB_1_1_1_CONFIG Address: CYDEV_UCFG_B1_P3_U0_BASE Size (bytes): 128 */ - static const uint8 CYCODE BS_UDB_1_1_1_CONFIG_VAL[] = { - 0x00u, 0x01u, 0x02u, 0x00u, 0x40u, 0x01u, 0x30u, 0x00u, 0x34u, 0x01u, 0x43u, 0x00u, 0x00u, 0xF8u, 0x00u, 0x00u, - 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x02u, 0x0Cu, 0x01u, 0x00u, 0x8Bu, 0x00u, 0x04u, 0x00u, 0x25u, 0x01u, 0x0Au, - 0x00u, 0x01u, 0x00u, 0x00u, 0x00u, 0x06u, 0x00u, 0x51u, 0x58u, 0x00u, 0x23u, 0xE0u, 0x11u, 0x00u, 0x62u, 0x01u, - 0x00u, 0x00u, 0x0Fu, 0xE0u, 0x70u, 0x03u, 0x00u, 0x1Cu, 0x00u, 0x80u, 0x20u, 0x20u, 0x00u, 0x00u, 0x00u, 0x04u, - 0x62u, 0x01u, 0x50u, 0x00u, 0x04u, 0xDEu, 0xFBu, 0xCDu, 0x3Fu, 0xFFu, 0xFFu, 0xFFu, 0x22u, 0x00u, 0xF0u, 0x08u, - 0x04u, 0x00u, 0x00u, 0x00u, 0x40u, 0x00u, 0x00u, 0x00u, 0x0Bu, 0x0Bu, 0x0Bu, 0x0Bu, 0x99u, 0x99u, 0x00u, 0x01u, + /* UDB_0_2_1_CONFIG Address: CYDEV_UCFG_B0_P4_U0_BASE Size (bytes): 128 */ + static const uint8 CYCODE BS_UDB_0_2_1_CONFIG_VAL[] = { + 0x00u, 0x01u, 0x60u, 0x00u, 0x1Fu, 0x10u, 0x20u, 0x00u, 0x00u, 0x08u, 0xFFu, 0x21u, 0x80u, 0x01u, 0x00u, 0x00u, + 0x90u, 0x01u, 0x40u, 0x00u, 0xC0u, 0x07u, 0x08u, 0x18u, 0x00u, 0x22u, 0x9Fu, 0x08u, 0x00u, 0x40u, 0x00u, 0x00u, + 0xC0u, 0x40u, 0x02u, 0x00u, 0xC0u, 0x01u, 0x04u, 0x00u, 0x7Fu, 0x04u, 0x80u, 0x00u, 0xC0u, 0x01u, 0x01u, 0x00u, + 0x00u, 0x3Fu, 0x00u, 0x00u, 0x00u, 0x40u, 0xFFu, 0x40u, 0x00u, 0xA2u, 0x00u, 0x00u, 0x00u, 0x00u, 0x40u, 0x01u, + 0x26u, 0x03u, 0x50u, 0x00u, 0x04u, 0xDBu, 0xC0u, 0xFEu, 0x3Bu, 0xFFu, 0xFFu, 0xFFu, 0x22u, 0x00u, 0xF0u, 0x08u, + 0x04u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x04u, 0x04u, 0x04u, 0x00u, 0x00u, 0x00u, 0x00u, 0x01u, 0x00u, 0x00u, 0xC0u, 0x00u, 0x40u, 0x01u, 0x10u, 0x11u, 0xC0u, 0x01u, 0x00u, 0x11u, 0x40u, 0x01u, 0x40u, 0x01u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u}; static const cfg_memcpy_t CYCODE cfg_memcpy_list [] = { /* dest, src, size */ - {(void CYFAR *)(CYDEV_UCFG_B1_P3_U0_BASE), BS_UDB_1_1_1_CONFIG_VAL, 128u}, + {(void CYFAR *)(CYDEV_UCFG_B0_P4_U0_BASE), BS_UDB_0_2_1_CONFIG_VAL, 128u}, }; uint8 CYDATA i; @@ -1328,6 +1541,12 @@ void cyfitter_cfg(void) cfg_write_bytes32(cy_cfg_addr_table, cy_cfg_data_table); + /* Perform normal device configuration. Order is not critical for these items. */ + CYMEMZERO((void CYFAR *)(CYREG_PHUB_CFGMEM0_CFG0), 4u); + CYCONFIGCPYCODE((void CYFAR *)(CYREG_PHUB_CFGMEM1_CFG0), (const void CYCODE *)(BS_PHUB_CFGMEM1_VAL), 4u); + CYCONFIGCPYCODE((void CYFAR *)(CYREG_PHUB_CFGMEM2_CFG0), (const void CYCODE *)(BS_PHUB_CFGMEM2_VAL), 4u); + CYCONFIGCPYCODE((void CYFAR *)(CYREG_PHUB_CFGMEM3_CFG0), (const void CYCODE *)(BS_PHUB_CFGMEM3_VAL), 4u); + /* Enable digital routing */ CY_SET_XTND_REG8((void CYFAR *)CYREG_BCTL0_BANK_CTL, CY_GET_XTND_REG8((void CYFAR *)CYREG_BCTL0_BANK_CTL) | 0x02u); CY_SET_XTND_REG8((void CYFAR *)CYREG_BCTL1_BANK_CTL, CY_GET_XTND_REG8((void CYFAR *)CYREG_BCTL1_BANK_CTL) | 0x02u); diff --git a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/cyfittergnu.inc b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/cyfittergnu.inc old mode 100755 new mode 100644 index f4ad5e66..3ff6c381 --- a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/cyfittergnu.inc +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/cyfittergnu.inc @@ -3,6 +3,74 @@ .include "cydevicegnu.inc" .include "cydevicegnu_trm.inc" +/* Debug_Timer_Interrupt */ +.set Debug_Timer_Interrupt__INTC_CLR_EN_REG, CYREG_NVIC_CLRENA0 +.set Debug_Timer_Interrupt__INTC_CLR_PD_REG, CYREG_NVIC_CLRPEND0 +.set Debug_Timer_Interrupt__INTC_MASK, 0x02 +.set Debug_Timer_Interrupt__INTC_NUMBER, 1 +.set Debug_Timer_Interrupt__INTC_PRIOR_NUM, 7 +.set Debug_Timer_Interrupt__INTC_PRIOR_REG, CYREG_NVIC_PRI_1 +.set Debug_Timer_Interrupt__INTC_SET_EN_REG, CYREG_NVIC_SETENA0 +.set Debug_Timer_Interrupt__INTC_SET_PD_REG, CYREG_NVIC_SETPEND0 + +/* SCSI_RX_DMA_COMPLETE */ +.set SCSI_RX_DMA_COMPLETE__INTC_CLR_EN_REG, CYREG_NVIC_CLRENA0 +.set SCSI_RX_DMA_COMPLETE__INTC_CLR_PD_REG, CYREG_NVIC_CLRPEND0 +.set SCSI_RX_DMA_COMPLETE__INTC_MASK, 0x01 +.set SCSI_RX_DMA_COMPLETE__INTC_NUMBER, 0 +.set SCSI_RX_DMA_COMPLETE__INTC_PRIOR_NUM, 7 +.set SCSI_RX_DMA_COMPLETE__INTC_PRIOR_REG, CYREG_NVIC_PRI_0 +.set SCSI_RX_DMA_COMPLETE__INTC_SET_EN_REG, CYREG_NVIC_SETENA0 +.set SCSI_RX_DMA_COMPLETE__INTC_SET_PD_REG, CYREG_NVIC_SETPEND0 + +/* SCSI_TX_DMA_COMPLETE */ +.set SCSI_TX_DMA_COMPLETE__INTC_CLR_EN_REG, CYREG_NVIC_CLRENA0 +.set SCSI_TX_DMA_COMPLETE__INTC_CLR_PD_REG, CYREG_NVIC_CLRPEND0 +.set SCSI_TX_DMA_COMPLETE__INTC_MASK, 0x04 +.set SCSI_TX_DMA_COMPLETE__INTC_NUMBER, 2 +.set SCSI_TX_DMA_COMPLETE__INTC_PRIOR_NUM, 7 +.set SCSI_TX_DMA_COMPLETE__INTC_PRIOR_REG, CYREG_NVIC_PRI_2 +.set SCSI_TX_DMA_COMPLETE__INTC_SET_EN_REG, CYREG_NVIC_SETENA0 +.set SCSI_TX_DMA_COMPLETE__INTC_SET_PD_REG, CYREG_NVIC_SETPEND0 + +/* Debug_Timer_TimerHW */ +.set Debug_Timer_TimerHW__CAP0, CYREG_TMR0_CAP0 +.set Debug_Timer_TimerHW__CAP1, CYREG_TMR0_CAP1 +.set Debug_Timer_TimerHW__CFG0, CYREG_TMR0_CFG0 +.set Debug_Timer_TimerHW__CFG1, CYREG_TMR0_CFG1 +.set Debug_Timer_TimerHW__CFG2, CYREG_TMR0_CFG2 +.set Debug_Timer_TimerHW__CNT_CMP0, CYREG_TMR0_CNT_CMP0 +.set Debug_Timer_TimerHW__CNT_CMP1, CYREG_TMR0_CNT_CMP1 +.set Debug_Timer_TimerHW__PER0, CYREG_TMR0_PER0 +.set Debug_Timer_TimerHW__PER1, CYREG_TMR0_PER1 +.set Debug_Timer_TimerHW__PM_ACT_CFG, CYREG_PM_ACT_CFG3 +.set Debug_Timer_TimerHW__PM_ACT_MSK, 0x01 +.set Debug_Timer_TimerHW__PM_STBY_CFG, CYREG_PM_STBY_CFG3 +.set Debug_Timer_TimerHW__PM_STBY_MSK, 0x01 +.set Debug_Timer_TimerHW__RT0, CYREG_TMR0_RT0 +.set Debug_Timer_TimerHW__RT1, CYREG_TMR0_RT1 +.set Debug_Timer_TimerHW__SR0, CYREG_TMR0_SR0 + +/* SD_RX_DMA_COMPLETE */ +.set SD_RX_DMA_COMPLETE__INTC_CLR_EN_REG, CYREG_NVIC_CLRENA0 +.set SD_RX_DMA_COMPLETE__INTC_CLR_PD_REG, CYREG_NVIC_CLRPEND0 +.set SD_RX_DMA_COMPLETE__INTC_MASK, 0x08 +.set SD_RX_DMA_COMPLETE__INTC_NUMBER, 3 +.set SD_RX_DMA_COMPLETE__INTC_PRIOR_NUM, 7 +.set SD_RX_DMA_COMPLETE__INTC_PRIOR_REG, CYREG_NVIC_PRI_3 +.set SD_RX_DMA_COMPLETE__INTC_SET_EN_REG, CYREG_NVIC_SETENA0 +.set SD_RX_DMA_COMPLETE__INTC_SET_PD_REG, CYREG_NVIC_SETPEND0 + +/* SD_TX_DMA_COMPLETE */ +.set SD_TX_DMA_COMPLETE__INTC_CLR_EN_REG, CYREG_NVIC_CLRENA0 +.set SD_TX_DMA_COMPLETE__INTC_CLR_PD_REG, CYREG_NVIC_CLRPEND0 +.set SD_TX_DMA_COMPLETE__INTC_MASK, 0x10 +.set SD_TX_DMA_COMPLETE__INTC_NUMBER, 4 +.set SD_TX_DMA_COMPLETE__INTC_PRIOR_NUM, 7 +.set SD_TX_DMA_COMPLETE__INTC_PRIOR_REG, CYREG_NVIC_PRI_4 +.set SD_TX_DMA_COMPLETE__INTC_SET_EN_REG, CYREG_NVIC_SETENA0 +.set SD_TX_DMA_COMPLETE__INTC_SET_PD_REG, CYREG_NVIC_SETPEND0 + /* USBFS_bus_reset */ .set USBFS_bus_reset__INTC_CLR_EN_REG, CYREG_NVIC_CLRENA0 .set USBFS_bus_reset__INTC_CLR_PD_REG, CYREG_NVIC_CLRPEND0 @@ -13,6 +81,68 @@ .set USBFS_bus_reset__INTC_SET_EN_REG, CYREG_NVIC_SETENA0 .set USBFS_bus_reset__INTC_SET_PD_REG, CYREG_NVIC_SETPEND0 +/* SCSI_CTL_PHASE */ +.set SCSI_CTL_PHASE_Sync_ctrl_reg__0__MASK, 0x01 +.set SCSI_CTL_PHASE_Sync_ctrl_reg__0__POS, 0 +.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG, CYREG_B0_UDB12_13_ACTL +.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG, CYREG_B0_UDB12_13_CTL +.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG, CYREG_B0_UDB12_13_CTL +.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG, CYREG_B0_UDB12_13_CTL +.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG, CYREG_B0_UDB12_13_CTL +.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_MASK_REG, CYREG_B0_UDB12_13_MSK +.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG, CYREG_B0_UDB12_13_MSK +.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG, CYREG_B0_UDB12_13_MSK +.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG, CYREG_B0_UDB12_13_MSK +.set SCSI_CTL_PHASE_Sync_ctrl_reg__1__MASK, 0x02 +.set SCSI_CTL_PHASE_Sync_ctrl_reg__1__POS, 1 +.set SCSI_CTL_PHASE_Sync_ctrl_reg__2__MASK, 0x04 +.set SCSI_CTL_PHASE_Sync_ctrl_reg__2__POS, 2 +.set SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_AUX_CTL_REG, CYREG_B0_UDB12_ACTL +.set SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_REG, CYREG_B0_UDB12_CTL +.set SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_ST_REG, CYREG_B0_UDB12_ST_CTL +.set SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_REG, CYREG_B0_UDB12_CTL +.set SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_ST_REG, CYREG_B0_UDB12_ST_CTL +.set SCSI_CTL_PHASE_Sync_ctrl_reg__MASK, 0x07 +.set SCSI_CTL_PHASE_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG, CYREG_B0_UDB12_MSK_ACTL +.set SCSI_CTL_PHASE_Sync_ctrl_reg__PERIOD_REG, CYREG_B0_UDB12_MSK +.set SCSI_CTL_PHASE_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG, CYREG_B0_UDB12_MSK_ACTL + +/* SCSI_Out_Bits */ +.set SCSI_Out_Bits_Sync_ctrl_reg__0__MASK, 0x01 +.set SCSI_Out_Bits_Sync_ctrl_reg__0__POS, 0 +.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG, CYREG_B0_UDB10_11_ACTL +.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG, CYREG_B0_UDB10_11_CTL +.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG, CYREG_B0_UDB10_11_CTL +.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG, CYREG_B0_UDB10_11_CTL +.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG, CYREG_B0_UDB10_11_CTL +.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_MASK_REG, CYREG_B0_UDB10_11_MSK +.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG, CYREG_B0_UDB10_11_MSK +.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG, CYREG_B0_UDB10_11_MSK +.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG, CYREG_B0_UDB10_11_MSK +.set SCSI_Out_Bits_Sync_ctrl_reg__1__MASK, 0x02 +.set SCSI_Out_Bits_Sync_ctrl_reg__1__POS, 1 +.set SCSI_Out_Bits_Sync_ctrl_reg__2__MASK, 0x04 +.set SCSI_Out_Bits_Sync_ctrl_reg__2__POS, 2 +.set SCSI_Out_Bits_Sync_ctrl_reg__3__MASK, 0x08 +.set SCSI_Out_Bits_Sync_ctrl_reg__3__POS, 3 +.set SCSI_Out_Bits_Sync_ctrl_reg__4__MASK, 0x10 +.set SCSI_Out_Bits_Sync_ctrl_reg__4__POS, 4 +.set SCSI_Out_Bits_Sync_ctrl_reg__5__MASK, 0x20 +.set SCSI_Out_Bits_Sync_ctrl_reg__5__POS, 5 +.set SCSI_Out_Bits_Sync_ctrl_reg__6__MASK, 0x40 +.set SCSI_Out_Bits_Sync_ctrl_reg__6__POS, 6 +.set SCSI_Out_Bits_Sync_ctrl_reg__7__MASK, 0x80 +.set SCSI_Out_Bits_Sync_ctrl_reg__7__POS, 7 +.set SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_AUX_CTL_REG, CYREG_B0_UDB10_ACTL +.set SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_REG, CYREG_B0_UDB10_CTL +.set SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_ST_REG, CYREG_B0_UDB10_ST_CTL +.set SCSI_Out_Bits_Sync_ctrl_reg__COUNT_REG, CYREG_B0_UDB10_CTL +.set SCSI_Out_Bits_Sync_ctrl_reg__COUNT_ST_REG, CYREG_B0_UDB10_ST_CTL +.set SCSI_Out_Bits_Sync_ctrl_reg__MASK, 0xFF +.set SCSI_Out_Bits_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG, CYREG_B0_UDB10_MSK_ACTL +.set SCSI_Out_Bits_Sync_ctrl_reg__PERIOD_REG, CYREG_B0_UDB10_MSK +.set SCSI_Out_Bits_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG, CYREG_B0_UDB10_MSK_ACTL + /* USBFS_arb_int */ .set USBFS_arb_int__INTC_CLR_EN_REG, CYREG_NVIC_CLRENA0 .set USBFS_arb_int__INTC_CLR_PD_REG, CYREG_NVIC_CLRPEND0 @@ -33,6 +163,28 @@ .set USBFS_sof_int__INTC_SET_EN_REG, CYREG_NVIC_SETENA0 .set USBFS_sof_int__INTC_SET_PD_REG, CYREG_NVIC_SETPEND0 +/* SCSI_Out_Ctl */ +.set SCSI_Out_Ctl_Sync_ctrl_reg__0__MASK, 0x01 +.set SCSI_Out_Ctl_Sync_ctrl_reg__0__POS, 0 +.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG, CYREG_B1_UDB08_09_ACTL +.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG, CYREG_B1_UDB08_09_CTL +.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG, CYREG_B1_UDB08_09_CTL +.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG, CYREG_B1_UDB08_09_CTL +.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG, CYREG_B1_UDB08_09_CTL +.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG, CYREG_B1_UDB08_09_MSK +.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG, CYREG_B1_UDB08_09_MSK +.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG, CYREG_B1_UDB08_09_MSK +.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG, CYREG_B1_UDB08_09_MSK +.set SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG, CYREG_B1_UDB08_ACTL +.set SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_REG, CYREG_B1_UDB08_CTL +.set SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_ST_REG, CYREG_B1_UDB08_ST_CTL +.set SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_REG, CYREG_B1_UDB08_CTL +.set SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_ST_REG, CYREG_B1_UDB08_ST_CTL +.set SCSI_Out_Ctl_Sync_ctrl_reg__MASK, 0x01 +.set SCSI_Out_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG, CYREG_B1_UDB08_MSK_ACTL +.set SCSI_Out_Ctl_Sync_ctrl_reg__PERIOD_REG, CYREG_B1_UDB08_MSK +.set SCSI_Out_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG, CYREG_B1_UDB08_MSK_ACTL + /* SCSI_Out_DBx */ .set SCSI_Out_DBx__0__AG, CYREG_PRT5_AG .set SCSI_Out_DBx__0__AMUX, CYREG_PRT5_AMUX @@ -478,34 +630,23 @@ .set SCSI_RST_ISR__INTC_SET_PD_REG, CYREG_NVIC_SETPEND0 /* SDCard_BSPIM */ -.set SDCard_BSPIM_BitCounter_ST__16BIT_STATUS_AUX_CTL_REG, CYREG_B0_UDB06_07_ACTL -.set SDCard_BSPIM_BitCounter_ST__16BIT_STATUS_REG, CYREG_B0_UDB06_07_ST -.set SDCard_BSPIM_BitCounter_ST__MASK_REG, CYREG_B0_UDB06_MSK -.set SDCard_BSPIM_BitCounter_ST__MASK_ST_AUX_CTL_REG, CYREG_B0_UDB06_MSK_ACTL -.set SDCard_BSPIM_BitCounter_ST__PER_ST_AUX_CTL_REG, CYREG_B0_UDB06_MSK_ACTL -.set SDCard_BSPIM_BitCounter_ST__STATUS_AUX_CTL_REG, CYREG_B0_UDB06_ACTL -.set SDCard_BSPIM_BitCounter_ST__STATUS_CNT_REG, CYREG_B0_UDB06_ST_CTL -.set SDCard_BSPIM_BitCounter_ST__STATUS_CONTROL_REG, CYREG_B0_UDB06_ST_CTL -.set SDCard_BSPIM_BitCounter_ST__STATUS_REG, CYREG_B0_UDB06_ST -.set SDCard_BSPIM_BitCounter__16BIT_CONTROL_AUX_CTL_REG, CYREG_B0_UDB06_07_ACTL -.set SDCard_BSPIM_BitCounter__16BIT_CONTROL_CONTROL_REG, CYREG_B0_UDB06_07_CTL -.set SDCard_BSPIM_BitCounter__16BIT_CONTROL_COUNT_REG, CYREG_B0_UDB06_07_CTL -.set SDCard_BSPIM_BitCounter__16BIT_COUNT_CONTROL_REG, CYREG_B0_UDB06_07_CTL -.set SDCard_BSPIM_BitCounter__16BIT_COUNT_COUNT_REG, CYREG_B0_UDB06_07_CTL -.set SDCard_BSPIM_BitCounter__16BIT_MASK_MASK_REG, CYREG_B0_UDB06_07_MSK -.set SDCard_BSPIM_BitCounter__16BIT_MASK_PERIOD_REG, CYREG_B0_UDB06_07_MSK -.set SDCard_BSPIM_BitCounter__16BIT_PERIOD_MASK_REG, CYREG_B0_UDB06_07_MSK -.set SDCard_BSPIM_BitCounter__16BIT_PERIOD_PERIOD_REG, CYREG_B0_UDB06_07_MSK -.set SDCard_BSPIM_BitCounter__CONTROL_AUX_CTL_REG, CYREG_B0_UDB06_ACTL -.set SDCard_BSPIM_BitCounter__CONTROL_REG, CYREG_B0_UDB06_CTL -.set SDCard_BSPIM_BitCounter__CONTROL_ST_REG, CYREG_B0_UDB06_ST_CTL -.set SDCard_BSPIM_BitCounter__COUNT_REG, CYREG_B0_UDB06_CTL -.set SDCard_BSPIM_BitCounter__COUNT_ST_REG, CYREG_B0_UDB06_ST_CTL -.set SDCard_BSPIM_BitCounter__MASK_CTL_AUX_CTL_REG, CYREG_B0_UDB06_MSK_ACTL -.set SDCard_BSPIM_BitCounter__PERIOD_REG, CYREG_B0_UDB06_MSK -.set SDCard_BSPIM_BitCounter__PER_CTL_AUX_CTL_REG, CYREG_B0_UDB06_MSK_ACTL -.set SDCard_BSPIM_RxStsReg__16BIT_STATUS_AUX_CTL_REG, CYREG_B1_UDB06_07_ACTL -.set SDCard_BSPIM_RxStsReg__16BIT_STATUS_REG, CYREG_B1_UDB06_07_ST +.set SDCard_BSPIM_BitCounter_ST__MASK_REG, CYREG_B1_UDB11_MSK +.set SDCard_BSPIM_BitCounter_ST__MASK_ST_AUX_CTL_REG, CYREG_B1_UDB11_MSK_ACTL +.set SDCard_BSPIM_BitCounter_ST__PER_ST_AUX_CTL_REG, CYREG_B1_UDB11_MSK_ACTL +.set SDCard_BSPIM_BitCounter_ST__STATUS_AUX_CTL_REG, CYREG_B1_UDB11_ACTL +.set SDCard_BSPIM_BitCounter_ST__STATUS_CNT_REG, CYREG_B1_UDB11_ST_CTL +.set SDCard_BSPIM_BitCounter_ST__STATUS_CONTROL_REG, CYREG_B1_UDB11_ST_CTL +.set SDCard_BSPIM_BitCounter_ST__STATUS_REG, CYREG_B1_UDB11_ST +.set SDCard_BSPIM_BitCounter__CONTROL_AUX_CTL_REG, CYREG_B1_UDB11_ACTL +.set SDCard_BSPIM_BitCounter__CONTROL_REG, CYREG_B1_UDB11_CTL +.set SDCard_BSPIM_BitCounter__CONTROL_ST_REG, CYREG_B1_UDB11_ST_CTL +.set SDCard_BSPIM_BitCounter__COUNT_REG, CYREG_B1_UDB11_CTL +.set SDCard_BSPIM_BitCounter__COUNT_ST_REG, CYREG_B1_UDB11_ST_CTL +.set SDCard_BSPIM_BitCounter__MASK_CTL_AUX_CTL_REG, CYREG_B1_UDB11_MSK_ACTL +.set SDCard_BSPIM_BitCounter__PERIOD_REG, CYREG_B1_UDB11_MSK +.set SDCard_BSPIM_BitCounter__PER_CTL_AUX_CTL_REG, CYREG_B1_UDB11_MSK_ACTL +.set SDCard_BSPIM_RxStsReg__16BIT_STATUS_AUX_CTL_REG, CYREG_B1_UDB10_11_ACTL +.set SDCard_BSPIM_RxStsReg__16BIT_STATUS_REG, CYREG_B1_UDB10_11_ST .set SDCard_BSPIM_RxStsReg__4__MASK, 0x10 .set SDCard_BSPIM_RxStsReg__4__POS, 4 .set SDCard_BSPIM_RxStsReg__5__MASK, 0x20 @@ -513,13 +654,13 @@ .set SDCard_BSPIM_RxStsReg__6__MASK, 0x40 .set SDCard_BSPIM_RxStsReg__6__POS, 6 .set SDCard_BSPIM_RxStsReg__MASK, 0x70 -.set SDCard_BSPIM_RxStsReg__MASK_REG, CYREG_B1_UDB06_MSK -.set SDCard_BSPIM_RxStsReg__STATUS_AUX_CTL_REG, CYREG_B1_UDB06_ACTL -.set SDCard_BSPIM_RxStsReg__STATUS_REG, CYREG_B1_UDB06_ST +.set SDCard_BSPIM_RxStsReg__MASK_REG, CYREG_B1_UDB10_MSK +.set SDCard_BSPIM_RxStsReg__STATUS_AUX_CTL_REG, CYREG_B1_UDB10_ACTL +.set SDCard_BSPIM_RxStsReg__STATUS_REG, CYREG_B1_UDB10_ST .set SDCard_BSPIM_TxStsReg__0__MASK, 0x01 .set SDCard_BSPIM_TxStsReg__0__POS, 0 -.set SDCard_BSPIM_TxStsReg__16BIT_STATUS_AUX_CTL_REG, CYREG_B0_UDB05_06_ACTL -.set SDCard_BSPIM_TxStsReg__16BIT_STATUS_REG, CYREG_B0_UDB05_06_ST +.set SDCard_BSPIM_TxStsReg__16BIT_STATUS_AUX_CTL_REG, CYREG_B1_UDB08_09_ACTL +.set SDCard_BSPIM_TxStsReg__16BIT_STATUS_REG, CYREG_B1_UDB08_09_ST .set SDCard_BSPIM_TxStsReg__1__MASK, 0x02 .set SDCard_BSPIM_TxStsReg__1__POS, 1 .set SDCard_BSPIM_TxStsReg__2__MASK, 0x04 @@ -529,26 +670,30 @@ .set SDCard_BSPIM_TxStsReg__4__MASK, 0x10 .set SDCard_BSPIM_TxStsReg__4__POS, 4 .set SDCard_BSPIM_TxStsReg__MASK, 0x1F -.set SDCard_BSPIM_TxStsReg__MASK_REG, CYREG_B0_UDB05_MSK -.set SDCard_BSPIM_TxStsReg__STATUS_AUX_CTL_REG, CYREG_B0_UDB05_ACTL -.set SDCard_BSPIM_TxStsReg__STATUS_REG, CYREG_B0_UDB05_ST -.set SDCard_BSPIM_sR8_Dp_u0__16BIT_A0_REG, CYREG_B1_UDB06_07_A0 -.set SDCard_BSPIM_sR8_Dp_u0__16BIT_A1_REG, CYREG_B1_UDB06_07_A1 -.set SDCard_BSPIM_sR8_Dp_u0__16BIT_D0_REG, CYREG_B1_UDB06_07_D0 -.set SDCard_BSPIM_sR8_Dp_u0__16BIT_D1_REG, CYREG_B1_UDB06_07_D1 -.set SDCard_BSPIM_sR8_Dp_u0__16BIT_DP_AUX_CTL_REG, CYREG_B1_UDB06_07_ACTL -.set SDCard_BSPIM_sR8_Dp_u0__16BIT_F0_REG, CYREG_B1_UDB06_07_F0 -.set SDCard_BSPIM_sR8_Dp_u0__16BIT_F1_REG, CYREG_B1_UDB06_07_F1 -.set SDCard_BSPIM_sR8_Dp_u0__A0_A1_REG, CYREG_B1_UDB06_A0_A1 -.set SDCard_BSPIM_sR8_Dp_u0__A0_REG, CYREG_B1_UDB06_A0 -.set SDCard_BSPIM_sR8_Dp_u0__A1_REG, CYREG_B1_UDB06_A1 -.set SDCard_BSPIM_sR8_Dp_u0__D0_D1_REG, CYREG_B1_UDB06_D0_D1 -.set SDCard_BSPIM_sR8_Dp_u0__D0_REG, CYREG_B1_UDB06_D0 -.set SDCard_BSPIM_sR8_Dp_u0__D1_REG, CYREG_B1_UDB06_D1 -.set SDCard_BSPIM_sR8_Dp_u0__DP_AUX_CTL_REG, CYREG_B1_UDB06_ACTL -.set SDCard_BSPIM_sR8_Dp_u0__F0_F1_REG, CYREG_B1_UDB06_F0_F1 -.set SDCard_BSPIM_sR8_Dp_u0__F0_REG, CYREG_B1_UDB06_F0 -.set SDCard_BSPIM_sR8_Dp_u0__F1_REG, CYREG_B1_UDB06_F1 +.set SDCard_BSPIM_TxStsReg__MASK_REG, CYREG_B1_UDB08_MSK +.set SDCard_BSPIM_TxStsReg__MASK_ST_AUX_CTL_REG, CYREG_B1_UDB08_MSK_ACTL +.set SDCard_BSPIM_TxStsReg__PER_ST_AUX_CTL_REG, CYREG_B1_UDB08_MSK_ACTL +.set SDCard_BSPIM_TxStsReg__STATUS_AUX_CTL_REG, CYREG_B1_UDB08_ACTL +.set SDCard_BSPIM_TxStsReg__STATUS_CNT_REG, CYREG_B1_UDB08_ST_CTL +.set SDCard_BSPIM_TxStsReg__STATUS_CONTROL_REG, CYREG_B1_UDB08_ST_CTL +.set SDCard_BSPIM_TxStsReg__STATUS_REG, CYREG_B1_UDB08_ST +.set SDCard_BSPIM_sR8_Dp_u0__16BIT_A0_REG, CYREG_B0_UDB08_09_A0 +.set SDCard_BSPIM_sR8_Dp_u0__16BIT_A1_REG, CYREG_B0_UDB08_09_A1 +.set SDCard_BSPIM_sR8_Dp_u0__16BIT_D0_REG, CYREG_B0_UDB08_09_D0 +.set SDCard_BSPIM_sR8_Dp_u0__16BIT_D1_REG, CYREG_B0_UDB08_09_D1 +.set SDCard_BSPIM_sR8_Dp_u0__16BIT_DP_AUX_CTL_REG, CYREG_B0_UDB08_09_ACTL +.set SDCard_BSPIM_sR8_Dp_u0__16BIT_F0_REG, CYREG_B0_UDB08_09_F0 +.set SDCard_BSPIM_sR8_Dp_u0__16BIT_F1_REG, CYREG_B0_UDB08_09_F1 +.set SDCard_BSPIM_sR8_Dp_u0__A0_A1_REG, CYREG_B0_UDB08_A0_A1 +.set SDCard_BSPIM_sR8_Dp_u0__A0_REG, CYREG_B0_UDB08_A0 +.set SDCard_BSPIM_sR8_Dp_u0__A1_REG, CYREG_B0_UDB08_A1 +.set SDCard_BSPIM_sR8_Dp_u0__D0_D1_REG, CYREG_B0_UDB08_D0_D1 +.set SDCard_BSPIM_sR8_Dp_u0__D0_REG, CYREG_B0_UDB08_D0 +.set SDCard_BSPIM_sR8_Dp_u0__D1_REG, CYREG_B0_UDB08_D1 +.set SDCard_BSPIM_sR8_Dp_u0__DP_AUX_CTL_REG, CYREG_B0_UDB08_ACTL +.set SDCard_BSPIM_sR8_Dp_u0__F0_F1_REG, CYREG_B0_UDB08_F0_F1 +.set SDCard_BSPIM_sR8_Dp_u0__F0_REG, CYREG_B0_UDB08_F0 +.set SDCard_BSPIM_sR8_Dp_u0__F1_REG, CYREG_B0_UDB08_F1 /* USBFS_dp_int */ .set USBFS_dp_int__INTC_CLR_EN_REG, CYREG_NVIC_CLRENA0 @@ -560,19 +705,6 @@ .set USBFS_dp_int__INTC_SET_EN_REG, CYREG_NVIC_SETENA0 .set USBFS_dp_int__INTC_SET_PD_REG, CYREG_NVIC_SETPEND0 -/* SCSI_CTL_IO */ -.set SCSI_CTL_IO_Sync_ctrl_reg__0__MASK, 0x01 -.set SCSI_CTL_IO_Sync_ctrl_reg__0__POS, 0 -.set SCSI_CTL_IO_Sync_ctrl_reg__CONTROL_AUX_CTL_REG, CYREG_B0_UDB15_ACTL -.set SCSI_CTL_IO_Sync_ctrl_reg__CONTROL_REG, CYREG_B0_UDB15_CTL -.set SCSI_CTL_IO_Sync_ctrl_reg__CONTROL_ST_REG, CYREG_B0_UDB15_ST_CTL -.set SCSI_CTL_IO_Sync_ctrl_reg__COUNT_REG, CYREG_B0_UDB15_CTL -.set SCSI_CTL_IO_Sync_ctrl_reg__COUNT_ST_REG, CYREG_B0_UDB15_ST_CTL -.set SCSI_CTL_IO_Sync_ctrl_reg__MASK, 0x01 -.set SCSI_CTL_IO_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG, CYREG_B0_UDB15_MSK_ACTL -.set SCSI_CTL_IO_Sync_ctrl_reg__PERIOD_REG, CYREG_B0_UDB15_MSK -.set SCSI_CTL_IO_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG, CYREG_B0_UDB15_MSK_ACTL - /* SCSI_In_DBx */ .set SCSI_In_DBx__0__AG, CYREG_PRT5_AG .set SCSI_In_DBx__0__AMUX, CYREG_PRT5_AMUX @@ -1003,6 +1135,30 @@ .set SCSI_In_DBx__DB7__SHIFT, 4 .set SCSI_In_DBx__DB7__SLW, CYREG_PRT2_SLW +/* SCSI_RX_DMA */ +.set SCSI_RX_DMA__DRQ_CTL, CYREG_IDMUX_DRQ_CTL0 +.set SCSI_RX_DMA__DRQ_NUMBER, 0 +.set SCSI_RX_DMA__NUMBEROF_TDS, 0 +.set SCSI_RX_DMA__PRIORITY, 2 +.set SCSI_RX_DMA__TERMIN_EN, 0 +.set SCSI_RX_DMA__TERMIN_SEL, 0 +.set SCSI_RX_DMA__TERMOUT0_EN, 1 +.set SCSI_RX_DMA__TERMOUT0_SEL, 0 +.set SCSI_RX_DMA__TERMOUT1_EN, 0 +.set SCSI_RX_DMA__TERMOUT1_SEL, 0 + +/* SCSI_TX_DMA */ +.set SCSI_TX_DMA__DRQ_CTL, CYREG_IDMUX_DRQ_CTL0 +.set SCSI_TX_DMA__DRQ_NUMBER, 1 +.set SCSI_TX_DMA__NUMBEROF_TDS, 0 +.set SCSI_TX_DMA__PRIORITY, 2 +.set SCSI_TX_DMA__TERMIN_EN, 0 +.set SCSI_TX_DMA__TERMIN_SEL, 0 +.set SCSI_TX_DMA__TERMOUT0_EN, 1 +.set SCSI_TX_DMA__TERMOUT0_SEL, 1 +.set SCSI_TX_DMA__TERMOUT1_EN, 0 +.set SCSI_TX_DMA__TERMOUT1_SEL, 0 + /* SD_Data_Clk */ .set SD_Data_Clk__CFG0, CYREG_CLKDIST_DCFG0_CFG0 .set SD_Data_Clk__CFG1, CYREG_CLKDIST_DCFG0_CFG1 @@ -1014,16 +1170,16 @@ .set SD_Data_Clk__PM_STBY_CFG, CYREG_PM_STBY_CFG2 .set SD_Data_Clk__PM_STBY_MSK, 0x01 -/* SD_Init_Clk */ -.set SD_Init_Clk__CFG0, CYREG_CLKDIST_DCFG1_CFG0 -.set SD_Init_Clk__CFG1, CYREG_CLKDIST_DCFG1_CFG1 -.set SD_Init_Clk__CFG2, CYREG_CLKDIST_DCFG1_CFG2 -.set SD_Init_Clk__CFG2_SRC_SEL_MASK, 0x07 -.set SD_Init_Clk__INDEX, 0x01 -.set SD_Init_Clk__PM_ACT_CFG, CYREG_PM_ACT_CFG2 -.set SD_Init_Clk__PM_ACT_MSK, 0x02 -.set SD_Init_Clk__PM_STBY_CFG, CYREG_PM_STBY_CFG2 -.set SD_Init_Clk__PM_STBY_MSK, 0x02 +/* timer_clock */ +.set timer_clock__CFG0, CYREG_CLKDIST_DCFG1_CFG0 +.set timer_clock__CFG1, CYREG_CLKDIST_DCFG1_CFG1 +.set timer_clock__CFG2, CYREG_CLKDIST_DCFG1_CFG2 +.set timer_clock__CFG2_SRC_SEL_MASK, 0x07 +.set timer_clock__INDEX, 0x01 +.set timer_clock__PM_ACT_CFG, CYREG_PM_ACT_CFG2 +.set timer_clock__PM_ACT_MSK, 0x02 +.set timer_clock__PM_STBY_CFG, CYREG_PM_STBY_CFG2 +.set timer_clock__PM_STBY_MSK, 0x02 /* scsiTarget */ .set scsiTarget_StatusReg__0__MASK, 0x01 @@ -1036,77 +1192,57 @@ .set scsiTarget_StatusReg__2__POS, 2 .set scsiTarget_StatusReg__3__MASK, 0x08 .set scsiTarget_StatusReg__3__POS, 3 -.set scsiTarget_StatusReg__MASK, 0x0F +.set scsiTarget_StatusReg__4__MASK, 0x10 +.set scsiTarget_StatusReg__4__POS, 4 +.set scsiTarget_StatusReg__MASK, 0x1F .set scsiTarget_StatusReg__MASK_REG, CYREG_B0_UDB13_MSK .set scsiTarget_StatusReg__STATUS_AUX_CTL_REG, CYREG_B0_UDB13_ACTL .set scsiTarget_StatusReg__STATUS_REG, CYREG_B0_UDB13_ST -.set scsiTarget_datapath_PI__16BIT_STATUS_AUX_CTL_REG, CYREG_B0_UDB10_11_ACTL -.set scsiTarget_datapath_PI__16BIT_STATUS_REG, CYREG_B0_UDB10_11_ST -.set scsiTarget_datapath_PI__MASK_REG, CYREG_B0_UDB10_MSK -.set scsiTarget_datapath_PI__MASK_ST_AUX_CTL_REG, CYREG_B0_UDB10_MSK_ACTL -.set scsiTarget_datapath_PI__PER_ST_AUX_CTL_REG, CYREG_B0_UDB10_MSK_ACTL -.set scsiTarget_datapath_PI__STATUS_AUX_CTL_REG, CYREG_B0_UDB10_ACTL -.set scsiTarget_datapath_PI__STATUS_CNT_REG, CYREG_B0_UDB10_ST_CTL -.set scsiTarget_datapath_PI__STATUS_CONTROL_REG, CYREG_B0_UDB10_ST_CTL -.set scsiTarget_datapath_PI__STATUS_REG, CYREG_B0_UDB10_ST -.set scsiTarget_datapath_PO__16BIT_CONTROL_AUX_CTL_REG, CYREG_B0_UDB10_11_ACTL -.set scsiTarget_datapath_PO__16BIT_CONTROL_CONTROL_REG, CYREG_B0_UDB10_11_CTL -.set scsiTarget_datapath_PO__16BIT_CONTROL_COUNT_REG, CYREG_B0_UDB10_11_CTL -.set scsiTarget_datapath_PO__16BIT_COUNT_CONTROL_REG, CYREG_B0_UDB10_11_CTL -.set scsiTarget_datapath_PO__16BIT_COUNT_COUNT_REG, CYREG_B0_UDB10_11_CTL -.set scsiTarget_datapath_PO__16BIT_MASK_MASK_REG, CYREG_B0_UDB10_11_MSK -.set scsiTarget_datapath_PO__16BIT_MASK_PERIOD_REG, CYREG_B0_UDB10_11_MSK -.set scsiTarget_datapath_PO__16BIT_PERIOD_MASK_REG, CYREG_B0_UDB10_11_MSK -.set scsiTarget_datapath_PO__16BIT_PERIOD_PERIOD_REG, CYREG_B0_UDB10_11_MSK -.set scsiTarget_datapath_PO__CONTROL_AUX_CTL_REG, CYREG_B0_UDB10_ACTL -.set scsiTarget_datapath_PO__CONTROL_REG, CYREG_B0_UDB10_CTL -.set scsiTarget_datapath_PO__CONTROL_ST_REG, CYREG_B0_UDB10_ST_CTL -.set scsiTarget_datapath_PO__COUNT_REG, CYREG_B0_UDB10_CTL -.set scsiTarget_datapath_PO__COUNT_ST_REG, CYREG_B0_UDB10_ST_CTL -.set scsiTarget_datapath_PO__MASK_CTL_AUX_CTL_REG, CYREG_B0_UDB10_MSK_ACTL -.set scsiTarget_datapath_PO__PERIOD_REG, CYREG_B0_UDB10_MSK -.set scsiTarget_datapath_PO__PER_CTL_AUX_CTL_REG, CYREG_B0_UDB10_MSK_ACTL -.set scsiTarget_datapath__16BIT_A0_REG, CYREG_B0_UDB10_11_A0 -.set scsiTarget_datapath__16BIT_A1_REG, CYREG_B0_UDB10_11_A1 -.set scsiTarget_datapath__16BIT_D0_REG, CYREG_B0_UDB10_11_D0 -.set scsiTarget_datapath__16BIT_D1_REG, CYREG_B0_UDB10_11_D1 -.set scsiTarget_datapath__16BIT_DP_AUX_CTL_REG, CYREG_B0_UDB10_11_ACTL -.set scsiTarget_datapath__16BIT_F0_REG, CYREG_B0_UDB10_11_F0 -.set scsiTarget_datapath__16BIT_F1_REG, CYREG_B0_UDB10_11_F1 -.set scsiTarget_datapath__A0_A1_REG, CYREG_B0_UDB10_A0_A1 -.set scsiTarget_datapath__A0_REG, CYREG_B0_UDB10_A0 -.set scsiTarget_datapath__A1_REG, CYREG_B0_UDB10_A1 -.set scsiTarget_datapath__D0_D1_REG, CYREG_B0_UDB10_D0_D1 -.set scsiTarget_datapath__D0_REG, CYREG_B0_UDB10_D0 -.set scsiTarget_datapath__D1_REG, CYREG_B0_UDB10_D1 -.set scsiTarget_datapath__DP_AUX_CTL_REG, CYREG_B0_UDB10_ACTL -.set scsiTarget_datapath__F0_F1_REG, CYREG_B0_UDB10_F0_F1 -.set scsiTarget_datapath__F0_REG, CYREG_B0_UDB10_F0 -.set scsiTarget_datapath__F1_REG, CYREG_B0_UDB10_F1 -.set scsiTarget_datapath__MSK_DP_AUX_CTL_REG, CYREG_B0_UDB10_MSK_ACTL -.set scsiTarget_datapath__PER_DP_AUX_CTL_REG, CYREG_B0_UDB10_MSK_ACTL - -/* SD_Clk_Ctl */ -.set SD_Clk_Ctl_Sync_ctrl_reg__0__MASK, 0x01 -.set SD_Clk_Ctl_Sync_ctrl_reg__0__POS, 0 -.set SD_Clk_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG, CYREG_B0_UDB04_05_ACTL -.set SD_Clk_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG, CYREG_B0_UDB04_05_CTL -.set SD_Clk_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG, CYREG_B0_UDB04_05_CTL -.set SD_Clk_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG, CYREG_B0_UDB04_05_CTL -.set SD_Clk_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG, CYREG_B0_UDB04_05_CTL -.set SD_Clk_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG, CYREG_B0_UDB04_05_MSK -.set SD_Clk_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG, CYREG_B0_UDB04_05_MSK -.set SD_Clk_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG, CYREG_B0_UDB04_05_MSK -.set SD_Clk_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG, CYREG_B0_UDB04_05_MSK -.set SD_Clk_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG, CYREG_B0_UDB04_ACTL -.set SD_Clk_Ctl_Sync_ctrl_reg__CONTROL_REG, CYREG_B0_UDB04_CTL -.set SD_Clk_Ctl_Sync_ctrl_reg__CONTROL_ST_REG, CYREG_B0_UDB04_ST_CTL -.set SD_Clk_Ctl_Sync_ctrl_reg__COUNT_REG, CYREG_B0_UDB04_CTL -.set SD_Clk_Ctl_Sync_ctrl_reg__COUNT_ST_REG, CYREG_B0_UDB04_ST_CTL -.set SD_Clk_Ctl_Sync_ctrl_reg__MASK, 0x01 -.set SD_Clk_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG, CYREG_B0_UDB04_MSK_ACTL -.set SD_Clk_Ctl_Sync_ctrl_reg__PERIOD_REG, CYREG_B0_UDB04_MSK -.set SD_Clk_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG, CYREG_B0_UDB04_MSK_ACTL +.set scsiTarget_datapath_PI__16BIT_STATUS_AUX_CTL_REG, CYREG_B0_UDB14_15_ACTL +.set scsiTarget_datapath_PI__16BIT_STATUS_REG, CYREG_B0_UDB14_15_ST +.set scsiTarget_datapath_PI__MASK_REG, CYREG_B0_UDB14_MSK +.set scsiTarget_datapath_PI__MASK_ST_AUX_CTL_REG, CYREG_B0_UDB14_MSK_ACTL +.set scsiTarget_datapath_PI__PER_ST_AUX_CTL_REG, CYREG_B0_UDB14_MSK_ACTL +.set scsiTarget_datapath_PI__STATUS_AUX_CTL_REG, CYREG_B0_UDB14_ACTL +.set scsiTarget_datapath_PI__STATUS_CNT_REG, CYREG_B0_UDB14_ST_CTL +.set scsiTarget_datapath_PI__STATUS_CONTROL_REG, CYREG_B0_UDB14_ST_CTL +.set scsiTarget_datapath_PI__STATUS_REG, CYREG_B0_UDB14_ST +.set scsiTarget_datapath_PO__16BIT_CONTROL_AUX_CTL_REG, CYREG_B0_UDB14_15_ACTL +.set scsiTarget_datapath_PO__16BIT_CONTROL_CONTROL_REG, CYREG_B0_UDB14_15_CTL +.set scsiTarget_datapath_PO__16BIT_CONTROL_COUNT_REG, CYREG_B0_UDB14_15_CTL +.set scsiTarget_datapath_PO__16BIT_COUNT_CONTROL_REG, CYREG_B0_UDB14_15_CTL +.set scsiTarget_datapath_PO__16BIT_COUNT_COUNT_REG, CYREG_B0_UDB14_15_CTL +.set scsiTarget_datapath_PO__16BIT_MASK_MASK_REG, CYREG_B0_UDB14_15_MSK +.set scsiTarget_datapath_PO__16BIT_MASK_PERIOD_REG, CYREG_B0_UDB14_15_MSK +.set scsiTarget_datapath_PO__16BIT_PERIOD_MASK_REG, CYREG_B0_UDB14_15_MSK +.set scsiTarget_datapath_PO__16BIT_PERIOD_PERIOD_REG, CYREG_B0_UDB14_15_MSK +.set scsiTarget_datapath_PO__CONTROL_AUX_CTL_REG, CYREG_B0_UDB14_ACTL +.set scsiTarget_datapath_PO__CONTROL_REG, CYREG_B0_UDB14_CTL +.set scsiTarget_datapath_PO__CONTROL_ST_REG, CYREG_B0_UDB14_ST_CTL +.set scsiTarget_datapath_PO__COUNT_REG, CYREG_B0_UDB14_CTL +.set scsiTarget_datapath_PO__COUNT_ST_REG, CYREG_B0_UDB14_ST_CTL +.set scsiTarget_datapath_PO__MASK_CTL_AUX_CTL_REG, CYREG_B0_UDB14_MSK_ACTL +.set scsiTarget_datapath_PO__PERIOD_REG, CYREG_B0_UDB14_MSK +.set scsiTarget_datapath_PO__PER_CTL_AUX_CTL_REG, CYREG_B0_UDB14_MSK_ACTL +.set scsiTarget_datapath__16BIT_A0_REG, CYREG_B0_UDB14_15_A0 +.set scsiTarget_datapath__16BIT_A1_REG, CYREG_B0_UDB14_15_A1 +.set scsiTarget_datapath__16BIT_D0_REG, CYREG_B0_UDB14_15_D0 +.set scsiTarget_datapath__16BIT_D1_REG, CYREG_B0_UDB14_15_D1 +.set scsiTarget_datapath__16BIT_DP_AUX_CTL_REG, CYREG_B0_UDB14_15_ACTL +.set scsiTarget_datapath__16BIT_F0_REG, CYREG_B0_UDB14_15_F0 +.set scsiTarget_datapath__16BIT_F1_REG, CYREG_B0_UDB14_15_F1 +.set scsiTarget_datapath__A0_A1_REG, CYREG_B0_UDB14_A0_A1 +.set scsiTarget_datapath__A0_REG, CYREG_B0_UDB14_A0 +.set scsiTarget_datapath__A1_REG, CYREG_B0_UDB14_A1 +.set scsiTarget_datapath__D0_D1_REG, CYREG_B0_UDB14_D0_D1 +.set scsiTarget_datapath__D0_REG, CYREG_B0_UDB14_D0 +.set scsiTarget_datapath__D1_REG, CYREG_B0_UDB14_D1 +.set scsiTarget_datapath__DP_AUX_CTL_REG, CYREG_B0_UDB14_ACTL +.set scsiTarget_datapath__F0_F1_REG, CYREG_B0_UDB14_F0_F1 +.set scsiTarget_datapath__F0_REG, CYREG_B0_UDB14_F0 +.set scsiTarget_datapath__F1_REG, CYREG_B0_UDB14_F1 +.set scsiTarget_datapath__MSK_DP_AUX_CTL_REG, CYREG_B0_UDB14_MSK_ACTL +.set scsiTarget_datapath__PER_DP_AUX_CTL_REG, CYREG_B0_UDB14_MSK_ACTL /* USBFS_ep_0 */ .set USBFS_ep_0__INTC_CLR_EN_REG, CYREG_NVIC_CLRENA0 @@ -1121,23 +1257,67 @@ /* USBFS_ep_1 */ .set USBFS_ep_1__INTC_CLR_EN_REG, CYREG_NVIC_CLRENA0 .set USBFS_ep_1__INTC_CLR_PD_REG, CYREG_NVIC_CLRPEND0 -.set USBFS_ep_1__INTC_MASK, 0x01 -.set USBFS_ep_1__INTC_NUMBER, 0 +.set USBFS_ep_1__INTC_MASK, 0x20 +.set USBFS_ep_1__INTC_NUMBER, 5 .set USBFS_ep_1__INTC_PRIOR_NUM, 7 -.set USBFS_ep_1__INTC_PRIOR_REG, CYREG_NVIC_PRI_0 +.set USBFS_ep_1__INTC_PRIOR_REG, CYREG_NVIC_PRI_5 .set USBFS_ep_1__INTC_SET_EN_REG, CYREG_NVIC_SETENA0 .set USBFS_ep_1__INTC_SET_PD_REG, CYREG_NVIC_SETPEND0 /* USBFS_ep_2 */ .set USBFS_ep_2__INTC_CLR_EN_REG, CYREG_NVIC_CLRENA0 .set USBFS_ep_2__INTC_CLR_PD_REG, CYREG_NVIC_CLRPEND0 -.set USBFS_ep_2__INTC_MASK, 0x02 -.set USBFS_ep_2__INTC_NUMBER, 1 +.set USBFS_ep_2__INTC_MASK, 0x40 +.set USBFS_ep_2__INTC_NUMBER, 6 .set USBFS_ep_2__INTC_PRIOR_NUM, 7 -.set USBFS_ep_2__INTC_PRIOR_REG, CYREG_NVIC_PRI_1 +.set USBFS_ep_2__INTC_PRIOR_REG, CYREG_NVIC_PRI_6 .set USBFS_ep_2__INTC_SET_EN_REG, CYREG_NVIC_SETENA0 .set USBFS_ep_2__INTC_SET_PD_REG, CYREG_NVIC_SETPEND0 +/* USBFS_ep_3 */ +.set USBFS_ep_3__INTC_CLR_EN_REG, CYREG_NVIC_CLRENA0 +.set USBFS_ep_3__INTC_CLR_PD_REG, CYREG_NVIC_CLRPEND0 +.set USBFS_ep_3__INTC_MASK, 0x80 +.set USBFS_ep_3__INTC_NUMBER, 7 +.set USBFS_ep_3__INTC_PRIOR_NUM, 7 +.set USBFS_ep_3__INTC_PRIOR_REG, CYREG_NVIC_PRI_7 +.set USBFS_ep_3__INTC_SET_EN_REG, CYREG_NVIC_SETENA0 +.set USBFS_ep_3__INTC_SET_PD_REG, CYREG_NVIC_SETPEND0 + +/* USBFS_ep_4 */ +.set USBFS_ep_4__INTC_CLR_EN_REG, CYREG_NVIC_CLRENA0 +.set USBFS_ep_4__INTC_CLR_PD_REG, CYREG_NVIC_CLRPEND0 +.set USBFS_ep_4__INTC_MASK, 0x200 +.set USBFS_ep_4__INTC_NUMBER, 9 +.set USBFS_ep_4__INTC_PRIOR_NUM, 7 +.set USBFS_ep_4__INTC_PRIOR_REG, CYREG_NVIC_PRI_9 +.set USBFS_ep_4__INTC_SET_EN_REG, CYREG_NVIC_SETENA0 +.set USBFS_ep_4__INTC_SET_PD_REG, CYREG_NVIC_SETPEND0 + +/* SD_RX_DMA */ +.set SD_RX_DMA__DRQ_CTL, CYREG_IDMUX_DRQ_CTL0 +.set SD_RX_DMA__DRQ_NUMBER, 2 +.set SD_RX_DMA__NUMBEROF_TDS, 0 +.set SD_RX_DMA__PRIORITY, 1 +.set SD_RX_DMA__TERMIN_EN, 0 +.set SD_RX_DMA__TERMIN_SEL, 0 +.set SD_RX_DMA__TERMOUT0_EN, 1 +.set SD_RX_DMA__TERMOUT0_SEL, 2 +.set SD_RX_DMA__TERMOUT1_EN, 0 +.set SD_RX_DMA__TERMOUT1_SEL, 0 + +/* SD_TX_DMA */ +.set SD_TX_DMA__DRQ_CTL, CYREG_IDMUX_DRQ_CTL0 +.set SD_TX_DMA__DRQ_NUMBER, 3 +.set SD_TX_DMA__NUMBEROF_TDS, 0 +.set SD_TX_DMA__PRIORITY, 2 +.set SD_TX_DMA__TERMIN_EN, 0 +.set SD_TX_DMA__TERMIN_SEL, 0 +.set SD_TX_DMA__TERMOUT0_EN, 1 +.set SD_TX_DMA__TERMOUT0_SEL, 3 +.set SD_TX_DMA__TERMOUT1_EN, 0 +.set SD_TX_DMA__TERMOUT1_SEL, 0 + /* USBFS_USB */ .set USBFS_USB__ARB_CFG, CYREG_USB_ARB_CFG .set USBFS_USB__ARB_EP1_CFG, CYREG_USB_ARB_EP1_CFG @@ -1652,33 +1832,33 @@ .set SCSI_Out__BSY__PS, CYREG_PRT6_PS .set SCSI_Out__BSY__SHIFT, 1 .set SCSI_Out__BSY__SLW, CYREG_PRT6_SLW -.set SCSI_Out__CD__AG, CYREG_PRT0_AG -.set SCSI_Out__CD__AMUX, CYREG_PRT0_AMUX -.set SCSI_Out__CD__BIE, CYREG_PRT0_BIE -.set SCSI_Out__CD__BIT_MASK, CYREG_PRT0_BIT_MASK -.set SCSI_Out__CD__BYP, CYREG_PRT0_BYP -.set SCSI_Out__CD__CTL, CYREG_PRT0_CTL -.set SCSI_Out__CD__DM0, CYREG_PRT0_DM0 -.set SCSI_Out__CD__DM1, CYREG_PRT0_DM1 -.set SCSI_Out__CD__DM2, CYREG_PRT0_DM2 -.set SCSI_Out__CD__DR, CYREG_PRT0_DR -.set SCSI_Out__CD__INP_DIS, CYREG_PRT0_INP_DIS -.set SCSI_Out__CD__LCD_COM_SEG, CYREG_PRT0_LCD_COM_SEG -.set SCSI_Out__CD__LCD_EN, CYREG_PRT0_LCD_EN -.set SCSI_Out__CD__MASK, 0x40 -.set SCSI_Out__CD__PC, CYREG_PRT0_PC6 -.set SCSI_Out__CD__PORT, 0 -.set SCSI_Out__CD__PRT, CYREG_PRT0_PRT -.set SCSI_Out__CD__PRTDSI__CAPS_SEL, CYREG_PRT0_CAPS_SEL -.set SCSI_Out__CD__PRTDSI__DBL_SYNC_IN, CYREG_PRT0_DBL_SYNC_IN -.set SCSI_Out__CD__PRTDSI__OE_SEL0, CYREG_PRT0_OE_SEL0 -.set SCSI_Out__CD__PRTDSI__OE_SEL1, CYREG_PRT0_OE_SEL1 -.set SCSI_Out__CD__PRTDSI__OUT_SEL0, CYREG_PRT0_OUT_SEL0 -.set SCSI_Out__CD__PRTDSI__OUT_SEL1, CYREG_PRT0_OUT_SEL1 -.set SCSI_Out__CD__PRTDSI__SYNC_OUT, CYREG_PRT0_SYNC_OUT -.set SCSI_Out__CD__PS, CYREG_PRT0_PS -.set SCSI_Out__CD__SHIFT, 6 -.set SCSI_Out__CD__SLW, CYREG_PRT0_SLW +.set SCSI_Out__CD_raw__AG, CYREG_PRT0_AG +.set SCSI_Out__CD_raw__AMUX, CYREG_PRT0_AMUX +.set SCSI_Out__CD_raw__BIE, CYREG_PRT0_BIE +.set SCSI_Out__CD_raw__BIT_MASK, CYREG_PRT0_BIT_MASK +.set SCSI_Out__CD_raw__BYP, CYREG_PRT0_BYP +.set SCSI_Out__CD_raw__CTL, CYREG_PRT0_CTL +.set SCSI_Out__CD_raw__DM0, CYREG_PRT0_DM0 +.set SCSI_Out__CD_raw__DM1, CYREG_PRT0_DM1 +.set SCSI_Out__CD_raw__DM2, CYREG_PRT0_DM2 +.set SCSI_Out__CD_raw__DR, CYREG_PRT0_DR +.set SCSI_Out__CD_raw__INP_DIS, CYREG_PRT0_INP_DIS +.set SCSI_Out__CD_raw__LCD_COM_SEG, CYREG_PRT0_LCD_COM_SEG +.set SCSI_Out__CD_raw__LCD_EN, CYREG_PRT0_LCD_EN +.set SCSI_Out__CD_raw__MASK, 0x40 +.set SCSI_Out__CD_raw__PC, CYREG_PRT0_PC6 +.set SCSI_Out__CD_raw__PORT, 0 +.set SCSI_Out__CD_raw__PRT, CYREG_PRT0_PRT +.set SCSI_Out__CD_raw__PRTDSI__CAPS_SEL, CYREG_PRT0_CAPS_SEL +.set SCSI_Out__CD_raw__PRTDSI__DBL_SYNC_IN, CYREG_PRT0_DBL_SYNC_IN +.set SCSI_Out__CD_raw__PRTDSI__OE_SEL0, CYREG_PRT0_OE_SEL0 +.set SCSI_Out__CD_raw__PRTDSI__OE_SEL1, CYREG_PRT0_OE_SEL1 +.set SCSI_Out__CD_raw__PRTDSI__OUT_SEL0, CYREG_PRT0_OUT_SEL0 +.set SCSI_Out__CD_raw__PRTDSI__OUT_SEL1, CYREG_PRT0_OUT_SEL1 +.set SCSI_Out__CD_raw__PRTDSI__SYNC_OUT, CYREG_PRT0_SYNC_OUT +.set SCSI_Out__CD_raw__PS, CYREG_PRT0_PS +.set SCSI_Out__CD_raw__SHIFT, 6 +.set SCSI_Out__CD_raw__SLW, CYREG_PRT0_SLW .set SCSI_Out__DBP_raw__AG, CYREG_PRT15_AG .set SCSI_Out__DBP_raw__AMUX, CYREG_PRT15_AMUX .set SCSI_Out__DBP_raw__BIE, CYREG_PRT15_BIE @@ -1733,33 +1913,33 @@ .set SCSI_Out__IO_raw__PS, CYREG_PRT0_PS .set SCSI_Out__IO_raw__SHIFT, 2 .set SCSI_Out__IO_raw__SLW, CYREG_PRT0_SLW -.set SCSI_Out__MSG__AG, CYREG_PRT4_AG -.set SCSI_Out__MSG__AMUX, CYREG_PRT4_AMUX -.set SCSI_Out__MSG__BIE, CYREG_PRT4_BIE -.set SCSI_Out__MSG__BIT_MASK, CYREG_PRT4_BIT_MASK -.set SCSI_Out__MSG__BYP, CYREG_PRT4_BYP -.set SCSI_Out__MSG__CTL, CYREG_PRT4_CTL -.set SCSI_Out__MSG__DM0, CYREG_PRT4_DM0 -.set SCSI_Out__MSG__DM1, CYREG_PRT4_DM1 -.set SCSI_Out__MSG__DM2, CYREG_PRT4_DM2 -.set SCSI_Out__MSG__DR, CYREG_PRT4_DR -.set SCSI_Out__MSG__INP_DIS, CYREG_PRT4_INP_DIS -.set SCSI_Out__MSG__LCD_COM_SEG, CYREG_PRT4_LCD_COM_SEG -.set SCSI_Out__MSG__LCD_EN, CYREG_PRT4_LCD_EN -.set SCSI_Out__MSG__MASK, 0x10 -.set SCSI_Out__MSG__PC, CYREG_PRT4_PC4 -.set SCSI_Out__MSG__PORT, 4 -.set SCSI_Out__MSG__PRT, CYREG_PRT4_PRT -.set SCSI_Out__MSG__PRTDSI__CAPS_SEL, CYREG_PRT4_CAPS_SEL -.set SCSI_Out__MSG__PRTDSI__DBL_SYNC_IN, CYREG_PRT4_DBL_SYNC_IN -.set SCSI_Out__MSG__PRTDSI__OE_SEL0, CYREG_PRT4_OE_SEL0 -.set SCSI_Out__MSG__PRTDSI__OE_SEL1, CYREG_PRT4_OE_SEL1 -.set SCSI_Out__MSG__PRTDSI__OUT_SEL0, CYREG_PRT4_OUT_SEL0 -.set SCSI_Out__MSG__PRTDSI__OUT_SEL1, CYREG_PRT4_OUT_SEL1 -.set SCSI_Out__MSG__PRTDSI__SYNC_OUT, CYREG_PRT4_SYNC_OUT -.set SCSI_Out__MSG__PS, CYREG_PRT4_PS -.set SCSI_Out__MSG__SHIFT, 4 -.set SCSI_Out__MSG__SLW, CYREG_PRT4_SLW +.set SCSI_Out__MSG_raw__AG, CYREG_PRT4_AG +.set SCSI_Out__MSG_raw__AMUX, CYREG_PRT4_AMUX +.set SCSI_Out__MSG_raw__BIE, CYREG_PRT4_BIE +.set SCSI_Out__MSG_raw__BIT_MASK, CYREG_PRT4_BIT_MASK +.set SCSI_Out__MSG_raw__BYP, CYREG_PRT4_BYP +.set SCSI_Out__MSG_raw__CTL, CYREG_PRT4_CTL +.set SCSI_Out__MSG_raw__DM0, CYREG_PRT4_DM0 +.set SCSI_Out__MSG_raw__DM1, CYREG_PRT4_DM1 +.set SCSI_Out__MSG_raw__DM2, CYREG_PRT4_DM2 +.set SCSI_Out__MSG_raw__DR, CYREG_PRT4_DR +.set SCSI_Out__MSG_raw__INP_DIS, CYREG_PRT4_INP_DIS +.set SCSI_Out__MSG_raw__LCD_COM_SEG, CYREG_PRT4_LCD_COM_SEG +.set SCSI_Out__MSG_raw__LCD_EN, CYREG_PRT4_LCD_EN +.set SCSI_Out__MSG_raw__MASK, 0x10 +.set SCSI_Out__MSG_raw__PC, CYREG_PRT4_PC4 +.set SCSI_Out__MSG_raw__PORT, 4 +.set SCSI_Out__MSG_raw__PRT, CYREG_PRT4_PRT +.set SCSI_Out__MSG_raw__PRTDSI__CAPS_SEL, CYREG_PRT4_CAPS_SEL +.set SCSI_Out__MSG_raw__PRTDSI__DBL_SYNC_IN, CYREG_PRT4_DBL_SYNC_IN +.set SCSI_Out__MSG_raw__PRTDSI__OE_SEL0, CYREG_PRT4_OE_SEL0 +.set SCSI_Out__MSG_raw__PRTDSI__OE_SEL1, CYREG_PRT4_OE_SEL1 +.set SCSI_Out__MSG_raw__PRTDSI__OUT_SEL0, CYREG_PRT4_OUT_SEL0 +.set SCSI_Out__MSG_raw__PRTDSI__OUT_SEL1, CYREG_PRT4_OUT_SEL1 +.set SCSI_Out__MSG_raw__PRTDSI__SYNC_OUT, CYREG_PRT4_SYNC_OUT +.set SCSI_Out__MSG_raw__PS, CYREG_PRT4_PS +.set SCSI_Out__MSG_raw__SHIFT, 4 +.set SCSI_Out__MSG_raw__SLW, CYREG_PRT4_SLW .set SCSI_Out__REQ__AG, CYREG_PRT0_AG .set SCSI_Out__REQ__AMUX, CYREG_PRT0_AMUX .set SCSI_Out__REQ__BIE, CYREG_PRT0_BIE @@ -2584,9 +2764,9 @@ .set CYDEV_CHIP_FAMILY_PSOC5, 3 .set CYDEV_CHIP_DIE_PSOC5LP, 4 .set CYDEV_CHIP_DIE_EXPECT, CYDEV_CHIP_DIE_PSOC5LP -.set BCLK__BUS_CLK__HZ, 60000000 -.set BCLK__BUS_CLK__KHZ, 60000 -.set BCLK__BUS_CLK__MHZ, 60 +.set BCLK__BUS_CLK__HZ, 50000000 +.set BCLK__BUS_CLK__KHZ, 50000 +.set BCLK__BUS_CLK__MHZ, 50 .set CYDEV_CHIP_DIE_ACTUAL, CYDEV_CHIP_DIE_EXPECT .set CYDEV_CHIP_DIE_LEOPARD, 1 .set CYDEV_CHIP_DIE_PANTHER, 3 @@ -2647,7 +2827,7 @@ .set CYDEV_ECC_ENABLE, 0 .set CYDEV_HEAP_SIZE, 0x1000 .set CYDEV_INSTRUCT_CACHE_ENABLED, 1 -.set CYDEV_INTR_RISING, 0x00000000 +.set CYDEV_INTR_RISING, 0x0000001E .set CYDEV_PROJ_TYPE, 2 .set CYDEV_PROJ_TYPE_BOOTLOADER, 1 .set CYDEV_PROJ_TYPE_LOADABLE, 2 @@ -2671,6 +2851,6 @@ .set CYDEV_VIO2, 5 .set CYDEV_VIO2_MV, 5000 .set CYDEV_VIO3_MV, 3300 -.set DMA_CHANNELS_USED__MASK0, 0x00000000 +.set DMA_CHANNELS_USED__MASK0, 0x0000000F .set CYDEV_BOOTLOADER_ENABLE, 0 .endif diff --git a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/cyfitteriar.inc b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/cyfitteriar.inc old mode 100755 new mode 100644 index 3bc1da72..3be6dc0c --- a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/cyfitteriar.inc +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/cyfitteriar.inc @@ -3,6 +3,74 @@ INCLUDE cydeviceiar.inc INCLUDE cydeviceiar_trm.inc +/* Debug_Timer_Interrupt */ +Debug_Timer_Interrupt__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 +Debug_Timer_Interrupt__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0 +Debug_Timer_Interrupt__INTC_MASK EQU 0x02 +Debug_Timer_Interrupt__INTC_NUMBER EQU 1 +Debug_Timer_Interrupt__INTC_PRIOR_NUM EQU 7 +Debug_Timer_Interrupt__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_1 +Debug_Timer_Interrupt__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 +Debug_Timer_Interrupt__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 + +/* SCSI_RX_DMA_COMPLETE */ +SCSI_RX_DMA_COMPLETE__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 +SCSI_RX_DMA_COMPLETE__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0 +SCSI_RX_DMA_COMPLETE__INTC_MASK EQU 0x01 +SCSI_RX_DMA_COMPLETE__INTC_NUMBER EQU 0 +SCSI_RX_DMA_COMPLETE__INTC_PRIOR_NUM EQU 7 +SCSI_RX_DMA_COMPLETE__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_0 +SCSI_RX_DMA_COMPLETE__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 +SCSI_RX_DMA_COMPLETE__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 + +/* SCSI_TX_DMA_COMPLETE */ +SCSI_TX_DMA_COMPLETE__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 +SCSI_TX_DMA_COMPLETE__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0 +SCSI_TX_DMA_COMPLETE__INTC_MASK EQU 0x04 +SCSI_TX_DMA_COMPLETE__INTC_NUMBER EQU 2 +SCSI_TX_DMA_COMPLETE__INTC_PRIOR_NUM EQU 7 +SCSI_TX_DMA_COMPLETE__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_2 +SCSI_TX_DMA_COMPLETE__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 +SCSI_TX_DMA_COMPLETE__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 + +/* Debug_Timer_TimerHW */ +Debug_Timer_TimerHW__CAP0 EQU CYREG_TMR0_CAP0 +Debug_Timer_TimerHW__CAP1 EQU CYREG_TMR0_CAP1 +Debug_Timer_TimerHW__CFG0 EQU CYREG_TMR0_CFG0 +Debug_Timer_TimerHW__CFG1 EQU CYREG_TMR0_CFG1 +Debug_Timer_TimerHW__CFG2 EQU CYREG_TMR0_CFG2 +Debug_Timer_TimerHW__CNT_CMP0 EQU CYREG_TMR0_CNT_CMP0 +Debug_Timer_TimerHW__CNT_CMP1 EQU CYREG_TMR0_CNT_CMP1 +Debug_Timer_TimerHW__PER0 EQU CYREG_TMR0_PER0 +Debug_Timer_TimerHW__PER1 EQU CYREG_TMR0_PER1 +Debug_Timer_TimerHW__PM_ACT_CFG EQU CYREG_PM_ACT_CFG3 +Debug_Timer_TimerHW__PM_ACT_MSK EQU 0x01 +Debug_Timer_TimerHW__PM_STBY_CFG EQU CYREG_PM_STBY_CFG3 +Debug_Timer_TimerHW__PM_STBY_MSK EQU 0x01 +Debug_Timer_TimerHW__RT0 EQU CYREG_TMR0_RT0 +Debug_Timer_TimerHW__RT1 EQU CYREG_TMR0_RT1 +Debug_Timer_TimerHW__SR0 EQU CYREG_TMR0_SR0 + +/* SD_RX_DMA_COMPLETE */ +SD_RX_DMA_COMPLETE__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 +SD_RX_DMA_COMPLETE__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0 +SD_RX_DMA_COMPLETE__INTC_MASK EQU 0x08 +SD_RX_DMA_COMPLETE__INTC_NUMBER EQU 3 +SD_RX_DMA_COMPLETE__INTC_PRIOR_NUM EQU 7 +SD_RX_DMA_COMPLETE__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_3 +SD_RX_DMA_COMPLETE__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 +SD_RX_DMA_COMPLETE__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 + +/* SD_TX_DMA_COMPLETE */ +SD_TX_DMA_COMPLETE__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 +SD_TX_DMA_COMPLETE__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0 +SD_TX_DMA_COMPLETE__INTC_MASK EQU 0x10 +SD_TX_DMA_COMPLETE__INTC_NUMBER EQU 4 +SD_TX_DMA_COMPLETE__INTC_PRIOR_NUM EQU 7 +SD_TX_DMA_COMPLETE__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_4 +SD_TX_DMA_COMPLETE__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 +SD_TX_DMA_COMPLETE__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 + /* USBFS_bus_reset */ USBFS_bus_reset__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 USBFS_bus_reset__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0 @@ -13,6 +81,68 @@ USBFS_bus_reset__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_23 USBFS_bus_reset__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 USBFS_bus_reset__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 +/* SCSI_CTL_PHASE */ +SCSI_CTL_PHASE_Sync_ctrl_reg__0__MASK EQU 0x01 +SCSI_CTL_PHASE_Sync_ctrl_reg__0__POS EQU 0 +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB12_13_ACTL +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB12_13_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB12_13_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB12_13_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB12_13_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB12_13_MSK +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB12_13_MSK +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB12_13_MSK +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB12_13_MSK +SCSI_CTL_PHASE_Sync_ctrl_reg__1__MASK EQU 0x02 +SCSI_CTL_PHASE_Sync_ctrl_reg__1__POS EQU 1 +SCSI_CTL_PHASE_Sync_ctrl_reg__2__MASK EQU 0x04 +SCSI_CTL_PHASE_Sync_ctrl_reg__2__POS EQU 2 +SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB12_ACTL +SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB12_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB12_ST_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB12_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB12_ST_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__MASK EQU 0x07 +SCSI_CTL_PHASE_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB12_MSK_ACTL +SCSI_CTL_PHASE_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB12_MSK +SCSI_CTL_PHASE_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB12_MSK_ACTL + +/* SCSI_Out_Bits */ +SCSI_Out_Bits_Sync_ctrl_reg__0__MASK EQU 0x01 +SCSI_Out_Bits_Sync_ctrl_reg__0__POS EQU 0 +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB10_11_ACTL +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB10_11_CTL +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB10_11_CTL +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB10_11_CTL +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB10_11_CTL +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB10_11_MSK +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB10_11_MSK +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB10_11_MSK +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB10_11_MSK +SCSI_Out_Bits_Sync_ctrl_reg__1__MASK EQU 0x02 +SCSI_Out_Bits_Sync_ctrl_reg__1__POS EQU 1 +SCSI_Out_Bits_Sync_ctrl_reg__2__MASK EQU 0x04 +SCSI_Out_Bits_Sync_ctrl_reg__2__POS EQU 2 +SCSI_Out_Bits_Sync_ctrl_reg__3__MASK EQU 0x08 +SCSI_Out_Bits_Sync_ctrl_reg__3__POS EQU 3 +SCSI_Out_Bits_Sync_ctrl_reg__4__MASK EQU 0x10 +SCSI_Out_Bits_Sync_ctrl_reg__4__POS EQU 4 +SCSI_Out_Bits_Sync_ctrl_reg__5__MASK EQU 0x20 +SCSI_Out_Bits_Sync_ctrl_reg__5__POS EQU 5 +SCSI_Out_Bits_Sync_ctrl_reg__6__MASK EQU 0x40 +SCSI_Out_Bits_Sync_ctrl_reg__6__POS EQU 6 +SCSI_Out_Bits_Sync_ctrl_reg__7__MASK EQU 0x80 +SCSI_Out_Bits_Sync_ctrl_reg__7__POS EQU 7 +SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB10_ACTL +SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB10_CTL +SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB10_ST_CTL +SCSI_Out_Bits_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB10_CTL +SCSI_Out_Bits_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB10_ST_CTL +SCSI_Out_Bits_Sync_ctrl_reg__MASK EQU 0xFF +SCSI_Out_Bits_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB10_MSK_ACTL +SCSI_Out_Bits_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB10_MSK +SCSI_Out_Bits_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB10_MSK_ACTL + /* USBFS_arb_int */ USBFS_arb_int__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 USBFS_arb_int__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0 @@ -33,6 +163,28 @@ USBFS_sof_int__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_21 USBFS_sof_int__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 USBFS_sof_int__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 +/* SCSI_Out_Ctl */ +SCSI_Out_Ctl_Sync_ctrl_reg__0__MASK EQU 0x01 +SCSI_Out_Ctl_Sync_ctrl_reg__0__POS EQU 0 +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B1_UDB08_09_ACTL +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B1_UDB08_09_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B1_UDB08_09_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B1_UDB08_09_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B1_UDB08_09_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B1_UDB08_09_MSK +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B1_UDB08_09_MSK +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B1_UDB08_09_MSK +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B1_UDB08_09_MSK +SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B1_UDB08_ACTL +SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B1_UDB08_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B1_UDB08_ST_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_REG EQU CYREG_B1_UDB08_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B1_UDB08_ST_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__MASK EQU 0x01 +SCSI_Out_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B1_UDB08_MSK_ACTL +SCSI_Out_Ctl_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B1_UDB08_MSK +SCSI_Out_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B1_UDB08_MSK_ACTL + /* SCSI_Out_DBx */ SCSI_Out_DBx__0__AG EQU CYREG_PRT5_AG SCSI_Out_DBx__0__AMUX EQU CYREG_PRT5_AMUX @@ -478,34 +630,23 @@ SCSI_RST_ISR__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 SCSI_RST_ISR__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 /* SDCard_BSPIM */ -SDCard_BSPIM_BitCounter_ST__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB06_07_ACTL -SDCard_BSPIM_BitCounter_ST__16BIT_STATUS_REG EQU CYREG_B0_UDB06_07_ST -SDCard_BSPIM_BitCounter_ST__MASK_REG EQU CYREG_B0_UDB06_MSK -SDCard_BSPIM_BitCounter_ST__MASK_ST_AUX_CTL_REG EQU CYREG_B0_UDB06_MSK_ACTL -SDCard_BSPIM_BitCounter_ST__PER_ST_AUX_CTL_REG EQU CYREG_B0_UDB06_MSK_ACTL -SDCard_BSPIM_BitCounter_ST__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB06_ACTL -SDCard_BSPIM_BitCounter_ST__STATUS_CNT_REG EQU CYREG_B0_UDB06_ST_CTL -SDCard_BSPIM_BitCounter_ST__STATUS_CONTROL_REG EQU CYREG_B0_UDB06_ST_CTL -SDCard_BSPIM_BitCounter_ST__STATUS_REG EQU CYREG_B0_UDB06_ST -SDCard_BSPIM_BitCounter__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB06_07_ACTL -SDCard_BSPIM_BitCounter__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB06_07_CTL -SDCard_BSPIM_BitCounter__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB06_07_CTL -SDCard_BSPIM_BitCounter__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB06_07_CTL -SDCard_BSPIM_BitCounter__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB06_07_CTL -SDCard_BSPIM_BitCounter__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB06_07_MSK -SDCard_BSPIM_BitCounter__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB06_07_MSK -SDCard_BSPIM_BitCounter__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB06_07_MSK -SDCard_BSPIM_BitCounter__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB06_07_MSK -SDCard_BSPIM_BitCounter__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB06_ACTL -SDCard_BSPIM_BitCounter__CONTROL_REG EQU CYREG_B0_UDB06_CTL -SDCard_BSPIM_BitCounter__CONTROL_ST_REG EQU CYREG_B0_UDB06_ST_CTL -SDCard_BSPIM_BitCounter__COUNT_REG EQU CYREG_B0_UDB06_CTL -SDCard_BSPIM_BitCounter__COUNT_ST_REG EQU CYREG_B0_UDB06_ST_CTL -SDCard_BSPIM_BitCounter__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB06_MSK_ACTL -SDCard_BSPIM_BitCounter__PERIOD_REG EQU CYREG_B0_UDB06_MSK -SDCard_BSPIM_BitCounter__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB06_MSK_ACTL -SDCard_BSPIM_RxStsReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B1_UDB06_07_ACTL -SDCard_BSPIM_RxStsReg__16BIT_STATUS_REG EQU CYREG_B1_UDB06_07_ST +SDCard_BSPIM_BitCounter_ST__MASK_REG EQU CYREG_B1_UDB11_MSK +SDCard_BSPIM_BitCounter_ST__MASK_ST_AUX_CTL_REG EQU CYREG_B1_UDB11_MSK_ACTL +SDCard_BSPIM_BitCounter_ST__PER_ST_AUX_CTL_REG EQU CYREG_B1_UDB11_MSK_ACTL +SDCard_BSPIM_BitCounter_ST__STATUS_AUX_CTL_REG EQU CYREG_B1_UDB11_ACTL +SDCard_BSPIM_BitCounter_ST__STATUS_CNT_REG EQU CYREG_B1_UDB11_ST_CTL +SDCard_BSPIM_BitCounter_ST__STATUS_CONTROL_REG EQU CYREG_B1_UDB11_ST_CTL +SDCard_BSPIM_BitCounter_ST__STATUS_REG EQU CYREG_B1_UDB11_ST +SDCard_BSPIM_BitCounter__CONTROL_AUX_CTL_REG EQU CYREG_B1_UDB11_ACTL +SDCard_BSPIM_BitCounter__CONTROL_REG EQU CYREG_B1_UDB11_CTL +SDCard_BSPIM_BitCounter__CONTROL_ST_REG EQU CYREG_B1_UDB11_ST_CTL +SDCard_BSPIM_BitCounter__COUNT_REG EQU CYREG_B1_UDB11_CTL +SDCard_BSPIM_BitCounter__COUNT_ST_REG EQU CYREG_B1_UDB11_ST_CTL +SDCard_BSPIM_BitCounter__MASK_CTL_AUX_CTL_REG EQU CYREG_B1_UDB11_MSK_ACTL +SDCard_BSPIM_BitCounter__PERIOD_REG EQU CYREG_B1_UDB11_MSK +SDCard_BSPIM_BitCounter__PER_CTL_AUX_CTL_REG EQU CYREG_B1_UDB11_MSK_ACTL +SDCard_BSPIM_RxStsReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B1_UDB10_11_ACTL +SDCard_BSPIM_RxStsReg__16BIT_STATUS_REG EQU CYREG_B1_UDB10_11_ST SDCard_BSPIM_RxStsReg__4__MASK EQU 0x10 SDCard_BSPIM_RxStsReg__4__POS EQU 4 SDCard_BSPIM_RxStsReg__5__MASK EQU 0x20 @@ -513,13 +654,13 @@ SDCard_BSPIM_RxStsReg__5__POS EQU 5 SDCard_BSPIM_RxStsReg__6__MASK EQU 0x40 SDCard_BSPIM_RxStsReg__6__POS EQU 6 SDCard_BSPIM_RxStsReg__MASK EQU 0x70 -SDCard_BSPIM_RxStsReg__MASK_REG EQU CYREG_B1_UDB06_MSK -SDCard_BSPIM_RxStsReg__STATUS_AUX_CTL_REG EQU CYREG_B1_UDB06_ACTL -SDCard_BSPIM_RxStsReg__STATUS_REG EQU CYREG_B1_UDB06_ST +SDCard_BSPIM_RxStsReg__MASK_REG EQU CYREG_B1_UDB10_MSK +SDCard_BSPIM_RxStsReg__STATUS_AUX_CTL_REG EQU CYREG_B1_UDB10_ACTL +SDCard_BSPIM_RxStsReg__STATUS_REG EQU CYREG_B1_UDB10_ST SDCard_BSPIM_TxStsReg__0__MASK EQU 0x01 SDCard_BSPIM_TxStsReg__0__POS EQU 0 -SDCard_BSPIM_TxStsReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB05_06_ACTL -SDCard_BSPIM_TxStsReg__16BIT_STATUS_REG EQU CYREG_B0_UDB05_06_ST +SDCard_BSPIM_TxStsReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B1_UDB08_09_ACTL +SDCard_BSPIM_TxStsReg__16BIT_STATUS_REG EQU CYREG_B1_UDB08_09_ST SDCard_BSPIM_TxStsReg__1__MASK EQU 0x02 SDCard_BSPIM_TxStsReg__1__POS EQU 1 SDCard_BSPIM_TxStsReg__2__MASK EQU 0x04 @@ -529,26 +670,30 @@ SDCard_BSPIM_TxStsReg__3__POS EQU 3 SDCard_BSPIM_TxStsReg__4__MASK EQU 0x10 SDCard_BSPIM_TxStsReg__4__POS EQU 4 SDCard_BSPIM_TxStsReg__MASK EQU 0x1F -SDCard_BSPIM_TxStsReg__MASK_REG EQU CYREG_B0_UDB05_MSK -SDCard_BSPIM_TxStsReg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB05_ACTL -SDCard_BSPIM_TxStsReg__STATUS_REG EQU CYREG_B0_UDB05_ST -SDCard_BSPIM_sR8_Dp_u0__16BIT_A0_REG EQU CYREG_B1_UDB06_07_A0 -SDCard_BSPIM_sR8_Dp_u0__16BIT_A1_REG EQU CYREG_B1_UDB06_07_A1 -SDCard_BSPIM_sR8_Dp_u0__16BIT_D0_REG EQU CYREG_B1_UDB06_07_D0 -SDCard_BSPIM_sR8_Dp_u0__16BIT_D1_REG EQU CYREG_B1_UDB06_07_D1 -SDCard_BSPIM_sR8_Dp_u0__16BIT_DP_AUX_CTL_REG EQU CYREG_B1_UDB06_07_ACTL -SDCard_BSPIM_sR8_Dp_u0__16BIT_F0_REG EQU CYREG_B1_UDB06_07_F0 -SDCard_BSPIM_sR8_Dp_u0__16BIT_F1_REG EQU CYREG_B1_UDB06_07_F1 -SDCard_BSPIM_sR8_Dp_u0__A0_A1_REG EQU CYREG_B1_UDB06_A0_A1 -SDCard_BSPIM_sR8_Dp_u0__A0_REG EQU CYREG_B1_UDB06_A0 -SDCard_BSPIM_sR8_Dp_u0__A1_REG EQU CYREG_B1_UDB06_A1 -SDCard_BSPIM_sR8_Dp_u0__D0_D1_REG EQU CYREG_B1_UDB06_D0_D1 -SDCard_BSPIM_sR8_Dp_u0__D0_REG EQU CYREG_B1_UDB06_D0 -SDCard_BSPIM_sR8_Dp_u0__D1_REG EQU CYREG_B1_UDB06_D1 -SDCard_BSPIM_sR8_Dp_u0__DP_AUX_CTL_REG EQU CYREG_B1_UDB06_ACTL -SDCard_BSPIM_sR8_Dp_u0__F0_F1_REG EQU CYREG_B1_UDB06_F0_F1 -SDCard_BSPIM_sR8_Dp_u0__F0_REG EQU CYREG_B1_UDB06_F0 -SDCard_BSPIM_sR8_Dp_u0__F1_REG EQU CYREG_B1_UDB06_F1 +SDCard_BSPIM_TxStsReg__MASK_REG EQU CYREG_B1_UDB08_MSK +SDCard_BSPIM_TxStsReg__MASK_ST_AUX_CTL_REG EQU CYREG_B1_UDB08_MSK_ACTL +SDCard_BSPIM_TxStsReg__PER_ST_AUX_CTL_REG EQU CYREG_B1_UDB08_MSK_ACTL +SDCard_BSPIM_TxStsReg__STATUS_AUX_CTL_REG EQU CYREG_B1_UDB08_ACTL +SDCard_BSPIM_TxStsReg__STATUS_CNT_REG EQU CYREG_B1_UDB08_ST_CTL +SDCard_BSPIM_TxStsReg__STATUS_CONTROL_REG EQU CYREG_B1_UDB08_ST_CTL +SDCard_BSPIM_TxStsReg__STATUS_REG EQU CYREG_B1_UDB08_ST +SDCard_BSPIM_sR8_Dp_u0__16BIT_A0_REG EQU CYREG_B0_UDB08_09_A0 +SDCard_BSPIM_sR8_Dp_u0__16BIT_A1_REG EQU CYREG_B0_UDB08_09_A1 +SDCard_BSPIM_sR8_Dp_u0__16BIT_D0_REG EQU CYREG_B0_UDB08_09_D0 +SDCard_BSPIM_sR8_Dp_u0__16BIT_D1_REG EQU CYREG_B0_UDB08_09_D1 +SDCard_BSPIM_sR8_Dp_u0__16BIT_DP_AUX_CTL_REG EQU CYREG_B0_UDB08_09_ACTL +SDCard_BSPIM_sR8_Dp_u0__16BIT_F0_REG EQU CYREG_B0_UDB08_09_F0 +SDCard_BSPIM_sR8_Dp_u0__16BIT_F1_REG EQU CYREG_B0_UDB08_09_F1 +SDCard_BSPIM_sR8_Dp_u0__A0_A1_REG EQU CYREG_B0_UDB08_A0_A1 +SDCard_BSPIM_sR8_Dp_u0__A0_REG EQU CYREG_B0_UDB08_A0 +SDCard_BSPIM_sR8_Dp_u0__A1_REG EQU CYREG_B0_UDB08_A1 +SDCard_BSPIM_sR8_Dp_u0__D0_D1_REG EQU CYREG_B0_UDB08_D0_D1 +SDCard_BSPIM_sR8_Dp_u0__D0_REG EQU CYREG_B0_UDB08_D0 +SDCard_BSPIM_sR8_Dp_u0__D1_REG EQU CYREG_B0_UDB08_D1 +SDCard_BSPIM_sR8_Dp_u0__DP_AUX_CTL_REG EQU CYREG_B0_UDB08_ACTL +SDCard_BSPIM_sR8_Dp_u0__F0_F1_REG EQU CYREG_B0_UDB08_F0_F1 +SDCard_BSPIM_sR8_Dp_u0__F0_REG EQU CYREG_B0_UDB08_F0 +SDCard_BSPIM_sR8_Dp_u0__F1_REG EQU CYREG_B0_UDB08_F1 /* USBFS_dp_int */ USBFS_dp_int__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 @@ -560,19 +705,6 @@ USBFS_dp_int__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_12 USBFS_dp_int__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 USBFS_dp_int__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 -/* SCSI_CTL_IO */ -SCSI_CTL_IO_Sync_ctrl_reg__0__MASK EQU 0x01 -SCSI_CTL_IO_Sync_ctrl_reg__0__POS EQU 0 -SCSI_CTL_IO_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB15_ACTL -SCSI_CTL_IO_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB15_CTL -SCSI_CTL_IO_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB15_ST_CTL -SCSI_CTL_IO_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB15_CTL -SCSI_CTL_IO_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB15_ST_CTL -SCSI_CTL_IO_Sync_ctrl_reg__MASK EQU 0x01 -SCSI_CTL_IO_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB15_MSK_ACTL -SCSI_CTL_IO_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB15_MSK -SCSI_CTL_IO_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB15_MSK_ACTL - /* SCSI_In_DBx */ SCSI_In_DBx__0__AG EQU CYREG_PRT5_AG SCSI_In_DBx__0__AMUX EQU CYREG_PRT5_AMUX @@ -1003,6 +1135,30 @@ SCSI_In_DBx__DB7__PS EQU CYREG_PRT2_PS SCSI_In_DBx__DB7__SHIFT EQU 4 SCSI_In_DBx__DB7__SLW EQU CYREG_PRT2_SLW +/* SCSI_RX_DMA */ +SCSI_RX_DMA__DRQ_CTL EQU CYREG_IDMUX_DRQ_CTL0 +SCSI_RX_DMA__DRQ_NUMBER EQU 0 +SCSI_RX_DMA__NUMBEROF_TDS EQU 0 +SCSI_RX_DMA__PRIORITY EQU 2 +SCSI_RX_DMA__TERMIN_EN EQU 0 +SCSI_RX_DMA__TERMIN_SEL EQU 0 +SCSI_RX_DMA__TERMOUT0_EN EQU 1 +SCSI_RX_DMA__TERMOUT0_SEL EQU 0 +SCSI_RX_DMA__TERMOUT1_EN EQU 0 +SCSI_RX_DMA__TERMOUT1_SEL EQU 0 + +/* SCSI_TX_DMA */ +SCSI_TX_DMA__DRQ_CTL EQU CYREG_IDMUX_DRQ_CTL0 +SCSI_TX_DMA__DRQ_NUMBER EQU 1 +SCSI_TX_DMA__NUMBEROF_TDS EQU 0 +SCSI_TX_DMA__PRIORITY EQU 2 +SCSI_TX_DMA__TERMIN_EN EQU 0 +SCSI_TX_DMA__TERMIN_SEL EQU 0 +SCSI_TX_DMA__TERMOUT0_EN EQU 1 +SCSI_TX_DMA__TERMOUT0_SEL EQU 1 +SCSI_TX_DMA__TERMOUT1_EN EQU 0 +SCSI_TX_DMA__TERMOUT1_SEL EQU 0 + /* SD_Data_Clk */ SD_Data_Clk__CFG0 EQU CYREG_CLKDIST_DCFG0_CFG0 SD_Data_Clk__CFG1 EQU CYREG_CLKDIST_DCFG0_CFG1 @@ -1014,16 +1170,16 @@ SD_Data_Clk__PM_ACT_MSK EQU 0x01 SD_Data_Clk__PM_STBY_CFG EQU CYREG_PM_STBY_CFG2 SD_Data_Clk__PM_STBY_MSK EQU 0x01 -/* SD_Init_Clk */ -SD_Init_Clk__CFG0 EQU CYREG_CLKDIST_DCFG1_CFG0 -SD_Init_Clk__CFG1 EQU CYREG_CLKDIST_DCFG1_CFG1 -SD_Init_Clk__CFG2 EQU CYREG_CLKDIST_DCFG1_CFG2 -SD_Init_Clk__CFG2_SRC_SEL_MASK EQU 0x07 -SD_Init_Clk__INDEX EQU 0x01 -SD_Init_Clk__PM_ACT_CFG EQU CYREG_PM_ACT_CFG2 -SD_Init_Clk__PM_ACT_MSK EQU 0x02 -SD_Init_Clk__PM_STBY_CFG EQU CYREG_PM_STBY_CFG2 -SD_Init_Clk__PM_STBY_MSK EQU 0x02 +/* timer_clock */ +timer_clock__CFG0 EQU CYREG_CLKDIST_DCFG1_CFG0 +timer_clock__CFG1 EQU CYREG_CLKDIST_DCFG1_CFG1 +timer_clock__CFG2 EQU CYREG_CLKDIST_DCFG1_CFG2 +timer_clock__CFG2_SRC_SEL_MASK EQU 0x07 +timer_clock__INDEX EQU 0x01 +timer_clock__PM_ACT_CFG EQU CYREG_PM_ACT_CFG2 +timer_clock__PM_ACT_MSK EQU 0x02 +timer_clock__PM_STBY_CFG EQU CYREG_PM_STBY_CFG2 +timer_clock__PM_STBY_MSK EQU 0x02 /* scsiTarget */ scsiTarget_StatusReg__0__MASK EQU 0x01 @@ -1036,77 +1192,57 @@ scsiTarget_StatusReg__2__MASK EQU 0x04 scsiTarget_StatusReg__2__POS EQU 2 scsiTarget_StatusReg__3__MASK EQU 0x08 scsiTarget_StatusReg__3__POS EQU 3 -scsiTarget_StatusReg__MASK EQU 0x0F +scsiTarget_StatusReg__4__MASK EQU 0x10 +scsiTarget_StatusReg__4__POS EQU 4 +scsiTarget_StatusReg__MASK EQU 0x1F scsiTarget_StatusReg__MASK_REG EQU CYREG_B0_UDB13_MSK scsiTarget_StatusReg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB13_ACTL scsiTarget_StatusReg__STATUS_REG EQU CYREG_B0_UDB13_ST -scsiTarget_datapath_PI__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB10_11_ACTL -scsiTarget_datapath_PI__16BIT_STATUS_REG EQU CYREG_B0_UDB10_11_ST -scsiTarget_datapath_PI__MASK_REG EQU CYREG_B0_UDB10_MSK -scsiTarget_datapath_PI__MASK_ST_AUX_CTL_REG EQU CYREG_B0_UDB10_MSK_ACTL -scsiTarget_datapath_PI__PER_ST_AUX_CTL_REG EQU CYREG_B0_UDB10_MSK_ACTL -scsiTarget_datapath_PI__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB10_ACTL -scsiTarget_datapath_PI__STATUS_CNT_REG EQU CYREG_B0_UDB10_ST_CTL -scsiTarget_datapath_PI__STATUS_CONTROL_REG EQU CYREG_B0_UDB10_ST_CTL -scsiTarget_datapath_PI__STATUS_REG EQU CYREG_B0_UDB10_ST -scsiTarget_datapath_PO__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB10_11_ACTL -scsiTarget_datapath_PO__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB10_11_CTL -scsiTarget_datapath_PO__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB10_11_CTL -scsiTarget_datapath_PO__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB10_11_CTL -scsiTarget_datapath_PO__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB10_11_CTL -scsiTarget_datapath_PO__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB10_11_MSK -scsiTarget_datapath_PO__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB10_11_MSK -scsiTarget_datapath_PO__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB10_11_MSK -scsiTarget_datapath_PO__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB10_11_MSK -scsiTarget_datapath_PO__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB10_ACTL -scsiTarget_datapath_PO__CONTROL_REG EQU CYREG_B0_UDB10_CTL -scsiTarget_datapath_PO__CONTROL_ST_REG EQU CYREG_B0_UDB10_ST_CTL -scsiTarget_datapath_PO__COUNT_REG EQU CYREG_B0_UDB10_CTL -scsiTarget_datapath_PO__COUNT_ST_REG EQU CYREG_B0_UDB10_ST_CTL -scsiTarget_datapath_PO__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB10_MSK_ACTL -scsiTarget_datapath_PO__PERIOD_REG EQU CYREG_B0_UDB10_MSK -scsiTarget_datapath_PO__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB10_MSK_ACTL -scsiTarget_datapath__16BIT_A0_REG EQU CYREG_B0_UDB10_11_A0 -scsiTarget_datapath__16BIT_A1_REG EQU CYREG_B0_UDB10_11_A1 -scsiTarget_datapath__16BIT_D0_REG EQU CYREG_B0_UDB10_11_D0 -scsiTarget_datapath__16BIT_D1_REG EQU CYREG_B0_UDB10_11_D1 -scsiTarget_datapath__16BIT_DP_AUX_CTL_REG EQU CYREG_B0_UDB10_11_ACTL -scsiTarget_datapath__16BIT_F0_REG EQU CYREG_B0_UDB10_11_F0 -scsiTarget_datapath__16BIT_F1_REG EQU CYREG_B0_UDB10_11_F1 -scsiTarget_datapath__A0_A1_REG EQU CYREG_B0_UDB10_A0_A1 -scsiTarget_datapath__A0_REG EQU CYREG_B0_UDB10_A0 -scsiTarget_datapath__A1_REG EQU CYREG_B0_UDB10_A1 -scsiTarget_datapath__D0_D1_REG EQU CYREG_B0_UDB10_D0_D1 -scsiTarget_datapath__D0_REG EQU CYREG_B0_UDB10_D0 -scsiTarget_datapath__D1_REG EQU CYREG_B0_UDB10_D1 -scsiTarget_datapath__DP_AUX_CTL_REG EQU CYREG_B0_UDB10_ACTL -scsiTarget_datapath__F0_F1_REG EQU CYREG_B0_UDB10_F0_F1 -scsiTarget_datapath__F0_REG EQU CYREG_B0_UDB10_F0 -scsiTarget_datapath__F1_REG EQU CYREG_B0_UDB10_F1 -scsiTarget_datapath__MSK_DP_AUX_CTL_REG EQU CYREG_B0_UDB10_MSK_ACTL -scsiTarget_datapath__PER_DP_AUX_CTL_REG EQU CYREG_B0_UDB10_MSK_ACTL - -/* SD_Clk_Ctl */ -SD_Clk_Ctl_Sync_ctrl_reg__0__MASK EQU 0x01 -SD_Clk_Ctl_Sync_ctrl_reg__0__POS EQU 0 -SD_Clk_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB04_05_ACTL -SD_Clk_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB04_05_CTL -SD_Clk_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB04_05_CTL -SD_Clk_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB04_05_CTL -SD_Clk_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB04_05_CTL -SD_Clk_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB04_05_MSK -SD_Clk_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB04_05_MSK -SD_Clk_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB04_05_MSK -SD_Clk_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB04_05_MSK -SD_Clk_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB04_ACTL -SD_Clk_Ctl_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB04_CTL -SD_Clk_Ctl_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB04_ST_CTL -SD_Clk_Ctl_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB04_CTL -SD_Clk_Ctl_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB04_ST_CTL -SD_Clk_Ctl_Sync_ctrl_reg__MASK EQU 0x01 -SD_Clk_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB04_MSK_ACTL -SD_Clk_Ctl_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB04_MSK -SD_Clk_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB04_MSK_ACTL +scsiTarget_datapath_PI__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB14_15_ACTL +scsiTarget_datapath_PI__16BIT_STATUS_REG EQU CYREG_B0_UDB14_15_ST +scsiTarget_datapath_PI__MASK_REG EQU CYREG_B0_UDB14_MSK +scsiTarget_datapath_PI__MASK_ST_AUX_CTL_REG EQU CYREG_B0_UDB14_MSK_ACTL +scsiTarget_datapath_PI__PER_ST_AUX_CTL_REG EQU CYREG_B0_UDB14_MSK_ACTL +scsiTarget_datapath_PI__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB14_ACTL +scsiTarget_datapath_PI__STATUS_CNT_REG EQU CYREG_B0_UDB14_ST_CTL +scsiTarget_datapath_PI__STATUS_CONTROL_REG EQU CYREG_B0_UDB14_ST_CTL +scsiTarget_datapath_PI__STATUS_REG EQU CYREG_B0_UDB14_ST +scsiTarget_datapath_PO__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB14_15_ACTL +scsiTarget_datapath_PO__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB14_15_CTL +scsiTarget_datapath_PO__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB14_15_CTL +scsiTarget_datapath_PO__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB14_15_CTL +scsiTarget_datapath_PO__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB14_15_CTL +scsiTarget_datapath_PO__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB14_15_MSK +scsiTarget_datapath_PO__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB14_15_MSK +scsiTarget_datapath_PO__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB14_15_MSK +scsiTarget_datapath_PO__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB14_15_MSK +scsiTarget_datapath_PO__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB14_ACTL +scsiTarget_datapath_PO__CONTROL_REG EQU CYREG_B0_UDB14_CTL +scsiTarget_datapath_PO__CONTROL_ST_REG EQU CYREG_B0_UDB14_ST_CTL +scsiTarget_datapath_PO__COUNT_REG EQU CYREG_B0_UDB14_CTL +scsiTarget_datapath_PO__COUNT_ST_REG EQU CYREG_B0_UDB14_ST_CTL +scsiTarget_datapath_PO__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB14_MSK_ACTL +scsiTarget_datapath_PO__PERIOD_REG EQU CYREG_B0_UDB14_MSK +scsiTarget_datapath_PO__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB14_MSK_ACTL +scsiTarget_datapath__16BIT_A0_REG EQU CYREG_B0_UDB14_15_A0 +scsiTarget_datapath__16BIT_A1_REG EQU CYREG_B0_UDB14_15_A1 +scsiTarget_datapath__16BIT_D0_REG EQU CYREG_B0_UDB14_15_D0 +scsiTarget_datapath__16BIT_D1_REG EQU CYREG_B0_UDB14_15_D1 +scsiTarget_datapath__16BIT_DP_AUX_CTL_REG EQU CYREG_B0_UDB14_15_ACTL +scsiTarget_datapath__16BIT_F0_REG EQU CYREG_B0_UDB14_15_F0 +scsiTarget_datapath__16BIT_F1_REG EQU CYREG_B0_UDB14_15_F1 +scsiTarget_datapath__A0_A1_REG EQU CYREG_B0_UDB14_A0_A1 +scsiTarget_datapath__A0_REG EQU CYREG_B0_UDB14_A0 +scsiTarget_datapath__A1_REG EQU CYREG_B0_UDB14_A1 +scsiTarget_datapath__D0_D1_REG EQU CYREG_B0_UDB14_D0_D1 +scsiTarget_datapath__D0_REG EQU CYREG_B0_UDB14_D0 +scsiTarget_datapath__D1_REG EQU CYREG_B0_UDB14_D1 +scsiTarget_datapath__DP_AUX_CTL_REG EQU CYREG_B0_UDB14_ACTL +scsiTarget_datapath__F0_F1_REG EQU CYREG_B0_UDB14_F0_F1 +scsiTarget_datapath__F0_REG EQU CYREG_B0_UDB14_F0 +scsiTarget_datapath__F1_REG EQU CYREG_B0_UDB14_F1 +scsiTarget_datapath__MSK_DP_AUX_CTL_REG EQU CYREG_B0_UDB14_MSK_ACTL +scsiTarget_datapath__PER_DP_AUX_CTL_REG EQU CYREG_B0_UDB14_MSK_ACTL /* USBFS_ep_0 */ USBFS_ep_0__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 @@ -1121,23 +1257,67 @@ USBFS_ep_0__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 /* USBFS_ep_1 */ USBFS_ep_1__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 USBFS_ep_1__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0 -USBFS_ep_1__INTC_MASK EQU 0x01 -USBFS_ep_1__INTC_NUMBER EQU 0 +USBFS_ep_1__INTC_MASK EQU 0x20 +USBFS_ep_1__INTC_NUMBER EQU 5 USBFS_ep_1__INTC_PRIOR_NUM EQU 7 -USBFS_ep_1__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_0 +USBFS_ep_1__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_5 USBFS_ep_1__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 USBFS_ep_1__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 /* USBFS_ep_2 */ USBFS_ep_2__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 USBFS_ep_2__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0 -USBFS_ep_2__INTC_MASK EQU 0x02 -USBFS_ep_2__INTC_NUMBER EQU 1 +USBFS_ep_2__INTC_MASK EQU 0x40 +USBFS_ep_2__INTC_NUMBER EQU 6 USBFS_ep_2__INTC_PRIOR_NUM EQU 7 -USBFS_ep_2__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_1 +USBFS_ep_2__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_6 USBFS_ep_2__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 USBFS_ep_2__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 +/* USBFS_ep_3 */ +USBFS_ep_3__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 +USBFS_ep_3__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0 +USBFS_ep_3__INTC_MASK EQU 0x80 +USBFS_ep_3__INTC_NUMBER EQU 7 +USBFS_ep_3__INTC_PRIOR_NUM EQU 7 +USBFS_ep_3__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_7 +USBFS_ep_3__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 +USBFS_ep_3__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 + +/* USBFS_ep_4 */ +USBFS_ep_4__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 +USBFS_ep_4__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0 +USBFS_ep_4__INTC_MASK EQU 0x200 +USBFS_ep_4__INTC_NUMBER EQU 9 +USBFS_ep_4__INTC_PRIOR_NUM EQU 7 +USBFS_ep_4__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_9 +USBFS_ep_4__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 +USBFS_ep_4__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 + +/* SD_RX_DMA */ +SD_RX_DMA__DRQ_CTL EQU CYREG_IDMUX_DRQ_CTL0 +SD_RX_DMA__DRQ_NUMBER EQU 2 +SD_RX_DMA__NUMBEROF_TDS EQU 0 +SD_RX_DMA__PRIORITY EQU 1 +SD_RX_DMA__TERMIN_EN EQU 0 +SD_RX_DMA__TERMIN_SEL EQU 0 +SD_RX_DMA__TERMOUT0_EN EQU 1 +SD_RX_DMA__TERMOUT0_SEL EQU 2 +SD_RX_DMA__TERMOUT1_EN EQU 0 +SD_RX_DMA__TERMOUT1_SEL EQU 0 + +/* SD_TX_DMA */ +SD_TX_DMA__DRQ_CTL EQU CYREG_IDMUX_DRQ_CTL0 +SD_TX_DMA__DRQ_NUMBER EQU 3 +SD_TX_DMA__NUMBEROF_TDS EQU 0 +SD_TX_DMA__PRIORITY EQU 2 +SD_TX_DMA__TERMIN_EN EQU 0 +SD_TX_DMA__TERMIN_SEL EQU 0 +SD_TX_DMA__TERMOUT0_EN EQU 1 +SD_TX_DMA__TERMOUT0_SEL EQU 3 +SD_TX_DMA__TERMOUT1_EN EQU 0 +SD_TX_DMA__TERMOUT1_SEL EQU 0 + /* USBFS_USB */ USBFS_USB__ARB_CFG EQU CYREG_USB_ARB_CFG USBFS_USB__ARB_EP1_CFG EQU CYREG_USB_ARB_EP1_CFG @@ -1652,33 +1832,33 @@ SCSI_Out__BSY__PRTDSI__SYNC_OUT EQU CYREG_PRT6_SYNC_OUT SCSI_Out__BSY__PS EQU CYREG_PRT6_PS SCSI_Out__BSY__SHIFT EQU 1 SCSI_Out__BSY__SLW EQU CYREG_PRT6_SLW -SCSI_Out__CD__AG EQU CYREG_PRT0_AG -SCSI_Out__CD__AMUX EQU CYREG_PRT0_AMUX -SCSI_Out__CD__BIE EQU CYREG_PRT0_BIE -SCSI_Out__CD__BIT_MASK EQU CYREG_PRT0_BIT_MASK -SCSI_Out__CD__BYP EQU CYREG_PRT0_BYP -SCSI_Out__CD__CTL EQU CYREG_PRT0_CTL -SCSI_Out__CD__DM0 EQU CYREG_PRT0_DM0 -SCSI_Out__CD__DM1 EQU CYREG_PRT0_DM1 -SCSI_Out__CD__DM2 EQU CYREG_PRT0_DM2 -SCSI_Out__CD__DR EQU CYREG_PRT0_DR -SCSI_Out__CD__INP_DIS EQU CYREG_PRT0_INP_DIS -SCSI_Out__CD__LCD_COM_SEG EQU CYREG_PRT0_LCD_COM_SEG -SCSI_Out__CD__LCD_EN EQU CYREG_PRT0_LCD_EN -SCSI_Out__CD__MASK EQU 0x40 -SCSI_Out__CD__PC EQU CYREG_PRT0_PC6 -SCSI_Out__CD__PORT EQU 0 -SCSI_Out__CD__PRT EQU CYREG_PRT0_PRT -SCSI_Out__CD__PRTDSI__CAPS_SEL EQU CYREG_PRT0_CAPS_SEL -SCSI_Out__CD__PRTDSI__DBL_SYNC_IN EQU CYREG_PRT0_DBL_SYNC_IN -SCSI_Out__CD__PRTDSI__OE_SEL0 EQU CYREG_PRT0_OE_SEL0 -SCSI_Out__CD__PRTDSI__OE_SEL1 EQU CYREG_PRT0_OE_SEL1 -SCSI_Out__CD__PRTDSI__OUT_SEL0 EQU CYREG_PRT0_OUT_SEL0 -SCSI_Out__CD__PRTDSI__OUT_SEL1 EQU CYREG_PRT0_OUT_SEL1 -SCSI_Out__CD__PRTDSI__SYNC_OUT EQU CYREG_PRT0_SYNC_OUT -SCSI_Out__CD__PS EQU CYREG_PRT0_PS -SCSI_Out__CD__SHIFT EQU 6 -SCSI_Out__CD__SLW EQU CYREG_PRT0_SLW +SCSI_Out__CD_raw__AG EQU CYREG_PRT0_AG +SCSI_Out__CD_raw__AMUX EQU CYREG_PRT0_AMUX +SCSI_Out__CD_raw__BIE EQU CYREG_PRT0_BIE +SCSI_Out__CD_raw__BIT_MASK EQU CYREG_PRT0_BIT_MASK +SCSI_Out__CD_raw__BYP EQU CYREG_PRT0_BYP +SCSI_Out__CD_raw__CTL EQU CYREG_PRT0_CTL +SCSI_Out__CD_raw__DM0 EQU CYREG_PRT0_DM0 +SCSI_Out__CD_raw__DM1 EQU CYREG_PRT0_DM1 +SCSI_Out__CD_raw__DM2 EQU CYREG_PRT0_DM2 +SCSI_Out__CD_raw__DR EQU CYREG_PRT0_DR +SCSI_Out__CD_raw__INP_DIS EQU CYREG_PRT0_INP_DIS +SCSI_Out__CD_raw__LCD_COM_SEG EQU CYREG_PRT0_LCD_COM_SEG +SCSI_Out__CD_raw__LCD_EN EQU CYREG_PRT0_LCD_EN +SCSI_Out__CD_raw__MASK EQU 0x40 +SCSI_Out__CD_raw__PC EQU CYREG_PRT0_PC6 +SCSI_Out__CD_raw__PORT EQU 0 +SCSI_Out__CD_raw__PRT EQU CYREG_PRT0_PRT +SCSI_Out__CD_raw__PRTDSI__CAPS_SEL EQU CYREG_PRT0_CAPS_SEL +SCSI_Out__CD_raw__PRTDSI__DBL_SYNC_IN EQU CYREG_PRT0_DBL_SYNC_IN +SCSI_Out__CD_raw__PRTDSI__OE_SEL0 EQU CYREG_PRT0_OE_SEL0 +SCSI_Out__CD_raw__PRTDSI__OE_SEL1 EQU CYREG_PRT0_OE_SEL1 +SCSI_Out__CD_raw__PRTDSI__OUT_SEL0 EQU CYREG_PRT0_OUT_SEL0 +SCSI_Out__CD_raw__PRTDSI__OUT_SEL1 EQU CYREG_PRT0_OUT_SEL1 +SCSI_Out__CD_raw__PRTDSI__SYNC_OUT EQU CYREG_PRT0_SYNC_OUT +SCSI_Out__CD_raw__PS EQU CYREG_PRT0_PS +SCSI_Out__CD_raw__SHIFT EQU 6 +SCSI_Out__CD_raw__SLW EQU CYREG_PRT0_SLW SCSI_Out__DBP_raw__AG EQU CYREG_PRT15_AG SCSI_Out__DBP_raw__AMUX EQU CYREG_PRT15_AMUX SCSI_Out__DBP_raw__BIE EQU CYREG_PRT15_BIE @@ -1733,33 +1913,33 @@ SCSI_Out__IO_raw__PRTDSI__SYNC_OUT EQU CYREG_PRT0_SYNC_OUT SCSI_Out__IO_raw__PS EQU CYREG_PRT0_PS SCSI_Out__IO_raw__SHIFT EQU 2 SCSI_Out__IO_raw__SLW EQU CYREG_PRT0_SLW -SCSI_Out__MSG__AG EQU CYREG_PRT4_AG -SCSI_Out__MSG__AMUX EQU CYREG_PRT4_AMUX -SCSI_Out__MSG__BIE EQU CYREG_PRT4_BIE -SCSI_Out__MSG__BIT_MASK EQU CYREG_PRT4_BIT_MASK -SCSI_Out__MSG__BYP EQU CYREG_PRT4_BYP -SCSI_Out__MSG__CTL EQU CYREG_PRT4_CTL -SCSI_Out__MSG__DM0 EQU CYREG_PRT4_DM0 -SCSI_Out__MSG__DM1 EQU CYREG_PRT4_DM1 -SCSI_Out__MSG__DM2 EQU CYREG_PRT4_DM2 -SCSI_Out__MSG__DR EQU CYREG_PRT4_DR -SCSI_Out__MSG__INP_DIS EQU CYREG_PRT4_INP_DIS -SCSI_Out__MSG__LCD_COM_SEG EQU CYREG_PRT4_LCD_COM_SEG -SCSI_Out__MSG__LCD_EN EQU CYREG_PRT4_LCD_EN -SCSI_Out__MSG__MASK EQU 0x10 -SCSI_Out__MSG__PC EQU CYREG_PRT4_PC4 -SCSI_Out__MSG__PORT EQU 4 -SCSI_Out__MSG__PRT EQU CYREG_PRT4_PRT -SCSI_Out__MSG__PRTDSI__CAPS_SEL EQU CYREG_PRT4_CAPS_SEL -SCSI_Out__MSG__PRTDSI__DBL_SYNC_IN EQU CYREG_PRT4_DBL_SYNC_IN -SCSI_Out__MSG__PRTDSI__OE_SEL0 EQU CYREG_PRT4_OE_SEL0 -SCSI_Out__MSG__PRTDSI__OE_SEL1 EQU CYREG_PRT4_OE_SEL1 -SCSI_Out__MSG__PRTDSI__OUT_SEL0 EQU CYREG_PRT4_OUT_SEL0 -SCSI_Out__MSG__PRTDSI__OUT_SEL1 EQU CYREG_PRT4_OUT_SEL1 -SCSI_Out__MSG__PRTDSI__SYNC_OUT EQU CYREG_PRT4_SYNC_OUT -SCSI_Out__MSG__PS EQU CYREG_PRT4_PS -SCSI_Out__MSG__SHIFT EQU 4 -SCSI_Out__MSG__SLW EQU CYREG_PRT4_SLW +SCSI_Out__MSG_raw__AG EQU CYREG_PRT4_AG +SCSI_Out__MSG_raw__AMUX EQU CYREG_PRT4_AMUX +SCSI_Out__MSG_raw__BIE EQU CYREG_PRT4_BIE +SCSI_Out__MSG_raw__BIT_MASK EQU CYREG_PRT4_BIT_MASK +SCSI_Out__MSG_raw__BYP EQU CYREG_PRT4_BYP +SCSI_Out__MSG_raw__CTL EQU CYREG_PRT4_CTL +SCSI_Out__MSG_raw__DM0 EQU CYREG_PRT4_DM0 +SCSI_Out__MSG_raw__DM1 EQU CYREG_PRT4_DM1 +SCSI_Out__MSG_raw__DM2 EQU CYREG_PRT4_DM2 +SCSI_Out__MSG_raw__DR EQU CYREG_PRT4_DR +SCSI_Out__MSG_raw__INP_DIS EQU CYREG_PRT4_INP_DIS +SCSI_Out__MSG_raw__LCD_COM_SEG EQU CYREG_PRT4_LCD_COM_SEG +SCSI_Out__MSG_raw__LCD_EN EQU CYREG_PRT4_LCD_EN +SCSI_Out__MSG_raw__MASK EQU 0x10 +SCSI_Out__MSG_raw__PC EQU CYREG_PRT4_PC4 +SCSI_Out__MSG_raw__PORT EQU 4 +SCSI_Out__MSG_raw__PRT EQU CYREG_PRT4_PRT +SCSI_Out__MSG_raw__PRTDSI__CAPS_SEL EQU CYREG_PRT4_CAPS_SEL +SCSI_Out__MSG_raw__PRTDSI__DBL_SYNC_IN EQU CYREG_PRT4_DBL_SYNC_IN +SCSI_Out__MSG_raw__PRTDSI__OE_SEL0 EQU CYREG_PRT4_OE_SEL0 +SCSI_Out__MSG_raw__PRTDSI__OE_SEL1 EQU CYREG_PRT4_OE_SEL1 +SCSI_Out__MSG_raw__PRTDSI__OUT_SEL0 EQU CYREG_PRT4_OUT_SEL0 +SCSI_Out__MSG_raw__PRTDSI__OUT_SEL1 EQU CYREG_PRT4_OUT_SEL1 +SCSI_Out__MSG_raw__PRTDSI__SYNC_OUT EQU CYREG_PRT4_SYNC_OUT +SCSI_Out__MSG_raw__PS EQU CYREG_PRT4_PS +SCSI_Out__MSG_raw__SHIFT EQU 4 +SCSI_Out__MSG_raw__SLW EQU CYREG_PRT4_SLW SCSI_Out__REQ__AG EQU CYREG_PRT0_AG SCSI_Out__REQ__AMUX EQU CYREG_PRT0_AMUX SCSI_Out__REQ__BIE EQU CYREG_PRT0_BIE @@ -2584,9 +2764,9 @@ CYDEV_CHIP_MEMBER_5B EQU 4 CYDEV_CHIP_FAMILY_PSOC5 EQU 3 CYDEV_CHIP_DIE_PSOC5LP EQU 4 CYDEV_CHIP_DIE_EXPECT EQU CYDEV_CHIP_DIE_PSOC5LP -BCLK__BUS_CLK__HZ EQU 60000000 -BCLK__BUS_CLK__KHZ EQU 60000 -BCLK__BUS_CLK__MHZ EQU 60 +BCLK__BUS_CLK__HZ EQU 50000000 +BCLK__BUS_CLK__KHZ EQU 50000 +BCLK__BUS_CLK__MHZ EQU 50 CYDEV_CHIP_DIE_ACTUAL EQU CYDEV_CHIP_DIE_EXPECT CYDEV_CHIP_DIE_LEOPARD EQU 1 CYDEV_CHIP_DIE_PANTHER EQU 3 @@ -2647,7 +2827,7 @@ CYDEV_DMA_CHANNELS_AVAILABLE EQU 24 CYDEV_ECC_ENABLE EQU 0 CYDEV_HEAP_SIZE EQU 0x1000 CYDEV_INSTRUCT_CACHE_ENABLED EQU 1 -CYDEV_INTR_RISING EQU 0x00000000 +CYDEV_INTR_RISING EQU 0x0000001E CYDEV_PROJ_TYPE EQU 2 CYDEV_PROJ_TYPE_BOOTLOADER EQU 1 CYDEV_PROJ_TYPE_LOADABLE EQU 2 @@ -2671,7 +2851,7 @@ CYDEV_VIO1_MV EQU 5000 CYDEV_VIO2 EQU 5 CYDEV_VIO2_MV EQU 5000 CYDEV_VIO3_MV EQU 3300 -DMA_CHANNELS_USED__MASK0 EQU 0x00000000 +DMA_CHANNELS_USED__MASK0 EQU 0x0000000F CYDEV_BOOTLOADER_ENABLE EQU 0 #endif /* INCLUDED_CYFITTERIAR_INC */ diff --git a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/cyfitterrv.inc b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/cyfitterrv.inc old mode 100755 new mode 100644 index 54871aef..65acb6bc --- a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/cyfitterrv.inc +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/cyfitterrv.inc @@ -3,6 +3,74 @@ INCLUDED_CYFITTERRV_INC EQU 1 GET cydevicerv.inc GET cydevicerv_trm.inc +; Debug_Timer_Interrupt +Debug_Timer_Interrupt__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 +Debug_Timer_Interrupt__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0 +Debug_Timer_Interrupt__INTC_MASK EQU 0x02 +Debug_Timer_Interrupt__INTC_NUMBER EQU 1 +Debug_Timer_Interrupt__INTC_PRIOR_NUM EQU 7 +Debug_Timer_Interrupt__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_1 +Debug_Timer_Interrupt__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 +Debug_Timer_Interrupt__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 + +; SCSI_RX_DMA_COMPLETE +SCSI_RX_DMA_COMPLETE__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 +SCSI_RX_DMA_COMPLETE__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0 +SCSI_RX_DMA_COMPLETE__INTC_MASK EQU 0x01 +SCSI_RX_DMA_COMPLETE__INTC_NUMBER EQU 0 +SCSI_RX_DMA_COMPLETE__INTC_PRIOR_NUM EQU 7 +SCSI_RX_DMA_COMPLETE__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_0 +SCSI_RX_DMA_COMPLETE__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 +SCSI_RX_DMA_COMPLETE__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 + +; SCSI_TX_DMA_COMPLETE +SCSI_TX_DMA_COMPLETE__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 +SCSI_TX_DMA_COMPLETE__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0 +SCSI_TX_DMA_COMPLETE__INTC_MASK EQU 0x04 +SCSI_TX_DMA_COMPLETE__INTC_NUMBER EQU 2 +SCSI_TX_DMA_COMPLETE__INTC_PRIOR_NUM EQU 7 +SCSI_TX_DMA_COMPLETE__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_2 +SCSI_TX_DMA_COMPLETE__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 +SCSI_TX_DMA_COMPLETE__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 + +; Debug_Timer_TimerHW +Debug_Timer_TimerHW__CAP0 EQU CYREG_TMR0_CAP0 +Debug_Timer_TimerHW__CAP1 EQU CYREG_TMR0_CAP1 +Debug_Timer_TimerHW__CFG0 EQU CYREG_TMR0_CFG0 +Debug_Timer_TimerHW__CFG1 EQU CYREG_TMR0_CFG1 +Debug_Timer_TimerHW__CFG2 EQU CYREG_TMR0_CFG2 +Debug_Timer_TimerHW__CNT_CMP0 EQU CYREG_TMR0_CNT_CMP0 +Debug_Timer_TimerHW__CNT_CMP1 EQU CYREG_TMR0_CNT_CMP1 +Debug_Timer_TimerHW__PER0 EQU CYREG_TMR0_PER0 +Debug_Timer_TimerHW__PER1 EQU CYREG_TMR0_PER1 +Debug_Timer_TimerHW__PM_ACT_CFG EQU CYREG_PM_ACT_CFG3 +Debug_Timer_TimerHW__PM_ACT_MSK EQU 0x01 +Debug_Timer_TimerHW__PM_STBY_CFG EQU CYREG_PM_STBY_CFG3 +Debug_Timer_TimerHW__PM_STBY_MSK EQU 0x01 +Debug_Timer_TimerHW__RT0 EQU CYREG_TMR0_RT0 +Debug_Timer_TimerHW__RT1 EQU CYREG_TMR0_RT1 +Debug_Timer_TimerHW__SR0 EQU CYREG_TMR0_SR0 + +; SD_RX_DMA_COMPLETE +SD_RX_DMA_COMPLETE__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 +SD_RX_DMA_COMPLETE__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0 +SD_RX_DMA_COMPLETE__INTC_MASK EQU 0x08 +SD_RX_DMA_COMPLETE__INTC_NUMBER EQU 3 +SD_RX_DMA_COMPLETE__INTC_PRIOR_NUM EQU 7 +SD_RX_DMA_COMPLETE__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_3 +SD_RX_DMA_COMPLETE__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 +SD_RX_DMA_COMPLETE__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 + +; SD_TX_DMA_COMPLETE +SD_TX_DMA_COMPLETE__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 +SD_TX_DMA_COMPLETE__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0 +SD_TX_DMA_COMPLETE__INTC_MASK EQU 0x10 +SD_TX_DMA_COMPLETE__INTC_NUMBER EQU 4 +SD_TX_DMA_COMPLETE__INTC_PRIOR_NUM EQU 7 +SD_TX_DMA_COMPLETE__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_4 +SD_TX_DMA_COMPLETE__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 +SD_TX_DMA_COMPLETE__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 + ; USBFS_bus_reset USBFS_bus_reset__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 USBFS_bus_reset__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0 @@ -13,6 +81,68 @@ USBFS_bus_reset__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_23 USBFS_bus_reset__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 USBFS_bus_reset__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 +; SCSI_CTL_PHASE +SCSI_CTL_PHASE_Sync_ctrl_reg__0__MASK EQU 0x01 +SCSI_CTL_PHASE_Sync_ctrl_reg__0__POS EQU 0 +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB12_13_ACTL +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB12_13_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB12_13_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB12_13_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB12_13_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB12_13_MSK +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB12_13_MSK +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB12_13_MSK +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB12_13_MSK +SCSI_CTL_PHASE_Sync_ctrl_reg__1__MASK EQU 0x02 +SCSI_CTL_PHASE_Sync_ctrl_reg__1__POS EQU 1 +SCSI_CTL_PHASE_Sync_ctrl_reg__2__MASK EQU 0x04 +SCSI_CTL_PHASE_Sync_ctrl_reg__2__POS EQU 2 +SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB12_ACTL +SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB12_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB12_ST_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB12_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB12_ST_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__MASK EQU 0x07 +SCSI_CTL_PHASE_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB12_MSK_ACTL +SCSI_CTL_PHASE_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB12_MSK +SCSI_CTL_PHASE_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB12_MSK_ACTL + +; SCSI_Out_Bits +SCSI_Out_Bits_Sync_ctrl_reg__0__MASK EQU 0x01 +SCSI_Out_Bits_Sync_ctrl_reg__0__POS EQU 0 +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB10_11_ACTL +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB10_11_CTL +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB10_11_CTL +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB10_11_CTL +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB10_11_CTL +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB10_11_MSK +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB10_11_MSK +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB10_11_MSK +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB10_11_MSK +SCSI_Out_Bits_Sync_ctrl_reg__1__MASK EQU 0x02 +SCSI_Out_Bits_Sync_ctrl_reg__1__POS EQU 1 +SCSI_Out_Bits_Sync_ctrl_reg__2__MASK EQU 0x04 +SCSI_Out_Bits_Sync_ctrl_reg__2__POS EQU 2 +SCSI_Out_Bits_Sync_ctrl_reg__3__MASK EQU 0x08 +SCSI_Out_Bits_Sync_ctrl_reg__3__POS EQU 3 +SCSI_Out_Bits_Sync_ctrl_reg__4__MASK EQU 0x10 +SCSI_Out_Bits_Sync_ctrl_reg__4__POS EQU 4 +SCSI_Out_Bits_Sync_ctrl_reg__5__MASK EQU 0x20 +SCSI_Out_Bits_Sync_ctrl_reg__5__POS EQU 5 +SCSI_Out_Bits_Sync_ctrl_reg__6__MASK EQU 0x40 +SCSI_Out_Bits_Sync_ctrl_reg__6__POS EQU 6 +SCSI_Out_Bits_Sync_ctrl_reg__7__MASK EQU 0x80 +SCSI_Out_Bits_Sync_ctrl_reg__7__POS EQU 7 +SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB10_ACTL +SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB10_CTL +SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB10_ST_CTL +SCSI_Out_Bits_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB10_CTL +SCSI_Out_Bits_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB10_ST_CTL +SCSI_Out_Bits_Sync_ctrl_reg__MASK EQU 0xFF +SCSI_Out_Bits_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB10_MSK_ACTL +SCSI_Out_Bits_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB10_MSK +SCSI_Out_Bits_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB10_MSK_ACTL + ; USBFS_arb_int USBFS_arb_int__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 USBFS_arb_int__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0 @@ -33,6 +163,28 @@ USBFS_sof_int__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_21 USBFS_sof_int__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 USBFS_sof_int__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 +; SCSI_Out_Ctl +SCSI_Out_Ctl_Sync_ctrl_reg__0__MASK EQU 0x01 +SCSI_Out_Ctl_Sync_ctrl_reg__0__POS EQU 0 +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B1_UDB08_09_ACTL +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B1_UDB08_09_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B1_UDB08_09_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B1_UDB08_09_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B1_UDB08_09_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B1_UDB08_09_MSK +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B1_UDB08_09_MSK +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B1_UDB08_09_MSK +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B1_UDB08_09_MSK +SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B1_UDB08_ACTL +SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B1_UDB08_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B1_UDB08_ST_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_REG EQU CYREG_B1_UDB08_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B1_UDB08_ST_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__MASK EQU 0x01 +SCSI_Out_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B1_UDB08_MSK_ACTL +SCSI_Out_Ctl_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B1_UDB08_MSK +SCSI_Out_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B1_UDB08_MSK_ACTL + ; SCSI_Out_DBx SCSI_Out_DBx__0__AG EQU CYREG_PRT5_AG SCSI_Out_DBx__0__AMUX EQU CYREG_PRT5_AMUX @@ -478,34 +630,23 @@ SCSI_RST_ISR__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 SCSI_RST_ISR__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 ; SDCard_BSPIM -SDCard_BSPIM_BitCounter_ST__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB06_07_ACTL -SDCard_BSPIM_BitCounter_ST__16BIT_STATUS_REG EQU CYREG_B0_UDB06_07_ST -SDCard_BSPIM_BitCounter_ST__MASK_REG EQU CYREG_B0_UDB06_MSK -SDCard_BSPIM_BitCounter_ST__MASK_ST_AUX_CTL_REG EQU CYREG_B0_UDB06_MSK_ACTL -SDCard_BSPIM_BitCounter_ST__PER_ST_AUX_CTL_REG EQU CYREG_B0_UDB06_MSK_ACTL -SDCard_BSPIM_BitCounter_ST__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB06_ACTL -SDCard_BSPIM_BitCounter_ST__STATUS_CNT_REG EQU CYREG_B0_UDB06_ST_CTL -SDCard_BSPIM_BitCounter_ST__STATUS_CONTROL_REG EQU CYREG_B0_UDB06_ST_CTL -SDCard_BSPIM_BitCounter_ST__STATUS_REG EQU CYREG_B0_UDB06_ST -SDCard_BSPIM_BitCounter__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB06_07_ACTL -SDCard_BSPIM_BitCounter__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB06_07_CTL -SDCard_BSPIM_BitCounter__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB06_07_CTL -SDCard_BSPIM_BitCounter__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB06_07_CTL -SDCard_BSPIM_BitCounter__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB06_07_CTL -SDCard_BSPIM_BitCounter__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB06_07_MSK -SDCard_BSPIM_BitCounter__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB06_07_MSK -SDCard_BSPIM_BitCounter__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB06_07_MSK -SDCard_BSPIM_BitCounter__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB06_07_MSK -SDCard_BSPIM_BitCounter__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB06_ACTL -SDCard_BSPIM_BitCounter__CONTROL_REG EQU CYREG_B0_UDB06_CTL -SDCard_BSPIM_BitCounter__CONTROL_ST_REG EQU CYREG_B0_UDB06_ST_CTL -SDCard_BSPIM_BitCounter__COUNT_REG EQU CYREG_B0_UDB06_CTL -SDCard_BSPIM_BitCounter__COUNT_ST_REG EQU CYREG_B0_UDB06_ST_CTL -SDCard_BSPIM_BitCounter__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB06_MSK_ACTL -SDCard_BSPIM_BitCounter__PERIOD_REG EQU CYREG_B0_UDB06_MSK -SDCard_BSPIM_BitCounter__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB06_MSK_ACTL -SDCard_BSPIM_RxStsReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B1_UDB06_07_ACTL -SDCard_BSPIM_RxStsReg__16BIT_STATUS_REG EQU CYREG_B1_UDB06_07_ST +SDCard_BSPIM_BitCounter_ST__MASK_REG EQU CYREG_B1_UDB11_MSK +SDCard_BSPIM_BitCounter_ST__MASK_ST_AUX_CTL_REG EQU CYREG_B1_UDB11_MSK_ACTL +SDCard_BSPIM_BitCounter_ST__PER_ST_AUX_CTL_REG EQU CYREG_B1_UDB11_MSK_ACTL +SDCard_BSPIM_BitCounter_ST__STATUS_AUX_CTL_REG EQU CYREG_B1_UDB11_ACTL +SDCard_BSPIM_BitCounter_ST__STATUS_CNT_REG EQU CYREG_B1_UDB11_ST_CTL +SDCard_BSPIM_BitCounter_ST__STATUS_CONTROL_REG EQU CYREG_B1_UDB11_ST_CTL +SDCard_BSPIM_BitCounter_ST__STATUS_REG EQU CYREG_B1_UDB11_ST +SDCard_BSPIM_BitCounter__CONTROL_AUX_CTL_REG EQU CYREG_B1_UDB11_ACTL +SDCard_BSPIM_BitCounter__CONTROL_REG EQU CYREG_B1_UDB11_CTL +SDCard_BSPIM_BitCounter__CONTROL_ST_REG EQU CYREG_B1_UDB11_ST_CTL +SDCard_BSPIM_BitCounter__COUNT_REG EQU CYREG_B1_UDB11_CTL +SDCard_BSPIM_BitCounter__COUNT_ST_REG EQU CYREG_B1_UDB11_ST_CTL +SDCard_BSPIM_BitCounter__MASK_CTL_AUX_CTL_REG EQU CYREG_B1_UDB11_MSK_ACTL +SDCard_BSPIM_BitCounter__PERIOD_REG EQU CYREG_B1_UDB11_MSK +SDCard_BSPIM_BitCounter__PER_CTL_AUX_CTL_REG EQU CYREG_B1_UDB11_MSK_ACTL +SDCard_BSPIM_RxStsReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B1_UDB10_11_ACTL +SDCard_BSPIM_RxStsReg__16BIT_STATUS_REG EQU CYREG_B1_UDB10_11_ST SDCard_BSPIM_RxStsReg__4__MASK EQU 0x10 SDCard_BSPIM_RxStsReg__4__POS EQU 4 SDCard_BSPIM_RxStsReg__5__MASK EQU 0x20 @@ -513,13 +654,13 @@ SDCard_BSPIM_RxStsReg__5__POS EQU 5 SDCard_BSPIM_RxStsReg__6__MASK EQU 0x40 SDCard_BSPIM_RxStsReg__6__POS EQU 6 SDCard_BSPIM_RxStsReg__MASK EQU 0x70 -SDCard_BSPIM_RxStsReg__MASK_REG EQU CYREG_B1_UDB06_MSK -SDCard_BSPIM_RxStsReg__STATUS_AUX_CTL_REG EQU CYREG_B1_UDB06_ACTL -SDCard_BSPIM_RxStsReg__STATUS_REG EQU CYREG_B1_UDB06_ST +SDCard_BSPIM_RxStsReg__MASK_REG EQU CYREG_B1_UDB10_MSK +SDCard_BSPIM_RxStsReg__STATUS_AUX_CTL_REG EQU CYREG_B1_UDB10_ACTL +SDCard_BSPIM_RxStsReg__STATUS_REG EQU CYREG_B1_UDB10_ST SDCard_BSPIM_TxStsReg__0__MASK EQU 0x01 SDCard_BSPIM_TxStsReg__0__POS EQU 0 -SDCard_BSPIM_TxStsReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB05_06_ACTL -SDCard_BSPIM_TxStsReg__16BIT_STATUS_REG EQU CYREG_B0_UDB05_06_ST +SDCard_BSPIM_TxStsReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B1_UDB08_09_ACTL +SDCard_BSPIM_TxStsReg__16BIT_STATUS_REG EQU CYREG_B1_UDB08_09_ST SDCard_BSPIM_TxStsReg__1__MASK EQU 0x02 SDCard_BSPIM_TxStsReg__1__POS EQU 1 SDCard_BSPIM_TxStsReg__2__MASK EQU 0x04 @@ -529,26 +670,30 @@ SDCard_BSPIM_TxStsReg__3__POS EQU 3 SDCard_BSPIM_TxStsReg__4__MASK EQU 0x10 SDCard_BSPIM_TxStsReg__4__POS EQU 4 SDCard_BSPIM_TxStsReg__MASK EQU 0x1F -SDCard_BSPIM_TxStsReg__MASK_REG EQU CYREG_B0_UDB05_MSK -SDCard_BSPIM_TxStsReg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB05_ACTL -SDCard_BSPIM_TxStsReg__STATUS_REG EQU CYREG_B0_UDB05_ST -SDCard_BSPIM_sR8_Dp_u0__16BIT_A0_REG EQU CYREG_B1_UDB06_07_A0 -SDCard_BSPIM_sR8_Dp_u0__16BIT_A1_REG EQU CYREG_B1_UDB06_07_A1 -SDCard_BSPIM_sR8_Dp_u0__16BIT_D0_REG EQU CYREG_B1_UDB06_07_D0 -SDCard_BSPIM_sR8_Dp_u0__16BIT_D1_REG EQU CYREG_B1_UDB06_07_D1 -SDCard_BSPIM_sR8_Dp_u0__16BIT_DP_AUX_CTL_REG EQU CYREG_B1_UDB06_07_ACTL -SDCard_BSPIM_sR8_Dp_u0__16BIT_F0_REG EQU CYREG_B1_UDB06_07_F0 -SDCard_BSPIM_sR8_Dp_u0__16BIT_F1_REG EQU CYREG_B1_UDB06_07_F1 -SDCard_BSPIM_sR8_Dp_u0__A0_A1_REG EQU CYREG_B1_UDB06_A0_A1 -SDCard_BSPIM_sR8_Dp_u0__A0_REG EQU CYREG_B1_UDB06_A0 -SDCard_BSPIM_sR8_Dp_u0__A1_REG EQU CYREG_B1_UDB06_A1 -SDCard_BSPIM_sR8_Dp_u0__D0_D1_REG EQU CYREG_B1_UDB06_D0_D1 -SDCard_BSPIM_sR8_Dp_u0__D0_REG EQU CYREG_B1_UDB06_D0 -SDCard_BSPIM_sR8_Dp_u0__D1_REG EQU CYREG_B1_UDB06_D1 -SDCard_BSPIM_sR8_Dp_u0__DP_AUX_CTL_REG EQU CYREG_B1_UDB06_ACTL -SDCard_BSPIM_sR8_Dp_u0__F0_F1_REG EQU CYREG_B1_UDB06_F0_F1 -SDCard_BSPIM_sR8_Dp_u0__F0_REG EQU CYREG_B1_UDB06_F0 -SDCard_BSPIM_sR8_Dp_u0__F1_REG EQU CYREG_B1_UDB06_F1 +SDCard_BSPIM_TxStsReg__MASK_REG EQU CYREG_B1_UDB08_MSK +SDCard_BSPIM_TxStsReg__MASK_ST_AUX_CTL_REG EQU CYREG_B1_UDB08_MSK_ACTL +SDCard_BSPIM_TxStsReg__PER_ST_AUX_CTL_REG EQU CYREG_B1_UDB08_MSK_ACTL +SDCard_BSPIM_TxStsReg__STATUS_AUX_CTL_REG EQU CYREG_B1_UDB08_ACTL +SDCard_BSPIM_TxStsReg__STATUS_CNT_REG EQU CYREG_B1_UDB08_ST_CTL +SDCard_BSPIM_TxStsReg__STATUS_CONTROL_REG EQU CYREG_B1_UDB08_ST_CTL +SDCard_BSPIM_TxStsReg__STATUS_REG EQU CYREG_B1_UDB08_ST +SDCard_BSPIM_sR8_Dp_u0__16BIT_A0_REG EQU CYREG_B0_UDB08_09_A0 +SDCard_BSPIM_sR8_Dp_u0__16BIT_A1_REG EQU CYREG_B0_UDB08_09_A1 +SDCard_BSPIM_sR8_Dp_u0__16BIT_D0_REG EQU CYREG_B0_UDB08_09_D0 +SDCard_BSPIM_sR8_Dp_u0__16BIT_D1_REG EQU CYREG_B0_UDB08_09_D1 +SDCard_BSPIM_sR8_Dp_u0__16BIT_DP_AUX_CTL_REG EQU CYREG_B0_UDB08_09_ACTL +SDCard_BSPIM_sR8_Dp_u0__16BIT_F0_REG EQU CYREG_B0_UDB08_09_F0 +SDCard_BSPIM_sR8_Dp_u0__16BIT_F1_REG EQU CYREG_B0_UDB08_09_F1 +SDCard_BSPIM_sR8_Dp_u0__A0_A1_REG EQU CYREG_B0_UDB08_A0_A1 +SDCard_BSPIM_sR8_Dp_u0__A0_REG EQU CYREG_B0_UDB08_A0 +SDCard_BSPIM_sR8_Dp_u0__A1_REG EQU CYREG_B0_UDB08_A1 +SDCard_BSPIM_sR8_Dp_u0__D0_D1_REG EQU CYREG_B0_UDB08_D0_D1 +SDCard_BSPIM_sR8_Dp_u0__D0_REG EQU CYREG_B0_UDB08_D0 +SDCard_BSPIM_sR8_Dp_u0__D1_REG EQU CYREG_B0_UDB08_D1 +SDCard_BSPIM_sR8_Dp_u0__DP_AUX_CTL_REG EQU CYREG_B0_UDB08_ACTL +SDCard_BSPIM_sR8_Dp_u0__F0_F1_REG EQU CYREG_B0_UDB08_F0_F1 +SDCard_BSPIM_sR8_Dp_u0__F0_REG EQU CYREG_B0_UDB08_F0 +SDCard_BSPIM_sR8_Dp_u0__F1_REG EQU CYREG_B0_UDB08_F1 ; USBFS_dp_int USBFS_dp_int__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 @@ -560,19 +705,6 @@ USBFS_dp_int__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_12 USBFS_dp_int__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 USBFS_dp_int__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 -; SCSI_CTL_IO -SCSI_CTL_IO_Sync_ctrl_reg__0__MASK EQU 0x01 -SCSI_CTL_IO_Sync_ctrl_reg__0__POS EQU 0 -SCSI_CTL_IO_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB15_ACTL -SCSI_CTL_IO_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB15_CTL -SCSI_CTL_IO_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB15_ST_CTL -SCSI_CTL_IO_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB15_CTL -SCSI_CTL_IO_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB15_ST_CTL -SCSI_CTL_IO_Sync_ctrl_reg__MASK EQU 0x01 -SCSI_CTL_IO_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB15_MSK_ACTL -SCSI_CTL_IO_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB15_MSK -SCSI_CTL_IO_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB15_MSK_ACTL - ; SCSI_In_DBx SCSI_In_DBx__0__AG EQU CYREG_PRT5_AG SCSI_In_DBx__0__AMUX EQU CYREG_PRT5_AMUX @@ -1003,6 +1135,30 @@ SCSI_In_DBx__DB7__PS EQU CYREG_PRT2_PS SCSI_In_DBx__DB7__SHIFT EQU 4 SCSI_In_DBx__DB7__SLW EQU CYREG_PRT2_SLW +; SCSI_RX_DMA +SCSI_RX_DMA__DRQ_CTL EQU CYREG_IDMUX_DRQ_CTL0 +SCSI_RX_DMA__DRQ_NUMBER EQU 0 +SCSI_RX_DMA__NUMBEROF_TDS EQU 0 +SCSI_RX_DMA__PRIORITY EQU 2 +SCSI_RX_DMA__TERMIN_EN EQU 0 +SCSI_RX_DMA__TERMIN_SEL EQU 0 +SCSI_RX_DMA__TERMOUT0_EN EQU 1 +SCSI_RX_DMA__TERMOUT0_SEL EQU 0 +SCSI_RX_DMA__TERMOUT1_EN EQU 0 +SCSI_RX_DMA__TERMOUT1_SEL EQU 0 + +; SCSI_TX_DMA +SCSI_TX_DMA__DRQ_CTL EQU CYREG_IDMUX_DRQ_CTL0 +SCSI_TX_DMA__DRQ_NUMBER EQU 1 +SCSI_TX_DMA__NUMBEROF_TDS EQU 0 +SCSI_TX_DMA__PRIORITY EQU 2 +SCSI_TX_DMA__TERMIN_EN EQU 0 +SCSI_TX_DMA__TERMIN_SEL EQU 0 +SCSI_TX_DMA__TERMOUT0_EN EQU 1 +SCSI_TX_DMA__TERMOUT0_SEL EQU 1 +SCSI_TX_DMA__TERMOUT1_EN EQU 0 +SCSI_TX_DMA__TERMOUT1_SEL EQU 0 + ; SD_Data_Clk SD_Data_Clk__CFG0 EQU CYREG_CLKDIST_DCFG0_CFG0 SD_Data_Clk__CFG1 EQU CYREG_CLKDIST_DCFG0_CFG1 @@ -1014,16 +1170,16 @@ SD_Data_Clk__PM_ACT_MSK EQU 0x01 SD_Data_Clk__PM_STBY_CFG EQU CYREG_PM_STBY_CFG2 SD_Data_Clk__PM_STBY_MSK EQU 0x01 -; SD_Init_Clk -SD_Init_Clk__CFG0 EQU CYREG_CLKDIST_DCFG1_CFG0 -SD_Init_Clk__CFG1 EQU CYREG_CLKDIST_DCFG1_CFG1 -SD_Init_Clk__CFG2 EQU CYREG_CLKDIST_DCFG1_CFG2 -SD_Init_Clk__CFG2_SRC_SEL_MASK EQU 0x07 -SD_Init_Clk__INDEX EQU 0x01 -SD_Init_Clk__PM_ACT_CFG EQU CYREG_PM_ACT_CFG2 -SD_Init_Clk__PM_ACT_MSK EQU 0x02 -SD_Init_Clk__PM_STBY_CFG EQU CYREG_PM_STBY_CFG2 -SD_Init_Clk__PM_STBY_MSK EQU 0x02 +; timer_clock +timer_clock__CFG0 EQU CYREG_CLKDIST_DCFG1_CFG0 +timer_clock__CFG1 EQU CYREG_CLKDIST_DCFG1_CFG1 +timer_clock__CFG2 EQU CYREG_CLKDIST_DCFG1_CFG2 +timer_clock__CFG2_SRC_SEL_MASK EQU 0x07 +timer_clock__INDEX EQU 0x01 +timer_clock__PM_ACT_CFG EQU CYREG_PM_ACT_CFG2 +timer_clock__PM_ACT_MSK EQU 0x02 +timer_clock__PM_STBY_CFG EQU CYREG_PM_STBY_CFG2 +timer_clock__PM_STBY_MSK EQU 0x02 ; scsiTarget scsiTarget_StatusReg__0__MASK EQU 0x01 @@ -1036,77 +1192,57 @@ scsiTarget_StatusReg__2__MASK EQU 0x04 scsiTarget_StatusReg__2__POS EQU 2 scsiTarget_StatusReg__3__MASK EQU 0x08 scsiTarget_StatusReg__3__POS EQU 3 -scsiTarget_StatusReg__MASK EQU 0x0F +scsiTarget_StatusReg__4__MASK EQU 0x10 +scsiTarget_StatusReg__4__POS EQU 4 +scsiTarget_StatusReg__MASK EQU 0x1F scsiTarget_StatusReg__MASK_REG EQU CYREG_B0_UDB13_MSK scsiTarget_StatusReg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB13_ACTL scsiTarget_StatusReg__STATUS_REG EQU CYREG_B0_UDB13_ST -scsiTarget_datapath_PI__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB10_11_ACTL -scsiTarget_datapath_PI__16BIT_STATUS_REG EQU CYREG_B0_UDB10_11_ST -scsiTarget_datapath_PI__MASK_REG EQU CYREG_B0_UDB10_MSK -scsiTarget_datapath_PI__MASK_ST_AUX_CTL_REG EQU CYREG_B0_UDB10_MSK_ACTL -scsiTarget_datapath_PI__PER_ST_AUX_CTL_REG EQU CYREG_B0_UDB10_MSK_ACTL -scsiTarget_datapath_PI__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB10_ACTL -scsiTarget_datapath_PI__STATUS_CNT_REG EQU CYREG_B0_UDB10_ST_CTL -scsiTarget_datapath_PI__STATUS_CONTROL_REG EQU CYREG_B0_UDB10_ST_CTL -scsiTarget_datapath_PI__STATUS_REG EQU CYREG_B0_UDB10_ST -scsiTarget_datapath_PO__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB10_11_ACTL -scsiTarget_datapath_PO__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB10_11_CTL -scsiTarget_datapath_PO__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB10_11_CTL -scsiTarget_datapath_PO__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB10_11_CTL -scsiTarget_datapath_PO__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB10_11_CTL -scsiTarget_datapath_PO__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB10_11_MSK -scsiTarget_datapath_PO__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB10_11_MSK -scsiTarget_datapath_PO__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB10_11_MSK -scsiTarget_datapath_PO__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB10_11_MSK -scsiTarget_datapath_PO__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB10_ACTL -scsiTarget_datapath_PO__CONTROL_REG EQU CYREG_B0_UDB10_CTL -scsiTarget_datapath_PO__CONTROL_ST_REG EQU CYREG_B0_UDB10_ST_CTL -scsiTarget_datapath_PO__COUNT_REG EQU CYREG_B0_UDB10_CTL -scsiTarget_datapath_PO__COUNT_ST_REG EQU CYREG_B0_UDB10_ST_CTL -scsiTarget_datapath_PO__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB10_MSK_ACTL -scsiTarget_datapath_PO__PERIOD_REG EQU CYREG_B0_UDB10_MSK -scsiTarget_datapath_PO__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB10_MSK_ACTL -scsiTarget_datapath__16BIT_A0_REG EQU CYREG_B0_UDB10_11_A0 -scsiTarget_datapath__16BIT_A1_REG EQU CYREG_B0_UDB10_11_A1 -scsiTarget_datapath__16BIT_D0_REG EQU CYREG_B0_UDB10_11_D0 -scsiTarget_datapath__16BIT_D1_REG EQU CYREG_B0_UDB10_11_D1 -scsiTarget_datapath__16BIT_DP_AUX_CTL_REG EQU CYREG_B0_UDB10_11_ACTL -scsiTarget_datapath__16BIT_F0_REG EQU CYREG_B0_UDB10_11_F0 -scsiTarget_datapath__16BIT_F1_REG EQU CYREG_B0_UDB10_11_F1 -scsiTarget_datapath__A0_A1_REG EQU CYREG_B0_UDB10_A0_A1 -scsiTarget_datapath__A0_REG EQU CYREG_B0_UDB10_A0 -scsiTarget_datapath__A1_REG EQU CYREG_B0_UDB10_A1 -scsiTarget_datapath__D0_D1_REG EQU CYREG_B0_UDB10_D0_D1 -scsiTarget_datapath__D0_REG EQU CYREG_B0_UDB10_D0 -scsiTarget_datapath__D1_REG EQU CYREG_B0_UDB10_D1 -scsiTarget_datapath__DP_AUX_CTL_REG EQU CYREG_B0_UDB10_ACTL -scsiTarget_datapath__F0_F1_REG EQU CYREG_B0_UDB10_F0_F1 -scsiTarget_datapath__F0_REG EQU CYREG_B0_UDB10_F0 -scsiTarget_datapath__F1_REG EQU CYREG_B0_UDB10_F1 -scsiTarget_datapath__MSK_DP_AUX_CTL_REG EQU CYREG_B0_UDB10_MSK_ACTL -scsiTarget_datapath__PER_DP_AUX_CTL_REG EQU CYREG_B0_UDB10_MSK_ACTL - -; SD_Clk_Ctl -SD_Clk_Ctl_Sync_ctrl_reg__0__MASK EQU 0x01 -SD_Clk_Ctl_Sync_ctrl_reg__0__POS EQU 0 -SD_Clk_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB04_05_ACTL -SD_Clk_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB04_05_CTL -SD_Clk_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB04_05_CTL -SD_Clk_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB04_05_CTL -SD_Clk_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB04_05_CTL -SD_Clk_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB04_05_MSK -SD_Clk_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB04_05_MSK -SD_Clk_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB04_05_MSK -SD_Clk_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB04_05_MSK -SD_Clk_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB04_ACTL -SD_Clk_Ctl_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB04_CTL -SD_Clk_Ctl_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB04_ST_CTL -SD_Clk_Ctl_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB04_CTL -SD_Clk_Ctl_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB04_ST_CTL -SD_Clk_Ctl_Sync_ctrl_reg__MASK EQU 0x01 -SD_Clk_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB04_MSK_ACTL -SD_Clk_Ctl_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB04_MSK -SD_Clk_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB04_MSK_ACTL +scsiTarget_datapath_PI__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB14_15_ACTL +scsiTarget_datapath_PI__16BIT_STATUS_REG EQU CYREG_B0_UDB14_15_ST +scsiTarget_datapath_PI__MASK_REG EQU CYREG_B0_UDB14_MSK +scsiTarget_datapath_PI__MASK_ST_AUX_CTL_REG EQU CYREG_B0_UDB14_MSK_ACTL +scsiTarget_datapath_PI__PER_ST_AUX_CTL_REG EQU CYREG_B0_UDB14_MSK_ACTL +scsiTarget_datapath_PI__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB14_ACTL +scsiTarget_datapath_PI__STATUS_CNT_REG EQU CYREG_B0_UDB14_ST_CTL +scsiTarget_datapath_PI__STATUS_CONTROL_REG EQU CYREG_B0_UDB14_ST_CTL +scsiTarget_datapath_PI__STATUS_REG EQU CYREG_B0_UDB14_ST +scsiTarget_datapath_PO__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB14_15_ACTL +scsiTarget_datapath_PO__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB14_15_CTL +scsiTarget_datapath_PO__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB14_15_CTL +scsiTarget_datapath_PO__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB14_15_CTL +scsiTarget_datapath_PO__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB14_15_CTL +scsiTarget_datapath_PO__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB14_15_MSK +scsiTarget_datapath_PO__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB14_15_MSK +scsiTarget_datapath_PO__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB14_15_MSK +scsiTarget_datapath_PO__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB14_15_MSK +scsiTarget_datapath_PO__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB14_ACTL +scsiTarget_datapath_PO__CONTROL_REG EQU CYREG_B0_UDB14_CTL +scsiTarget_datapath_PO__CONTROL_ST_REG EQU CYREG_B0_UDB14_ST_CTL +scsiTarget_datapath_PO__COUNT_REG EQU CYREG_B0_UDB14_CTL +scsiTarget_datapath_PO__COUNT_ST_REG EQU CYREG_B0_UDB14_ST_CTL +scsiTarget_datapath_PO__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB14_MSK_ACTL +scsiTarget_datapath_PO__PERIOD_REG EQU CYREG_B0_UDB14_MSK +scsiTarget_datapath_PO__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB14_MSK_ACTL +scsiTarget_datapath__16BIT_A0_REG EQU CYREG_B0_UDB14_15_A0 +scsiTarget_datapath__16BIT_A1_REG EQU CYREG_B0_UDB14_15_A1 +scsiTarget_datapath__16BIT_D0_REG EQU CYREG_B0_UDB14_15_D0 +scsiTarget_datapath__16BIT_D1_REG EQU CYREG_B0_UDB14_15_D1 +scsiTarget_datapath__16BIT_DP_AUX_CTL_REG EQU CYREG_B0_UDB14_15_ACTL +scsiTarget_datapath__16BIT_F0_REG EQU CYREG_B0_UDB14_15_F0 +scsiTarget_datapath__16BIT_F1_REG EQU CYREG_B0_UDB14_15_F1 +scsiTarget_datapath__A0_A1_REG EQU CYREG_B0_UDB14_A0_A1 +scsiTarget_datapath__A0_REG EQU CYREG_B0_UDB14_A0 +scsiTarget_datapath__A1_REG EQU CYREG_B0_UDB14_A1 +scsiTarget_datapath__D0_D1_REG EQU CYREG_B0_UDB14_D0_D1 +scsiTarget_datapath__D0_REG EQU CYREG_B0_UDB14_D0 +scsiTarget_datapath__D1_REG EQU CYREG_B0_UDB14_D1 +scsiTarget_datapath__DP_AUX_CTL_REG EQU CYREG_B0_UDB14_ACTL +scsiTarget_datapath__F0_F1_REG EQU CYREG_B0_UDB14_F0_F1 +scsiTarget_datapath__F0_REG EQU CYREG_B0_UDB14_F0 +scsiTarget_datapath__F1_REG EQU CYREG_B0_UDB14_F1 +scsiTarget_datapath__MSK_DP_AUX_CTL_REG EQU CYREG_B0_UDB14_MSK_ACTL +scsiTarget_datapath__PER_DP_AUX_CTL_REG EQU CYREG_B0_UDB14_MSK_ACTL ; USBFS_ep_0 USBFS_ep_0__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 @@ -1121,23 +1257,67 @@ USBFS_ep_0__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 ; USBFS_ep_1 USBFS_ep_1__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 USBFS_ep_1__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0 -USBFS_ep_1__INTC_MASK EQU 0x01 -USBFS_ep_1__INTC_NUMBER EQU 0 +USBFS_ep_1__INTC_MASK EQU 0x20 +USBFS_ep_1__INTC_NUMBER EQU 5 USBFS_ep_1__INTC_PRIOR_NUM EQU 7 -USBFS_ep_1__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_0 +USBFS_ep_1__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_5 USBFS_ep_1__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 USBFS_ep_1__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 ; USBFS_ep_2 USBFS_ep_2__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 USBFS_ep_2__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0 -USBFS_ep_2__INTC_MASK EQU 0x02 -USBFS_ep_2__INTC_NUMBER EQU 1 +USBFS_ep_2__INTC_MASK EQU 0x40 +USBFS_ep_2__INTC_NUMBER EQU 6 USBFS_ep_2__INTC_PRIOR_NUM EQU 7 -USBFS_ep_2__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_1 +USBFS_ep_2__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_6 USBFS_ep_2__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 USBFS_ep_2__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 +; USBFS_ep_3 +USBFS_ep_3__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 +USBFS_ep_3__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0 +USBFS_ep_3__INTC_MASK EQU 0x80 +USBFS_ep_3__INTC_NUMBER EQU 7 +USBFS_ep_3__INTC_PRIOR_NUM EQU 7 +USBFS_ep_3__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_7 +USBFS_ep_3__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 +USBFS_ep_3__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 + +; USBFS_ep_4 +USBFS_ep_4__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 +USBFS_ep_4__INTC_CLR_PD_REG EQU CYREG_NVIC_CLRPEND0 +USBFS_ep_4__INTC_MASK EQU 0x200 +USBFS_ep_4__INTC_NUMBER EQU 9 +USBFS_ep_4__INTC_PRIOR_NUM EQU 7 +USBFS_ep_4__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_9 +USBFS_ep_4__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 +USBFS_ep_4__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 + +; SD_RX_DMA +SD_RX_DMA__DRQ_CTL EQU CYREG_IDMUX_DRQ_CTL0 +SD_RX_DMA__DRQ_NUMBER EQU 2 +SD_RX_DMA__NUMBEROF_TDS EQU 0 +SD_RX_DMA__PRIORITY EQU 1 +SD_RX_DMA__TERMIN_EN EQU 0 +SD_RX_DMA__TERMIN_SEL EQU 0 +SD_RX_DMA__TERMOUT0_EN EQU 1 +SD_RX_DMA__TERMOUT0_SEL EQU 2 +SD_RX_DMA__TERMOUT1_EN EQU 0 +SD_RX_DMA__TERMOUT1_SEL EQU 0 + +; SD_TX_DMA +SD_TX_DMA__DRQ_CTL EQU CYREG_IDMUX_DRQ_CTL0 +SD_TX_DMA__DRQ_NUMBER EQU 3 +SD_TX_DMA__NUMBEROF_TDS EQU 0 +SD_TX_DMA__PRIORITY EQU 2 +SD_TX_DMA__TERMIN_EN EQU 0 +SD_TX_DMA__TERMIN_SEL EQU 0 +SD_TX_DMA__TERMOUT0_EN EQU 1 +SD_TX_DMA__TERMOUT0_SEL EQU 3 +SD_TX_DMA__TERMOUT1_EN EQU 0 +SD_TX_DMA__TERMOUT1_SEL EQU 0 + ; USBFS_USB USBFS_USB__ARB_CFG EQU CYREG_USB_ARB_CFG USBFS_USB__ARB_EP1_CFG EQU CYREG_USB_ARB_EP1_CFG @@ -1652,33 +1832,33 @@ SCSI_Out__BSY__PRTDSI__SYNC_OUT EQU CYREG_PRT6_SYNC_OUT SCSI_Out__BSY__PS EQU CYREG_PRT6_PS SCSI_Out__BSY__SHIFT EQU 1 SCSI_Out__BSY__SLW EQU CYREG_PRT6_SLW -SCSI_Out__CD__AG EQU CYREG_PRT0_AG -SCSI_Out__CD__AMUX EQU CYREG_PRT0_AMUX -SCSI_Out__CD__BIE EQU CYREG_PRT0_BIE -SCSI_Out__CD__BIT_MASK EQU CYREG_PRT0_BIT_MASK -SCSI_Out__CD__BYP EQU CYREG_PRT0_BYP -SCSI_Out__CD__CTL EQU CYREG_PRT0_CTL -SCSI_Out__CD__DM0 EQU CYREG_PRT0_DM0 -SCSI_Out__CD__DM1 EQU CYREG_PRT0_DM1 -SCSI_Out__CD__DM2 EQU CYREG_PRT0_DM2 -SCSI_Out__CD__DR EQU CYREG_PRT0_DR -SCSI_Out__CD__INP_DIS EQU CYREG_PRT0_INP_DIS -SCSI_Out__CD__LCD_COM_SEG EQU CYREG_PRT0_LCD_COM_SEG -SCSI_Out__CD__LCD_EN EQU CYREG_PRT0_LCD_EN -SCSI_Out__CD__MASK EQU 0x40 -SCSI_Out__CD__PC EQU CYREG_PRT0_PC6 -SCSI_Out__CD__PORT EQU 0 -SCSI_Out__CD__PRT EQU CYREG_PRT0_PRT -SCSI_Out__CD__PRTDSI__CAPS_SEL EQU CYREG_PRT0_CAPS_SEL -SCSI_Out__CD__PRTDSI__DBL_SYNC_IN EQU CYREG_PRT0_DBL_SYNC_IN -SCSI_Out__CD__PRTDSI__OE_SEL0 EQU CYREG_PRT0_OE_SEL0 -SCSI_Out__CD__PRTDSI__OE_SEL1 EQU CYREG_PRT0_OE_SEL1 -SCSI_Out__CD__PRTDSI__OUT_SEL0 EQU CYREG_PRT0_OUT_SEL0 -SCSI_Out__CD__PRTDSI__OUT_SEL1 EQU CYREG_PRT0_OUT_SEL1 -SCSI_Out__CD__PRTDSI__SYNC_OUT EQU CYREG_PRT0_SYNC_OUT -SCSI_Out__CD__PS EQU CYREG_PRT0_PS -SCSI_Out__CD__SHIFT EQU 6 -SCSI_Out__CD__SLW EQU CYREG_PRT0_SLW +SCSI_Out__CD_raw__AG EQU CYREG_PRT0_AG +SCSI_Out__CD_raw__AMUX EQU CYREG_PRT0_AMUX +SCSI_Out__CD_raw__BIE EQU CYREG_PRT0_BIE +SCSI_Out__CD_raw__BIT_MASK EQU CYREG_PRT0_BIT_MASK +SCSI_Out__CD_raw__BYP EQU CYREG_PRT0_BYP +SCSI_Out__CD_raw__CTL EQU CYREG_PRT0_CTL +SCSI_Out__CD_raw__DM0 EQU CYREG_PRT0_DM0 +SCSI_Out__CD_raw__DM1 EQU CYREG_PRT0_DM1 +SCSI_Out__CD_raw__DM2 EQU CYREG_PRT0_DM2 +SCSI_Out__CD_raw__DR EQU CYREG_PRT0_DR +SCSI_Out__CD_raw__INP_DIS EQU CYREG_PRT0_INP_DIS +SCSI_Out__CD_raw__LCD_COM_SEG EQU CYREG_PRT0_LCD_COM_SEG +SCSI_Out__CD_raw__LCD_EN EQU CYREG_PRT0_LCD_EN +SCSI_Out__CD_raw__MASK EQU 0x40 +SCSI_Out__CD_raw__PC EQU CYREG_PRT0_PC6 +SCSI_Out__CD_raw__PORT EQU 0 +SCSI_Out__CD_raw__PRT EQU CYREG_PRT0_PRT +SCSI_Out__CD_raw__PRTDSI__CAPS_SEL EQU CYREG_PRT0_CAPS_SEL +SCSI_Out__CD_raw__PRTDSI__DBL_SYNC_IN EQU CYREG_PRT0_DBL_SYNC_IN +SCSI_Out__CD_raw__PRTDSI__OE_SEL0 EQU CYREG_PRT0_OE_SEL0 +SCSI_Out__CD_raw__PRTDSI__OE_SEL1 EQU CYREG_PRT0_OE_SEL1 +SCSI_Out__CD_raw__PRTDSI__OUT_SEL0 EQU CYREG_PRT0_OUT_SEL0 +SCSI_Out__CD_raw__PRTDSI__OUT_SEL1 EQU CYREG_PRT0_OUT_SEL1 +SCSI_Out__CD_raw__PRTDSI__SYNC_OUT EQU CYREG_PRT0_SYNC_OUT +SCSI_Out__CD_raw__PS EQU CYREG_PRT0_PS +SCSI_Out__CD_raw__SHIFT EQU 6 +SCSI_Out__CD_raw__SLW EQU CYREG_PRT0_SLW SCSI_Out__DBP_raw__AG EQU CYREG_PRT15_AG SCSI_Out__DBP_raw__AMUX EQU CYREG_PRT15_AMUX SCSI_Out__DBP_raw__BIE EQU CYREG_PRT15_BIE @@ -1733,33 +1913,33 @@ SCSI_Out__IO_raw__PRTDSI__SYNC_OUT EQU CYREG_PRT0_SYNC_OUT SCSI_Out__IO_raw__PS EQU CYREG_PRT0_PS SCSI_Out__IO_raw__SHIFT EQU 2 SCSI_Out__IO_raw__SLW EQU CYREG_PRT0_SLW -SCSI_Out__MSG__AG EQU CYREG_PRT4_AG -SCSI_Out__MSG__AMUX EQU CYREG_PRT4_AMUX -SCSI_Out__MSG__BIE EQU CYREG_PRT4_BIE -SCSI_Out__MSG__BIT_MASK EQU CYREG_PRT4_BIT_MASK -SCSI_Out__MSG__BYP EQU CYREG_PRT4_BYP -SCSI_Out__MSG__CTL EQU CYREG_PRT4_CTL -SCSI_Out__MSG__DM0 EQU CYREG_PRT4_DM0 -SCSI_Out__MSG__DM1 EQU CYREG_PRT4_DM1 -SCSI_Out__MSG__DM2 EQU CYREG_PRT4_DM2 -SCSI_Out__MSG__DR EQU CYREG_PRT4_DR -SCSI_Out__MSG__INP_DIS EQU CYREG_PRT4_INP_DIS -SCSI_Out__MSG__LCD_COM_SEG EQU CYREG_PRT4_LCD_COM_SEG -SCSI_Out__MSG__LCD_EN EQU CYREG_PRT4_LCD_EN -SCSI_Out__MSG__MASK EQU 0x10 -SCSI_Out__MSG__PC EQU CYREG_PRT4_PC4 -SCSI_Out__MSG__PORT EQU 4 -SCSI_Out__MSG__PRT EQU CYREG_PRT4_PRT -SCSI_Out__MSG__PRTDSI__CAPS_SEL EQU CYREG_PRT4_CAPS_SEL -SCSI_Out__MSG__PRTDSI__DBL_SYNC_IN EQU CYREG_PRT4_DBL_SYNC_IN -SCSI_Out__MSG__PRTDSI__OE_SEL0 EQU CYREG_PRT4_OE_SEL0 -SCSI_Out__MSG__PRTDSI__OE_SEL1 EQU CYREG_PRT4_OE_SEL1 -SCSI_Out__MSG__PRTDSI__OUT_SEL0 EQU CYREG_PRT4_OUT_SEL0 -SCSI_Out__MSG__PRTDSI__OUT_SEL1 EQU CYREG_PRT4_OUT_SEL1 -SCSI_Out__MSG__PRTDSI__SYNC_OUT EQU CYREG_PRT4_SYNC_OUT -SCSI_Out__MSG__PS EQU CYREG_PRT4_PS -SCSI_Out__MSG__SHIFT EQU 4 -SCSI_Out__MSG__SLW EQU CYREG_PRT4_SLW +SCSI_Out__MSG_raw__AG EQU CYREG_PRT4_AG +SCSI_Out__MSG_raw__AMUX EQU CYREG_PRT4_AMUX +SCSI_Out__MSG_raw__BIE EQU CYREG_PRT4_BIE +SCSI_Out__MSG_raw__BIT_MASK EQU CYREG_PRT4_BIT_MASK +SCSI_Out__MSG_raw__BYP EQU CYREG_PRT4_BYP +SCSI_Out__MSG_raw__CTL EQU CYREG_PRT4_CTL +SCSI_Out__MSG_raw__DM0 EQU CYREG_PRT4_DM0 +SCSI_Out__MSG_raw__DM1 EQU CYREG_PRT4_DM1 +SCSI_Out__MSG_raw__DM2 EQU CYREG_PRT4_DM2 +SCSI_Out__MSG_raw__DR EQU CYREG_PRT4_DR +SCSI_Out__MSG_raw__INP_DIS EQU CYREG_PRT4_INP_DIS +SCSI_Out__MSG_raw__LCD_COM_SEG EQU CYREG_PRT4_LCD_COM_SEG +SCSI_Out__MSG_raw__LCD_EN EQU CYREG_PRT4_LCD_EN +SCSI_Out__MSG_raw__MASK EQU 0x10 +SCSI_Out__MSG_raw__PC EQU CYREG_PRT4_PC4 +SCSI_Out__MSG_raw__PORT EQU 4 +SCSI_Out__MSG_raw__PRT EQU CYREG_PRT4_PRT +SCSI_Out__MSG_raw__PRTDSI__CAPS_SEL EQU CYREG_PRT4_CAPS_SEL +SCSI_Out__MSG_raw__PRTDSI__DBL_SYNC_IN EQU CYREG_PRT4_DBL_SYNC_IN +SCSI_Out__MSG_raw__PRTDSI__OE_SEL0 EQU CYREG_PRT4_OE_SEL0 +SCSI_Out__MSG_raw__PRTDSI__OE_SEL1 EQU CYREG_PRT4_OE_SEL1 +SCSI_Out__MSG_raw__PRTDSI__OUT_SEL0 EQU CYREG_PRT4_OUT_SEL0 +SCSI_Out__MSG_raw__PRTDSI__OUT_SEL1 EQU CYREG_PRT4_OUT_SEL1 +SCSI_Out__MSG_raw__PRTDSI__SYNC_OUT EQU CYREG_PRT4_SYNC_OUT +SCSI_Out__MSG_raw__PS EQU CYREG_PRT4_PS +SCSI_Out__MSG_raw__SHIFT EQU 4 +SCSI_Out__MSG_raw__SLW EQU CYREG_PRT4_SLW SCSI_Out__REQ__AG EQU CYREG_PRT0_AG SCSI_Out__REQ__AMUX EQU CYREG_PRT0_AMUX SCSI_Out__REQ__BIE EQU CYREG_PRT0_BIE @@ -2584,9 +2764,9 @@ CYDEV_CHIP_MEMBER_5B EQU 4 CYDEV_CHIP_FAMILY_PSOC5 EQU 3 CYDEV_CHIP_DIE_PSOC5LP EQU 4 CYDEV_CHIP_DIE_EXPECT EQU CYDEV_CHIP_DIE_PSOC5LP -BCLK__BUS_CLK__HZ EQU 60000000 -BCLK__BUS_CLK__KHZ EQU 60000 -BCLK__BUS_CLK__MHZ EQU 60 +BCLK__BUS_CLK__HZ EQU 50000000 +BCLK__BUS_CLK__KHZ EQU 50000 +BCLK__BUS_CLK__MHZ EQU 50 CYDEV_CHIP_DIE_ACTUAL EQU CYDEV_CHIP_DIE_EXPECT CYDEV_CHIP_DIE_LEOPARD EQU 1 CYDEV_CHIP_DIE_PANTHER EQU 3 @@ -2647,7 +2827,7 @@ CYDEV_DMA_CHANNELS_AVAILABLE EQU 24 CYDEV_ECC_ENABLE EQU 0 CYDEV_HEAP_SIZE EQU 0x1000 CYDEV_INSTRUCT_CACHE_ENABLED EQU 1 -CYDEV_INTR_RISING EQU 0x00000000 +CYDEV_INTR_RISING EQU 0x0000001E CYDEV_PROJ_TYPE EQU 2 CYDEV_PROJ_TYPE_BOOTLOADER EQU 1 CYDEV_PROJ_TYPE_LOADABLE EQU 2 @@ -2671,7 +2851,7 @@ CYDEV_VIO1_MV EQU 5000 CYDEV_VIO2 EQU 5 CYDEV_VIO2_MV EQU 5000 CYDEV_VIO3_MV EQU 3300 -DMA_CHANNELS_USED__MASK0 EQU 0x00000000 +DMA_CHANNELS_USED__MASK0 EQU 0x0000000F CYDEV_BOOTLOADER_ENABLE EQU 0 ENDIF END diff --git a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/project.h b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/project.h old mode 100755 new mode 100644 index 93cd634a..daae4f52 --- a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/project.h +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/project.h @@ -21,12 +21,13 @@ #include #include #include -#include +#include +#include #include -#include +#include #include #include -#include +#include #include #include #include @@ -54,6 +55,16 @@ #include #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include diff --git a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/timer_clock.c b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/timer_clock.c new file mode 100644 index 00000000..b4c30ae2 --- /dev/null +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/timer_clock.c @@ -0,0 +1,521 @@ +/******************************************************************************* +* File Name: timer_clock.c +* Version 2.10 +* +* Description: +* This file provides the source code to the API for the clock component. +* +* 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 +#include "timer_clock.h" + +/* Clock Distribution registers. */ +#define CLK_DIST_LD (* (reg8 *) CYREG_CLKDIST_LD) +#define CLK_DIST_BCFG2 (* (reg8 *) CYREG_CLKDIST_BCFG2) +#define BCFG2_MASK (0x80u) +#define CLK_DIST_DMASK (* (reg8 *) CYREG_CLKDIST_DMASK) +#define CLK_DIST_AMASK (* (reg8 *) CYREG_CLKDIST_AMASK) + +#define HAS_CLKDIST_LD_DISABLE (CY_PSOC3 || CY_PSOC5LP) + + +/******************************************************************************* +* Function Name: timer_clock_Start +******************************************************************************** +* +* Summary: +* Starts the clock. Note that on startup, clocks may be already running if the +* "Start on Reset" option is enabled in the DWR. +* +* Parameters: +* None +* +* Returns: +* None +* +*******************************************************************************/ +void timer_clock_Start(void) +{ + /* Set the bit to enable the clock. */ + timer_clock_CLKEN |= timer_clock_CLKEN_MASK; + timer_clock_CLKSTBY |= timer_clock_CLKSTBY_MASK; +} + + +/******************************************************************************* +* Function Name: timer_clock_Stop +******************************************************************************** +* +* Summary: +* Stops the clock and returns immediately. This API does not require the +* source clock to be running but may return before the hardware is actually +* disabled. If the settings of the clock are changed after calling this +* function, the clock may glitch when it is started. To avoid the clock +* glitch, use the StopBlock function. +* +* Parameters: +* None +* +* Returns: +* None +* +*******************************************************************************/ +void timer_clock_Stop(void) +{ + /* Clear the bit to disable the clock. */ + timer_clock_CLKEN &= (uint8)(~timer_clock_CLKEN_MASK); + timer_clock_CLKSTBY &= (uint8)(~timer_clock_CLKSTBY_MASK); +} + + +#if(CY_PSOC3 || CY_PSOC5LP) + + +/******************************************************************************* +* Function Name: timer_clock_StopBlock +******************************************************************************** +* +* Summary: +* Stops the clock and waits for the hardware to actually be disabled before +* returning. This ensures that the clock is never truncated (high part of the +* cycle will terminate before the clock is disabled and the API returns). +* Note that the source clock must be running or this API will never return as +* a stopped clock cannot be disabled. +* +* Parameters: +* None +* +* Returns: +* None +* +*******************************************************************************/ +void timer_clock_StopBlock(void) +{ + if ((timer_clock_CLKEN & timer_clock_CLKEN_MASK) != 0u) + { +#if HAS_CLKDIST_LD_DISABLE + uint16 oldDivider; + + CLK_DIST_LD = 0u; + + /* Clear all the mask bits except ours. */ +#if defined(timer_clock__CFG3) + CLK_DIST_AMASK = timer_clock_CLKEN_MASK; + CLK_DIST_DMASK = 0x00u; +#else + CLK_DIST_DMASK = timer_clock_CLKEN_MASK; + CLK_DIST_AMASK = 0x00u; +#endif /* timer_clock__CFG3 */ + + /* Clear mask of bus clock. */ + CLK_DIST_BCFG2 &= (uint8)(~BCFG2_MASK); + + oldDivider = CY_GET_REG16(timer_clock_DIV_PTR); + CY_SET_REG16(CYREG_CLKDIST_WRK0, oldDivider); + CLK_DIST_LD = CYCLK_LD_DISABLE | CYCLK_LD_SYNC_EN | CYCLK_LD_LOAD; + + /* Wait for clock to be disabled */ + while ((CLK_DIST_LD & CYCLK_LD_LOAD) != 0u) { } +#endif /* HAS_CLKDIST_LD_DISABLE */ + + /* Clear the bit to disable the clock. */ + timer_clock_CLKEN &= (uint8)(~timer_clock_CLKEN_MASK); + timer_clock_CLKSTBY &= (uint8)(~timer_clock_CLKSTBY_MASK); + +#if HAS_CLKDIST_LD_DISABLE + /* Clear the disable bit */ + CLK_DIST_LD = 0x00u; + CY_SET_REG16(timer_clock_DIV_PTR, oldDivider); +#endif /* HAS_CLKDIST_LD_DISABLE */ + } +} +#endif /* (CY_PSOC3 || CY_PSOC5LP) */ + + +/******************************************************************************* +* Function Name: timer_clock_StandbyPower +******************************************************************************** +* +* Summary: +* Sets whether the clock is active in standby mode. +* +* Parameters: +* state: 0 to disable clock during standby, nonzero to enable. +* +* Returns: +* None +* +*******************************************************************************/ +void timer_clock_StandbyPower(uint8 state) +{ + if(state == 0u) + { + timer_clock_CLKSTBY &= (uint8)(~timer_clock_CLKSTBY_MASK); + } + else + { + timer_clock_CLKSTBY |= timer_clock_CLKSTBY_MASK; + } +} + + +/******************************************************************************* +* Function Name: timer_clock_SetDividerRegister +******************************************************************************** +* +* Summary: +* Modifies the clock divider and, thus, the frequency. When the clock divider +* register is set to zero or changed from zero, the clock will be temporarily +* disabled in order to change the SSS mode bit. If the clock is enabled when +* SetDividerRegister is called, then the source clock must be running. +* +* Parameters: +* clkDivider: Divider register value (0-65,535). This value is NOT the +* divider; the clock hardware divides by clkDivider plus one. For example, +* to divide the clock by 2, this parameter should be set to 1. +* restart: If nonzero, restarts the clock divider: the current clock cycle +* will be truncated and the new divide value will take effect immediately. If +* zero, the new divide value will take effect at the end of the current clock +* cycle. +* +* Returns: +* None +* +*******************************************************************************/ +void timer_clock_SetDividerRegister(uint16 clkDivider, uint8 restart) + +{ + uint8 enabled; + + uint8 currSrc = timer_clock_GetSourceRegister(); + uint16 oldDivider = timer_clock_GetDividerRegister(); + + if (clkDivider != oldDivider) + { + enabled = timer_clock_CLKEN & timer_clock_CLKEN_MASK; + + if ((currSrc == (uint8)CYCLK_SRC_SEL_CLK_SYNC_D) && ((oldDivider == 0u) || (clkDivider == 0u))) + { + /* Moving to/from SSS requires correct ordering to prevent halting the clock */ + if (oldDivider == 0u) + { + /* Moving away from SSS, set the divider first so when SSS is cleared we */ + /* don't halt the clock. Using the shadow load isn't required as the */ + /* divider is ignored while SSS is set. */ + CY_SET_REG16(timer_clock_DIV_PTR, clkDivider); + timer_clock_MOD_SRC &= (uint8)(~CYCLK_SSS); + } + else + { + /* Moving to SSS, set SSS which then ignores the divider and we can set */ + /* it without bothering with the shadow load. */ + timer_clock_MOD_SRC |= CYCLK_SSS; + CY_SET_REG16(timer_clock_DIV_PTR, clkDivider); + } + } + else + { + + if (enabled != 0u) + { + CLK_DIST_LD = 0x00u; + + /* Clear all the mask bits except ours. */ +#if defined(timer_clock__CFG3) + CLK_DIST_AMASK = timer_clock_CLKEN_MASK; + CLK_DIST_DMASK = 0x00u; +#else + CLK_DIST_DMASK = timer_clock_CLKEN_MASK; + CLK_DIST_AMASK = 0x00u; +#endif /* timer_clock__CFG3 */ + /* Clear mask of bus clock. */ + CLK_DIST_BCFG2 &= (uint8)(~BCFG2_MASK); + + /* If clock is currently enabled, disable it if async or going from N-to-1*/ + if (((timer_clock_MOD_SRC & CYCLK_SYNC) == 0u) || (clkDivider == 0u)) + { +#if HAS_CLKDIST_LD_DISABLE + CY_SET_REG16(CYREG_CLKDIST_WRK0, oldDivider); + CLK_DIST_LD = CYCLK_LD_DISABLE|CYCLK_LD_SYNC_EN|CYCLK_LD_LOAD; + + /* Wait for clock to be disabled */ + while ((CLK_DIST_LD & CYCLK_LD_LOAD) != 0u) { } +#endif /* HAS_CLKDIST_LD_DISABLE */ + + timer_clock_CLKEN &= (uint8)(~timer_clock_CLKEN_MASK); + +#if HAS_CLKDIST_LD_DISABLE + /* Clear the disable bit */ + CLK_DIST_LD = 0x00u; +#endif /* HAS_CLKDIST_LD_DISABLE */ + } + } + + /* Load divide value. */ + if ((timer_clock_CLKEN & timer_clock_CLKEN_MASK) != 0u) + { + /* If the clock is still enabled, use the shadow registers */ + CY_SET_REG16(CYREG_CLKDIST_WRK0, clkDivider); + + CLK_DIST_LD = (CYCLK_LD_LOAD | ((restart != 0u) ? CYCLK_LD_SYNC_EN : 0x00u)); + while ((CLK_DIST_LD & CYCLK_LD_LOAD) != 0u) { } + } + else + { + /* If the clock is disabled, set the divider directly */ + CY_SET_REG16(timer_clock_DIV_PTR, clkDivider); + timer_clock_CLKEN |= enabled; + } + } + } +} + + +/******************************************************************************* +* Function Name: timer_clock_GetDividerRegister +******************************************************************************** +* +* Summary: +* Gets the clock divider register value. +* +* Parameters: +* None +* +* Returns: +* Divide value of the clock minus 1. For example, if the clock is set to +* divide by 2, the return value will be 1. +* +*******************************************************************************/ +uint16 timer_clock_GetDividerRegister(void) +{ + return CY_GET_REG16(timer_clock_DIV_PTR); +} + + +/******************************************************************************* +* Function Name: timer_clock_SetModeRegister +******************************************************************************** +* +* Summary: +* Sets flags that control the operating mode of the clock. This function only +* changes flags from 0 to 1; flags that are already 1 will remain unchanged. +* To clear flags, use the ClearModeRegister function. The clock must be +* disabled before changing the mode. +* +* Parameters: +* clkMode: Bit mask containing the bits to set. For PSoC 3 and PSoC 5, +* clkMode should be a set of the following optional bits or'ed together. +* - CYCLK_EARLY Enable early phase mode. Rising edge of output clock will +* occur when the divider count reaches half of the divide +* value. +* - CYCLK_DUTY Enable 50% duty cycle output. When enabled, the output clock +* is asserted for approximately half of its period. When +* disabled, the output clock is asserted for one period of the +* source clock. +* - CYCLK_SYNC Enable output synchronization to master clock. This should +* be enabled for all synchronous clocks. +* See the Technical Reference Manual for details about setting the mode of +* the clock. Specifically, see the CLKDIST.DCFG.CFG2 register. +* +* Returns: +* None +* +*******************************************************************************/ +void timer_clock_SetModeRegister(uint8 modeBitMask) +{ + timer_clock_MOD_SRC |= modeBitMask & (uint8)timer_clock_MODE_MASK; +} + + +/******************************************************************************* +* Function Name: timer_clock_ClearModeRegister +******************************************************************************** +* +* Summary: +* Clears flags that control the operating mode of the clock. This function +* only changes flags from 1 to 0; flags that are already 0 will remain +* unchanged. To set flags, use the SetModeRegister function. The clock must be +* disabled before changing the mode. +* +* Parameters: +* clkMode: Bit mask containing the bits to clear. For PSoC 3 and PSoC 5, +* clkMode should be a set of the following optional bits or'ed together. +* - CYCLK_EARLY Enable early phase mode. Rising edge of output clock will +* occur when the divider count reaches half of the divide +* value. +* - CYCLK_DUTY Enable 50% duty cycle output. When enabled, the output clock +* is asserted for approximately half of its period. When +* disabled, the output clock is asserted for one period of the +* source clock. +* - CYCLK_SYNC Enable output synchronization to master clock. This should +* be enabled for all synchronous clocks. +* See the Technical Reference Manual for details about setting the mode of +* the clock. Specifically, see the CLKDIST.DCFG.CFG2 register. +* +* Returns: +* None +* +*******************************************************************************/ +void timer_clock_ClearModeRegister(uint8 modeBitMask) +{ + timer_clock_MOD_SRC &= (uint8)(~modeBitMask) | (uint8)(~(uint8)(timer_clock_MODE_MASK)); +} + + +/******************************************************************************* +* Function Name: timer_clock_GetModeRegister +******************************************************************************** +* +* Summary: +* Gets the clock mode register value. +* +* Parameters: +* None +* +* Returns: +* Bit mask representing the enabled mode bits. See the SetModeRegister and +* ClearModeRegister descriptions for details about the mode bits. +* +*******************************************************************************/ +uint8 timer_clock_GetModeRegister(void) +{ + return timer_clock_MOD_SRC & (uint8)(timer_clock_MODE_MASK); +} + + +/******************************************************************************* +* Function Name: timer_clock_SetSourceRegister +******************************************************************************** +* +* Summary: +* Sets the input source of the clock. The clock must be disabled before +* changing the source. The old and new clock sources must be running. +* +* Parameters: +* clkSource: For PSoC 3 and PSoC 5 devices, clkSource should be one of the +* following input sources: +* - CYCLK_SRC_SEL_SYNC_DIG +* - CYCLK_SRC_SEL_IMO +* - CYCLK_SRC_SEL_XTALM +* - CYCLK_SRC_SEL_ILO +* - CYCLK_SRC_SEL_PLL +* - CYCLK_SRC_SEL_XTALK +* - CYCLK_SRC_SEL_DSI_G +* - CYCLK_SRC_SEL_DSI_D/CYCLK_SRC_SEL_DSI_A +* See the Technical Reference Manual for details on clock sources. +* +* Returns: +* None +* +*******************************************************************************/ +void timer_clock_SetSourceRegister(uint8 clkSource) +{ + uint16 currDiv = timer_clock_GetDividerRegister(); + uint8 oldSrc = timer_clock_GetSourceRegister(); + + if (((oldSrc != ((uint8)CYCLK_SRC_SEL_CLK_SYNC_D)) && + (clkSource == ((uint8)CYCLK_SRC_SEL_CLK_SYNC_D))) && (currDiv == 0u)) + { + /* Switching to Master and divider is 1, set SSS, which will output master, */ + /* then set the source so we are consistent. */ + timer_clock_MOD_SRC |= CYCLK_SSS; + timer_clock_MOD_SRC = + (timer_clock_MOD_SRC & (uint8)(~timer_clock_SRC_SEL_MSK)) | clkSource; + } + else if (((oldSrc == ((uint8)CYCLK_SRC_SEL_CLK_SYNC_D)) && + (clkSource != ((uint8)CYCLK_SRC_SEL_CLK_SYNC_D))) && (currDiv == 0u)) + { + /* Switching from Master to not and divider is 1, set source, so we don't */ + /* lock when we clear SSS. */ + timer_clock_MOD_SRC = + (timer_clock_MOD_SRC & (uint8)(~timer_clock_SRC_SEL_MSK)) | clkSource; + timer_clock_MOD_SRC &= (uint8)(~CYCLK_SSS); + } + else + { + timer_clock_MOD_SRC = + (timer_clock_MOD_SRC & (uint8)(~timer_clock_SRC_SEL_MSK)) | clkSource; + } +} + + +/******************************************************************************* +* Function Name: timer_clock_GetSourceRegister +******************************************************************************** +* +* Summary: +* Gets the input source of the clock. +* +* Parameters: +* None +* +* Returns: +* The input source of the clock. See SetSourceRegister for details. +* +*******************************************************************************/ +uint8 timer_clock_GetSourceRegister(void) +{ + return timer_clock_MOD_SRC & timer_clock_SRC_SEL_MSK; +} + + +#if defined(timer_clock__CFG3) + + +/******************************************************************************* +* Function Name: timer_clock_SetPhaseRegister +******************************************************************************** +* +* Summary: +* Sets the phase delay of the analog clock. This function is only available +* for analog clocks. The clock must be disabled before changing the phase +* delay to avoid glitches. +* +* Parameters: +* clkPhase: Amount to delay the phase of the clock, in 1.0ns increments. +* clkPhase must be from 1 to 11 inclusive. Other values, including 0, +* disable the clock. clkPhase = 1 produces a 0ns delay and clkPhase = 11 +* produces a 10ns delay. +* +* Returns: +* None +* +*******************************************************************************/ +void timer_clock_SetPhaseRegister(uint8 clkPhase) +{ + timer_clock_PHASE = clkPhase & timer_clock_PHASE_MASK; +} + + +/******************************************************************************* +* Function Name: timer_clock_GetPhase +******************************************************************************** +* +* Summary: +* Gets the phase delay of the analog clock. This function is only available +* for analog clocks. +* +* Parameters: +* None +* +* Returns: +* Phase of the analog clock. See SetPhaseRegister for details. +* +*******************************************************************************/ +uint8 timer_clock_GetPhaseRegister(void) +{ + return timer_clock_PHASE & timer_clock_PHASE_MASK; +} + +#endif /* timer_clock__CFG3 */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/timer_clock.h b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/timer_clock.h new file mode 100644 index 00000000..6690d480 --- /dev/null +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoC5/timer_clock.h @@ -0,0 +1,124 @@ +/******************************************************************************* +* File Name: timer_clock.h +* Version 2.10 +* +* Description: +* Provides the function and constant definitions for the clock component. +* +* 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. +*******************************************************************************/ + +#if !defined(CY_CLOCK_timer_clock_H) +#define CY_CLOCK_timer_clock_H + +#include +#include + + +/*************************************** +* Conditional Compilation Parameters +***************************************/ + +/* Check to see if required defines such as CY_PSOC5LP are available */ +/* They are defined starting with cy_boot v3.0 */ +#if !defined (CY_PSOC5LP) + #error Component cy_clock_v2_10 requires cy_boot v3.0 or later +#endif /* (CY_PSOC5LP) */ + + +/*************************************** +* Function Prototypes +***************************************/ + +void timer_clock_Start(void) ; +void timer_clock_Stop(void) ; + +#if(CY_PSOC3 || CY_PSOC5LP) +void timer_clock_StopBlock(void) ; +#endif /* (CY_PSOC3 || CY_PSOC5LP) */ + +void timer_clock_StandbyPower(uint8 state) ; +void timer_clock_SetDividerRegister(uint16 clkDivider, uint8 restart) + ; +uint16 timer_clock_GetDividerRegister(void) ; +void timer_clock_SetModeRegister(uint8 modeBitMask) ; +void timer_clock_ClearModeRegister(uint8 modeBitMask) ; +uint8 timer_clock_GetModeRegister(void) ; +void timer_clock_SetSourceRegister(uint8 clkSource) ; +uint8 timer_clock_GetSourceRegister(void) ; +#if defined(timer_clock__CFG3) +void timer_clock_SetPhaseRegister(uint8 clkPhase) ; +uint8 timer_clock_GetPhaseRegister(void) ; +#endif /* defined(timer_clock__CFG3) */ + +#define timer_clock_Enable() timer_clock_Start() +#define timer_clock_Disable() timer_clock_Stop() +#define timer_clock_SetDivider(clkDivider) timer_clock_SetDividerRegister(clkDivider, 1u) +#define timer_clock_SetDividerValue(clkDivider) timer_clock_SetDividerRegister((clkDivider) - 1u, 1u) +#define timer_clock_SetMode(clkMode) timer_clock_SetModeRegister(clkMode) +#define timer_clock_SetSource(clkSource) timer_clock_SetSourceRegister(clkSource) +#if defined(timer_clock__CFG3) +#define timer_clock_SetPhase(clkPhase) timer_clock_SetPhaseRegister(clkPhase) +#define timer_clock_SetPhaseValue(clkPhase) timer_clock_SetPhaseRegister((clkPhase) + 1u) +#endif /* defined(timer_clock__CFG3) */ + + +/*************************************** +* Registers +***************************************/ + +/* Register to enable or disable the clock */ +#define timer_clock_CLKEN (* (reg8 *) timer_clock__PM_ACT_CFG) +#define timer_clock_CLKEN_PTR ((reg8 *) timer_clock__PM_ACT_CFG) + +/* Register to enable or disable the clock */ +#define timer_clock_CLKSTBY (* (reg8 *) timer_clock__PM_STBY_CFG) +#define timer_clock_CLKSTBY_PTR ((reg8 *) timer_clock__PM_STBY_CFG) + +/* Clock LSB divider configuration register. */ +#define timer_clock_DIV_LSB (* (reg8 *) timer_clock__CFG0) +#define timer_clock_DIV_LSB_PTR ((reg8 *) timer_clock__CFG0) +#define timer_clock_DIV_PTR ((reg16 *) timer_clock__CFG0) + +/* Clock MSB divider configuration register. */ +#define timer_clock_DIV_MSB (* (reg8 *) timer_clock__CFG1) +#define timer_clock_DIV_MSB_PTR ((reg8 *) timer_clock__CFG1) + +/* Mode and source configuration register */ +#define timer_clock_MOD_SRC (* (reg8 *) timer_clock__CFG2) +#define timer_clock_MOD_SRC_PTR ((reg8 *) timer_clock__CFG2) + +#if defined(timer_clock__CFG3) +/* Analog clock phase configuration register */ +#define timer_clock_PHASE (* (reg8 *) timer_clock__CFG3) +#define timer_clock_PHASE_PTR ((reg8 *) timer_clock__CFG3) +#endif /* defined(timer_clock__CFG3) */ + + +/************************************** +* Register Constants +**************************************/ + +/* Power manager register masks */ +#define timer_clock_CLKEN_MASK timer_clock__PM_ACT_MSK +#define timer_clock_CLKSTBY_MASK timer_clock__PM_STBY_MSK + +/* CFG2 field masks */ +#define timer_clock_SRC_SEL_MSK timer_clock__CFG2_SRC_SEL_MASK +#define timer_clock_MODE_MASK (~(timer_clock_SRC_SEL_MSK)) + +#if defined(timer_clock__CFG3) +/* CFG3 phase mask */ +#define timer_clock_PHASE_MASK timer_clock__CFG3_PHASE_DLY_MASK +#endif /* defined(timer_clock__CFG3) */ + +#endif /* CY_CLOCK_timer_clock_H */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoCCreatorExportIDE.xml b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoCCreatorExportIDE.xml new file mode 100755 index 00000000..6457cb94 --- /dev/null +++ b/software/SCSI2SD/pbook/pbook.cydsn/Generated_Source/PSoCCreatorExportIDE.xml @@ -0,0 +1,242 @@ + + + + + + + + + + + + + + + + + + + + + + pbook.svd + + + .\Generated_Source\PSoC5\cm3gcc.ld + .\Generated_Source\PSoC5\Cm3RealView.scat + .\Generated_Source\PSoC5\Cm3Iar.icf + + + + + ..\..\src\main.c + ..\..\src\diagnostic.c + ..\..\src\disk.c + ..\..\src\geometry.c + ..\..\src\inquiry.c + ..\..\src\mode.c + ..\..\src\scsi.c + ..\..\src\scsiPhy.c + ..\..\src\bits.c + ..\..\src\sd.c + ..\..\src\config.c + ..\..\src\diagnostic.h + ..\..\src\disk.h + ..\..\src\geometry.h + ..\..\src\inquiry.h + ..\..\src\led.h + ..\..\src\mode.h + ..\..\src\scsi.h + ..\..\src\scsiPhy.h + ..\..\src\sense.h + ..\..\src\bits.h + ..\..\src\sd.h + ..\..\src\config.h + + + + + .\device.h + + + + + .\Generated_Source\PSoC5\cyfitter_cfg.h + .\Generated_Source\PSoC5\cyfitter_cfg.c + .\Generated_Source\PSoC5\cybootloader.c + .\Generated_Source\PSoC5\cymetadata.c + .\Generated_Source\PSoC5\cydevice.h + .\Generated_Source\PSoC5\cydevicegnu.inc + .\Generated_Source\PSoC5\cydevicerv.inc + .\Generated_Source\PSoC5\cydeviceiar.inc + .\Generated_Source\PSoC5\cydevice_trm.h + .\Generated_Source\PSoC5\cydevicegnu_trm.inc + .\Generated_Source\PSoC5\cydevicerv_trm.inc + .\Generated_Source\PSoC5\cydeviceiar_trm.inc + .\Generated_Source\PSoC5\cyfittergnu.inc + .\Generated_Source\PSoC5\cyfitterrv.inc + .\Generated_Source\PSoC5\cyfitteriar.inc + .\Generated_Source\PSoC5\cyfitter.h + .\Generated_Source\PSoC5\cydisabledsheets.h + .\Generated_Source\PSoC5\SCSI_In_DBx_aliases.h + .\Generated_Source\PSoC5\SCSI_Out_DBx_aliases.h + .\Generated_Source\PSoC5\SD_Data_Clk.c + .\Generated_Source\PSoC5\SD_Data_Clk.h + .\Generated_Source\PSoC5\SD_CD_aliases.h + .\Generated_Source\PSoC5\SD_CD.c + .\Generated_Source\PSoC5\SD_CD.h + .\Generated_Source\PSoC5\SCSI_In_aliases.h + .\Generated_Source\PSoC5\SCSI_Out_aliases.h + .\Generated_Source\PSoC5\CFG_EEPROM.c + .\Generated_Source\PSoC5\CFG_EEPROM.h + .\Generated_Source\PSoC5\SD_CS_aliases.h + .\Generated_Source\PSoC5\SD_CS.c + .\Generated_Source\PSoC5\SD_CS.h + .\Generated_Source\PSoC5\SD_SCK_aliases.h + .\Generated_Source\PSoC5\SD_SCK.c + .\Generated_Source\PSoC5\SD_SCK.h + .\Generated_Source\PSoC5\SD_MOSI_aliases.h + .\Generated_Source\PSoC5\SD_MOSI.c + .\Generated_Source\PSoC5\SD_MOSI.h + .\Generated_Source\PSoC5\SCSI_RST_aliases.h + .\Generated_Source\PSoC5\SCSI_RST.c + .\Generated_Source\PSoC5\SCSI_RST.h + .\Generated_Source\PSoC5\SCSI_ATN_aliases.h + .\Generated_Source\PSoC5\SCSI_ATN.c + .\Generated_Source\PSoC5\SCSI_ATN.h + .\Generated_Source\PSoC5\SCSI_RST_ISR.c + .\Generated_Source\PSoC5\SCSI_RST_ISR.h + .\Generated_Source\PSoC5\LED1_aliases.h + .\Generated_Source\PSoC5\LED1.c + .\Generated_Source\PSoC5\LED1.h + .\Generated_Source\PSoC5\SDCard.c + .\Generated_Source\PSoC5\SDCard.h + .\Generated_Source\PSoC5\SDCard_PM.c + .\Generated_Source\PSoC5\SDCard_INT.c + .\Generated_Source\PSoC5\SDCard_PVT.h + .\Generated_Source\PSoC5\SD_MISO_aliases.h + .\Generated_Source\PSoC5\SD_MISO.c + .\Generated_Source\PSoC5\SD_MISO.h + .\Generated_Source\PSoC5\USBFS.c + .\Generated_Source\PSoC5\USBFS.h + .\Generated_Source\PSoC5\USBFS_audio.c + .\Generated_Source\PSoC5\USBFS_audio.h + .\Generated_Source\PSoC5\USBFS_boot.c + .\Generated_Source\PSoC5\USBFS_cdc.c + .\Generated_Source\PSoC5\USBFS_cdc.h + .\Generated_Source\PSoC5\USBFS_cls.c + .\Generated_Source\PSoC5\USBFS_descr.c + .\Generated_Source\PSoC5\USBFS_drv.c + .\Generated_Source\PSoC5\USBFS_episr.c + .\Generated_Source\PSoC5\USBFS_hid.c + .\Generated_Source\PSoC5\USBFS_hid.h + .\Generated_Source\PSoC5\USBFS_pm.c + .\Generated_Source\PSoC5\USBFS_std.c + .\Generated_Source\PSoC5\USBFS_vnd.c + .\Generated_Source\PSoC5\USBFS_midi.c + .\Generated_Source\PSoC5\USBFS_midi.h + .\Generated_Source\PSoC5\USBFS_pvt.h + .\Generated_Source\PSoC5\Bootloadable_1.c + .\Generated_Source\PSoC5\Bootloadable_1.h + .\Generated_Source\PSoC5\USBFS_Dm_aliases.h + .\Generated_Source\PSoC5\USBFS_Dm.c + .\Generated_Source\PSoC5\USBFS_Dm.h + .\Generated_Source\PSoC5\USBFS_Dp_aliases.h + .\Generated_Source\PSoC5\USBFS_Dp.c + .\Generated_Source\PSoC5\USBFS_Dp.h + .\Generated_Source\PSoC5\Cm3Start.c + .\Generated_Source\PSoC5\core_cm3_psoc5.h + .\Generated_Source\PSoC5\core_cm3.h + .\Generated_Source\PSoC5\CyBootAsmGnu.s + .\Generated_Source\PSoC5\CyBootAsmRv.s + .\Generated_Source\PSoC5\CyDmac.c + .\Generated_Source\PSoC5\CyDmac.h + .\Generated_Source\PSoC5\CyFlash.c + .\Generated_Source\PSoC5\CyFlash.h + .\Generated_Source\PSoC5\CyLib.c + .\Generated_Source\PSoC5\CyLib.h + .\Generated_Source\PSoC5\cypins.h + .\Generated_Source\PSoC5\cyPm.c + .\Generated_Source\PSoC5\cyPm.h + .\Generated_Source\PSoC5\CySpc.c + .\Generated_Source\PSoC5\CySpc.h + .\Generated_Source\PSoC5\cytypes.h + .\Generated_Source\PSoC5\cyutils.c + .\Generated_Source\PSoC5\core_cmFunc.h + .\Generated_Source\PSoC5\core_cmInstr.h + .\Generated_Source\PSoC5\CyBootAsmIar.s + .\Generated_Source\PSoC5\project.h + .\Generated_Source\PSoC5\SD_TX_DMA_dma.c + .\Generated_Source\PSoC5\SD_TX_DMA_dma.h + .\Generated_Source\PSoC5\SD_RX_DMA_COMPLETE.c + .\Generated_Source\PSoC5\SD_RX_DMA_COMPLETE.h + .\Generated_Source\PSoC5\SD_RX_DMA_dma.c + .\Generated_Source\PSoC5\SD_RX_DMA_dma.h + .\Generated_Source\PSoC5\SCSI_CTL_PHASE.c + .\Generated_Source\PSoC5\SCSI_CTL_PHASE.h + .\Generated_Source\PSoC5\SD_TX_DMA_COMPLETE.c + .\Generated_Source\PSoC5\SD_TX_DMA_COMPLETE.h + .\Generated_Source\PSoC5\SCSI_TX_DMA_dma.c + .\Generated_Source\PSoC5\SCSI_TX_DMA_dma.h + .\Generated_Source\PSoC5\SCSI_RX_DMA_dma.c + .\Generated_Source\PSoC5\SCSI_RX_DMA_dma.h + .\Generated_Source\PSoC5\SCSI_TX_DMA_COMPLETE.c + .\Generated_Source\PSoC5\SCSI_TX_DMA_COMPLETE.h + .\Generated_Source\PSoC5\SCSI_RX_DMA_COMPLETE.c + .\Generated_Source\PSoC5\SCSI_RX_DMA_COMPLETE.h + .\Generated_Source\PSoC5\SCSI_Out_Bits.c + .\Generated_Source\PSoC5\SCSI_Out_Bits.h + .\Generated_Source\PSoC5\SCSI_Out_Ctl.c + .\Generated_Source\PSoC5\SCSI_Out_Ctl.h + .\Generated_Source\PSoC5\Debug_Timer.c + .\Generated_Source\PSoC5\Debug_Timer.h + .\Generated_Source\PSoC5\Debug_Timer_PM.c + .\Generated_Source\PSoC5\timer_clock.c + .\Generated_Source\PSoC5\timer_clock.h + .\Generated_Source\PSoC5\Debug_Timer_Interrupt.c + .\Generated_Source\PSoC5\Debug_Timer_Interrupt.h + .\Generated_Source\PSoC5\prebuild.bat + .\Generated_Source\PSoC5\postbuild.bat + .\Generated_Source\PSoC5\CyElfTool.exe + .\Generated_Source\PSoC5\libelf.dll + + + + + .\Generated_Source\PSoC5\ARM_GCC\CyComponentLibrary.a + + + + + .\Generated_Source\PSoC5\ARM_Keil_MDK\CyComponentLibrary.a + + + + + .\Generated_Source\PSoC5\IAR\CyComponentLibrary.a + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/software/SCSI2SD/pbook/pbook.cydsn/TopDesign/TopDesign.cysch b/software/SCSI2SD/pbook/pbook.cydsn/TopDesign/TopDesign.cysch index 157aeb438cd5d36a58f47a928b47d0d6fb636327..f60d15514ecdedeb7bab1a852bc1569a16617b03 100755 GIT binary patch literal 191735 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

y`28*x7V5eAvb?vKYQO+8mK7{X2#1Ud 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 z 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 - + - + @@ -501,7 +501,7 @@ - + @@ -545,14 +545,14 @@ - + - + @@ -561,7 +561,7 @@ - + @@ -614,14 +614,14 @@ - + - + @@ -630,7 +630,7 @@ - + @@ -1610,6 +1610,435 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2213,4 +2642,4 @@ - + \ No newline at end of file diff --git a/software/SCSI2SD/pbook/pbook.cydsn/pbook.svd b/software/SCSI2SD/pbook/pbook.cydsn/pbook.svd old mode 100755 new mode 100644 index 156f748f..310d8479 --- a/software/SCSI2SD/pbook/pbook.cydsn/pbook.svd +++ b/software/SCSI2SD/pbook/pbook.cydsn/pbook.svd @@ -491,9 +491,322 @@ - SD_Clk_Ctl + Debug_Timer No description available - 0x40006474 + 0x400043A3 + + 0 + 0xB64 + registers + + + + Debug_Timer_GLOBAL_ENABLE + PM.ACT.CFG + 0x0 + 8 + read-write + 0 + 0 + + + en_timer + Enable timer/counters. + 0 + 3 + read-write + + + + + Debug_Timer_CONTROL + TMRx.CFG0 + 0xB5D + 8 + read-write + 0 + 0 + + + EN + Enables timer/comparator. + 0 + 0 + read-write + + + MODE + Mode. (0 = Timer; 1 = Comparator) + 1 + 1 + read-write + + + Timer + Timer mode. CNT/CMP register holds timer count value. + 0 + + + Comparator + Comparator mode. CNT/CMP register holds comparator threshold value. + 1 + + + + + ONESHOT + Timer stops upon reaching stop condition defined by TMR_CFG bits. Can be restarted by asserting TIMER RESET or disabling and re-enabling block. + 2 + 2 + read-write + + + CMP_BUFF + Buffer compare register. Compare register updates only on timer terminal count. + 3 + 3 + read-write + + + INV + Invert sense of TIMEREN signal + 4 + 4 + read-write + + + DB + Deadband mode--Deadband phases phi1 and phi2 are outputted on CMP and TC output pins respectively. + 5 + 5 + read-write + + + Timer + CMP and TC are output. + 0 + + + Deadband + PHI1 (instead of CMP) and PHI2 (instead of TC) are output. + 1 + + + + + DEADBAND_PERIOD + Deadband Period + 6 + 7 + read-write + + + + + Debug_Timer_CONTROL2 + TMRx.CFG1 + 0xB5E + 8 + read-write + 0 + 0 + + + IRQ_SEL + Irq selection. (0 = raw interrupts; 1 = status register interrupts) + 0 + 0 + read-write + + + FTC + First Terminal Count (FTC). Setting this bit forces a single pulse on the TC pin when first enabled. + 1 + 1 + read-write + + + Disable_FTC + Disable the single cycle pulse, which signifies the timer is starting. + 0 + + + Enable_FTC + Enable the single cycle pulse, which signifies the timer is starting. + 1 + + + + + DCOR + Disable Clear on Read (DCOR) of Status Register SR0. + 2 + 2 + read-write + + + DBMODE + Deadband mode (asynchronous/synchronous). CMP output pin is also affected when not in deadband mode (CFG0.DEADBAND). + 3 + 3 + read-write + + + CLK_BUS_EN_SEL + Digital Global Clock selection. + 4 + 6 + read-write + + + BUS_CLK_SEL + Bus Clock selection. + 7 + 7 + read-write + + + + + Debug_Timer_CONTROL3_ + TMRx.CFG2 + 0xB5F + 8 + read-write + 0 + 0 + + + TMR_CFG + Timer configuration (MODE = 0): 000 = Continuous; 001 = Pulsewidth; 010 = Period; 011 = Stop on IRQ + 0 + 1 + read-write + + + Continuous + Timer runs while EN bit of CFG0 register is set to '1'. + 0 + + + Pulsewidth + Timer runs from positive to negative edge of TIMEREN. + 1 + + + Period + Timer runs from positive to positive edge of TIMEREN. + 2 + + + Irq + Timer runs until IRQ. + 3 + + + + + COD + Clear On Disable (COD). Clears or gates outputs to zero. + 2 + 2 + read-write + + + ROD + Reset On Disable (ROD). Resets internal state of output logic + 3 + 3 + read-write + + + CMP_CFG + Comparator configurations + 4 + 6 + read-write + + + Equal + Compare Equal + 0 + + + Less_than + Compare Less Than + 1 + + + Less_than_or_equal + Compare Less Than or Equal . + 2 + + + Greater + Compare Greater Than . + 3 + + + Greater_than_or_equal + Compare Greater Than or Equal + 4 + + + + + HW_EN + When set Timer Enable controls counting. + 7 + 7 + read-write + + + + + Debug_Timer_PERIOD + TMRx.PER0 - Assigned Period + 0xB61 + 16 + read-write + 0 + 0 + + + Debug_Timer_COUNTER + TMRx.CNT_CMP0 - Current Down Counter Value + 0xB63 + 16 + read-write + 0 + 0 + + + + + SCSI_Out_Ctl + No description available + 0x40006578 + + 0 + 0x1 + registers + + + + SCSI_Out_Ctl_CONTROL_REG + No description available + 0x0 + 8 + read-write + 0 + 0 + + + + + SCSI_Out_Bits + No description available + 0x4000647A 0 0x1 @@ -501,7 +814,7 @@ - SD_Clk_Ctl_CONTROL_REG + SCSI_Out_Bits_CONTROL_REG No description available 0x0 8 @@ -512,9 +825,9 @@ - SCSI_CTL_IO + SCSI_CTL_PHASE No description available - 0x4000647F + 0x4000647C 0 0x1 @@ -522,7 +835,7 @@ - SCSI_CTL_IO_CONTROL_REG + SCSI_CTL_PHASE_CONTROL_REG No description available 0x0 8 diff --git a/software/SCSI2SD/src/config.c b/software/SCSI2SD/src/config.c index f03a0a8f..932e811c 100755 --- a/software/SCSI2SD/src/config.c +++ b/software/SCSI2SD/src/config.c @@ -35,7 +35,7 @@ static Config shadow = 0, // SCSI ID " codesrc", // vendor (68k Apple Drive Setup: Set to " SEAGATE") " SCSI2SD", //prodId (68k Apple Drive Setup: Set to " ST225N") - " 3.4", // revision (68k Apple Drive Setup: Set to "1.0 ") + " 3.5", // revision (68k Apple Drive Setup: Set to "1.0 ") 1, // enable parity 1, // enable unit attention, 0, // RESERVED diff --git a/software/SCSI2SD/src/disk.c b/software/SCSI2SD/src/disk.c index 188b4b55..eac2d794 100755 --- a/software/SCSI2SD/src/disk.c +++ b/software/SCSI2SD/src/disk.c @@ -562,6 +562,7 @@ void scsiDiskPoll() scsiActive = 1; } } + if (scsiDev.phase == DATA_OUT) { scsiDev.phase = STATUS; diff --git a/software/SCSI2SD/src/main.c b/software/SCSI2SD/src/main.c index d799d3b4..0a947805 100755 --- a/software/SCSI2SD/src/main.c +++ b/software/SCSI2SD/src/main.c @@ -41,6 +41,12 @@ int main() scsiInit(); scsiDiskInit(); + if (!(blockDev.state & DISK_INITIALISED)) + { + while (1) { ledOn();CyDelay(200); ledOff();CyDelay(200); } + + } + while (1) { #ifdef MM_DEBUG diff --git a/software/SCSI2SD/src/sd.c b/software/SCSI2SD/src/sd.c index 7d5a11ec..feb4202b 100755 --- a/software/SCSI2SD/src/sd.c +++ b/software/SCSI2SD/src/sd.c @@ -35,8 +35,8 @@ static uint8 sdDMARxChan = CY_DMA_INVALID_CHANNEL; static uint8 sdDMATxChan = CY_DMA_INVALID_CHANNEL; // DMA descriptors -static uint8 sdDMARxTd[1] = { CY_DMA_INVALID_TD }; -static uint8 sdDMATxTd[1] = { CY_DMA_INVALID_TD }; +static uint8 sdDMARxTd[2] = { CY_DMA_INVALID_TD, CY_DMA_INVALID_TD }; +static uint8 sdDMATxTd[2] = { CY_DMA_INVALID_TD, CY_DMA_INVALID_TD }; // Dummy location for DMA to send unchecked CRC bytes to static uint8 discardBuffer; @@ -212,9 +212,13 @@ dmaReadSector(uint8_t* outputBuffer) return; } - CyDmaTdSetConfiguration(sdDMARxTd[0], SD_SECTOR_SIZE, CY_DMA_DISABLE_TD, TD_INC_DST_ADR | SD_RX_DMA__TD_TERMOUT_EN); + // Receive 512 bytes of data and then 2 bytes CRC. + CyDmaTdSetConfiguration(sdDMARxTd[0], SD_SECTOR_SIZE, sdDMARxTd[1], TD_INC_DST_ADR); CyDmaTdSetAddress(sdDMARxTd[0], LO16((uint32)SDCard_RXDATA_PTR), LO16((uint32)outputBuffer)); - CyDmaTdSetConfiguration(sdDMATxTd[0], SD_SECTOR_SIZE, CY_DMA_DISABLE_TD, SD_TX_DMA__TD_TERMOUT_EN); + CyDmaTdSetConfiguration(sdDMARxTd[1], 2, CY_DMA_DISABLE_TD, SD_RX_DMA__TD_TERMOUT_EN); + CyDmaTdSetAddress(sdDMARxTd[1], LO16((uint32)SDCard_RXDATA_PTR), LO16((uint32)&discardBuffer)); + + CyDmaTdSetConfiguration(sdDMATxTd[0], SD_SECTOR_SIZE + 2, CY_DMA_DISABLE_TD, SD_TX_DMA__TD_TERMOUT_EN); CyDmaTdSetAddress(sdDMATxTd[0], LO16((uint32)&dummyBuffer), LO16((uint32)SDCard_TXDATA_PTR)); dmaInProgress = 1; @@ -246,10 +250,6 @@ sdReadSectorDMAPoll() { // DMA transfer is complete dmaInProgress = 0; - - sdSpiByte(0xFF); // CRC - sdSpiByte(0xFF); // CRC - return 1; } else @@ -352,10 +352,15 @@ sdWriteMultiSectorDMA(uint8_t* outputBuffer) { sdSpiByte(0xFC); // MULTIPLE byte start token - CyDmaTdSetConfiguration(sdDMATxTd[0], SD_SECTOR_SIZE, CY_DMA_DISABLE_TD, TD_INC_SRC_ADR | SD_TX_DMA__TD_TERMOUT_EN); + // Transmit 512 bytes of data and then 2 bytes CRC. + CyDmaTdSetConfiguration(sdDMATxTd[0], SD_SECTOR_SIZE, sdDMATxTd[1], TD_INC_SRC_ADR); CyDmaTdSetAddress(sdDMATxTd[0], LO16((uint32)outputBuffer), LO16((uint32)SDCard_TXDATA_PTR)); - CyDmaTdSetConfiguration(sdDMARxTd[0], SD_SECTOR_SIZE, CY_DMA_DISABLE_TD, SD_RX_DMA__TD_TERMOUT_EN); + CyDmaTdSetConfiguration(sdDMATxTd[1], 2, CY_DMA_DISABLE_TD, SD_TX_DMA__TD_TERMOUT_EN); + CyDmaTdSetAddress(sdDMATxTd[1], LO16((uint32)&dummyBuffer), LO16((uint32)SDCard_TXDATA_PTR)); + + CyDmaTdSetConfiguration(sdDMARxTd[0], SD_SECTOR_SIZE + 2, CY_DMA_DISABLE_TD, SD_RX_DMA__TD_TERMOUT_EN); CyDmaTdSetAddress(sdDMARxTd[0], LO16((uint32)SDCard_RXDATA_PTR), LO16((uint32)&discardBuffer)); + dmaInProgress = 1; // The DMA controller is a bit trigger-happy. It will retain @@ -384,23 +389,12 @@ sdWriteSectorDMAPoll() { if (rxDMAComplete && txDMAComplete) { - // DMA transfer is complete - dmaInProgress = 0; - - sdSpiByte(0x00); // CRC - sdSpiByte(0x00); // CRC - - // Don't wait more than 1s. - // My 2g Kingston micro-sd card doesn't respond immediately. - // My 16Gb card does. - int maxWait = 1000000; uint8_t dataToken = sdSpiByte(0xFF); // Response - while (dataToken == 0xFF && maxWait-- > 0) + if (dataToken == 0x0FF) { - CyDelayUs(1); - dataToken = sdSpiByte(0xFF); + return 0; // Write has not completed. } - if (((dataToken & 0x1F) >> 1) != 0x2) // Accepted. + else if (((dataToken & 0x1F) >> 1) != 0x2) // Accepted. { uint8 r1b, busy; @@ -431,7 +425,9 @@ sdWriteSectorDMAPoll() else { sdWaitWriteBusy(); - } + } + // DMA transfer is complete and the SD card has accepted the write. + dmaInProgress = 0; return 1; } @@ -624,7 +620,9 @@ static void sdInitDMA() CyDmaChDisable(sdDMARxChan); sdDMARxTd[0] = CyDmaTdAllocate(); + sdDMARxTd[1] = CyDmaTdAllocate(); sdDMATxTd[0] = CyDmaTdAllocate(); + sdDMATxTd[1] = CyDmaTdAllocate(); SD_RX_DMA_COMPLETE_StartEx(sdRxISR); SD_TX_DMA_COMPLETE_StartEx(sdTxISR); diff --git a/software/bootloaderhost/main.c b/software/bootloaderhost/main.c index f09f7915..58946d5d 100644 --- a/software/bootloaderhost/main.c +++ b/software/bootloaderhost/main.c @@ -170,7 +170,7 @@ int main(int argc, char* argv[]) case 0x3001: printf(" Release: 3.5\" SCSI2SD\n"); expectedName = "SCSI2SD.cyacd"; - if (!strstr(filename, expectedName)) + if (strncasecmp(filename, expectedName, 13)) { fileMismatch = 1; } @@ -178,7 +178,7 @@ int main(int argc, char* argv[]) case 0x3002: printf(" Release: 2.5\" SCSI2SD for Apple Powerbook\n"); expectedName = "pbook.cyacd"; - if (!strstr(filename, expectedName)) + if (strncasecmp(filename, expectedName, 11)) { fileMismatch = 1; } diff --git a/software/scsi2sd-config/main.c b/software/scsi2sd-config/main.c index 11e38380..3a0ddf38 100644 --- a/software/scsi2sd-config/main.c +++ b/software/scsi2sd-config/main.c @@ -196,6 +196,11 @@ int main(int argc, char* argv[]) // Enumerate and print the HID devices on the system struct hid_device_info *dev = hid_enumerate(vendorId, productId); + while (dev && dev->interface_number != 0) + { + dev = dev->next; + } + if (!dev) { fprintf(stderr, "ERROR: SCSI2SD USB device not found.\n"); diff --git a/software/scsi2sd-debug/main.c b/software/scsi2sd-debug/main.c index 211b5542..cf233d77 100644 --- a/software/scsi2sd-debug/main.c +++ b/software/scsi2sd-debug/main.c @@ -96,18 +96,22 @@ int main(int argc, char* argv[]) // Enumerate and print the HID devices on the system struct hid_device_info *dev = hid_enumerate(vendorId, productId); - // We need the SECOND interface for debug data if (!dev) { fprintf(stderr, "ERROR: SCSI2SD USB device not found.\n"); exit(1); } - else if (!dev->next) + + // We need the SECOND interface for debug data + while (dev && dev->interface_number != 1) + { + dev = dev->next; + } + if (!dev) { fprintf(stderr, "ERROR: SCSI2SD Debug firmware not enabled.\n"); exit(1); } - dev = dev->next; printf("USB Device Found\n type: %04hx %04hx\n path: %s\n serial_number: %ls", dev->vendor_id, dev->product_id, dev->path, dev->serial_number); -- 2.38.5

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 mXaH1${)hv;xE^% - - - - - - - + + + + - + - + + + - - + + @@ -85,9 +84,9 @@ - - + + @@ -95,21 +94,94 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + - - - - - \ No newline at end of file diff --git a/software/SCSI2SD/pbook/pbook.cydsn/pbook.cydwr b/software/SCSI2SD/pbook/pbook.cydsn/pbook.cydwr index beeaa3dd9ca1af673efffc6979541aaf26683215..fb019f586111200ba1e2b420d8ee781cecea3ca0 100755 GIT binary patch literal 135447 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 C=k5mp literal 134863 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�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 oyYyU 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 z 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