andes: ae350: Save cpu name to env

Detect CPU name through marchid and then save it to env.

Signed-off-by: Leo Yu-Chi Liang <ycliang@andestech.com>
Reviewed-by: Yu Chien Peter Lin <peterlin@andestech.com>
This commit is contained in:
Leo Yu-Chi Liang 2023-12-26 14:54:27 +08:00
parent 61d5c543f3
commit 936b503030

View file

@ -13,7 +13,9 @@
#if defined(CONFIG_FTMAC100) && !defined(CONFIG_DM_ETH)
#include <netdev.h>
#endif
#include <asm/csr.h>
#include <asm/global_data.h>
#include <asm/sbi.h>
#include <linux/io.h>
#include <faraday/ftsmc020.h>
#include <fdtdec.h>
@ -27,6 +29,27 @@ DECLARE_GLOBAL_DATA_PTR;
/*
* Miscellaneous platform dependent initializations
*/
#if IS_ENABLED(CONFIG_MISC_INIT_R)
int misc_init_r(void)
{
long csr_marchid = 0;
const long mask_64 = 0x8000;
const long mask_cpu = 0xff;
char cpu_name[10] = {};
#if CONFIG_IS_ENABLED(RISCV_SMODE)
sbi_get_marchid(&csr_marchid);
#elif CONFIG_IS_ENABLED(RISCV_MMODE)
csr_marchid = csr_read(CSR_MARCHID);
#endif
if (mask_64 & csr_marchid)
snprintf(cpu_name, sizeof(cpu_name), "ax%lx", (mask_cpu & csr_marchid));
else
snprintf(cpu_name, sizeof(cpu_name), "a%lx", (mask_cpu & csr_marchid));
return env_set("cpu", cpu_name);
}
#endif
#if CONFIG_IS_ENABLED(LOAD_FIT) || CONFIG_IS_ENABLED(LOAD_FIT_FULL)
#define ANDES_SPL_FDT_ADDR (CONFIG_TEXT_BASE - 0x100000)