-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hang before reading flash and IPL #26
Comments
I seem to be running into the same issue with my iCEBreaker v1.0e. The main difference in my case is that I modified the hardware Verilog in order to support a plain VGA Pmod, but that shouldn't matter in this case considering you're running into the same issue. |
After doing some debugging I have figured out that it is in fact initializing the flash and attempting to load the program. It appears to be making it to the effective end of boot.S where it jumps to the RAM base address. My only guess as to what's going wrong is that maybe the data it's loading from flash is incorrect somehow? Not sure. edit: I was wrong, it turns out it is actually making it to the user software's start.S! By playing around with setting the status LEDs at various stages of start.S I was able to figure that out. Now the question is, why is it failing to run the actual main() function? edit 2: The behavior I'm seeing is really weird. It behaves differently depending on (seemingly) the size of the code? Adding or removing unrelated code (code that toggles LEDs, etc) makes it behave differently. This is really hard to debug since it works perfectly in the simulator :( |
Aha I figured it out! On line 307 of hardware/icebreaker/ics32_top_icebreaker.v, change |
This is fantastic news @ry755. I have two versions of the 1.0e, one with a Q part number in the winbond chip and one without. One works as is, and the other fails in the way I described. The one with the Q works. There seems to be code to enable the QSPI mode of the chip, so it seems like it should work on both. I will give your change a try and see if it fixes it for me. |
Hmm, I just discovered that power cycling the board breaks it again until you reset it by reflashing one of the software demos. Also, |
Hello! I'm trying this project out on an ICEbreaker v1.0e board with a WINBOND flash chip. I'm able to build and flash the bitstream and the bootloader using iceprog over usb, but when running it stops after printing STARTING NOW, never prints the name of the flashchip, and then hangs. If I enable BOOT_PROMPT it does flash the leds and wait for a button press.
I tried using the precompiled bitstream and program from (https://github.com/dan-rodrigues/super-miyamoto-sprint/releases/tag/0.2.0) using ice32-icebreaker-breakout-board.bit and prog-no-music.bin and I get the same effect.
The text was updated successfully, but these errors were encountered: