Ioapic information in the devicetree was only used to set up mptables
but this generic driver was removed (ca5a793 drivers/generic/ioapic:
Drop poor implementation).
This removes the unused remainders from mainboard devicetrees.
Remove ioapic setup from sconfig.
Change-Id: Ib3fef0bf923ab3f02f3aeed2e55cf662a3dc3a1b
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/71789
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
		
	
		
			
				
	
	
		
			238 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			238 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* sconfig, coreboot device tree compiler */
 | |
| /* SPDX-License-Identifier: GPL-2.0-only */
 | |
| 
 | |
| #include <stdint.h>
 | |
| #include <stdio.h>
 | |
| #include <stdlib.h>
 | |
| #include <string.h>
 | |
| #include <sys/types.h>
 | |
| #include <unistd.h>
 | |
| #include <errno.h>
 | |
| 
 | |
| struct resource;
 | |
| struct resource {
 | |
| 	int type;
 | |
| 	int index;
 | |
| 	int base;
 | |
| 	struct resource *next;
 | |
| };
 | |
| 
 | |
| struct reg;
 | |
| struct reg {
 | |
| 	char *key;
 | |
| 	char *value;
 | |
| 	struct reg *next;
 | |
| };
 | |
| 
 | |
| struct fw_config_option;
 | |
| struct fw_config_option {
 | |
| 	const char *name;
 | |
| 	uint64_t value;
 | |
| 	struct fw_config_option *next;
 | |
| };
 | |
| 
 | |
| struct fw_config_field_bits;
 | |
| struct fw_config_field_bits {
 | |
| 	unsigned int start_bit;
 | |
| 	unsigned int end_bit;
 | |
| 	struct fw_config_field_bits *next;
 | |
| };
 | |
| 
 | |
| struct fw_config_field;
 | |
| struct fw_config_field {
 | |
| 	const char *name;
 | |
| 	struct fw_config_field_bits *bits;
 | |
| 	struct fw_config_field *next;
 | |
| 	struct fw_config_option *options;
 | |
| };
 | |
| struct fw_config_probe;
 | |
| struct fw_config_probe {
 | |
| 	const char *field;
 | |
| 	const char *option;
 | |
| 	struct fw_config_probe *next;
 | |
| };
 | |
| 
 | |
| struct identifier {
 | |
| 	const char *id;
 | |
| 	struct identifier *next;
 | |
| };
 | |
| 
 | |
| struct chip;
 | |
| struct chip_instance {
 | |
| 	/* Monotonically increasing ID for each chip instance. */
 | |
| 	int id;
 | |
| 
 | |
| 	/* Pointer to registers for this chip. */
 | |
| 	struct reg *reg;
 | |
| 
 | |
| 	/* Pointer to references for this chip. */
 | |
| 	struct reg *ref;
 | |
| 
 | |
| 	/* Pointer to chip of which this is instance. */
 | |
| 	struct chip *chip;
 | |
| 
 | |
| 	/* Pointer to next instance of the same chip. */
 | |
| 	struct chip_instance *next;
 | |
| 
 | |
| 	/*
 | |
| 	 * Pointer to corresponding chip instance in base devicetree.
 | |
| 	 * a) If the chip instance belongs to the base devicetree, then this pointer is set to
 | |
| 	 * NULL.
 | |
| 	 * b) If the chip instance belongs to override tree, then this pointer is set to its
 | |
| 	 * corresponding chip instance in base devicetree (if it exists), else to NULL.
 | |
| 	 *
 | |
| 	 * This is useful when generating chip instances and chip_ops for a device to determine
 | |
| 	 * if this is the instance to emit or if there is a base chip instance to use instead.
 | |
| 	 */
 | |
| 	struct chip_instance *base_chip_instance;
 | |
| };
 | |
| 
 | |
| struct chip {
 | |
| 	/* Indicates if chip header exists for this chip. */
 | |
| 	int chiph_exists;
 | |
| 
 | |
| 	/* Name of current chip. */
 | |
| 	char *name;
 | |
| 
 | |
| 	/* Name of current chip normalized to _. */
 | |
| 	char *name_underscore;
 | |
| 
 | |
| 	/* Pointer to first instance of this chip. */
 | |
| 	struct chip_instance *instance;
 | |
| 
 | |
| 	/* Pointer to next chip. */
 | |
| 	struct chip *next;
 | |
| };
 | |
| 
 | |
| struct device;
 | |
| struct bus {
 | |
| 	/* Instance/ID of the bus under the device. */
 | |
| 	int id;
 | |
| 
 | |
| 	/* Pointer to device to which this bus belongs. */
 | |
| 	struct device *dev;
 | |
| 
 | |
| 	/* Pointer to list of children. */
 | |
| 	struct device *children;
 | |
| 
 | |
| 	/* Pointer to next bus for the device. */
 | |
| 	struct bus *next_bus;
 | |
| };
 | |
| 
 | |
| struct device {
 | |
| 	/* Indicates device status (enabled / hidden or not). */
 | |
| 	int enabled;
 | |
| 	int hidden;
 | |
| 	/* non-zero if the device should be included in all cases */
 | |
| 	int mandatory;
 | |
| 
 | |
| 	/* Subsystem IDs for the device. */
 | |
| 	int subsystem_vendor;
 | |
| 	int subsystem_device;
 | |
| 	int inherit_subsystem;
 | |
| 
 | |
| 	/* Name of this device. */
 | |
| 	char *name;
 | |
| 
 | |
| 	/* Alias of this device (for internal references) */
 | |
| 	char *alias;
 | |
| 
 | |
| 	/* Path of this device. */
 | |
| 	char *path;
 | |
| 	int path_a;
 | |
| 	int path_b;
 | |
| 
 | |
| 	/* Type of bus that exists under this device. */
 | |
| 	int bustype;
 | |
| 
 | |
| 	/* Pointer to bus of parent on which this device resides. */
 | |
| 	struct bus *parent;
 | |
| 
 | |
| 	/* Pointer to next child under the same parent. */
 | |
| 	struct device *sibling;
 | |
| 
 | |
| 	/* Pointer to resources for this device. */
 | |
| 	struct resource *res;
 | |
| 
 | |
| 	/* Pointer to chip instance for this device. */
 | |
| 	struct chip_instance *chip_instance;
 | |
| 
 | |
| 	/* Pointer to list of buses under this device. */
 | |
| 	struct bus *bus;
 | |
| 	/* Pointer to last bus under this device. */
 | |
| 	struct bus *last_bus;
 | |
| 
 | |
| 	/* Global identifier of the ops for this device. */
 | |
| 	char *ops_id;
 | |
| 
 | |
| 	/* SMBIOS slot type */
 | |
| 	char *smbios_slot_type;
 | |
| 
 | |
| 	/* SMBIOS slot data width */
 | |
| 	char *smbios_slot_data_width;
 | |
| 
 | |
| 	/* SMBIOS slot description for reference designation */
 | |
| 	char *smbios_slot_designation;
 | |
| 
 | |
| 	/* SMBIOS slot length */
 | |
| 	char *smbios_slot_length;
 | |
| 
 | |
| 	/* SMBIOS type41 fields */
 | |
| 	int smbios_instance_id_valid;
 | |
| 	unsigned int smbios_instance_id;
 | |
| 	const char *smbios_refdes;
 | |
| 
 | |
| 	/* List of field+option to probe. */
 | |
| 	struct fw_config_probe *probe;
 | |
| };
 | |
| 
 | |
| extern struct bus *root_parent;
 | |
| 
 | |
| struct device *new_device_raw(struct bus *parent,
 | |
| 			      struct chip_instance *chip_instance,
 | |
| 			      const int bustype, const char *devnum,
 | |
| 			      char *alias, int status);
 | |
| 
 | |
| struct device *new_device_reference(struct bus *parent,
 | |
| 				    struct chip_instance *chip_instance,
 | |
| 				    const char *reference, int status);
 | |
| 
 | |
| void add_resource(struct bus *bus, int type, int index, int base);
 | |
| 
 | |
| void add_pci_subsystem_ids(struct bus *bus, int vendor, int device,
 | |
| 			   int inherit);
 | |
| 
 | |
| void add_slot_desc(struct bus *bus, char *type, char *length, char *designation,
 | |
| 		   char *data_width);
 | |
| 
 | |
| void add_smbios_dev_info(struct bus *bus, long instance_id, const char *refdes);
 | |
| 
 | |
| void yyrestart(FILE *input_file);
 | |
| 
 | |
| /* Add chip data to tail of queue. */
 | |
| void chip_enqueue_tail(void *data);
 | |
| 
 | |
| /* Retrieve chip data from tail of queue. */
 | |
| void *chip_dequeue_tail(void);
 | |
| 
 | |
| struct chip_instance *new_chip_instance(char *path);
 | |
| void add_register(struct chip_instance *chip, char *name, char *val);
 | |
| void add_reference(struct chip_instance *chip, char *name, char *alias);
 | |
| 
 | |
| struct fw_config_field *get_fw_config_field(const char *name);
 | |
| 
 | |
| void add_fw_config_field_bits(struct fw_config_field *field,
 | |
| 			      unsigned int start_bit, unsigned int end_bit);
 | |
| 
 | |
| struct fw_config_field *new_fw_config_field(const char *name, struct fw_config_field_bits *bits);
 | |
| 
 | |
| void add_fw_config_option(struct fw_config_field *field, const char *name,
 | |
| 			  uint64_t value);
 | |
| 
 | |
| void add_fw_config_probe(struct bus *bus, const char *field, const char *option);
 | |
| 
 | |
| void append_fw_config_bits(struct fw_config_field_bits **bits,
 | |
| 			   unsigned int start_bit, unsigned int end_bit);
 | |
| 
 | |
| void add_device_ops(struct bus *, char *ops_id);
 |