FreeBSD/Pi update

So, here is status update on the progress: freebsd-pi github repo has been merged to HEAD and should be considered only as a reference from now on. I repackaged freebsd-pi-uboot-20120806-sd.tar.gz so tar should not complain about uid/guid stuff Hans Peter Selasky and Alexander Rybalko added host mode support for DWC OTG driver Problem with tty on serial port has been fixed. Use 3wire.115200 type for ttyu0 in /etc/ttys Still a lot of stuff to do though. P.S. I’ll post updated build script later.

October 29, 2012 · 1 min · 83 words · Oleksandr Tymoshenko

projects/armv6 branch is no more

ARMv6/AMRv7 support is now in main FreeBSD codebase. New goodies: General ARMv6/ARMv7 kernel bits (pmap, cache, assembler routines, etc…) ARM SMP support VFP/Neon support ARM Generic Interrupt Controller driver Improved thread-local storage for cpus >=ARMv6 Two new values for TARGET_ARCH: armv6 and armv6eb Driver for SMSC LAN95XX and LAN8710A ethernet controllers Marvell MV78x60 support (multiuser, ARMADA XP kernel config) TI OMAP4 and AM335x support (multiuser, no GPU or graphics support, kernel configs for Pandaboard and Beaglebone) LPC32x0 support (multiuser, frame buffer works with SSD1289 LCD controller.Embedded Artists EA3250 kernel config) Barebone Nvidia Tegra2 support (timers, interrupts and UART. No kernel config) I’m going to re-create Raspberry Pi port off HEAD and start merging least intrusive bits back to the tree.

August 17, 2012 · 1 min · 120 words · Oleksandr Tymoshenko

FreeBSD/Pi setup HowTo

This instruction is no longer correct. New version is here Took some time but it seems we’re there too :) Alexander Rybalko, who works on USB drivers for the platform got remote telnet shell to the device: http://pastebin.com/6NqQLWD2 Having fixed serial console for userland applications (two lines change) and after some tweaking of SDHCI driver I got access to multiuser shell too: multiuser.txt Still not usable for putting together distros but stable enough for those who are willing to get their hands dirty with kernel side. ...

August 5, 2012 · 2 min · 292 words · Oleksandr Tymoshenko

BSD Pi

NetBSD reached multiuser on Raspberry Pi! Congratulation to Nick Hudson and all involved. FreeBSD is not there yet, but we’re not slacking either: . Well, may be just a little. It’s not even single user yet. SDHC support is work in progress. No USB yet, hence no keyboard and no network. Just console output to framebuffer or serial port.

July 13, 2012 · 1 min · 59 words · Oleksandr Tymoshenko

New U-Boot build

New build for Raspberry Pi. ChangeLog: New firmware Improved SD card performance Added USB mass storage devices support Added ext2 filesystem support (painfully slow with SD card, tolerable with USB memory stick) Tarball: raspberry-pi-uboot-20120707.tar.gz SD card image (32Mb): raspberry-pi-uboot-20120707.img

July 7, 2012 · 1 min · 39 words · Oleksandr Tymoshenko

U-Boot for Raspberry Pi, the last step

Yes, the last step. It doesn’t mean that I’m abandoning this project. Not at all. It just that it has reached the state I wanted it to reach from the very beginning: fairly stable, flexible u-boot distribution suitable to be used as an environment for OS bring-up. So now it’s time to get back to the original idea: get FreeBSD running on Raspberry Pi. So, current state of affairs is raspberry-pi-uboot-20120621.tar.gz. It includes: ...

June 22, 2012 · 1 min · 166 words · Oleksandr Tymoshenko

U-Boot for Raspberry Pi, step 8: SDHC support

Initial support for SD card has just been pushed to github repo. U-Boot 2012.04.01-00479-gb58d9ae-dirty (Jun 20 2012 - 11:47:13) DRAM: 128 MiB WARNING: Caches not enabled MMC: CAPS: 00000000 bcm2835_sdh: 0 Using default environment In: serial Out: serial Err: serial Net: Net Initialization Skipped No ethernet found. U-Boot> mmcinfo Device: bcm2835_sdh Manufacturer ID: 1b OEM: 534d Name: 00000 Tran Speed: 25000000 Rd Block Len: 512 SD version 2.0 High Capacity: No Capacity: 1.9 GiB Bus Width: 4-bit U-Boot> fatls mmc 0 16528 bootcode.bin 127 cmdline.txt 314691 loader.bin 2047848 start.elf 181196 kernel.img 5 file(s), 0 dir(s) U-Boot>

June 20, 2012 · 1 min · 96 words · Oleksandr Tymoshenko

U-Boot for Raspberry Pi, step 7: cleanup

More progress on the subject: I cleaned up sources and pushed new version to github. Stephen Warren submitted patches for R-Pi support to U-Boot mailing list here and here. His version is much cleaner so I spent some time combining his patches with ported USB driver. So now target is called rpi_b and you should use “make rpi_b_config” instead of “make raspberry_pi_config” step when building U-Boot from sources. Pre-built binaries are available for download here.

June 17, 2012 · 1 min · 75 words · Oleksandr Tymoshenko

U-Boot for Raspberry Pi, step 6: It lives!

And finally it works! U-Boot 2012.04.01-00306-gecc6e3d-dirty (Jun 15 2012 - 19:05:09) DRAM: 128 MiB WARNING: Caches not enabled Using default environment In: serial Out: serial Err: serial Net: No ethernet found. Raspberry-Pi # usb start (Re)start USB... USB: Core Release: 2.80a scanning bus for devices... 3 USB Device(s) found scanning bus for ethernet devices... 1 Ethernet Device(s) found Raspberry-Pi # dhcp Waiting for Ethernet connection... done. BOOTP broadcast 1 *** Unhandled DHCP Option in OFFER/ACK: 28 *** Unhandled DHCP Option in OFFER/ACK: 28 DHCP client bound to address 192.168.10.21 Using sms0 device TFTP from server 192.168.10.1; our IP address is 192.168.10.21 Filename 'kernel.RPI'. Load address: 0x700000 Loading: ################################################################# ################################################################# ################################################################# ################################################################# ###################################################### done Bytes transferred = 4597674 (4627aa hex) Raspberry-Pi # ping 192.168.10.1 Waiting for Ethernet connection... done. Using sms0 device host 192.168.10.1 is alive Raspberry-Pi #

June 15, 2012 · 1 min · 137 words · Oleksandr Tymoshenko

U-Boot on Raspberry Pi, step 5: More USB stuff

OK. No visual progress, but short SitRep: I got control transfers working more stable and got bulk transfer somewhat working: U-Boot sends one packet and receives response, then all bulk transfers end up in STALL state. Investigating. BOOTP broadcast 1 ** smsc95xx_send(), len 342, buf 0x7e8db5e BULK -> <3,2> dev = 3 pipe = 2 buf = 07e8db5e size = 350 dir_out = 1 max_hc_xfer_size = 65535, max_hc_pkt_count = 511 xfer_len = 350, num_packets = 6, max = 64, buffer = 07e8db5e(07e8f490) Tx: len = 350, actual = 350, err = 0 ** smsc95xx_recv() BULK -> <3,1> dev = 3 pipe = 1 buf = 07fec698 size = 2048 dir_out = 0 max_hc_xfer_size = 65535, max_hc_pkt_count = 511 xfer_len = 2048, num_packets = 32, max = 64, buffer = 07fec698(07e8f490) Rx: len = 2048, actual = 368, err = 0 packet received packet received Receive from protocol 0x800 Got IP len=346, v=45 DHCPHandler: got packet: (src=67, dst=68, len=318) state: 3 Filtering pkt = 0 DHCPHandler: got DHCP packet: (src=67, dst=68, len=318) state: 3 DHCP: state=SELECTING bp_file: "kernel.RPI" TRANSITIONING TO REQUESTING STATE *** Unhandled DHCP Option in OFFER/ACK: 130 *** Unhandled DHCP Option in OFFER/ACK: 28 DhcpSendRequestPkt: Sending DHCPREQUEST Transmitting DHCPREQUEST packet: len = 342 ** smsc95xx_send(), len 342, buf 0x7e8dace BULK -> <3,2> dev = 3 pipe = 2 buf = 07e8dace size = 350 dir_out = 1 max_hc_xfer_size = 65535, max_hc_pkt_count = 511 xfer_len = 350, num_packets = 6, max = 64, buffer = 07e8dace(07e8f490) Channel halted Tx: len = 350, actual = 0, err = 0 BOOTP broadcast 2 ** smsc95xx_send(), len 342, buf 0x7e8db5e BULK -> <3,2> dev = 3 pipe = 2 buf = 07e8dace size = 350 dir_out = 1 max_hc_xfer_size = 65535, max_hc_pkt_count = 511 xfer_len = 350, num_packets = 6, max = 64, buffer = 07e8dace(07e8f490) Channel halted Tx: len = 350, actual = 0, err = 0 BOOTP broadcast 2 ** smsc95xx_send(), len 342, buf 0x7e8db5e BULK -> <3,2> dev = 3 pipe = 2 buf = 07e8db5e size = 350 dir_out = 1 max_hc_xfer_size = 65535, max_hc_pkt_count = 511 xfer_len = 350, num_packets = 6, max = 64, buffer = 07e8db5e(07e8f490) Channel halted Tx: len = 350, actual = 0, err = 0 ** smsc95xx_recv() BULK -> <3,1> dev = 3 pipe = 1 buf = 07fec698 size = 2048 dir_out = 0 max_hc_xfer_size = 65535, max_hc_pkt_count = 511 xfer_len = 2048, num_packets = 32, max = 64, buffer = 07fec698(07e8f490) HANG at line 533: 00000423

June 15, 2012 · 2 min · 415 words · Oleksandr Tymoshenko