1e961a66dSSimon Glass /* 2e961a66dSSimon Glass * Copyright (c) 2016 Google, Inc 3e961a66dSSimon Glass * SPDX-License-Identifier: GPL-2.0+ 4e961a66dSSimon Glass */ 5e961a66dSSimon Glass 6e961a66dSSimon Glass #include <common.h> 7e961a66dSSimon Glass #include <dm.h> 8e961a66dSSimon Glass #include <os.h> 9*a091a8f0SSimon Glass #include <spl.h> 10e961a66dSSimon Glass #include <asm/spl.h> 11e961a66dSSimon Glass #include <asm/state.h> 12e961a66dSSimon Glass 13e961a66dSSimon Glass DECLARE_GLOBAL_DATA_PTR; 14e961a66dSSimon Glass 15e961a66dSSimon Glass void board_init_f(ulong flag) 16e961a66dSSimon Glass { 17e961a66dSSimon Glass struct sandbox_state *state = state_get_current(); 18e961a66dSSimon Glass 19e961a66dSSimon Glass gd->arch.ram_buf = state->ram_buf; 20e961a66dSSimon Glass gd->ram_size = state->ram_size; 21e961a66dSSimon Glass } 22e961a66dSSimon Glass 23e961a66dSSimon Glass u32 spl_boot_device(void) 24e961a66dSSimon Glass { 25e961a66dSSimon Glass return BOOT_DEVICE_BOARD; 26e961a66dSSimon Glass } 27e961a66dSSimon Glass 28e961a66dSSimon Glass void spl_board_announce_boot_device(void) 29e961a66dSSimon Glass { 30e961a66dSSimon Glass char fname[256]; 31e961a66dSSimon Glass int ret; 32e961a66dSSimon Glass 33e961a66dSSimon Glass ret = os_find_u_boot(fname, sizeof(fname)); 34e961a66dSSimon Glass if (ret) { 35e961a66dSSimon Glass printf("(%s not found, error %d)\n", fname, ret); 36e961a66dSSimon Glass return; 37e961a66dSSimon Glass } 38e961a66dSSimon Glass printf("%s\n", fname); 39e961a66dSSimon Glass } 40e961a66dSSimon Glass 41e961a66dSSimon Glass int spl_board_load_image(void) 42e961a66dSSimon Glass { 43e961a66dSSimon Glass char fname[256]; 44e961a66dSSimon Glass int ret; 45e961a66dSSimon Glass 46e961a66dSSimon Glass ret = os_find_u_boot(fname, sizeof(fname)); 47e961a66dSSimon Glass if (ret) 48e961a66dSSimon Glass return ret; 49e961a66dSSimon Glass 50e961a66dSSimon Glass /* Hopefully this will not return */ 51e961a66dSSimon Glass return os_spl_to_uboot(fname); 52e961a66dSSimon Glass } 53*a091a8f0SSimon Glass 54*a091a8f0SSimon Glass void spl_board_init(void) 55*a091a8f0SSimon Glass { 56*a091a8f0SSimon Glass struct udevice *dev; 57*a091a8f0SSimon Glass 58*a091a8f0SSimon Glass preloader_console_init(); 59*a091a8f0SSimon Glass 60*a091a8f0SSimon Glass /* 61*a091a8f0SSimon Glass * Scan all the devices so that we can output their platform data. See 62*a091a8f0SSimon Glass * sandbox_spl_probe(). 63*a091a8f0SSimon Glass */ 64*a091a8f0SSimon Glass for (uclass_first_device(UCLASS_MISC, &dev); 65*a091a8f0SSimon Glass dev; 66*a091a8f0SSimon Glass uclass_next_device(&dev)) 67*a091a8f0SSimon Glass ; 68*a091a8f0SSimon Glass } 69