aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/linux/modules/fs.mk
Commit message (Expand)AuthorAgeFilesLines
* kernel: disable AFS support by defaultFelix Fietkau2016-01-191-0/+1
* kernel: remove packaging of kmod-crypto-core and kmod-crypto-arc4Felix Fietkau2015-09-081-1/+0
* generic: add linux 4.1 supportJonas Gorski2015-06-221-0/+1
* kernel: remove kernel module checks/dependencies for 3.14Felix Fietkau2015-04-111-3/+3
* kernel: remove useless AddDepends/crc16 abstractionFelix Fietkau2015-03-291-1/+3
* build: remove obsolete references to cris and avr32Felix Fietkau2015-03-241-1/+1
* kernel: remove obsolete kernel version dependenciesFelix Fietkau2015-03-191-1/+1
* linux: convert CompareKernelPatchVer to version tagged symbolsJo-Philipp Wich2015-01-311-12/+5
* modules: select grace_period config option for nfs-commonJohn Crispin2015-01-281-0/+1
* kernel: drop obsolete kernel version checksFelix Fietkau2015-01-241-5/+0
* build: drop obsolete kernel version dependenciesFelix Fietkau2015-01-241-4/+3
* modules: f2fs: enable support for xattrJohn Crispin2015-01-221-1/+1
* modules: f2fs: add missing symbols for 3.18John Crispin2015-01-221-0/+2
* modules: install the newly introduced grace.ko in nfs-common in 3.18Zoltan Herpai2015-01-201-0/+8
* kernel/modules: add f2fs supportLuka Perkov2014-12-101-0/+20
* kernel: add missing dependency for kmod-fs-nfsFelix Fietkau2014-06-081-1/+1
* kernel: Add kernel module for cramfs support.Hauke Mehrtens2014-05-011-0/+15
* fs: add kernel modules for AFS clientZoltan Herpai2014-04-281-0/+37
* kernel: negate kernel version dependencies to fix config for new kernel versionsHauke Mehrtens2014-02-081-1/+1
* kernel: kmod-fs-jfsHauke Mehrtens2014-02-051-0/+16
* linux: don't break kmod-fs-nfs for Kernels < 3.6.xJo-Philipp Wich2014-02-041-0/+5
* linux: fix kmod-fs-nfs to include nfsv3.ko, it was split out of nfs.ko in Lin...Jo-Philipp Wich2014-02-041-2/+3
* fix 3.12 dependenciesZoltan Herpai2014-01-131-1/+1
* kernel: kmod-fs-xfs: fix dependenciesHauke Mehrtens2013-09-051-1/+1
* kernel: be consistent with formatting styleLuka Perkov2013-07-261-2/+2
* kernel: fix kmod-fs-btrfs dependenciesHauke Mehrtens2013-07-191-1/+1
* linux: add missing dependencies to kmod-fs-msdos and kmod-fs-xfsJo-Philipp Wich2013-07-181-1/+2
* kernel: btrfs supports raid6 in 3.10, thus depends on lib-raid6Jonas Gorski2013-07-181-1/+1
* packages: clean up the package folderJohn Crispin2013-06-211-0/+372
ackground-color: #ffffc0; padding: 0 5px 0 5px; } .highlight .hll { background-color: #ffffcc } .highlight { background: #ffffff; } .highlight .c { color: #888888 } /* Comment */ .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ .highlight .k { color: #008800; font-weight: bold } /* Keyword */ .highlight .ch { color: #888888 } /* Comment.Hashbang */ .highlight .cm { color: #888888 } /* Comment.Multiline */ .highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */ .highlight .cpf { color: #888888 } /* Comment.PreprocFile */ .highlight .c1 { color: #888888 } /* Comment.Single */ .highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .gr { color: #aa0000 } /* Generic.Error */ .highlight .gh { color: #333333 } /* Generic.Heading */ .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #666666 } /* Generic.Subheading */ .highlight .gt { color: #aa0000 } /* Generic.Traceback */ .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
-------------------------------------------------------------------------------
-- Master testbench version 3
-------------------------------------------------------------------------------

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;


entity master_testbench3 is
  -- Nada !
end master_testbench3;


use work.polyamplib.all;

architecture master_testbench3_arch of master_testbench3 is

  shared variable running : boolean := true;  -- Run testbench when true

  -- Global signals
  signal fastclk              : std_logic := '0';
  signal resync               : std_logic := '0';
  signal adc_data_0           : std_logic_vector(23 downto 0);  -- Bus from AD-interface
  signal adc_data_1           : std_logic_vector(23 downto 0);  -- to mux
  signal fifo_write           : std_logic;
  signal fifo_input           : std_logic_vector(31 downto 0);
  signal fifo_output          : std_logic_vector(31 downto 0);
  signal id_code              : unsigned(3 downto 0);
  signal id_code_i            : unsigned(3 downto 0);
  signal fifo_isempty         : std_logic;
  signal fifo_meter           : unsigned(7 downto 0);
  signal fifo_half_full       : std_logic := '0';
  signal enable_adcvalues     : std_logic := '0';  -- Enable automatic emission of values
  signal not_enable_adcvalues : std_logic;

  -- Clocks
  signal clk24M : std_logic := '0';
  signal clk4M  : std_logic := '0';
  signal clk2M  : std_logic := '0';


  -- Channel 0
  signal advalue_0     : signed(23 downto 0) := to_signed(192, 24);  --Input to ADC
  signal adclk_0       : std_logic;
  signal ad_ser_data_0 : std_logic;
  signal n_drdy_0      : std_logic;
  signal n_sync_0      : std_logic;
  signal adi_busy_0    : std_logic;

  -- Channel 1
  signal advalue_1     : signed(23 downto 0) := to_signed(193, 24);
  signal adclk_1       : std_logic;
  signal ad_ser_data_1 : std_logic;
  signal n_drdy_1      : std_logic;
  signal n_sync_1      : std_logic;
  signal adi_busy_1    : std_logic;

  -- Spi interface
  signal addr_data  : std_logic_vector(31 downto 0);  -- Received command/data
  signal exec_cmd   : std_logic := '0';
  signal fifo_read  : std_logic := '0';
  signal start_adcs : std_logic := '0';
  signal stop_adcs  : std_logic := '0';
  signal mosi       : std_logic := '0';
  signal miso       : std_logic;
  signal sck        : std_logic := '1';
  signal en_adc     : std_logic := '1';               -- Active low
  signal en_incl    : std_logic := '1';               -- Active low
  signal incl_miso  : std_logic := '0';
  signal incl_mosi  : std_logic;
  signal incl_sck   : std_logic;
  signal incl_ena   : std_logic;

  -- Simulation
  signal data_to_spi    : std_logic_vector(31 downto 0);
  signal data_from_spi  : std_logic_vector(31 downto 0);
  signal start          : std_logic := '0';
  signal spim_busy      : std_logic := '0';
  signal signal_running : std_logic := '1';

  
begin  -- master_testbench3_arch


  -----------------------------------------------------------------------------
  -- Component instantiations
  -----------------------------------------------------------------------------

  adc0 : ads1271_model port map (
    analog_in => advalue_0,
    clk       => adclk_0,
    sclk      => adclk_0,
    n_sync    => n_sync_0,
    din       => '0',
    dout      => ad_ser_data_0,
    n_drdy    => n_drdy_0);

  adc1 : ads1271_model port map (
    analog_in => advalue_1,
    clk       => adclk_1,
    sclk      => adclk_1,
    n_sync    => n_sync_1,
    din       => '0',
    dout      => ad_ser_data_1,
    n_drdy    => n_drdy_1);

  adi0 : interface_ads1271 port map (
    fastclk  => fastclk,
    adclk    => adclk_0,
    resync   => resync,
    ser_data => ad_ser_data_0,
    n_drdy   => n_drdy_0,
    data_out => adc_data_0,
    nsync    => n_sync_0,
    busy     => adi_busy_0);

  adi1 : interface_ads1271 port map (
    fastclk  => fastclk,
    adclk    => adclk_1,
    resync   => resync,
    ser_data => ad_ser_data_1,
    n_drdy   => n_drdy_1,
    data_out => adc_data_1,
    nsync    => n_sync_1,
    busy     => adi_busy_1);

  msm : master_state_machine port map (
    fastclk                 => fastclk,
    enable_lo8              => enable_adcvalues,
    busy_n_vec(0)           => adi_busy_0,
    busy_n_vec(1)           => adi_busy_1,
    busy_n_vec(11 downto 2) => "1111111110",  -- Not used in testbench
    id_code                 => id_code,
    fifo_write              => fifo_write);

  adck0 : clockmux port map (
    clk24M  => clk24M,
    clk4M   => clk4M,
    clk2M   => clk2M,
    clk1M   => '0',
    clk512k => '0',
    clk256k => '0',
    clk128k => '0',
    sel     => "110",                   -- 24 MHz clock => 48 ksa/s
    clkout  => adclk_0);

  adck1 : clockmux port map (
    clk24M  => clk24M,
    clk4M   => clk4M,
    clk2M   => clk2M,
    clk1M   => '0',
    clk512k => '0',
    clk256k => '0',
    clk128k => '0',
    sel     => "100",                   -- 2 MHz clock => 4 ksa/s
    clkout  => adclk_1);

  fifo : fifo_ft_memory port map (
    clock   => fastclk,
    sclr    => not_enable_adcvalues,    -- fifo_sclr @@@@@@@@@@
    datain  => fifo_input,
    wrreq   => fifo_write,
    rdreq   => fifo_read,
    dataout => fifo_output,
    empty   => fifo_isempty,
    meter   => fifo_meter);

  sync : sync_logic_2 port map (
    start_adcs       => start_adcs,
    stop_adcs        => stop_adcs,
    reset            => '0',
    hwsync           => '0',
    fastclk          => fastclk,
    enable_adcvalues => enable_adcvalues);

  spis : spi_slave_burst port map (
    fastclk   => fastclk,
    spi_tx    => fifo_output,
    spi_rx    => addr_data,
--    spi_op    => spi_op,
    exec_cmd  => exec_cmd,
    fifo_read => fifo_read,
    mosi      => mosi,
    miso      => miso,
    sck       => sck,
    en_adc    => en_adc,
    en_incl   => en_incl,
    incl_miso => incl_miso,
    incl_mosi => incl_mosi,
    incl_sck  => incl_sck,
    incl_ena  => incl_ena);

  cmd : command_decoder port map (
    addr_data  => addr_data,
    decode     => exec_cmd,
    fastclk    => fastclk,
    resync_adc => resync,
    start_adcs => start_adcs,
    stop_adcs  => stop_adcs);
--    empty_fifo => fifo_sclr);           -- fifo_sclr / open

  spim : spi_master port map (
    miso          => miso,
    mosi          => mosi,
    sck           => sck,
    en_adval      => en_adc,
    en_incl       => en_incl,
    data_to_spi   => data_to_spi,
    data_from_spi => data_from_spi,
    start         => start,
    busy          => spim_busy,
    running       => signal_running);


  -----------------------------------------------------------------------------
  -- Here comes the code
  -----------------------------------------------------------------------------

  id_code_i            <= id_code + 1;    -- Skip NULL command/address
  fifo_half_full       <= fifo_meter(6);  -- >= 64
  not_enable_adcvalues <= not enable_adcvalues;

  with id_code select
    fifo_input(23 downto 0) <=
    adc_data_0                 when "0000",
    adc_data_1                 when "0001",
    "000000000000000000000000" when others;
  fifo_input(27 downto 24) <= "0000" when fifo_isempty = '1' else std_logic_vector(id_code_i);
  fifo_input(31 downto 28) <= "0000";


  -----------------------------------------------------------------------------

  fetch_data : process
  begin  -- process fetch_data
    data_to_spi <= "00000001000000000000000000000100";  -- sel_adclk0
    wait for 2500 ns;
    start       <= '1';
    wait until spim_busy = '1';
    start       <= '0';
    wait until spim_busy = '0';
    wait for 1 us;

    data_to_spi <= "00000010000000000000000000000100";  -- sel_adclk1
    wait for 7 us;
    start       <= '1';
    wait until spim_busy = '1';
    start       <= '0';
    wait until spim_busy = '0';
    wait for 1 us;

--    data_to_spi <= "00000000000000000000000000000000";  -- Null command
    data_to_spi <= "00001001000000000000000000000000";  -- resync
--    wait for 15 us;
    wait for 1 us;
    start       <= '1';
    wait until spim_busy = '1';
    start       <= '0';
    wait until spim_busy = '0';
    wait for 1 us;

    data_to_spi <= "00001011000000000000000000000000";  -- Start AD-conv.
--    wait for 15 us;
    wait for 1 us;
    start       <= '1';
    wait until spim_busy = '1';
    start       <= '0';
    wait until spim_busy = '0';
    wait for 1 us;

    for j in 1 to 250 loop
      data_to_spi <= "00000000000000000000000000000000";  -- Null command
--      wait for 15 us;
      wait for 2 us;
      start       <= '1';
      wait until spim_busy = '1';
      start       <= '0';
      wait until spim_busy = '0';
      wait for 1 us;
    end loop;  -- j

    wait for 2000 us;

    for j in 1 to 250 loop
      data_to_spi <= "00000000000000000000000000000000";  -- Null command
--      wait for 15 us;
      wait for 2 us;
      start       <= '1';
      wait until spim_busy = '1';
      start       <= '0';
      wait until spim_busy = '0';
      wait for 1 us;
    end loop;  -- j

    wait;
  end process fetch_data;

  -----------------------------------------------------------------------------

  main_timing : process
  begin  -- process main_timing
    wait for 6 ms;                   -- Run during this time
    signal_running <= '0';
    running        := false;
    wait;
  end process main_timing;

  -----------------------------------------------------------------------------

  osc_fastclk : process
  begin  -- process osc_fastclk
    while running = true loop
      fastclk <= '0';
      wait for 10173 ps;
      fastclk <= '1';
      wait for 10173 ps;
    end loop;
    wait for 10 ns;
    wait;
  end process osc_fastclk;

  -----------------------------------------------------------------------------

  osc24M : process
  begin  -- process osc24M
    while running = true loop
      clk24M <= '0';
      wait for 20345 ps;
      clk24M <= '1';
      wait for 20345 ps;
    end loop;
    wait for 10 ns;
    wait;
  end process osc24M;

  -----------------------------------------------------------------------------

  osc4M : process
  begin  -- process osc4M
    while running = true loop
      clk4M <= '0';
      wait for 122 ns;
      clk4M <= '1';
      wait for 122 ns;
    end loop;
    wait for 10 ns;
    wait;
  end process osc4M;

  -----------------------------------------------------------------------------

  osc2M : process
  begin  -- process osc2M
    while running = true loop
      clk2M <= '0';
      wait for 244 ns;
      clk2M <= '1';
      wait for 244 ns;
    end loop;
    wait for 10 ns;
    wait;
  end process osc2M;


end master_testbench3_arch;