From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wolfgang Denk Date: Wed, 01 Apr 2009 21:00:11 +0200 Subject: [U-Boot] [PATCH v2 1/3] 86xx: Cleanup MP support In-Reply-To: <1238601989-6251-1-git-send-email-galak@kernel.crashing.org> References: <1238601989-6251-1-git-send-email-galak@kernel.crashing.org> Message-ID: <20090401190011.C2C5883797DC@gemini.denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Dear Kumar Gala, In message <1238601989-6251-1-git-send-email-galak@kernel.crashing.org> you wrote: > * Use CONFIG_MP instead of CONFIG_NUM_CPUS to match 85xx > * Introduce determine_mp_bootpg() helper. We'll need this to address a > bug introduced in v2009.03 with 86xx MP booting. We have to make sure > to reserve the region of memory used for the MP bootpg() so other > u-boot code doesn't use it. > * Added dummy versions of cpu_status() & cpu_release() to allow cmd_mp.c > to build and work. In the future we should look at implementing > cpu_release(). This could be common w/85xx if we use spin tables on > 86xx. ... > diff --git a/board/freescale/mpc8641hpcn/mpc8641hpcn.c b/board/freescale/mpc8641hpcn/mpc8641hpcn.c > index 1e35dfa..ef0095a 100644 > --- a/board/freescale/mpc8641hpcn/mpc8641hpcn.c > +++ b/board/freescale/mpc8641hpcn/mpc8641hpcn.c > @@ -375,7 +375,7 @@ void board_reset(void) > ; > } > > -#if (CONFIG_NUM_CPUS > 1) > +#ifdef CONFIG_MP > extern void cpu_mp_lmb_reserve(struct lmb *lmb); We should have a prototype somewhere, and get rid of this extern. ... > diff --git a/cpu/mpc86xx/Makefile b/cpu/mpc86xx/Makefile > index 34a9755..f1af64e 100644 > --- a/cpu/mpc86xx/Makefile > +++ b/cpu/mpc86xx/Makefile > @@ -31,10 +31,9 @@ LIB = $(obj)lib$(CPU).a > START = start.o > SOBJS = cache.o > > -ifneq ($(CONFIG_NUM_CPUS),1) > -COBJS-y += mp.o > -SOBJS += release.o > -endif > +SOBJS-$(CONFIG_MP) += release.o > +SOBJS += $(SOBJS-y) > +COBJS-$(CONFIG_MP) += mp.o > COBJS-y += traps.o > COBJS-y += cpu.o > COBJS-y += cpu_init.o Please keep list sorted. ... > diff --git a/cpu/mpc86xx/mp.c b/cpu/mpc86xx/mp.c > index 5014401..e17f5e1 100644 > --- a/cpu/mpc86xx/mp.c > +++ b/cpu/mpc86xx/mp.c > @@ -8,16 +8,42 @@ > > DECLARE_GLOBAL_DATA_PTR; > > -#if (CONFIG_NUM_CPUS > 1) > -void cpu_mp_lmb_reserve(struct lmb *lmb) > +int cpu_reset(int nr) > +{ > + volatile immap_t *immr = (immap_t *)CONFIG_SYS_IMMR; > + volatile ccsr_pic_t *pic = &immr->im_pic; > + out_be32(&pic->pir, 1 << nr); > + (void)in_be32(&pic->pir); > + out_be32(&pic->pir, 0x0); Please add some comment to explain what you are doing here, and why. Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de An age is called Dark not because the light fails to shine, but because people refuse to see it. -- James Michener, "Space"