blob: a2a360ac0dda479d3c6c2f1a8f14d7cfa0b02848 [file] [log] [blame]
Alexandru Gagniuc88a30232013-06-04 23:37:56 -05001/*
2 * This file is part of the coreboot project.
3 *
4 * Copyright (C) 2011 Alexandru Gagniuc <mr.nuke.me@gmail.com>
5 *
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
Alexandru Gagniuc88a30232013-06-04 23:37:56 -050015 */
16#ifndef __VX900_H
17#define __VX900_H
18
19#define VX900_ACPI_IO_BASE 0x0400
20
Alexandru Gagniuc88a30232013-06-04 23:37:56 -050021#define SMBUS_IO_BASE 0x500
22
Lubomir Rintel6dd2f692017-10-31 09:42:46 +010023#define VX900_MMCONFIG_MBAR 0xbc
24
Alexandru Gagniuc88a30232013-06-04 23:37:56 -050025/* The maximum number of DIMM slots that the VX900 supports */
26#define VX900_MAX_DIMM_SLOTS 2
27#define VX900_MAX_MEM_RANKS 4
28
Alexandru Gagniuc88a30232013-06-04 23:37:56 -050029#include <arch/io.h>
30#include <device/pci.h>
31
32#include <console/console.h>
33
Lubomir Rinteld8ec9732017-12-28 01:48:09 +010034u32 vx900_get_tolm(void);
35void vx900_set_chrome9hd_fb_size(u32 size_mb);
36u8 vx900_get_chrome9hd_fb_pow(void);
37u32 vx900_get_chrome9hd_fb_size(void);
Alexandru Gagniuc23211b02013-06-09 16:06:07 -050038u8 vx900_int15_get_5f18_bl(void);
Kyösti Mälkki5cf88242013-10-18 11:02:56 +030039uint64_t get_uma_memory_base(void);
Alexandru Gagniuc88a30232013-06-04 23:37:56 -050040
41/* We use these throughout the code. They really belong in a generic part of
42 * coreboot, but until bureaucracy gets them there, we still need them */
Antonello Dettori823f7bb2016-11-08 18:44:46 +010043
44#ifdef __SIMPLE_DEVICE__
45void dump_pci_device(pci_devfn_t dev);
46void pci_mod_config8(pci_devfn_t dev, unsigned int where,
47 uint8_t clr_mask, uint8_t set_mask);
48void pci_mod_config16(pci_devfn_t dev, unsigned int where,
49 uint16_t clr_mask, uint16_t set_mask);
50void pci_mod_config32(pci_devfn_t dev, unsigned int where,
51 uint32_t clr_mask, uint32_t set_mask);
52#else
Elyes HAOUAS62bafca2018-09-18 12:19:48 +020053void dump_pci_device(struct device *dev);
54void pci_mod_config8(struct device *dev, unsigned int where,
Alexandru Gagniuc88a30232013-06-04 23:37:56 -050055 uint8_t clr_mask, uint8_t set_mask);
Elyes HAOUAS62bafca2018-09-18 12:19:48 +020056void pci_mod_config16(struct device *dev, unsigned int where,
Alexandru Gagniuc88a30232013-06-04 23:37:56 -050057 uint16_t clr_mask, uint16_t set_mask);
Elyes HAOUAS62bafca2018-09-18 12:19:48 +020058void pci_mod_config32(struct device *dev, unsigned int where,
Alexandru Gagniuc88a30232013-06-04 23:37:56 -050059 uint32_t clr_mask, uint32_t set_mask);
Antonello Dettori823f7bb2016-11-08 18:44:46 +010060#endif
Alexandru Gagniuc88a30232013-06-04 23:37:56 -050061
Alexandru Gagniuc560433b2013-06-10 15:47:25 -050062#endif /* __VX900_H */