northbridge/amdfam10: Deal with PCI_ADDR() better
PCI_ADDR() is tightly coupled with different setup_resource_map() variants so move the declaration away from global namespace. In the implementation of setup_resource_map() use the bottom 12 bits as the register mask like the other variants do already. Change-Id: Iadedfe993621a4458ce8f12c5e98c8cee537d2db Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: https://review.coreboot.org/c/30784 Reviewed-by: Angel Pons <th3fanbus@gmail.com> Reviewed-by: Arthur Heymans <arthur@aheymans.xyz> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
		@@ -235,12 +235,6 @@ static inline int __ffs(u32 value)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#ifdef __SIMPLE_DEVICE__
 | 
					#ifdef __SIMPLE_DEVICE__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define PCI_ADDR(SEGBUS, DEV, FN, WHERE) ( \
 | 
					 | 
				
			||||||
	(((SEGBUS) & 0xFFF) << 20) | \
 | 
					 | 
				
			||||||
	(((DEV) & 0x1F) << 15) | \
 | 
					 | 
				
			||||||
	(((FN) & 0x07) << 12) | \
 | 
					 | 
				
			||||||
	((WHERE) & 0xFFF))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define PCI_DEV(SEGBUS, DEV, FN) ( \
 | 
					#define PCI_DEV(SEGBUS, DEV, FN) ( \
 | 
				
			||||||
	(((SEGBUS) & 0xFFF) << 20) | \
 | 
						(((SEGBUS) & 0xFFF) << 20) | \
 | 
				
			||||||
	(((DEV) & 0x1F) << 15) | \
 | 
						(((DEV) & 0x1F) << 15) | \
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -29,6 +29,12 @@ struct MCTStatStruc;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
/* Definitions for setup_resourcemap() variants. */
 | 
					/* Definitions for setup_resourcemap() variants. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PCI_ADDR(SEGBUS, DEV, FN, WHERE) ( \
 | 
				
			||||||
 | 
						(((SEGBUS) & 0xFFF) << 20) | \
 | 
				
			||||||
 | 
						(((DEV) & 0x1F) << 15) | \
 | 
				
			||||||
 | 
						(((FN) & 0x07) << 12) | \
 | 
				
			||||||
 | 
						((WHERE) & 0xFFF))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define ADDRMAP_REG(r) PCI_ADDR(CONFIG_CBB, CONFIG_CDB, 1, r)
 | 
					#define ADDRMAP_REG(r) PCI_ADDR(CONFIG_CBB, CONFIG_CDB, 1, r)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define RES_PCI_IO 0x10
 | 
					#define RES_PCI_IO 0x10
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -30,8 +30,8 @@ void setup_resource_map(const u32 *register_values, u32 max)
 | 
				
			|||||||
		u32 where;
 | 
							u32 where;
 | 
				
			||||||
		u32 reg;
 | 
							u32 reg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		dev = register_values[i] & ~0xff;
 | 
							dev = register_values[i] & ~0xfff;
 | 
				
			||||||
		where = register_values[i] & 0xff;
 | 
							where = register_values[i] & 0xfff;
 | 
				
			||||||
		reg = pci_read_config32(dev, where);
 | 
							reg = pci_read_config32(dev, where);
 | 
				
			||||||
		reg &= register_values[i+1];
 | 
							reg &= register_values[i+1];
 | 
				
			||||||
		reg |= register_values[i+2];
 | 
							reg |= register_values[i+2];
 | 
				
			||||||
@@ -144,8 +144,8 @@ void setup_resource_map_x(const u32 *register_values, u32 max)
 | 
				
			|||||||
			pci_devfn_t dev;
 | 
								pci_devfn_t dev;
 | 
				
			||||||
			u32 where;
 | 
								u32 where;
 | 
				
			||||||
			u32 reg;
 | 
								u32 reg;
 | 
				
			||||||
			dev = register_values[i+1] & ~0xff;
 | 
								dev = register_values[i+1] & ~0xfff;
 | 
				
			||||||
			where = register_values[i+1] & 0xff;
 | 
								where = register_values[i+1] & 0xfff;
 | 
				
			||||||
			reg = pci_read_config32(dev, where);
 | 
								reg = pci_read_config32(dev, where);
 | 
				
			||||||
			reg &= register_values[i+2];
 | 
								reg &= register_values[i+2];
 | 
				
			||||||
			reg |= register_values[i+3];
 | 
								reg |= register_values[i+3];
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user