diff mbox

[v3] Add a defconfig for MIPS Creator CI20

Message ID 1417193009-65132-1-git-send-email-Vincent.Riera@imgtec.com
State Accepted
Commit 51a95551159461e52f204cf6153ca52954438b4d
Headers show

Commit Message

Vicente Olivert Riera Nov. 28, 2014, 4:43 p.m. UTC
MIPS Creator CI20 is a Linux and Android development system from
MIPS/Imagination Technologies. It incorporates an Ingenic JZ4780 SoC
which includes a 1.2GHz dual core MIPS32 processor and Imagination
PowerVR SGX540 GPU.

More information can be found at:
  http://elinux.org/MIPS_Creator_CI20

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
---
Changes v2 -> v3
 - The v2 patch was wrong because it was made having the v1 applied.
   This one has been made from scratch.
Changes v1 -> v2
 - Clone the kernel repository using a commit hash value instead of a
   branch name, so we can do reproducible builds.
 - Fix the kernel headers version to 3.0.8.
 - Clone the kernel repository using https:// instead of git:// to avoid
   problems for people who is behind a firewall.
 - Add a readme.txt file.

 board/ci20/readme.txt  |   42 ++++++++++++++++++++++++++++++++++++++++++
 configs/ci20_defconfig |   18 ++++++++++++++++++
 2 files changed, 60 insertions(+), 0 deletions(-)
 create mode 100644 board/ci20/readme.txt
 create mode 100644 configs/ci20_defconfig

Comments

Peter Korsgaard Nov. 29, 2014, 8:27 a.m. UTC | #1
>>>>> "Vicente" == Vicente Olivert Riera <Vincent.Riera@imgtec.com> writes:

 > MIPS Creator CI20 is a Linux and Android development system from
 > MIPS/Imagination Technologies. It incorporates an Ingenic JZ4780 SoC
 > which includes a 1.2GHz dual core MIPS32 processor and Imagination
 > PowerVR SGX540 GPU.

 > More information can be found at:
 >   http://elinux.org/MIPS_Creator_CI20

 > Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>

Committed to next, thanks.

I do have one question though:

> +# system
 > +BR2_KERNEL_HEADERS_VERSION=y
 > +BR2_DEFAULT_KERNEL_VERSION="3.0.8"
 > +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_0=y
 > +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y

Is mdev in any way required? We normally only enable the basic stuff
needed to get a booting system in the defconfigs.
Vicente Olivert Riera Dec. 1, 2014, 10:14 a.m. UTC | #2
Dear Peter Korsgaard,

On 11/29/2014 08:27 AM, Peter Korsgaard wrote:
>>>>>> "Vicente" == Vicente Olivert Riera <Vincent.Riera@imgtec.com> writes:
> 
>  > MIPS Creator CI20 is a Linux and Android development system from
>  > MIPS/Imagination Technologies. It incorporates an Ingenic JZ4780 SoC
>  > which includes a 1.2GHz dual core MIPS32 processor and Imagination
>  > PowerVR SGX540 GPU.
> 
>  > More information can be found at:
>  >   http://elinux.org/MIPS_Creator_CI20
> 
>  > Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
> 
> Committed to next, thanks.

Thanks :-)

> I do have one question though:
> 
>> +# system
>  > +BR2_KERNEL_HEADERS_VERSION=y
>  > +BR2_DEFAULT_KERNEL_VERSION="3.0.8"
>  > +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_0=y
>  > +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y
> 
> Is mdev in any way required? We normally only enable the basic stuff
> needed to get a booting system in the defconfigs.

I have added mdev to the defconfig in order to get it working out of the
box, because the kernel defconfig we are using doesn't have
DEVTMPFS_MOUNT support, so if you rely on the default /dev management
option (Dynamic using devtmpfs only) it will not work.

Cheers,
Peter Korsgaard Dec. 1, 2014, 10:19 a.m. UTC | #3
>>>>> "Vicente" == Vicente Olivert Riera <Vincent.Riera@imgtec.com> writes:

Hi,

>> I do have one question though:
 >> 
 >>> +# system
 >> > +BR2_KERNEL_HEADERS_VERSION=y
 >> > +BR2_DEFAULT_KERNEL_VERSION="3.0.8"
 >> > +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_0=y
 >> > +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y
 >> 
 >> Is mdev in any way required? We normally only enable the basic stuff
 >> needed to get a booting system in the defconfigs.

 > I have added mdev to the defconfig in order to get it working out of the
 > box, because the kernel defconfig we are using doesn't have
 > DEVTMPFS_MOUNT support, so if you rely on the default /dev management
 > option (Dynamic using devtmpfs only) it will not work.

But when you build a kernel with Buildroot it will automatically enable
DEVTMPFS_MOUNT when needed (E.G. when the system isn't configured for a
static /dev), so that shouldn't be an issue?
Vicente Olivert Riera Dec. 1, 2014, 10:31 a.m. UTC | #4
Dear Peter Korsgaard,

On 12/01/2014 10:19 AM, Peter Korsgaard wrote:
>>>>>> "Vicente" == Vicente Olivert Riera <Vincent.Riera@imgtec.com> writes:
> 
> Hi,
> 
>>> I do have one question though:
>  >> 
>  >>> +# system
>  >> > +BR2_KERNEL_HEADERS_VERSION=y
>  >> > +BR2_DEFAULT_KERNEL_VERSION="3.0.8"
>  >> > +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_0=y
>  >> > +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y
>  >> 
>  >> Is mdev in any way required? We normally only enable the basic stuff
>  >> needed to get a booting system in the defconfigs.
> 
>  > I have added mdev to the defconfig in order to get it working out of the
>  > box, because the kernel defconfig we are using doesn't have
>  > DEVTMPFS_MOUNT support, so if you rely on the default /dev management
>  > option (Dynamic using devtmpfs only) it will not work.
> 
> But when you build a kernel with Buildroot it will automatically enable
> DEVTMPFS_MOUNT when needed (E.G. when the system isn't configured for a
> static /dev), so that shouldn't be an issue?

I didn't know that. So, if you are using a custom defconfig to build the
kernel, will Buildroot do more modifications depending on which /dev
management you have selected? Will not respect your defconfig?

Cheers,
Peter Korsgaard Dec. 1, 2014, 10:34 a.m. UTC | #5
>>>>> "Vicente" == Vicente Olivert Riera <Vincent.Riera@imgtec.com> writes:

Hi,

>> >> Is mdev in any way required? We normally only enable the basic stuff
 >> >> needed to get a booting system in the defconfigs.
 >> 
 >> > I have added mdev to the defconfig in order to get it working out of the
 >> > box, because the kernel defconfig we are using doesn't have
 >> > DEVTMPFS_MOUNT support, so if you rely on the default /dev management
 >> > option (Dynamic using devtmpfs only) it will not work.
 >> 
 >> But when you build a kernel with Buildroot it will automatically enable
 >> DEVTMPFS_MOUNT when needed (E.G. when the system isn't configured for a
 >> static /dev), so that shouldn't be an issue?

 > I didn't know that. So, if you are using a custom defconfig to build the
 > kernel, will Buildroot do more modifications depending on which /dev
 > management you have selected? Will not respect your defconfig?

Exactly: We do some minimal config tweaks to ensure you have a working
setup. See the logic in linux/linux.mk (LINUX_CONFIGURE_CMDS).
Vicente Olivert Riera Dec. 1, 2014, 2:05 p.m. UTC | #6
On 12/01/2014 10:34 AM, Peter Korsgaard wrote:
>>>>>> "Vicente" == Vicente Olivert Riera <Vincent.Riera@imgtec.com> writes:
> 
> Hi,
> 
>>>>> Is mdev in any way required? We normally only enable the basic stuff
>  >> >> needed to get a booting system in the defconfigs.
>  >> 
>  >> > I have added mdev to the defconfig in order to get it working out of the
>  >> > box, because the kernel defconfig we are using doesn't have
>  >> > DEVTMPFS_MOUNT support, so if you rely on the default /dev management
>  >> > option (Dynamic using devtmpfs only) it will not work.
>  >> 
>  >> But when you build a kernel with Buildroot it will automatically enable
>  >> DEVTMPFS_MOUNT when needed (E.G. when the system isn't configured for a
>  >> static /dev), so that shouldn't be an issue?
> 
>  > I didn't know that. So, if you are using a custom defconfig to build the
>  > kernel, will Buildroot do more modifications depending on which /dev
>  > management you have selected? Will not respect your defconfig?
> 
> Exactly: We do some minimal config tweaks to ensure you have a working
> setup. See the logic in linux/linux.mk (LINUX_CONFIGURE_CMDS).

I have seen that file and I found this snippet:

$(if $(BR2_ROOTFS_DEVICE_CREATION_STATIC),,
  $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS,$(@D)/.config)
  $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS_MOUNT,$(@D)/.config))

It adds those two options to the kernel config only if
BR2_ROOTFS_DEVICE_CREATION_STATIC has been selected. I think this is
also needed for BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS. I'm going
to test it right now to make sure.

Also, could you tell me why that if statement has two comma (,,) instead
of one? What's the different with having only one comma?

Cheers,
Peter Korsgaard Dec. 1, 2014, 2:13 p.m. UTC | #7
>>>>> "Vicente" == Vicente Olivert Riera <Vincent.Riera@imgtec.com> writes:

 >> Exactly: We do some minimal config tweaks to ensure you have a working
 >> setup. See the logic in linux/linux.mk (LINUX_CONFIGURE_CMDS).

 > I have seen that file and I found this snippet:

 > $(if $(BR2_ROOTFS_DEVICE_CREATION_STATIC),,
 >   $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS,$(@D)/.config)
 >   $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS_MOUNT,$(@D)/.config))

 > It adds those two options to the kernel config only if
 > BR2_ROOTFS_DEVICE_CREATION_STATIC has been selected. I think this is
 > also needed for BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS. I'm going
 > to test it right now to make sure.

No, notice the 2x ",". The syntax of the $(if ) construct is $(if
<condition>,<command-of-nonempty>,<command-if-empty>), so this is done
for everything but the static /dev case.

 > Also, could you tell me why that if statement has two comma (,,) instead
 > of one? What's the different with having only one comma?

See above or:

https://www.gnu.org/software/make/manual/html_node/Conditional-Functions.html#index-if
Vicente Olivert Riera Dec. 1, 2014, 2:28 p.m. UTC | #8
On 12/01/2014 02:13 PM, Peter Korsgaard wrote:
>>>>>> "Vicente" == Vicente Olivert Riera <Vincent.Riera@imgtec.com> writes:
> 
>  >> Exactly: We do some minimal config tweaks to ensure you have a working
>  >> setup. See the logic in linux/linux.mk (LINUX_CONFIGURE_CMDS).
> 
>  > I have seen that file and I found this snippet:
> 
>  > $(if $(BR2_ROOTFS_DEVICE_CREATION_STATIC),,
>  >   $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS,$(@D)/.config)
>  >   $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS_MOUNT,$(@D)/.config))
> 
>  > It adds those two options to the kernel config only if
>  > BR2_ROOTFS_DEVICE_CREATION_STATIC has been selected. I think this is
>  > also needed for BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS. I'm going
>  > to test it right now to make sure.
> 
> No, notice the 2x ",". The syntax of the $(if ) construct is $(if
> <condition>,<command-of-nonempty>,<command-if-empty>), so this is done
> for everything but the static /dev case.
> 
>  > Also, could you tell me why that if statement has two comma (,,) instead
>  > of one? What's the difference with having only one comma?
> 
> See above or:
> 
> https://www.gnu.org/software/make/manual/html_node/Conditional-Functions.html#index-if

Facepalm.

Thanks Peter, I will send a patch to remove the MDEV option in the
ci20_defconfig.

Cheers,
diff mbox

Patch

diff --git a/board/ci20/readme.txt b/board/ci20/readme.txt
new file mode 100644
index 0000000..ca7bb52
--- /dev/null
+++ b/board/ci20/readme.txt
@@ -0,0 +1,42 @@ 
+*********************
+* MIPS Creator CI20 *
+*********************
+
+The 'ci20_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 CI20 board.
+
+Assuming you are at the U-Boot prompt of the MIPS Creator CI20, you have to
+load the generated kernel image by using the 'tftpboot' command. In
+order to do that, you will need to get the network working. Here you
+have the instructions to set the ip address, netmask and gateway:
+
+  setenv ipaddr x.x.x.x
+  setenv netmask x.x.x.x
+  setenv gatewayip x.x.x.x
+
+Now you have to set the ip for the TFTP server you are going to load the
+kernel image from, and also the name of the kernel image file (we use
+'uImage' as a filename in this example):
+
+  setenv serverip x.x.x.x
+  setenv bootfile uImage
+
+And finally load the kernel image:
+
+  tftpboot
+
+Now you have to extract the generated root filesystem 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
+  setenv bootargs console=ttyS4,115200 console=tty0 mem=256M@0x0
+mem=768M@0x30000000 root=/dev/sda1
+
+From SD-Card
+  setenv bootargs console=ttyS4,115200 console=tty0 mem=256M@0x0
+mem=768M@0x30000000 root=/dev/mmcblk0p1
+
+And finally run this command to boot the board:
+  bootm
diff --git a/configs/ci20_defconfig b/configs/ci20_defconfig
new file mode 100644
index 0000000..7f1bf87
--- /dev/null
+++ b/configs/ci20_defconfig
@@ -0,0 +1,18 @@ 
+# architecture
+BR2_mipsel=y
+BR2_mips_32r2=y
+# BR2_MIPS_SOFT_FLOAT is not set
+
+# system
+BR2_KERNEL_HEADERS_VERSION=y
+BR2_DEFAULT_KERNEL_VERSION="3.0.8"
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_0=y
+BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y
+BR2_TARGET_GENERIC_GETTY_PORT="ttyS4"
+
+# kernel
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_GIT=y
+BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/MIPS/CI20_linux.git"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="ba11adc7ac8792b0eb7415a1cc9c0968604a6fac"
+BR2_LINUX_KERNEL_DEFCONFIG="ci20"