diff --git a/src/bootloader/bootloader.c b/src/bootloader/bootloader.c index e456e47..1ba915f 100644 --- a/src/bootloader/bootloader.c +++ b/src/bootloader/bootloader.c @@ -213,9 +213,8 @@ int main(int argc, char *argv[]) volatile uint8_t *pMem; haddr = 0; - flash_img_hdr_t *pImg_hdr; + flash_img_hdr_t img_hdr; - volatile uint32_t *pFlashIO = (uint32_t*)(FLASH_BASE_IO + 0x00100000); // Flash in uncached area volatile uint32_t *pFlashMem = (uint32_t*)(FLASH_BASE_MEM + 0x00100000); // Flash in cached area volatile uint32_t *pSdram32 = (uint32_t*)SDRAM_BASE; @@ -223,28 +222,28 @@ int main(int argc, char *argv[]) // ---------------------------------------------------------- sputs("Loading image from flash at ");print_word((int)pFlashMem);sputs("\n"); - pImg_hdr = (flash_img_hdr_t*)pFlashIO; - if ((pImg_hdr->magic != MAGIC_EL) && (pImg_hdr->magic != MAGIC_EB)) + img_hdr = *((flash_img_hdr_t*)pFlashMem); + if ((img_hdr.magic != MAGIC_EL) && (img_hdr.magic != MAGIC_EB)) { sputs("\n\n"); sputs("Invalid image found at ");print_word((int)pFlashMem); sputs(". Abort.\n"); return 1; } - sputs("target_base = ");print_word(pImg_hdr->target_base);sputs("\n"); - sputs("img_base = ");print_word(pImg_hdr->img_base);sputs("\n"); - sputs("img_size = ");print_word(pImg_hdr->img_size);sputs("\n"); + sputs("target_base = ");print_word(img_hdr.target_base);sputs("\n"); + sputs("img_base = ");print_word(img_hdr.img_base);sputs("\n"); + sputs("img_size = ");print_word(img_hdr.img_size);sputs("\n"); - pSdram32 = (uint32_t*)pImg_hdr->target_base; + pSdram32 = (uint32_t*)img_hdr.target_base; // It's safe to use cached Flash, // because D-Cache was invalidated during execution of start code - pFlashMem += pImg_hdr->img_base/4; + pFlashMem += img_hdr.img_base/4; - for (i=0; i < pImg_hdr->img_size/4; i++) + for (i=0; i < img_hdr.img_size/4; i++) pSdram32[i] = pFlashMem[i]; - sputs("Booting from ");print_word(pImg_hdr->target_base);sputs("\n\n"); + sputs("Booting from ");print_word(img_hdr.target_base);sputs("\n\n"); Exec_at((void*)pSdram32); // ----------------------------------------------------------