[linux-sunxi] Re: A20 mainline kernel questions
Il giorno venerdì 28 agosto 2015 15:11:47 UTC+2, Alexis Jeandet ha scritto: Hi Andrea, Good news! I can hear some sounds :). good! After some discussions with Marcus I've checked I2S pins with logic analyser, the data where at the output but really fast (340kS/s). I decided to replace the I2S driver from Marcus https://github.com/codekipper/linux-sunxi repo with your code(only sunxi-i2s.c plus sunxi.h). At least I can hear sound, it still refuse to play 32 bits wave file(with aply) and my sample is read at twice the speed(looks like mickey mouse) but it works! is your sample a mono (single channel) one? i had the speed doubling when i tested a mono wav file. i suppose there's a bug as it's still sending samples to two channels. so the speed is doubled.. With the sample you provided it works at nominal speed, I think(not easy to say). you are right. my sample indeed has no words spoken so it's not easy to say... but if you feel good and inspired listening to it, so it's working ok ! :-) bye andrea If you are interested here are the screenshots of what I saw with Marcus patch: https://www.dropbox.com/s/t2cn38hl5aywwiz/Capture%20d%27%C3%A9cran%20de%202015-08-27%2014-18-08.png?dl=0 As a conclusion, on Marcus repo I2C works but something broke on I2S code. Best regards, Alexis. -- You received this message because you are subscribed to the Google Groups linux-sunxi group. To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[linux-sunxi] Re: A20 mainline kernel questions
Hi Andrea, Indeed my song is mono, so that may explain the issue. I also continued to investigate the code from Marcus, which if I understood correctly, is based on your code. I got some successful results also with this code. I think that Marcus wanted to merge the two structures sunxi_priv and sunxi_i2s_info and remove the sunxi_iis instance. There is still some points I don't get yet, if I understand correctly the UDA is supposed to generate the sysclock with it's own PLL from bclk? Then you have to set the multiplication factor on the UDA? For each song? Or you just set it to 256 or 128fs and then just focus on i2s interface? In this case 24 bits resolution wouldn't be possible? Don't understand yet what ALSA does exactly, and I didn't check what is done on i2c side. Best regards, Alexis. -- You received this message because you are subscribed to the Google Groups linux-sunxi group. To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [linux-sunxi] [PATCH sunxi-tools 1/2] README: Remove the obsolete 'usb-boot' script
Hi, On 30-08-15 01:25, Siarhei Siamashka wrote: It was designed to be used with the legacy u-boot-sunxi bootloader and has many assumptions, which are specific to it (a special FEL configuration, hardcoded addresses, etc.) The mainline U-Boot can now be booted over USB with the fel uboot u-boot-sunxi-with-spl.bin command. And this makes the old 'usb-boot' script obsolete. The presence of the 'usb-boot' script in the repository may confuse the users, so we are removing it now. The users of the old u-boot-sunxi bootloader still can always get this script from one of the old sunxi-tools tags. Signed-off-by: Siarhei Siamashka siarhei.siamas...@gmail.com --- README | 7 ++--- usb-boot | 91 2 files changed, 2 insertions(+), 96 deletions(-) delete mode 100755 usb-boot The entire series looks good to me and is: Acked-by: Hans de Goede hdego...@redhat.com Regards, Hans diff --git a/README b/README index e71933f..02747cd 100644 --- a/README +++ b/README @@ -24,11 +24,8 @@ fex2bin: fel: script interface for talking to the FEL USB handler built in to th CPU. You activate FEL mode by pushing the usboot/recovery - button at poweron. - -usb-boot: - Simple wrapper to automate USB booting in FEL mode - See http://linux-sunxi.org/FEL/USBBoot for details + button at poweron. See http://linux-sunxi.org/FEL/USBBoot for + a detailed usage guide. fel-gpio: Simple wrapper around fel-pio and fel to allos GPIO manipulations diff --git a/usb-boot b/usb-boot deleted file mode 100755 index 3881d29..000 --- a/usb-boot +++ /dev/null @@ -1,91 +0,0 @@ -#!/bin/sh -e - -# Copyright (C) 2013 Henrik Nordstrom hen...@henriknordstrom.net -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the Software), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -top=`dirname $0` -if [ $# -lt 2 ]; then - echo Usage: $0 u-boot-spl.bin u-boot.bin [boot.scr] [kernel script.bin [initramfs]] - exit 1 -fi -board=$1; shift || (echo ERROR: u-boot-spl.bin must be specified; exit 1;) -uboot=$1; shift || (echo ERROR: u-boot.bin must be specified; exit 1;) -bootscr=$top/felboot/ramboot.scr -if [ ! -f $bootscr ]; then - bootscr=$top/bin/ramboot.scr -fi -case $1 in -*.scr) bootscr=$1; shift - ;; -esac -if [ $# -ge 1 ]; then - kernel=$1; shift || true -fi -if [ $# -ge 1 ]; then - scriptbin=$1; shift || true -fi -if [ $# -ge 1 ]; then - initramfs=$1; shift || true -fi -fel() { - echo fel $@ - $top/fel $@ -} -case $board in -*/*) felboot=$board - ;; -*) - felboot=$top/felboot/fel-boot-${board}.bin - if [ ! -f $felboot ]; then - felboot=$top/bin/fel-boot-${board}.bin - fi - ;; -esac -if [ ! -f $felboot ]; then - echo ERROR: Can't find SPL FEL binary ${board} - exit 1 -fi -if [ `wc -c $felboot | cut '-d ' -f1` -gt 15616 ]; then - echo ERROR: SPL FEL binary too large. Must be the FEL version of SPL - exit 1 -fi -if [ ! -f $bootscr ]; then - echo ERROR: Can't find boot script '${bootscr}' - exit 1 -fi -fel write 0x2000 $felboot -fel exe 0x2000 -sleep 1 # Wait for DRAM initialization to complete -if [ -n $uboot ]; then - fel write 0x4a00 $uboot -fi -if [ -n $bootscr ]; then - fel write 0x4100 $bootscr -fi -if [ -n $kernel ]; then - if [ -n $scriptbin ]; then - fel write 0x4300 $scriptbin - fi - fel write 0x4400 $kernel - if [ -n $initramfs ]; then - fel write 0x4c00 $initramfs - fi -fi -fel exe 0x4a00 -- You received this message because you are subscribed to the Google Groups linux-sunxi group. To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [linux-sunxi] [PATCH sunxi-tools 0/6] Fixes which should provide fel spl command support for A80
Hi, On 29-08-15 08:33, Siarhei Siamashka wrote: This is a set of patches, which are intended to eventually support booting Allwinner A80 over USB with the fel spl and fel uboot commands. The memory map in Allwinner A80 differs from all the other known Allwinner SoC variant. The SPL (or BOOT0) load location is now moved to 0x1 from 0x0, which means that we can't have this address hardcoded in the 'fel' tool, but need to make it configurable. Additionally, fel: Report FEL stack pointers improves diagnostic messages by reporting the stack locations. Also fel-to-spl-thunk.S: Fix safety guard which checks for enabled cache and Makefile: 'fel' tool depends on fel-to-spl-thunk.h provide fixes for a few minor problems, discovered when working on this code. The last patch fel: add fel spl support for A80 has not been fully tested on real A80 hardware yet (to boot at least the SD card variant of BOOT0), so it should not be applied until somebody confirms that it actually works. Siarhei Siamashka (6): fel: Report FEL stack pointers fel: get rid of the FEL_EXEC_SCRATCH_AREA constant fel-to-spl-thunk.S: Fix safety guard which checks for enabled cache Makefile: 'fel' tool depends on fel-to-spl-thunk.h fel: Make the SPL load address configurable instead of hardcoded 0x0 fel: add fel spl support for A80 The entire series looks good to me and is: Acked-by: Hans de Goede hdego...@redhat.com Regards, Hans -- You received this message because you are subscribed to the Google Groups linux-sunxi group. To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[linux-sunxi] Re: Banana pi BPI-M2 uboot 2015-7 and kernel 4.1.6 test
lion wang wrote: BPI team have test linux kernel 4.1.6 on BPI-M1,BPI-M1+,BPI-M2,BPI-M3 Where's the M3 stuff? And I would assume the only bit of interest inside your forked kernel is one single file (since everything else already worked before and you didn't change a single line of code). The device tree definition for the M2 (that not you developed but a community member instead): https://github.com/BPI-SINOVOIP/BPI-Mainline-kernel/blob/master/arch/arm/boot/dts/sun6i-a31s-bananapi-m2.dts -- You received this message because you are subscribed to the Google Groups linux-sunxi group. To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [linux-sunxi] [PATCH sunxi-tools 5/6] fel: Make the SPL load address configurable instead of hardcoded 0x0
On Sat, 2015-08-29 at 09:33 +0300, Siarhei Siamashka wrote: Add a new field 'spl_addr' to the SoC description structure and adjust the code to honor it. This is needed for supporting Allwinner A80. Tested on Allwinner A20 by changing the 'spl_addr' to 0x28000 in the 'fel' tool and using a custom build of U-Boot (CONFIG_SPL_TEXT_BASE changed from 0x20 to 0x28020). Signed-off-by: Siarhei Siamashka siarhei.siamas...@gmail.com --- fel-to-spl-thunk.S | 22 ++ fel-to-spl-thunk.h | 89 ++ fel.c | 29 ++ 3 files changed, 70 insertions(+), 70 deletions(-) diff --git a/fel-to-spl-thunk.S b/fel-to-spl-thunk.S index fb5dfde..e3fa6f2 100644 --- a/fel-to-spl-thunk.S +++ b/fel-to-spl-thunk.S @@ -69,6 +69,7 @@ SWAPTBL.req r4 FULLSIZE .req r5 BUFSIZE .req r6 CHECKSUM .req r7 +SPL_ADDR .req r8 entry_point: b setup_stack @@ -87,7 +88,7 @@ stack_end: /* A function, which walks the table and swaps all buffers */ swap_all_buffers: - adr SWAPTBL, swaptbl_start + adr SWAPTBL, appended_data + 4 swap_next_buffer: ldr BUF1, [SWAPTBL], #4 ldr BUF2, [SWAPTBL], #4 @@ -104,6 +105,7 @@ swap_next_word: b swap_next_buffer setup_stack: /* Save the original SP, LR and CPSR to stack */ + ldr SPL_ADDR, appended_data adr BUF1, stack_end str sp,[BUF1, #-4]! mov sp,BUF1 @@ -125,7 +127,7 @@ setup_stack: /* Save the original SP, LR and CPSR to stack */ verify_checksum: movw CHECKSUM, #0x6c39 movt CHECKSUM, #0x5f0a - mov BUF1, #0 + mov BUF1, SPL_ADDR ldr FULLSIZE, [BUF1, #16] check_next_word: ldr TMP1, [BUF1], #4 @@ -133,39 +135,35 @@ check_next_word: add CHECKSUM, CHECKSUM, TMP1 bne check_next_word - mov BUF1, #0 - ldr TMP1, [BUF1, #12] + ldr TMP1, [SPL_ADDR, #12] subs CHECKSUM, CHECKSUM, TMP1, lsl #1 bne checksum_is_bad /* Change 'eGON.BT0' - 'eGON.FEL' */ - mov BUF1, #0 movw TMP1, (('F' 8) + '.') movt TMP1, (('L' 8) + 'E') - str TMP1, [BUF1, #8] + str TMP1, [SPL_ADDR, #8] /* Call the SPL code */ dsb isb - blx BUF1 + blx SPL_ADDR /* Return back to FEL */ b return_to_fel cache_is_unsupported: /* Bail out if cache is enabled and change 'eGON.BT0' - 'eGON.???' */ - mov BUF1, #0 movw TMP1, (('?' 8) + '.') movt TMP1, (('?' 8) + '?') - str TMP1, [BUF1, #8] + str TMP1, [SPL_ADDR, #8] b return_to_fel_noswap checksum_is_bad: /* The checksum test failed, so change 'eGON.BT0' - 'eGON.BAD' */ - mov BUF1, #0 movw TMP1, (('B' 8) + '.') movt TMP1, (('D' 8) + 'A') - str TMP1, [BUF1, #8] + str TMP1, [SPL_ADDR, #8] return_to_fel: blswap_all_buffers @@ -175,4 +173,4 @@ return_to_fel_noswap: ldr sp,[sp] bxlr -swaptbl_start: +appended_data: If I'm reading correctly you've changed things so that there is an implicit data structure present here, namely the spl addr followed by the swaptbl (as before). I think this would be clearer if it were explicit, can you do: spl_addr: .word 0 /* Filled in by fel tool */ swaptbl_start: or does something prevent this? I suppose it would make the thunk appear larger are require accessing from C with END-N rather than END+N, which might be undesirable. If it isn't possible/desirable maybe just a comment describing what should live here and/or some #define's for the offsets would be useful? Doing asm-offset.S style tricks to let the C and ASM code use a shared data structure is probably overkill at this point, but might be worth considering if this grows more fields. Ian. -- You received this message because you are subscribed to the Google Groups linux-sunxi group. To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.