mirror of https://gitee.com/openkylin/linux.git
[PATCH] ppc32: ppc_sys fixes for 8xx and 82xx
This patch fixes a numbers of issues regarding to that both 8xx and 82xx began to use ppc_sys model: - Platform is now identified by default deviceless SOC, if no BOARD_CHIP_NAME is specified in the bard-specific header. For the list of supported names refer to (arch/ppc/syslib/) mpc8xx_sys.c and mpc82xx_sys.c for 8xx and 82xx respectively. - Fixed a bug in identification by name - if the name was not found, it returned -1 instead of default deviceless ppc_spec. - fixed devices amount in the 8xx platform system descriptions Signed-off-by: Vitaly Bordug <vbordug@ru.mvista.com> Signed-off-by: Marcelo Tosatti <marcelo.tosatti@cyclades.com> Signed-off-by: Kumar Gala <kumar.gala@freescale.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
b37665e0ba
commit
1461b4ea2b
|
@ -25,6 +25,8 @@
|
||||||
|
|
||||||
#if defined(CONFIG_MPC86XADS)
|
#if defined(CONFIG_MPC86XADS)
|
||||||
|
|
||||||
|
#define BOARD_CHIP_NAME "MPC86X"
|
||||||
|
|
||||||
/* U-Boot maps BCSR to 0xff080000 */
|
/* U-Boot maps BCSR to 0xff080000 */
|
||||||
#define BCSR_ADDR ((uint)0xff080000)
|
#define BCSR_ADDR ((uint)0xff080000)
|
||||||
|
|
||||||
|
|
|
@ -88,5 +88,7 @@
|
||||||
#define SICR_ENET_MASK ((uint)0x00ff0000)
|
#define SICR_ENET_MASK ((uint)0x00ff0000)
|
||||||
#define SICR_ENET_CLKRT ((uint)0x002c0000)
|
#define SICR_ENET_CLKRT ((uint)0x002c0000)
|
||||||
|
|
||||||
|
#define BOARD_CHIP_NAME "MPC885"
|
||||||
|
|
||||||
#endif /* __ASM_MPC885ADS_H__ */
|
#endif /* __ASM_MPC885ADS_H__ */
|
||||||
#endif /* __KERNEL__ */
|
#endif /* __KERNEL__ */
|
||||||
|
|
|
@ -62,6 +62,10 @@ m8260_setup_arch(void)
|
||||||
if (initrd_start)
|
if (initrd_start)
|
||||||
ROOT_DEV = Root_RAM0;
|
ROOT_DEV = Root_RAM0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
identify_ppc_sys_by_name_and_id(BOARD_CHIP_NAME,
|
||||||
|
in_be32(CPM_MAP_ADDR + CPM_IMMR_OFFSET));
|
||||||
|
|
||||||
m82xx_board_setup();
|
m82xx_board_setup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -399,6 +399,8 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
|
||||||
strcpy(cmd_line, (char *)(r6+KERNELBASE));
|
strcpy(cmd_line, (char *)(r6+KERNELBASE));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
identify_ppc_sys_by_name(BOARD_CHIP_NAME);
|
||||||
|
|
||||||
ppc_md.setup_arch = m8xx_setup_arch;
|
ppc_md.setup_arch = m8xx_setup_arch;
|
||||||
ppc_md.show_percpuinfo = m8xx_show_percpuinfo;
|
ppc_md.show_percpuinfo = m8xx_show_percpuinfo;
|
||||||
ppc_md.init_IRQ = m8xx_init_IRQ;
|
ppc_md.init_IRQ = m8xx_init_IRQ;
|
||||||
|
|
|
@ -24,7 +24,7 @@ struct ppc_sys_spec ppc_sys_specs[] = {
|
||||||
.ppc_sys_name = "MPC86X",
|
.ppc_sys_name = "MPC86X",
|
||||||
.mask = 0xFFFFFFFF,
|
.mask = 0xFFFFFFFF,
|
||||||
.value = 0x00000000,
|
.value = 0x00000000,
|
||||||
.num_devices = 2,
|
.num_devices = 7,
|
||||||
.device_list = (enum ppc_sys_devices[])
|
.device_list = (enum ppc_sys_devices[])
|
||||||
{
|
{
|
||||||
MPC8xx_CPM_FEC1,
|
MPC8xx_CPM_FEC1,
|
||||||
|
@ -40,7 +40,7 @@ struct ppc_sys_spec ppc_sys_specs[] = {
|
||||||
.ppc_sys_name = "MPC885",
|
.ppc_sys_name = "MPC885",
|
||||||
.mask = 0xFFFFFFFF,
|
.mask = 0xFFFFFFFF,
|
||||||
.value = 0x00000000,
|
.value = 0x00000000,
|
||||||
.num_devices = 3,
|
.num_devices = 8,
|
||||||
.device_list = (enum ppc_sys_devices[])
|
.device_list = (enum ppc_sys_devices[])
|
||||||
{
|
{
|
||||||
MPC8xx_CPM_FEC1,
|
MPC8xx_CPM_FEC1,
|
||||||
|
|
|
@ -69,6 +69,9 @@ static int __init find_chip_by_name_and_id(char *name, u32 id)
|
||||||
matched[j++] = i;
|
matched[j++] = i;
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ret = i;
|
||||||
|
|
||||||
if (j != 0) {
|
if (j != 0) {
|
||||||
for (i = 0; i < j; i++) {
|
for (i = 0; i < j; i++) {
|
||||||
if ((ppc_sys_specs[matched[i]].mask & id) ==
|
if ((ppc_sys_specs[matched[i]].mask & id) ==
|
||||||
|
|
|
@ -1087,6 +1087,9 @@ typedef struct im_idma {
|
||||||
#define SCCR_PCIDF_MSK 0x00000078 /* PCI division factor */
|
#define SCCR_PCIDF_MSK 0x00000078 /* PCI division factor */
|
||||||
#define SCCR_PCIDF_SHIFT 3
|
#define SCCR_PCIDF_SHIFT 3
|
||||||
|
|
||||||
|
#ifndef CPM_IMMR_OFFSET
|
||||||
|
#define CPM_IMMR_OFFSET 0x101a8
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* __CPM2__ */
|
#endif /* __CPM2__ */
|
||||||
#endif /* __KERNEL__ */
|
#endif /* __KERNEL__ */
|
||||||
|
|
|
@ -92,6 +92,10 @@ enum ppc_sys_devices {
|
||||||
extern unsigned char __res[];
|
extern unsigned char __res[];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef BOARD_CHIP_NAME
|
||||||
|
#define BOARD_CHIP_NAME ""
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* CONFIG_8260 */
|
#endif /* CONFIG_8260 */
|
||||||
#endif /* !__ASM_PPC_MPC8260_H__ */
|
#endif /* !__ASM_PPC_MPC8260_H__ */
|
||||||
#endif /* __KERNEL__ */
|
#endif /* __KERNEL__ */
|
||||||
|
|
|
@ -113,6 +113,10 @@ enum ppc_sys_devices {
|
||||||
MPC8xx_CPM_USB,
|
MPC8xx_CPM_USB,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifndef BOARD_CHIP_NAME
|
||||||
|
#define BOARD_CHIP_NAME ""
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* !__ASSEMBLY__ */
|
#endif /* !__ASSEMBLY__ */
|
||||||
#endif /* CONFIG_8xx */
|
#endif /* CONFIG_8xx */
|
||||||
#endif /* __CONFIG_8xx_DEFS */
|
#endif /* __CONFIG_8xx_DEFS */
|
||||||
|
|
Loading…
Reference in New Issue