.. _netmodule-hw34: ******************************* NetModule HW34 (XG900 A-Sample) ******************************* .. important:: netmodule-hw34 support is currently only available on the features branch feat/netmodule-bsp .. image:: netmodule-hw34/hw34.png CoreOS build instruction ======================== .. code-block:: MACHINE=netmodule-hw34 bitbake coreos-image-all-features cd tmp/deploy/images/netmodule-hw34 .. list-table:: Image artifacts for NetModule HW32 :widths: 25 75 :header-rows: 1 * - Filename - Description * - -netmodule-hw34.swu - System image bundle used by the CoreOS installer or the CoreOS updater * - coreos-installer-netmodule-hw34.efi - CoreOS installer bundled in a single EFI binary * - tiboot3.bin - SPL Bootloader for the wakeup domain (arm32 R5 core) * - tispl.bin - SPL bootloader for the main domain (aarch64 main core) * - u-boot.bin - Third stage bootloader the main domain (aarch64 main core) .. hint:: Only the .swu image is need if you have already a working installation of CoreOS running on the board that you want to update. CoreOS Pre-installation guide ============================= The CoreOS installation process expect a working EFI firmware based on u-boot running on the board. For board that have no firmware or a defect firmware, we can provide the firmware by booting over USB. First, we need to put the board in USB Boot mode by modifying the dip-switch on the back of the board: .. code-block:: ON S500 ▄ ▀ ▄ ▀ ▄ ▄ ▄ ▄ 1 2 3 4 5 6 7 8 .. hint:: Unflashed board or board without a valid tiboot3.bin image will default to USB boot mode, so settings the dip-switch may be skipped in this case. Then you need to populate the jumper X600 near the USB port: .. image:: netmodule-hw34/hw34-usb-device.png Then power-up the board by first apply 12V throug the main connector, then connect a USB-C cable. Console access to the board can be accessed using the serial port on the main connector. .. important:: When removing the power, ensure that the USB cable is removed first. Otherwise the processor will not get shutdown properly Now you should see the board from you computer: .. code-block:: sh lsusb | grep DFU Bus 003 Device 048: ID 0451:6165 Texas Instruments, Inc. AM64x DFU Now we start downloading the bootloaders into RAM by using dfu-utils: .. code-block:: sh dfu-util -D tiboot3.bin -a 0 dfu-util -D tispl.bin -a 0 # Eject and start execution of tispl dfu-util -e -a 0 dfu-util -D u-boot.img -a 1 # Eject ans tart of u-boot.img dfu-util -e -a 1 .. hint:: The firmware was uploaded to the RAM, thus will not survice a reboot. Now that we have a firmware running, CoreOS can be installed by following the :ref:`generic installation manual`. CoreOS Post-Installation ======================== When the installation of CoreOS is done, power down the board by first removing the USB-C cable then the main power. Now, put the board back in emmc boot mode: .. code-block:: ON S500 ▀ ▄ ▄ ▀ ▄ ▄ ▄ ▄ 1 2 3 4 5 6 7 8 Then power-up the board again and CoreOS should boot.