[PATCH 2/2] Switched SAMA5D4EK development board to the newer environment method.

Doug Brainard dbrainard at brainardinsight.com
Tue Feb 10 20:00:06 PST 2015


Bo,

What error are you seeing?  It was booting into Linux for me with what
I submitted.

However, I was unable to get things working without the "nand0." piece
for each partition due to what you are seeing.  I based that change on
what I saw in mtdparts-nand file in the telit-evk-pro3 board
directory.  Any idea what would be causing that not to add the
"nand0." automatically?  I'd prefer to remove it.

"bootargs.base" seems to be setting the console for barebox only.  I
had to add "linux.bootargs.console" to have the kernel command include
the console and output the boot information.  If I've misunderstood
something, let me know, and I'll modify it.

Thanks,

Doug


On Tue, Feb 10, 2015 at 7:34 PM, Bo Shen <voice.shen at atmel.com> wrote:
> Hi Doug Brainard,
>
>
> On 02/10/2015 10:28 PM, Doug Brainard wrote:
>>
>> ---
>>   arch/arm/boards/sama5d4ek/env/bin/init_board       | 15 --------
>>   arch/arm/boards/sama5d4ek/env/boot/nand-ubi        |  8 +++++
>>   arch/arm/boards/sama5d4ek/env/config               | 42
>> ----------------------
>>   arch/arm/boards/sama5d4ek/env/init/mtdparts-nand   |  6 ++++
>>   arch/arm/boards/sama5d4ek/env/init/ps1             |  7 ++++
>>   arch/arm/boards/sama5d4ek/env/init/splash          | 10 ++++++
>>   arch/arm/boards/sama5d4ek/env/nv/boot.default      |  1 +
>>   arch/arm/boards/sama5d4ek/env/nv/bootargs.base     |  1 +
>>   arch/arm/boards/sama5d4ek/env/nv/hostname          |  1 +
>>   .../boards/sama5d4ek/env/nv/linux.bootargs.console |  1 +
>>   arch/arm/configs/sama5d4ek_defconfig               |  5 +--
>>   arch/arm/mach-at91/Kconfig                         |  1 +
>>   12 files changed, 39 insertions(+), 59 deletions(-)
>>   delete mode 100644 arch/arm/boards/sama5d4ek/env/bin/init_board
>>   create mode 100644 arch/arm/boards/sama5d4ek/env/boot/nand-ubi
>>   delete mode 100644 arch/arm/boards/sama5d4ek/env/config
>>   create mode 100644 arch/arm/boards/sama5d4ek/env/init/mtdparts-nand
>>   create mode 100644 arch/arm/boards/sama5d4ek/env/init/ps1
>>   create mode 100644 arch/arm/boards/sama5d4ek/env/init/splash
>>   create mode 100644 arch/arm/boards/sama5d4ek/env/nv/boot.default
>>   create mode 100644 arch/arm/boards/sama5d4ek/env/nv/bootargs.base
>>   create mode 100644 arch/arm/boards/sama5d4ek/env/nv/hostname
>>   create mode 100644
>> arch/arm/boards/sama5d4ek/env/nv/linux.bootargs.console
>>
>> diff --git a/arch/arm/boards/sama5d4ek/env/bin/init_board
>> b/arch/arm/boards/sama5d4ek/env/bin/init_board
>> deleted file mode 100644
>> index f3d417e..0000000
>> --- a/arch/arm/boards/sama5d4ek/env/bin/init_board
>> +++ /dev/null
>> @@ -1,15 +0,0 @@
>> -#!/bin/sh
>> -
>> -PATH=/env/bin
>> -export PATH
>> -
>> -. /env/config
>> -
>> -splash=/env/splash.png
>> -
>> -if [ -f ${splash} -a -e /dev/fb0 ]; then
>> -       splash -o ${splash}
>> -       fb0.enable=1
>> -fi
>> -
>> -exit 1
>> diff --git a/arch/arm/boards/sama5d4ek/env/boot/nand-ubi
>> b/arch/arm/boards/sama5d4ek/env/boot/nand-ubi
>> new file mode 100644
>> index 0000000..e8d6bde
>> --- /dev/null
>> +++ b/arch/arm/boards/sama5d4ek/env/boot/nand-ubi
>> @@ -0,0 +1,8 @@
>> +#!/bin/sh
>> +
>> +global.bootm.image="/dev/nand0.kernel.bb"
>> +global.bootm.oftree="/dev/nand0.oftree.bb"
>> +
>> +bootargs-ip
>> +
>> +global.linux.bootargs.dyn.root="root=ubi0:nand0.rootfs
>> ubi.mtd=nand0.rootfs rootfstype=ubifs noinitrd"
>> diff --git a/arch/arm/boards/sama5d4ek/env/config
>> b/arch/arm/boards/sama5d4ek/env/config
>> deleted file mode 100644
>> index ee86c07..0000000
>> --- a/arch/arm/boards/sama5d4ek/env/config
>> +++ /dev/null
>> @@ -1,42 +0,0 @@
>> -#!/bin/sh
>> -
>> -# use 'dhcp' to do dhcp in barebox and in kernel
>> -# use 'none' if you want to skip kernel ip autoconfiguration
>> -ip=dhcp
>> -
>> -# or set your networking parameters here
>> -#eth0.ipaddr=a.b.c.d
>> -#eth0.netmask=a.b.c.d
>> -#eth0.gateway=a.b.c.d
>> -#eth0.serverip=a.b.c.d
>> -
>> -# can be either 'nfs', 'tftp', 'nor' or 'nand'
>> -kernel_loc=nand
>> -# can be either 'net', 'nor', 'nand' or 'initrd'
>> -rootfs_loc=nand
>> -# can be either 'nfs', 'tftp', 'nand' or empty
>> -oftree_loc=nand
>> -
>> -# can be either 'jffs2' or 'ubifs'
>> -rootfs_type=ubifs
>> -rootfsimage=root.$rootfs_type
>> -ubiroot=system
>> -
>> -# The image type of the kernel. Can be uimage, zimage, raw, or raw_lzo
>> -kernelimage=zImage
>> -#kernelimage=uImage
>> -#kernelimage=Image
>> -#kernelimage=Image.lzo
>> -
>> -nand_device=atmel_nand
>>
>> -nand_parts="256k(at91bootstrap),512k(barebox)ro,256k(bareboxenv),256k(bareboxenv2),256k(spare),512k(oftree),6M(kernel),8M(recovery),176M(system),304M(userdata),-(cache)"
>> -rootfs_mtdblock_nand=10
>> -
>>
>> -m25p80_parts="64k(bootstrap),384k(barebox),256k(bareboxenv),256k(bareboxenv2),128k(oftree),-(updater)"
>> -
>> -autoboot_timeout=3
>> -
>> -bootargs="console=ttyS0,115200 ubi.mtd=8 ubi.mtd=9 init=/init
>> androidboot.hardware=sama5-pda androidboot.lcd=wvga"
>> -
>> -# set a fancy prompt (if support is compiled in)
>> -PS1="\e[1;32mbarebox@\e[1;31m\h:\w\e[0m\n# "
>> diff --git a/arch/arm/boards/sama5d4ek/env/init/mtdparts-nand
>> b/arch/arm/boards/sama5d4ek/env/init/mtdparts-nand
>> new file mode 100644
>> index 0000000..f20a135
>> --- /dev/null
>> +++ b/arch/arm/boards/sama5d4ek/env/init/mtdparts-nand
>> @@ -0,0 +1,6 @@
>> +#!/bin/sh
>> +
>>
>> +mtdparts="256k(nand0.at91bootstrap),512k(nand0.barebox)ro,256k(nand0.bareboxenv),256k(nand0.bareboxenv2),256k(nand0.spare),512k(nand0.oftree),6M(nand0.kernel),-(nand0.rootfs)"
>> +kernelname="atmel_nand"
>> +
>> +mtdparts-add -b -d nand0 -k ${kernelname} -p ${mtdparts}
>
>
> Using this type of partition table make the file system can not mount
> successfully.
>
> I remove the "nand0." for partition name, then it is OK. After this change,
> it won't keep consistent with the partition table name.
>
> Now boot up the barebox, the partition for nand is: "/dev/barebox",
> "/dev/barebox.bb" while not "/dev/nand0.barebox", /dev/nand0.barebox.bb". I
> am thinking would it be possible to keep the consistent?
>
>
>> diff --git a/arch/arm/boards/sama5d4ek/env/init/ps1
>> b/arch/arm/boards/sama5d4ek/env/init/ps1
>> new file mode 100644
>> index 0000000..c0ec1a5
>> --- /dev/null
>> +++ b/arch/arm/boards/sama5d4ek/env/init/ps1
>> @@ -0,0 +1,7 @@
>> +#!/bin/sh
>> +
>> +if [ ${global.allow_color} = "true" ]; then
>> +       export PS1="\e[1;32mbarebox@\e[1;31m\h:\w\e[0m\n# "
>> +else
>> +        export PS1="barebox@\h:\w "
>> +fi
>> diff --git a/arch/arm/boards/sama5d4ek/env/init/splash
>> b/arch/arm/boards/sama5d4ek/env/init/splash
>> new file mode 100644
>> index 0000000..190ef31
>> --- /dev/null
>> +++ b/arch/arm/boards/sama5d4ek/env/init/splash
>> @@ -0,0 +1,10 @@
>> +#!/bin/sh
>> +
>> +splash=/env/splash.png
>> +
>> +if [ -f ${splash} -a -e /dev/fb0 ]; then
>> +       splash -o ${splash}
>> +       fb0.enable=1
>> +fi
>> +
>> +exit 1
>> diff --git a/arch/arm/boards/sama5d4ek/env/nv/boot.default
>> b/arch/arm/boards/sama5d4ek/env/nv/boot.default
>> new file mode 100644
>> index 0000000..d9dfbbc
>> --- /dev/null
>> +++ b/arch/arm/boards/sama5d4ek/env/nv/boot.default
>> @@ -0,0 +1 @@
>> +nand-ubi
>> diff --git a/arch/arm/boards/sama5d4ek/env/nv/bootargs.base
>> b/arch/arm/boards/sama5d4ek/env/nv/bootargs.base
>> new file mode 100644
>> index 0000000..476b1fb
>> --- /dev/null
>> +++ b/arch/arm/boards/sama5d4ek/env/nv/bootargs.base
>> @@ -0,0 +1 @@
>> +console=ttyS0,115200
>
>
> Till now, I don't know the difference between "bootargs.base" (here maybe
> linux.bootargs.base (?)) and "linux.bootargs.console"
>
>
>> diff --git a/arch/arm/boards/sama5d4ek/env/nv/hostname
>> b/arch/arm/boards/sama5d4ek/env/nv/hostname
>> new file mode 100644
>> index 0000000..b74056d
>> --- /dev/null
>> +++ b/arch/arm/boards/sama5d4ek/env/nv/hostname
>> @@ -0,0 +1 @@
>> +sama5d4ek
>> diff --git a/arch/arm/boards/sama5d4ek/env/nv/linux.bootargs.console
>> b/arch/arm/boards/sama5d4ek/env/nv/linux.bootargs.console
>> new file mode 100644
>> index 0000000..476b1fb
>> --- /dev/null
>> +++ b/arch/arm/boards/sama5d4ek/env/nv/linux.bootargs.console
>> @@ -0,0 +1 @@
>> +console=ttyS0,115200
>> diff --git a/arch/arm/configs/sama5d4ek_defconfig
>> b/arch/arm/configs/sama5d4ek_defconfig
>> index bbf254a..f050fe4 100644
>> --- a/arch/arm/configs/sama5d4ek_defconfig
>> +++ b/arch/arm/configs/sama5d4ek_defconfig
>> @@ -9,13 +9,12 @@ CONFIG_MALLOC_SIZE=0xA00000
>>   CONFIG_EXPERIMENTAL=y
>>   CONFIG_MALLOC_TLSF=y
>>   CONFIG_PROMPT="A5D4EK:"
>> -CONFIG_GLOB=y
>>   CONFIG_PROMPT_HUSH_PS2="y"
>>   CONFIG_HUSH_FANCY_PROMPT=y
>>   CONFIG_CMDLINE_EDITING=y
>>   CONFIG_AUTO_COMPLETE=y
>>   CONFIG_CONSOLE_ACTIVATE_ALL=y
>> -CONFIG_DEFAULT_ENVIRONMENT_GENERIC=y
>> +CONFIG_DEFAULT_ENVIRONMENT_GENERIC_NEW=y
>>   CONFIG_DEFAULT_ENVIRONMENT_PATH="arch/arm/boards/sama5d4ek/env"
>>   CONFIG_DEBUG_INFO=y
>>   # CONFIG_CMD_ARM_CPUINFO is not set
>> @@ -35,6 +34,8 @@ CONFIG_CMD_PARTITION=y
>>   CONFIG_CMD_EXPORT=y
>>   CONFIG_CMD_LOADENV=y
>>   CONFIG_CMD_PRINTENV=y
>> +CONFIG_CMD_MAGICVAR=y
>> +CONFIG_CMD_MAGICVAR_HELP=y
>>   CONFIG_CMD_SAVEENV=y
>>   CONFIG_CMD_FILETYPE=y
>>   CONFIG_CMD_SLEEP=y
>> diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
>> index 9ee4f30..7207232 100644
>> --- a/arch/arm/mach-at91/Kconfig
>> +++ b/arch/arm/mach-at91/Kconfig
>> @@ -489,6 +489,7 @@ choice
>>
>>   config MACH_SAMA5D4EK
>>         bool "Atmel SAMA5D4 Evaluation Kit"
>> +       select HAVE_DEFAULT_ENVIRONMENT_NEW
>>         help
>>           Select this if you are using Atmel's SAMA5D4-EK Evaluation Kit.
>>
>>
>
> Best Regards,
> Bo Shen



More information about the barebox mailing list