summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Graham <agraham@amcc.com>2008-10-08 10:13:19 -0700
committerStefan Roese <sr@denx.de>2008-10-21 17:34:56 +0200
commitc9c11d751e4242cf29c3c3c290d971f6d0cb1d15 (patch)
tree0853e69da0ba907deb4a96da879f814da8a9cdce
parent59217bae40e90982ab5400d849c08af683ace036 (diff)
downloadbootable_bootloader_goldelico_gta04-c9c11d751e4242cf29c3c3c290d971f6d0cb1d15.zip
bootable_bootloader_goldelico_gta04-c9c11d751e4242cf29c3c3c290d971f6d0cb1d15.tar.gz
bootable_bootloader_goldelico_gta04-c9c11d751e4242cf29c3c3c290d971f6d0cb1d15.tar.bz2
ppc4xx: Add routine to retrieve CPU number
Provide a weak defined routine to retrieve the CPU number for reference boards that have multiple CPU's. Default behavior is the existing single CPU print output. Reference boards with multiple CPU's need to provide a board specific routine. See board/amcc/arches/arches.c for an example. Signed-off-by: Adam Graham <agraham@amcc.com> Signed-off-by: Victor Gallardo <vgallardo@amcc.com> Signed-off-by: Stefan Roese <sr@denx.de>
-rw-r--r--cpu/ppc4xx/cpu.c19
-rw-r--r--include/ppc4xx.h3
2 files changed, 21 insertions, 1 deletions
diff --git a/cpu/ppc4xx/cpu.c b/cpu/ppc4xx/cpu.c
index 66a7737..a676b30 100644
--- a/cpu/ppc4xx/cpu.c
+++ b/cpu/ppc4xx/cpu.c
@@ -41,6 +41,18 @@ DECLARE_GLOBAL_DATA_PTR;
void board_reset(void);
+/*
+ * To provide an interface to detect CPU number for boards that support
+ * more then one CPU, we implement the "weak" default functions here.
+ *
+ * Returns CPU number
+ */
+int __get_cpu_num(void)
+{
+ return NA_OR_UNKNOWN_CPU;
+}
+int get_cpu_num(void) __attribute__((weak, alias("__get_cpu_num")));
+
#if defined(CONFIG_405GP) || \
defined(CONFIG_440EP) || defined(CONFIG_440GR) || \
defined(CONFIG_440EPX) || defined(CONFIG_440GRX)
@@ -274,8 +286,13 @@ int checkcpu (void)
#if !defined(CONFIG_IOP480)
char addstr[64] = "";
sys_info_t sys_info;
+ int cpu_num;
- puts ("CPU: ");
+ cpu_num = get_cpu_num();
+ if (cpu_num >= 0)
+ printf("CPU%d: ", cpu_num);
+ else
+ puts("CPU: ");
get_sys_info(&sys_info);
diff --git a/include/ppc4xx.h b/include/ppc4xx.h
index ce4b29a..f147885 100644
--- a/include/ppc4xx.h
+++ b/include/ppc4xx.h
@@ -218,4 +218,7 @@ static inline void set_mcsr(u32 val)
#endif /* __ASSEMBLY__ */
+/* for multi-cpu support */
+#define NA_OR_UNKNOWN_CPU -1
+
#endif /* __PPC4XX_H__ */