I had a similar problem. My board pin layout was for the J3, but populated with P30 chips. Pin assignment also is very different between the P30 and J3, including power pins.
When I reset the processor through the Jtag, my core voltage took a dive and the processor got very hot in about 10 seconds. :( Next run of boards had the right J3A parts. :) Joe Porthouse Toptech Systems, Inc. -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Benny Chen Sent: Thursday, April 06, 2006 10:17 PM To: [email protected] Subject: Re: [ECOS] Intel P30 FLASH Help Hi Everyone, As it turns out this problem was due to the mapping of the address bus to the FLASH chip for P30. The design was initially based on the J3 which does a bit[23-1] mapping for the 128Mbit, but this is not required for the P30 FLASH. Cheers, Benny Benny Chen wrote: > Hi Guys, > I am running Redboot on an Cirrus ARM9 board which used to use the > Intel J3 flash. I am in the mids of getting it to work on a Intel P30 > flash. > I have managed to change the download utility used by Cirrus to > include attributes unique to the P30 flash > - Asymmetric Block size > The download seems to work find and had completed successfully. > > However, when my program executes using ROMRAM startup it stops at the > cyg_hal_start_constructors() routine in vectors.S. It seems that the > only diag_printf statement that prints is the one before the for loop > as per delow. > > Is this due to my download utility not downloading the redboot.bin > image properly? > > One other thing is the P30 FLASH did state that XIP programs need to > have their .text and .data sections separated into different > Programming Region (8Mbit blocks) , as in the .data and .text section > cannot both be in the same 8Mbit block. > > I have not done this at the moment, because I am not sure how to and > do I need it. > When booting the Redboot via ROMRAM does that execute the startup code > in FLASH or does it copy it to memory before it executes? > > Any help is much appreciated. > > Cheers, > Benny > > void > cyg_hal_invoke_constructors (void) > { > #ifdef CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG > static pfunc *p = &__CTOR_END__[-1]; > > cyg_hal_stop_constructors = 0; > for (; p >= __CTOR_LIST__; p--) { > (*p) (); > if (cyg_hal_stop_constructors) { > p--; > break; > } > } > #else > pfunc *p; > *diag_printf("This print OK\n");* > for (p = &__CTOR_END__[-1]; p >= __CTOR_LIST__; p--) { > diag_printf("This didn't print\n"); > (*p) (); > } > #endif > } > > -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
