Re: [linux-oxnas] Re: OX820 SATA (Re: Update support for OX820 patch) |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/linux-oxnas Archives
]
- To: linux-oxnas@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [linux-oxnas] Re: OX820 SATA (Re: Update support for OX820 patch)
- From: Neil Armstrong <narmstrong@xxxxxxxxxxxx>
- Date: Fri, 09 Dec 2016 17:31:22 +0100
- Cc: tlibertin@xxxxxxxxx
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-transfer-encoding; bh=lH3zUdhoCRBnz+WCOX3bio2JqNU7D8ag9blqpk3TytU=; b=jolr07REIOv9y+9xATaFZbtYgIJVj91a0nfCxt51uLoUQzsN3J3F+m55HtVmMZ+NWG whn9Ni+Y/7WQOGVk5FLElvIH0k0etHTXkW10900gXET2qUKBC/kCUQ+A3O9O+JKP3HEI r4/j9yTloNNBfmsGeeCjC/xVvPFFdkALRPcW5oskD2xfAh7fUl6qyCT4i+rVcBdfz1nZ rnYNTgJ1ZvMlhnj4NVRTxHZDPEpLmmEWI6Hvj01Eq6W8ibsjnpr3WAOVN/CLIvgAwpZD P0BZA8EdpOlh4ba47NAa3BxvUBjvkrqsct2xbe95cqLjulkaZ7RWdwxW1ZMwY+umnrCi iMFA==
Hi Dqniel, Bodhi,
Thanks for your returns, don't hesitate to send some bugs or some branch for me to review,
If I can push more than USB for the next linux release, it would be great !
Neil
Le 09/12/2016 10:29, bodhi a écrit :
> Hi Neil,
> Hi Daniel,
>
> I have booted the 4.9-rc8 kernel, built from https://github.com/OXNAS/linux on
> a Pogoplug Pro (PCIe version).
>
> [ 0.000000] Booting Linux on physical CPU 0x0
>
> [ 0.000000] Linux version 4.9.0-rc8-oxnas-tld-1 (root@tldDebian) (gcc
> version 4.9.2 (Debian 4.9.2-10) ) #2 SMP PREEMPT Tue Dec 6 07:07:14 PST 2016
>
> [ 0.000000] CPU: ARMv6-compatible processor [410fb025] revision 5
> (ARMv7), cr=00c5787d
>
> [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing
> instruction cache
>
> [ 0.000000] OF: fdt:Machine model: Cloud Engines PogoPlug Series 3
>
Sorry, does it mean it is working for you ?
>
> This was tested using u-boot 2015.10, and the box was running at 800Mhz.
> I'll prepare an NFS rootfs to boot this kernel, will report the resullt
> later.
Great, can you provide the complete boot log on a pastebin ?
>
> Off topic, thanks Daniel for your works! I've been able to use OpenWrt
> patch, and ideas from Neil upstream patch series to build and run kernel
> 4.4.11 successfully!
>
> Regards,
> -bodhi
>
> On Mon, Dec 5, 2016 at 4:43 AM, Daniel Golle <daniel@xxxxxxxxxxxxxx> wrote:
>
>> Hi Neil,
>> Hi Bodhi,
>>
>> On Mon, Dec 05, 2016 at 09:16:37AM +0100, Neil Armstrong wrote:
>>> Hi Bodhi !
>>>
>>> Thanks for your interest !
>>>
>>> The initial support for OX820 on Pogo Plug V3 will land in Linux 4.10,
>> which merge merge should start next week and be tagged in february 2017.
>>>
>>> But In the meantime I can provide you a 4.9-rc8 kernel with all the
>> patches applied !
>>>
>>> Beware that SATA, PCIe and USB support are missing, and must be
>> forward-ported from the 4.0/4.1 kernel OpenWRT and you uses.
>>
>> I'm planning to back-port upstream oxnas support from the 4.9-rc8 tree
>> you provided to LEDE's Kernel 4.4 (should be possible with the use of
>> some kernel version ifdef'ery and such).
>> Porting EHCI and PCIe support seems quite straight forward to me.
>>
>> The SATA/RAID core is a more complex beast, however. I reckon we need
>> another nested simple-bus @45000000, ie.
>>
>> apb-bridge@44000000 {
>> ...
>> sata-phy@900000 {
>> compatible = "oxsemi,ox820-sata-phy";
>> reg = <0x900000 0xc>;
>> ...
>> };
>> };
>>
>> apb-bridge@45000000 {
>> #address-cells = <1>;
>> #size-cells = <1>;
>> compatible = "simple-bus";
>> ranges = <0 0x45000000 0x1000000>;
>>
>> sdio@400000 { ... };
>> i2s@500000 { ... };
>> dma@600000 { ... };
>> sgdma@610000 { ... };
>> crypto@700000 { ... };
>> video@800000 { ... };
>>
>> sata@900000 {
>> compatible = "simple-bus";
>> #address-cells = <1>;
>> #size-cells = <1>;
>> compatible = "simple-bus";
>> ranges = <0 0x900000 0x100000>;
>>
>> porta: sata-port@0 {
>> reg = <0x0 0x10000>;
>> };
>> portb: sata-port@10000 {
>> reg = <0x10000 0x10000>;
>> };
>> dma0: sata-dma@a0000 {
>> reg = <0xa0000 0x20>;
>> };
>> dma1: sata-dma@a0020 {
>> reg = <0xa0020 0x20>;
>> };
>> sgdma0: sata-sgdma@b0000 {
>> reg = <0xb0000 0x10>;
>> };
>> sgdma1: sata-sgdma@b0010 {
>> reg = <0xb0020 0x10>;
>> };
>> sata-crypto@c0000 {
>> reg = <0xc0000 0x10000>;
>> }
>> sata-core@e0000 {
>> reg = <0xe0000 0x10000>;
>> }
>> sata-raid@f0000 {
>> reg = <0xf0000 0x10000>;
>> }
>> };
>> };
Yes, seems necessary, it will be necessary to reviez this structure once you made the driver work correctly.
>>
>> The S-ATA driver itself interacts with both ports as well as dma and
>> sgdma regions and the sata-core. In order to support RAID and CRYPTO,
>> an MFD driver needs to be created (see [1] in the vendor source tree).
>>
>> I reckon porting the S-ATA driver from OpenWrt/LEDE is going to be
>> the first thing I'd be doing once I got upstream-oxnas backported to
>> LEDE's current kernel. I've been working a bit on the S-ATA driver
>> before, starting from kref's single-port implementation. It now comes
>> with supports for both ports and has proven to work pretty well.
>> Obviously, RAID-1 write operations are much slower than they could be
>> if hardware offloading would be utilized...
>> There also seem to be some problems with error handling resulting
>> in an endless fault-reset-fault-reset-... loop when a drive is
>> hot-unplugged or fails during operation. I've been trying to wrap my
>> head around the hack'ish partial-reset tricks used in the vendor
>> driver which prevent a full core reset in case a single port is failing
>> but couldn't fully sort out things back then two years ago.
>>
Always hard to do such code without any documentation and very dirty code....
>>
>> Cheers
>>
>>
>> Daniel
Thanks,
Neil
>>
>>
>>
>> [1]: https://github.com/kref/linux-oxnas/blob/reference/sdk/
>> drivers/ata/ox820direct-storage.c
>>
>>
>