mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-28 08:35:38 +00:00
imx: imx9: support romapi
i.MX9 shares same ROM API with i.MX8ULP, so make the i.MX8ULP the function prototype common and usable by i.MX9. Also include mmc env functions that use ROM API. Signed-off-by: Peng Fan <peng.fan@nxp.com>
This commit is contained in:
parent
2c5f5457bc
commit
636c95f82b
3 changed files with 41 additions and 4 deletions
|
@ -8,10 +8,6 @@
|
||||||
|
|
||||||
#include <asm/mach-imx/sys_proto.h>
|
#include <asm/mach-imx/sys_proto.h>
|
||||||
|
|
||||||
extern unsigned long rom_pointer[];
|
|
||||||
|
|
||||||
ulong spl_romapi_raw_seekable_read(u32 offset, u32 size, void *buf);
|
|
||||||
ulong spl_romapi_get_uboot_base(u32 image_offset, u32 rom_bt_dev);
|
|
||||||
enum bt_mode get_boot_mode(void);
|
enum bt_mode get_boot_mode(void);
|
||||||
int xrdc_config_pdac(u32 bridge, u32 index, u32 dom, u32 perm);
|
int xrdc_config_pdac(u32 bridge, u32 index, u32 dom, u32 perm);
|
||||||
int xrdc_config_pdac_openacc(u32 bridge, u32 index);
|
int xrdc_config_pdac_openacc(u32 bridge, u32 index);
|
||||||
|
|
|
@ -180,6 +180,10 @@ enum boot_dev_type_e {
|
||||||
#define ROM_API_OKAY 0xF0
|
#define ROM_API_OKAY 0xF0
|
||||||
|
|
||||||
extern struct rom_api *g_rom_api;
|
extern struct rom_api *g_rom_api;
|
||||||
|
extern unsigned long rom_pointer[];
|
||||||
|
|
||||||
|
ulong spl_romapi_raw_seekable_read(u32 offset, u32 size, void *buf);
|
||||||
|
ulong spl_romapi_get_uboot_base(u32 image_offset, u32 rom_bt_dev);
|
||||||
|
|
||||||
u32 rom_api_download_image(u8 *dest, u32 offset, u32 size);
|
u32 rom_api_download_image(u8 *dest, u32 offset, u32 size);
|
||||||
u32 rom_api_query_boot_infor(u32 info_type, u32 *info);
|
u32 rom_api_query_boot_infor(u32 info_type, u32 *info);
|
||||||
|
|
|
@ -29,6 +29,43 @@
|
||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
|
struct rom_api *g_rom_api = (struct rom_api *)0x1980;
|
||||||
|
|
||||||
|
#ifdef CONFIG_ENV_IS_IN_MMC
|
||||||
|
__weak int board_mmc_get_env_dev(int devno)
|
||||||
|
{
|
||||||
|
return devno; }
|
||||||
|
|
||||||
|
int mmc_get_env_dev(void)
|
||||||
|
{
|
||||||
|
volatile gd_t *pgd = gd;
|
||||||
|
int ret;
|
||||||
|
u32 boot;
|
||||||
|
u16 boot_type;
|
||||||
|
u8 boot_instance;
|
||||||
|
|
||||||
|
ret = g_rom_api->query_boot_infor(QUERY_BT_DEV, &boot,
|
||||||
|
((uintptr_t)&boot) ^ QUERY_BT_DEV);
|
||||||
|
set_gd(pgd);
|
||||||
|
|
||||||
|
if (ret != ROM_API_OKAY) {
|
||||||
|
puts("ROMAPI: failure at query_boot_info\n");
|
||||||
|
return CONFIG_SYS_MMC_ENV_DEV;
|
||||||
|
}
|
||||||
|
|
||||||
|
boot_type = boot >> 16;
|
||||||
|
boot_instance = (boot >> 8) & 0xff;
|
||||||
|
|
||||||
|
debug("boot_type %d, instance %d\n", boot_type, boot_instance);
|
||||||
|
|
||||||
|
/* If not boot from sd/mmc, use default value */
|
||||||
|
if (boot_type != BOOT_TYPE_SD && boot_type != BOOT_TYPE_MMC)
|
||||||
|
return env_get_ulong("mmcdev", 10, CONFIG_SYS_MMC_ENV_DEV);
|
||||||
|
|
||||||
|
return board_mmc_get_env_dev(boot_instance);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
u32 get_cpu_rev(void)
|
u32 get_cpu_rev(void)
|
||||||
{
|
{
|
||||||
return (MXC_CPU_IMX93 << 12) | CHIP_REV_1_0;
|
return (MXC_CPU_IMX93 << 12) | CHIP_REV_1_0;
|
||||||
|
|
Loading…
Add table
Reference in a new issue