[PATCH 0/5] hw/arm/exynos4210: Add acceptance tests to the SMDKC210 board

Philippe Mathieu-Daudé posted 5 patches 6 years, 1 month ago
Test checkpatch passed
Test docker-mingw@fedora passed
Test docker-quick@centos7 passed
Test docker-clang@ubuntu failed
Test asan passed
Test FreeBSD passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20191005154748.21718-1-f4bug@amsat.org
hw/arm/exynos4210.c                    |  2 +-
hw/sd/sdhci.c                          | 68 +++++++++++++++++++-
include/hw/sd/sdhci.h                  |  2 +
tests/acceptance/boot_linux_console.py | 88 ++++++++++++++++++++++++++
4 files changed, 158 insertions(+), 2 deletions(-)
[PATCH 0/5] hw/arm/exynos4210: Add acceptance tests to the SMDKC210 board
Posted by Philippe Mathieu-Daudé 6 years, 1 month ago
Hi all,

Yesterday Peter Maydell asked on IRC if I had any working Exynos4
image. I looked at some old backuped notes and could boot Guenter
initrd with BusyBox.
I'll use this cover letter to share my notes, they might help to
have this board fully usable again.

This board is listed as "Odd Fixes". Since we have it covered, I
thought it was worthwhile to have it covered by tests to avoid
more regressions.

Frédéric Basse used this board last year:
https://fredericb.info/2018/03/emulating-exynos-4210-bootrom-in-qemu.html

I'll have a look a these particular commits he added:

- https://github.com/frederic/qemu-exynos-bootrom/commit/9be5c9f2253dbc04ee

   sd: add sd clock support to SDHC_CLKCON

- https://github.com/frederic/qemu-exynos-bootrom/commit/6f045949ee2fdec624

   sd: always reply to ACMD41 (SD_APP_OP_COND)

Guenter also carries on this patch:

- https://github.com/groeck/qemu/commit/0a80543cc910d

  hw/timer/exynos4210_mct: Initialize timer before starting it

  When booting a recent Linux kernel, the qemu message "Timer with period
  zero, disabling" is seen, apparently because a timer is started before
  being initialized.  Fix the problem by initializing the offending timer
  before starting it.

It might also be interesting to use Krzysztof's initramfs image:
https://github.com/krzk/tools/blob/master/run-qemu.sh#L29

The 1st test added works fine, however the 2nd (SD card) is not
reliable so it is disabled. We might need to adapt the ADMA patch
Igor sent once:
https://patchwork.ozlabs.org/patch/181854/

If you want to run the Avocado tests, you need these other patches
pending review:

- https://lists.gnu.org/archive/html/qemu-devel/2019-09/msg06439.html
  "tests/boot_linux_console: Extract the gunzip() helper"

- https://lists.gnu.org/archive/html/qemu-devel/2019-09/msg06438.html
  "python/qemu/machine: Allow to use other serial consoles than default"
  (only for the 2nd disabled test)

Regards,

Phil.

Based-on: 20190926173428.10713-16-f4bug@amsat.org

Philippe Mathieu-Daudé (5):
  tests/boot_linux_console: Add initrd test for the Exynos4210
  hw/sd/sdhci: Add a comment to distinct the i.MX eSDHC functions
  hw/sd/sdhci: Add dummy Samsung SDHCI controller
  hw/arm/exynos4210: Use the Samsung s3c SDHCI controller
  tests/boot_linux_console: Add sdcard test for the Exynos4210

 hw/arm/exynos4210.c                    |  2 +-
 hw/sd/sdhci.c                          | 68 +++++++++++++++++++-
 include/hw/sd/sdhci.h                  |  2 +
 tests/acceptance/boot_linux_console.py | 88 ++++++++++++++++++++++++++
 4 files changed, 158 insertions(+), 2 deletions(-)

-- 
2.20.1


Re: [PATCH 0/5] hw/arm/exynos4210: Add acceptance tests to the SMDKC210 board
Posted by Krzysztof Kozlowski 6 years, 1 month ago
On Sat, Oct 05, 2019 at 05:47:43PM +0200, Philippe Mathieu-Daudé wrote:
> Hi all,
> 
> Yesterday Peter Maydell asked on IRC if I had any working Exynos4
> image. I looked at some old backuped notes and could boot Guenter
> initrd with BusyBox.
> I'll use this cover letter to share my notes, they might help to
> have this board fully usable again.
> 
> This board is listed as "Odd Fixes". Since we have it covered, I
> thought it was worthwhile to have it covered by tests to avoid
> more regressions.
> 
> Frédéric Basse used this board last year:
> https://fredericb.info/2018/03/emulating-exynos-4210-bootrom-in-qemu.html
> 
> I'll have a look a these particular commits he added:
> 
> - https://github.com/frederic/qemu-exynos-bootrom/commit/9be5c9f2253dbc04ee
> 
>    sd: add sd clock support to SDHC_CLKCON
> 
> - https://github.com/frederic/qemu-exynos-bootrom/commit/6f045949ee2fdec624
> 
>    sd: always reply to ACMD41 (SD_APP_OP_COND)
> 
> Guenter also carries on this patch:
> 
> - https://github.com/groeck/qemu/commit/0a80543cc910d
> 
>   hw/timer/exynos4210_mct: Initialize timer before starting it
> 
>   When booting a recent Linux kernel, the qemu message "Timer with period
>   zero, disabling" is seen, apparently because a timer is started before
>   being initialized.  Fix the problem by initializing the offending timer
>   before starting it.
> 
> It might also be interesting to use Krzysztof's initramfs image:
> https://github.com/krzk/tools/blob/master/run-qemu.sh#L29

I haven't been working on QEMU since 2 years but I can try to find that
initramfs image.

The recent initramfs I create, is for testing kernel under my Buildbot.
I take standard initramfs from Arch ARM and then I add some more stuff:
Source/instruction is here:
https://github.com/krzk/tools/tree/master/buildbot/initramfs
and the script making it for each boot is here:
https://github.com/krzk/tools/blob/master/buildbot/build-slave-deploy.sh#L50
https://github.com/krzk/tools/blob/master/pi/make-initramfs.sh

Best regards,
Krzysztof


> 
> The 1st test added works fine, however the 2nd (SD card) is not
> reliable so it is disabled. We might need to adapt the ADMA patch
> Igor sent once:
> https://patchwork.ozlabs.org/patch/181854/
> 
> If you want to run the Avocado tests, you need these other patches
> pending review:
> 
> - https://lists.gnu.org/archive/html/qemu-devel/2019-09/msg06439.html
>   "tests/boot_linux_console: Extract the gunzip() helper"
> 
> - https://lists.gnu.org/archive/html/qemu-devel/2019-09/msg06438.html
>   "python/qemu/machine: Allow to use other serial consoles than default"
>   (only for the 2nd disabled test)
> 
> Regards,
> 
> Phil.
> 
> Based-on: 20190926173428.10713-16-f4bug@amsat.org
> 
> Philippe Mathieu-Daudé (5):
>   tests/boot_linux_console: Add initrd test for the Exynos4210
>   hw/sd/sdhci: Add a comment to distinct the i.MX eSDHC functions
>   hw/sd/sdhci: Add dummy Samsung SDHCI controller
>   hw/arm/exynos4210: Use the Samsung s3c SDHCI controller
>   tests/boot_linux_console: Add sdcard test for the Exynos4210
> 
>  hw/arm/exynos4210.c                    |  2 +-
>  hw/sd/sdhci.c                          | 68 +++++++++++++++++++-
>  include/hw/sd/sdhci.h                  |  2 +
>  tests/acceptance/boot_linux_console.py | 88 ++++++++++++++++++++++++++
>  4 files changed, 158 insertions(+), 2 deletions(-)
> 
> -- 
> 2.20.1
> 

Re: [PATCH 0/5] hw/arm/exynos4210: Add acceptance tests to the SMDKC210 board
Posted by Krzysztof Kozlowski 6 years, 1 month ago
On Mon, Oct 07, 2019 at 11:10:24AM +0200, Krzysztof Kozlowski wrote:
> On Sat, Oct 05, 2019 at 05:47:43PM +0200, Philippe Mathieu-Daudé wrote:
> > Hi all,
> > 
> > Yesterday Peter Maydell asked on IRC if I had any working Exynos4
> > image. I looked at some old backuped notes and could boot Guenter
> > initrd with BusyBox.
> > I'll use this cover letter to share my notes, they might help to
> > have this board fully usable again.
> > 
> > This board is listed as "Odd Fixes". Since we have it covered, I
> > thought it was worthwhile to have it covered by tests to avoid
> > more regressions.
> > 
> > Frédéric Basse used this board last year:
> > https://fredericb.info/2018/03/emulating-exynos-4210-bootrom-in-qemu.html
> > 
> > I'll have a look a these particular commits he added:
> > 
> > - https://github.com/frederic/qemu-exynos-bootrom/commit/9be5c9f2253dbc04ee
> > 
> >    sd: add sd clock support to SDHC_CLKCON
> > 
> > - https://github.com/frederic/qemu-exynos-bootrom/commit/6f045949ee2fdec624
> > 
> >    sd: always reply to ACMD41 (SD_APP_OP_COND)
> > 
> > Guenter also carries on this patch:
> > 
> > - https://github.com/groeck/qemu/commit/0a80543cc910d
> > 
> >   hw/timer/exynos4210_mct: Initialize timer before starting it
> > 
> >   When booting a recent Linux kernel, the qemu message "Timer with period
> >   zero, disabling" is seen, apparently because a timer is started before
> >   being initialized.  Fix the problem by initializing the offending timer
> >   before starting it.
> > 
> > It might also be interesting to use Krzysztof's initramfs image:
> > https://github.com/krzk/tools/blob/master/run-qemu.sh#L29
> 
> I haven't been working on QEMU since 2 years but I can try to find that
> initramfs image.
> 
> The recent initramfs I create, is for testing kernel under my Buildbot.
> I take standard initramfs from Arch ARM and then I add some more stuff:
> Source/instruction is here:
> https://github.com/krzk/tools/tree/master/buildbot/initramfs
> and the script making it for each boot is here:
> https://github.com/krzk/tools/blob/master/buildbot/build-slave-deploy.sh#L50
> https://github.com/krzk/tools/blob/master/pi/make-initramfs.sh
>

I checked my initramfs. I created it simply from a running Arch ARM
    instance with `fakeroot mkinitcpio -g file.cpio.gz`

You could automatize the process by:
1. Downloading and extracting
   http://os.archlinuxarm.org/os/ArchLinuxARM-odroid-latest.tar.gz,
2. Running mkinitcpio or creating initramfs manually (e.g. my script
   above).

Best regards,
Krzysztof

Re: [PATCH 0/5] hw/arm/exynos4210: Add acceptance tests to the SMDKC210 board
Posted by Philippe Mathieu-Daudé 6 years ago
Hi Peter,

On 10/5/19 5:47 PM, Philippe Mathieu-Daudé wrote:
> Hi all,
> 
> Yesterday Peter Maydell asked on IRC if I had any working Exynos4
> image. I looked at some old backuped notes and could boot Guenter
> initrd with BusyBox.
> I'll use this cover letter to share my notes, they might help to
> have this board fully usable again.
> 
> This board is listed as "Odd Fixes". Since we have it covered, I
> thought it was worthwhile to have it covered by tests to avoid
> more regressions.
> 
> Frédéric Basse used this board last year:
> https://fredericb.info/2018/03/emulating-exynos-4210-bootrom-in-qemu.html
> 
> I'll have a look a these particular commits he added:
> 
> - https://github.com/frederic/qemu-exynos-bootrom/commit/9be5c9f2253dbc04ee
> 
>     sd: add sd clock support to SDHC_CLKCON
> 
> - https://github.com/frederic/qemu-exynos-bootrom/commit/6f045949ee2fdec624
> 
>     sd: always reply to ACMD41 (SD_APP_OP_COND)
> 
> Guenter also carries on this patch:
> 
> - https://github.com/groeck/qemu/commit/0a80543cc910d
> 
>    hw/timer/exynos4210_mct: Initialize timer before starting it
> 
>    When booting a recent Linux kernel, the qemu message "Timer with period
>    zero, disabling" is seen, apparently because a timer is started before
>    being initialized.  Fix the problem by initializing the offending timer
>    before starting it.
> 
> It might also be interesting to use Krzysztof's initramfs image:
> https://github.com/krzk/tools/blob/master/run-qemu.sh#L29
> 
> The 1st test added works fine, however the 2nd (SD card) is not
> reliable so it is disabled. We might need to adapt the ADMA patch
> Igor sent once:
> https://patchwork.ozlabs.org/patch/181854/
> 
> If you want to run the Avocado tests, you need these other patches
> pending review:
> 
> - https://lists.gnu.org/archive/html/qemu-devel/2019-09/msg06439.html
>    "tests/boot_linux_console: Extract the gunzip() helper"
> 
> - https://lists.gnu.org/archive/html/qemu-devel/2019-09/msg06438.html
>    "python/qemu/machine: Allow to use other serial consoles than default"
>    (only for the 2nd disabled test)
> 
> Regards,
> 
> Phil.
> 
> Based-on: 20190926173428.10713-16-f4bug@amsat.org
> 
> Philippe Mathieu-Daudé (5):
>    tests/boot_linux_console: Add initrd test for the Exynos4210
>    hw/sd/sdhci: Add a comment to distinct the i.MX eSDHC functions
>    hw/sd/sdhci: Add dummy Samsung SDHCI controller
>    hw/arm/exynos4210: Use the Samsung s3c SDHCI controller
>    tests/boot_linux_console: Add sdcard test for the Exynos4210

Can you take patches 2-4 from this series? (C part, not Python).
All these patches have been reviewed.

Thanks,

Phil.

Re: [PATCH 0/5] hw/arm/exynos4210: Add acceptance tests to the SMDKC210 board
Posted by Peter Maydell 6 years ago
On Fri, 18 Oct 2019 at 15:48, Philippe Mathieu-Daudé <philmd@redhat.com> wrote:
>
> Hi Peter,
>
> On 10/5/19 5:47 PM, Philippe Mathieu-Daudé wrote:
> > Philippe Mathieu-Daudé (5):
> >    tests/boot_linux_console: Add initrd test for the Exynos4210
> >    hw/sd/sdhci: Add a comment to distinct the i.MX eSDHC functions
> >    hw/sd/sdhci: Add dummy Samsung SDHCI controller
> >    hw/arm/exynos4210: Use the Samsung s3c SDHCI controller
> >    tests/boot_linux_console: Add sdcard test for the Exynos4210
>
> Can you take patches 2-4 from this series? (C part, not Python).
> All these patches have been reviewed.

Sure, I've done that. I assume we'll get the test in via
some other path.

thanks
-- PMM