soc/intel/xeon_sp; Use soc specific stack-port function
Separate the get_stack_for_port into soc specific functions. This removes a #if in common code. Change-Id: Ib38a7d66947ded9b56193a9163e5128b2523e99c Signed-off-by: Marc Jones <marcjones@sysproconsulting.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/46971 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
parent
3dea2b63ee
commit
995a7e25a1
|
@ -26,5 +26,6 @@ int get_threads_per_package(void);
|
||||||
const struct SystemMemoryMapHob *get_system_memory_map(void);
|
const struct SystemMemoryMapHob *get_system_memory_map(void);
|
||||||
|
|
||||||
void set_bios_init_completion(void);
|
void set_bios_init_completion(void);
|
||||||
|
int soc_get_stack_for_port(int port);
|
||||||
|
|
||||||
#endif /* _SOC_UTIL_H_ */
|
#endif /* _SOC_UTIL_H_ */
|
||||||
|
|
|
@ -319,3 +319,25 @@ void set_bios_init_completion(void)
|
||||||
/* And finally, take care of the SBSP */
|
/* And finally, take care of the SBSP */
|
||||||
set_bios_init_completion_for_package(sbsp_socket_id);
|
set_bios_init_completion_for_package(sbsp_socket_id);
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
* EX: CPX-SP
|
||||||
|
* Ports Stack Stack(HOB) IioConfigIou
|
||||||
|
* ==========================================
|
||||||
|
* 0 CSTACK stack 0 IOU0
|
||||||
|
* 1A..1D PSTACKZ stack 1 IOU1
|
||||||
|
* 2A..2D PSTACK1 stack 2 IOU2
|
||||||
|
* 3A..3D PSTACK2 stack 4 IOU3
|
||||||
|
*/
|
||||||
|
int soc_get_stack_for_port(int port)
|
||||||
|
{
|
||||||
|
if (port == PORT_0)
|
||||||
|
return CSTACK;
|
||||||
|
else if (port >= PORT_1A && port <= PORT_1D)
|
||||||
|
return PSTACK0;
|
||||||
|
else if (port >= PORT_2A && port <= PORT_2D)
|
||||||
|
return PSTACK1;
|
||||||
|
else if (port >= PORT_3A && port <= PORT_3D)
|
||||||
|
return PSTACK2;
|
||||||
|
else
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
|
@ -142,48 +142,6 @@ static unsigned long acpi_fill_slit(unsigned long current)
|
||||||
return current;
|
return current;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* EX: CPX-SP
|
|
||||||
* Ports Stack Stack(HOB) IioConfigIou
|
|
||||||
* ==========================================
|
|
||||||
* 0 CSTACK stack 0 IOU0
|
|
||||||
* 1A..1D PSTACKZ stack 1 IOU1
|
|
||||||
* 2A..2D PSTACK1 stack 2 IOU2
|
|
||||||
* 3A..3D PSTACK2 stack 4 IOU3
|
|
||||||
*/
|
|
||||||
static int get_stack_for_port(int port)
|
|
||||||
{
|
|
||||||
#if (CONFIG(SOC_INTEL_COOPERLAKE_SP))
|
|
||||||
if (port == PORT_0)
|
|
||||||
return CSTACK;
|
|
||||||
else if (port >= PORT_1A && port <= PORT_1D)
|
|
||||||
return PSTACK0;
|
|
||||||
else if (port >= PORT_2A && port <= PORT_2D)
|
|
||||||
return PSTACK1;
|
|
||||||
else if (port >= PORT_3A && port <= PORT_3D)
|
|
||||||
return PSTACK2;
|
|
||||||
else
|
|
||||||
return -1;
|
|
||||||
#endif /* SOC_INTEL_COOPERLAKE_SP */
|
|
||||||
|
|
||||||
#if (CONFIG(SOC_INTEL_SKYLAKE_SP))
|
|
||||||
if (port == PORT_0)
|
|
||||||
return CSTACK;
|
|
||||||
else if (port >= PORT_1A && port <= PORT_1D)
|
|
||||||
return PSTACK0;
|
|
||||||
else if (port >= PORT_2A && port <= PORT_2D)
|
|
||||||
return PSTACK1;
|
|
||||||
else if (port >= PORT_3A && port <= PORT_3D)
|
|
||||||
return PSTACK2;
|
|
||||||
else if (port >= PORT_4A && port <= PORT_4D)
|
|
||||||
return PSTACK3; // MCP0
|
|
||||||
else if (port >= PORT_5A && port <= PORT_5D)
|
|
||||||
return PSTACK4; // MCP1
|
|
||||||
else
|
|
||||||
return -1;
|
|
||||||
#endif /* SOC_INTEL_SKYLAKE_SP */
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This function adds PCIe bridge device entry in DMAR table. If it is called
|
* This function adds PCIe bridge device entry in DMAR table. If it is called
|
||||||
* in the context of ATSR subtable, it adds ATSR subtable when it is first called.
|
* in the context of ATSR subtable, it adds ATSR subtable when it is first called.
|
||||||
|
@ -193,7 +151,7 @@ static unsigned long acpi_create_dmar_ds_pci_br_for_port(unsigned long current,
|
||||||
bool is_atsr, bool *first)
|
bool is_atsr, bool *first)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (get_stack_for_port(port) != stack)
|
if (soc_get_stack_for_port(port) != stack)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
const uint32_t bus = iio_resource.StackRes[stack].BusBase;
|
const uint32_t bus = iio_resource.StackRes[stack].BusBase;
|
||||||
|
|
|
@ -27,5 +27,6 @@ const struct SystemMemoryMapHob *get_system_memory_map(void);
|
||||||
|
|
||||||
void set_bios_init_completion(void);
|
void set_bios_init_completion(void);
|
||||||
unsigned int soc_get_num_cpus(void);
|
unsigned int soc_get_num_cpus(void);
|
||||||
|
int soc_get_stack_for_port(int port);
|
||||||
|
|
||||||
#endif /* _SOC_UTIL_H_ */
|
#endif /* _SOC_UTIL_H_ */
|
||||||
|
|
|
@ -394,4 +394,32 @@ void xeonsp_init_cpu_config(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* EX: SKX-SP
|
||||||
|
* Ports Stack Stack(HOB) IioConfigIou
|
||||||
|
* ==========================================
|
||||||
|
* 0 CSTACK stack 0 IOU0
|
||||||
|
* 1A..1D PSTACKZ stack 1 IOU1
|
||||||
|
* 2A..2D PSTACK1 stack 2 IOU2
|
||||||
|
* 3A..3D PSTACK2 stack 3 IOU3
|
||||||
|
* 5A..4D PSTACK3 stack 4 IOU4
|
||||||
|
* 5A..5D PSTACK4 stack 5 IOU5
|
||||||
|
*/
|
||||||
|
int soc_get_stack_for_port(int port)
|
||||||
|
{
|
||||||
|
if (port == PORT_0)
|
||||||
|
return CSTACK;
|
||||||
|
else if (port >= PORT_1A && port <= PORT_1D)
|
||||||
|
return PSTACK0;
|
||||||
|
else if (port >= PORT_2A && port <= PORT_2D)
|
||||||
|
return PSTACK1;
|
||||||
|
else if (port >= PORT_3A && port <= PORT_3D)
|
||||||
|
return PSTACK2;
|
||||||
|
else if (port >= PORT_4A && port <= PORT_4D)
|
||||||
|
return PSTACK3; // MCP0
|
||||||
|
else if (port >= PORT_5A && port <= PORT_5D)
|
||||||
|
return PSTACK4; // MCP1
|
||||||
|
else
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue