Skip to content
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

BIOS: Flashboot without main ram #55

Closed

Conversation

ewenmcneill
Copy link
Contributor

Modified flashboot() to skip copy to main ram if there is no main ram, and instead execute in place out of SPI flash. Needed to support, eg, Numato Elbert v2 which has no external SDRAM (only FPGA internal SRAM). Untested on Numato Elbert v2 (still working on getting gateware building for Spartan 3A), but compiles for Numato Mimas v2 / Digilent Arty A7; both will still serialboot, and Mimas v2 also appears to still flashboot.

Modified flashboot() to skip copy to main ram if there is no main
ram, and instead execute in place out of SPI flash.  (For this to
work the linker .ld will also need to redirect references to be
inside the SPI flash mapping.)
@ewenmcneill
Copy link
Contributor Author

For clarity: "it compiles" for Elbert v2, but not run yet (as need to get gateware building first). Actually run on Mimas v2 / Arty A7.

flashboot test with Mimas v2:

python $(which MimasV2Config.py) /dev/ttyACM0 build/mimasv2_base_lm32//image-gateware+bios+micropython.bin
****************************************
* Numato Lab Mimas V2 Configuration Tool *
****************************************
Micron M25P16 SPI Flash detected
Loading file build/mimasv2_base_lm32//image-gateware+bios+micropython.bin...
Erasing flash sectors...
Writing to flash 100% complete...
Verifying flash contents...
Flash verification successful...
Booting FPGA...
Done.
(LX P=mimasv2 F=micropython R=numato-elbert-v2) ewen@parthenon:/src/fpga-minicon
f/litex-buildenv$ make firmware-connect
flterm --port=/dev/ttyACM0 --speed=19200
[FLTERM] Starting...

>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
LiteX SoC BIOS (lm32)
(c) Copyright 2012-2018 Enjoy-Digital
(c) Copyright 2007-2018 M-Labs Limited
Built Jan 19 2018 13:51:56

BIOS CRC passed (713b9a43)
Initializing SDRAM...
Memtest OK
Booting from serial...
Press Q or ESC to abort boot completely.
sL5DdSMmkekro
Timeout
Booting from flash...
Loading 167960 bytes from flash...
Executing booted program at 0x40000000
MicroPython v1.8.7-465-g7a4245d on 2018-01-19; litex with lm32
>>> 

@mithro
Copy link
Collaborator

mithro commented Jan 19, 2018

@ewen-naos-nz Can you try this with a MimasV2 config without DDR?

@mithro
Copy link
Collaborator

mithro commented Jan 20, 2018

Closing as #57 is being tested by @rohitk-singh on the cmod-a7 board.

@mithro mithro closed this Jan 20, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants