mirror of
https://github.com/preble/libpinproc
synced 2026-02-24 18:25:23 +01:00
Changes for p3-roc
This commit is contained in:
@@ -37,4 +37,6 @@
|
||||
void PRLog(PRLogLevel level, const char *format, ...);
|
||||
void PRSetLastErrorText(const char *format, ...);
|
||||
|
||||
#define NULL 0
|
||||
|
||||
#endif /* PINPROC_PRCOMMON_H */
|
||||
|
||||
@@ -374,7 +374,7 @@ PRResult PRDevice::DriverLoadMachineTypeDefaults(PRMachineType machineType, uint
|
||||
const bool mappedSternDriverGroupPolarity[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
|
||||
const int lastWPCCoilDriverGroup = 9;
|
||||
const int lastSternCoilDriverGroup = 7;
|
||||
const int mappedWPCDriverGroupSlowTime[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 400, 400, 400, 400, 400, 400, 400, 400, 0, 0, 0, 0, 0, 0, 0, 0};
|
||||
const int mappedWPCDriverGroupSlowTime[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 100, 100, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, 0, 0, 0};
|
||||
const int mappedSternDriverGroupSlowTime[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400};
|
||||
const int mappedWPCDriverGroupActivateIndex[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0};
|
||||
const int mappedSternDriverGroupActivateIndex[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7};
|
||||
@@ -1087,7 +1087,7 @@ PRResult PRDevice::VerifyChipID()
|
||||
buffer[i] = requestedDataQueue.front();
|
||||
requestedDataQueue.pop(); // Ignore address word. TODO: Verify the address.
|
||||
}
|
||||
if (buffer[1] != P_ROC_CHIP_ID)
|
||||
if (buffer[1] != P_ROC_CHIP_ID && buffer[1] != P3_ROC_CHIP_ID)
|
||||
{
|
||||
DEBUG(PRLog(kPRLogError, "Error in VerifyID(): Dumping buffer\n"));
|
||||
for (i = 0; i < bufferWords; i++)
|
||||
|
||||
@@ -511,6 +511,7 @@ PRResult PRHardwareOpen()
|
||||
|
||||
// We first enumerate all of the devices:
|
||||
int numDevices = ftdi_usb_find_all(&ftdic, &devlist, FTDI_VENDOR_ID, FTDI_FT245RL_PRODUCT_ID);
|
||||
if (numDevices <=0) numDevices = ftdi_usb_find_all(&ftdic, &devlist, FTDI_VENDOR_ID, FTDI_FT240X_PRODUCT_ID);
|
||||
if (numDevices < 0) {
|
||||
PRSetLastErrorText("ftdi_usb_find_all failed: %d: %s", numDevices, ftdi_get_error_string(&ftdic));
|
||||
ftdi_deinit(&ftdic);
|
||||
@@ -537,7 +538,7 @@ PRResult PRHardwareOpen()
|
||||
// Don't need the device list anymore
|
||||
ftdi_list_free (&devlist);
|
||||
|
||||
if ((rc = (int32_t)ftdi_usb_open(&ftdic, FTDI_VENDOR_ID, FTDI_FT245RL_PRODUCT_ID)) < 0)
|
||||
if (((rc = (int32_t)ftdi_usb_open(&ftdic, FTDI_VENDOR_ID, FTDI_FT245RL_PRODUCT_ID)) < 0) && ((rc = (int32_t)ftdi_usb_open(&ftdic, FTDI_VENDOR_ID, FTDI_FT240X_PRODUCT_ID)) < 0))
|
||||
{
|
||||
PRSetLastErrorText("Unable to open ftdi device: %d: %s", rc, ftdi_get_error_string(&ftdic));
|
||||
return kPRFailure;
|
||||
@@ -545,7 +546,8 @@ PRResult PRHardwareOpen()
|
||||
else
|
||||
{
|
||||
rc = kPRSuccess;
|
||||
if (ftdic.type == TYPE_R) {
|
||||
//if (ftdic.type == TYPE_R) {
|
||||
if (1) {
|
||||
uint32_t chipid;
|
||||
ftdi_read_chipid(&ftdic,&chipid);
|
||||
DEBUG(PRLog(kPRLogInfo, "FTDI chip_id = 0x%x\n", chipid));
|
||||
@@ -572,10 +574,12 @@ void PRHardwareClose()
|
||||
}
|
||||
int PRHardwareRead(uint8_t *buffer, int maxBytes)
|
||||
{
|
||||
//return 0;
|
||||
return ftdi_read_data(&ftdic, buffer, maxBytes);
|
||||
}
|
||||
int PRHardwareWrite(uint8_t *buffer, int bytes)
|
||||
{
|
||||
//return 0;
|
||||
return ftdi_write_data(&ftdic, buffer, bytes);
|
||||
}
|
||||
|
||||
|
||||
@@ -41,12 +41,14 @@
|
||||
|
||||
const int32_t FTDI_VENDOR_ID = 0x0403;
|
||||
const int32_t FTDI_FT245RL_PRODUCT_ID = 0x6001;
|
||||
const int32_t FTDI_FT240X_PRODUCT_ID = 0x6015;
|
||||
|
||||
//const int32_t FTDI_BUFFER_SIZE = 2048;
|
||||
const int32_t FTDI_BUFFER_SIZE = 8192;
|
||||
const uint32_t P_ROC_INIT_PATTERN_A = 0x801F1122;
|
||||
const uint32_t P_ROC_INIT_PATTERN_B = 0x345678AB;
|
||||
const uint32_t P_ROC_CHIP_ID = 0xfeedbeef;
|
||||
const uint32_t P3_ROC_CHIP_ID = 0xf33db33f;
|
||||
|
||||
const uint32_t P_ROC_VER_REV_FIXED_SWITCH_STATE_READS = 0x10013; // 1.19
|
||||
|
||||
@@ -86,6 +88,16 @@ const uint32_t P_ROC_BUS_STATE_CHANGE_PROC_SELECT = 4;
|
||||
const uint32_t P_ROC_BUS_DMD_SELECT = 5;
|
||||
const uint32_t P_ROC_BUS_UNASSOCIATED_SELECT = 15;
|
||||
|
||||
const uint32_t P3_ROC_MANAGER_SELECT = 0;
|
||||
const uint32_t P3_ROC_BUS_SPI_SELECT = 1;
|
||||
const uint32_t P3_ROC_BUS_SWITCH_CTRL_SELECT = 2;
|
||||
const uint32_t P3_ROC_BUS_DRIVER_CTRL_SELECT = 3;
|
||||
const uint32_t P3_ROC_BUS_STATE_CHANGE_PROC_SELECT = 4;
|
||||
const uint32_t P3_ROC_BUS_AUX_CTRL_SELECT = 5;
|
||||
const uint32_t P3_ROC_BUS_ACCELEROMETER_SELECT = 6;
|
||||
const uint32_t P3_ROC_BUS_I2C_SELECT = 7;
|
||||
const uint32_t P3_ROC_BUS_UNASSOCIATED_SELECT = 15;
|
||||
|
||||
const uint32_t P_ROC_REG_CHIP_ID_ADDR = 0;
|
||||
const uint32_t P_ROC_REG_VERSION_ADDR = 1;
|
||||
const uint32_t P_ROC_REG_WATCHDOG_ADDR = 2;
|
||||
@@ -97,6 +109,21 @@ const uint32_t P_ROC_MANAGER_WATCHDOG_RESET_TIME_SHIFT = 0;
|
||||
const uint32_t P_ROC_MANAGER_REUSE_DMD_DATA_FOR_AUX_SHIFT = 10;
|
||||
const uint32_t P_ROC_MANAGER_INVERT_DIPSWITCH_1_SHIFT = 9;
|
||||
|
||||
const uint32_t P3_ROC_SPI_OPCODE_SHIFT = 24;
|
||||
|
||||
const uint32_t P3_ROC_SPI_OPCODE_WR_ENABLE = 0;
|
||||
const uint32_t P3_ROC_SPI_OPCODE_WR_DISABLE = 1;
|
||||
const uint32_t P3_ROC_SPI_OPCODE_RD_ID = 2;
|
||||
const uint32_t P3_ROC_SPI_OPCODE_RD_STATUS = 3;
|
||||
const uint32_t P3_ROC_SPI_OPCODE_WR_STATUS = 4;
|
||||
const uint32_t P3_ROC_SPI_OPCODE_RD_DATA = 5;
|
||||
const uint32_t P3_ROC_SPI_OPCODE_FRD_DATA = 6;
|
||||
const uint32_t P3_ROC_SPI_OPCODE_PP = 7;
|
||||
const uint32_t P3_ROC_SPI_OPCODE_SECTOR_ERASE = 8;
|
||||
const uint32_t P3_ROC_SPI_OPCODE_BULK_ERASE = 9;
|
||||
const uint32_t P3_ROC_SPI_OPCODE_DEEP_POWERDN = 10;
|
||||
const uint32_t P3_ROC_SPI_OPCODE_RELEASE = 11;
|
||||
|
||||
const uint32_t P_ROC_JTAG_SHIFT_EXIT_SHIFT = 16;
|
||||
const uint32_t P_ROC_JTAG_SHIFT_NUM_BITS_SHIFT = 0;
|
||||
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
typedef void (*PRLogCallback)(PRLogLevel level, const char *text);
|
||||
|
||||
PRLogCallback logCallback = NULL;
|
||||
//PRLogLevel logLevel = kPRLogError;
|
||||
PRLogLevel logLevel = kPRLogError;
|
||||
|
||||
void PRLog(PRLogLevel level, const char *format, ...)
|
||||
|
||||
Reference in New Issue
Block a user