[coreboot-gerrit] New patch to review for coreboot: northbridge/amd/amdk8: transition away from device_t

Antonello Dettori (dev@dettori.io) gerrit at coreboot.org
Sat Sep 3 11:42:38 CEST 2016


Antonello Dettori (dev at dettori.io) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/16467

-gerrit

commit f4b15189fcffbbb48f6e0331c3d3f98ddc5a54a2
Author: Antonello Dettori <dev at dettori.io>
Date:   Sat Sep 3 10:45:33 2016 +0200

    northbridge/amd/amdk8: transition away from device_t
    
    Replace the use of the old device_t definition inside
    northbridge/amd/amdk8.
    
    Change-Id: I5209dd309f0685f83d8a468c50309d5fda77973a
    Signed-off-by: Antonello Dettori <dev at dettori.io>
---
 src/northbridge/amd/amdk8/amdk8.h              |  2 +-
 src/northbridge/amd/amdk8/coherent_ht.c        | 11 ++++----
 src/northbridge/amd/amdk8/debug.c              |  9 ++++---
 src/northbridge/amd/amdk8/early_ht.c           |  4 +--
 src/northbridge/amd/amdk8/f.h                  |  4 +--
 src/northbridge/amd/amdk8/f_pci.c              | 12 ++++++---
 src/northbridge/amd/amdk8/incoherent_ht.c      | 37 ++++++++++++++------------
 src/northbridge/amd/amdk8/pre_f.h              |  4 +--
 src/northbridge/amd/amdk8/raminit.c            |  8 +++---
 src/northbridge/amd/amdk8/raminit.h            |  2 +-
 src/northbridge/amd/amdk8/raminit_f.c          |  8 +++---
 src/northbridge/amd/amdk8/setup_resource_map.c |  4 +--
 12 files changed, 57 insertions(+), 48 deletions(-)

diff --git a/src/northbridge/amd/amdk8/amdk8.h b/src/northbridge/amd/amdk8/amdk8.h
index 05117f7..2992abc 100644
--- a/src/northbridge/amd/amdk8/amdk8.h
+++ b/src/northbridge/amd/amdk8/amdk8.h
@@ -12,7 +12,7 @@
 #endif
 
 #ifdef __PRE_RAM__
-void showallroutes(int level, device_t dev);
+void showallroutes(int level, pci_devfn_t dev);
 void setup_resource_map_offset(const unsigned int *register_values, int max, unsigned offset_pci_dev, unsigned offset_io_base);
 void fill_mem_ctrl(int controllers, struct mem_controller *ctrl_a, const uint16_t *spd_addr);
 #endif
diff --git a/src/northbridge/amd/amdk8/coherent_ht.c b/src/northbridge/amd/amdk8/coherent_ht.c
index 7dfc5ef..cd4333e 100644
--- a/src/northbridge/amd/amdk8/coherent_ht.c
+++ b/src/northbridge/amd/amdk8/coherent_ht.c
@@ -265,7 +265,7 @@ static int verify_connection(u8 dest)
 	return 1;
 }
 
-static uint16_t read_freq_cap(device_t dev, uint8_t pos)
+static uint16_t read_freq_cap(pci_devfn_t dev, uint8_t pos)
 {
 	/* Handle bugs in valid hypertransport frequency reporting */
 	uint16_t freq_cap;
@@ -293,7 +293,8 @@ static uint16_t read_freq_cap(device_t dev, uint8_t pos)
 	return freq_cap;
 }
 
-static int optimize_connection(device_t node1, uint8_t link1, device_t node2, uint8_t link2)
+static int optimize_connection(pci_devfn_t node1, uint8_t link1,
+		pci_devfn_t node2, uint8_t link2)
 {
 	static const uint8_t link_width_to_pow2[]= { 3, 4, 0, 5, 1, 2, 0, 0 };
 	static const uint8_t pow2_to_link_width[] = { 0x7, 4, 5, 0, 1, 3 };
@@ -1608,7 +1609,7 @@ static void coherent_ht_finalize(unsigned nodes)
 	rev_a0 = is_cpu_rev_a0();
 #endif
 	for (node = 0; node < nodes; node++) {
-		device_t dev;
+		pci_devfn_t dev;
 		uint32_t val;
 		dev = NODE_HT(node);
 
@@ -1652,7 +1653,7 @@ static int apply_cpu_errata_fixes(unsigned nodes)
 	unsigned node;
 	int needs_reset = 0;
 	for (node = 0; node < nodes; node++) {
-		device_t dev;
+		pci_devfn_t dev;
 		uint32_t cmd;
 		dev = NODE_MC(node);
 #if !CONFIG_K8_REV_F_SUPPORT
@@ -1722,7 +1723,7 @@ static int optimize_link_read_pointers(unsigned nodes)
 	unsigned node;
 	int needs_reset = 0;
 	for (node = 0; node < nodes; node++) {
-		device_t f0_dev, f3_dev;
+		pci_devfn_t f0_dev, f3_dev;
 		uint32_t cmd_ref, cmd;
 		int link;
 		f0_dev = NODE_HT(node);
diff --git a/src/northbridge/amd/amdk8/debug.c b/src/northbridge/amd/amdk8/debug.c
index 35353bd..18fc858 100644
--- a/src/northbridge/amd/amdk8/debug.c
+++ b/src/northbridge/amd/amdk8/debug.c
@@ -18,7 +18,7 @@ static void print_debug_pci_dev(unsigned dev)
 
 static inline void print_pci_devices(void)
 {
-	device_t dev;
+	pci_devfn_t dev;
 	for (dev = PCI_DEV(0, 0, 0);
 		dev <= PCI_DEV(0xff, 0x1f, 0x7);
 		dev += PCI_DEV(0,0,1)) {
@@ -58,7 +58,8 @@ static void dump_pci_device(unsigned dev)
 }
 
 #if CONFIG_K8_REV_F_SUPPORT
-static uint32_t pci_read_config32_index_wait(device_t dev, uint32_t index_reg, uint32_t index);
+static uint32_t pci_read_config32_index_wait(pci_devfn_t dev,
+		uint32_t index_reg, uint32_t index);
 static inline void dump_pci_device_index_wait(unsigned dev, uint32_t index_reg)
 {
 	int i;
@@ -82,7 +83,7 @@ static inline void dump_pci_device_index_wait(unsigned dev, uint32_t index_reg)
 
 static inline void dump_pci_devices(void)
 {
-	device_t dev;
+	pci_devfn_t dev;
 	for (dev = PCI_DEV(0, 0, 0);
 		dev <= PCI_DEV(0xff, 0x1f, 0x7);
 		dev += PCI_DEV(0,0,1)) {
@@ -107,7 +108,7 @@ static inline void dump_pci_devices(void)
 
 static inline void dump_pci_devices_on_bus(unsigned busn)
 {
-	device_t dev;
+	pci_devfn_t dev;
 	for (dev = PCI_DEV(busn, 0, 0);
 		dev <= PCI_DEV(busn, 0x1f, 0x7);
 		dev += PCI_DEV(0,0,1)) {
diff --git a/src/northbridge/amd/amdk8/early_ht.c b/src/northbridge/amd/amdk8/early_ht.c
index 8f6766d..d07da2a 100644
--- a/src/northbridge/amd/amdk8/early_ht.c
+++ b/src/northbridge/amd/amdk8/early_ht.c
@@ -13,7 +13,7 @@ static void enumerate_ht_chain(void)
 	 * links needs to be programed to point at bus 0.
 	 */
 	unsigned next_unitid, last_unitid;
-	device_t dev;
+	pci_devfn_t dev;
 #if CONFIG_HT_CHAIN_END_UNITID_BASE != 0x20
 	//let't record the device of last ht device, So we can set the Unitid to CONFIG_HT_CHAIN_END_UNITID_BASE
 	unsigned real_last_unitid = 0;
@@ -61,7 +61,7 @@ static void enumerate_ht_chain(void)
 				if ((flags >> 13) == 0) {
 					unsigned count;
 					unsigned ctrl, ctrl_off;
-					device_t devx;
+					pci_devfn_t devx;
 
 #if CONFIG_HT_CHAIN_END_UNITID_BASE != 0x20
 					if (next_unitid>=0x18) { // don't get mask out by k8, at this time BSP, RT is not enabled, it will response from 0x18,0--0x1f.
diff --git a/src/northbridge/amd/amdk8/f.h b/src/northbridge/amd/amdk8/f.h
index a449c34..ce039af 100644
--- a/src/northbridge/amd/amdk8/f.h
+++ b/src/northbridge/amd/amdk8/f.h
@@ -486,10 +486,10 @@ struct mem_info { // pernode
 } __attribute__((packed));
 
 struct link_pair_st {
-	device_t udev;
+	pci_devfn_t udev;
 	uint32_t upos;
 	uint32_t uoffs;
-	device_t dev;
+	pci_devfn_t dev;
 	uint32_t pos;
 	uint32_t offs;
 
diff --git a/src/northbridge/amd/amdk8/f_pci.c b/src/northbridge/amd/amdk8/f_pci.c
index d89dadc..3ea4003 100644
--- a/src/northbridge/amd/amdk8/f_pci.c
+++ b/src/northbridge/amd/amdk8/f_pci.c
@@ -3,7 +3,8 @@
 
 #ifdef UNUSED_CODE
 /* bit [10,8] are dev func, bit[1,0] are dev index */
-static uint32_t pci_read_config32_index(device_t dev, uint32_t index_reg, uint32_t index)
+static uint32_t pci_read_config32_index(pci_devfn_t dev, uint32_t index_reg,
+		uint32_t index)
 {
 	uint32_t dword;
 
@@ -14,7 +15,8 @@ static uint32_t pci_read_config32_index(device_t dev, uint32_t index_reg, uint32
 	return dword;
 }
 
-static void pci_write_config32_index(device_t dev, uint32_t index_reg, uint32_t index, uint32_t data)
+static void pci_write_config32_index(pci_devfn_t dev, uint32_t index_reg,
+		uint32_t index, uint32_t data)
 {
 	pci_write_config32(dev, index_reg, index);
 
@@ -22,7 +24,8 @@ static void pci_write_config32_index(device_t dev, uint32_t index_reg, uint32_t
 }
 #endif
 
-static uint32_t pci_read_config32_index_wait(device_t dev, uint32_t index_reg, uint32_t index)
+static uint32_t pci_read_config32_index_wait(pci_devfn_t dev,
+		uint32_t index_reg, uint32_t index)
 {
 	uint32_t dword;
 
@@ -38,7 +41,8 @@ static uint32_t pci_read_config32_index_wait(device_t dev, uint32_t index_reg, u
 	return dword;
 }
 
-static void pci_write_config32_index_wait(device_t dev, uint32_t index_reg, uint32_t index, uint32_t data)
+static void pci_write_config32_index_wait(pci_devfn_t dev, uint32_t index_reg,
+		uint32_t index, uint32_t data)
 {
 	uint32_t dword;
 
diff --git a/src/northbridge/amd/amdk8/incoherent_ht.c b/src/northbridge/amd/amdk8/incoherent_ht.c
index de2a4b3..bc50b66 100644
--- a/src/northbridge/amd/amdk8/incoherent_ht.c
+++ b/src/northbridge/amd/amdk8/incoherent_ht.c
@@ -18,7 +18,7 @@ static inline void print_linkn_in (const char *strval, uint8_t byteval)
 	printk(BIOS_DEBUG, "%s%02x\n", strval, byteval);
 }
 
-static uint8_t ht_lookup_capability(device_t dev, uint16_t val)
+static uint8_t ht_lookup_capability(pci_devfn_t dev, uint16_t val)
 {
 	uint8_t pos;
 	uint8_t hdr_type;
@@ -51,13 +51,13 @@ static uint8_t ht_lookup_capability(device_t dev, uint16_t val)
 	return pos;
 }
 
-static uint8_t ht_lookup_slave_capability(device_t dev)
+static uint8_t ht_lookup_slave_capability(pci_devfn_t dev)
 {
 	return ht_lookup_capability(dev, 0); // Slave/Primary Interface Block Format
 }
 
 #if 0
-static uint8_t ht_lookup_host_capability(device_t dev)
+static uint8_t ht_lookup_host_capability(pci_devfn_t dev)
 {
 	return ht_lookup_capability(dev, 1); // Host/Secondary Interface Block Format
 }
@@ -65,7 +65,7 @@ static uint8_t ht_lookup_host_capability(device_t dev)
 
 static void ht_collapse_previous_enumeration(uint8_t bus, unsigned offset_unitid)
 {
-	device_t dev;
+	pci_devfn_t dev;
 
 	//actually, only for one HT device HT chain, and unitid is 0
 #if !CONFIG_HT_CHAIN_UNITID_BASE
@@ -111,7 +111,7 @@ static void ht_collapse_previous_enumeration(uint8_t bus, unsigned offset_unitid
 	}
 }
 
-static uint16_t ht_read_freq_cap(device_t dev, uint8_t pos)
+static uint16_t ht_read_freq_cap(pci_devfn_t dev, uint8_t pos)
 {
 	/* Handle bugs in valid hypertransport frequency reporting */
 	uint16_t freq_cap;
@@ -157,7 +157,7 @@ static uint16_t ht_read_freq_cap(device_t dev, uint8_t pos)
 	return freq_cap;
 }
 
-static uint8_t ht_read_width_cap(device_t dev, uint8_t pos)
+static uint8_t ht_read_width_cap(pci_devfn_t dev, uint8_t pos)
 {
 	uint8_t width_cap = pci_read_config8(dev, pos);
 
@@ -203,8 +203,8 @@ static uint8_t ht_read_width_cap(device_t dev, uint8_t pos)
 		PCI_HT_CAP_SLAVE_FREQ_CAP1)
 
 static int ht_optimize_link(
-	device_t dev1, uint8_t pos1, unsigned offs1,
-	device_t dev2, uint8_t pos2, unsigned offs2)
+	pci_devfn_t dev1, uint8_t pos1, unsigned offs1,
+	pci_devfn_t dev2, uint8_t pos2, unsigned offs2)
 {
 	static const uint8_t link_width_to_pow2[]= { 3, 4, 0, 5, 1, 2, 0, 0 };
 	static const uint8_t pow2_to_link_width[] = { 0x7, 4, 5, 0, 1, 3 };
@@ -290,9 +290,11 @@ static int ht_optimize_link(
 }
 
 #if CONFIG_RAMINIT_SYSINFO
-static void ht_setup_chainx(device_t udev, uint8_t upos, uint8_t bus, unsigned offset_unitid, struct sys_info *sysinfo)
+static void ht_setup_chainx(pci_devfn_t udev, uint8_t upos, uint8_t bus,
+		unsigned offset_unitid, struct sys_info *sysinfo)
 #else
-static int ht_setup_chainx(device_t udev, uint8_t upos, uint8_t bus, unsigned offset_unitid)
+static int ht_setup_chainx(pci_devfn_t udev, uint8_t upos, uint8_t bus,
+		unsigned offset_unitid)
 #endif
 {
 	//even CONFIG_HT_CHAIN_UNITID_BASE == 0, we still can go through this function, because of end_of_chain check, also We need it to optimize link
@@ -348,7 +350,7 @@ static int ht_setup_chainx(device_t udev, uint8_t upos, uint8_t bus, unsigned of
 			}
 		} while ((ctrl & (1 << 5)) == 0);
 
-		device_t dev = PCI_DEV(bus, 0, 0);
+		pci_devfn_t dev = PCI_DEV(bus, 0, 0);
 		last_unitid = next_unitid;
 
 		id = pci_read_config32(dev, PCI_VENDOR_ID);
@@ -470,9 +472,10 @@ end_of_chain: ;
 
 #if 0
 #if CONFIG_RAMINIT_SYSINFO
-static void ht_setup_chain(device_t udev, unsigned upos, struct sys_info *sysinfo)
+static void ht_setup_chain(pci_devfn_t udev, unsigned upos,
+		struct sys_info *sysinfo)
 #else
-static int ht_setup_chain(device_t udev, unsigned upos)
+static int ht_setup_chain(pci_devfn_t udev, unsigned upos)
 #endif
 {
 	unsigned offset_unitid = 0;
@@ -570,7 +573,7 @@ static int set_ht_link_buffer_count(uint8_t node, uint8_t linkn, uint8_t linkt,
 	uint32_t dword;
 	uint8_t link_type;
 	unsigned regpos;
-	device_t dev;
+	pci_devfn_t dev;
 
 	/* This works on an Athlon64 because unimplemented links return 0 */
 	regpos = 0x98 + (linkn * 0x20);
@@ -636,7 +639,7 @@ static int ht_setup_chains(uint8_t ht_c_num)
 	 * links needs to be programed to point at bus 0.
 	 */
 	uint8_t upos;
-	device_t udev;
+	pci_devfn_t udev;
 	uint8_t i;
 
 #if !CONFIG_RAMINIT_SYSINFO
@@ -742,7 +745,7 @@ static int ht_setup_chains_x(void)
 	}
 
 	for (nodeid=0; nodeid<nodes; nodeid++) {
-		device_t dev;
+		pci_devfn_t dev;
 		uint8_t linkn;
 		dev = PCI_DEV(0, 0x18+nodeid,0);
 		for (linkn = 0; linkn<3; linkn++) {
@@ -782,7 +785,7 @@ static int ht_setup_chains_x(void)
 
 	for (nodeid = 1; nodeid<nodes; nodeid++) {
 		int i;
-		device_t dev;
+		pci_devfn_t dev;
 		dev = PCI_DEV(0, 0x18+nodeid,1);
 		for (i = 0; i< 4; i++) {
 			unsigned regpos;
diff --git a/src/northbridge/amd/amdk8/pre_f.h b/src/northbridge/amd/amdk8/pre_f.h
index c413b5b..9c1eeb6 100644
--- a/src/northbridge/amd/amdk8/pre_f.h
+++ b/src/northbridge/amd/amdk8/pre_f.h
@@ -240,10 +240,10 @@
 //struct definitions
 
 struct link_pair_st {
-	device_t udev;
+	pci_devfn_t udev;
 	uint32_t upos;
 	uint32_t uoffs;
-	device_t dev;
+	pci_devfn_t dev;
 	uint32_t pos;
 	uint32_t offs;
 
diff --git a/src/northbridge/amd/amdk8/raminit.c b/src/northbridge/amd/amdk8/raminit.c
index a9516d8..aab9fa7 100644
--- a/src/northbridge/amd/amdk8/raminit.c
+++ b/src/northbridge/amd/amdk8/raminit.c
@@ -22,7 +22,7 @@ void setup_resource_map(const unsigned int *register_values, int max)
 	int i;
 //	printk(BIOS_DEBUG, "setting up resource map....");
 	for (i = 0; i < max; i += 3) {
-		device_t dev;
+		pci_devfn_t dev;
 		unsigned where;
 		unsigned long reg;
 		dev = register_values[i] & ~0xfff;
@@ -525,7 +525,7 @@ static void sdram_set_registers(const struct mem_controller *ctrl)
 	printk(BIOS_SPEW, "setting up CPU%02x northbridge registers\n", ctrl->node_id);
 	max = ARRAY_SIZE(register_values);
 	for (i = 0; i < max; i += 3) {
-		device_t dev;
+		pci_devfn_t dev;
 		unsigned where;
 		unsigned long reg;
 		dev = (register_values[i] & ~0xfff) - PCI_DEV(0, 0x18, 0) + ctrl->f0;
@@ -817,7 +817,7 @@ static void route_dram_accesses(const struct mem_controller *ctrl,
 	unsigned base;
 	unsigned index;
 	unsigned limit_reg, base_reg;
-	device_t device;
+	pci_devfn_t device;
 
 	node_id = ctrl->node_id;
 	index = (node_id << 3);
@@ -2231,7 +2231,7 @@ static uint32_t hoist_memory(int controllers, const struct mem_controller *ctrl,
 {
 	int ii;
 	uint32_t carry_over;
-	device_t dev;
+	pci_devfn_t dev;
 	uint32_t base, limit;
 	uint32_t basek;
 	uint32_t hoist;
diff --git a/src/northbridge/amd/amdk8/raminit.h b/src/northbridge/amd/amdk8/raminit.h
index 9da8417..610d7d3 100644
--- a/src/northbridge/amd/amdk8/raminit.h
+++ b/src/northbridge/amd/amdk8/raminit.h
@@ -6,7 +6,7 @@
 #define DIMM_SOCKETS 4
 struct mem_controller {
 	unsigned node_id;
-	device_t f0, f1, f2, f3;
+	pci_devfn_t f0, f1, f2, f3;
 	uint16_t channel0[DIMM_SOCKETS];
 	uint16_t channel1[DIMM_SOCKETS];
 };
diff --git a/src/northbridge/amd/amdk8/raminit_f.c b/src/northbridge/amd/amdk8/raminit_f.c
index 765fea1..67f3433 100644
--- a/src/northbridge/amd/amdk8/raminit_f.c
+++ b/src/northbridge/amd/amdk8/raminit_f.c
@@ -72,7 +72,7 @@ void setup_resource_map(const unsigned int *register_values, int max)
 {
 	int i;
 	for (i = 0; i < max; i += 3) {
-		device_t dev;
+		pci_devfn_t dev;
 		unsigned where;
 		unsigned long reg;
 		dev = register_values[i] & ~0xff;
@@ -688,7 +688,7 @@ index:
 	printk(BIOS_SPEW, "setting up CPU %02x northbridge registers\n", ctrl->node_id);
 	max = ARRAY_SIZE(register_values);
 	for (i = 0; i < max; i += 3) {
-		device_t dev;
+		pci_devfn_t dev;
 		unsigned where;
 		unsigned long reg;
 		dev = (register_values[i] & ~0xff) - PCI_DEV(0, 0x18, 0) + ctrl->f0;
@@ -1011,7 +1011,7 @@ static void route_dram_accesses(const struct mem_controller *ctrl,
 	unsigned base;
 	unsigned index;
 	unsigned limit_reg, base_reg;
-	device_t device;
+	pci_devfn_t device;
 
 	node_id = ctrl->node_id;
 	index = (node_id << 3);
@@ -2903,7 +2903,7 @@ static uint32_t hoist_memory(int controllers, const struct mem_controller *ctrl,
 {
 	int ii;
 	uint32_t carry_over;
-	device_t dev;
+	pci_devfn_t dev;
 	uint32_t base, limit;
 	uint32_t basek;
 	uint32_t hoist;
diff --git a/src/northbridge/amd/amdk8/setup_resource_map.c b/src/northbridge/amd/amdk8/setup_resource_map.c
index f8f2bbf..fa03e4a 100644
--- a/src/northbridge/amd/amdk8/setup_resource_map.c
+++ b/src/northbridge/amd/amdk8/setup_resource_map.c
@@ -9,7 +9,7 @@ void setup_resource_map_offset(const unsigned int *register_values, int max, uns
 	printk(BIOS_DEBUG, "setting up resource map offset....\n");
 #endif
 	for (i = 0; i < max; i += 3) {
-		device_t dev;
+		pci_devfn_t dev;
 		unsigned where;
 		unsigned long reg = 0;
 #if RES_DEBUG
@@ -58,7 +58,7 @@ static void setup_resource_map_x_offset(const unsigned int *register_values, int
 		switch (register_values[i]) {
 		case RES_PCI_IO: //PCI
 			{
-			device_t dev;
+			pci_devfn_t dev;
 			unsigned where;
 			unsigned long reg = 0;
 			dev = (register_values[i+1] & ~0xfff) + offset_pci_dev;



More information about the coreboot-gerrit mailing list