1
0
Fork 0

Compare commits

..

2 Commits

Author SHA1 Message Date
Florian Agbuya 03a7b2a75e increase qemu image size 2024-04-04 13:07:11 +08:00
Florian Agbuya c2d38540c0 integrate linien-server to not-os 2024-04-04 13:06:01 +08:00
1 changed files with 48 additions and 50 deletions

View File

@ -11,6 +11,7 @@
outputs = { self, nixpkgs, not-os, src-migen, src-misoc }:
let
pkgs = import nixpkgs { system = "x86_64-linux"; overlays = [ crosspkgs-overlay ]; };
pkgs-armv7l = pkgs.pkgsCross.zynq-armv7l-linux;
fsbl-support = ./fast-servo/fsbl-support;
patched-not-os = pkgs.applyPatches {
@ -99,53 +100,48 @@
runScript = "vivado";
};
fast-servo-extrapkg = ({ config, pkgs, ... }: let
pyrp3 = pkgs.python3Packages.buildPythonPackage rec {
pname = "pyrp3";
version = "1.2.0";
pyproject = true;
src = pkgs.fetchFromGitHub {
owner = "linien-org";
repo = "pyrp3";
rev = "v${version}";
hash = "sha256-43TTlpJ5SMAjQM71bNVvrWQyciRXM3zpuA/Dw41AEgU=";
};
nativeBuildInputs = with pkgs.python3Packages; [ setuptools wheel setuptools-scm ];
propagatedBuildInputs = with pkgs.python3Packages; [
myhdl
rpyc4
cached-property
numpy
];
pyrp3 = pkgs-armv7l.python3Packages.buildPythonPackage rec {
pname = "pyrp3";
version = "1.2.0";
pyproject = true;
src = pkgs.fetchFromGitHub {
owner = "linien-org";
repo = "pyrp3";
rev = "v${version}";
hash = "sha256-43TTlpJ5SMAjQM71bNVvrWQyciRXM3zpuA/Dw41AEgU=";
};
nativeBuildInputs = with pkgs-armv7l.python3Packages; [ setuptools wheel setuptools-scm ];
propagatedBuildInputs = with pkgs-armv7l.python3Packages; [
myhdl
rpyc4
cached-property
numpy
];
};
linien-server = pkgs.python3Packages.buildPythonPackage rec {
pname = "linien-server";
pyproject = true;
inherit (pkgs.python3Packages.linien-common) src version;
sourceRoot = "source/linien-server";
postPatch = ''
substituteInPlace linien_server/acquisition.py \
--replace " start_nginx()" "" \
--replace " stop_nginx()" "" \
--replace " flash_fpga()" ""
'';
nativeBuildInputs = [ pkgs.python3Packages.setuptools ];
propagatedBuildInputs = with pkgs.python3Packages; [
appdirs
certifi
click
cma
pylpsd
pyrp3
requests
linien-common
];
};
in {
system.build.linien-server = linien-server;
environment.systemPackages = [ linien-server ];
});
linien-server = pkgs-armv7l.python3Packages.buildPythonPackage rec {
pname = "linien-server";
pyproject = true;
inherit (pkgs.python3Packages.linien-common) src version;
sourceRoot = "source/linien-server";
postPatch = ''
substituteInPlace linien_server/acquisition.py \
--replace " start_nginx()" "" \
--replace " stop_nginx()" "" \
--replace " flash_fpga()" ""
'';
nativeBuildInputs = [ pkgs-armv7l.python3Packages.setuptools ];
propagatedBuildInputs = with pkgs-armv7l.python3Packages; [
appdirs
certifi
click
cma
pylpsd
pyrp3
requests
linien-common
];
};
fast-servo-gateware = pkgs.stdenv.mkDerivation rec {
name = "fast-servo-gateware";
@ -212,7 +208,10 @@
inherit nixpkgs;
extraModules = [
"${patched-not-os}/zynq_image.nix"
] ++ pkgs.lib.optional (board == "fast-servo") fast-servo-extrapkg;
] ++ pkgs.lib.optionals (board == "fast-servo") [
({ config, pkgs, ... }: {
environment.systemPackages = [ linien-server ];
})];
system = "x86_64-linux";
inherit crossSystem;
});
@ -257,7 +256,7 @@
dontFixup = true;
};
u-boot = (pkgs.pkgsCross.zynq-armv7l-linux.buildUBoot {
u-boot = (pkgs-armv7l.buildUBoot {
defconfig = "xilinx_zynq_virt_defconfig";
patches = [] ++ pkgs.lib.optional (board == "fast-servo") ./fast-servo/u-boot.patch;
preConfigure = ''
@ -386,7 +385,7 @@
export PATH=${pkgs.qemu}/bin:$PATH
IMGDIR=$(mktemp -d /tmp/not-os-qemu-XXXXXX)
BASE=$(realpath $(dirname $0))
qemu-img create -F raw -f qcow2 -b $BASE/sd-image.img $IMGDIR/sd-overlay.qcow2 4G
qemu-img create -F raw -f qcow2 -b $BASE/sd-image.img $IMGDIR/sd-overlay.qcow2 2G
# Some command arguments are based from samples in Xilinx QEMU User Documentation
# See: https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/821854273/Running+Bare+Metal+Applications+on+QEMU
@ -422,7 +421,6 @@
"${board}-dtb" = dtb;
"${board}-sd-image" = sd-image;
"${board}-qemu" = not-os-qemu;
linien-server = not-os-build.linien-server;
};
in rec {
packages.x86_64-linux = {
@ -430,7 +428,7 @@
inherit migen misoc vivado;
};
packages.armv7l-linux = {
inherit fast-servo-gateware;
inherit fast-servo-gateware linien-server;
} //
(board-package-set { board = "zc706"; }) //
(board-package-set { board = "fast-servo"; });