Raspberry Pi questions

Ian Lepore freebsd at damnhippie.dyndns.org
Tue Dec 25 23:06:48 UTC 2012

On Tue, 2012-12-25 at 12:37 -0800, Oleksandr Tymoshenko wrote:
> On 2012-12-25, at 12:21 PM, Ian Lepore <freebsd at damnhippie.dyndns.org> wrote:
> > I got my RPi running this morning, more or less.  I used the boot
> > partition from the latest image at http://www.peach.ne.jp/archives/rpi/
> > but I'm loading my own custom built kernel and world.  I have a few
> > questions...
> > 
> > Can I get ubldr to load a kernel using tftp, bootp, etc?  
>     Yes. ubldr checks U-Boot devices (SD and net), then tries to locate
> FFS partition on SD card and if fails - falls back to NFS/bootp. You can fetch
> my image, boot partition there contains ubldr, FDT blob, config.txt and boot scripts:
> http://people.freebsd.org/~gonzo/arm/rpi/freebsd-pi-r243778.img.gz

This is so close to working.  In u-boot I have an env var "usbethaddr"
which contains what seems to be the right address (it's an RPi
foundation oui).  But still when booting via ubldr it generates a random
address every time, apparently because smsc_fdt_find_mac() always
returns zeroes (I added a printf to the smsc driver).  If I hard-code
the right mac address in the smsc driver I get all the way to multiuser

Also, when ubldr launches it immediately begins to load the kernel from
sdcard before I can stop it.  I have to wait for that to finish and then
do "unload" then load the kernel from net0:.  Can I create a file that
contains different defaults or something?

The amount of ram reported by kernel startup is only 128mb.  u-boot says
384mb, that's not right either.

U-Boot 2013.01-rc1-g6709570-dirty (Nov 30 2012 - 19:09:28)

DRAM:  384 MiB
WARNING: Caches not enabled
MMC:   bcm2835_sdhci: 0
Using default environment

In:    serial
Out:   lcd
Err:   lcd
mbox: Timeout waiting for response
bcm2835: Could not set USB power state
Net:   Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot:  0 
U-Boot> usb start
(Re)start USB...
USB0:   Core Release: 2.80a
scanning bus 0 for devices... 4 USB Device(s) found
       scanning usb for storage devices... Error condition at line 748:  ACK
1 Storage Device(s) found
       scanning usb for ethernet devices... 1 Ethernet Device(s) found
U-Boot> printenv
bootcmd=if mmc rescan ${mmcdev}; then if run loadbootenv; then run importbootenv; fi; if run loadbootscript; then run bootscript; fi; fi
bootscript=echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}
importbootenv=echo Importing environment from mmc ...; env import -t $loadaddr $filesize
loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenv}
loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr

Environment size: 706/16380 bytes
U-Boot> boot
reading uEnv.txt
reading boot.scr
137 bytes read in 24411 ms (0 Bytes/s)
Running bootscript from mmc0 ...
## Executing script at 00200000
reading ubldr
242834 bytes read in 77687 ms (2.9 KiB/s)
## Starting application at 0x02000054 ...
Consoles: U-Boot console  
Compatible API signature found @17b662a8
Number of U-Boot devices: 3

FreeBSD/armv6 U-Boot loader, Revision 1.2
(root at bsdbox, Sun Dec  2 13:49:40 PST 2012)
DRAM:    384MB

Device: disk
/boot/kernel/kernel data=0x3f2038+0x1f620 syms=[0x4+0x7dd50+0x4+0x5fb94]
Hit [Enter] to boot immediately, or any other key for command prompt.

Type '?' for a list of commands, 'help' for more detailed help.
loader> unload
loader> load net0:/boot/kernel/kernel
Waiting for Ethernet connection... done.
Waiting for Ethernet connection... done.
net0:/boot/kernel/kernel data=0x38fcf8+0x20544 syms=[0x4+0x7e000+0x4+0x60b52]
loader> boot
fdt_start: 0x00468B50
Kernel entry at 0x100100...
Kernel args: (null)
KDB: debugger backends: ddb
KDB: current backend: ddb
Copyright (c) 1992-2012 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 10.0-CURRENT #32 r244563M: Tue Dec 25 15:46:23 MST 2012
    ilepore at revolution.hippie.lan:/local/build/staging/freebsd/rpi10/obj/arm.armv6/local/build/staging/freebsd/rpi10/src/sys/RPI-B-serial arm
CPU: ARM1176JZ-S rev 7 (ARM11J core)
 Supported features: ARM_ISA THUMB2 JAZELLE ARMv4 Security_Ext
 WB enabled LABT branch prediction enabled
  16KB/32B 4-way instruction cache
  16KB/32B 4-way write-back-locking-C data cache
real memory  = 134217728 (128 MB)
avail memory = 124751872 (118 MB)
random device not loaded; using insecure entropy
simplebus0: <Flattened device tree simple bus> mem 0xf2000000-0xf2ffffff on fdtbus0
intc0: <BCM2835 Interrupt Controller> mem 0xf200b200-0xf200b3ff on simplebus0
systimer0: <BCM2835 System Timer> mem 0xf2003000-0xf2003fff irq 8,9,10,11 on simplebus0
Event timer "BCM2835 Event Timer 3" frequency 1000000 Hz quality 1000
Timecounter "BCM2835 Timecounter" frequency 1000000 Hz quality 1000
sdhci_bcm0: <Broadcom 2708 SDHCI controller> mem 0xf2300000-0xf23000ff irq 70 on simplebus0
bcm_sdhci_attach(): SDHCI frequency: 50MHz
mmc0: <MMC/SD bus> on sdhci_bcm0
mbox0: <BCM2835 VideoCore Mailbox> mem 0xf200b880-0xf200b8bf irq 1 on simplebus0
bcmwd0: <BCM2708/2835 Watchdog> mem 0xf210001c-0xf2100027 on simplebus0
gpio0: <BCM2708/2835 GPIO controller> mem 0xf2200000-0xf22000af irq 57,59,58,60 on simplebus0
gpio0: read-only pins: 46,47,48,49,50,51,52,53.
gpio0: reserved pins: 48,49,50,51,52,53.
gpioc0: <GPIO controller> on gpio0
gpiobus0: <GPIO bus> on gpio0
uart0: <PrimeCell UART (PL011)> mem 0xf2201000-0xf2201fff irq 65 on simplebus0
uart0: console (115200,n,8,1)
dwcotg0: <DWC OTG 2.0 integrated USB controller> mem 0xf2980000-0xf299ffff irq 17 on simplebus0
usbus0 on dwcotg0
Timecounters tick every 10.000 msec
usbus0: 480Mbps High Speed USB v2.0
ugen0.1: <DWCOTG> at usbus0
uhub0: <DWCOTG OTG Root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus0
uhub0: 1 port with 1 removable, self powered
mmcsd0: 1886MB <SD SD02G 8.0 SN 32334986 MFG 05/2010 by 3 SD> at mmc0 25.0MHz/4bit/65535-block
bootpc_init: wired to interface 'ue0'
ugen0.2: <vendor 0x0424> at usbus0
uhub1: <vendor 0x0424 product 0x9512, class 9/0, rev 2.00/2.00, addr 2> on usbus0
uhub1: MTT enabled
uhub1: 3 ports with 2 removable, self powered
ugen0.3: <vendor 0x0424> at usbus0
smsc0: <vendor 0x0424 product 0xec00, rev 2.00/2.00, addr 3> on usbus0
getting fdt mac addr, err=0
smsc0: got mac address 00:00:00:00:00:00
smsc0: setting mac address to 06:f3:7e:bb:29:fc
smsc0: chip 0xec00, rev. 0002
miibus0: <MII bus> on smsc0
ukphy0: <Generic IEEE 802.3u media interface> PHY 1 on miibus0
ukphy0:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
ue0: <USB Ethernet> on smsc0
ue0: Ethernet address: 06:f3:7e:bb:29:fc
smsc0: setting mac address to 06:f3:7e:bb:29:fc
smsc0: chip 0xec00, rev. 0002
ue0: link state changed to DOWN
Sending DHCP Discover packet from interface ue0 (06:f3:7e:bb:29:fc)
ue0: link state changed to UP
ugen0.4: <SSI Computer corp> at usbus0
umass0: <MSC Bulk-Only Transfer> on usbus0
umass0:  SCSI over Bulk-Only; quirks = 0x4101
umass0:0:0:-1: Attached to scbus0
da0 at umass-sim0 bus 0 scbus0 target 0 lun 0
da0: <M4-CT128 M4SSD2 > Fixed Direct Access SCSI-2 device 
da0: 40.000MB/s transfers
da0: 122104MB (250069680 512 byte sectors: 255H 63S/T 15566C)
Received DHCP Offer packet on ue0 from (accepted) (no root path)
Sending DHCP Request packet from interface ue0 (06:f3:7e:bb:29:fc)
Received DHCP Ack packet on ue0 from (accepted) (no root path)
Received DHCP Ack packet on ue0 from (accepted) (no root path)

-- Ian

More information about the freebsd-arm mailing list