convert hardware loadAddress to int
This commit is contained in:
parent
185117843b
commit
315907de98
10 changed files with 14 additions and 14 deletions
|
@ -180,7 +180,7 @@
|
||||||
# We put it at the 32MB mark so that tftpboot can put its rootfs
|
# We put it at the 32MB mark so that tftpboot can put its rootfs
|
||||||
# image and DTB underneath, but maybe this is a terrible waste of
|
# image and DTB underneath, but maybe this is a terrible waste of
|
||||||
# RAM unless the kernel is able to reuse it later. Oh well
|
# RAM unless the kernel is able to reuse it later. Oh well
|
||||||
loadAddress = "0x42000000";
|
loadAddress = lim.parseInt "0x42000000";
|
||||||
entryPoint = "0x42000000";
|
entryPoint = "0x42000000";
|
||||||
rootDevice = "ubi0:liminix";
|
rootDevice = "ubi0:liminix";
|
||||||
dts = {
|
dts = {
|
||||||
|
|
|
@ -103,7 +103,7 @@
|
||||||
};
|
};
|
||||||
hardware = {
|
hardware = {
|
||||||
defaultOutput = "flashimage";
|
defaultOutput = "flashimage";
|
||||||
loadAddress = "0x80060000";
|
loadAddress = lim.parseInt "0x80060000";
|
||||||
entryPoint = "0x80060000";
|
entryPoint = "0x80060000";
|
||||||
flash = {
|
flash = {
|
||||||
address = "0x9F060000";
|
address = "0x9F060000";
|
||||||
|
|
|
@ -55,7 +55,7 @@
|
||||||
imports = [ ../../modules/arch/mipsel.nix ];
|
imports = [ ../../modules/arch/mipsel.nix ];
|
||||||
hardware = {
|
hardware = {
|
||||||
defaultOutput = "flashimage";
|
defaultOutput = "flashimage";
|
||||||
loadAddress = "0x80000000";
|
loadAddress = lim.parseInt "0x80000000";
|
||||||
entryPoint = "0x80000000";
|
entryPoint = "0x80000000";
|
||||||
|
|
||||||
# Creating 5 MTD partitions on "spi0.0":
|
# Creating 5 MTD partitions on "spi0.0":
|
||||||
|
|
|
@ -62,7 +62,7 @@
|
||||||
};
|
};
|
||||||
hardware = {
|
hardware = {
|
||||||
defaultOutput = "flashimage";
|
defaultOutput = "flashimage";
|
||||||
loadAddress = "0x80000000";
|
loadAddress = lim.parseInt "0x80000000";
|
||||||
entryPoint = "0x80000000";
|
entryPoint = "0x80000000";
|
||||||
|
|
||||||
flash = {
|
flash = {
|
||||||
|
|
|
@ -65,7 +65,7 @@
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
defaultOutput = "vmroot";
|
defaultOutput = "vmroot";
|
||||||
loadAddress = "0x0";
|
loadAddress = lim.parseInt "0x0";
|
||||||
entryPoint = "0x0";
|
entryPoint = "0x0";
|
||||||
rootDevice = "/dev/mtdblock0";
|
rootDevice = "/dev/mtdblock0";
|
||||||
|
|
||||||
|
|
|
@ -67,7 +67,7 @@
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
defaultOutput = "vmroot";
|
defaultOutput = "vmroot";
|
||||||
loadAddress = "0x00010000";
|
loadAddress = lim.parseInt "0x00010000";
|
||||||
entryPoint = "0x00010000";
|
entryPoint = "0x00010000";
|
||||||
rootDevice = "/dev/mtdblock0";
|
rootDevice = "/dev/mtdblock0";
|
||||||
|
|
||||||
|
|
|
@ -59,7 +59,7 @@ in {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
loadAddress = mkOption { default = null; };
|
loadAddress = mkOption { type = types.ints.unsigned; default = null; };
|
||||||
entryPoint = mkOption { };
|
entryPoint = mkOption { };
|
||||||
radios = mkOption {
|
radios = mkOption {
|
||||||
description = ''
|
description = ''
|
||||||
|
|
|
@ -10,7 +10,7 @@ let
|
||||||
instructions = pkgs.writeText "env.scr" ''
|
instructions = pkgs.writeText "env.scr" ''
|
||||||
setenv serverip ${cfg.serverip}
|
setenv serverip ${cfg.serverip}
|
||||||
setenv ipaddr ${cfg.ipaddr}
|
setenv ipaddr ${cfg.ipaddr}
|
||||||
setenv loadaddr ${cfg.loadAddress}
|
setenv loadaddr ${lib.toHexString cfg.loadAddress}
|
||||||
'';
|
'';
|
||||||
in {
|
in {
|
||||||
options.system.outputs = {
|
options.system.outputs = {
|
||||||
|
|
|
@ -70,13 +70,13 @@ in {
|
||||||
in
|
in
|
||||||
pkgs.buildPackages.runCommand "boot-scr" { nativeBuildInputs = [ pkgs.pkgsBuildBuild.dtc ]; } ''
|
pkgs.buildPackages.runCommand "boot-scr" { nativeBuildInputs = [ pkgs.pkgsBuildBuild.dtc ]; } ''
|
||||||
uimageSize=$(($(stat -L -c %s ${o.uimage}) + 0x1000 &(~0xfff)))
|
uimageSize=$(($(stat -L -c %s ${o.uimage}) + 0x1000 &(~0xfff)))
|
||||||
rootfsStart=0x$(printf %x $((${cfg.loadAddress} + 0x100000 + $uimageSize &(~0xfffff) )))
|
rootfsStart=0x$(printf %x $((${toString cfg.loadAddress} + 0x100000 + $uimageSize &(~0xfffff) )))
|
||||||
rootfsBytes=$(($(stat -L -c %s ${o.rootfs}) + 0x100000 &(~0xfffff)))
|
rootfsBytes=$(($(stat -L -c %s ${o.rootfs}) + 0x100000 &(~0xfffff)))
|
||||||
rootfsBytes=$(($rootfsBytes + ${toString cfg.freeSpaceBytes} ))
|
rootfsBytes=$(($rootfsBytes + ${toString cfg.freeSpaceBytes} ))
|
||||||
rootfsMb=$(($rootfsBytes >> 20))
|
rootfsMb=$(($rootfsBytes >> 20))
|
||||||
cmd="mtdparts=phram0:''${rootfsMb}M(rootfs) phram.phram=phram0,''${rootfsStart},''${rootfsBytes},${config.hardware.flash.eraseBlockSize} root=/dev/mtdblock0";
|
cmd="mtdparts=phram0:''${rootfsMb}M(rootfs) phram.phram=phram0,''${rootfsStart},''${rootfsBytes},${config.hardware.flash.eraseBlockSize} root=/dev/mtdblock0";
|
||||||
|
|
||||||
dtbStart=$(printf %x $((${cfg.loadAddress} + $rootfsBytes + 0x100000 + $uimageSize )))
|
dtbStart=$(printf %x $((${toString cfg.loadAddress} + $rootfsBytes + 0x100000 + $uimageSize )))
|
||||||
|
|
||||||
mkdir $out
|
mkdir $out
|
||||||
cat ${o.dtb} > $out/dtb
|
cat ${o.dtb} > $out/dtb
|
||||||
|
@ -89,8 +89,8 @@ in {
|
||||||
setenv serverip ${cfg.serverip}
|
setenv serverip ${cfg.serverip}
|
||||||
setenv ipaddr ${cfg.ipaddr}
|
setenv ipaddr ${cfg.ipaddr}
|
||||||
setenv bootargs 'liminix ${cmdline} $cmd'
|
setenv bootargs 'liminix ${cmdline} $cmd'
|
||||||
tftpboot 0x$(printf %x ${cfg.loadAddress}) result/uimage ; tftpboot 0x$(printf %x $rootfsStart) result/rootfs ; tftpboot 0x$dtbStart result/dtb
|
tftpboot 0x${lib.toHexString cfg.loadAddress} result/uimage ; tftpboot 0x$(printf %x $rootfsStart) result/rootfs ; tftpboot 0x$dtbStart result/dtb
|
||||||
bootm 0x$(printf %x ${cfg.loadAddress}) - 0x$dtbStart
|
bootm 0x$${lib.toHexString cfg.loadAddress} - 0x$dtbStart
|
||||||
EOF
|
EOF
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -46,7 +46,7 @@ in {
|
||||||
buildPhaseUImage = ''
|
buildPhaseUImage = ''
|
||||||
test -f tmp.dtb && ${objcopy} --update-section .appended_dtb=tmp.dtb vmlinux.elf || ${objcopy} --add-section .appended_dtb=tmp.dtb vmlinux.elf
|
test -f tmp.dtb && ${objcopy} --update-section .appended_dtb=tmp.dtb vmlinux.elf || ${objcopy} --add-section .appended_dtb=tmp.dtb vmlinux.elf
|
||||||
${stripAndZip}
|
${stripAndZip}
|
||||||
mkimage -A ${arch} -O linux -T kernel -C lzma -a ${loadAddress} -e ${entryPoint} -n '${lib.toUpper arch} Liminix Linux ${extraName}' -d vmlinux.bin.lzma kernel.uimage
|
mkimage -A ${arch} -O linux -T kernel -C lzma -a 0x${lib.toHexString loadAddress} -e ${entryPoint} -n '${lib.toUpper arch} Liminix Linux ${extraName}' -d vmlinux.bin.lzma kernel.uimage
|
||||||
'';
|
'';
|
||||||
|
|
||||||
buildPhaseFIT = ''
|
buildPhaseFIT = ''
|
||||||
|
@ -57,7 +57,7 @@ in {
|
||||||
images {
|
images {
|
||||||
kernel {
|
kernel {
|
||||||
data = /incbin/("./vmlinux.bin.lzma");
|
data = /incbin/("./vmlinux.bin.lzma");
|
||||||
load = <${loadAddress}>;
|
load = <0x${lib.toHexString loadAddress}>;
|
||||||
entry = <${entryPoint}>;
|
entry = <${entryPoint}>;
|
||||||
arch = "${arch}";
|
arch = "${arch}";
|
||||||
compression = "lzma";
|
compression = "lzma";
|
||||||
|
|
Loading…
Reference in a new issue