I have a project with QNX Neutrino 6.5 using BeagleBoard-xm, success!
Now we are trying to use a Gumstix Icestorm(store.gumstix.com/overo-icestorm-com.html), which has the same processor BeagleBoard-xm, but with more RAM memory and NAND flash.
But the image does not start.
Question:
Only change memory capacity RAM influences on startup?
The problem is having with MLO boot and U-Boot and IPL.
In case of change, what should I customize / modify / study in BSP?
A BSP is not dedicated to a processor. It is dedicated to a board.
Of course, the processor is of importance but the BSP also configures I/O multiplexors, PLL frequencies… in accordance to the board schematics.
The BSP also takes into account the boot process. If u-boot does some initialisation, the BSP does not have to do them. If you don’t use u-boot but an IPL, the BSP has to initialise more things (depending on the IPL).
Changing RAM capacity will prevent a system from booting. SDRAM is a complex system. SDRAM timings are critical. Changing memory organisation (capacity) is critical also.
a) What boot process do you use on BeagleBoard ? u-boot ? IPL ?
b) Same question with Icestorm ?
There’s no IPL in this BleagleBoard BSP. Which IPL have you tried ?
The BeagleBoard BSP is made to be run from u_boot. You have to use similar u-boot configuration and parameters (BSP load address, BSP run address…) on both boards.
The BSP is made to be loaded and run at fix addresses.
You have to modify the BSP to match the gumstyx board schematics.
First, go to \src\hardware\startup\boards\omap3730_beagle_xm and modify the following files to match new board requirements :
init_pinmux.c
init_beagle.c
init_raminfo.c
main.c
Be very careful when modifying these files. They are pre-OS initialisation code. They can make the target crash immediately or later when the OS is running.
But the way the address handling does not match OMAP3730.
The BeagleBoard BSP is made to be run from u_boot. You have to use similar u-boot configuration and parameters (BSP load address, BSP run address…) on both boards.
The BSP is made to be loaded and run at fix addresses.
You have to modify the BSP to match the gumstyx board schematics.
First, go to \src\hardware\startup\boards\omap3730_beagle_xm and modify the following files to match new board requirements :
init_pinmux.c
init_beagle.c
init_raminfo.c
main.c
Yes, I try to boot with the U Boot, I used omap_beagle_conf and omap_overo_conf as a basis to set the QNX BSP files.
The base address is the same 0x80000000, I’m checking related to memory, because the rest is almost equal, I lack the document part of Gumstix.
Using QNX project Beagleboarx-xm but changing add_ram() in init_raminfo.c to 1G it starts, but this wrong, because it has 512MB.
The QNX startup code is closely related to the way you boot the board.
The IPL is in charge of basic initialisation and system load (from non volatile memory to RAM).
The startup code, finishes initialisation and run procnto.
Typically, you use either IPL or u-boot.
u-boot often does more initialisation than IPL. So, startup code used with u-boot often does less things.
If you use a BSP which is made to run with IPL, I recommended not to use u-boot. The opposite is true also.
If you use IPL, you have to modify it for the new board. IPL is the most critical part of the boot process.
At first, I want to settle with the u-boot which is the shortest route, recognizing 512MB of RAM and starting the RTOS, to and will study the IPL think the most consistent.
After much research, I saw that those who cause this Shutdown [0,0] … is init_system_private () → init_system_private.h, this function performs other things, checking and got this one INIT_ENTRY (intrinfo);
Almost that!
I have in un BSP hands BeagleBoard-xm with a working IPL.
I am using a Gumstix Icestorm with OMAP3730 and I’m “trying” to adapt the IPL BeagleBoard-XM in BSP Gumstix.
For this, I see the source-code of Gumstix board the U-boot for the part of start.s.
Then edited the start.s and changed the Assembly for the U-boot makes Gumstix Overo OMAP3730.
Compiling the U-boot and booting him via microSD or NAND Flash works.
Maybe your problem is not in an assembly file.
For example, Freescale i.MX6 processors use a parameter table to initialise some chip registers before executing code. Some of these parameters are SDRAM configuration.
You might face the same kind of problems.