Commit graph

91487 commits

Author SHA1 Message Date
Tom Rini
abd4fb5ac1 Merge patch series "Dockerfile: Build coreboot from source"
To make our CI loops more robust, switch to building and providing the
coreboot binary we test with rather than download from a Google Drive
link.
2024-02-27 16:28:57 -05:00
Tom Rini
cb59ca304a CI: Move to latest container image
This moves us to our latest container image, which is now based on the
current "Jammy" tag.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-02-27 16:28:52 -05:00
Tom Rini
3a79c91f43 CI: Switch to using coreboot from our image
Instead of downloading coreboot binaries from a Google drive location,
use the ones we have built ourselves.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-02-27 16:28:52 -05:00
Tom Rini
f382050896 Dockerfile: Build coreboot from source
To make CI runs rely less on external servers, build a coreboot release
from source and populate /opt/coreboot with the output.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-02-27 16:28:52 -05:00
Tom Rini
d49fa3defa Prepare v2024.04-rc3
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-02-26 21:23:36 -05:00
Tom Rini
1a66a7768a Merge tag 'u-boot-imx-master-20240224' of https://source.denx.de/u-boot/custodians/u-boot-imx
- Enable the thermal driver for the imx8m phycore boards.
- Convert imx53-qsb to watchdog driver to fix the 'reset' command.
- Remove multiline string from imx6dl-sielaff.
- Add SPI boot support for imxrt1050-evk.
- Convert opos6uldev to watchdog driver to fix the 'reset' command.
2024-02-24 17:51:50 -05:00
Sébastien Szymanski
7c76b1b91b opos6uldev: Convert to watchdog driver model
Commit 68dcbdd594 ("ARM: imx: Add weak default reset_cpu()") caused
the 'reset' command in U-Boot to not cause a board reset.

Fix it by switching to the watchdog driver model via sysreset, which
is the preferred method for implementing the watchdog reset.

Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
2024-02-24 16:29:24 -03:00
Fabio Estevam
73454c85cd imx53-qsb: Convert to watchdog driver model
Commit 68dcbdd594 ("ARM: imx: Add weak default reset_cpu()") caused
the 'reset' command in U-Boot to not cause a board reset.

Fix it by switching to the watchdog driver model via sysreset, which
is the preferred method for implementing the watchdog reset.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
2024-02-24 16:29:00 -03:00
Benjamin Hahn
ed7824c226 imx8mm-phygate-tauri-l_defconfig: Enable CONFIG_IMX_TMU
Enable the imx thermal driver to prevent booting when the system is too
hot.

Signed-off-by: Benjamin Hahn <B.Hahn@phytec.de>
2024-02-24 16:27:15 -03:00
Benjamin Hahn
feb2d51ca8 phycore-imx8mm_defconfig: Enable CONFIG_IMX_TMU
Enable the imx thermal driver to prevent booting when the system is too
hot.

Signed-off-by: Benjamin Hahn <B.Hahn@phytec.de>
2024-02-24 16:27:15 -03:00
Benjamin Hahn
ab88ed62d5 phycore-imx8mp_defconfig: Enable CONFIG_IMX_TMU
Enable the imx thermal driver to prevent booting when the system is too
hot.

Signed-off-by: Benjamin Hahn <B.Hahn@phytec.de>
2024-02-24 16:27:15 -03:00
Mathieu Othacehe
7b6cec8dfb configs: imx93_var_som: Add fastboot support.
Enable the `fastboot` command.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2024-02-24 16:22:01 -03:00
Mathieu Othacehe
fae9969224 configs: imx93_var_som: Add USB support.
Enable the `usb` command and some USB drivers.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2024-02-24 16:22:01 -03:00
Mathieu Othacehe
3fd17d8368 arm: dts: imx93-var-som-symphony: Add USB support.
Enable both usbotg1 and usbotg2 ports.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2024-02-24 16:22:01 -03:00
Mathieu Othacehe
4b6e4eefbf arm: dts: imx93: Add USB support.
Copied from:
https://lore.kernel.org/linux-devicetree/20240131114324.3722428-6-xu.yang_2@nxp.com/

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2024-02-24 16:22:00 -03:00
Frieder Schrempf
91cd41ecda board: imx6dl-sielaff: spl.c: Remove multiline string
Remove the malformed multiline string and fix the checkpatch warning.

Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
2024-02-24 16:21:34 -03:00
Jesse Taube
59c3f0ee54 imx: imxrt1050-evk: Add documentation for SPI boot
Add documentation for SPI boot.

Signed-off-by: Jesse Taube <Mr.Bossman075@gmail.com>
2024-02-24 16:21:02 -03:00
Jesse Taube
7079eeb72f imx: imxrt1050-evk: Add support for SPI flash booting
Add support for booting the imxrt1050-evk from spi.
Add imximage config and the ability for SPL to boot from NOR.
Enable binman in Kconfig and device tree for imxrt* as it is used to
prepend fspi_header.bin to SPL and u-boot.img.

Signed-off-by: Jesse Taube <Mr.Bossman075@gmail.com>
2024-02-24 16:21:02 -03:00
Tom Rini
bb9d6c7f4f - fix AVB oom error for Khadas VIM3 Android configs
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEPVPGJshWBf4d9CyLd9zb2sjISdEFAmXY1igACgkQd9zb2sjI
 SdFpAxAAiYKOXiXxTbUmI0AgRj6QuEqgXJcOZWZtr1KwI3iBnUHLIV1mqypuK5oi
 h/ZkyNUKgsBfcRkHmirKL2Dw7XwsdDqB1/PLo5lvl4DAcPYOZwGkMa5JJuf3Cher
 GksEN+cTRObXNZMs+g41snsfuvhZ9cNoQ7XyLy4aWM2uVQJJ9qfnJZkfLXRVreMX
 y/BvZnMsl3ERZCYMxB74RYXjSS5hIgjd/P07wUzid+wz/FVvfy/GbXJkRIkDwM7e
 EY9PaFmJ8HwCvT0gnmh+QlgD0GufeqH+pshizzbX2chFE43H79DwkbGECVvEn9g5
 CjX8mYLS+nx1NnYUG7uig1Z+Jf9E0czQsS5QqggREdk2719IlaLYPNCrHppKN4H8
 PYtD2ngiOS5igDafGH37ZpFsSJH5DG1GsOU8d27Z0chUPg04Tby56/c8xXbpt6Ru
 BEP6430EYZu4rikx2ZlnAl2OOQ2bO1NGx4AD/nIugWDzWhYJvHzRENI9LPZuQaUc
 SXYWjTOFW6zadNUeLywD/i0e7kblJAtDQqxsZxX0DkeKJi9Y3n2luCOKEizDwOxq
 L39XPt08+m0H2dPxpA6+Q4CMDjC0kB2D0amZ5k0JCDjJQKW9xgSDw4nHl+9mt1h/
 p4LuPj8NrvajdV6RgEZEG/va4eTaepYrRkLbgIh93N0vAzusDYk=
 =NzW+
 -----END PGP SIGNATURE-----

Merge tag 'u-boot-amlogic-fixes-20240223' of https://source.denx.de/u-boot/custodians/u-boot-amlogic

- fix AVB oom error for Khadas VIM3 Android configs
2024-02-23 12:54:03 -05:00
Mattijs Korpershoek
fc0a7431e1 configs: khadas-vim3*_android: fix AVB oom error
When booting Android with AVB enabled, an OOM is observed:

  => avb init ${mmcdev}
  => avb verify _a
  ## Android Verified Boot 2.0 version 1.1.0
  read_is_device_unlocked not supported yet
  read_rollback_index not supported yet
  avb_util.c:182: ERROR: Failed to allocate memory.
  OOM error occurred during verification

A custom malloc length of 128MB is required as documented in
commit 285a83b12b ("configs: meson64_android: increase SYS_MALLOC_LEN to 128M for AVB")

However, this 128M custom malloc length was not ported to Kconfig in
commit 7cfbba36e9 ("Convert CONFIG_SYS_MALLOC_LEN to Kconfig")

Add it back to fix AVB verification on VIM3/VIM3L.

Fixes: 7cfbba36e9 ("Convert CONFIG_SYS_MALLOC_LEN to Kconfig")
Co-developed-by: Guillaume La Roque <glaroque@baylibre.com>
Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Igor Opaniuk <igor.opaniuk@gmail.com>
Link: https://lore.kernel.org/r/20240209-vim3-avb-malloc-v1-1-91427d8c19ab@baylibre.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-02-23 18:22:50 +01:00
Tom Rini
5e4a0c7f4a Merge branch 'qcom-fixes-2024.04' of https://gitlab.denx.de/u-boot/custodians/u-boot-snapdragon
- Two fixes for the qcom-pmic button driver
2024-02-22 11:34:59 -05:00
Tom Rini
7bb761c42d Merge patch series "board/ti: k3 boards: Stop using findfdt"
Nishanth Menon <nm@ti.com> says:

This is a wide cleanup to switch to setting fdtfile using env_set
instead of scripted magic. 'fdtfile' is expected to be set by default.
This allows the stdboot triggered efi loaders to find the correct OS
device tree file even if regular boot process is interrupted by user
intervention.
2024-02-20 17:57:52 -05:00
Nishanth Menon
452bab0ac7 include: env: ti: Drop default_findfdt
We shouldn't need finfdt anymore. Drop the env script.

Reviewed-by: Jonathan Humphreys <j-humphreys@ti.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Signed-off-by: Nishanth Menon <nm@ti.com>
2024-02-20 17:57:41 -05:00
Nishanth Menon
d904c6820f board: beagle: beagleplay: Set fdtfile from C code instead of findfdt script
Stop using the findfdt script and switch to setting the fdtfile from C
code.

Reviewed-by: Jonathan Humphreys <j-humphreys@ti.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Signed-off-by: Nishanth Menon <nm@ti.com>
2024-02-20 17:57:41 -05:00
Nishanth Menon
ce56536f2c board: beagle: beagleboneai64: Set fdtfile from C code instead of findfdt script
Stop using the findfdt script and switch to setting the fdtfile from C
code.

Reviewed-by: Jonathan Humphreys <j-humphreys@ti.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Signed-off-by: Nishanth Menon <nm@ti.com>
2024-02-20 17:57:41 -05:00
Nishanth Menon
e41453c999 board: ti: j721s2: Set fdtfile from C code instead of findfdt script
We now can provide a map and have the standard fdtfile variable set from
code itself. This allows for bootstd to "just work".

While at this, replace findfdt in environment with a warning as it is no
longer needed.

Reviewed-by: Jonathan Humphreys <j-humphreys@ti.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Signed-off-by: Nishanth Menon <nm@ti.com>
2024-02-20 17:57:41 -05:00
Nishanth Menon
c6d065817c board: ti: j721e: Set fdtfile from C code instead of findfdt script
We now can provide a map and have the standard fdtfile variable set from
code itself. This allows for bootstd to "just work".

While at this, replace findfdt in environment with a warning as it is no
longer needed.

Reviewed-by: Jonathan Humphreys <j-humphreys@ti.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Signed-off-by: Nishanth Menon <nm@ti.com>
2024-02-20 17:57:40 -05:00
Nishanth Menon
6e20016924 board: ti: am65x: Set fdtfile from C code instead of findfdt script
We now can provide a map and have the standard fdtfile variable set from
code itself. This allows for bootstd to "just work".

While at this, replace findfdt in environment with a warning as it is no
longer needed.

Reviewed-by: Jonathan Humphreys <j-humphreys@ti.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Signed-off-by: Nishanth Menon <nm@ti.com>
2024-02-20 17:57:40 -05:00
Nishanth Menon
f2c1205f88 board: ti: am64x: Set fdtfile from C code instead of findfdt script
We now can provide a map and have the standard fdtfile variable set from
code itself. This allows for bootstd to "just work".

While at this, replace findfdt in environment with a warning as it is no
longer needed.

Reviewed-by: Jonathan Humphreys <j-humphreys@ti.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Signed-off-by: Nishanth Menon <nm@ti.com>
2024-02-20 17:57:40 -05:00
Nishanth Menon
0de0672e7e board: ti: am62x: Set fdtfile from C code instead of findfdt script
Stop using the findfdt script and switch to setting the fdtfile from
C code.

While at this, replace findfdt in environment with a warning as it is
no longer needed

Reviewed-by: Jonathan Humphreys <j-humphreys@ti.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Signed-off-by: Nishanth Menon <nm@ti.com>
2024-02-20 17:57:40 -05:00
Nishanth Menon
39ae370cca board: ti: am62ax: Set fdtfile from C code instead of findfdt script
Stop using the findfdt script and switch to setting the fdtfile from
C code.

While at this, replace findfdt in environment with a warning as it is
no longer needed

Reviewed-by: Jonathan Humphreys <j-humphreys@ti.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Signed-off-by: Nishanth Menon <nm@ti.com>
2024-02-20 17:57:40 -05:00
Nishanth Menon
fa94f8eec3 board: ti: common: Introduce a common fdt ops library
Introduce a common fdt operations library for basic device tree
operations that are common between various boards.

The first library to introduce here is the capability to set up
fdtfile as a standard variable as part of board identification rather
than depend on scripted ifdeffery.

Reviewed-by: Jonathan Humphreys <j-humphreys@ti.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Signed-off-by: Nishanth Menon <nm@ti.com>
2024-02-20 17:57:40 -05:00
Nishanth Menon
66ebb10b0f board: ti: Add missing common/Kconfig references
Add missing board/ti/common/Kconfig references for the platforms that
missed it. The intent is for the common Kconfig to be usable across TI
reference boards as required.

Reported-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
2024-02-20 17:57:40 -05:00
Tom Rini
1817afe30f Merge https://gitlab.denx.de/u-boot/custodians/u-boot-usb 2024-02-20 08:03:21 -05:00
Tom Rini
bebf916f9e Merge https://gitlab.denx.de/u-boot/custodians/u-boot-samsung 2024-02-20 08:02:49 -05:00
Mathieu Othacehe
d9a20fea2b usb: ehci-mx6: Add i.MX93 support
i.MX93 uses the same USB IP as i.MX8MM. It can then reuse the ehci-mx6
driver.

Reviewed-by: Marek Vasut <marex@denx.de>
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
2024-02-19 20:08:51 +01:00
Shantur Rathore
08e2cd6cd3 common: usb-hub: Reset USB 3.0 hubs only
Additional testing of the changes introduced in commit 33e06dcbe5 "common:
usb-hub: Reset hub port before scanning") revealed that some USB 2.0 and 3.0
flash drives didn't work in U-Boot on some Allwinner SoCs that support USB
2.0 interfaces only.  More precisely, some of the tested USB 2.0 and 3.0
flash drives failed to be detected and work on an OrangePi Zero 3, based on
the Allwinner H616 SoC that supports USB 2.0 only, while the same USB flash
drives worked just fine on a Pine64 H64, based on the Allwinner H6 SoC that
supports both USB 2.0 and USB 3.0 interfaces.

The USB ID of the above-mentioned USB 3.0 flash drive that failed to work is
1f75:0917 (Innostor Technology Corporation IS917 Mass storage), it is 32 GB
in size and sold under the PNY brand.  The mentioned USB 2.0 drive is some
inexpensive no-name drive with an invalid USB ID.

Resetting USB 3.0 hubs only, which this patch introduces to the USB hub
resets, has been tested to work as expected, resolving the identified issues
on the Allwinner H616, while not introducing any new issues on other tested
Allwinner SoCs.  Thus, let's fix it that way.

According to the USB 3.0 specification, resetting a USB 3.0 port is required
when an attached USB device transitions between different states, such as
when it resumes from suspend.  Though, the Linux kernel performs additional
USB 3.0 port resets upon initial USB device attachment, as visible in commit
07194ab7be63 ("USB: Reset USB 3.0 devices on (re)discovery") in the kernel
source, to ensure proper state of the USB 3.0 hub port and proper USB mode
negotiation during the initial USB device attachment and enumeration.

These additional types of USB port resets don't exist for USB 2.0 hubs,
according the USB 2.0 specification.  The resets seem to be added to the USB
3.0 specification as part of the port and device mode negotiation.

The Linux kernel resets USB 3.0 (i.e. SuperSpeed) hubs only, as visible in
commit 10d674a82e55 ("USB: When hot reset for USB3 fails, try warm reset.")
in the kernel source.  The check for SuperSpeed hubs is performed in a way
that also applies to newer SuperSpeed Plus (USB 3.1 or 3.2) hubs as well,
which hopefully makes it future proof.

Fixes: 33e06dcbe5 ("common: usb-hub: Reset hub port before scanning")

Link:
https://lore.kernel.org/u-boot/20240207102327.35125-1-i@shantur.com/T/#u
Link:
https://lore.kernel.org/u-boot/20240201164604.13315fa6@donnerap.manchester.arm.com/T/#u

Signed-off-by: Shantur Rathore <i@shantur.com>
Helped-by: Dragan Simic <dsimic@manjaro.org>
Tested-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Dragan Simic <dsimic@manjaro.org>
Reviewed-by: Marek Vasut <marex@denx.de>
2024-02-19 20:08:41 +01:00
Tom Rini
3e6f2a94bf Merge tag 'u-boot-imx-master-20240219' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/19683

- Convert msc_sm2s_imx8mp to DM_SERIAL.
- Make Ethernel functional on msc_sm2s_imx8mp.
- General improvements for msc_sm2s_imx8mp.
- Add suport for the Sielaff i.MX6 Solo board.
- Update GE HealthCare maitainers' e-mail addresses.
2024-02-19 08:55:17 -05:00
Frieder Schrempf
0cfc2e9225 doc: board: Add minimal documentation for Sielaff i.MX6 Solo board
Describe how to build and boot for the Sielaff i.MX6 Solo board.

Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
2024-02-19 08:19:39 -03:00
Frieder Schrempf
588399c2d5 board: Add support for Sielaff i.MX6 Solo board
The Sielaff i.MX6 Solo board is a control and HMI board for vending
machines. Add support for this board.

The devicetree files are taken from pending changes in the Linux
kernel that are available from linux-next and will likely be
part of Linux v6.9.

Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
2024-02-19 08:19:39 -03:00
Frieder Schrempf
d4091971ab mtd: spi-nor-ids: Add support for ESMT/EON EN25Q80B
The datasheet can be found here:
https://www.esmt.com.tw/upload/pdf/ESMT/datasheets/EN25Q80B_Ver.E.pdf

Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
2024-02-19 08:19:39 -03:00
Ian Ray
cf51339d5b MAINTAINERS: Update after GEHC spin-off
Update our email addresses, from @ge.com to @gehealthcare.com, after GE
HealthCare was spun-off from GE.

Remove Antti, who no longer works on the project.

Signed-off-by: Ian Ray <ian.ray@gehealthcare.com>
2024-02-19 08:19:39 -03:00
Fabio Estevam
7489f192d8 msc_sm2s_imx8mp: Fix CONFIG_DEFAULT_FDT_FILE
There is no imx8mp-msc-sm2s.dtb file in upstream Linux.

Change it to imx8mp-msc-sm2s-ep1.dtb.

Signed-off-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Ian Ray <ian.ray@gehealthcare.com>
2024-02-19 08:19:39 -03:00
Fabio Estevam
6dfdfad3c3 msc_sm2s_imx8mp: Add redundant environment support
Redundant environment support is required for software updates.

Add support for it.

Signed-off-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Ian Ray <ian.ray@gehealthcare.com>
2024-02-19 08:19:39 -03:00
Fabio Estevam
399c4a9e1c imx8mp-msc-sm2s: Add mmc aliases
Add mmc alias so that the eMMC is mmc0 and the SD card
is mmc1 to have a well defined device numbering scheme.

Signed-off-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Ian Ray <ian.ray@gehealthcare.com>
2024-02-19 08:19:39 -03:00
Fabio Estevam
b8d4b1c582 msc_sm2s_imx8mp: Make Ethernet functional
Currently, the Ethernet ports are not working.

The Ethernet PHY reset lines are controlled by the TCA6424 I2C GPIO
expander.

The TCA6424 I2C GPIO expander is supported by the CONFIG_DM_PCA953X
driver.

Select the CONFIG_DM_PCA953X option so that the Ethernet PHYs can
go through a proper reset making Ethernet to be functional.

Signed-off-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Ian Ray <ian.ray@gehealthcare.com>
2024-02-19 08:19:39 -03:00
Fabio Estevam
a59fb3dcf0 msc_sm2s_imx8mp: Convert to DM_SERIAL
The conversion to DM_SERIAL is mandatory, so do the conversion.

Signed-off-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Ian Ray <ian.ray@gehealthcare.com>
2024-02-19 08:19:39 -03:00
Tom Rini
e4013bcb10 Merge branch 'master-porter' of https://source.denx.de/u-boot/custodians/u-boot-sh
- Renesas R-Car Gen2 fixes
2024-02-17 18:37:07 -05:00
Marek Vasut
87f9ffbef5 ARM: renesas: Enable LTO on R-Car
Enable LTO globally on Renesas R-Car platforms. This has been enabled
on a subset of boards already, but at this point it is safe to enable
it globally. This saves units or tens of kiB from the resulting build.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Paul Barker <paul.barker.ct@bp.renesas.com>
2024-02-17 22:38:20 +01:00
Marek Vasut
1c987e6fb4 ARM: renesas: Set R-Car Gen2 board size limit to 512 kiB
The maximum size of u-boot.img on R-Car Gen2 is 0x80000 or 512 kiB,
set the limit to avoid overflows as new functionality gets pulled in.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Paul Barker <paul.barker.ct@bp.renesas.com>
2024-02-17 22:38:20 +01:00