riscv: ae250: Support DT provided by the board at runtime

Enable CONFIG_OF_BOAD to support delivery dtb to u-boot
at run time instead of embedded.

There are two methods to delivery dtb.
 1 Pass from loader:
   When u-boot boot from RAM, gdb or loader can pass dtb
   via a2 to u-boot dynamically. Of course gdb or loader
   shall be in charge of dtb delivery.

 2 Configure CONFIG_SYS_FDT_BASE:
   It can be configured as RAM or ROM base statically,
   no mater u-boot boot from RAM or ROM.
   If it was configured as ROM base, dtb can be burned
   into ROM(spi flash) by spi driver.

Meanwhile remove CONFIG_SKIP_LOWLEVEL_INIT which is
useless in nx25-ae250 configuration.

Signed-off-by: Rick Chen <rick@andestech.com>
Signed-off-by: Rick Chen <rickchen36@gmail.com>
Cc: Greentime Hu <green.hu@gmail.com>
master
Rick Chen 7 years ago committed by Andes
parent 2bc5bea9e1
commit d58717e425
  1. 2
      arch/riscv/cpu/nx25/start.S
  2. 9
      board/AndesTech/nx25-ae250/nx25-ae250.c
  3. 1
      configs/nx25-ae250_defconfig
  4. 12
      include/configs/nx25-ae250.h

@ -45,6 +45,8 @@ trap_vector:
.global trap_entry .global trap_entry
handle_reset: handle_reset:
li t0, CONFIG_SYS_SDRAM_BASE
SREG a2, 0(t0)
la t0, trap_entry la t0, trap_entry
csrw mtvec, t0 csrw mtvec, t0
csrwi mstatus, 0 csrwi mstatus, 0

@ -64,3 +64,12 @@ ulong board_flash_get_legacy(ulong base, int banknum, flash_info_t *info)
{ {
return 0; return 0;
} }
void *board_fdt_blob_setup(void)
{
void **ptr = (void *)CONFIG_SYS_SDRAM_BASE;
if (fdt_magic(*ptr) == FDT_MAGIC)
return (void *)*ptr;
return (void *)CONFIG_SYS_FDT_BASE;
}

@ -16,6 +16,7 @@ CONFIG_CMD_CACHE=y
CONFIG_CMD_EXT2=y CONFIG_CMD_EXT2=y
CONFIG_CMD_FAT=y CONFIG_CMD_FAT=y
CONFIG_OF_CONTROL=y CONFIG_OF_CONTROL=y
CONFIG_OF_BOARD=y
CONFIG_ENV_IS_IN_SPI_FLASH=y CONFIG_ENV_IS_IN_SPI_FLASH=y
CONFIG_NET_RANDOM_ETHADDR=y CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_DM=y CONFIG_DM=y

@ -11,18 +11,9 @@
/* /*
* CPU and Board Configuration Options * CPU and Board Configuration Options
*/ */
#define CONFIG_SKIP_LOWLEVEL_INIT
#define CONFIG_BOOTP_SEND_HOSTNAME #define CONFIG_BOOTP_SEND_HOSTNAME
#define CONFIG_BOOTP_SERVERIP #define CONFIG_BOOTP_SERVERIP
#ifdef CONFIG_SKIP_LOWLEVEL_INIT
#ifdef CONFIG_OF_CONTROL
#undef CONFIG_OF_SEPARATE
#define CONFIG_OF_EMBED
#endif
#endif
/* /*
* Miscellaneous configurable options * Miscellaneous configurable options
*/ */
@ -50,6 +41,9 @@
*/ */
#define CONFIG_SYS_MALLOC_LEN (512 << 10) #define CONFIG_SYS_MALLOC_LEN (512 << 10)
/* DT blob (fdt) address */
#define CONFIG_SYS_FDT_BASE 0x000f0000
/* /*
* Physical Memory Map * Physical Memory Map
*/ */

Loading…
Cancel
Save