View: 176505|Reply: 99

Orangepi2/plus2/PC H3 Linux mainline support

[Copy link]

3

threads

10

posts

187

credits

Registered member

Rank: 2

credits
187
Published in 2015-2-22 04:14:47 | Show all floors |Read mode
Edited by fritz at 2015-11-19 22:30

Does 3.19 or 3.20 Linux (Kernel.org) line main support the orangePlus?

0

threads

8

posts

296

credits

Intermediate member

Rank: 3Rank: 3

credits
296
Published in 2015-10-22 17:01:44 | Show all floors
Here are some more detailed instructions.
I'm always try to work with pretty much the latest u-boot and kernel. There may be some errors here as I use scripts for a lot of my building and setup. Most of below has been taken from my bash history.

Prepare your card

(echo n; echo p; echo 1; echo 2048; echo +15M; echo n; echo p; echo 2; echo 32768; echo +240M; echo p; echo w) | fdisk /dev/<CARD_LOCATION>
mkfs.vfat /dev/<CARD_LOCATION>1

Build u-boot

In your u-boot git have the following remotes.
git remote add jemk https://github.com/jemk/u-boot-sunxi.git (this is where the patches are)
git remote add sunxi-wip https://github.com/jwrdegoede/u-boot-sunxi (Hans' development track for u-boot)
git fetch --all
git branch orangepi sunxi-wip/sunxi-wip (creates new branch at the latest commit from Hans)
git checkout orangepi
git cherry-pick jemk/sunxi/h3~4..jemk/sunxi/h3 (this adds jemk's h3 patches to the latest u-boot)
make ARCH=arm -j 18 CROSS_COMPILE=arm-linux-gnueabihf- xunlong_orangepi_plus_defconfig
make ARCH=arm -j 18 CROSS_COMPILE=arm-linux-gnueabihf-
dd if=u-boot-sunxi-with-spl.bin of=/dev/<CARD_LOCATION> bs=1024 seek=8
sync
At this point the card should boot to u-boot prompt

Build kernel

In your kernel git have the following remote.
git remote add linux-next git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next
git fetch --all
git branch orangepi linux-next/master
Download the patches from these links
https://patchwork.kernel.org/patch/7458451/
https://patchwork.kernel.org/patch/7458441/
https://patchwork.kernel.org/patch/7458701/
https://patchwork.kernel.org/patch/7458631/
https://patchwork.kernel.org/patch/7458651/
https://patchwork.kernel.org/patch/7458661/
git am *.patch (make sure no other patches are in your repo directory)
make ARCH=arm -j 18 CROSS_COMPILE=arm-linux-gnueabihf- sunxi_defconfig
make ARCH=arm -j 18 CROSS_COMPILE=arm-linux-gnueabihf- LOADADDR=0x40008000 INSTALL_MOD_PATH=output uImage dtbs modules
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=output modules_install (can be ignored for now)

Write to card

mkdir /tmp/sdcard
mount -t vfat /dev/<CARD_LOCATION>1 /tmp/sdcard/
cp <kernel dir>/arch/arm/boot/uImage /tmp/sdcard/.
cp <kernel dir>/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dtb /tmp/sdcard/.

cat > /tmp/boot.cmd << "EOF"
#COMMON SETTINGS
setenv fdt_high ffffffff
#Settings for booting from the card.
setenv loadkernel fatload mmc 0 \$kernel_addr_r uImage
setenv loaddtb fatload mmc 0 \$fdt_addr_r sun8i-h3-orangepi-plus.dtb
setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait
setenv uenvcmd run loadkernel \&\& run loaddtb \&\& bootm \$kernel_addr_r - \$fdt_addr_r
run uenvcmd
EOF

mkimage -C none -A arm -T script -d /tmp/boot.cmd /tmp/sdcard/boot.scr

cat > /tmp/sdcard/uEnv.txt << EOF
setenv fdt_high ffffffff
setenv loadkernel fatload mmc 0 \$kernel_addr_r uImage
setenv loaddtb fatload mmc 0 \$fdt_addr_r sun8i-h3-orangepi-plus.dtb
setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait
setenv uenvcmd run loadkernel \&\& run loaddtb \&\& bootm \$kernel_addr_r - \$fdt_addr_r
run uenvcmd
EOF

cd /tmp/
wget http://downloads.openwrt.org/sna ... wrt-sunxi-root.ext4
resize2fs /tmp/openwrt-sunxi-root.ext4 240M
dd if=/tmp/openwrt-sunxi-root.ext4 of=/dev/<CARD_LOCATION>2 bs=128k
sync
umount /tmp/sdcard

This should now boot to the openwrt prompt.

5

threads

354

posts

2734

credits

Moderator

Rank: 7Rank: 7Rank: 7

credits
2734
Published in 2015-11-24 06:04:13 | Show all floors
Can confirm.U-boot mainline now works without patches.

Today I have builded from sunxi-wip (Hans) and it works correctly.
full boot log:
http://pastebin.com/MiZLGwHr
If you want to try with other branches like linux-next you need to patch it.
The only branch that actually has all patches included is @Hans sunxi-wip branch.

Boards:
orangepi plus, olinuxino A20, cubieboard A10, mele A2000 .....

1

threads

5

posts

66

credits

Registered member

Rank: 2

credits
66
Published in 2016-10-4 01:50:28 | Show all floors
Hi, I design a custom board using the H3. According to http://linux-sunxi.org/Linux_mainlining_effort#Status_Matrix only the EMAC and CSI are missing from the mainline kernel to run the expected applications on that board. But the WIP indication suggest that some peoples are already working on them.

For the EMAC I found this patch that seem to be already usable http://lists.infradead.org/piper ... ptember/455663.html Maybe there is a repository somewhere with a even more advanced version of this patch ?

For the CSI I have only found a patch for the clock. Did someone have more ? This is of special interest for me because on my design a use a FPGA to convert the MIPI CSI-2 two lanes of a image sensor into the DVP signals accepted by the H3 and this have obvious implication on the code used to configure the sensor by I2C. So If a get a chance to hack on a code that is likely hit the mainline, I will probably save time.

0

threads

4

posts

46

credits

Novice

Rank: 1

credits
46
Published in 2015-11-23 06:22:55 | Show all floors
Fritz, could you say what kernel sources you are using and where you are getting them from?

Hans has applied some patches relating to USB and some from Jens to his sunxi-wip branch but I can't get a kernel to boot fully.  It hangs at "Registering SWP/SWPB emulation handling"
It also looks like it is having trouble finding/bringing up the voltage regulators for USB.

Complete log: http://pastebin.com/VGkEix9p

In other news it looks like H3 support is making its way into U-Boot mainline http://git.denx.de/?p=u-boot.git ... 928665d26edab8429e4

0

threads

4

posts

46

credits

Novice

Rank: 1

credits
46
Published in 2015-11-16 08:01:09 | Show all floors
Edited by tdack at 2015-11-16 10:30
When i apply the WIP USB patches from sunxi-wip branch of @jwrdegoede to my linux-next branch with the V4 patches from @jemk then it works.

Fritz, can you point me to the linux-next branch that you are using?  I assume that the V4 patches are coming from the linux-sunxi mailing list?

Just to make sure I've got things in the right order:

1. Grab linux-next source
2. Apply jwrdegoede/linux-sunxi sunxi-wip patches for H3 USB support
3. Apply jemk H3 V4 patches from linux-sunxi mailing list
4. Profit, only with GPIO though

Update ...

Using @jwrdegoede/u-boot-sunxi/sunxi-wip and @jwrdegoede/linux-sunxi/sunxi-wip I've now managed to get a full kernel boot.

http://pastebin.com/pBt1iZhT

Looks like USB is progressing!
  1. [    0.777507] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
  2. [    0.784098] ehci-platform: EHCI generic platform driver
  3. [    0.789635] ehci-platform 1c1b000.usb: EHCI Host Controller
  4. [    0.795254] ehci-platform 1c1b000.usb: new USB bus registered, assigned bus number 1
  5. [    0.803236] ehci-platform 1c1b000.usb: irq 23, io mem 0x01c1b000
  6. [    0.827604] ehci-platform 1c1b000.usb: USB 2.0 started, EHCI 1.00
  7. [    0.835123] hub 1-0:1.0: USB hub found
  8. [    0.839003] hub 1-0:1.0: 1 port detected
  9. [    0.843788] ehci-platform 1c1c000.usb: EHCI Host Controller
  10. [    0.849454] ehci-platform 1c1c000.usb: new USB bus registered, assigned bus number 2
  11. [    0.857365] ehci-platform 1c1c000.usb: irq 25, io mem 0x01c1c000
  12. [    0.877608] ehci-platform 1c1c000.usb: USB 2.0 started, EHCI 1.00
  13. [    0.884996] hub 2-0:1.0: USB hub found
  14. [    0.888851] hub 2-0:1.0: 1 port detected
  15. [    0.893526] ehci-platform 1c1d000.usb: EHCI Host Controller
  16. [    0.899180] ehci-platform 1c1d000.usb: new USB bus registered, assigned bus number 3
  17. [    0.907071] ehci-platform 1c1d000.usb: irq 27, io mem 0x01c1d000
  18. [    0.927601] ehci-platform 1c1d000.usb: USB 2.0 started, EHCI 1.00
  19. [    0.934906] hub 3-0:1.0: USB hub found
  20. [    0.939314] hub 3-0:1.0: 1 port detected
  21. [    0.943905] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
  22. [    0.950164] ohci-platform: OHCI generic platform driver
  23. [    0.955639] ohci-platform 1c1b400.usb: Generic Platform OHCI controller
  24. [    0.962323] ohci-platform 1c1b400.usb: new USB bus registered, assigned bus number 4
  25. [    0.970233] ohci-platform 1c1b400.usb: irq 24, io mem 0x01c1b400
  26. [    1.032832] hub 4-0:1.0: USB hub found
  27. [    1.036647] hub 4-0:1.0: 1 port detected
  28. [    1.041830] ohci-platform 1c1c400.usb: Generic Platform OHCI controller
  29. [    1.048535] ohci-platform 1c1c400.usb: new USB bus registered, assigned bus number 5
  30. [    1.056429] ohci-platform 1c1c400.usb: irq 26, io mem 0x01c1c400
  31. [    1.122800] hub 5-0:1.0: USB hub found
  32. [    1.126612] hub 5-0:1.0: 1 port detected
  33. [    1.131349] ohci-platform 1c1d400.usb: Generic Platform OHCI controller
  34. [    1.138050] ohci-platform 1c1d400.usb: new USB bus registered, assigned bus number 6
  35. [    1.145928] ohci-platform 1c1d400.usb: irq 28, io mem 0x01c1d400
  36. [    1.212832] hub 6-0:1.0: USB hub found
  37. [    1.216644] hub 6-0:1.0: 1 port detected
Copy code


Published in 2015-2-22 09:54:33 | Show all floors
Just H3 release isn't very long time.  3.19 or 3.20 Linux (Kernel.org) line main hasn't supported the orangePlus.

3

threads

10

posts

187

credits

Registered member

Rank: 2

credits
187
 Author| Published in 2015-3-3 12:25:03 | Show all floors
So when do you think the u-boot/kernel source will be in a public accessible git? What Linux version is the target?
Published in 2015-3-3 20:55:55 | Show all floors
First kernel 3.4 version.

2

threads

34

posts

305

credits

Intermediate member

Rank: 3Rank: 3

credits
305
Published in 2015-4-7 10:20:17 | Show all floors
Hi Steven,

I just ordered an Orange Pi Plus. Whilst I'm very happy that it uses a modern H3 processor I'm a bit more concerned by Linux kernel availability.
- When do you plan to release 3.4 kernel for H3? So far I only see Android image for download.
- What about mainline? The page at http://linux-sunxi.org/Xunlong_Orange_Pi_Plus says it is supported and mentions a sun7i-h3-orangepiplus.dtb file, but I couldn't find it anywhere.

It would be good if you could provide a bit more information about your plans & current status. Of course we can all understand H3 is very new and things will take a bit of time.

2

threads

9

posts

82

credits

Registered member

Rank: 2

credits
82
Published in 2015-5-5 19:06:36 | Show all floors
If you look on the downloads page, it seems like there is a download link for the Linux SDK which might contain what you're after.  http://www.orangepi.org/downloaded/download.html

1

threads

14

posts

187

credits

Registered member

Rank: 2

credits
187
Published in 2015-5-20 12:19:00 | Show all floors
how to compile for pi2 kernel and system img  with the linux sdk ?
Published in 2015-5-21 05:33:37 | Show all floors

0

threads

4

posts

56

credits

Registered member

Rank: 2

credits
56
Published in 2015-7-2 06:10:06 | Show all floors
There are new information about the Linux Kernel mainline support?

10

threads

448

posts

5117

credits

Moderator

Rank: 7Rank: 7Rank: 7

credits
5117
Published in 2015-7-2 06:55:05 | Show all floors
funkyStufF replied at 2015-7-2 06:10
There are new information about the Linux Kernel mainline support?

Linux mainlining effort
You need to log in before you can reply login | Register

Points Rule

Quick reply Top Return list