Merge branch 'master' of github.com:im-tomu/foboot

This commit is contained in:
Sean Cross 2019-06-17 15:33:49 -07:00
commit 8354617950
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):
@ -758,7 +761,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;
}