8000 Merge pull request #9514 from tannewt/rp2350_usb_host · codetiger/circuitpython@2991c48 · GitHub
[go: up one dir, main page]

Skip to content

Commit 2991c48

Browse files
authored
Merge pull request adafruit#9514 from tannewt/rp2350_usb_host
Enable PIO USB Host on RP2350
2 parents 0184152 + 9838def commit 2991c48

File tree

10 files changed

+230
-163
lines changed
  • cytron_iriv_io_controller
  • cytron_motion_2350_pro
  • raspberry_pi_pico2
  • solderparty_rp2350_stamp
  • solderparty_rp2350_stamp_xl
  • tools
  • 10 files changed

    +230
    -163
    lines changed

    ports/raspberrypi/Makefile

    Lines changed: 177 additions & 150 deletions
    Original file line numberDiff line numberDiff line change
    @@ -124,6 +124,7 @@ INC += \
    124124
    -isystem sdk/src/rp2_common/pico_atomic/include/ \
    125125
    -isystem sdk/src/rp2_common/pico_bootrom/include/ \
    126126
    -isystem sdk/src/rp2_common/pico_double/include/ \
    127+
    -isystem sdk/src/rp2_common/pico_mem_ops/include/ \
    127128
    -isystem sdk/src/rp2_common/pico_multicore/include/ \
    128129
    -isystem sdk/src/rp2_common/pico_fix/rp2040_usb_device_enumeration/include/ \
    129130
    -isystem sdk/src/rp2_common/pico_stdio/include/ \
    @@ -217,6 +218,165 @@ endif
    217218

    218219
    LIBS += -lc
    219220

    221+
    PICO_WRAP_FLOAT_AEABI_FLAGS := \
    222+
    -Wl,--wrap=__aeabi_fadd \
    223+
    -Wl,--wrap=__aeabi_fdiv \
    224+
    -Wl,--wrap=__aeabi_fmul \
    225+
    -Wl,--wrap=__aeabi_frsub \
    226+
    -Wl,--wrap=__aeabi_fsub \
    227+
    -Wl,--wrap=__aeabi_cfcmpeq \
    228+
    -Wl,--wrap=__aeabi_cfrcmple \
    229+
    -Wl,--wrap=__aeabi_cfcmple \
    230+
    -Wl,--wrap=__aeabi_fcmpeq \
    231+
    -Wl,--wrap=__aeabi_fcmplt \
    232+
    -Wl,--wrap=__aeabi_fcmple \
    233+
    -Wl,--wrap=__aeabi_fcmpge \
    234+
    -Wl,--wrap=__aeabi_fcmpgt \
    235+
    -Wl,--wrap=__aeabi_fcmpun \
    236+
    -Wl,--wrap=__aeabi_i2f \
    237+
    -Wl,--wrap=__aeabi_l2f \
    238+
    -Wl,--wrap=__aeabi_ui2f \
    239+
    -Wl,--wrap=__aeabi_ul2f \
    240+
    -Wl,--wrap=__aeabi_f2iz \
    241+
    -Wl,--wrap=__aeabi_f2lz \
    242+
    -Wl,--wrap=__aeabi_f2uiz \
    243+
    -Wl,--wrap=__aeabi_f2ulz \
    244+
    -Wl,--wrap=__aeabi_f2d \
    245+
    -Wl,--wrap=sqrtf
    246+
    247+
    PICO_WRAP_FLOAT_SCI_FLAGS := \
    248+
    -Wl,--wrap=cosf \
    249+
    -Wl,--wrap=sinf \
    250+
    -Wl,--wrap=tanf \
    251+
    -Wl,--wrap=atan2f \
    252+
    -Wl,--wrap=expf \
    253+
    -Wl,--wrap=logf \
    254+
    -Wl,--wrap=ldexpf \
    255+
    -Wl,--wrap=copysignf \
    256+
    -Wl,--wrap=truncf \
    257+
    -Wl,--wrap=floorf \
    258+
    -Wl,--wrap=ceilf \
    259+
    -Wl,--wrap=roundf \
    260+
    -Wl,--wrap=sincosf \
    261+
    -Wl,--wrap=asinf \
    262+
    -Wl,--wrap=acosf \
    263+
    -Wl,--wrap=atanf \
    264+
    -Wl,--wrap=sinhf \
    265+
    -Wl,--wrap=coshf \
    266+
    -Wl,--wrap=tanhf \
    267+
    -Wl,--wrap=asinhf \
    268+
    -Wl,--wrap=acoshf \
    269+
    -Wl,--wrap=atanhf \
    270+
    -Wl,--wrap=exp2f \
    271+
    -Wl,--wrap=log2f \
    272+
    -Wl,--wrap=exp10f \
    273+
    -Wl,--wrap=log10f \
    274+
    -Wl,--wrap=powf \
    275+
    -Wl,--wrap=powintf \
    276+
    -Wl,--wrap=hypotf \
    277+
    -Wl,--wrap=cbrtf \
    278+
    -Wl,--wrap=fmodf \
    279+
    -Wl,--wrap=dremf \
    280+
    -Wl,--wrap=remainderf \
    281+
    -Wl,--wrap=remquof \
    282+
    -Wl,--wrap=expm1f \
    283+
    -Wl,--wrap=log1pf \
    284+
    -Wl,--wrap=fmaf
    285+
    286+
    PICO_WRAP_DOUBLE_FLAGS := \
    287+
    -Wl,--wrap=__aeabi_dadd \
    288+
    -Wl,--wrap=__aeabi_ddiv \
    289+
    -Wl,--wrap=__aeabi_dmul \
    290+
    -Wl,--wrap=__aeabi_drsub \
    291+
    -Wl,--wrap=__aeabi_dsub \
    292+
    -Wl,--wrap=__aeabi_cdcmpeq \
    293+
    -Wl,--wrap=__aeabi_cdrcmple \
    294+
    -Wl,--wrap=__aeabi_cdcmple \
    295+
    -Wl,--wrap=__aeabi_dcmpeq \
    296+
    -Wl,--wrap=__aeabi_dcmplt \
    297+
    -Wl,--wrap=__aeabi_dcmple \
    298+
    -Wl,--wrap=__aeabi_dcmpge \
    299+
    -Wl,--wrap=__aeabi_dcmpgt \
    300+
    -Wl,--wrap=__aeabi_dcmpun \
    301+
    -Wl,--wrap=__aeabi_i2d \
    302+
    -Wl,--wrap=__aeabi_l2d \
    303+
    -Wl,--wrap=__aeabi_ui2d \
    304+
    -Wl,--wrap=__aeabi_ul2d \
    305+
    -Wl,--wrap=__aeabi_d2iz \
    306+
    -Wl,--wrap=__aeabi_d2lz \
    307+
    -Wl,--wrap=__aeabi_d2uiz \
    308+
    -Wl,--wrap=__aeabi_d2ulz \
    309+
    -Wl,--wrap=__aeabi_d2f \
    310+
    -Wl,--wrap=sqrt \
    311+
    -Wl,--wrap=cos \
    312+
    -Wl,--wrap=sin \
    313+
    -Wl,--wrap=tan \
    314+
    -Wl,--wrap=atan2 \
    315+
    -Wl,--wrap=exp \
    316+
    -Wl,--wrap=log \
    317+
    -Wl,--wrap=ldexp \
    318+
    -Wl,--wrap=copysign \
    319+
    -Wl,--wrap=trunc \
    320+
    -Wl,--wrap=floor \
    321+
    -Wl,--wrap=ceil \
    322+
    -Wl,--wrap=round \
    323+
    -Wl,--wrap=sincos \
    324+
    -Wl,--wrap=asin \
    325+
    -Wl,--wrap=acos \
    326+
    -Wl,--wrap=atan \
    327+
    -Wl,--wrap=sinh \
    328+
    -Wl,--wrap=cosh \
    329+
    -Wl,--wrap=tanh \
    330+
    -Wl,--wrap=asinh \
    331+
    -Wl,--wrap=acosh \
    332+
    -Wl,--wrap=atanh \
    333+
    -Wl,--wrap=exp2 \
    334+
    -Wl,--wrap=log2 \
    335+
    -Wl,--wrap=exp10 \
    336+
    -Wl,--wrap=log10 \
    337+
    -Wl,--wrap=pow \
    338+
    -Wl,--wrap=powint \
    339+
    -Wl,--wrap=hypot \
    340+
    -Wl,--wrap=cbrt \
    341+
    -Wl,--wrap=fmod \
    342+
    -Wl,--wrap=drem \
    343+
    -Wl,--wrap=remainder \
    344+
    -Wl,--wrap=remquo \
    345+
    -Wl,--wrap=expm1 \
    346+
    -Wl,--wrap=log1p \
    347+
    -Wl,--wrap=fma
    348+
    349+
    PICO_WRAP_MEM_OPS_FLAGS := \
    350+
    -Wl,--wrap=memcpy \
    351+
    -Wl,--wrap=memset \
    352+
    -Wl,--wrap=__aeabi_memcpy \
    353+
    -Wl,--wrap=__aeabi_memset \
    354+
    -Wl,--wrap=__aeabi_memcpy4 \
    355+
    -Wl,--wrap=__aeabi_memset4 \
    356+
    -Wl,--wrap=__aeabi_memcpy8 \
    357+
    -Wl,--wrap=__aeabi_memset8
    358+
    359+
    # Wrap a bunch of math stuff to use the Pico SDK divider
    360+
    OTHER_PICO_FLAGS := \
    361+
    -Wl,--wrap=__aeabi_ldiv0 \
    362+
    -Wl,--wrap=__aeabi_idiv0 \
    363+
    -Wl,--wrap=__aeabi_lmul \
    364+
    -Wl,--wrap=__clzsi2 \
    365+
    -Wl,--wrap=__clzdi2 \
    366+
    -Wl,--wrap=__ctzsi2 \
    367+
    -Wl,--wrap=__ctzdi2 \
    368+
    -Wl,--wrap=__popcountsi2 \
    369+
    -Wl,--wrap=__popcountdi2 \
    370+
    -Wl,--wrap=__clz \
    371+
    -Wl,--wrap=__clzl \
    372+
    -Wl,--wrap=__clzll \
    373+
    -Wl,--wrap=__aeabi_idiv \
    374+
    -Wl,--wrap=__aeabi_idivmod \
    375+
    -Wl,--wrap=__aeabi_ldivmod \
    376+
    -Wl,--wrap=__aeabi_uidiv \
    377+
    -Wl,--wrap=__aeabi_uidivmod \
    378+
    -Wl,--wrap=__aeabi_uldivmod
    379+
    220380
    ifeq ($(CHIP_VARIANT),RP2040)
    221381
    CFLAGS += \
    222382
    -march=armv6-m \
    @@ -233,7 +393,7 @@ SRC_SDK_CHIP_VARIANT := \
    233393
    src/rp2_common/hardware_rtc/rtc.c \
    234394
    src/rp2_common/pico_double/double_init_rom_rp2040.c \
    235395
    src/rp2_common/pico_float/float_init_rom_rp2040.c \
    236-
    src/rp2_common/pico_float/float_math.c \
    396+
    src/rp2_common/pico_mem_ops/mem_ops.c \
    237397

    238398
    SRC_S_UPPER_CHIP_VARIANT := \
    239399
    sdk/src/rp2_common/hardware_divider/divider.S \
    @@ -243,155 +403,12 @@ SRC_S_UPPER_CHIP_VARIANT := \
    243403
    sdk/src/rp2_common/pico_float/float_aeabi_rp2040.S \
    244404
    sdk/src/rp2_common/pico_mem_ops/mem_ops_aeabi.S \
    245405

    246-
    # Wrap a bunch of math stuff to use the Pico SDK divider
    247-
    PICO_LDFLAGS += -Wl,--wrap=__aeabi_ldiv0 \
    248-
    -Wl,--wrap=__aeabi_idiv0 \
    249-
    -Wl,--wrap=__aeabi_lmul \
    250-
    -Wl,--wrap=__clzsi2 \
    251-
    -Wl,--wrap=__clzdi2 \
    252-
    -Wl,--wrap=__ctzsi2 \
    253-
    -Wl,--wrap=__ctzdi2 \
    254-
    -Wl,--wrap=__popcountsi2 \
    255-
    -Wl,--wrap=__popcountdi2 \
    256-
    -Wl,--wrap=__clz \
    257-
    -Wl,--wrap=__clzl \
    258-
    -Wl,--wrap=__clzll \
    259-
    -Wl,--wrap=__aeabi_idiv \
    260-
    -Wl,--wrap=__aeabi_idivmod \
    261-
    -Wl,--wrap=__aeabi_ldivmod \
    262-
    -Wl,--wrap=__aeabi_uidiv \
    263-
    -Wl,--wrap=__aeabi_uidivmod \
    264-
    -Wl,--wrap=__aeabi_uldivmod \
    265-
    -Wl,--wrap=__aeabi_dadd \
    266-
    -Wl,--wrap=__aeabi_ddiv \
    267-
    -Wl,--wrap=__aeabi_dmul \
    268-
    -Wl,--wrap=__aeabi_drsub \
    269-
    -Wl,--wrap=__aeabi_dsub \
    270-
    -Wl,--wrap=__aeabi_cdcmpeq \
    271-
    -Wl,--wrap=__aeabi_cdrcmple \
    272-
    -Wl,--wrap=__aeabi_cdcmple \
    273-
    -Wl,--wrap=__aeabi_dcmpeq \
    274-
    -Wl,--wrap=__aeabi_dcmplt \
    275-
    -Wl,--wrap=__aeabi_dcmple \
    276-
    -Wl,--wrap=__aeabi_dcmpge \
    277-
    -Wl,--wrap=__aeabi_dcmpgt \
    278-
    -Wl,--wrap=__aeabi_dcmpun \
    279-
    -Wl,--wrap=__aeabi_i2d \
    280-
    -Wl,--wrap=__aeabi_l2d \
    281-
    -Wl,--wrap=__aeabi_ui2d \
    282-
    -Wl,--wrap=__aeabi_ul2d \
    283-
    -Wl,--wrap=__aeabi_d2iz \
    284-
    -Wl,--wrap=__aeabi_d2lz \
    285-
    -Wl,--wrap=__aeabi_d2uiz \
    286-
    -Wl,--wrap=__aeabi_d2ulz \
    287-
    -Wl,--wrap=__aeabi_d2f \
    288-
    -Wl,--wrap=sqrt \
    289-
    -Wl,--wrap=cos \
    290-
    -Wl,--wrap=sin \
    291-
    -Wl,--wrap=tan \
    292-
    -Wl,--wrap=atan2 \
    293-
    -Wl,--wrap=exp \
    294-
    -Wl,--wrap=log \
    295-
    -Wl,--wrap=ldexp \
    296-
    -Wl,--wrap=copysign \
    297-
    -Wl,--wrap=trunc \
    298-
    -Wl,--wrap=floor \
    299-
    -Wl,--wrap=ceil \
    300-
    -Wl,--wrap=round \
    301-
    -Wl,--wrap=sincos \
    302-
    -Wl,--wrap=asin \
    303-
    -Wl,--wrap=acos \
    304-
    -Wl,--wrap=atan \
    305-
    -Wl,--wrap=sinh \
    306-
    -Wl,--wrap=cosh \
    307-
    -Wl,--wrap=tanh \
    308-
    -Wl,--wrap=asinh \
    309-
    -Wl,--wrap=acosh \
    310-
    -Wl,--wrap=atanh \
    311-
    -Wl,--wrap=exp2 \
    312-
    -Wl,--wrap=log2 \
    313-
    -Wl,--wrap=exp10 \
    314-
    -Wl,--wrap=log10 \
    315-
    -Wl,--wrap=pow \
    316-
    -Wl,--wrap=powint \
    317-
    -Wl,--wrap=hypot \
    318-
    -Wl,--wrap=cbrt \
    319-
    -Wl,--wrap=fmod \
    320-
    -Wl,--wrap=drem \
    321-
    -Wl,--wrap=remainder \
    322-
    -Wl,--wrap=remquo \
    323-
    -Wl,--wrap=expm1 \
    324-
    -Wl,--wrap=log1p \
    325-
    -Wl,--wrap=fma \
    326-
    -Wl,--wrap=__aeabi_fadd \
    327-
    -Wl,--wrap=__aeabi_fdiv \
    328-
    -Wl,--wrap=__aeabi_fmul \
    329-
    -Wl,--wrap=__aeabi_frsub \
    330-
    -Wl,--wrap=__aeabi_fsub \
    331-
    -Wl,--wrap=__aeabi_cfcmpeq \
    332-
    -Wl,--wrap=__aeabi_cfrcmple \
    333-
    -Wl,--wrap=__aeabi_cfcmple \
    334-
    -Wl,--wrap=__aeabi_fcmpeq \
    335-
    -Wl,--wrap=__aeabi_fcmplt \
    336-
    -Wl,--wrap=__aeabi_fcmple \
    337-
    -Wl,--wrap=__aeabi_fcmpge \
    338-
    -Wl,--wrap=__aeabi_fcmpgt \
    339-
    -Wl,--wrap=__aeabi_fcmpun \
    340-
    -Wl,--wrap=__aeabi_i2f \
    341-
    -Wl,--wrap=__aeabi_l2f \
    342-
    -Wl,--wrap=__aeabi_ui2f \
    343-
    -Wl,--wrap=__aeabi_ul2f \
    344-
    -Wl,--wrap=__aeabi_f2iz \
    345-
    -Wl,--wrap=__aeabi_f2lz \
    346-
    -Wl,--wrap=__aeabi_f2uiz \
    347-
    -Wl,--wrap=__aeabi_f2ulz \
    348-
    -Wl,--wrap=__aeabi_f2d \
    349-
    -Wl,--wrap=sqrtf \
    350-
    -Wl,--wrap=cosf \
    351-
    -Wl,--wrap=sinf \
    352-
    -Wl,--wrap=tanf \
    353-
    -Wl,--wrap=atan2f \
    354-
    -Wl,--wrap=expf \
    355-
    -Wl,--wrap=logf \
    356-
    -Wl,--wrap=ldexpf \
    357-
    -Wl,--wrap=copysignf \
    358-
    -Wl,--wrap=truncf \
    359-
    -Wl,--wrap=floorf \
    360-
    -Wl,--wrap=ceilf \
    361-
    -Wl,--wrap=roundf \
    362-
    -Wl,--wrap=sincosf \
    363-
    -Wl,--wrap=asinf \
    364-
    -Wl,--wrap=acosf \
    365-
    -Wl,--wrap=atanf \
    366-
    -Wl,--wrap=sinhf \
    367-
    -Wl,--wrap=coshf \
    368-
    -Wl,--wrap=tanhf \
    369-
    -Wl,--wrap=asinhf \
    370-
    -Wl,--wrap=acoshf \
    371-
    -Wl,--wrap=atanhf \
    372-
    -Wl,--wrap=exp2f \
    373-
    -Wl,--wrap=log2f \
    374-
    -Wl,--wrap=exp10f \
    375-
    -Wl,--wrap=log10f \
    376-
    -Wl,--wrap=powf \
    377-
    -Wl,--wrap=powintf \
    378-
    -Wl,--wrap=hypotf \
    379-
    -Wl,--wrap=cbrtf \
    380-
    -Wl,--wrap=fmodf \
    381-
    -Wl,--wrap=dremf \
    382-
    -Wl,--wrap=remainderf \
    383-
    -Wl,--wrap=remquof \
    384-
    -Wl,--wrap=expm1f \
    385-
    -Wl,--wrap=log1pf \
    386-
    -Wl,--wrap=fmaf \
    387-
    -Wl,--wrap=memcpy \
    388-
    -Wl,--wrap=memset \
    389-
    -Wl,--wrap=__aeabi_memcpy \
    390-
    -Wl,--wrap=__aeabi_memset \
    391-
    -Wl,--wrap=__aeabi_memcpy4 \
    392-
    -Wl,--wrap=__aeabi_memset4 \
    393-
    -Wl,--wrap=__aeabi_memcpy8 \
    394-
    -Wl,--wrap=__aeabi_memset8
    406+
    PICO_LDFLAGS += \
    407+
    $(PICO_WRAP_FLOAT_AEABI_FLAGS) \
    408+
    $(PICO_WRAP_FLOAT_SCI_FLAGS) \
    409+
    $(PICO_WRAP_DOUBLE_FLAGS) \
    410+
    $(PICO_WRAP_MEM_OPS_FLAGS) \
    411+
    $(OTHER_PICO_FLAGS)
    395412

    396413
    UF2_ID = 0xE48BFF56
    397414

    @@ -418,6 +435,15 @@ CFLAGS += -DPICO_RP2350=1
    418435
    SRC_SDK_CHIP_VARIANT := \
    419436
    src/rp2_common/hardware_powman/powman.c \
    420437

    438+
    SRC_S_UPPER_CHIP_VARIANT := \
    439+
    sdk/src/rp2_common/pico_double/double_conv_m33.S \
    440+
    sdk/src/rp2_common/pico_double/double_fma_dcp.S \
    441+
    sdk/src/rp2_common/pico_double/double_sci_m33.S \
    442+
    sdk/src/rp2_common/pico_float/float_sci_m33_vfp.S \
    443+
    sdk/src/rp2_common/pico_float/float_conv_m33.S \
    444+
    445+
    PICO_LDFLAGS += $(PICO_WRAP_FLOAT_SCI_FLAGS) $(PICO_WRAP_DOUBLE_FLAGS)
    446+
    421447
    ifeq ($(CHIP_PACKAGE),A)
    422448
    CFLAGS += -DPICO_RP2350A=1
    423449
    CFLAGS += -DPICO_RP2350B=0
    @@ -464,6 +490,7 @@ SRC_SDK := \
    464490
    src/rp2_common/pico_bootsel_via_double_reset/pico_bootsel_via_double_reset.c \
    465491
    src/rp2_common/pico_clib_interface/newlib_interface.c \
    466492
    src/rp2_common/pico_fix/rp2040_usb_device_enumeration/rp2040_usb_device_enumeration.c \
    493+
    src/rp2_common/pico_float/float_math.c \
    467494
    src/rp2_common/pico_multicore/multicore.c \
    468495
    src/rp2_common/pico_platform_panic/panic.c \
    469496
    src/rp2_common/pico_printf/printf.c \

    ports/raspberrypi/boards/adafruit_feather_rp2350/mpconfigboard.mk

    Lines changed: 0 additions & 1 deletion
    Original file line numberDiff line numberDiff line change
    @@ -11,7 +11,6 @@ EXTERNAL_FLASH_DEVICES = "GD25Q64C,W25Q64JVxQ"
    1111

    1212
    CIRCUITPY_ALARM = 0
    1313
    CIRCUITPY_RGBMATRIX = 0
    14-
    CIRCUITPY_USB_HOST = 0
    1514

    1615
    CIRCUITPY_FLOPPYIO = 0
    1716
    CIRCUITPY_PICODVI = 1

    ports/raspberrypi/boards/adafruit_metro_rp2350/mpconfigboard.mk

    Lines changed: 0 additions & 1 deletion
    Original file line numberDiff line numberDiff line change
    @@ -11,4 +11,3 @@ EXTERNAL_FLASH_DEVICES = "W25Q128JVxQ"
    1111

    1212
    CIRCUITPY_ALARM = 0
    1313
    CIRCUITPY_RGBMATRIX = 0
    14-
    CIRCUITPY_USB_HOST = 0

    ports/raspberrypi/boards/cytron_iriv_io_controller/mpconfigboard.mk

    Lines changed: 0 additions & 1 deletion
    Original file line numberDiff line numberDiff line change
    @@ -12,7 +12,6 @@ EXTERNAL_FLASH_DEVICES = "W25Q16JVxQ"
    1212
    CIRCUITPY__EVE = 1
    1313
    CIRCUITPY_ALARM = 0
    1414
    CIRCUITPY_RGBMATRIX = 0
    15-
    CIRCUITPY_USB_HOST = 0
    1615

    1716
    # Include these Python libraries in firmware.
    1817
    FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_SimpleIO

    ports/raspberrypi/boards/cytron_motion_2350_pro/mpconfigboard.mk

    Lines changed: 0 additions & 1 deletion
    Original file line numberDiff line numberDiff line change
    @@ -12,7 +12,6 @@ EXTERNAL_FLASH_DEVICES = "W25Q16JVxQ"
    1212
    CIRCUITPY__EVE = 1
    1313
    CIRCUITPY_ALARM = 0
    1414
    CIRCUITPY_RGBMATRIX = 0
    15-
    CIRCUITPY_USB_HOST = 0
    1615

    1716
    # Include these Python libraries in firmware.
    1817
    FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel

    0 commit comments

    Comments
     (0)
    0