// SPDX-License-Identifier: GPL-2.0+ /* * GXP timer driver * * (C) Copyright 2022 Hewlett Packard Enterprise Development LP. * Author: Nick Hawkins <nick.hawkins@hpe.com> * Author: Jean-Marie Verdun <verdun@hpe.com> */ #include <linux/sizes.h> #include <asm/io.h> #include <dm.h> #include <dm/uclass.h> #include <ram.h> DECLARE_GLOBAL_DATA_PTR; #define ECHI_CMD 0xcefe0010 int board_init(void) { writel(0x00080002, ECHI_CMD); return 0; } int dram_init(void) { if (IS_ENABLED(CONFIG_TARGET_GXP)) { if (IS_ENABLED(CONFIG_GXP_ECC)) { /* 0x0f800000 */ gd->ram_size = SZ_128M + SZ_64M + SZ_32M + SZ_16M + SZ_8M; } else { /* 0x1f000000 */ gd->ram_size = SZ_256M + SZ_128M + SZ_64M + SZ_32M + SZ_16M; } if (IS_ENABLED(CONFIG_GXP_VROM_64MB)) { if (IS_ENABLED(CONFIG_GXP_ECC)) { /* 0x0c000000 */ gd->ram_size = SZ_128M + SZ_64M; } else { /* 0x18000000 */ gd->ram_size = SZ_256M + SZ_128M; } } if (IS_ENABLED(CONFIG_GXP_VROM_32MB)) { if (IS_ENABLED(CONFIG_GXP_ECC)) { /* 0x0e000000 */ gd->ram_size = SZ_128M + SZ_64M + SZ_32M; } else { /* 0x1c000000 */ gd->ram_size = SZ_256M + SZ_128M + SZ_64M; } } } if (IS_ENABLED(CONFIG_TARGET_GXP2)) { /* 0x1b200000 */ gd->ram_size = SZ_256M + SZ_128M + SZ_32M + SZ_16M + SZ_2M; if (IS_ENABLED(CONFIG_GXP_VROM_64MB)) { /* 0x14000000 */ gd->ram_size = SZ_256M + SZ_64M; } if (IS_ENABLED(CONFIG_GXP_VROM_32MB)) { /* 0x18000000 */ gd->ram_size = SZ_256M + SZ_128M; } } return 0; }