removed FLASH_BOOT_OFFSET, replaced memcyp with copy_image_from_flash_to_ram

This commit is contained in:
rprinz08 2020-05-12 16:57:21 +02:00
parent ea232fc53a
commit f062c0c44b
1 changed files with 8 additions and 13 deletions

View File

@ -366,11 +366,6 @@ void netboot(void)
#endif #endif
#ifdef FLASH_BOOT_ADDRESS #ifdef FLASH_BOOT_ADDRESS
#ifdef FLASH_BOOT_OFFSET
unsigned int flash_boot_address = FLASH_BOOT_ADDRESS + FLASH_BOOT_OFFSET;
#else
unsigned int flash_boot_address = FLASH_BOOT_ADDRESS;
#endif
/* On systems with exernal SDRAM we copy out of the SPI flash into the SDRAM /* On systems with exernal SDRAM we copy out of the SPI flash into the SDRAM
before running, as it is faster. If we have no SDRAM then we have to before running, as it is faster. If we have no SDRAM then we have to
@ -379,7 +374,7 @@ unsigned int flash_boot_address = FLASH_BOOT_ADDRESS;
#define FIRMWARE_BASE_ADDRESS MAIN_RAM_BASE #define FIRMWARE_BASE_ADDRESS MAIN_RAM_BASE
#else #else
/* Firmware code starts after (a) length and (b) CRC -- both unsigned ints */ /* Firmware code starts after (a) length and (b) CRC -- both unsigned ints */
#define FIRMWARE_BASE_ADDRESS (flash_boot_address + 2 * sizeof(unsigned int)) #define FIRMWARE_BASE_ADDRESS (FLASH_BOOT_ADDRESS + 2 * sizeof(unsigned int))
#endif #endif
static unsigned int check_image_in_flash(unsigned int base_address) static unsigned int check_image_in_flash(unsigned int base_address)
@ -443,28 +438,28 @@ void flashboot(void)
printf("Loading Image from flash...\n"); printf("Loading Image from flash...\n");
result = copy_image_from_flash_to_ram( result = copy_image_from_flash_to_ram(
(flash_boot_address + KERNEL_IMAGE_FLASH_OFFSET), (FLASH_BOOT_ADDRESS + KERNEL_IMAGE_FLASH_OFFSET),
(MAIN_RAM_BASE + KERNEL_IMAGE_RAM_OFFSET)); (MAIN_RAM_BASE + KERNEL_IMAGE_RAM_OFFSET));
if(result) { if(result) {
printf("Loading rootfs.cpio from flash...\n"); printf("Loading rootfs.cpio from flash...\n");
result &= copy_image_from_flash_to_ram( result &= copy_image_from_flash_to_ram(
(flash_boot_address + ROOTFS_IMAGE_FLASH_OFFSET), (FLASH_BOOT_ADDRESS + ROOTFS_IMAGE_FLASH_OFFSET),
(MAIN_RAM_BASE + ROOTFS_IMAGE_RAM_OFFSET)); (MAIN_RAM_BASE + ROOTFS_IMAGE_RAM_OFFSET));
} }
if(result) { if(result) {
printf("Loading rv32.dtb from flash...\n"); printf("Loading rv32.dtb from flash...\n");
result &= copy_image_from_flash_to_ram( result &= copy_image_from_flash_to_ram(
(flash_boot_address + DEVICE_TREE_IMAGE_FLASH_OFFSET), (FLASH_BOOT_ADDRESS + DEVICE_TREE_IMAGE_FLASH_OFFSET),
(MAIN_RAM_BASE + DEVICE_TREE_IMAGE_RAM_OFFSET)); (MAIN_RAM_BASE + DEVICE_TREE_IMAGE_RAM_OFFSET));
} }
if(result) { if(result) {
printf("Loading emulator.bin from flash...\n"); printf("Loading emulator.bin from flash...\n");
result &= copy_image_from_flash_to_ram( result &= copy_image_from_flash_to_ram(
(flash_boot_address + EMULATOR_IMAGE_FLASH_OFFSET), (FLASH_BOOT_ADDRESS + EMULATOR_IMAGE_FLASH_OFFSET),
(MAIN_RAM_BASE + EMULATOR_IMAGE_RAM_OFFSET)); (MAIN_RAM_BASE + EMULATOR_IMAGE_RAM_OFFSET));
} }
@ -474,13 +469,13 @@ void flashboot(void)
} }
#endif #endif
printf("Booting from flash addr 0x%08x...\n", flash_boot_address); printf("Booting from flash addr 0x%08x...\n", FLASH_BOOT_ADDRESS);
length = check_image_in_flash(flash_boot_address); length = check_image_in_flash(FLASH_BOOT_ADDRESS);
if(!length) if(!length)
return; return;
#ifdef MAIN_RAM_BASE #ifdef MAIN_RAM_BASE
result = copy_image_from_flash_to_ram(flash_boot_address, MAIN_RAM_BASE); result = copy_image_from_flash_to_ram(FLASH_BOOT_ADDRESS, MAIN_RAM_BASE);
if(!result) if(!result)
return; return;
#endif #endif