We are using K2G ICE target board, here we are also using the SBL provided by TI.
- Initially, SBL initializes the PLL and SDRAM.
- After that, using some JTAG debugger we are resetting the CPU only
- And then trying to write down some custom program into the SDRAM
- Finally trying to execute that custom program from the SDRAM
Our problem is, we cannot enable the VFP and NEON from that custom program. Basically, we have found some problems in enabling access for CP10 & CP11 using the CAPCR register.
We have found that if we set CPACR.CP10 and CPACR.CP11, then these bits are changed back to 0. From ARM CA15 TRM, we have found that,
So, this behavior suggests that this CHIP does not support NEON and VFP. Could you please confirm?
Or, we need to do some special mechanism so that we can enable NEON and VFP?
Please note we have tried several other experiments too,
- We have found that the following section of code for enabling VFP and NEON in the SBL code C:\ti\pdk_k2g_1_0_16\packages\ti\boot\sbl\soc\k2g\sbl_soc.c is getting compiled
=============================================
int32_t SBL_socInit()
{ Board_initCfg boardCfg; boardCfg = BOARD_INIT_PLL | BOARD_INIT_MODULE_CLOCK | BOARD_INIT_DDR | BOARD_INIT_PINMUX_CONFIG | BOARD_INIT_UART_STDIO; #ifndef SECURE_BOOT void (*monitorFunction) (void (*)(void), ...); /* A15 startup calls */ monitorFunction = (void (*)) 0x1000; (*monitorFunction)(SBL_setNSMode); (*monitorFunction)(SBL_a15EnableNeon); SBL_a15EnableVFP11co(); #endif
======================================
- This indicates, neon and VPF should already be enabled in the SBL code, and also access for CP10 & CP11 should be enabled.
- We powered on the board
- So, at this moment we can expect only ARM BOOT ROM code and SBL have executed. Also, the default "app" file is executed.
- We connected to the board using debugger, but not done CPU reset or anything. We have also not tried to load and run our special code. We just connected to view the content of the CP15 registers.
- Although we have expected to see CPACR.cp10 and CPACR.cp11 bits as set, but we found those bits are actually 0.
- i.e. the SBL's behavior is the same as our custom program which I have mentioned earlier.
- So we are suspecting either NEON and VFP are not supported or, there are some steps that we are missing to perform.
Could you please help us in enabling the NEON and VFP?
Please let me know if you need any other information.