Skip to content
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

V2.0.0 #39

Merged
merged 52 commits into from Feb 18, 2024
Merged

V2.0.0 #39

merged 52 commits into from Feb 18, 2024

Conversation

jonasblixt
Copy link
Owner

No description provided.

Copy link

codecov bot commented Feb 18, 2024

Codecov Report

Attention: 6 lines in your changes are missing coverage. Please review.

Comparison is base (e38c689) 64.79% compared to head (64e9dcf) 64.75%.

❗ Current head 64e9dcf differs from pull request most recent head a0c0b11. Consider uploading reports for the commit a0c0b11 to get more accurate results

Files Patch % Lines
src/cm/cm_main.c 42.85% 4 Missing ⚠️
src/bio.c 0.00% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master      #39      +/-   ##
==========================================
- Coverage   64.79%   64.75%   -0.04%     
==========================================
  Files          58       58              
  Lines        2843     2846       +3     
==========================================
+ Hits         1842     1843       +1     
- Misses       1001     1003       +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

This is useful for other functions as well.
That lists all the USB attached Punchboot devices.
A device can be selected by setting the environment variable
PB_DEVICE_UUID.
So we don't end up with negative numbers.
Trig the tools CI flow on PR, push and workflow_dispatch.
And apply ruff fixes.
And update platform file with relevant defines.
We want to report the minimum erase block size as the block size for NOR
devices.

This is needed to make sure write's are aligned to an erase an erase
block.
If first_lba is not set, the static partition map driver will take the
next available lba as start for the next partition.
Erasing a whole partition (or device) might take significant amount of
time.

NOR devices are pretty slow so erasing a whole device must be done in
chunks otherwise the transport will timeout and/or WDT will trip.
With this change the erase function takes start lba and count arguments
and also selects the optimal erase command depending on how much we want
to erase.
This hardware block is generally known as "ChipIdea" USB.
On smaller systems the various 4k alignments are pretty expensive. With
this change the alignment is configured per arch and for armv7a, armv8a
it remains the same, 4k, since that is typpicale the page granualrity
for the mmu (and we want it to be 4k).

But for MCU's this is excessive and this commit adjusts the section
alignment to 8 bytes.
This is one step in the direction to removing the common
'platform_defs.h' define that each platform has.
A small helper to generate C defines for register bit fields.
This was reused for imx8x. And we'll change the one for imx6ul.
To match argument order of the 'write' command.
- Removes a lot of hardcoded values
- Add defines for clocks, fuesbox, pins and more
- Read the speed grade from fuses and correctly configure core freq
Add initial support for the imxrt1060evk. This is not complete.
Currently these things work:
- uSDHC eMMC driver
- NOR SPI driver
- UDC driver

It's possible to read/write partitions and interact with the bootloader
using the punchboot tool.

Some of the things that are missing:
- Fusebox configuration for secure boot
- HAB integration
- SLC / RoT
Configuration is now supplied through defines in platform makefiles.
Arch config is now supplied through plat/board level makefiles.
- Add the standard clock.h, pins.h and mm.h headers
- Drop platform_defs.h and board_defs.h(for jiffy board)
- Use defines for base addresses
- Select CPU core frequence based on speed grade fuse
This is not activly maintained
This is not activly maintained.
Some USB hardware can't accept configuring one endpoint at a time, namly
DWC3.

The api has changed so that the endpoint part of the USB descriptor is
passed to the 'set_configuration' API to allow for more flexibility.
The platform_defs headers from platforms have been retired. Relevant
parameters are instead passed to the compiler from the platform make
files.
If there is no partitions PB won't write anything so we should not try
to read an empty partition table.
Using the async hash API we can hash chunk's while the next is being
transferd from storage (On platforms that support the async API)
If the 'slc_read_status' fails we should exit early. The punchboot
tooling does not expect to get more than one result message.
This has been broken for a while. This commit also includes
- Various missing registers and bit defines
- Splits the core DWC3 stuff and the IMX8M PHY into two modules
This has moved to the various platform make files
This has been broken for a while. Now it boots again. Some highlights
beyond unborking the code:

- Way fewer hardcoded addresses and bits
- Pin/Pad mux defines
- Uses the new style include setup (clock/mm/pins etc)
- Build parameters like which dram firmware to use has been moved from
  Kconfig/plat to board level to allow for more flexibility

There is still work to do on this platform. There is so far not a
complete example for enabling secure boot.
Move these things to platform level makefile.
Add 'mm.h' to match the setup in the other platforms.
This is needed now since we've enabled garbage collection. With GC on
this would otherwise be stripped.
To match other platforms.
To pins.h where they belong.
Put these things in the board makefile instead to be consistend with
other boards and platforms.
cibuildwheel had issues with newer versions of power shell. Full
details: pypa/cibuildwheel#1740
@jonasblixt jonasblixt merged commit 00ed5d2 into master Feb 18, 2024
4 of 16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant