Jetson TX2 bpmp uart console

The jetson tx2 uart7 is used as the console of the bpmp, however I couldn’t find any documentation regarding bpmp’s commands.
I know that a POR can be requested from bpmp through this console.
I would like to know how to request POR from the bpmp?
I would also like to know which other commands are available from that console.

Thanks in advance,
linus

hello linus.s.gatesz1r91,

may I know what do you mean about POR?
please also refer to discussion thread, Topic 54572 for the steps of enabling UART-7.
thanks

POR - Power On Reset

I would like to know how to request such a reset from the bpmp, which is connected to the UART7.
If I would follow Topic 54572 I won’t be able to communicate with bpmp console… & thus can request the POR.

Hi Linus,

BPMP commands are purely for debugging. Once the system is production fused, the bpmp debug console will not be available. All info of BPMP console is available over /sys/kernel/debug/bpmp/debug/
May I know what you want to achieve which can not be achieved from OS console?

thanks
Bibek

I would also like to know which other commands are available from that console.

linus.s.gatesz1r91, you can give the command “help” in the BPMP console to see the list of commands supported by the BPMP console.

I would like to reset my jetson remotely with a cold/power on reset (cat /sys/kernel/pmc/tegra_reset_reason will print TEGRA_POWER_ON_RESET)
reboot will request a warm reset (the command cat /sys/kernel/pmc/tegra_reset_reason will show TEGRA_SOFTWARE_RESET) which isn’t the reset reason I want.
I thought that I can request a cold reset from the bpmp since I don’t know any other way to reset the jetson from the OS console.
Do you know how can I cold reset the jetson without unplugging the power supply?

Hi Linus,

Can you explain the usecase for which you need cold boot support?

thanks
Bibek

I’m locking the jetson’s internal eMMC from writing after a warm reset, however the eMMC locking isn’t released until a cold reset (which actually resets the micro-controller within the eMMC).
That is a problem for me when I try to upgrade my jetson remotely (OTA upgrade with swupdate) since a new version can’t be written into the eMMC without a cold reset.
That is why I need to know how to cold reset the jetson remotely.

I see,
how are you locking emmc write?

I’m locking the eMMC with mmc-utils.

Present BPMP SW does not support cold boot. We will be supporting it in release next year.
But you can try
root@tegra-ubuntu:/home/ubuntu# echo “mw 0x0c360000 0x400a10” > /sys/kernel/debug/bpmp/debug/cons

but it will not do a graceful shutdown of BPMP.

What exactly do you mean by “not do a graceful shutdown of BPMP”? what can go wrong with it?

I’ve tried to use the command you’ve sent however it failed with “Permission denied” error, In my jetson the file /sys/kernel/debug/bpmp/debug/cons doesn’t exists, the directory /sys/kernel/debug/bpmp/debug/ is present.
I use L4T R32.4.2, in which L4T that file is present?
Is there any other way of requesting a cold reset?

my bad, cons support is not there for tx2 yet.
Can you try writing from linux console
busybox devmem 0x0c360000 0x400a10

that also didn’t work, the error is the following:

devmem: invalid number '0x400a10'

busybox devmem 0x0c360000 w 0x400a10

thanks for the quick reply.
busybox devmem 0x0c360000 w 0x400a10 have reset my jetson, however it wasn’t POR since it was warm reset.

If I understand it correctly you are requesting a reset from the PMC within TEGRA, however I need a cold reset/POR to the entire SOM, in order to unlock the SOM’s eMMC.
I think that somehow I need to request that reset from the PMIC instead of the PMC.
Do you know where can I find documentation of the jetson’s PMIC? (MAX20024, I have jetson tx2i)

one way I can think of to trigger PMIC reset is, enabling PMIC watchdog and while shutdown you can trigger this watchdog and wait it to expire. Otherwise only poweron key is the way. sdmmc power is always on in case of non pmic reset.

For that you can flash with
ODMDATA changed to 0x10b0000 in file jetson-tx2i.conf

ODMDATA=0x10b0000;

you need to do
cat /dev/watchdog1
to kick pmic watchdog. after 120 sec system should reboot

thanks, that worked like a charm!
In addition I’ve remembered that there is a user-space tool for powering off a system - poweroff.
and since there is a driver for the jetson’s PMIC called max77620 (for both TX2 & TX2i) & the device-tree is configured properly for using it the poweroff command was cable of cold resetting my jetson, without waiting for a watchdog to expire.

good to know,
have you tried and made poweroff causing POR?
what are the steps you used?