
On Fri, Jan 25, 2019 at 3:39 PM Adam Ford aford173@gmail.com wrote:
On Thu, Jan 24, 2019 at 7:19 AM Felix Brack fb@ltec.ch wrote:
Hello Adam,
On 23.01.2019 22:13, Adam Ford wrote:
By removing EXT support from SPL, it makes room for the extra overhead of enabling OF_CONTROL in SPL. With SPL_OF_CONTROL enabled, extra options need to be added to the device tree to tell it which portions of the tree are needed early in boot time
Unfortunately, with these options as-is, the system doesn't boot nor does it display anything on the UART. I don't have a debugger readily available, but I have seen others with AM33x boards which are similar to OMAP3 boards. This is posted as an RFC just in case anyone has any suggestions on what might be missing.
On an AM335x board I had problems when moving from embedded to separate DTB. Even if deprecated you should probably give CONFIG_OF_EMBED a try. If this works you could go back to CONFIG_OF_SEPARATE and probably give CONFIG_SPL_SEPARATE_BSS a try. Also CONFIG_DEBUG_UART (assumed the pin configuration is working) did help me quite a lot.
I had to turn off DM_SERIAL temporarily to get some debugging going. I 'think' there is something wrong with fetching data from the device tree.
I tried both OF_EMBDED and OF_SEPARATE without luck. SPL_SEPARATE_BSS is set.
U-Boot SPL 2019.01-02697-gd01806a8fc-dirty (Jan 25 2019 - 15:22:11 -0600) Trying to boot from MMC1 uclass_find_device_by_seq: 0 0
- not found
uclass_find_device_by_seq: 1 0
- not found
spl: could not find mmc device 0. error: -19 SPL: failed to boot from all boot devices ### ERROR ### Please RESET the board ###
I can see the mmc0 device is appearing in my SPL dtb file.
I am not sure what these values are support to be, but I was able to do a dump of my spl device tree:
dtc -I dtb -O dts spl/u-boot-spl.dtb
Looking at Tom's defconfig file changes for the beagle, I noticed he disabled Falcon mode. As soon as I disabled Falcon mode, I was able to get my device tree based SPL to initialize both serial and MMC. With Falcon mode enabled, it immediately stops booting and/or showing anything. There seems to be some correlation, because disabling it again make it work.
With DM_SERIAL off, I can see the dumps to the screen and with the debugging enabled, I can see that it is not able to locate the MMC device. I am going to assume that if it cannot find the MMC device, it probably cannot find the serial device which may explain why disabling DM_SERIAL in SPL with Falcon mode on shows text.
Might someone have any suggestions as to how to get both SPL_OF_CONFIG with Falcon working? I'd really like to keep that enabled by default.
adam
/dts-v1/;
/ { compatible = "ti,am3517-evm\0ti,am3517\0ti,omap3"; #address-cells = < 0x01 >; #size-cells = < 0x01 >; model = "TI AM3517 EVM (AM3517/05 TMDSEVM3517)";
chosen { stdout-path = "/ocp@68000000/serial@49020000"; };
aliases { i2c0 = "/ocp@68000000/i2c@48070000"; serial0 = "/ocp@68000000/serial@4806a000"; serial1 = "/ocp@68000000/serial@4806c000"; serial2 = "/ocp@68000000/serial@49020000"; };
ocp@68000000 { compatible = "ti,omap3-l3-smx\0simple-bus"; reg = < 0x68000000 0x10000 >; interrupts = < 0x09 0x0a >; #address-cells = < 0x01 >; #size-cells = < 0x01 >; ranges; ti,hwmods = "l3_main"; u-boot,dm-spl;
l4@48000000 { compatible = "ti,omap3-l4-core\0simple-bus"; #address-cells = < 0x01 >; #size-cells = < 0x01 >; ranges = < 0x00 0x48000000 0x1000000 >; u-boot,dm-spl;
scm@2000 { compatible = "ti,omap3-scm\0simple-bus"; reg = < 0x2000 0x2000 >; #address-cells = < 0x01 >; #size-cells = < 0x01 >; ranges = < 0x00 0x2000 0x2000 >; u-boot,dm-spl;
scm_conf@270 { compatible = "syscon\0simple-bus"; reg = < 0x270 0x330 >; #address-cells = < 0x01 >; #size-cells = < 0x01 >; ranges = < 0x00 0x270 0x330 >; u-boot,dm-spl; phandle = < 0x05 >; }; }; };
gpio@48310000 { compatible = "ti,omap3-gpio"; reg = < 0x48310000 0x200 >; interrupts = < 0x1d >; ti,hwmods = "gpio1"; ti,gpio-always-on; gpio-controller; #gpio-cells = < 0x02 >; interrupt-controller; #interrupt-cells = < 0x02 >; u-boot,dm-spl; phandle = < 0xec >; };
gpio@49050000 { compatible = "ti,omap3-gpio"; reg = < 0x49050000 0x200 >; interrupts = < 0x1e >; ti,hwmods = "gpio2"; gpio-controller; #gpio-cells = < 0x02 >; interrupt-controller; #interrupt-cells = < 0x02 >; u-boot,dm-spl; phandle = < 0xd0 >; };
gpio@49052000 { compatible = "ti,omap3-gpio"; reg = < 0x49052000 0x200 >; interrupts = < 0x1f >; ti,hwmods = "gpio3"; gpio-controller; #gpio-cells = < 0x02 >; interrupt-controller; #interrupt-cells = < 0x02 >; u-boot,dm-spl; phandle = < 0xd4 >; };
gpio@49054000 { compatible = "ti,omap3-gpio"; reg = < 0x49054000 0x200 >; interrupts = < 0x20 >; ti,hwmods = "gpio4"; gpio-controller; #gpio-cells = < 0x02 >; interrupt-controller; #interrupt-cells = < 0x02 >; u-boot,dm-spl; phandle = < 0xd8 >; };
gpio@49056000 { compatible = "ti,omap3-gpio"; reg = < 0x49056000 0x200 >; interrupts = < 0x21 >; ti,hwmods = "gpio5"; gpio-controller; #gpio-cells = < 0x02 >; interrupt-controller; #interrupt-cells = < 0x02 >; u-boot,dm-spl; phandle = < 0xe9 >; };
gpio@49058000 { compatible = "ti,omap3-gpio"; reg = < 0x49058000 0x200 >; interrupts = < 0x22 >; ti,hwmods = "gpio6"; gpio-controller; #gpio-cells = < 0x02 >; interrupt-controller; #interrupt-cells = < 0x02 >; u-boot,dm-spl; phandle = < 0xdb >; };
serial@4806a000 { compatible = "ti,omap3-uart"; reg = < 0x4806a000 0x2000 >; interrupts-extended = < 0x01 0x48 >; dmas = < 0x17 0x31 0x17 0x32 >; dma-names = "tx\0rx"; ti,hwmods = "uart1"; clock-frequency = < 0x2dc6c00 >; u-boot,dm-spl; reg-shift = < 0x02 >; };
serial@4806c000 { compatible = "ti,omap3-uart"; reg = < 0x4806c000 0x400 >; interrupts-extended = < 0x01 0x49 >; dmas = < 0x17 0x33 0x17 0x34 >; dma-names = "tx\0rx"; ti,hwmods = "uart2"; clock-frequency = < 0x2dc6c00 >; pinctrl-names = "default"; pinctrl-0 = < 0xcf >; u-boot,dm-spl; reg-shift = < 0x02 >; };
serial@49020000 { compatible = "ti,omap3-uart"; reg = < 0x49020000 0x400 >; interrupts-extended = < 0x01 0x4a >; dmas = < 0x17 0x35 0x17 0x36 >; dma-names = "tx\0rx"; ti,hwmods = "uart3"; clock-frequency = < 0x2dc6c00 >; u-boot,dm-spl; reg-shift = < 0x02 >; };
i2c@48070000 { compatible = "ti,omap3-i2c"; reg = < 0x48070000 0x80 >; interrupts = < 0x38 >; dmas = < 0x17 0x1b 0x17 0x1c >; dma-names = "tx\0rx"; #address-cells = < 0x01 >; #size-cells = < 0x00 >; ti,hwmods = "i2c1"; clock-frequency = < 0x61a80 >; u-boot,dm-spl; };
mmc@4809c000 { compatible = "ti,omap3-hsmmc"; reg = < 0x4809c000 0x200 >; interrupts = < 0x53 >; ti,hwmods = "mmc1"; ti,dual-volt; dmas = < 0x17 0x3d 0x17 0x3e >; dma-names = "tx\0rx"; pbias-supply = < 0xd5 >; status = "okay"; pinctrl-names = "default"; pinctrl-0 = < 0xd6 >; vmmc-supply = < 0xd7 >; bus-width = < 0x04 >; wp-gpios = < 0xd8 0x1e 0x00 >; cd-gpios = < 0xd8 0x1f 0x01 >; u-boot,dm-spl; };
mmc@480b4000 { compatible = "ti,omap3-hsmmc"; reg = < 0x480b4000 0x200 >; interrupts = < 0x56 >; ti,hwmods = "mmc2"; dmas = < 0x17 0x2f 0x17 0x30 >; dma-names = "tx\0rx"; interrupts-extended = < 0x01 0x56 >; status = "okay"; pinctrl-names = "default"; pinctrl-0 = < 0xd9 >; vmmc-supply = < 0xda >; non-removable; bus-width = < 0x04 >; cap-power-off-card; #address-cells = < 0x01 >; #size-cells = < 0x00 >; u-boot,dm-spl; };
bandgap@48002524 { u-boot,dm-spl; }; }; };
regards Felix