Hi everyone,
I've been attempting to get a boot-over-Ethernet system working. I've enabled the DHCP and TFTP servers, and created the .s files for the boot.
However, I am having issues in communicating with the MSC8156EVM board. I set the values of SW2 for the BPRT of the RCWHR to 110 (RGMII1 + I2C), and I would expect the board to send a DHCP discovery packet. So far, however, there is no communication out of the board.
Any suggestions or hints at what I'm missing?
Cheers.
Solved! Go to Solution.
Hi David and Avi,
Based on seeing nothing in the packet sniffer - I would assume that the EE0 pin is set to 1 (leaving the board in debug mode - preventing the device from booting).
Could you confirm the value of this dip switch?
If the dips are configured to boot from Ethernet (no I2C), and EE0 is set to 0 (which is ON, as ON==0 in our boards), then as you said, you should see DHCP requests coming in on your sniffer -
assuming that your computer is connected directly to the EVM card via a crossover cable, with your computer set up to a static IP address on that port, with the sniffer monitoring the port in question.
Hello Avi,
For a 6 core application - it's a little more complicated - the master core on the MSC8156 does not have access to the slave cores' M2 memory, so it can't load programs to other cores' M2 - meaning that the download will freeze/get a bus error.
It sounds like David has sent in an SR for a boot patch regarding DDR setup. I suggest doing the same for the custom multi-core DMA loader which is needed here.
Regards,
-Andrew
Hey
I noticed that for the MSC8156ADS board there is a DIP Switch in the SW1 on the board that is called "Boot Patch"....
Does it only a bit that needed to be '1' or '0' ? If thats the case were is it on the EVM board ? How do i configure that Boot Patch for the ethernet boot file(.srec) so it will be load to the DDR on the board ...
Thanks
Avi
Ah,
Now for that I know you need to get the boot patch for the EVM board, and you can only get that by creating a support request. Unfortunately it's not as easy as that on the EVM board as flicking a switch!
I'm playing with the boot patch now. I'll let you know how I get on...
Hey David
Thanks for the help , I sent you a private message too , please check it and tell me what u think .
Avi
Hey David,
What exactly did you get from freescale when you opened SR?
What is this "Boot Patch" ? Is it changing something with processor boot loader ?
Did they sent you an installation manual with it ?
Avi .
Hi Avi,
My interpretation of what the boot patch is (can't get a definitive answer anywhere) is that it rewrites the boot program in the EEPROM on the board, and I specifically wanted the boot program to initialise the DDR, as well as running boot-over-Ethernet.
However, I am also aware that I may be wrong, and in actual fact, it's flashing the EEPROM with a program which only initialises the DDR, then returns to the boot program to run boot-over-Ethernet.
Other parties feel free to correct me if I'm wrong!
They didn't send me any instructions, although they did tell me the boot patch is for the ADS board. I submitted a separate support request to get some help on boot patch with the EVM, and I got a nice E-mail giving me some help in configuring the boot-patch and getting it ready to flash on the EVM.
Hey David
Could you please share that Email they send you about the way to configure the boot-patch and getting it ready to flash on the EVM.
Thanks
Avi
Open the boot patch project, in boot_load.asm modify the DDR CONFIGURATION part, you can refer to MSC8156_Init.cfg and MSC8156_EVM_Init.cfg by comparing them. The two configuration file located at: C:\Program Files\Freescale\CW SC v10.2.2\SC\StarCore_Support\Initialization_Files\RegisterConfigFiles\MSC8156_ADS and C:\Program Files\Freescale\CW SC v10.2.2\SC\StarCore_Support\Initialization_Files\RegisterConfigFiles\MSC8156_EVM
How to use boot patch:
Open the boot patch project, edit and build, drag the output .eld file to directory "TOOLS_AND_IMAGES".
Edit the required RCW in RCW.cfg file, edit the required MAC address for boot over ETH with I2C support in MAC.txt.
Double click on "Boot_EPROM_from_ELD.bat" to create the I2C EEPROM image. This image needs to be burnt to the EEPROM. (Output file name "CHANGE_MY_NAME.txt")
The "Boot_EPROM_from_ELD.bat" is executing:
I2CBoot.exe -t 1 -r RCW.cfg -c MAC.cfg -m entry_point.txt -e boot_load_patch_ddr.eld > CHANGE_MY_NAME.txt
Hey David
Thank you, I will let you know how\if it works for me.
Avi
Hey David
I realized they guide you to use "boot patch project" , well I didn't find such a project in the FreeScale installation folder .
I found other projects that I am assuming doing similar functionality .....
Do you have this project ? How do you manage to built this .txt file needed to be burn to the EEPROM ?
Thanks
Avi
Hi Avi,
Yes I had to do some funny configuration and project loading to get the project in. I think you have to import it into CodeWarrior using the conversion between whatever freescale used before, and CodeWarrior. Once you start on that p[rocess, you need to open the .mcp (patch.mcp I tihnk it's called), and then that should start the conversion.
This should import it into CodeWarrior. The bootpatch produces a .txt file, which you are expected to flash to the EEPROM using the I2C burner in your FreeScale installation folder: "CW SC v10.2\SC\StarCore_Support\I2CBoot\MSC815x-MSC825x". There's a 'how to' document there. It seems to be relatively straight forward but I've not had a go yet.
Just out of curiosity, what did you set your RCWLR and RCWHR values to be?
Hope this helps!
Hey David
RCWLR = 0xFF, 0xFF, 0xFF, 0x03, 0x33, 0x00, 0x00
RCWHR= 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x18, 0x01
I produced a .txt file (not a final one but something for this stage) ... BUT I didn't got the way to flash it into EEPROM , I maneged to built the I2C burner project from : "CW SC v10.2\SC\StarCore_Support\I2CBoot\MSC815x-MSC825x" BUT I could not launch it to the EVM board , this project lunch files are for the ADS board . Do you have a clue how to build a lunch file for this project to EVM board ?
I am working on it and got into a point I need to have a .tcl and .cfg files needed to config the Remote System section under "run configuration" in Eclipse .
Thanks
sorry for the late respond - weekend vacation ...
Avi .
Hey David
An Update :
RCWLR = 0xFF, 0xFF, 0xFF, 0x03, 0x33, 0x00, 0x00
RCWHR= 0xFF, 0xFF, 0xFF, 0x04, 0x06, 0x0C, 0x00
the 3 0xFF are preambles
So finally your EEPROM (the 0x0000 to 0x0010 address) sould look like this :
0xAA, 0x55, 0xAA, 0xFF, 0xFF, 0xFF, 0x03, 0x33, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x04, 0x06, 0x0C, 0x00,
hope it helps
Avi
Hey Avi,
When converting from the ADS to the EVM there are a few things that you need to consider:
- the ADS has two banks of RAM, as opposed to the EVM which has only one. The linker files need to be adjusted to reflect this.
- the linker files will also make specific reference to ADS resources. You'll need to change them to be EVM instead.
There may be a few other things I've forgotten...
R.E. the RCW's, thanks, I have similar, except for the RCWHR.
Let me know how you get on. I am still having issues with my normal Boot over Ethernet, in that it part loads, and then freezes. I'm only using a single core program (but compiling a ethernet loadable srec with information for all six cores). The issue is that whilst I can find a small program (2kb), I can't verify it's operation. The smallest ethernet loadable srec that I can build so far is about 224kb, which blows the M2 memory. Any suggestions?
Hey David
Did you tried to change the memory init file at the : Menu -> Run -> Debug Configuration-> Remote System under Edit to the file : " C:\Program Files\Freescale\CW SC v10.2\SC\StarCore_Support\Initialization_Files\MemoryConfigFiles\MSC8156ADS_Memory_Example.mem" ?
This should solve your problem ...
Let me know if it helped u
Avi
Yeah, I have that set for all of the cores at startup. Still doesn't make a difference. The difficulty I have is creating a .eld file under 190kb.
Did you manage to achieve this? If so, how?
Hi Andrew,
Is there a dedicated freescale website that publishes all of these errata?
I installed and used DHCP Turbo, and TFTP Turbo, but the issue remains unfortunately. I suspect that I will need a bootpatch.I'll need it for future development anyway.Despite this though, the file I'm testing with is only 432kb.
Just as a follow up to my last post,
I removed any references to DDR memory and compiled the project in Release Mode.
Then I copied the .eld files generated to another folder, then ran the sc100_elf2xx utility to turn the six eld files into srec's.
After this I used the sc100_srec2xx utility using the -dis_nl tag to remove line breaks, and then set the DHCP server to supply this srec file to the TFTP server.
It still timeout's at the same point. It fell apart after data packet block 366.