diff mbox

[v2,2/2] Add defconfig for MIPS Creator ci40

Message ID 1487144021-27808-2-git-send-email-abhimanyu.vishwakarma@imgtec.com
State Changes Requested
Headers show

Commit Message

Abhimanyu V Feb. 15, 2017, 7:33 a.m. UTC
From: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>

Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
Reviewed-by: Rahul Bedarkar <Rahul.Bedarkar@imgtec.com>
---
 Changes v1 -> v2
  - No change

 board/ci40/readme.txt  | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
 configs/ci40_defconfig | 27 +++++++++++++++++++++++++++
 2 files changed, 76 insertions(+)
 create mode 100644 board/ci40/readme.txt
 create mode 100644 configs/ci40_defconfig

Comments

Arnout Vandecappelle Feb. 16, 2017, 9:57 p.m. UTC | #1
On 15-02-17 08:33, Abhimanyu V wrote:
> From: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
> 
> Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
> Reviewed-by: Rahul Bedarkar <Rahul.Bedarkar@imgtec.com>
> ---
>  Changes v1 -> v2
>   - No change
> 
>  board/ci40/readme.txt  | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
>  configs/ci40_defconfig | 27 +++++++++++++++++++++++++++
>  2 files changed, 76 insertions(+)
>  create mode 100644 board/ci40/readme.txt
>  create mode 100644 configs/ci40_defconfig
> 
> diff --git a/board/ci40/readme.txt b/board/ci40/readme.txt
> new file mode 100644
> index 0000000..8ce7ed8
> --- /dev/null
> +++ b/board/ci40/readme.txt
> @@ -0,0 +1,49 @@
> +*********************
> +* MIPS Creator CI40 *
> +*********************
> +
> +The 'ci40_defconfig' will create a root filesystem and a kernel image
> +under the 'output/images/' directory. This document will try to explain how
> +to use them in order to run Buildroot in the MIPS Creator CI40 board.
> +
> +The current bootloader by default boot fitImage, so we would need to create
                                     ^^^^boots a fitImage

> +command to be able to boot from uImage. Assuming you are at the U-Boot prompt
> +of the MIPS Creator CI40, you can use following way to boot.

 Why don't you just create a FIT image instead of a legacy uImage? It's a bit
more involved but not that difficult, is it?

 Alternatively, it would be convenient to patch the default U-Boot environment
to boot a uImage, from SD or USB.

> +
> +Booting from network (nfsboot)
> +------------------------------
> +  pistachio # setenv netboot_legacy 'sf probe 1:0;mtdparts default;setenv bootargs $console $earlycon $netroot nfsroot=$serverip:$rootpath $bootextra $mtdparts;dhcp $loadaddr  $legacy_bootfile; dhcp $fdtaddr $fdtfile;'
> +
> +  pistachio # run netboot_legacy
> +
> +  It will set variable to boot from tftp server and uses nfsroot
> +
> +Booting from USB/MMC
> +--------------------
> +Extract the generated root filesystem, uImage and dtb file into a USB drive
> +or SD-Card. Here you have the instructions to boot from the two of them.

 It would be a lot more convenient if you would create either of these images
with genimage.

> +You have to choose the one your prefer:
> +
> +From USB
> +  pistachio # setenv usbboot_legacy 'sf probe 1:0;mtdparts default;setenv bootargs $console $earlycon $usbroot $bootextra $mtdparts;usb start;ext4load usb $usbdev $fdtaddr $bootdir$fdtfile;ext4load usb $usbdev $loadaddr $bootdir$legacy_bootfile;'
> +
> +  pistachio # run usbboot_legacy
> +
> +From SD-Card
> +  pistachio # setenv mmcboot_legacy 'sf probe 1:0;mtdparts default;setenv bootargs $console $earlycon $mmcroot $bootextra $mtdparts;setenv verify n;mmcinfo; mmc dev $mmcdev;ext4load mmc $mmcdev $fdtaddr $bootdir$fdtfile;ext4load mmc $mmcdev $loadaddr $bootdir$legacy_bootfile;'
> +
> +  pistachio # run mmcboot_legacy
> +
> +Finally boot from the loaded file:
> +
> +  pistachio # bootm $loadaddr - $fdtaddr;


 The instructions don't mention what to do with the U-Boot binary that was
generated by the defconfig. It's a bit useless to build U-Boot if you then don't
use it.

> +
> +
> +Online docs
> +-----------
> +mostly for openwrt but it also applicable on buildroot
> +https://docs.creatordev.io/ci40/guides/openwrt-platform/#overview
> +
> +Prebuilt uboot
> +--------------
> +http://downloads.creatordev.io/?q=u-boot/
> diff --git a/configs/ci40_defconfig b/configs/ci40_defconfig
> new file mode 100644
> index 0000000..5363347
> --- /dev/null
> +++ b/configs/ci40_defconfig
> @@ -0,0 +1,27 @@
> +BR2_mipsel=y
> +BR2_mips_32r2=y
> +# BR2_MIPS_SOFT_FLOAT is not set
> +BR2_TOOLCHAIN_EXTERNAL=y
> +BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS=y

 We normally use uClibc toolchains, unless when there is a *very* good reason
not to. We *never* use external toolchains in the defconfigs.

> +BR2_TARGET_GENERIC_HOSTNAME="Ci40"
> +BR2_TARGET_GENERIC_ISSUE="Welcome to Ci40"
> +BR2_TARGET_GENERIC_GETTY_PORT="ttyS1"
> +BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200=y

 Since the bootargs you set in the instructions above include a setting of a
console, this shouldn't be needed, the default /dev/console should work.

> +BR2_SYSTEM_DHCP="eth0"
> +BR2_ENABLE_LOCALE_WHITELIST="C en_US en_GB"

 We normally don't change the default for this.

> +BR2_LINUX_KERNEL=y
> +BR2_LINUX_KERNEL_CUSTOM_GIT=y
> +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/CreatorDev/linux.git"
> +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="2319a2476a2bc0c582a9811cd45a6fa3c0beba37"

 You can use a custom tarball and $(github-helper). Much more efficient to download.

 Admittedly, we currently don't use github-helper anywhere in the defconfigs,
but we probably should.

> +BR2_LINUX_KERNEL_DEFCONFIG="pistachio"
> +BR2_LINUX_KERNEL_DTS_SUPPORT=y
> +BR2_LINUX_KERNEL_INTREE_DTS_NAME="img/pistachio_marduk"
> +BR2_PACKAGE_LINUX_FIRMWARE=y

 If you don't select any firmware blob, then this package does nothing. Or am I
missing something?

> +BR2_PACKAGE_UCCP420WLAN=y

 If you include a Wifi driver/firmware, it makes sense to also include the
minimal toolset to use it. See e.g. imx6ulpico_defconfig.

 BTW, it's also nice to insert comment lines like in that defconfig.

 Regards,
 Arnout

> +BR2_TARGET_UBOOT=y
> +BR2_TARGET_UBOOT_BOARDNAME="pistachio_marduk"
> +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y
> +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="https://github.com/CreatorDev/u-boot/archive/v1.0.4.tar.gz"
> +# BR2_TARGET_UBOOT_FORMAT_BIN is not set
> +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y
> +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-pistachio_marduk-2015.10-v1.0.4.img"
>
Abhimanyu V Feb. 17, 2017, 7:05 a.m. UTC | #2
Thankyou Arnout!


On Friday 17 February 2017 03:27 AM, Arnout Vandecappelle wrote:
>
> On 15-02-17 08:33, Abhimanyu V wrote:
>> From: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
>>
>> Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
>> Reviewed-by: Rahul Bedarkar <Rahul.Bedarkar@imgtec.com>
>> ---
>>   Changes v1 -> v2
>>    - No change
>>
>>   board/ci40/readme.txt  | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
>>   configs/ci40_defconfig | 27 +++++++++++++++++++++++++++
>>   2 files changed, 76 insertions(+)
>>   create mode 100644 board/ci40/readme.txt
>>   create mode 100644 configs/ci40_defconfig
>>
>> diff --git a/board/ci40/readme.txt b/board/ci40/readme.txt
>> new file mode 100644
>> index 0000000..8ce7ed8
>> --- /dev/null
>> +++ b/board/ci40/readme.txt
>> @@ -0,0 +1,49 @@
>> +*********************
>> +* MIPS Creator CI40 *
>> +*********************
>> +
>> +The 'ci40_defconfig' will create a root filesystem and a kernel image
>> +under the 'output/images/' directory. This document will try to explain how
>> +to use them in order to run Buildroot in the MIPS Creator CI40 board.
>> +
>> +The current bootloader by default boot fitImage, so we would need to create
>                                       ^^^^boots a fitImage
>
>> +command to be able to boot from uImage. Assuming you are at the U-Boot prompt
>> +of the MIPS Creator CI40, you can use following way to boot.
>   Why don't you just create a FIT image instead of a legacy uImage? It's a bit
> more involved but not that difficult, is it?
>
>   Alternatively, it would be convenient to patch the default U-Boot environment
> to boot a uImage, from SD or USB.
I had expected fitImage will take some time which i started working on 
after posting the patch. I have it ready now so I will post the new 
version with the changes. I have kept uImage boot just in case people 
would like to use it. Patching uboot is an option but since we not going 
to support uImage, i think it is not worth. This can be kept as just for 
information?
>> +
>> +Booting from network (nfsboot)
>> +------------------------------
>> +  pistachio # setenv netboot_legacy 'sf probe 1:0;mtdparts default;setenv bootargs $console $earlycon $netroot nfsroot=$serverip:$rootpath $bootextra $mtdparts;dhcp $loadaddr  $legacy_bootfile; dhcp $fdtaddr $fdtfile;'
>> +
>> +  pistachio # run netboot_legacy
>> +
>> +  It will set variable to boot from tftp server and uses nfsroot
>> +
>> +Booting from USB/MMC
>> +--------------------
>> +Extract the generated root filesystem, uImage and dtb file into a USB drive
>> +or SD-Card. Here you have the instructions to boot from the two of them.
>   It would be a lot more convenient if you would create either of these images
> with genimage.
Thanks, i didnt know about genimage. i will have look at it.
>> +You have to choose the one your prefer:
>> +
>> +From USB
>> +  pistachio # setenv usbboot_legacy 'sf probe 1:0;mtdparts default;setenv bootargs $console $earlycon $usbroot $bootextra $mtdparts;usb start;ext4load usb $usbdev $fdtaddr $bootdir$fdtfile;ext4load usb $usbdev $loadaddr $bootdir$legacy_bootfile;'
>> +
>> +  pistachio # run usbboot_legacy
>> +
>> +From SD-Card
>> +  pistachio # setenv mmcboot_legacy 'sf probe 1:0;mtdparts default;setenv bootargs $console $earlycon $mmcroot $bootextra $mtdparts;setenv verify n;mmcinfo; mmc dev $mmcdev;ext4load mmc $mmcdev $fdtaddr $bootdir$fdtfile;ext4load mmc $mmcdev $loadaddr $bootdir$legacy_bootfile;'
>> +
>> +  pistachio # run mmcboot_legacy
>> +
>> +Finally boot from the loaded file:
>> +
>> +  pistachio # bootm $loadaddr - $fdtaddr;
>
>   The instructions don't mention what to do with the U-Boot binary that was
> generated by the defconfig. It's a bit useless to build U-Boot if you then don't
> use it.
legacy_bootfile env variable actually points to uImage, so it is being 
used but not clear, i can explicitly setenc legacy_bootfile to uImage to 
show it.
>> +
>> +
>> +Online docs
>> +-----------
>> +mostly for openwrt but it also applicable on buildroot
>> +https://docs.creatordev.io/ci40/guides/openwrt-platform/#overview
>> +
>> +Prebuilt uboot
>> +--------------
>> +http://downloads.creatordev.io/?q=u-boot/
>> diff --git a/configs/ci40_defconfig b/configs/ci40_defconfig
>> new file mode 100644
>> index 0000000..5363347
>> --- /dev/null
>> +++ b/configs/ci40_defconfig
>> @@ -0,0 +1,27 @@
>> +BR2_mipsel=y
>> +BR2_mips_32r2=y
>> +# BR2_MIPS_SOFT_FLOAT is not set
>> +BR2_TOOLCHAIN_EXTERNAL=y
>> +BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS=y
>   We normally use uClibc toolchains, unless when there is a *very* good reason
> not to. We *never* use external toolchains in the defconfigs.
I have not tested with uClibc toolchain, so will build and test it 
before commenting.
>> +BR2_TARGET_GENERIC_HOSTNAME="Ci40"
>> +BR2_TARGET_GENERIC_ISSUE="Welcome to Ci40"
>> +BR2_TARGET_GENERIC_GETTY_PORT="ttyS1"
>> +BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200=y
>   Since the bootargs you set in the instructions above include a setting of a
> console, this shouldn't be needed, the default /dev/console should work.
Thanks, Will fix it.
>
>> +BR2_SYSTEM_DHCP="eth0"
>> +BR2_ENABLE_LOCALE_WHITELIST="C en_US en_GB"
>   We normally don't change the default for this.
Thanks
>> +BR2_LINUX_KERNEL=y
>> +BR2_LINUX_KERNEL_CUSTOM_GIT=y
>> +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/CreatorDev/linux.git"
>> +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="2319a2476a2bc0c582a9811cd45a6fa3c0beba37"
>   You can use a custom tarball and $(github-helper). Much more efficient to download.
>
>   Admittedly, we currently don't use github-helper anywhere in the defconfigs,
> but we probably should.
>
Will try github-helper.
>> +BR2_LINUX_KERNEL_DEFCONFIG="pistachio"
>> +BR2_LINUX_KERNEL_DTS_SUPPORT=y
>> +BR2_LINUX_KERNEL_INTREE_DTS_NAME="img/pistachio_marduk"
>> +BR2_PACKAGE_LINUX_FIRMWARE=y
>   If you don't select any firmware blob, then this package does nothing. Or am I
> missing something?
Ah yes this is redundant now, i will remove it.
>> +BR2_PACKAGE_UCCP420WLAN=y
>   If you include a Wifi driver/firmware, it makes sense to also include the
> minimal toolset to use it. See e.g. imx6ulpico_defconfig.
>
>   BTW, it's also nice to insert comment lines like in that defconfig.
Sure, thanks for pointer.
>   Regards,
>   Arnout
>
>> +BR2_TARGET_UBOOT=y
>> +BR2_TARGET_UBOOT_BOARDNAME="pistachio_marduk"
>> +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y
>> +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="https://github.com/CreatorDev/u-boot/archive/v1.0.4.tar.gz"
>> +# BR2_TARGET_UBOOT_FORMAT_BIN is not set
>> +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y
>> +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-pistachio_marduk-2015.10-v1.0.4.img"
>>
Thanks and Regards
Abhimanyu V
Arnout Vandecappelle Feb. 17, 2017, 7:41 a.m. UTC | #3
On 17-02-17 08:05, Abhimanyu V wrote:
>>   The instructions don't mention what to do with the U-Boot binary that was
>> generated by the defconfig. It's a bit useless to build U-Boot if you then don't
>> use it.
> legacy_bootfile env variable actually points to uImage, so it is being 
> used but not clear, i can explicitly setenc legacy_bootfile to uImage to 
> show it.

 I mean that you're not using U-Boot itself. The defconfig builds U-Boot, but
the instructions in the readme only explain how to use the  kernel and rootfs.
They assume that you're using the U-Boot in flash.

 Regards,
 Arnout
Abhimanyu V Feb. 17, 2017, 7:44 a.m. UTC | #4
On Friday 17 February 2017 01:11 PM, Arnout Vandecappelle wrote:
>
> On 17-02-17 08:05, Abhimanyu V wrote:
>>>    The instructions don't mention what to do with the U-Boot binary that was
>>> generated by the defconfig. It's a bit useless to build U-Boot if you then don't
>>> use it.
>> legacy_bootfile env variable actually points to uImage, so it is being
>> used but not clear, i can explicitly setenc legacy_bootfile to uImage to
>> show it.
>   I mean that you're not using U-Boot itself. The defconfig builds U-Boot, but
> the instructions in the readme only explain how to use the  kernel and rootfs.
> They assume that you're using the U-Boot in flash.
Ok got it, i will have section explaining new u-boot binary flashing.
>
>   Regards,
>   Arnout
Regards
Abhimanyu V
diff mbox

Patch

diff --git a/board/ci40/readme.txt b/board/ci40/readme.txt
new file mode 100644
index 0000000..8ce7ed8
--- /dev/null
+++ b/board/ci40/readme.txt
@@ -0,0 +1,49 @@ 
+*********************
+* MIPS Creator CI40 *
+*********************
+
+The 'ci40_defconfig' will create a root filesystem and a kernel image
+under the 'output/images/' directory. This document will try to explain how
+to use them in order to run Buildroot in the MIPS Creator CI40 board.
+
+The current bootloader by default boot fitImage, so we would need to create
+command to be able to boot from uImage. Assuming you are at the U-Boot prompt
+of the MIPS Creator CI40, you can use following way to boot.
+
+Booting from network (nfsboot)
+------------------------------
+  pistachio # setenv netboot_legacy 'sf probe 1:0;mtdparts default;setenv bootargs $console $earlycon $netroot nfsroot=$serverip:$rootpath $bootextra $mtdparts;dhcp $loadaddr  $legacy_bootfile; dhcp $fdtaddr $fdtfile;'
+
+  pistachio # run netboot_legacy
+
+  It will set variable to boot from tftp server and uses nfsroot
+
+Booting from USB/MMC
+--------------------
+Extract the generated root filesystem, uImage and dtb file into a USB drive
+or SD-Card. Here you have the instructions to boot from the two of them.
+You have to choose the one your prefer:
+
+From USB
+  pistachio # setenv usbboot_legacy 'sf probe 1:0;mtdparts default;setenv bootargs $console $earlycon $usbroot $bootextra $mtdparts;usb start;ext4load usb $usbdev $fdtaddr $bootdir$fdtfile;ext4load usb $usbdev $loadaddr $bootdir$legacy_bootfile;'
+
+  pistachio # run usbboot_legacy
+
+From SD-Card
+  pistachio # setenv mmcboot_legacy 'sf probe 1:0;mtdparts default;setenv bootargs $console $earlycon $mmcroot $bootextra $mtdparts;setenv verify n;mmcinfo; mmc dev $mmcdev;ext4load mmc $mmcdev $fdtaddr $bootdir$fdtfile;ext4load mmc $mmcdev $loadaddr $bootdir$legacy_bootfile;'
+
+  pistachio # run mmcboot_legacy
+
+Finally boot from the loaded file:
+
+  pistachio # bootm $loadaddr - $fdtaddr;
+
+
+Online docs
+-----------
+mostly for openwrt but it also applicable on buildroot
+https://docs.creatordev.io/ci40/guides/openwrt-platform/#overview
+
+Prebuilt uboot
+--------------
+http://downloads.creatordev.io/?q=u-boot/
diff --git a/configs/ci40_defconfig b/configs/ci40_defconfig
new file mode 100644
index 0000000..5363347
--- /dev/null
+++ b/configs/ci40_defconfig
@@ -0,0 +1,27 @@ 
+BR2_mipsel=y
+BR2_mips_32r2=y
+# BR2_MIPS_SOFT_FLOAT is not set
+BR2_TOOLCHAIN_EXTERNAL=y
+BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS=y
+BR2_TARGET_GENERIC_HOSTNAME="Ci40"
+BR2_TARGET_GENERIC_ISSUE="Welcome to Ci40"
+BR2_TARGET_GENERIC_GETTY_PORT="ttyS1"
+BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200=y
+BR2_SYSTEM_DHCP="eth0"
+BR2_ENABLE_LOCALE_WHITELIST="C en_US en_GB"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_GIT=y
+BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/CreatorDev/linux.git"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="2319a2476a2bc0c582a9811cd45a6fa3c0beba37"
+BR2_LINUX_KERNEL_DEFCONFIG="pistachio"
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="img/pistachio_marduk"
+BR2_PACKAGE_LINUX_FIRMWARE=y
+BR2_PACKAGE_UCCP420WLAN=y
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BOARDNAME="pistachio_marduk"
+BR2_TARGET_UBOOT_CUSTOM_TARBALL=y
+BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="https://github.com/CreatorDev/u-boot/archive/v1.0.4.tar.gz"
+# BR2_TARGET_UBOOT_FORMAT_BIN is not set
+BR2_TARGET_UBOOT_FORMAT_CUSTOM=y
+BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-pistachio_marduk-2015.10-v1.0.4.img"