[PATCH v4 0/6] FUSB302 USB-C controller support

Soeren Moch smoch at web.de
Tue Sep 3 13:00:08 CEST 2024


Hi Sebastian,

On 31.08.24 15:36, Soeren Moch wrote:
[...]
> Unfortunately I see the same problem as in v3: boot loop when powering
> the board from my notebook (ThinkPad X1 Nano running Ubuntu 24.04.1 LTS),
> see boot log below.
>
> Patch version v2 is still running totally fine in the exact same setup
> (patch series on top of u-boot 2024.07, same board, same cabling).
>
> Unfortunately I currently have no access to the miniPC (Zotac ZBOX CI620)
> I used as additional test platform before.
>
> The boot log is unfortunately not very helpful. If you provide an
> additional
> patch enabling more debug output, I'm happy to retest with that (v2
> and/or v4).

Here additional debug messages for the not working case (LOG_DEBUG enabled):

U-Boot 2024.07-00006-g65a73892d9-dirty (Sep 03 2024 - 12:22:42 +0200)

Model: Radxa ROCK 5 Model B
DRAM:  8 GiB
fusb302 usb-typec at 22: set pd RX off
fusb302 usb-typec at 22: vconn is already off
fusb302 usb-typec at 22: TCPM: set polarity = 0
fusb302 usb-typec at 22: pd header : sink, device
fusb302 usb-typec at 22: TCPM: state change INVALID_STATE -> SNK_UNATTACHED
fusb302 usb-typec at 22: TCPM: Start toggling
fusb302 usb-typec at 22: TCPM: state change SNK_UNATTACHED -> TOGGLING
fusb302 usb-typec at 22: get cc1 = open, cc2 = open
fusb302 usb-typec at 22: TCPM: CC1: 0 -> 0, CC2: 0 -> 0 [state TOGGLING,
polarity 0, disconnected]
fusb302 usb-typec at 22: IRQ: 0x80, a: 0x00, b: 0x00, status0: 0x83
fusb302 usb-typec at 22: IRQ: VBUS_OK, vbus=On
fusb302 usb-typec at 22: IRQ: 0x01, a: 0x40, b: 0x00, status0: 0x82
fusb302 usb-typec at 22: IRQ: TOGDONE
fusb302 usb-typec at 22: get cc1 = rp-1.5, cc2 = open
fusb302 usb-typec at 22: TCPM: CC1: 0 -> 4, CC2: 0 -> 0 [state TOGGLING,
polarity 0, connected]
fusb302 usb-typec at 22: TCPM: state change TOGGLING -> SNK_ATTACH_WAIT
fusb302 usb-typec at 22: TCPM: pending state change SNK_ATTACH_WAIT ->
SNK_DEBOUNCED @ 200 ms [rev1]
fusb302 usb-typec at 22: detected cc1=rp-1.5, cc2=open
fusb302 usb-typec at 22: IRQ: 0x51, a: 0x00, b: 0x00, status0: 0x92
fusb302 usb-typec at 22: IRQ: BC_LVL, handler pending
fusb302 usb-typec at 22: BC_LVL handler, status0 = 0x92
fusb302 usb-typec at 22: IRQ: 0x51, a: 0x00, b: 0x00, status0: 0x92
fusb302 usb-typec at 22: IRQ: BC_LVL, handler pending
fusb302 usb-typec at 22: BC_LVL handler, status0 = 0x92
fusb302 usb-typec at 22: IRQ: 0x51, a: 0x00, b: 0x00, status0: 0xc2
fusb302 usb-typec at 22: IRQ: BC_LVL, handler pending
fusb302 usb-typec at 22: BC_LVL handler, status0 = 0xd1
fusb302 usb-typec at 22: cc1: rp-1.5 -> rp-def
fusb302 usb-typec at 22: get cc1 = rp-def, cc2 = open
fusb302 usb-typec at 22: TCPM: CC1: 4 -> 3, CC2: 0 -> 0 [state
SNK_ATTACH_WAIT, polarity 0, connected]
fusb302 usb-typec at 22: IRQ: 0x51, a: 0x00, b: 0x00, status0: 0x92
fusb302 usb-typec at 22: IRQ: BC_LVL, handler pending
fusb302 usb-typec at 22: BC_LVL handler, status0 = 0x92
fusb302 usb-typec at 22: cc1: rp-def -> rp-1.5
fusb302 usb-typec at 22: get cc1 = rp-1.5, cc2 = open
fusb302 usb-typec at 22: TCPM: CC1: 3 -> 4, CC2: 0 -> 0 [state
SNK_ATTACH_WAIT, polarity 0, connected]
fusb302 usb-typec at 22: TCPM: state change SNK_ATTACH_WAIT ->
SNK_DEBOUNCED [delayed 200 ms]
fusb302 usb-typec at 22: TCPM: state change SNK_DEBOUNCED -> SNK_ATTACHED
fusb302 usb-typec at 22: TCPM: set polarity = 0
fusb302 usb-typec at 22: pd header : sink, device
fusb302 usb-typec at 22: TCPM: state change SNK_ATTACHED -> SNK_STARTUP
fusb302 usb-typec at 22: TCPM: state change SNK_STARTUP -> SNK_DISCOVERY
fusb302 usb-typec at 22: TCPM: set vbus = 0 charge = 1
fusb302 usb-typec at 22: TCPM: state change SNK_DISCOVERY ->
SNK_WAIT_CAPABILITIES
fusb302 usb-typec at 22: set pd RX on
fusb302 usb-typec at 22: TCPM: pending state change SNK_WAIT_CAPABILITIES
-> SOFT_RESET_SEND @ 310 ms [rev3]
fusb302 usb-typec at 22: IRQ: 0x51, a: 0x00, b: 0x01, status0: 0x92
fusb302 usb-typec at 22: IRQ: BC_LVL, handler pending
fusb302 usb-typec at 22: BC_LVL handler, status0 = 0x92
fusb302 usb-typec at 22: IRQ: PD sent good CRC
fusb302 usb-typec at 22: Received PD message (header=0x17a1 len=4)
fusb302 usb-typec at 22: TCPM: PD RX, header: 0x17a1 [1]
fusb302 usb-typec at 22: TCPM: state change SNK_WAIT_CAPABILITIES ->
SNK_NEGOTIATE_CAPABILITIES
fusb302 usb-typec at 22: TCPM: cc=0 cc1=4 cc2=0 vbus=0 vconn=sink polarity=0
fusb302 usb-typec at 22: TCPM: PD TX, header: 0x1082
fusb302 usb-typec at 22: Send PD message (header=0x1082 len=4)
fusb302 usb-typec at 22: IRQ: 0x41, a: 0x04, b: 0x00, status0: 0x92
fusb302 usb-typec at 22: IRQ: BC_LVL, handler pending
fusb302 usb-typec at 22: BC_LVL handler, status0 = 0x92
fusb302 usb-typec at 22: IRQ: PD tx success
fusb302 usb-typec at 22: Received PD message (header=0x161 len=0)
fusb302 usb-typec at 22: TCPM: PD TX complete, status: 0
fusb302 usb-typec at 22: IRQ: 0x51, a: 0x00, b: 0x01, status0: 0x92
fusb302 usb-typec at 22: IRQ: BC_LVL, handler pending
fusb302 usb-typec at 22: BC_LVL handler, status0 = 0x92
fusb302 usb-typec at 22: IRQ: PD sent good CRC
fusb302 usb-typec at 22: Received PD message (header=0x9a3 len=0)
fusb302 usb-typec at 22: TCPM: PD RX, header: 0x9a3 [1]
fusb302 usb-typec at 22: TCPM: state change SNK_NEGOTIATE_CAPABILITIES ->
SNK_TRANSITION_SINK
fusb302 usb-typec at 22: IRQ: 0x51, a: 0x00, b: 0x01, status0: 0x93
fusb302 usb-typec at 22: IRQ: BC_LVL, handler pending
fusb302 usb-typec at 22: BC_LVL handler, status0 = 0x92
fusb302 usb-typec at 22: IRQ: PD sent good CRC
fusb302 usb-typec at 22: Received PD message (header=0xba6 len=0)
fusb302 usb-typec at 22: TCPM: PD RX, header: 0xba6 [1]
fusb302 usb-typec at 22: TCPM: state change SNK_TRANSITION_SINK -> SNK_READY
fusb302 usb-typec at 22: IRQ: 0x01, a: 0x00, b: 0x00, status0: 0x92
fusb302 usb-typec at 22: IRQ: BC_LVL, handler pending
fusb302 usb-typec at 22: BC_LVL handler, status0 = 0x92
fusb302 usb-typec at 22: IRQ: 0x51, a: 0x00, b: 0x01, status0: 0x92
fusb302 usb-typec at 22: IRQ: BC_LVL, handler pending
fusb302 usb-typec at 22: BC_LVL handler, status0 = 0x92
fusb302 usb-typec at 22: IRQ: PD sent good CRC
fusb302 usb-typec at 22: Received PD message (header=0x1daf len=4)
fusb302 usb-typec at 22: TCPM: PD RX, header: 0x1daf [1]
fusb302 usb-typec at 22: IRQ: 0x01, a: 0x00, b: 0x00, status0: 0x92
fusb302 usb-typec at 22: IRQ: BC_LVL, handler pending
fusb302 usb-typec at 22: BC_LVL handler, status0 = 0x92
fusb302 usb-typec at 22: IRQ: 0x41, a: 0x00, b: 0x01, status0: 0x92
fusb302 usb-typec at 22: IRQ: BC_LVL, handler pending
fusb302 usb-typec at 22: BC_LVL handler, status0 = 0x92
fusb302 usb-typec at 22: IRQ: PD sent good CRC
fusb302 usb-typec at 22: Received PD message (header=0x1faf len=4)
fusb302 usb-typec at 22: TCPM: PD RX, header: 0x1faf [1]
fusb302 usb-typec at 22: IRQ: 0x51, a: 0x00, b: 0x00, status0: 0x92
fusb302 usb-typec at 22: IRQ: BC_LVL, handler pending
fusb302 usb-typec at 22: BC_LVL handler, status0 = 0x92
fusb302 usb-typec at 22: IRQ: 0x01, a: 0x00, b: 0x00, status0: 0x93
fusb302 usb-typec at 22: IRQ: BC_LVL, handler pending
fusb302 usb-typec at 22: BC_LVL handler, status0 = 0x93
fusb302 usb-typec at 22: cc1: rp-1.5 -> rp-3.0
fusb302 usb-typec at 22: get cc1 = rp-3.0, cc2 = open
fusb302 usb-typec at 22: TCPM: CC1: 4 -> 5, CC2: 0 -> 0 [state SNK_READY,
polarity 0, connected]
fusb302 usb-typec at 22: IRQ: 0x01, a: 0x00, b: 0x00, status0: 0x92
fusb302 usb-typec at 22: IRQ: BC_LVL, handler pending
fusb302 usb-typec at 22: BC_LVL handler, status0 = 0x92
fusb302 usb-typec at 22: cc1: rp-3.0 -> rp-1.5
fusb302 usb-typec at 22: get cc1 = rp-1.5, cc2 = open
fusb302 usb-typec at 22: TCPM: CC1: 5 -> 4, CC2: 0 -> 0 [state SNK_READY,
polarity 0, connected]
fusb302 usb-typec at 22: IRQ: 0x51, a: 0x00, b: 0x01, status0: 0x92
fusb302 usb-typec at 22: IRQ: BC_LVL, handler pending
fusb302 usb-typec at 22: BC_LVL handler, status0 = 0x92
fusb302 usb-typec at 22: IRQ: PD sent good CRC
fusb302 usb-typec at 22: Received PD message (header=0x11af len=4)
fusb302 usb-typec at 22: TCPM: PD RX, header: 0x11af [1]
fusb302 usb-typec at 22: IRQ: 0x01, a: 0x00, b: 0x00, status0: 0x93
fusb302 usb-typec at 22: IRQ: BC_LVL, handler pending
fusb302 usb-typec at 22: BC_LVL handler, status0 = 0x93
fusb302 usb-typec at 22: cc1: rp-1.5 -> rp-3.0
fusb302 usb-typec at 22: get cc1 = rp-3.0, cc2 = open
fusb302 usb-typec at 22: TCPM: CC1: 4 -> 5, CC2: 0 -> 0 [state SNK_READY,
polarity 0, connected]
fusb302 usb-typec at 22: TCPM: PD transmit data failed: -110
fusb302 usb-typec at 22: TCPM: state change SNK_READY -> SNK_WAIT_CAPABILITIES
fusb302 usb-typec at 22: set pd RX on
fusb302 usb-typec at 22: TCPM: pending state change SNK_WAIT_CAPABILITIES
-> HARD_RESET_SEND @ 310 ms [rev3]
fusb302 usb-typec at 22: TCPM: state change SNK_WAIT_CAPABILITIES ->
HARD_RESET_SEND [delayed 310 ms]
fusb302 usb-typec at 22: TCPM: PD TX, type: 0x5
fusb302 usb-typec at 22: IRQ: 0x41, a: 0x08, b: 0x00, status0: 0x93
fusb302 usb-typec at 22: IRQ: BC_LVL, handler pending
fusb302 usb-typec at 22: BC_LVL handler, status0 = 0x93
fusb302 usb-typec at 22: IRQ: PD hardreset sent
fusb302 usb-typec at 22: TCPM: PD TX complete, status: 0
fusb302 usb-typec at 22: IRQ: 0x01, a: 0x00, b: 0x00, status0: 0x83
fusb302 usb-typec at 22: IRQ: BC_LVL, handler pending
fusb302 usb-typec at 22: BC_LVL handler, status0 = 0x83
<Reset>

HTH,
Soeren


More information about the U-Boot mailing list