It my second project with the NS9360 and Net+OS. The different to the last project is that I use 16bit flash instead of 32bit together with an 32bit SDRAM. Everything is working fine with the debugger, but if I want to start the HW with the bootloader it isn’t starting. I have changed the HW boot strap options according to the 16 bit flash. Did I forgot some thing? What can I also check? Who know what the ROM bootloader exactly does (maybe flowchart)?
Thanks a lot!
Maybe check that your bootloader start location (ramAddress in blbootldr.dat) is high enough so that your application does not overwrite it as it is being decompressed. This gives the appearance that the bootloader isn’t working as it gets clobbered near the end of the decompression.
You have access to the boot loader code (including what’s executed in ROM) in /src/bsp/bootloader. Your debugger writes directly to RAM, so if ROM isn’t setup correctly or if your bootloader isn’t setup correctly you won’t boot up. You can also debug the ROM and RAM portions of the bootloader with the generated elf images.
Also, you may want to check out nccInit() in NCC_INIT.c, as it can be conditional as to which Chip selects are setup based on certain things (like if the debugger is attached, see customizeSetupCS0() as an example).
I know and the FLASH should be correct, because we can save the bootloader over the naftp application and it looks good if we check what is written into the FLASH.
During the startup we can see that the NS9360 tires to read from FLASH around 70 seconds and stops after that but nothing happens.
If we start the RAM part of the bootloader over the debugger it read correct the rest of the data out from the FLASH. Do you know if it is because we mix the data width (RAM 32bit, FLASH 16bit)?
We have also changed the HW strap options to 16bit.
Do you know what else we can try?
Thank you very much!
Which version of NET+OS are you running? I seem to recall in NET+OS 6.0/6.3 there was a problem with spiboothdr.exe where the CS_POWERLEVEL setting wasn’t getting setup correctly and was over writting the CS_MEM_SIZE register setting (i.e. what was suppossed to be set for bit 12 was being set for bit 9 in register 0xA0700100). It has to do with RAM, but maybe it’s relevant to the problem at hand…
I would recommend debugging with the romImage and see where it dies. That should (hopefully) give you an indication on where to start looking.