1*fdff1f96SAnup Patel // SPDX-License-Identifier: GPL-2.0+ 2*fdff1f96SAnup Patel /* 3*fdff1f96SAnup Patel * Copyright (C) 2018, Bin Meng <bmeng.cn@gmail.com> 4*fdff1f96SAnup Patel */ 5*fdff1f96SAnup Patel 6*fdff1f96SAnup Patel #include <common.h> 7*fdff1f96SAnup Patel #include <dm.h> 8*fdff1f96SAnup Patel 9*fdff1f96SAnup Patel /* 10*fdff1f96SAnup Patel * cleanup_before_linux() is called just before we call linux 11*fdff1f96SAnup Patel * it prepares the processor for linux 12*fdff1f96SAnup Patel * 13*fdff1f96SAnup Patel * we disable interrupt and caches. 14*fdff1f96SAnup Patel */ cleanup_before_linux(void)15*fdff1f96SAnup Patelint cleanup_before_linux(void) 16*fdff1f96SAnup Patel { 17*fdff1f96SAnup Patel disable_interrupts(); 18*fdff1f96SAnup Patel 19*fdff1f96SAnup Patel cache_flush(); 20*fdff1f96SAnup Patel 21*fdff1f96SAnup Patel return 0; 22*fdff1f96SAnup Patel } 23*fdff1f96SAnup Patel 24*fdff1f96SAnup Patel /* To enumerate devices on the /soc/ node, create a "simple-bus" driver */ 25*fdff1f96SAnup Patel static const struct udevice_id riscv_virtio_soc_ids[] = { 26*fdff1f96SAnup Patel { .compatible = "riscv-virtio-soc" }, 27*fdff1f96SAnup Patel { } 28*fdff1f96SAnup Patel }; 29*fdff1f96SAnup Patel 30*fdff1f96SAnup Patel U_BOOT_DRIVER(riscv_virtio_soc) = { 31*fdff1f96SAnup Patel .name = "riscv_virtio_soc", 32*fdff1f96SAnup Patel .id = UCLASS_SIMPLE_BUS, 33*fdff1f96SAnup Patel .of_match = riscv_virtio_soc_ids, 34*fdff1f96SAnup Patel .flags = DM_FLAG_PRE_RELOC, 35*fdff1f96SAnup Patel }; 36