flash U-boot to NOR flash in P1022DS

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

flash U-boot to NOR flash in P1022DS

1,729 Views
hudi
Contributor II

    I have installed the CW for power Architecture V10.3 and I 

want to flash the NOR flash in P1022DS  board with USB TAP,I

know the NOR flash is S29GL01GP and I have found this chip on

my board.But I don't know how to set the base address,target

RAM address and size,when I add the program/verify action,how

can I specified the memory range and address offset.

          I use the board 2010 freescale P1022DS ULTRA v3,and

the uboot-P1022DS-git-r24.bin.I want to flash this uboot on my

board.I want to have some serial output when I have finished

flashing and boot the board.How can I set the DIP switch?

          I have been blocked by this problem for three days,and I

want some advice.Thanks~~

Labels (1)
Tags (3)
0 Kudos
11 Replies

1,011 Views
marius_grigoras
NXP Employee
NXP Employee

Hi,

Please set up the DIP SW settings as described below (the boot location is set from NOR flash)

SW1 : 0x98 = 10011000SW5 : 0xFF = 11111111SW9 : 0x0A = 00001010
SW2 : 0xD1 = 11010001SW6 : 0x8B = 10001011
SW3 : 0x2C = 00101100SW7 : 0x0F = 00001111
SW4 : 0xFE = 11111110SW8 : 0xFF = 11111111

Where '1' = up/ON

Secondly, please note that for serial output, the serial console need to have next parameters:

Baud Rate: 115200

Data Bits: 8

Parity: None

Stop Bits: 1

Flow Control: None

     1. Make a P1022DS in CW and connect to the target using the Connect target from Debug Configurations.

     2. Using Flash Programmer write the  NOR u-boot image to NOR flash. For this make the below steps:

          a. Select Window -> Show View -> Target Tasks

          b. Right click inside this window and click Import -> go to Flash_Programmer\Qonverge and import P1022DS_NOR_FLASH.xml file

          c. Double click on the target task and from Add Action button choose Program/Verify. Select the attached file and please select also ‘Erase sectors before program’ and ‘Apply Address Offset’ (here please set next addr: 0xFFF80000). Please don’t make any additional change (note that the Target RAM addresses are already set up correctly). After this, just click on ‘Add Program Action’. You can simply save this target using ctrl+s.

          d. Right click on the target task and select ‘Execute’ from pop-up menu.

          e. From console you can select the ‘Flash Programmer Console’ and see if the operations are finishing with ‘Program Command Succeeded’ status

Regards,

Marius

0 Kudos

1,011 Views
hudi
Contributor II

   Hi,I have been set as this,and I use the u-boot (u-boot-P1022DS-git-r24),but I still can not get the serial output when I power on the board,I am sure the serial cable is working.what is the possible problem.

    Regard,

    Hu Di

0 Kudos

1,011 Views
marius_grigoras
NXP Employee
NXP Employee

Maybe your board versionis not according with your u-boot version.

During bring-up for CodeWarrior I used the attached binary. Please use it and let me know the results.

Marius

0 Kudos

1,011 Views
hudi
Contributor II

     I have used this image ,but it does not work.My board is P1022DS-PB REVB,and P1022PSE2HFA REV1.1.

     Thanks.

0 Kudos

1,011 Views
marius_grigoras
NXP Employee
NXP Employee

I see. Can you tell please the full board details? (i.e. boar version and board schematic version - there are some stickers on the board).

Marius

0 Kudos

1,011 Views
hudi
Contributor II

   P1022DS-PB REVB,P1022PSE2HFA REV1.1 are the stickers on the board.There have been a u-boot.bin in the flash,but now when I boot the board,there is no serial output.So I doubt the u-boot.bin have been corrupted,I wanna to flash a new u-boot to this board.

1,011 Views
marius_grigoras
NXP Employee
NXP Employee

You're using CodeWarrior? You can enter in debug in RAM with the stationary project and see the printf output - i.e. "Welcome to CodeWarriow!"?

Marius

0 Kudos

1,011 Views
hudi
Contributor II

I have enter in debug in RAM with the stationary project ,no printf output.As the P1022DS_README.txt describe

"The UART libraries are compiled with a specific PIXIS and CCSRBAR address. For different values of the PIXIS and CCSRBAR you need to rebuild your library".Maybe I need to rebuild the serial library in the stationary project.But how can I know the UART libraries have been complied with what CCSRBAR address,and PIXIS address.? I know the CCSBAR in my board is 0xEFE00000 and PIXIS  address F0000000

   Hu Di

0 Kudos

1,011 Views
marius_grigoras
NXP Employee
NXP Employee

If you're using the stationary project there is no need for changing the CCSRBAR address value (the tcl initialization script is moving the CCSRBAR addr value to 0xE0000000). Please note that the UART and PIXIS addresses are in sync with the initialization file.

Did you make any change to the tcl initialization file?

Are you sure that the serial cable is ok?

One more thing you can do is to re-build the serial project for P1022DS.

Import the .project from PA\PA_Support\Serial\P1022DS_serial in CW.

In Source\duart_config.c remove the if() condition and try consecutively with systemClock = 100 and systemClock = 66. Maybe you're board has another PIXIS/FPGA version and the systemClock detection is not reliable for your case.

After this, replace your new uartLib in the stationary project.

Regards and please let me know the results,

Marius

0 Kudos

1,011 Views
hudi
Contributor II

      I did not change the tcl initialization file,and I have test serial cable and verified it is OK.But there is still no output in the serial output.

      I have modified the serial project for P1022DS like this :

           I set the  systemClock=100 in GetSystemClock () ,and comment out all the code about the PIXIS,and rebuild this project,replace the  UART1_P1022DS.UC.a in the stationary project with this one.rebuild the stationary project and debug the result.

          And then repeat this process with systemClock=66.

          In both cases,there is no output in the serial terminal.

          thanks.

                

0 Kudos

1,011 Views
marius_grigoras
NXP Employee
NXP Employee

You can make a try also and with the rest values from duart_config.c: 75, 83, 90, 111, 125, 133.

Secondly, can you please let me know the value of PORPLLSR register? This contains some core, DDR and Platform ratios and based on them we can make some assumptions about the sysclk value.

Regards,

Marius

0 Kudos