// SPDX-License-Identifier: GPL-2.0+ /* * Copyright (C) 2021 SiFive, Inc */ #include #include #include #include #include #include #ifndef CONFIG_SPL_BUILD void enable_caches(void) { struct udevice *dev; int ret; /* Enable ways of ccache */ ret = uclass_get_device_by_driver(UCLASS_CACHE, DM_DRIVER_GET(sifive_ccache), &dev); if (ret) { log_debug("Cannot enable cache ways"); } else { ret = cache_enable(dev); if (ret) log_debug("ccache enable failed"); } } #else static inline void probe_cache_device(struct driver *driver, struct udevice *dev) { for (uclass_find_first_device(UCLASS_CACHE, &dev); dev; uclass_find_next_device(&dev)) { if (dev->driver == driver) device_probe(dev); } } void enable_caches(void) { struct udevice *dev = NULL; probe_cache_device(DM_DRIVER_GET(sifive_pl2), dev); } #endif /* !CONFIG_SPL_BUILD */