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> 9a091a8f0SSimon 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 412a2ee2acSSimon Glass static int spl_board_load_image(struct spl_image_info *spl_image, 422a2ee2acSSimon Glass struct spl_boot_device *bootdev) 43e961a66dSSimon Glass { 44e961a66dSSimon Glass char fname[256]; 45e961a66dSSimon Glass int ret; 46e961a66dSSimon Glass 47e961a66dSSimon Glass ret = os_find_u_boot(fname, sizeof(fname)); 48e961a66dSSimon Glass if (ret) 49e961a66dSSimon Glass return ret; 50e961a66dSSimon Glass 51e961a66dSSimon Glass /* Hopefully this will not return */ 52e961a66dSSimon Glass return os_spl_to_uboot(fname); 53e961a66dSSimon Glass } 54*ebc4ef61SSimon Glass SPL_LOAD_IMAGE_METHOD("sandbox", 0, BOOT_DEVICE_BOARD, spl_board_load_image); 55a091a8f0SSimon Glass 56a091a8f0SSimon Glass void spl_board_init(void) 57a091a8f0SSimon Glass { 58a091a8f0SSimon Glass struct udevice *dev; 59a091a8f0SSimon Glass 60a091a8f0SSimon Glass preloader_console_init(); 61a091a8f0SSimon Glass 62a091a8f0SSimon Glass /* 63a091a8f0SSimon Glass * Scan all the devices so that we can output their platform data. See 64a091a8f0SSimon Glass * sandbox_spl_probe(). 65a091a8f0SSimon Glass */ 66a091a8f0SSimon Glass for (uclass_first_device(UCLASS_MISC, &dev); 67a091a8f0SSimon Glass dev; 68a091a8f0SSimon Glass uclass_next_device(&dev)) 69a091a8f0SSimon Glass ; 70a091a8f0SSimon Glass } 71