version 1.20, 2015/10/28 18:05:41
|
version 1.26, 2015/11/29 22:16:21
|
Line 1
|
Line 1
|
[[!meta title="NetBSD/evbarm on Hardkernel ODROID-C1"]] |
[[!meta title="NetBSD/evbarm on Hardkernel ODROID-C1 and ODROID-C1+"]] |
|
|
[ODROID-C1](http://www.hardkernel.com/main/products/prdt_info.php?g_code=G141578608433&tab_idx=1) was a $35 quad-core SBC from Hardkernel. ODROID-C1 support was introduced in NetBSD 7.0. It has been succeeded by the [ODROID-C1+](http://www.hardkernel.com/main/products/prdt_info.php?g_code=G143703355573), which is supported by the same NetBSD kernel. |
[ODROID-C1](http://www.hardkernel.com/main/products/prdt_info.php?g_code=G141578608433&tab_idx=1) was a $35 quad-core SBC from Hardkernel. ODROID-C1 support was introduced in NetBSD 7.0. It has been succeeded by the [ODROID-C1+](http://www.hardkernel.com/main/products/prdt_info.php?g_code=G143703355573), which is supported by the same NetBSD kernel. |
|
|
Line 10
|
Line 10
|
- SMP supported |
- SMP supported |
- PL310 L2 cache controller |
- PL310 L2 cache controller |
- GIC |
- GIC |
- A5 watchdog timer |
|
- A5 global timer |
- A5 global timer |
|
- Watchdog timer |
- "SDHC" and "SDIO" SD/MMC controllers (DMA) |
- "SDHC" and "SDIO" SD/MMC controllers (DMA) |
- Serial console |
- Serial console |
- Framebuffer console |
- Framebuffer console |
Line 67 Which partition do you want to change?:
|
Line 67 Which partition do you want to change?:
|
Should we write new partition table? [n] y |
Should we write new partition table? [n] y |
"""]] |
"""]] |
* Write the image to an SD card. |
* Write the image to an SD card. |
* Copy the kernel (netbsd.ub) for your board to the root of the MS-DOS partition on the SD card. |
* Edit *boot.ini* on the MS-DOS partition. Note that the default boot.ini has `console=fb` in `bootargs`, which you should remove if you want serial console: |
* Create or edit *boot.ini* on the MS-DOS partition: |
|
[[!template id=programlisting text=""" |
[[!template id=programlisting text=""" |
ODROIDC-UBOOT-CONFIG |
ODROIDC-UBOOT-CONFIG |
|
|
setenv bootargs "root=ld0f awge0.mac-address=${ethaddr}" |
setenv bootargs "root=ld0f awge0.mac-address=${ethaddr} console=fb" |
setenv bootcmd "fatload mmc 0:1 0x21000000 netbsd.ub; bootm 0x21000000" |
setenv bootcmd "fatload mmc 0:1 0x21000000 netbsd.ub; bootm 0x21000000" |
run bootcmd |
run bootcmd |
"""]] |
"""]] |
|
|
* On first boot, it will stop because of the wrong device in /etc/fstab. Take this opportunity to grow the root file-system: |
* On first boot, it will stop because of the wrong device in /etc/fstab. Take this opportunity to grow the root file-system: |
[[!template id=programlisting text=""" |
[[!template id=programlisting text=""" |
# fdisk -u ld0 |
# fdisk -u ld0 |
Line 166 gpioctl gpio4 sys_led off
|
Line 166 gpioctl gpio4 sys_led off
|
gpioctl gpio4 sys_led toggle |
gpioctl gpio4 sys_led toggle |
"""]] |
"""]] |
|
|
|
# U-Boot Environment |
|
|
|
To read/write U-Boot environment variables from NetBSD, download and compile the following program: <http://ftp.netbsd.org/pub/NetBSD/misc/jmcneill/odroidc1/uenv.c> |
|
|
|
# Automatically booting a backup kernel |
|
|
|
*These instructions assume the kernels live on eMMC. Adjust devices accordingly for SD card setup.* |
|
|
|
To setup an ODROID-C1 to fall back to a recovery kernel in the event of a boot failure, install the recovery kernel as /boot/onetbsd.ub. |
|
|
|
Create /boot/boot.ini as follows: |
|
[[!template id=programlisting text=""" |
|
ODROIDC-UBOOT-CONFIG |
|
setenv bootargs "root=ld0f awge0.mac-address=${ethaddr}" |
|
fatload mmc 0:1 0x22000000 boot.scr |
|
source 0x22000000 |
|
"""]] |
|
|
|
Create /boot/boot.txt: |
|
[[!template id=programlisting text=""" |
|
# regenerate with: |
|
# mkubootimage -A arm -C none -O netbsd -T script -a 0 -n "NetBSD/odroidc1 boot" boot.txt boot.scr |
|
|
|
setenv rescue_kernel "onetbsd.ub" |
|
setenv kernel "netbsd.ub" |
|
|
|
if test ${boot_rescue} = false; then |
|
setenv boot_rescue true |
|
saveenv |
|
fatload mmc 0:1 0x21000000 ${kernel} |
|
mw.l c1109900 0f08ffff # arm watchdog |
|
bootm 0x21000000 |
|
else |
|
fatload mmc 0:1 0x21000000 ${rescue_kernel} |
|
bootm 0x21000000 |
|
fi |
|
"""]] |
|
|
|
Generate boot.scr from boot.txt: |
|
[[!template id=programlisting text=""" |
|
mkubootimage -A arm -C none -O netbsd -T script -a 0 -n "NetBSD/odroidc1 boot" /boot/boot.txt /boot/boot.scr |
|
"""]] |
|
|
|
Install the **uenv** tool from above and add the following to root's crontab: |
|
[[!template id=programlisting text=""" |
|
@reboot /usr/local/sbin/uenv ld0 boot_rescue false |
|
"""]] |
|
|
# Documentation |
# Documentation |
|
|
Amlogic S805 datasheet: <http://dn.odroid.com/S805/Datasheet/S805_Datasheet%20V0.8%2020150126.pdf> |
Amlogic S805 datasheet: <http://dn.odroid.com/S805/Datasheet/S805_Datasheet%20V0.8%2020150126.pdf> |
Line 184 From [ODROID Forum](http://forum.odroid.
|
Line 232 From [ODROID Forum](http://forum.odroid.
|
|
|
3.3V LVTTL |
3.3V LVTTL |
"""]] |
"""]] |
|
|