Hello, I have Raspberry Pi Model B+ V1.2. I would like to use official Raspbian OS with U-Boot. When Raspberry Pi turn on then U-Boot starts and run Raspbian kernel.img. But i do not have anything kernel boot message on LCD monitor. Every messages are send to serial port (UART -> RS232) to the serial console. After Raspbian is started, I can login to system only via serial console or ethernet. Possibility for login to system via keyboard and LCD/monitor console is missing. How can I enable login to system over console on LCD with keyboard connected and How can I enable kernel boot message to LCD?
My procedure for usin U-Boot with Raspberry Pi Model B+ V1.2 Step 01: Download Raspbian Jessie zip file [ https://downloads.raspberrypi.org/raspbian_latest] with SD card image and make SD card with this image. Homepage for download: [ https://www.raspberrypi.org/downloads/raspbian/]. Kernel version: 4.1.7+ (via uname -r) Default boot: boot to X-Windows (Desktop autologin) - Can I change boot to console via raspi-config, but I left default settings. Step 02: Download toolchain for cross compilation for Raspberry Pi [git clone https://github.com/raspberrypi/tools] and configure PATH. Step 03. Download U-Boot project [git clone git://git.denx.de/u-boot.git] and compile it: make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- rpi_defconfig make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- Step 04: Copy compiled u-boot.bin to Raspbian Jessie SD card. Add line kernel=u-boot.bin to end of file /boot/config.txt on Raspbian Jessie SD card. Step 05: After restart my Raspberry Pi run U-Boot and then I print some information about device: * Over terminal with serial console I print U-Boot environment: U-Boot> printenv arch=arm baudrate=115200 board=rpi board_name=Model B+ board_rev=0x10 boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; source ${scriptaddr} boot_extlinux=sysboot ${devtype} ${devnum}:${distro_bootpart} any ${scriptaddr} ${prefix}extlinux/extlinux.conf boot_prefixes=/ /boot/ boot_script_dhcp=boot.scr.uimg boot_scripts=boot.scr.uimg boot.scr boot_targets=mmc0 usb0 pxe dhcp bootcmd=run distro_bootcmd bootcmd_dhcp=usb start; if dhcp ${scriptaddr} ${boot_script_dhcp}; then source ${scriptaddr}; fi bootcmd_mmc0=setenv devnum 0; run mmc_boot bootcmd_pxe=usb start; dhcp; if pxe get; then pxe boot; fi bootcmd_usb0=setenv devnum 0; run usb_boot bootdelay=2 bootfile=boot.scr.uimg bootfstype=fat cpu=arm1176 devnum=0 devplist=1 devtype=mmc distro_bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done ethact=sms0 fdt_addr_r=0x00000100 fdtfile=bcm2835-rpi-b-plus.dtb kernel_addr_r=0x01000000 loadaddr=0x00200000 mmc_boot=if mmc dev ${devnum}; then setenv devtype mmc; run scan_dev_for_boot_part; fi pxefile_addr_r=0x00100000 ramdisk_addr_r=0x02100000 scan_dev_for_boot=echo Scanning ${devtype} ${devnum}:${distro_bootpart}...; for prefix in ${boot_prefixes}; do run scan_dev_for_extlinux; run scan_dev _for_scripts; done scan_dev_for_boot_part=part list ${devtype} ${devnum} -bootable devplist; env exists devplist || setenv devplist 1; for distro_bootpart in ${devplist} ; do if fstype ${devtype} ${devnum}:${distro_bootpart} bootfstype; then run scan_dev_for_boot; fi; done scan_dev_for_extlinux=if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}extlinux/extlinux.conf; then echo Found ${prefix}extlinux/extlinux.c onf; run boot_extlinux; echo SCRIPT FAILED: continuing...; fi scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot s cript ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done scriptaddr=0x02000000 soc=bcm283x stderr=serial,lcd stdin=serial,lcd stdout=serial,lcd usb_boot=usb start; if usb dev ${devnum}; then setenv devtype usb; run scan_dev_for_boot_part; fi usbethaddr=b8:27:eb:16:c4:8a vendor=raspberrypi Environment size: 2304/16380 bytes * U-Boot board info structure: U-Boot> bdinfo arch_number = 0x00000C42 boot_params = 0x00000100 DRAM bank = 0x00000000 -> start = 0x00000000 -> size = 0x1C000000 eth0name = sms0 ethaddr = (not set) current eth = sms0 ip_addr = <NULL> baudrate = 115200 bps TLB addr = 0x1BFF0000 relocaddr = 0x1BF4D000 reloc off = 0x1BF45000 irq_sp = 0x1BB48ED0 sp start = 0x1BB48EC0 FB base = 0x5E97A000 * U-Boot print console devices and information: U-Boot> coninfo List of available devices: serial_pl01x 00000003 .IO lcd 00000002 ..O stdout stderr serial 80000003 SIO stdin * U-Boot print header information for application image U-Boot> iminfo ## Checking Image at 02000000 ... Unknown image format! Step 06: Configure some U-Boot environments: * Setting boot only from SD card U-Boot> setenv boot_targets "mmc0" * Setting kernel arguments (copy from /boot/cmdline.txt from SD card) U-Boot> setenv bootargs "dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait" * Save U-Boot environment changes U-Boot> saveenv * Restart Raspberry Pi device U-Boot> reset Step 07: Run Raspbian Jessie kernel.img * U-Boot start screen from serial console: U-Boot 2015.10-00317-g446d37c (Nov 19 2015 - 09:51:55 +0100) DRAM: 448 MiB RPI Model B+ MMC: bcm2835_sdhci: 0 reading uboot.env In: serial Out: lcd Err: lcd Net: Net Initialization Skipped No ethernet found. Hit any key to stop autoboot: 0 switch to partitions #0, OK mmc0 is current device Scanning mmc 0:1... U-Boot> * Load kernel into the memory from serial console: U-Boot> fatload mmc 0:1 ${kernel_addr_r} kernel.img reading kernel.img 4056224 bytes read in 280 ms (13.8 MiB/s) * Run Linux zImage image from memory from serial console: U-Boot> bootz ${kernel_addr_r} Result: * Linux kernel boot message are shows only serial console: Net: Net Initialization Skipped No ethernet found. Hit any key to stop autoboot: 0 switch to partitions #0, OK mmc0 is current device Scanning mmc 0:1... U-Boot> fatload mmc 0:1 ${kernel_addr_r} kernel.img reading kernel.img 4056224 bytes read in 280 ms (13.8 MiB/s) U-Boot> U-Boot> bootz ${kernel_addr_r} Kernel image @ 0x1000000 [ 0x000000 - 0x3de3a8 ] Starting kernel ... Uncompressing Linux... done, booting the kernel. [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 4.1.7+ (dc4@dc4-XPS13-9333) (gcc version 4.8.3 20140303 (prerelease) (crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 201 4.03) ) #817 PREEMPT Sat Sep 19 15:25:36 BST 2015 [ 0.000000] CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387d [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache [ 0.000000] Machine: BCM2708 [ 0.000000] cma: Reserved 8 MiB at 0x1b800000 [ 0.000000] Memory policy: Data cache writeback [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 113680 [ 0.000000] Kernel command line: dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsc k.repair=yes rootwait [ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes) [ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) [ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes) [ 0.000000] Memory: 436552K/458752K available (6132K kernel code, 490K rwdata, 1780K rodata, 348K init, 720K bss, 14008K reserved, 8192K cma-reserv ed) [ 0.000000] Virtual kernel memory layout: =======> and other kernel boot messages... * LCD monitor shows only this lines: Net: Net Initialization Skipped No ethernet found. Hit any key to stop autoboot: 0 switch to partitions #0, OK mmc0 is current device Scanning mmc 0:1... U-Boot> fatload mmc 0:1 ${kernel_addr_r} kernel.img reading kernel.img 4056224 bytes read in 280 ms (13.8 MiB/s) U-Boot> U-Boot> bootz ${kernel_addr_r} Kernel image @ 0x1000000 [ 0x000000 - 0x3de3a8 ] Starting kernel ... =======> no other messages * I can login only via serial console or ethernet. * I would like login to Raspberry device via keyboard connecetd to Raspberry device with LCD/monitor console. But I can not login, because LCD/monitor console is missing. How can I enable login to system over console on LCD with keyboard connected? How can I enable kernel boot message to LCD? I tried: - U-Boot setenv silent 1 - U-Boot source define in u-boot/include/configs/rpi-common.h CONFIG_SILENT_CONSOLE CONFIG_SYS_DEVICE_NULLDEV CONFIG_SILENT_CONSOLE_UPDATE_ON_RELOC - U-Boot environment stderr, stdin, stdout - I tried Stephen Warren U-Boot I replaced [git clone git://git.denx.de/u-boot.git] from Step 03 to [git clone git://github.com/swarren/u-boot.git --branch rpi_dev] - I tried Sunxi U-Boot I replaced [git clone git://git.denx.de/u-boot.git] from Step 03 to [git clone https://github.com/linux-sunxi/u-boot-sunxi.git] But still i do not console on LCD monitor. Please help me. Thank you very much. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot