23 #define PM_RTC_CONTROL 0x56
24 #define PM_S_STATE_CONTROL 0xBA
40 [0x00] = 0x03,0x03,0x05,0x07,0x0B,0x0A,0x1F,0x1F,
42 [0x08] = 0xFA,0xF1,0x00,0x00,0x1F,0x1F,0x1F,0x1F,
44 [0x10] = 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,
45 [0x18] = 0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
47 [0x20] = 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x00,0x00,
48 [0x28] = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
50 [0x30] = 0x05,0x1F,0x05,0x1F,0x04,0x1F,0x1F,0x1F,
51 [0x38] = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
53 [0x40] = 0x1F,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,
54 [0x48] = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
55 [0x50] = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
56 [0x58] = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
57 [0x60] = 0x00,0x00,0x1F
63 [0x00] = 0x10,0x10,0x12,0x13,0x14,0x15,0x1F,0x1F,
65 [0x08] = 0x00,0x00,0x00,0x00,0x1F,0x1F,0x1F,0x1F,
67 [0x10] = 0x09,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x10,
68 [0x18] = 0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
70 [0x20] = 0x05,0x1F,0x1F,0x1F,0x1F,0x1F,0x00,0x00,
71 [0x28] = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
73 [0x30] = 0x12,0x1F,0x12,0x1F,0x12,0x1F,0x1F,0x00,
74 [0x38] = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
76 [0x40] = 0x1F,0x13,0x00,0x00,0x00,0x00,0x00,0x00,
77 [0x48] = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
78 [0x50] = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
79 [0x58] = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
80 [0x60] = 0x00,0x00,0x1F
125 #define SIO_PORT 0x2e
149 #if CONFIG(GENERATE_SMBIOS_TABLES)
150 static int mainboard_smbios_type16(DMI_INFO *agesa_dmi,
int *handle,
151 unsigned long *current)
156 sizeof(*t), *handle);
170 static int mainboard_smbios_type17(DMI_INFO *agesa_dmi,
int *handle,
171 unsigned long *current)
174 sizeof(*t), *handle + 1);
178 t->
total_width = agesa_dmi->T17[0][0][0].TotalWidth;
179 t->
data_width = agesa_dmi->T17[0][0][0].DataWidth;
180 t->
size = agesa_dmi->T17[0][0][0].MemorySize;
181 t->
form_factor = agesa_dmi->T17[0][0][0].FormFactor;
182 t->
device_set = agesa_dmi->T17[0][0][0].DeviceSet;
184 agesa_dmi->T17[0][0][0].DeviceLocator);
186 agesa_dmi->T17[0][0][0].BankLocator);
187 t->
memory_type = agesa_dmi->T17[0][0][0].MemoryType;
189 t->
speed = agesa_dmi->T17[0][0][0].Speed;
190 t->
manufacturer = agesa_dmi->T17[0][0][0].ManufacturerIdCode;
192 agesa_dmi->T17[0][0][0].SerialNumber);
194 agesa_dmi->T17[0][0][0].PartNumber);
195 t->
attributes = agesa_dmi->T17[0][0][0].Attributes;
197 t->
clock_speed = agesa_dmi->T17[0][0][0].ConfigSpeed;
207 unsigned long *current)
217 len += mainboard_smbios_type16(agesa_dmi, handle, current);
218 len += mainboard_smbios_type17(agesa_dmi, handle, current);
229 printk(
BIOS_INFO,
"Mainboard " CONFIG_MAINBOARD_PART_NUMBER
" Enable.\n");
245 #if CONFIG(GENERATE_SMBIOS_TABLES)
285 for (i = 3; i < 6; i++) {
287 mac_addr |=
read8((
u8 *)bar10 + i);
289 mac_addr &= 0x00FFFFFF;
struct chip_operations mainboard_ops
static void pm_write16(uint8_t reg, uint16_t value)
static uint16_t pm_read16(uint8_t reg)
static uint8_t read8(const void *addr)
int smbios_add_string(u8 *start, const char *str)
void * smbios_carve_table(unsigned long start, u8 type, u8 length, u16 handle)
int smbios_full_table_len(struct smbios_header *header, u8 *str_table_start)
#define printk(level,...)
DEVTREE_CONST struct device * pcidev_path_behind(const struct bus *parent, pci_devfn_t devfn)
DEVTREE_CONST struct device * dev_find_slot_pnp(u16 port, u16 device)
Given a PnP port and a device number, find the device structure.
DEVTREE_CONST struct device * pcidev_on_root(uint8_t dev, uint8_t fn)
void * agesawrapper_getlateinitptr(int pick)
static int mainboard_smbios_data(struct device *dev, int *handle, unsigned long *current)
const char * smbios_system_sku(void)
static __always_inline u32 pci_read_config32(const struct device *dev, u16 reg)
void gpio_set(gpio_t gpio, int value)
@ MEMORY_ARRAY_USE_SYSTEM
@ SMBIOS_PHYS_MEMORY_ARRAY
@ MEMORY_ARRAY_LOCATION_SYSTEM_BOARD
#define BIOS_INFO
BIOS_INFO - Expected events.
#define NB_PCIE_PORT2_DEVFN
#define NB_PCIE_PORT3_DEVFN
#define NB_PCIE_PORT1_DEVFN
const char * smbios_mainboard_serial_number(void)
static void config_gpio_mux(void)
static const u8 mainboard_picr_data[FCH_INT_TABLE_SIZE]
static const struct pirq_struct mainboard_pirq_data[]
static void mainboard_final(void *chip_info)
#define PM_S_STATE_CONTROL
static void mainboard_enable(struct device *dev)
static void pirq_setup(void)
static const u8 mainboard_intr_data[FCH_INT_TABLE_SIZE]
#define PCI_DEVFN(slot, func)
#define PCI_BASE_ADDRESS_0
const struct pirq_struct * pirq_data_ptr
#define FCH_INT_TABLE_SIZE
void(* enable_dev)(struct device *dev)
struct device_operations * ops
DEVTREE_CONST struct bus * link_list
struct smbios_header header
u16 number_of_memory_devices
u8 memory_error_correction
u16 memory_error_information_handle
u16 memory_error_information_handle
u16 phys_memory_array_handle
struct smbios_header header
int snprintf(char *buf, size_t size, const char *fmt,...)
Note: This file is only for POSIX compatibility, and is meant to be chain-included via string....