-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
arch/arm64: Modify built options #275
Conversation
Add release notes for 12.4.0 release Signed-off-by: Alin Jerpelea <[email protected]>
- boots from eNVM - uses lim memory for RAM - has console on uart 0 - has procfs enabled - has most of nsh commands enabled Signed-off-by: Jukka Laitinen <[email protected]>
- Change git repository urls to point to our tiiuae repos for nuttx & nuttx apps - Remove most of the the build steps, leave just arm-12 and riscv; arm-12 has a build for stm32f7, and riscv for mpfs Signed-off-by: Jukka Laitinen <[email protected]>
…ptimized version in tiiuae repo Signed-off-by: Jukka Laitinen <[email protected]>
…iver to re-initialize on rx timeout If the interface is UP, and no packets are received in 30s, re-initialize the interface by calling the already implemented mpfs_txtimeout_expiry. This is a temporary workaround for a bug where IF might be UP and working but packets can only be transmitted. Receive side just doesn't work at all. The original bug can be re-produced easily by disconnecting and reconnecting the ethernet cable while the IF is up. Signed-off-by: Jukka Laitinen <[email protected]>
SD-card clock speed is just forced to 50MHz. Note that to be correct, one should first set the SD-card into high-speed mode, but currently NuttX doesn't support this. With our cards, just setting the interface to 50MHz seems to work fine, and it removes the issue with 25MHZ clock causing disturbance on GPS bands. Typically cards which support high-speed mode just work with 50MHz interface clock. This patch should be reverted when the NuttX supports high-speed mode, and we can properly set it. Signed-off-by: Jukka Laitinen <[email protected]>
Signed-off-by: Jukka Laitinen <[email protected]>
…ootloader This removes the need to have all the DDR/clock configuration related "LIBERODEFS" flags defined, when not building a standalone/coldboot configuration All of this code is unused when not building with CONFIG_MPFS_BOOTLOADER Signed-off-by: Jukka Laitinen <[email protected]>
This is not the correct way to do this, but it gives a nice perf. boost
Disable macOS builds for now.
All other commands are disabled in send_recv(). Signed-off-by: Jani Paalijarvi <[email protected]>
…ef and forward declare devif_loopback Signed-off-by: Jukka Laitinen <[email protected]>
Signed-off-by: Jukka Laitinen <[email protected]>
… that takes care of the need for loopback
Enable LINUX_ON_HART4 in rpmsg-ch2 defconfig of ICICLE board. Remove LINUX_ON_HART4 config from rpmsg-ch1 defconfig of ICICLE board.
Fix build warning when CONFIG_STM32F7_AUTONEG is not set Signed-off-by: Jukka Laitinen <[email protected]>
…ved IO area in protected build Signed-off-by: Jukka Laitinen <[email protected]>
Signed-off-by: Jukka Laitinen <[email protected]>
Signed-off-by: Jukka Laitinen <[email protected]>
Just a temporary patch, need to implement some kind of scalable solution for this. It might be a good idea to map something else for the user to avoid using ecall to enter the kernel for simple reads ? Also, increase the L3 table size
There is no make step executed for this directory before the Kconfigure, so all Kconfig's just need to be in-tree Signed-off-by: Jukka Laitinen <[email protected]>
Signed-off-by: Jukka Laitinen <[email protected]>
sendfifo() function need enable BWR_IE before checking if BWE is enabled to avoid BWE to be activated between the BWE check and BWR interrupt enabling, which causes the interrupt to be missed and Data Timeout error.
Return from exception is common code for both system calls and exceptions
Also, convert the type to union; we don't need the list element once the item has been popped from the free list (the linkage is never needed when the item is in use).
This patch changes how user service calls are executed: Instead of using the common interrupt logic, execute the user service call directly. Why? When a user makes a service call request, all of the service call parameters are already loaded into the correct registers, thus it makes no sense to first clobber them and then reload them, which is what the old logic does. It is much more effective to run the system call directly. During a user system call the interrupts must be re-enabled, which the new logic does as soon as we know the exception is a user service call request. This patch does NOT change the behavior of reserved system calls (like switch_context), only the user service call request is affected.
Check return value of mpfs_board_pmp_setup() and jump to mpfs_board_pmp_error() in case of error. Signed-off-by: Jani Paalijarvi <[email protected]>
Signed-off-by: Jani Paalijarvi <[email protected]>
Signed-off-by: Jouni Ukkonen <[email protected]>
Signed-off-by: Jouni Ukkonen <[email protected]>
Signed-off-by: Jouni Ukkonen <[email protected]>
Signed-off-by: Jouni Ukkonen <[email protected]>
…face This is an initial FlexSPI SPI NOR MTD driver for IMX9 This supprts M25P SPI NOR on FlexSPI for now, and can later be extended to other SPINOR devices if needed. The following configurations are needed to use this driver: CONFIG_IMX9_FLEXSPI_NOR=y CONFIG_MTD_M25P=y In addition, board initialization logic needs to call the imx9_flexspi_nor_initialize to receive a pointer to the mtd device. Signed-off-by: Jukka Laitinen <[email protected]> Co-authored-by: Jouni Ukkonen <[email protected]>
…ivisor calculation In the algorithm there is a subtraction (int - unsigned), which results (potentially overflowed) unsigned. Passing this to macro ABS and the assigning to int doesn't work ( unsigned is always >= 0 ). Fix this by replacing (dangerous) ABS macro with stdlib's standard "int abs(int)" and change the substraction to (int - int). Signed-off-by: Jukka Laitinen <[email protected]>
This adds enablers for setting various clocks to some default values. Also, this provides helpers to grant nonsecure access to a number of clocks. Bootloader may utilize these to make the system boot in a deterministic manner. Signed-off-by: Eero Nurkkala <[email protected]>
This does the following: 1. Fetches mkimage_imx8 (same used with imx9) source code 2. Fetches the ELE / AHAB binary 3. Extracts the ELE / AHAB binary 4. Compiles the mkimage with hostcc 5. Utilizes the mkimage tool to create a bootable SD image, combining the ELE / AHAB image with the NuttX bootloader 6. dd is used to prepend empty space in place of BL31 7. Outputs sdimage.img which is a bootable binary 8. Removes all binaries, sources code images that have been downloaded Signed-off-by: Eero Nurkkala <[email protected]>
fetch fspi header and fcb generation script, using mkimage generate nor bootable image. Signed-off-by: Jouni Ukkonen <[email protected]>
Signed-off-by: Jouni Ukkonen <[email protected]>
Set sh_addr for regions that are not allocated. Some relocations might depend on this. The fault in my case occurs when setting CONFIG_HAVE_CXX=y. In this case, the .ctor and .dtor sections do not get allocated, but the crt code depends on linker defined symbols _sctors/_ectors etc. These generate PC relative relocations and thus, the .ctor and .dtor output sections need an output VMA even though nothing is there. Otherwise the relocations will point to god knows where (in my case to address 0). The problem results in full system crash later: elf_symvalue: Other: 00000000+00000001=00000001 up_relocateadd: PCREL_HI20 at c00002dc [00000417] to sym=0x80409e80 st_value=1 _calc_imm: offset=-3221226203: hi=-786432 lo=-731 up_relocateadd: ERROR: PCREL_HI20 at c00002dc bad:ffffffff40000000 elf_relocateadd: ERROR: Section 2 reloc 52: Relocation failed: -22 The RISC-V elf64 linker does not like the uninitialized PC relative relocation entries, as the relocation offset cannot be reached with with the RV64 instruction set. More about this issue can be found here: apache#11322
New configuration IMX9_HAVE_ATF_FIRMWARE introduced, it is default on and it selects ARCH_HAVE_PSCI, when compiling bootloader or when using bootloader that does not have atf this shall be disabled Signed-off-by: Jouni Ukkonen <[email protected]>
Debug print and variable declaration fixed Signed-off-by: Jouni Ukkonen <[email protected]>
Signed-off-by: Jukka Laitinen <[email protected]>
Configure ENET clock to 125MHz in clock init Signed-off-by: Jouni Ukkonen <[email protected]>
…k control Signed-off-by: Jukka Laitinen <[email protected]>
TX clock or ref clock can be driven either from outside (PHY / oscilator) or by the ENET block. Typical connection with RMII PHY is that the PHY drives the refclk. Signed-off-by: Jukka Laitinen <[email protected]>
Signed-off-by: Jukka Laitinen <[email protected]>
Add tune for A55 when building bootloader use strict align Signed-off-by: Jouni Ukkonen <[email protected]>
ifeq ($(CONFIG_ARCH_CORTEX_A53),y) | ||
ARCHCPUFLAGS += -mcpu=cortex-a53 | ||
else ifeq ($(CONFIG_ARCH_CORTEX_A55),y) | ||
ARCHCPUFLAGS += -mtune=cortex-a55 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why not -mcpu like the other cortex-a chips? Check out how this file looks like in upstream; I think this was managed somehow differently there
@@ -96,6 +100,10 @@ ifeq ($(CONFIG_ARCH_FPU),y) | |||
endif | |||
|
|||
ARCHCFLAGS += -fno-common | |||
|
|||
ifeq ($(CONFIG_IMX9_BOOTLOADER),y) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this would fit better into Make.defs either under arch/arm64/src/imx9 or under boards/.../ ? If board/chip specific options get added into Toolchain.defs, it will soon be quite full of those
Add tune for A55
when building bootloader use strict align
Summary
Without that flag seems that bootloader crashes randomly, this seems to provide workaround for now.
Impact
Testing