This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM57xx build instructions

Other Parts Discussed in Thread: DRA752, PMP

Hi,

We are trying to bring up custom board with Processor SDK 2.0. For buiilding the u boor in the processor wiki (processors.wiki.ti.com/.../Linux_Core_U-Boot_User's_Guide its given as to be built with the am57xx_evm_config .. but this config file is not there in the u-boot source code downloaded via the SDK installation.

Ganesh.

  • Hi Ganesh,

    To build u-boot use the following commands:
    export ARCH=arm
    export PATH=$PATH:/path/to/ti-processor-sdk-linux-am57xx-evm-02.00.00.00/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/
    export CROSS_COMPILE=arm-linux-gnueabihf-
    make clean
    make beagle_x15_config
    make -j4

    For TI releases you can always check the top level Make & Rules.make files in ti-processor-sdk-linux-am57xx-evm-02.00.00.00 directory. In your case for u-boot in Rules.make you have:
    #u-boot machine
    UBOOT_MACHINE=beagle_x15_config

    Best Regards,
    Yordan

  • Thanks Yordan,

    What should be the board name for the kernel, should this be AM57xx_evm or BeagleBoard_x15 ? I see the control stopping at the starting kernel as below.

    We have made the relevant changes of pin mux and the console.

    U-Boot 2015.07-00114-g167724d-dirty (Nov 25 2015 - 11:36:15 +0530)

    CPU : DRA752 ES1.1
    Board: BeagleBoard x15
    I2C: ready
    DRAM: 1.5 GiB
    MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
    reading uboot.env
    SATA link 0 timeout.
    AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl SATA mode
    flags: 64bit ncq stag pm led clo only pmp pio slum part ccc apst
    SCSI: SATA link 0 timeout.
    AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl SATA mode
    flags: 64bit ncq stag pm led clo only pmp pio slum part ccc apst
    scanning bus for devices...
    Found 0 device(s).
    Net: Phy 1 not found
    cpsw
    Hit any key to stop autoboot: 0
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    reading uEnv.txt
    597 bytes read in 9 ms (64.5 KiB/s)
    Loaded environment from uEnv.txt
    Importing environment from mmc0 ...
    3301104 bytes read in 193 ms (16.3 MiB/s)
    96131 bytes read in 37 ms (2.5 MiB/s)
    Booting from mmc0 ...
    Kernel image @ 0x82000000 [ 0x000000 - 0x325ef0 ]
    ## Flattened Device Tree blob at 88000000
    Booting using the fdt blob at 0x88000000
    Loading Device Tree to 8ffe5000, end 8ffff782 ... OK

    Starting kernel ...

    Best Regards,
    Ganesh
  • As I said look at the Rules.make file in /ti-processor-sdk-linux-am57xx-evm-02.00.00.00. It clearly says:

    #defconfig

    DEFCONFIG=tisdk_am57xx-evm_defconfig

    So you should build the kernel with the pointed defconfig.

    Which board is this? AM57xx EVM, Beagle_X15 or a custom board?

    Best Regards,

    Yordan

  • Yordan,

    thanks , I am clear on this. what I am asking is which board name to be passed in the u-boot ? Based on that dtb will be selected right ? Since in the u-boot (refer u-boot known issues/limitation) its mentions as the board name has to be manually set for the AM57xx_evm we aksed this question. We are using the custom board so this should not matter as of now as I suppose and can use beagle as board name (ofcourse we need take care of the DTBs whicher we are passing). We tried both and it stops at kernel as I shared the logs earlier. Any pointers on why it could stop at kernel ??

    Best Regards,
    Ganesh
  • Hi,

    This usually indicates that an incorrect dts file is used. Can you verify that the dts file you use matches your hardware? What is its name?

    Do you have uEnv.txt file in the boot partition of your sd card? Can you share its content & also the output of printenv in u-boot stage?

    Best Regards,
    Yordan
  • am57xx-beagle-x15_dts.txt
    /*
     * Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/
     *
     * This program is free software; you can redistribute it and/or modify
     * it under the terms of the GNU General Public License version 2 as
     * published by the Free Software Foundation.
     */
    /dts-v1/;
    
    #include "dra74x.dtsi"
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    
    / {
    	model = "TI AM5728 BeagleBoard-X15";
    	compatible = "ti,am572x-beagle-x15", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7";
    
    	memory {
    		device_type = "memory";
    		reg = <0x80000000 0x80000000>;
    	};
    
    	reserved-memory {
    		#address-cells = <1>;
    		#size-cells = <1>;
    		ranges;
    
    		ipu2_cma_pool: ipu2_cma@95800000 {
    			compatible = "shared-dma-pool";
    			reg = <0x95800000 0x3800000>;
    			reusable;
    			status = "okay";
    		};
    
    		dsp1_cma_pool: dsp1_cma@99000000 {
    			compatible = "shared-dma-pool";
    			reg = <0x99000000 0x4000000>;
    			reusable;
    			status = "okay";
    		};
    
    		ipu1_cma_pool: ipu1_cma@9d000000 {
    			compatible = "shared-dma-pool";
    			reg = <0x9d000000 0x2000000>;
    			reusable;
    			status = "okay";
    		};
    
    		dsp2_cma_pool: dsp2_cma@9f000000 {
    			compatible = "shared-dma-pool";
    			reg = <0x9f000000 0x1000000>;
    			reusable;
    			status = "okay";
    		};
    	};
    
    	vdd_3v3: fixedregulator-vdd_3v3 {
    		compatible = "regulator-fixed";
    		regulator-name = "vdd_3v3";
    		vin-supply = <&regen1>;
    		regulator-min-microvolt = <3300000>;
    		regulator-max-microvolt = <3300000>;
    	};
            evm_3v3_sd: fixedregulator-sd {
                    compatible = "regulator-fixed";
                    regulator-name = "evm_3v3_sd";
                    regulator-min-microvolt = <3300000>;
                    regulator-max-microvolt = <3300000>;
                    enable-active-high;
                    gpio = <&pcf_gpio_21 5 0>;
            };
    
    	aic_dvdd: fixedregulator-aic_dvdd {
    		compatible = "regulator-fixed";
    		regulator-name = "aic_dvdd_fixed";
    		vin-supply = <&vdd_3v3>;
    		regulator-min-microvolt = <1800000>;
    		regulator-max-microvolt = <1800000>;
    	};
    
    	vtt_fixed: fixedregulator-vtt {
    		/* TPS51200 */
    		compatible = "regulator-fixed";
    		regulator-name = "vtt_fixed";
    		vin-supply = <&sysen2>;
    		regulator-min-microvolt = <1350000>;
    		regulator-max-microvolt = <1350000>;
    		regulator-always-on;
    		regulator-boot-on;
    		enable-active-high;
    		gpio = <&gpio7 11 GPIO_ACTIVE_HIGH>;
    	};
    
    	extcon_usb1: extcon_usb1 {
    		compatible = "linux,extcon-usb-gpio";
    		id-gpio = <&gpio7 25 GPIO_ACTIVE_HIGH>;
    	};
            extcon_usb2: tps659038_usb {
                            compatible = "ti,palmas-usb-vid";
                            ti,enable-vbus-detection;
                            ti,enable-id-detection;
                            id-gpios = <&gpio7 24 GPIO_ACTIVE_HIGH>;
                    };
    };
    &dra7_pmx_core {
    
    	i2c1_pins_default: i2c1_pins_default {
    		pinctrl-single,pins = <
    			0x400 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c1_sda.sda */
    			0x404 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c1_scl.scl */
    		>;
    	};
    
    
    	mmc1_pins_default: mmc1_pins_default {
    		pinctrl-single,pins = <
    			0x36c (PIN_INPUT | MUX_MODE14)	/* mmc1sdcd.gpio219 */
    			0x354 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
    			0x358 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */
    			0x35c (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
    			0x360 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
    			0x364 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
    			0x368 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
    		>;
    	};
    
    	mmc1_pins_hs: pinmux_mmc1_hs_pins {
    		pinctrl-single,pins = <
    			0x354 (PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE11 | MUX_MODE0)	/* mmc1_clk.clk */
    			0x358 (PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE11 | MUX_MODE0)	/* mmc1_cmd.cmd */
    			0x35c (PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE11 | MUX_MODE0)	/* mmc1_dat0.dat0 */
    			0x360 (PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE11 | MUX_MODE0)	/* mmc1_dat1.dat1 */
    			0x364 (PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE11 | MUX_MODE0)	/* mmc1_dat2.dat2 */
    			0x368 (PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE11 | MUX_MODE0)	/* mmc1_dat3.dat3 */
    		>;
    	};
    
    };
    
    
    &i2c1 {
    	status = "okay";
    	clock-frequency = <400000>;
    
    	tps659038: tps659038@58 {
    		compatible = "ti,tps659038";
    		reg = <0x58>;
    		interrupt-parent = <&gpio1>;
    		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
    
    		#interrupt-cells = <2>;
    		interrupt-controller;
    
    		ti,system-power-controller;
    
    		tps659038_pmic {
    			compatible = "ti,tps659038-pmic";
    
    			regulators {
    				smps123_reg: smps123 {
    					/* VDD_MPU */
    					regulator-name = "smps123";
    					regulator-min-microvolt = < 850000>;
    					regulator-max-microvolt = <1250000>;
    					regulator-always-on;
    					regulator-boot-on;
    				};
    
    				smps45_reg: smps45 {
    					/* VDD_DSPEVE */
    					regulator-name = "smps45";
    					regulator-min-microvolt = < 850000>;
    					regulator-max-microvolt = <1150000>;
    					regulator-boot-on;
    					regulator-always-on;
    				};
    
    				smps6_reg: smps6 {
    					/* VDD_GPU - over VDD_SMPS6 */
    					regulator-name = "smps6";
    					regulator-min-microvolt = <850000>;
    					regulator-max-microvolt = <1250000>;
    					regulator-boot-on;
    					regulator-always-on;
    				};
    
    				smps7_reg: smps7 {
    					/* CORE_VDD */
    					regulator-name = "smps7";
    					regulator-min-microvolt = <850000>;
    					regulator-max-microvolt = <1060000>;
    					regulator-always-on;
    					regulator-boot-on;
    				};
    
    				smps8_reg: smps8 {
    					/* VDD_IVAHD */
    					regulator-name = "smps8";
    					regulator-min-microvolt = < 850000>;
    					regulator-max-microvolt = <1250000>;
    					regulator-boot-on;
    					regulator-always-on;
    				};
    
    				smps9_reg: smps9 {
    					/* VDDS1V8 */
    					regulator-name = "smps9";
    					regulator-min-microvolt = <1800000>;
    					regulator-max-microvolt = <1800000>;
    					regulator-always-on;
    					regulator-boot-on;
    				};
    
    				ldo1_reg: ldo1 {
    					/* LDO1_OUT --> SDIO  */
    					regulator-name = "ldo1";
    					regulator-min-microvolt = <1800000>;
    					regulator-max-microvolt = <3300000>;
    					regulator-boot-on;
    					regulator-always-on;
    				};
    
    				ldo2_reg: ldo2 {
    					/* VDD_RTCIO */
    					/* LDO2 -> VDDSHV5, LDO2 also goes to CAN_PHY_3V3 */
    					regulator-name = "ldo2";
    					regulator-min-microvolt = <3300000>;
    					regulator-max-microvolt = <3300000>;
    					regulator-boot-on;
    					regulator-always-on;
    				};
    
    				ldo3_reg: ldo3 {
    					/* VDDA_1V8_PHY */
    					regulator-name = "ldo3";
    					regulator-min-microvolt = <1800000>;
    					regulator-max-microvolt = <1800000>;
    					regulator-always-on;
    					regulator-boot-on;
    				};
    
    				ldo9_reg: ldo9 {
    					/* VDD_RTC */
    					regulator-name = "ldo9";
    					regulator-min-microvolt = <1050000>;
    					regulator-max-microvolt = <1050000>;
    					regulator-boot-on;
    					regulator-always-on;
    				};
    
    				ldoln_reg: ldoln {
    					/* VDDA_1V8_PLL */
    					regulator-name = "ldoln";
    					regulator-min-microvolt = <1800000>;
    					regulator-max-microvolt = <1800000>;
    					regulator-always-on;
    					regulator-boot-on;
    				};
    
    				ldousb_reg: ldousb {
    					/* VDDA_3V_USB: VDDA_USBHS33 */
    					regulator-name = "ldousb";
    					regulator-min-microvolt = <3300000>;
    					regulator-max-microvolt = <3300000>;
    					regulator-boot-on;
    					regulator-always-on;
    				};
    
    				/* REGEN1 is unused */
    				                                regen1: regen1 {
                                            /* VDD_3V3_ON */
                                            regulator-name = "regen1";
                                            regulator-boot-on;
                                            regulator-always-on;
                                    };
    
    				regen2: regen2 {
    					/* Needed for PMIC internal resources */
    					regulator-name = "regen2";
    					regulator-boot-on;
    					regulator-always-on;
    				};
    
    				/* REGEN3 is unused */
    
    				sysen1: sysen1 {
    					/* PMIC_REGEN_3V3 */
    					regulator-name = "sysen1";
    					regulator-boot-on;
    					regulator-always-on;
    				};
    
    				sysen2: sysen2 {
    					/* PMIC_REGEN_DDR */
    					regulator-name = "sysen2";
    					regulator-boot-on;
    					regulator-always-on;
    				};
    			};
    	};
    	};	
    		
    		pcf_lcd: gpio@20 {
                    compatible = "nxp,pcf8575";
                    reg = <0x20>;
                    gpio-controller;
                    #gpio-cells = <2>;
            	};
    	        
    		pcf_gpio_21: gpio@21 {
                    compatible = "nxp,pcf8575";
                    reg = <0x21>;
                    lines-initial-states = <0x1408>;
                    gpio-controller;
                    #gpio-cells = <2>;
                    interrupt-parent = <&gpio6>;
                    interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
                    interrupt-controller;
                    #interrupt-cells = <2>;
            };
    
    
    	tmp102: tmp102@48 {
    		compatible = "ti,tmp102";
    		reg = <0x48>;
    		interrupt-parent = <&gpio7>;
    		interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
    		#thermal-sensor-cells = <1>;
    	};
    
    	tlv320aic3104: tlv320aic3104@18 {
    		#sound-dai-cells = <0>;
    		compatible = "ti,tlv320aic3104";
    		reg = <0x18>;
    		status = "okay";
    		adc-settle-ms = <40>;
    
    		AVDD-supply = <&vdd_3v3>;
    		IOVDD-supply = <&vdd_3v3>;
    		DRVDD-supply = <&vdd_3v3>;
    		DVDD-supply = <&aic_dvdd>;
    	};
    };
    
    
    &gpio7 {
    	ti,no-reset-on-init;
    	ti,no-idle-on-init;
    };
    
    &voltdm_mpu {
    	vdd-supply = <&smps123_reg>;
    };
    
    &voltdm_dspeve {
    	vdd-supply = <&smps45_reg>;
    };
    
    &voltdm_gpu {
    	vdd-supply = <&smps6_reg>;
    };
    
    &voltdm_ivahd {
    	vdd-supply = <&smps8_reg>;
    };
    
    &voltdm_core {
    	vdd-supply = <&smps7_reg>;
    };
    
    &cpu0 {
    	cpu0-voltdm = <&voltdm_mpu>;
    	voltage-tolerance = <1>;
    };
    #if 0
    &uart3 {
    	status = "okay";
    	interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
    			      <&dra7_pmx_core 0x3f8>;
    };
    #endif
    &mac {
    	status = "okay";
    	dual_emac;
    };
    
    &cpsw_emac0 {
    	phy_id = <&davinci_mdio>, <1>;
    	phy-mode = "rgmii";
    	dual_emac_res_vlan = <1>;
    };
    
    &cpsw_emac1 {
    	phy_id = <&davinci_mdio>, <2>;
    	phy-mode = "rgmii";
    	dual_emac_res_vlan = <2>;
    };
    
    &mmc1 {
    	status = "okay";
    
    	pinctrl-names = "default", "hs";
    	pinctrl-0 = <&mmc1_pins_default>;
    	pinctrl-1 = <&mmc1_pins_hs>;
    	pbias-supply = <&pbias_mmc_reg>;
    	vmmc-supply = <&evm_3v3_sd>;
    	vmmc_aux-supply = <&ldo1_reg>;
    	bus-width = <4>;
    	cd-gpios = <&gpio6 27 0>; /* gpio 219 */
    	max-frequency = <96000000>;
    };
    
    #if 0 
    &mmc2 {
    	status = "okay";
    
    	pinctrl-names = "default", "hs", "ddr_1_8v";
    	pinctrl-0 = <&mmc2_pins_default>;
    	pinctrl-1 = <&mmc2_pins_hs>;
    	pinctrl-2 = <&mmc2_pins_ddr_1_8v &mmc2_iodelay_ddr_1_8v_conf>;
    
    	vmmc-supply = <&vdd_3v3>;
    	bus-width = <8>;
    	ti,non-removable;
    	cap-mmc-dual-data-rate;
    	max-frequency = <96000000>;
    	/delete-property/ mmc-hs200-1_8v;
    };
    &sata {
    	status = "okay";
    };
    #endif 
    &usb2_phy1 {
    	phy-supply = <&ldousb_reg>;
    };
    
    &usb2_phy2 {
    	phy-supply = <&ldousb_reg>;
    };
    
    &usb1 {
    	dr_mode = "host";
    };
    
    &omap_dwc3_1 {
    	extcon = <&extcon_usb1>;
    };
    
    &omap_dwc3_2 {
    	extcon = <&extcon_usb2>;
    };
    
    &usb2 {
    	/*
    	 * Stand alone usage is peripheral only.
    	 * However, with some resistor modifications
    	 * this port can be used via expansion connectors
    	 * as "host" or "dual-role". If so, provide
    	 * the necessary dr_mode override in the expansion
    	 * board's DT.
    	 */
    	dr_mode = "peripheral";
    };
    #if 0
    &cpu_trips {
    	cpu_alert1: cpu_alert1 {
    		temperature = <50000>; /* millicelsius */
    		hysteresis = <2000>; /* millicelsius */
    		type = "active";
    	};
    };
    
    &cpu_cooling_maps {
    	map1 {
    		trip = <&cpu_alert1>;
    		cooling-device = <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
    	};
    };
    
    &thermal_zones {
    	board_thermal: board_thermal {
    		polling-delay-passive = <1250>; /* milliseconds */
    		polling-delay = <1500>; /* milliseconds */
    
    				/* sensor       ID */
    		thermal-sensors = <&tmp102     0>;
    
    		board_trips: trips {
    			board_alert0: board_alert {
    				temperature = <40000>; /* millicelsius */
    				hysteresis = <2000>; /* millicelsius */
    				type = "active";
    			};
    
    			board_crit: board_crit {
    				temperature = <105000>; /* millicelsius */
    				hysteresis = <0>; /* millicelsius */
    				type = "critical";
    			};
    		};
    
    		board_cooling_maps: cooling-maps {
    			map0 {
    				trip = <&board_alert0>;
    				cooling-device =
    				  <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
    			};
    		};
           };
    };
    #endif
    &dss {
    	status = "ok";
    
    	vdda_video-supply = <&ldoln_reg>;
    };
    
    
    &mcasp3 {
    	#sound-dai-cells = <0>;
    	status = "okay";
    
    	op-mode = <0>;	/* MCASP_IIS_MODE */
    	tdm-slots = <2>;
    	/* 4 serializers */
    	serial-dir = <	/* 0: INACTIVE, 1: TX, 2: RX */
    		1 2 0 0
    	>;
    	tx-num-evt = <8>;
    	rx-num-evt = <8>;
    };
    
    &mailbox3 {
    	status = "okay";
    	mbox_pru1_0: mbox_pru1_0 {
    		status = "okay";
    	};
    	mbox_pru1_1: mbox_pru1_1 {
    		status = "okay";
    	};
    };
    
    &mailbox4 {
    	status = "okay";
    	mbox_pru2_0: mbox_pru2_0 {
    		status = "okay";
    	};
    	mbox_pru2_1: mbox_pru2_1 {
    		status = "okay";
    	};
    };
    
    &mailbox5 {
    	status = "okay";
    	mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
    		status = "okay";
    	};
    	mbox_dsp1_ipc3x: mbox_dsp1_ipc3x {
    		status = "okay";
    	};
    };
    
    &mailbox6 {
    	status = "okay";
    	mbox_ipu2_ipc3x: mbox_ipu2_ipc3x {
    		status = "okay";
    	};
    	mbox_dsp2_ipc3x: mbox_dsp2_ipc3x {
    		status = "okay";
    	};
    };
    
    &mmu0_dsp1 {
    	status = "okay";
    };
    
    &mmu1_dsp1 {
    	status = "okay";
    };
    
    &mmu0_dsp2 {
    	status = "okay";
    };
    
    &mmu1_dsp2 {
    	status = "okay";
    };
    
    &mmu_ipu1 {
    	status = "okay";
    };
    
    &mmu_ipu2 {
    	status = "okay";
    };
    
    &ipu2 {
    	status = "okay";
    	memory-region = <&ipu2_cma_pool>;
    	mboxes = <&mailbox6 &mbox_ipu2_ipc3x>;
    	timers = <&timer3>;
    	watchdog-timers = <&timer4>, <&timer9>;
    };
    
    &ipu1 {
    	status = "okay";
    	memory-region = <&ipu1_cma_pool>;
    	mboxes = <&mailbox5 &mbox_ipu1_ipc3x>;
    	timers = <&timer11>;
    };
    
    &dsp1 {
    	status = "okay";
    	memory-region = <&dsp1_cma_pool>;
    	mboxes = <&mailbox5 &mbox_dsp1_ipc3x>;
    	timers = <&timer5>;
    };
    
    &dsp2 {
    	status = "okay";
    	memory-region = <&dsp2_cma_pool>;
    	mboxes = <&mailbox6 &mbox_dsp2_ipc3x>;
    	timers = <&timer6>;
    };
    
    #include "am57xx-evm-cmem.dtsi"
    
    Hi Yordan,

    please see the attached dts file , we are using UART1 as console and MMC1 as SD card. I am also stopping at the u-boot prompt and giving following commands:

    setenv bootargs console=ttyO0,115200n8 elevator=noop root=/dev/mmcblk0p2 rw rootwait earlyprintk
    setenv fdtfile am57xx-beagle-x15.dtb
    mmc rescan
    fatload mmc 0 0x82000000 zImage
    fatload mmc 0 0x88000000 am57xx-beagle-x15.dtb
    bootz ${loadaddr} - ${fdtaddr}

    Best Regards,
    Ganesh

  • We have modified the regulator names in dts file to match what was being used in glsdk. Hope that is fine.

    BR/
    Ganesh
  • Strange thing is that if I connect the JTAG (when the kernel execution is stopped at starting kernel .....) and see the all the registers at this time all are showing 0x10011142. Is processor getting reset ?

    Best Regards,
    Ganesh
  • Hi,

    I will have a look at your dts, to see if anything is wrong. 

    In the mean time, try adding those bootargs:

     console=ttyO0,115200n8 elevator=noop root=/dev/mmcblk0p2 rw rootwait earlyprintk

    in u-boot/include/configs/ti_omap5_common.h env secion:  

     #define CONFIG_EXTRA_ENV_SETTINGS \

    DEFAULT_LINUX_BOOT_ENV \

    DEFAULT_MMC_TI_ARGS \

    "console=" CONSOLEDEV ",115200n8\0" \

    "fdtfile=undefined\0" \

    "bootpart=0:2\0" \

    "bootdir=/boot\0" \

    "bootfile=zImage\0" \

    "usbtty=cdc_acm\0" \

    ............................... 

    Also in the same section try commenting the findfdt & hardcode the fdtfile to  am57xx-beagle-x15.dtb.

    Change the CONSOLEDEV in beagle_x15.h to ttyO0 & try to boot without stopping the board at u-boot stage & executing the fatload commands.

    Best Regards, 
    Yordan

  • Hi Yordan,

    Please verify the updated dts that I am going to share now. I will also try to modify the above suggestions.

    Best Regards,
    Ganesh

    4532.am57xx-beagle-x15_dts.txt
    /*
     * Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/
     *
     * This program is free software; you can redistribute it and/or modify
     * it under the terms of the GNU General Public License version 2 as
     * published by the Free Software Foundation.
     */
    /dts-v1/;
    
    #include "dra74x.dtsi"
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    
    / {
    	model = "TI AM5728 BeagleBoard-X15";
    	compatible = "ti,am572x-beagle-x15", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7";
    
    	memory {
    		device_type = "memory";
    		reg = <0x80000000 0x80000000>;
    	};
    
    	reserved-memory {
    		#address-cells = <1>;
    		#size-cells = <1>;
    		ranges;
    
    		ipu2_cma_pool: ipu2_cma@95800000 {
    			compatible = "shared-dma-pool";
    			reg = <0x95800000 0x3800000>;
    			reusable;
    			status = "okay";
    		};
    
    		dsp1_cma_pool: dsp1_cma@99000000 {
    			compatible = "shared-dma-pool";
    			reg = <0x99000000 0x4000000>;
    			reusable;
    			status = "okay";
    		};
    
    		ipu1_cma_pool: ipu1_cma@9d000000 {
    			compatible = "shared-dma-pool";
    			reg = <0x9d000000 0x2000000>;
    			reusable;
    			status = "okay";
    		};
    
    		dsp2_cma_pool: dsp2_cma@9f000000 {
    			compatible = "shared-dma-pool";
    			reg = <0x9f000000 0x1000000>;
    			reusable;
    			status = "okay";
    		};
    	};
    
    	vdd_3v3: fixedregulator-vdd_3v3 {
    		compatible = "regulator-fixed";
    		regulator-name = "vdd_3v3";
    		vin-supply = <&regen1>;
    		regulator-min-microvolt = <3300000>;
    		regulator-max-microvolt = <3300000>;
    	};
            evm_3v3_sd: fixedregulator-sd {
                    compatible = "regulator-fixed";
                    regulator-name = "evm_3v3_sd";
                    regulator-min-microvolt = <3300000>;
                    regulator-max-microvolt = <3300000>;
                    enable-active-high;
                    gpio = <&pcf_gpio_21 5 0>;
            };
    
    	aic_dvdd: fixedregulator-aic_dvdd {
    		compatible = "regulator-fixed";
    		regulator-name = "aic_dvdd_fixed";
    		vin-supply = <&vdd_3v3>;
    		regulator-min-microvolt = <1800000>;
    		regulator-max-microvolt = <1800000>;
    	};
    
    	vtt_fixed: fixedregulator-vtt {
    		/* TPS51200 */
    		compatible = "regulator-fixed";
    		regulator-name = "vtt_fixed";
    		vin-supply = <&sysen2>;
    		regulator-min-microvolt = <1350000>;
    		regulator-max-microvolt = <1350000>;
    		regulator-always-on;
    		regulator-boot-on;
    		enable-active-high;
    		gpio = <&gpio7 11 GPIO_ACTIVE_HIGH>;
    	};
    
    	extcon_usb1: extcon_usb1 {
    		compatible = "linux,extcon-usb-gpio";
    		id-gpio = <&gpio7 25 GPIO_ACTIVE_HIGH>;
    	};
            extcon_usb2: tps659038_usb {
                            compatible = "ti,palmas-usb-vid";
                            ti,enable-vbus-detection;
                            ti,enable-id-detection;
                            id-gpios = <&gpio7 24 GPIO_ACTIVE_HIGH>;
                    };
    };
    &dra7_pmx_core {
    
    	i2c1_pins_default: i2c1_pins_default {
    		pinctrl-single,pins = <
    			0x400 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c1_sda.sda */
    			0x404 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c1_scl.scl */
    		>;
    	};
    
    
    	mmc1_pins_default: mmc1_pins_default {
    		pinctrl-single,pins = <
    			0x36c (PIN_INPUT | MUX_MODE14)	/* mmc1sdcd.gpio219 */
    			0x354 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
    			0x358 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */
    			0x35c (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
    			0x360 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
    			0x364 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
    			0x368 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
    		>;
    	};
    
    	mmc1_pins_hs: pinmux_mmc1_hs_pins {
    		pinctrl-single,pins = <
    			0x354 (PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE11 | MUX_MODE0)	/* mmc1_clk.clk */
    			0x358 (PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE11 | MUX_MODE0)	/* mmc1_cmd.cmd */
    			0x35c (PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE11 | MUX_MODE0)	/* mmc1_dat0.dat0 */
    			0x360 (PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE11 | MUX_MODE0)	/* mmc1_dat1.dat1 */
    			0x364 (PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE11 | MUX_MODE0)	/* mmc1_dat2.dat2 */
    			0x368 (PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE11 | MUX_MODE0)	/* mmc1_dat3.dat3 */
    		>;
    	};
            uart1_pins: pinmux_uart1_pins {
                   pinctrl-single,pins = <
                            0x3e0 (PIN_INPUT_SLEW | MUX_MODE0)   /* uart1_rxd */
                            0x3e4 (PIN_INPUT_SLEW | MUX_MODE0)  /* uart1_txd */
                    >;
            };
    
    
    };
    
    
    &i2c1 {
    	status = "okay";
    	clock-frequency = <400000>;
    
    	tps659038: tps659038@58 {
    		compatible = "ti,tps659038";
    		reg = <0x58>;
    		interrupt-parent = <&gpio1>;
    		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
    
    		#interrupt-cells = <2>;
    		interrupt-controller;
    
    		ti,system-power-controller;
    
    		tps659038_pmic {
    			compatible = "ti,tps659038-pmic";
    
    			regulators {
    				smps123_reg: smps123 {
    					/* VDD_MPU */
    					regulator-name = "smps123";
    					regulator-min-microvolt = < 850000>;
    					regulator-max-microvolt = <1250000>;
    					regulator-always-on;
    					regulator-boot-on;
    				};
    
    				smps45_reg: smps45 {
    					/* VDD_DSPEVE */
    					regulator-name = "smps45";
    					regulator-min-microvolt = < 850000>;
    					regulator-max-microvolt = <1150000>;
    					regulator-boot-on;
    					regulator-always-on;
    				};
    
    				smps6_reg: smps6 {
    					/* VDD_GPU - over VDD_SMPS6 */
    					regulator-name = "smps6";
    					regulator-min-microvolt = <850000>;
    					regulator-max-microvolt = <1250000>;
    					regulator-boot-on;
    					regulator-always-on;
    				};
    
    				smps7_reg: smps7 {
    					/* CORE_VDD */
    					regulator-name = "smps7";
    					regulator-min-microvolt = <850000>;
    					regulator-max-microvolt = <1060000>;
    					regulator-always-on;
    					regulator-boot-on;
    				};
    
    				smps8_reg: smps8 {
    					/* VDD_IVAHD */
    					regulator-name = "smps8";
    					regulator-min-microvolt = < 850000>;
    					regulator-max-microvolt = <1250000>;
    					regulator-boot-on;
    					regulator-always-on;
    				};
    
    				smps9_reg: smps9 {
    					/* VDDS1V8 */
    					regulator-name = "smps9";
    					regulator-min-microvolt = <1800000>;
    					regulator-max-microvolt = <1800000>;
    					regulator-always-on;
    					regulator-boot-on;
    				};
    
    				ldo1_reg: ldo1 {
    					/* LDO1_OUT --> SDIO  */
    					regulator-name = "ldo1";
    					regulator-min-microvolt = <1800000>;
    					regulator-max-microvolt = <3300000>;
    					regulator-boot-on;
    					regulator-always-on;
    				};
    
    				ldo2_reg: ldo2 {
    					/* VDD_RTCIO */
    					/* LDO2 -> VDDSHV5, LDO2 also goes to CAN_PHY_3V3 */
    					regulator-name = "ldo2";
    					regulator-min-microvolt = <3300000>;
    					regulator-max-microvolt = <3300000>;
    					regulator-boot-on;
    					regulator-always-on;
    				};
    
    				ldo3_reg: ldo3 {
    					/* VDDA_1V8_PHY */
    					regulator-name = "ldo3";
    					regulator-min-microvolt = <1800000>;
    					regulator-max-microvolt = <1800000>;
    					regulator-always-on;
    					regulator-boot-on;
    				};
    
    				ldo9_reg: ldo9 {
    					/* VDD_RTC */
    					regulator-name = "ldo9";
    					regulator-min-microvolt = <1050000>;
    					regulator-max-microvolt = <1050000>;
    					regulator-boot-on;
    					regulator-always-on;
    				};
    
    				ldoln_reg: ldoln {
    					/* VDDA_1V8_PLL */
    					regulator-name = "ldoln";
    					regulator-min-microvolt = <1800000>;
    					regulator-max-microvolt = <1800000>;
    					regulator-always-on;
    					regulator-boot-on;
    				};
    
    				ldousb_reg: ldousb {
    					/* VDDA_3V_USB: VDDA_USBHS33 */
    					regulator-name = "ldousb";
    					regulator-min-microvolt = <3300000>;
    					regulator-max-microvolt = <3300000>;
    					regulator-boot-on;
    					regulator-always-on;
    				};
    
    				/* REGEN1 is unused */
    				                                regen1: regen1 {
                                            /* VDD_3V3_ON */
                                            regulator-name = "regen1";
                                            regulator-boot-on;
                                            regulator-always-on;
                                    };
    
    				regen2: regen2 {
    					/* Needed for PMIC internal resources */
    					regulator-name = "regen2";
    					regulator-boot-on;
    					regulator-always-on;
    				};
    
    				/* REGEN3 is unused */
    
    				sysen1: sysen1 {
    					/* PMIC_REGEN_3V3 */
    					regulator-name = "sysen1";
    					regulator-boot-on;
    					regulator-always-on;
    				};
    
    				sysen2: sysen2 {
    					/* PMIC_REGEN_DDR */
    					regulator-name = "sysen2";
    					regulator-boot-on;
    					regulator-always-on;
    				};
    			};
    	};
    	};	
    		
    		pcf_lcd: gpio@20 {
                    compatible = "nxp,pcf8575";
                    reg = <0x20>;
                    gpio-controller;
                    #gpio-cells = <2>;
            	};
    	        
    		pcf_gpio_21: gpio@21 {
                    compatible = "nxp,pcf8575";
                    reg = <0x21>;
                    lines-initial-states = <0x1408>;
                    gpio-controller;
                    #gpio-cells = <2>;
                    interrupt-parent = <&gpio6>;
                    interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
                    interrupt-controller;
                    #interrupt-cells = <2>;
            };
    
    
    	tmp102: tmp102@48 {
    		compatible = "ti,tmp102";
    		reg = <0x48>;
    		interrupt-parent = <&gpio7>;
    		interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
    		#thermal-sensor-cells = <1>;
    	};
    
    	tlv320aic3104: tlv320aic3104@18 {
    		#sound-dai-cells = <0>;
    		compatible = "ti,tlv320aic3104";
    		reg = <0x18>;
    		status = "okay";
    		adc-settle-ms = <40>;
    
    		AVDD-supply = <&vdd_3v3>;
    		IOVDD-supply = <&vdd_3v3>;
    		DRVDD-supply = <&vdd_3v3>;
    		DVDD-supply = <&aic_dvdd>;
    	};
    };
    
    
    &gpio7 {
    	ti,no-reset-on-init;
    	ti,no-idle-on-init;
    };
    
    &voltdm_mpu {
    	vdd-supply = <&smps123_reg>;
    };
    
    &voltdm_dspeve {
    	vdd-supply = <&smps45_reg>;
    };
    
    &voltdm_gpu {
    	vdd-supply = <&smps6_reg>;
    };
    
    &voltdm_ivahd {
    	vdd-supply = <&smps8_reg>;
    };
    
    &voltdm_core {
    	vdd-supply = <&smps7_reg>;
    };
    
    &cpu0 {
    	cpu0-voltdm = <&voltdm_mpu>;
    	voltage-tolerance = <1>;
    };
    &uart1 {
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <&uart1_pins>;
    };
    
    #if 0
    &uart3 {
    	status = "okay";
    	interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
    			      <&dra7_pmx_core 0x3f8>;
    };
    #endif
    &mac {
    	status = "okay";
    	dual_emac;
    };
    
    &cpsw_emac0 {
    	phy_id = <&davinci_mdio>, <1>;
    	phy-mode = "rgmii";
    	dual_emac_res_vlan = <1>;
    };
    
    &cpsw_emac1 {
    	phy_id = <&davinci_mdio>, <2>;
    	phy-mode = "rgmii";
    	dual_emac_res_vlan = <2>;
    };
    
    &mmc1 {
    	status = "okay";
    
    	pinctrl-names = "default", "hs";
    	pinctrl-0 = <&mmc1_pins_default>;
    	pinctrl-1 = <&mmc1_pins_hs>;
    	pbias-supply = <&pbias_mmc_reg>;
    	vmmc-supply = <&evm_3v3_sd>;
    	vmmc_aux-supply = <&ldo1_reg>;
    	bus-width = <4>;
    	cd-gpios = <&gpio6 27 0>; /* gpio 219 */
    	max-frequency = <96000000>;
    };
    
    #if 0 
    &mmc2 {
    	status = "okay";
    
    	pinctrl-names = "default", "hs", "ddr_1_8v";
    	pinctrl-0 = <&mmc2_pins_default>;
    	pinctrl-1 = <&mmc2_pins_hs>;
    	pinctrl-2 = <&mmc2_pins_ddr_1_8v &mmc2_iodelay_ddr_1_8v_conf>;
    
    	vmmc-supply = <&vdd_3v3>;
    	bus-width = <8>;
    	ti,non-removable;
    	cap-mmc-dual-data-rate;
    	max-frequency = <96000000>;
    	/delete-property/ mmc-hs200-1_8v;
    };
    
    &sata {
    	status = "okay";
    };
    &usb2_phy1 {
    	phy-supply = <&ldousb_reg>;
    };
    
    &usb2_phy2 {
    	phy-supply = <&ldousb_reg>;
    };
    
    &usb1 {
    	dr_mode = "host";
    };
    
    &omap_dwc3_1 {
    	extcon = <&extcon_usb1>;
    };
    
    &omap_dwc3_2 {
    	extcon = <&extcon_usb2>;
    };
    
    &usb2 {
    	/*
    	 * Stand alone usage is peripheral only.
    	 * However, with some resistor modifications
    	 * this port can be used via expansion connectors
    	 * as "host" or "dual-role". If so, provide
    	 * the necessary dr_mode override in the expansion
    	 * board's DT.
    	 */
    	dr_mode = "peripheral";
    };
    #endif 
    #if 0
    &cpu_trips {
    	cpu_alert1: cpu_alert1 {
    		temperature = <50000>; /* millicelsius */
    		hysteresis = <2000>; /* millicelsius */
    		type = "active";
    	};
    };
    
    &cpu_cooling_maps {
    	map1 {
    		trip = <&cpu_alert1>;
    		cooling-device = <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
    	};
    };
    
    &thermal_zones {
    	board_thermal: board_thermal {
    		polling-delay-passive = <1250>; /* milliseconds */
    		polling-delay = <1500>; /* milliseconds */
    
    				/* sensor       ID */
    		thermal-sensors = <&tmp102     0>;
    
    		board_trips: trips {
    			board_alert0: board_alert {
    				temperature = <40000>; /* millicelsius */
    				hysteresis = <2000>; /* millicelsius */
    				type = "active";
    			};
    
    			board_crit: board_crit {
    				temperature = <105000>; /* millicelsius */
    				hysteresis = <0>; /* millicelsius */
    				type = "critical";
    			};
    		};
    
    		board_cooling_maps: cooling-maps {
    			map0 {
    				trip = <&board_alert0>;
    				cooling-device =
    				  <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
    			};
    		};
           };
    };
    #endif
    &dss {
    	status = "ok";
    
    	vdda_video-supply = <&ldoln_reg>;
    };
    
    #if 0
    &mcasp3 {
    	#sound-dai-cells = <0>;
    	status = "okay";
    
    	op-mode = <0>;	/* MCASP_IIS_MODE */
    	tdm-slots = <2>;
    	/* 4 serializers */
    	serial-dir = <	/* 0: INACTIVE, 1: TX, 2: RX */
    		1 2 0 0
    	>;
    	tx-num-evt = <8>;
    	rx-num-evt = <8>;
    };
    
    &mailbox3 {
    	status = "okay";
    	mbox_pru1_0: mbox_pru1_0 {
    		status = "okay";
    	};
    	mbox_pru1_1: mbox_pru1_1 {
    		status = "okay";
    	};
    };
    
    &mailbox4 {
    	status = "okay";
    	mbox_pru2_0: mbox_pru2_0 {
    		status = "okay";
    	};
    	mbox_pru2_1: mbox_pru2_1 {
    		status = "okay";
    	};
    };
    
    &mailbox5 {
    	status = "okay";
    	mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
    		status = "okay";
    	};
    	mbox_dsp1_ipc3x: mbox_dsp1_ipc3x {
    		status = "okay";
    	};
    };
    
    &mailbox6 {
    	status = "okay";
    	mbox_ipu2_ipc3x: mbox_ipu2_ipc3x {
    		status = "okay";
    	};
    	mbox_dsp2_ipc3x: mbox_dsp2_ipc3x {
    		status = "okay";
    	};
    };
    #endif
    &mmu0_dsp1 {
    	status = "okay";
    };
    
    &mmu1_dsp1 {
    	status = "okay";
    };
    
    &mmu0_dsp2 {
    	status = "okay";
    };
    
    &mmu1_dsp2 {
    	status = "okay";
    };
    
    &mmu_ipu1 {
    	status = "okay";
    };
    
    &mmu_ipu2 {
    	status = "okay";
    };
    
    &ipu2 {
    	status = "okay";
    	memory-region = <&ipu2_cma_pool>;
    	mboxes = <&mailbox6 &mbox_ipu2_ipc3x>;
    	timers = <&timer3>;
    	watchdog-timers = <&timer4>, <&timer9>;
    };
    
    &ipu1 {
    	status = "okay";
    	memory-region = <&ipu1_cma_pool>;
    	mboxes = <&mailbox5 &mbox_ipu1_ipc3x>;
    	timers = <&timer11>;
    };
    
    &dsp1 {
    	status = "okay";
    	memory-region = <&dsp1_cma_pool>;
    	mboxes = <&mailbox5 &mbox_dsp1_ipc3x>;
    	timers = <&timer5>;
    };
    
    &dsp2 {
    	status = "okay";
    	memory-region = <&dsp2_cma_pool>;
    	mboxes = <&mailbox6 &mbox_dsp2_ipc3x>;
    	timers = <&timer6>;
    };
    
    #include "am57xx-evm-cmem.dtsi"
    

  • No above suggestions does not help. CONFIG_TARGET_DRA7XX_EVM should be enabled in the .config of the uboot or not. Since the board is detected as DRA752 should above config needs to be enabled in the beagle_x15_defconfig ?

    Best Regards,
    Ganesh
  • Hi,

    Ganesh Tenka said:
    Since the board is detected as DRA752 should above config needs to be enabled in the beagle_x15_defconfig ?

    No you should not add CONFIG_TARGET_DRAX7XX_EVM in include/configs/beagle_x15.h 

    The dts file you've attached seems ok.

    Do you use uEnv.txt? 

    Best Regards, 
    Yordan

  • Yes here is the content of that:
    # This uEnv.txt file can contain additional environment settings that you
    # want to set in U-Boot at boot time. This can be simple variables such
    # as the serverip or custom variables. The format of this file is:
    # variable=value
    # NOTE: This file will be evaluated after the bootcmd is run and the
    # bootcmd must be set to load this file if it exists (this is the
    # default on all newer U-Boot images. This also means that some
    # variables such as bootdelay cannot be changed by this file since
    # it is not evaluated until the bootcmd is run.
    fdtfile=am57xx-beagle-x15.dtb

    ok What else could be wrong here as DTB also looks fine ?

    Best Regards,
    Ganesh
  • Hi Ganesh,

    In the device tree file you shared, I see that uart1 is not enabled. Can you please confirm whether this has been tried?

    Regards,
    Abhiroop