Merge pull request #6 from TomKeddie/tomk_20190613_constants

Move bitstream sync constants to CONFIG entries
This commit is contained in:
Sean Cross 2019-06-14 13:07:37 +08:00 committed by GitHub
commit c0d26411a0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 4 deletions

View File

@ -379,7 +379,7 @@ class SBLED(Module, AutoCSR):
class SBWarmBoot(Module, AutoCSR):
def __init__(self):
def __init__(self, parent):
self.ctrl = CSRStorage(size=8)
self.addr = CSRStorage(size=32)
do_reset = Signal()
@ -393,6 +393,9 @@ class SBWarmBoot(Module, AutoCSR):
i_S1 = self.ctrl.storage[1],
i_BOOT = do_reset,
)
parent.config["BITSTREAM_SYNC_HEADER1"] = 0x7e99aa7e
parent.config["BITSTREAM_SYNC_HEADER2"] = 0x7eaa997e
class TouchPads(Module, AutoCSR):
def __init__(self, pads):
@ -757,7 +760,7 @@ class BaseSoC(SoCCore):
self.register_mem("spiflash", self.mem_map["spiflash"],
self.picorvspi.bus, size=self.picorvspi.size)
self.submodules.reboot = SBWarmBoot()
self.submodules.reboot = SBWarmBoot(self)
self.cpu.cpu_params.update(
i_externalResetVector=self.reboot.addr.storage,
)

View File

@ -124,8 +124,8 @@ void reboot(void) {
uint32_t *destination_array = (uint32_t *)reboot_addr;
for (i = 0; i < 32; i++) {
// Look for FPGA sync pulse.
if ((destination_array[i] == 0x7e99aa7e)
|| (destination_array[i] == 0x7eaa997e)) {
if ((destination_array[i] == CONFIG_BITSTREAM_SYNC_HEADER1)
|| (destination_array[i] == CONFIG_BITSTREAM_SYNC_HEADER2)) {
riscv_boot = 0;
break;
}