|
|
(One intermediate revision by one other user not shown) |
Line 1: |
Line 1: |
− | __TOC__
| + | this page can be deleted |
− | | |
− | = Starting Watchdog Timer =
| |
− | '''Preparation:''' <br>Remember to (" setenv wdt_timeout <seconds> ") before testing if you want board to reboot sooner. Otherwise, it will reboot after 1min due to the setting in the Device Tree.
| |
− | | |
− | '''Testing Phase:''' <br> '''Case 1:''' (which user replaces the wrong kernel Image or wrong dtb)
| |
− | In this case, we are going to use 1 random kernel Image, and 1 device tree ( .dtb ) for our board.
| |
− | For example: R-car M3 kernel Image + r8a774e1-hihope-rzg2h-ex.dtb.
| |
− | | |
− | Expected result: Board will stop at (" Starting kernel ..... ") due to the wrong kernel Image file. Board will reboot after the specified time which is set by user.
| |
− | | |
− | '''Case 2:''' (when loading a driver, kernel panic occurs because of loading driver fail and board stops booting)
| |
− | In this case, we will add a panic() function into one function of a driver such as probe() to create kernel panic, but make sure that you have included kernel.h to use this function.
| |
− | | |
− | For example: In the GPIO driver
| |
− | <pre>
| |
− | #include <linux/kernel.h>
| |
− | static int gpio_rcar_probe(struct platform_device *pdev)
| |
− | {
| |
− | struct gpio_rcar_priv *p;
| |
− | struct resource *io, *irq;
| |
− | struct gpio_chip *gpio_chip;
| |
− | .......
| |
− | panic("GPIO driver, Kernel panic\n");
| |
− | .......
| |
− | }
| |
− | </pre>
| |
− | | |
− | Expected result: When loading GPIO driver, kernel panic occurs and board stops booting. Board will reboot after the specified time which is set by user.
| |
− | | |
− | = Enabling QSPI FLASH support for RZ/G2M-N-H =
| |
− | The QSPI flash support is enabled by default for the RZ/G2E board (EK874), instead it is not enabled for the Hihope boards. In the procedure below RZ/G2M is used as an example, but it applies to RZ/G2N and RZ/G2H as well.
| |
− | | |
− | 1) Build U-boot as per Chris' [https://github.com/seebe/rzg_stuff/tree/master/build_scripts/renesas-u-boot-cip script instructions]
| |
− | | |
− | 2) Once built with default configuration, open another terminal and change dir to ./out_hihope-rzg2m. This is necessary because to build U-boot you probably had to source the environment variable script of the SDK, that prevents you from running the following command (old toolchain):
| |
− | <pre>
| |
− | make menuconfig
| |
− | </pre>
| |
− | | |
− | 3) Enable the following configurations (search by typing /):
| |
− | <pre>
| |
− | CMD_SF
| |
− | CMD_SPI
| |
− | DM_SPI_FLASH
| |
− | SPI_FLASH
| |
− | SPI_FLASH_BAR
| |
− | SPI_FLASH_USE_4K_SECTORS
| |
− | SPI
| |
− | DM_SPI
| |
− | SPI_FLASH_WINBOND
| |
− | RENESAS_RPC_SPI
| |
− | </pre>
| |
− | | |
− | 4) Modify the device tree:
| |
− | <pre>
| |
− | gedit ./arch/arm/dts/r8a774a1-hihope-rzg2m.dts
| |
− | </pre>
| |
− | | |
− | and add the following lines:
| |
− | <pre>
| |
− | aliases {
| |
− | spi0 = &rpc;
| |
− | };
| |
− | </pre>
| |
− | This one above should go just after the board model.
| |
− | </pre>
| |
− | &rpc {
| |
− | num-cs = <1>;
| |
− | status = "okay";
| |
− | spi-max-frequency = <40000000>;
| |
− | #address-cells = <1>;
| |
− | #size-cells = <0>;
| |
− |
| |
− | flash0: spi-flash@0 {
| |
− | #address-cells = <1>;
| |
− | #size-cells = <1>;
| |
− | compatible = "spi-flash", "jedec,spi-nor";
| |
− | spi-max-frequency = <40000000>;
| |
− | spi-tx-bus-width = <1>;
| |
− | spi-rx-bus-width = <1>;
| |
− | reg = <0>;
| |
− | status = "okay";
| |
− | };
| |
− | };
| |
− | </pre>
| |
− | | |
− | 5) Rebuild using the first terminal you used to build the first time.
| |
− | | |
− | The u-boot.bin file can be now programmed using another [https://github.com/seebe/rzg_stuff/tree/master/build_scripts/rzg2_flash_writer Chris' script], just make sure it gets copied in the directory where the script searches for it. Once programmed, you can test it by stopping the normal kernel boot:
| |
− | | |
− | <pre>
| |
− | U-Boot 2018.09-g03c7e33415-dirty (Oct 07 2020 - 15:55:06 +0200)
| |
− |
| |
− | CPU: Renesas Electronics R8A774A1 rev 1.3
| |
− | Model: Hoperun Technology HiHope RZ/G2M platform (hihope-rzg2m)
| |
− | DRAM: 3.9 GiB
| |
− | Bank #0: 0x048000000 - 0x0bfffffff, 1.9 GiB
| |
− | Bank #1: 0x600000000 - 0x67fffffff, 2 GiB
| |
− |
| |
− | Watchdog: Not found by seq!
| |
− | WDT: watchdog@e6020000
| |
− | Watchdog: Started!
| |
− | MMC: sd@ee100000: 0, sd@ee160000: 1
| |
− | Loading Environment from MMC... OK
| |
− | In: serial@e6e88000
| |
− | Out: serial@e6e88000
| |
− | Err: serial@e6e88000
| |
− | Net:
| |
− | Error: ethernet@e6800000 address not set.
| |
− | eth-1: ethernet@e6800000
| |
− | Hit any key to stop autoboot: 0
| |
− | => sf probe
| |
− | SF: Detected w25m512jw with page size 256 Bytes, erase size 4 KiB, total 32 MiB
| |
− | =>
| |
− | </pre>
| |