Jesse Cirimelli-Low
10/26/2023, 1:11 AMAnish
10/26/2023, 1:46 AMJesse Cirimelli-Low
10/26/2023, 1:49 AMAnish
10/26/2023, 1:49 AMAnish
10/26/2023, 1:49 AMJesse Cirimelli-Low
10/26/2023, 1:50 AMAnish
10/26/2023, 1:50 AMJesse Cirimelli-Low
10/26/2023, 1:52 AMJesse Cirimelli-Low
10/26/2023, 2:43 AMJesse Cirimelli-Low
10/26/2023, 2:46 AMAnish
10/26/2023, 4:17 AMAnish
10/26/2023, 4:18 AMAnish
10/26/2023, 4:23 AMgpio_config_data.c
is actually being generated based on your gpio_config_def.py and the gpio_config_io.py is unmodified?
• when running the gpio_test, you're still manually setting the voltage while flashing right (maybe worth multimetering just to make sure)Jesse Cirimelli-Low
10/26/2023, 4:25 AMJesse Cirimelli-Low
10/26/2023, 4:25 AMAnish
10/26/2023, 4:26 AMAnish
10/26/2023, 4:26 AMAnish
10/26/2023, 4:26 AMJesse Cirimelli-Low
10/26/2023, 4:28 AMJesse Cirimelli-Low
10/26/2023, 4:28 AMAnish
10/26/2023, 4:28 AMAnish
10/26/2023, 4:29 AMAnish
10/26/2023, 4:29 AMAnish
10/26/2023, 4:29 AMAnish
10/26/2023, 4:30 AMmake sanity_check
target and does that work?Jesse Cirimelli-Low
10/26/2023, 4:30 AMJesse Cirimelli-Low
10/26/2023, 4:30 AMAnish
10/26/2023, 4:32 AMJesse Cirimelli-Low
10/26/2023, 4:32 AMAnish
10/26/2023, 4:32 AMAnish
10/26/2023, 4:32 AMAnish
10/26/2023, 4:32 AMgpio_config_data.c
Anish
10/26/2023, 4:32 AMJesse Cirimelli-Low
10/26/2023, 4:33 AMAnish
10/26/2023, 4:36 AMAnish
10/26/2023, 4:37 AMmake -B
does that change gpio_config_data.c?Anish
10/26/2023, 4:39 AMJesse Cirimelli-Low
10/26/2023, 4:39 AMJesse Cirimelli-Low
10/26/2023, 4:40 AMJesse Cirimelli-Low
10/26/2023, 4:40 AMAnish
10/26/2023, 4:42 AMAnish
10/26/2023, 4:42 AMAnish
10/26/2023, 4:43 AMJesse Cirimelli-Low
10/26/2023, 4:43 AMJesse Cirimelli-Low
10/26/2023, 4:45 AMAnish
10/26/2023, 4:45 AMJesse Cirimelli-Low
10/26/2023, 4:46 AMJesse Cirimelli-Low
10/26/2023, 4:46 AMAnish
10/26/2023, 4:46 AMJesse Cirimelli-Low
10/26/2023, 4:47 AMAnish
10/26/2023, 4:51 AMAnish
10/26/2023, 4:51 AMAnish
10/26/2023, 4:52 AMAnish
10/26/2023, 4:52 AMJesse Cirimelli-Low
10/26/2023, 4:52 AMAnish
10/26/2023, 4:52 AMAnish
10/26/2023, 4:53 AMJesse Cirimelli-Low
10/26/2023, 4:53 AMJesse Cirimelli-Low
10/26/2023, 8:27 PMAnish
10/26/2023, 8:38 PMJesse Cirimelli-Low
10/26/2023, 8:38 PMAnish
10/26/2023, 8:38 PMJesse Cirimelli-Low
10/26/2023, 8:39 PMAnish
10/26/2023, 8:40 PMJesse Cirimelli-Low
10/26/2023, 8:40 PMJesse Cirimelli-Low
10/26/2023, 8:41 PMAnish
10/26/2023, 8:42 PMJesse Cirimelli-Low
10/26/2023, 8:43 PMAnish
10/26/2023, 8:43 PMAnish
10/26/2023, 8:43 PMJesse Cirimelli-Low
10/26/2023, 8:43 PMJesse Cirimelli-Low
10/26/2023, 8:43 PMAnish
10/26/2023, 8:46 PMJesse Cirimelli-Low
10/26/2023, 8:46 PMAnish
10/26/2023, 8:49 PMJesse Cirimelli-Low
10/26/2023, 8:53 PMAnish
10/26/2023, 8:57 PMJesse Cirimelli-Low
10/26/2023, 9:01 PMJesse Cirimelli-Low
10/26/2023, 9:02 PMJesse Cirimelli-Low
10/26/2023, 9:03 PMJesse Cirimelli-Low
10/26/2023, 9:03 PMJesse Cirimelli-Low
10/26/2023, 9:04 PMAnish
10/26/2023, 9:06 PMJesse Cirimelli-Low
10/26/2023, 9:07 PMJesse Cirimelli-Low
10/26/2023, 9:07 PMAnish
10/26/2023, 9:11 PMAnish
10/26/2023, 9:12 PMJesse Cirimelli-Low
10/26/2023, 9:17 PMJesse Cirimelli-Low
10/26/2023, 9:33 PMJesse Cirimelli-Low
10/26/2023, 9:34 PMJesse Cirimelli-Low
10/26/2023, 9:35 PMAnish
10/26/2023, 9:36 PMJesse Cirimelli-Low
10/26/2023, 9:36 PMJesse Cirimelli-Low
10/28/2023, 8:20 PMTim Edwards
10/29/2023, 3:39 PM"So if I understand correctly even if the gpio configuration passes, you aren't guaranteed to have working GPIO right? It is just determined by how many dependent/independent hold violations you have in a row? I am only getting io[37] working which makes sense given the hold violations. So I just need to keep testing chips until I get ones that has a good "pattern" of hold violations such that it can be accommodated for?"If you can pass configuration, then no, it's not absolutely guaranteed that you can have a working GPIO for your user project, but most of the time (95% of cases, maybe?) you can get the functionality you need for the user project, although sometimes it takes a bit of clever thinking about it. If you have too many dependent hold violations on a particular chip, then that chip becomes effectively unusable if you're trying to reach any GPIO toward the middle of the range. The first thing to do is to summarize what you have seen so far. (1) Do you have chips for which the GPIO calibration completes and passes? (2) Are you able to run a simple toggle test from management, configuring the GPIO according to the results of the calibration, and confirming that all I/O are toggling? (3) What is the target configuration for your user project? How many channels are you using, and which ones are inputs and which are outputs? (4) Have you run the I/O simulation script to confirm that your settings for the user project are valid?
Jesse Cirimelli-Low
10/30/2023, 7:46 AMTim Edwards
10/30/2023, 1:34 PMcaravel_board/firmware/mpw2-5/gpio_config/gpio_config_simulator.py
. It is not directly accessible from a make
target.Jesse Cirimelli-Low
10/31/2023, 1:38 AMTim Edwards
10/31/2023, 2:22 AMAnish
10/31/2023, 3:46 PMAnish
10/31/2023, 3:47 PMTim Edwards
10/31/2023, 3:53 PMTim Edwards
10/31/2023, 3:59 PMgpio_config_io()
is commented out in your gpio_test.c
file. There is also a reg_mprj_xfer = 1; while (reg_mprj_xfer == 1);
statement. The way it is written would work if there were no issues with caravel, but definitely will not work with MPW 2 to 5. The gpio_config_io()
routine is the workaround for the hold violation problem.Jesse Cirimelli-Low
10/31/2023, 4:55 PMJesse Cirimelli-Low
10/31/2023, 5:05 PMTim Edwards
10/31/2023, 5:24 PMJesse Cirimelli-Low
10/31/2023, 7:07 PM