-
Notifications
You must be signed in to change notification settings - Fork 2
Release: v2.0 #1
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
Conversation
The following west manifest projects have changed revision in this Pull Request:
✅ All manifest checks OK Note: This message is automatically posted and updated by the Manifest GitHub Action. |
Highlights: - Added support for xc-dsc toolchain: CMake scripts, linker files - Arch bring-up for dsPIC (Curiosity board): thread creation, early boot, swap - CMake: Improved path detection, removed debug messages, static lib fixes - Interrupt vector table (IVT) initialization and macro definition - MISRA compliance fixes - Various bug fixes, stylistic cleanup, and compliance-related updates Changes: * cmake: Add xc-dsc toolchain support and linker script * arch: dspic: Rename isr_table_vt.ld to vector_table.ld * camke: Fix path detection for build dependencies * cmake: Resolve include path issues * cmake: Remove debug messages * arch: dspic: Add thread creation and init logic * arch: Resolve arch_swap implicit declaration warning * arch: Add vector tables and common ISR wrapper * cmake: Enable compiling assembly files * cmake: Fix static library linking * arch: Support IVT table placement and macros * cmake: Skip init priorities check for xc-dsc * toolchain: Remove stdlib usage (use picolibc instead) * arch: Remove use of unimplemented functions * arch: Early boot sequence implementation * arch: Task swap and main thread entry logic Signed-off-by: Udhayanandhan Jayakumar <[email protected]>
Add copyright and license headers to Kconfigs and other files Signed-off-by: Muhammed Zamroodh <[email protected]>
04ce5b4
to
5247a5b
Compare
The custom const sections are placed in FLASH and being copied from .dinit to Flash again, We can avoid that by placing the section in RAM to begin with Signed-off-by: Muhammed Zamroodh <[email protected]>
5247a5b
to
b62dbcc
Compare
string | ||
default "dspic" | ||
|
||
config NUM_IRQS |
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.
This can vary from SoC to SoC, in that case how do we handle this?
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.
IRQ shall only be part of SoC definitions
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.
Noted, will analyse the changes needed.
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.
This is Kconfig file and we can have different values for this in respective SOC definictions
#ifndef CONFIG_ARCH_HAS_CUSTOM_CPU_ATOMIC_IDLE | ||
void arch_cpu_atomic_idle(unsigned int key) | ||
{ | ||
(void)key; |
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.
shouldnt we use pwrsav instruction here?
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.
@harishagari
We will be adding the logic soon
Right now we just added the stubs
__start: | ||
;; Initialize stack pointer and limit | ||
mov.l #__SP_init, w15 ; Stack pointer (W15) | ||
mov.l #__SPLIM_init, w14 ; Stack limit (W14) |
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.
W14 is stack frame pointer , SPLIM is stack pointer limit register. Do we want to initialize w14 or SPLIM here?
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.
Here we needed to write back the value from w14 to SPLIM. This was a mistake, will take care with next changes.
uint32_t RCOUNT; /* repeat count register*/ | ||
uint32_t FSR; /* Floating point status register */ | ||
uint32_t FCR; /* Floating point control register*/ | ||
uint32_t W0; /* working register W0 */ |
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.
Copy-Paste Error: Register name in the comments
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.
Noted: Will be addressed with the next set of patches
config FLASH_BASE_ADDRESS | ||
default 0x00800000 | ||
|
||
config SRAM_SIZE |
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.
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.
This info will be soon moved to devicetree file, will be updating/correcting it there
* will be non-zero while sys_clock_announce() is executing and zero | ||
* otherwise. | ||
*/ | ||
#ifdef TO_BE_IMPLEMENTED_LATER |
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.
doesn't this placeholder macro effect other architectures?
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.
Yes, but was necessary as we dont have a lot of implementation logic completed.
We will see a lot of these removed in the coming milestone
",%c0" \ | ||
"\n\t.type\t" #name ",%%object" : : "n"(value)) | ||
|
||
#define GEN_ABSOLUTE_SYM_KCONFIG(name, value) \ |
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.
may be we can undo these changes(606-608)
@@ -0,0 +1,2977 @@ | |||
/* |
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.
Isn't this linker script specific to dsPIC33AK128MC106?
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.
Yes, but a lot of changes are being made to make this generic.
We had issues with linker and its syntax. In works to get it resolved, will finaly endup with the generic script and fragements specific to different chip if needed
"mov.l #0x8, w1\n\t" | ||
"add w0, w1, w1\n\t" | ||
"mov.l [w1], w2\n\t" | ||
"mov.l #0x28, w1\n\t" |
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.
can we have the constants defined for the #0x28, #0x8 etc which are used at multiple places?
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.
There is a method in build system to have symbols giving offsets to members of structure. We will be moving to that.
It was not used here as we need to do right changes for this toolchain to get that working.
Will be adding that in the coming milestones
@@ -1,3 +1,6 @@ | |||
# Copyright (c) 2025, Microchip Technology Inc. |
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.
The comma is not required in the copyright header.
It should be as follows:
# Copyright (c) 2025 Microchip Technology Inc.
# SPDX-License-Identifier: Apache-2.0
This can be updated everywhere
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.
Will start changing all files in coming commits. Please expect this in coming release
@@ -0,0 +1 @@ | |||
/*Nothing here */ |
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.
You can remove this file if not used, can be added later
@@ -0,0 +1,60 @@ | |||
/** |
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.
This file should be placed under 'dts/dspic/microchip'
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.
OK, but should we need this as microchip is the only vendor who will use this arch
Add support for NV12/NV21, NV16/NV61 and YUV420/YVU420 (semi)planar formats which can be output by the main #1 pipe. Signed-off-by: Alain Volmat <[email protected]>
Highlights:
Changes: