Boot Procedure

Technical discussions around xCORE processors (e.g. xcore-200 & xcore.ai).
gilbertmlliu
Member
Posts: 10
Joined: Wed Jan 11, 2012 1:20 am

Boot Procedure

Post by gilbertmlliu »

Is anyone using XS1-L10A device? 

I previously working with a single tile XMOS device XS1-L1A, then upgraded to XS1-L10A recently.

Previously, I used the xcc to compile the code and xflash to generate the image to upgrade or program my device.

After the upgrade, I can also compile the code and program to my device, but the board doesn't work after power cycle. So I try to look into the boot procedure and can't find any information.Is anyone know experience with the XS1-L10A (two tiles) device? How to boot two tiles from SPI independently? How to boot tile0 from SPI, then boot tile1 from channel end 0 through tile0?

Please advise in details. Thanks a lot!


User avatar
sethu_jangala
XCore Expert
Posts: 589
Joined: Wed Feb 29, 2012 10:03 am

Post by sethu_jangala »

Hi,
gilbertmlliu wrote:Previously, I used the xcc to compile the code and xflash to generate the image to upgrade or program my device.
If you want to flash the device, you can use xflash command to flash the device. You don't need an upgrade image to flash the device. Flash library works like this, Device checks the mode pins and boots the device based on the boot mode pins set. If the boot mode is set to SPI mode, it checks the flash and loads the image from the flash and run. If you want to write data to the SPI flash without using JTAG, then you need to generate the version image and write the SPI flash of the device using some other interface (a serial port or USB). In this scenario, the image(upgradable image) will be added to the flash next to the factory image. Like this, you can add as many images as you can (provided there is enough space in the flash). Once you have images added in your flash, up on the power on of the device the device boots from the SPI flash and checks the image with the highest version number and boots the image.
gilbertmlliu wrote:After the upgrade, I can also compile the code and program to my device, but the board doesn't work after power cycle. So I try to look into the boot procedure and can't find any information.Is anyone know experience with the XS1-L10A (two tiles) device? How to boot two tiles from SPI independently? How to boot tile0 from SPI, then boot tile1 from channel end 0 through tile0?
You don't need separate flash devices for each tile, you can have a SPI flash device connected to tile0. The tile0 device boots from the SPI flash in power on and loads the image and loads the tile1 using Links. You don't need to boot the two devices individually, xflash does this for you based. This will be done based on the confirguration specified in the XN file.

Sethu.
gilbertmlliu
Member
Posts: 10
Joined: Wed Jan 11, 2012 1:20 am

Post by gilbertmlliu »

what do you mean by "Tile0 device boots from SPI flash and loads the flash data of tile 1 from the SPI flash into the Tile1 device." In fact, the tile1 portion of boot up is the most confusing part.
With this mean, my design is fine with one flash device. The flash device will boot up the tile0, then how is the boot process on tile1, I need more detail information.
Is there any pins or hardware need specific settings or configuration? Please specify the mode pins according to your approach.
Is there any code or library is required for this?
User avatar
sethu_jangala
XCore Expert
Posts: 589
Joined: Wed Feb 29, 2012 10:03 am

Post by sethu_jangala »

gilbertmlliu wrote:what do you mean by "Tile0 device boots from SPI flash and loads the flash data of tile 1 from the SPI flash into the Tile1 device." In fact, the tile1 portion of boot up is the most confusing part.
With this mean, my design is fine with one flash device. The flash device will boot up the tile0, then how is the boot process on tile1, I need more detail information.
Is there any pins or hardware need specific settings or configuration? Please specify the mode pins according to your approach.
Is there any code or library is required for this?
Yes, one flash device should be fine in the design. You don't need separate flash device for each tile. The mode pins should be set to boot from SPI flash. Have a look at the L10 device Data sheet for setting the mode pins. Or have a look at the L16 schematics on how mode pins are connected.

The mode pins should be set to "Tile0 boots from SPI, Tile1 from channel end 0 via Tile0". So the mode pins should be Mode[4] : 0, Mode[3] : 1, Mode[2] : 1.

Hope this helps.

Sethu.
gilbertmlliu
Member
Posts: 10
Joined: Wed Jan 11, 2012 1:20 am

Post by gilbertmlliu »

I have attached the led test project, the project is based on the XS1-L10A device.
Based on the previous feedback from you, you said you can use the command prompt to compile and xflash successfully.
1. What device or development board you use to run this project?
2. Are the tile[0] and tile[1] memories are individual, cannot be shared?
3. tile[0] pins cannot be used by tile[1], vice versa tile[1] pins cannot be used by tile[0], is this correct?
4. they can only communicates through channels?

Current situation:
i am using the xtimecomposer and its command prompt 12.2.0
the project can be built, debug and run successfully in the xtimecomposer,
but the project does not work after i use the xcc command to compile and build, and xflash to program the data into flash.

At this point, please answer the following questions:
1. tile0 boot from SPI, tile1 boot from channel end 0 via tile0.
X0D0, X0D1, X0D10 and X0D11 are connected to flash device, which can boot from flash. refer to your feedback, there is no need a second flash device to connect to the tile1. so tile1 is using the channel end 0 (as you mentioned the link, right?)
any hardware or pins setting or connections required?
any code or library is necessary for this?

2. tile0 and tile1 boot from SPI independently It is good to have sample programs to show.
is this mean booting both tile0 and tile1 from one flash device?
or separate device?
any hardware or pins settings or connections required?
any code or library is necessary for this?

In my design, I only connected a flash device with those 4 SPI pins to tile0.
you mentioned no additional flash is required for tile1, i have no SPI pins or flash for tile1.
so which approach is best for me to boot the tile1?
how can i proceed with your suggestion?
please be forgive these many questions and answer them as details and specific as you can.
thank you.
Attachments
app.zip
led blink test project with XS1-L10A device.
(77.39 KiB) Downloaded 237 times
app.zip
led blink test project with XS1-L10A device.
(77.39 KiB) Downloaded 237 times
User avatar
sethu_jangala
XCore Expert
Posts: 589
Joined: Wed Feb 29, 2012 10:03 am

Post by sethu_jangala »

Hi Gilbert,

1. What device or development board you use to run this project?
I used L16 sliceKIT to run.
2. Are the tile[0] and tile[1] memories are individual, cannot be shared?
Tile[0] and Tile[1] memory are individual and only way of communication is using channels.
3. tile[0] pins cannot be used by tile[1], vice versa tile[1] pins cannot be used by tile[0], is this correct?
What do you mean by using pins?
4. they can only communicates through channels?
Yes, that is right. The only way of communication between tiles is using channels.


1. tile0 boot from SPI, tile1 boot from channel end 0 via tile0.
X0D0, X0D1, X0D10 and X0D11 are connected to flash device, which can boot from flash. refer to your feedback, there is no need a second flash device to connect to the tile1. so tile1 is using the channel end 0 (as you mentioned the link, right?)
any hardware or pins setting or connections required?
any code or library is necessary for this?

See my previous post for Mode pin connections.

2. tile0 and tile1 boot from SPI independently It is good to have sample programs to show.
is this mean booting both tile0 and tile1 from one flash device?
or separate device?
any hardware or pins settings or connections required?
any code or library is necessary for this?

Yes both the tiles boot from same flash device. During power ON, boot loader loads the information from SPI flash into the tile0 and tile1 boots from the same SPI flash using links.

Sethu
gilbertmlliu
Member
Posts: 10
Joined: Wed Jan 11, 2012 1:20 am

Post by gilbertmlliu »

OK, then the design is fine now.
Let me clarify here with your last feedback:
I assumed you said boot from SPI flash, which refers to mode[4:2] = 011 tile0 boot from SPI, tile1 from channel end 0 via tile0.
Due to mode[4:2] = 111 is also boot from SPI flash, but its both tile0 and tile1.
So I need your clarification if my assumption is correct?
btw, please take a look your L16 schematics link, what are you referring to exactly?
please be specific. thanks.

OK, focus on mode[4:2] = 011, tile1 from channel end 0 via tile0.
how to use the links to boot tile1 through channel end 0 via tile0?
do we require any pins connections?
any hardware requirements? i mean settings or configuration?
any code or library do i need in my project?
any xcc command parameters i need to create my image file?
any xflash command parameters i need to program my flash in order to boot up both tiles?
please kindly advice as details and specific as possible.

On tile0, there are X0D0 to X0D43 and on tile1, there are X1D0 to X1D39.
So can tile0 uses pins X1D0 to X1D39, or vice versa tile1 uses pins X0D0 to X0D43?

thank you so much for your effort and patience.
User avatar
sethu_jangala
XCore Expert
Posts: 589
Joined: Wed Feb 29, 2012 10:03 am

Post by sethu_jangala »

gilbertmlliu wrote:Let me clarify here with your last feedback:
I assumed you said boot from SPI flash, which refers to mode[4:2] = 011 tile0 boot from SPI, tile1 from channel end 0 via tile0.
Due to mode[4:2] = 111 is also boot from SPI flash, but its both tile0 and tile1.
So I need your clarification if my assumption is correct?
If the mode[4:2] = 111 is set then the system as a separate independent system with two L5 tiles. It does not act as a L10 system. In this case you need to have two separate flash devices connected to each tile. But in your application you are trying to use L10 system so the boot mode should be mode[4:2]=011.
gilbertmlliu wrote: btw, please take a look your L16 schematics link, what are you referring to exactly?
I am referring to sliceKIT schematics. If you click on the link which I have sent you, it will navigate to the sliceKIT page.
gilbertmlliu wrote: OK, focus on mode[4:2] = 011, tile1 from channel end 0 via tile0.
how to use the links to boot tile1 through channel end 0 via tile0?
do we require any pins connections?
This will be automatically routed by the tools. You don't need to specify explicitly for doing this.
gilbertmlliu wrote: any hardware requirements? i mean settings or configuration?
any code or library do i need in my project?
No, you don't need anything to use the L10 system. The only thing you need is to specify the platform configuration in the XN file which I already did for you.
gilbertmlliu wrote:any xflash command parameters i need to program my flash in order to boot up both tiles?
please kindly advice as details and specific as possible.
You don't need to have any parameters for xflash. Just use the command xflash <name_of-app>.xe for flashing the code on to the flash device.
gilbertmlliu wrote:On tile0, there are X0D0 to X0D43 and on tile1, there are X1D0 to X1D39.
So can tile0 uses pins X1D0 to X1D39, or vice versa tile1 uses pins X0D0 to X0D43?
No you cannot use the pins on tile0 and do some operations on Core running on tile1. This is logically impossible.
gilbertmlliu
Member
Posts: 10
Joined: Wed Jan 11, 2012 1:20 am

Post by gilbertmlliu »

when i went through the SliceKit page, i cannot locate the L16 schematic.
have you try the link on your own? why don't you attach the link that for the schematic?

If this is the case, I did every things and steps, but the board doesn't work after the xflash the data into the flash. any idea what may go wrong?
User avatar
sethu_jangala
XCore Expert
Posts: 589
Joined: Wed Feb 29, 2012 10:03 am

Post by sethu_jangala »

Can you share the schematic of your design if possible?
Sorry, the schematic of sliceKIT is available in the following link: https://www.xmos.com/en/published/slice ... ware-files
Post Reply