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

We already reached SNK_READY state, so everything should be fine and
finished.
But additional communication seams to cause a HARD_RESET sent by us, leading
to a boot loop.

Seems to me we are not prepared for communication with port partners capable
of source and sink power roles. Just a guess, though.

Regards,
Soeren

Reply via email to