[PATCH v1] tools: mkimage: Add support for i.MXRT FlexSPI Header

Modify imx8m Flex SPI Configuration Block to work with imxrt. Add more Flex SPI configuration options to Kconfig.
Signed-off-by: Jesse Taube Mr.Bossman075@gmail.com --- include/imximage.h | 42 +++++++++++++------------ tools/Kconfig | 21 +++++++++++++ tools/imx8mimage.c | 41 ++++++++++++------------ tools/imximage.c | 77 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 143 insertions(+), 38 deletions(-)
diff --git a/include/imximage.h b/include/imximage.h index c1ecc0b7cb..a951699d0a 100644 --- a/include/imximage.h +++ b/include/imximage.h @@ -210,33 +210,37 @@ typedef struct { uint8_t datasetup; uint8_t coladdrwidth; uint8_t devcfgenable; - uint8_t reserved_2[3]; + uint8_t deviceModeType; + uint16_t waitTimeCfgCommands; uint8_t devmodeseq[4]; - uint8_t devmodearg[4]; + uint32_t devmodearg; uint8_t cmd_enable; - uint8_t reserved_3[3]; + uint8_t configModeType[3]; uint8_t cmd_seq[16] ; uint8_t cmd_arg[16]; - uint8_t controllermisc[4]; + uint32_t controllermisc; uint8_t dev_type; uint8_t sflash_pad; uint8_t serial_clk; - uint8_t lut_custom ; - uint8_t reserved_4[8]; - uint8_t sflashA1[4]; - uint8_t sflashA2[4]; - uint8_t sflashB1[4]; - uint8_t sflashB2[4]; - uint8_t cspadover[4]; - uint8_t sclkpadover[4]; - uint8_t datapadover[4]; - uint8_t dqspadover[4]; - uint8_t timeout[4]; - uint8_t commandInt[4]; - uint8_t datavalid[4]; - uint8_t busyoffset[2]; - uint8_t busybitpolarity[2]; + uint8_t lut_custom; + uint8_t reserved_2[8]; + uint32_t sflashA1; + uint32_t sflashA2; + uint32_t sflashB1; + uint32_t sflashB2; + uint32_t cspadover; + uint32_t sclkpadover; + uint32_t datapadover; + uint32_t dqspadover; + uint32_t timeout; + uint32_t commandInt; + uint16_t datavalid[2]; + uint16_t busyoffset; + uint16_t busybitpolarity; uint8_t lut[256]; + uint8_t lutCustomSeq[48]; + uint8_t reserved_3[16]; + } __attribute__((packed)) fspi_conf;
typedef void (*set_dcd_val_t)(struct imx_header *imxhdr, diff --git a/tools/Kconfig b/tools/Kconfig index f01ed783e6..667807b331 100644 --- a/tools/Kconfig +++ b/tools/Kconfig @@ -148,6 +148,27 @@ config SERIAL_CLK_FREQUENCY Chip specific frequency: other value 30MHz 1-30MHz 2-50MHz 3-60MHz 4-75MHz 5-80MHz 6-100MHz 7-133MHz 8-166MHz
+config FSPI_COL_ADDR_W + hex "Column Address With" + default 0x00 + depends on FSPI_CONF_HEADER + help + Default 0. For HyperBus protocol, it is fixed to 3 + +config FSPI_CONTROLLER_MISC + hex "FSPI miscellaneous control" + default 0x00000000 + depends on FSPI_CONF_HEADER + help + Default 0. [0x40] Controller Misc Options + +config FSPI_FLASH_A1_SIZE + hex "Size in bytes of Flash A1" + default 0x10000000 + depends on FSPI_CONF_HEADER + help + Size of Flash connected to A1 in bytes + config LUT_CUSTOM_SEQUENCE hex "Enable Custom Look Up Table(LUT) Sequence" default 0x00 diff --git a/tools/imx8mimage.c b/tools/imx8mimage.c index 21075c2379..939f829a9f 100644 --- a/tools/imx8mimage.c +++ b/tools/imx8mimage.c @@ -426,36 +426,39 @@ static int generate_fspi_header (int ifd) .read_sample = CONFIG_READ_CLK_SOURCE, .datahold = 0x03, .datasetup = 0x03, - .coladdrwidth = 0x00, + .coladdrwidth = CONFIG_FSPI_COL_ADDR_W, .devcfgenable = 0x00, - .reserved_2 = {0x00, 0x00, 0x00}, + .deviceModeType = 0x00, + .waitTimeCfgCommands = 0x0000, .devmodeseq = {0x00, 0x00, 0x00, 0x00}, - .devmodearg = {0x00, 0x00, 0x00, 0x00}, + .devmodearg = 0x00000000, .cmd_enable = 0x00, - .reserved_3 = {0x00}, + .configModeType = {0x00}, .cmd_seq = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, .cmd_arg = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - .controllermisc = {0x00, 0x00, 0x00, 0x00}, + .controllermisc = cpu_to_le32(CONFIG_FSPI_CONTROLLER_MISC), .dev_type = CONFIG_DEVICE_TYPE, .sflash_pad = CONFIG_FLASH_PAD_TYPE, .serial_clk = CONFIG_SERIAL_CLK_FREQUENCY, .lut_custom = CONFIG_LUT_CUSTOM_SEQUENCE, - .reserved_4 = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - .sflashA1 = {0x00, 0x00, 0x00, 0x10}, - .sflashA2 = {0x00, 0x00, 0x00, 0x00}, - .sflashB1 = {0x00, 0x00, 0x00, 0x00}, - .sflashB2 = {0x00, 0x00, 0x00, 0x00}, - .cspadover = {0x00, 0x00, 0x00, 0x00}, - .sclkpadover = {0x00, 0x00, 0x00, 0x00}, - .datapadover = {0x00, 0x00, 0x00, 0x00}, - .dqspadover = {0x00, 0x00, 0x00, 0x00}, - .timeout = {0x00, 0x00, 0x00, 0x00}, - .commandInt = {0x00, 0x00, 0x00, 0x00}, - .datavalid = {0x00, 0x00, 0x00, 0x00}, - .busyoffset = {0x00, 0x00}, - .busybitpolarity = {0x00, 0x00}, + .reserved_2 = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + .sflashA1 = cpu_to_le32(CONFIG_FSPI_FLASH_A1_SIZE), + .sflashA2 = 0x00000000, + .sflashB1 = 0x00000000, + .sflashB2 = 0x00000000, + .cspadover = 0x00000000, + .sclkpadover = 0x00000000, + .datapadover = 0x00000000, + .dqspadover = 0x00000000, + .timeout = 0x00000000, + .commandInt = 0x00000000, + .datavalid = {0x0000, 0x0000}, + .busyoffset = 0x0000, + .busybitpolarity = 0x0000, + .lutCustomSeq = {0x00}, + .reserved_3 = {0x00} };
for (val = strtok(lut_str, ","); val; val = strtok(NULL, ",")) { diff --git a/tools/imximage.c b/tools/imximage.c index b3da1f244c..2df4c7dd49 100644 --- a/tools/imximage.c +++ b/tools/imximage.c @@ -908,6 +908,64 @@ int imximage_check_params(struct image_tool_params *params) (params->xflag) || !(strlen(params->imagename)); }
+#ifdef CONFIG_FSPI_CONF_HEADER +static void generate_fspi_header(int ifd) +{ + int i = 0; + char *val; + char lut_str[] = CONFIG_LUT_SEQUENCE; + + fspi_conf fspi_conf_data = { + .tag = {0x46, 0x43, 0x46, 0x42}, + .version = {0x00, 0x00, 0x01, 0x56}, + .reserved_1 = {0x00, 0x00, 0x00, 0x00}, + .read_sample = CONFIG_READ_CLK_SOURCE, + .datahold = 0x03, + .datasetup = 0x03, + .coladdrwidth = CONFIG_FSPI_COL_ADDR_W, + .devcfgenable = 0x00, + .deviceModeType = 0x00, + .waitTimeCfgCommands = 0x0000, + .devmodeseq = {0x00, 0x00, 0x00, 0x00}, + .devmodearg = 0x00000000, + .cmd_enable = 0x00, + .configModeType = {0x00}, + .cmd_seq = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + .cmd_arg = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + .controllermisc = cpu_to_le32(CONFIG_FSPI_CONTROLLER_MISC), + .dev_type = CONFIG_DEVICE_TYPE, + .sflash_pad = CONFIG_FLASH_PAD_TYPE, + .serial_clk = CONFIG_SERIAL_CLK_FREQUENCY, + .lut_custom = CONFIG_LUT_CUSTOM_SEQUENCE, + .reserved_2 = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + .sflashA1 = cpu_to_le32(CONFIG_FSPI_FLASH_A1_SIZE), + .sflashA2 = 0x00000000, + .sflashB1 = 0x00000000, + .sflashB2 = 0x00000000, + .cspadover = 0x00000000, + .sclkpadover = 0x00000000, + .datapadover = 0x00000000, + .dqspadover = 0x00000000, + .timeout = 0x00000000, + .commandInt = 0x00000000, + .datavalid = {0x0000, 0x0000}, + .busyoffset = 0x0000, + .busybitpolarity = 0x0000, + .lutCustomSeq = {0x00}, + .reserved_3 = {0x00} + }; + + for (val = strtok(lut_str, ","); val; val = strtok(NULL, ",")) + fspi_conf_data.lut[i++] = strtoul(val, NULL, 16); + + lseek(ifd, 0, SEEK_CUR); + if (write(ifd, &fspi_conf_data, sizeof(fspi_conf_data)) == -1) + exit(EXIT_FAILURE); +} +#endif + static int imximage_generate(struct image_tool_params *params, struct image_type_params *tparams) { @@ -917,6 +975,11 @@ static int imximage_generate(struct image_tool_params *params, char *datafile = params->datafile; uint32_t pad_len, header_size;
+#ifdef CONFIG_FSPI_CONF_HEADER + int fspi_fd; + char *fspi; +#endif + memset(&imximage_header, 0, sizeof(imximage_header));
/* @@ -977,6 +1040,20 @@ static int imximage_generate(struct image_tool_params *params,
pad_len = ROUND(sbuf.st_size, 4096) - sbuf.st_size;
+#ifdef CONFIG_FSPI_CONF_HEADER + fspi = CONFIG_FSPI_CONF_FILE; + fspi_fd = open(fspi, O_RDWR | O_CREAT, S_IRWXU); + if (fspi_fd < 0) { + fprintf(stderr, "Can't open %s: %s\n", + fspi, strerror(errno)); + exit(EXIT_FAILURE); + } + + generate_fspi_header(fspi_fd); + close(fspi_fd); + +#endif + return pad_len; }

Hi Adam,
On Tue, Jan 23, 2024 at 11:15 PM Jesse Taube mr.bossman075@gmail.com wrote:
Modify imx8m Flex SPI Configuration Block to work with imxrt. Add more Flex SPI configuration options to Kconfig.
Signed-off-by: Jesse Taube Mr.Bossman075@gmail.com
Could you please test it on imx8mn_beacon_fspi_defconfig ?

On Thu, Jan 25, 2024 at 2:10 PM Fabio Estevam festevam@gmail.com wrote:
Hi Adam,
On Tue, Jan 23, 2024 at 11:15 PM Jesse Taube mr.bossman075@gmail.com wrote:
Modify imx8m Flex SPI Configuration Block to work with imxrt. Add more Flex SPI configuration options to Kconfig.
Signed-off-by: Jesse Taube Mr.Bossman075@gmail.com
Could you please test it on imx8mn_beacon_fspi_defconfig ?
Yes. I was planning on doing it this weekend. I'll try to get it done sooner and report back the results.
adam

On Tue, Jan 23, 2024 at 8:15 PM Jesse Taube mr.bossman075@gmail.com wrote:
Modify imx8m Flex SPI Configuration Block to work with imxrt. Add more Flex SPI configuration options to Kconfig.
Signed-off-by: Jesse Taube Mr.Bossman075@gmail.com
I had to go back in time, because it appears the current version of 'master' doesn't fully boot the FSPI, but when I applied this patch against a working version, it still worked when I was done. I'll try to git bisect the issue when I have time, but for now:
Tested-by: Adam Ford aford173@gmail.com #imx8mn-beacon
adam
include/imximage.h | 42 +++++++++++++------------ tools/Kconfig | 21 +++++++++++++ tools/imx8mimage.c | 41 ++++++++++++------------ tools/imximage.c | 77 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 143 insertions(+), 38 deletions(-)
diff --git a/include/imximage.h b/include/imximage.h index c1ecc0b7cb..a951699d0a 100644 --- a/include/imximage.h +++ b/include/imximage.h @@ -210,33 +210,37 @@ typedef struct { uint8_t datasetup; uint8_t coladdrwidth; uint8_t devcfgenable;
uint8_t reserved_2[3];
uint8_t deviceModeType;
uint16_t waitTimeCfgCommands; uint8_t devmodeseq[4];
uint8_t devmodearg[4];
uint32_t devmodearg; uint8_t cmd_enable;
uint8_t reserved_3[3];
uint8_t configModeType[3]; uint8_t cmd_seq[16] ; uint8_t cmd_arg[16];
uint8_t controllermisc[4];
uint32_t controllermisc; uint8_t dev_type; uint8_t sflash_pad; uint8_t serial_clk;
uint8_t lut_custom ;
uint8_t reserved_4[8];
uint8_t sflashA1[4];
uint8_t sflashA2[4];
uint8_t sflashB1[4];
uint8_t sflashB2[4];
uint8_t cspadover[4];
uint8_t sclkpadover[4];
uint8_t datapadover[4];
uint8_t dqspadover[4];
uint8_t timeout[4];
uint8_t commandInt[4];
uint8_t datavalid[4];
uint8_t busyoffset[2];
uint8_t busybitpolarity[2];
uint8_t lut_custom;
uint8_t reserved_2[8];
uint32_t sflashA1;
uint32_t sflashA2;
uint32_t sflashB1;
uint32_t sflashB2;
uint32_t cspadover;
uint32_t sclkpadover;
uint32_t datapadover;
uint32_t dqspadover;
uint32_t timeout;
uint32_t commandInt;
uint16_t datavalid[2];
uint16_t busyoffset;
uint16_t busybitpolarity; uint8_t lut[256];
uint8_t lutCustomSeq[48];
uint8_t reserved_3[16];
} __attribute__((packed)) fspi_conf;
typedef void (*set_dcd_val_t)(struct imx_header *imxhdr, diff --git a/tools/Kconfig b/tools/Kconfig index f01ed783e6..667807b331 100644 --- a/tools/Kconfig +++ b/tools/Kconfig @@ -148,6 +148,27 @@ config SERIAL_CLK_FREQUENCY Chip specific frequency: other value 30MHz 1-30MHz 2-50MHz 3-60MHz 4-75MHz 5-80MHz 6-100MHz 7-133MHz 8-166MHz
+config FSPI_COL_ADDR_W
hex "Column Address With"
default 0x00
depends on FSPI_CONF_HEADER
help
Default 0. For HyperBus protocol, it is fixed to 3
+config FSPI_CONTROLLER_MISC
hex "FSPI miscellaneous control"
default 0x00000000
depends on FSPI_CONF_HEADER
help
Default 0. [0x40] Controller Misc Options
+config FSPI_FLASH_A1_SIZE
hex "Size in bytes of Flash A1"
default 0x10000000
depends on FSPI_CONF_HEADER
help
Size of Flash connected to A1 in bytes
config LUT_CUSTOM_SEQUENCE hex "Enable Custom Look Up Table(LUT) Sequence" default 0x00 diff --git a/tools/imx8mimage.c b/tools/imx8mimage.c index 21075c2379..939f829a9f 100644 --- a/tools/imx8mimage.c +++ b/tools/imx8mimage.c @@ -426,36 +426,39 @@ static int generate_fspi_header (int ifd) .read_sample = CONFIG_READ_CLK_SOURCE, .datahold = 0x03, .datasetup = 0x03,
.coladdrwidth = 0x00,
.coladdrwidth = CONFIG_FSPI_COL_ADDR_W, .devcfgenable = 0x00,
.reserved_2 = {0x00, 0x00, 0x00},
.deviceModeType = 0x00,
.waitTimeCfgCommands = 0x0000, .devmodeseq = {0x00, 0x00, 0x00, 0x00},
.devmodearg = {0x00, 0x00, 0x00, 0x00},
.devmodearg = 0x00000000, .cmd_enable = 0x00,
.reserved_3 = {0x00},
.configModeType = {0x00}, .cmd_seq = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, .cmd_arg = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
.controllermisc = {0x00, 0x00, 0x00, 0x00},
.controllermisc = cpu_to_le32(CONFIG_FSPI_CONTROLLER_MISC), .dev_type = CONFIG_DEVICE_TYPE, .sflash_pad = CONFIG_FLASH_PAD_TYPE, .serial_clk = CONFIG_SERIAL_CLK_FREQUENCY, .lut_custom = CONFIG_LUT_CUSTOM_SEQUENCE,
.reserved_4 = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
.sflashA1 = {0x00, 0x00, 0x00, 0x10},
.sflashA2 = {0x00, 0x00, 0x00, 0x00},
.sflashB1 = {0x00, 0x00, 0x00, 0x00},
.sflashB2 = {0x00, 0x00, 0x00, 0x00},
.cspadover = {0x00, 0x00, 0x00, 0x00},
.sclkpadover = {0x00, 0x00, 0x00, 0x00},
.datapadover = {0x00, 0x00, 0x00, 0x00},
.dqspadover = {0x00, 0x00, 0x00, 0x00},
.timeout = {0x00, 0x00, 0x00, 0x00},
.commandInt = {0x00, 0x00, 0x00, 0x00},
.datavalid = {0x00, 0x00, 0x00, 0x00},
.busyoffset = {0x00, 0x00},
.busybitpolarity = {0x00, 0x00},
.reserved_2 = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
.sflashA1 = cpu_to_le32(CONFIG_FSPI_FLASH_A1_SIZE),
.sflashA2 = 0x00000000,
.sflashB1 = 0x00000000,
.sflashB2 = 0x00000000,
.cspadover = 0x00000000,
.sclkpadover = 0x00000000,
.datapadover = 0x00000000,
.dqspadover = 0x00000000,
.timeout = 0x00000000,
.commandInt = 0x00000000,
.datavalid = {0x0000, 0x0000},
.busyoffset = 0x0000,
.busybitpolarity = 0x0000,
.lutCustomSeq = {0x00},
.reserved_3 = {0x00} }; for (val = strtok(lut_str, ","); val; val = strtok(NULL, ",")) {
diff --git a/tools/imximage.c b/tools/imximage.c index b3da1f244c..2df4c7dd49 100644 --- a/tools/imximage.c +++ b/tools/imximage.c @@ -908,6 +908,64 @@ int imximage_check_params(struct image_tool_params *params) (params->xflag) || !(strlen(params->imagename)); }
+#ifdef CONFIG_FSPI_CONF_HEADER +static void generate_fspi_header(int ifd) +{
int i = 0;
char *val;
char lut_str[] = CONFIG_LUT_SEQUENCE;
fspi_conf fspi_conf_data = {
.tag = {0x46, 0x43, 0x46, 0x42},
.version = {0x00, 0x00, 0x01, 0x56},
.reserved_1 = {0x00, 0x00, 0x00, 0x00},
.read_sample = CONFIG_READ_CLK_SOURCE,
.datahold = 0x03,
.datasetup = 0x03,
.coladdrwidth = CONFIG_FSPI_COL_ADDR_W,
.devcfgenable = 0x00,
.deviceModeType = 0x00,
.waitTimeCfgCommands = 0x0000,
.devmodeseq = {0x00, 0x00, 0x00, 0x00},
.devmodearg = 0x00000000,
.cmd_enable = 0x00,
.configModeType = {0x00},
.cmd_seq = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
.cmd_arg = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
.controllermisc = cpu_to_le32(CONFIG_FSPI_CONTROLLER_MISC),
.dev_type = CONFIG_DEVICE_TYPE,
.sflash_pad = CONFIG_FLASH_PAD_TYPE,
.serial_clk = CONFIG_SERIAL_CLK_FREQUENCY,
.lut_custom = CONFIG_LUT_CUSTOM_SEQUENCE,
.reserved_2 = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
.sflashA1 = cpu_to_le32(CONFIG_FSPI_FLASH_A1_SIZE),
.sflashA2 = 0x00000000,
.sflashB1 = 0x00000000,
.sflashB2 = 0x00000000,
.cspadover = 0x00000000,
.sclkpadover = 0x00000000,
.datapadover = 0x00000000,
.dqspadover = 0x00000000,
.timeout = 0x00000000,
.commandInt = 0x00000000,
.datavalid = {0x0000, 0x0000},
.busyoffset = 0x0000,
.busybitpolarity = 0x0000,
.lutCustomSeq = {0x00},
.reserved_3 = {0x00}
};
for (val = strtok(lut_str, ","); val; val = strtok(NULL, ","))
fspi_conf_data.lut[i++] = strtoul(val, NULL, 16);
lseek(ifd, 0, SEEK_CUR);
if (write(ifd, &fspi_conf_data, sizeof(fspi_conf_data)) == -1)
exit(EXIT_FAILURE);
+} +#endif
static int imximage_generate(struct image_tool_params *params, struct image_type_params *tparams) { @@ -917,6 +975,11 @@ static int imximage_generate(struct image_tool_params *params, char *datafile = params->datafile; uint32_t pad_len, header_size;
+#ifdef CONFIG_FSPI_CONF_HEADER
int fspi_fd;
char *fspi;
+#endif
memset(&imximage_header, 0, sizeof(imximage_header)); /*
@@ -977,6 +1040,20 @@ static int imximage_generate(struct image_tool_params *params,
pad_len = ROUND(sbuf.st_size, 4096) - sbuf.st_size;
+#ifdef CONFIG_FSPI_CONF_HEADER
fspi = CONFIG_FSPI_CONF_FILE;
fspi_fd = open(fspi, O_RDWR | O_CREAT, S_IRWXU);
if (fspi_fd < 0) {
fprintf(stderr, "Can't open %s: %s\n",
fspi, strerror(errno));
exit(EXIT_FAILURE);
}
generate_fspi_header(fspi_fd);
close(fspi_fd);
+#endif
return pad_len;
}
-- 2.43.0

Hi Adam,
On Thu, Jan 25, 2024 at 7:37 PM Adam Ford aford173@gmail.com wrote:
I had to go back in time, because it appears the current version of 'master' doesn't fully boot the FSPI, but when I applied this patch against a working version, it still worked when I was done. I'll try to git bisect the issue when I have time, but for now:
Tested-by: Adam Ford aford173@gmail.com #imx8mn-beacon
Thanks for testing, appreciate it. I will queue this one.
Hopefully, we can figure out the cause of the regression.

On Fri, Jan 26, 2024 at 1:11 PM Fabio Estevam festevam@gmail.com wrote:
Hi Adam,
On Thu, Jan 25, 2024 at 7:37 PM Adam Ford aford173@gmail.com wrote:
I had to go back in time, because it appears the current version of 'master' doesn't fully boot the FSPI, but when I applied this patch against a working version, it still worked when I was done. I'll try to git bisect the issue when I have time, but for now:
Tested-by: Adam Ford aford173@gmail.com #imx8mn-beacon
Thanks for testing, appreciate it. I will queue this one.
No problem. Sorry it took so long.
Hopefully, we can figure out the cause of the regression.
I must have done something wrong when I tested this before, because it's working fine for me now even when applied against the main trunk, so I think all is good.
adam

On Tue, Jan 23, 2024 at 11:15 PM Jesse Taube mr.bossman075@gmail.com wrote:
Modify imx8m Flex SPI Configuration Block to work with imxrt. Add more Flex SPI configuration options to Kconfig.
Signed-off-by: Jesse Taube Mr.Bossman075@gmail.com
Applied, thanks.

On Tue, Jan 23, 2024 at 11:15 PM Jesse Taube mr.bossman075@gmail.com wrote:
Modify imx8m Flex SPI Configuration Block to work with imxrt. Add more Flex SPI configuration options to Kconfig.
Signed-off-by: Jesse Taube Mr.Bossman075@gmail.com
Applied, thanks.
participants (3)
-
Adam Ford
-
Fabio Estevam
-
Jesse Taube